diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md new file mode 100644 index 0000000..7b345f4 --- /dev/null +++ b/.github/pull_request_template.md @@ -0,0 +1,4 @@ +## Checklist + +- [ ] ran Jenkins +- [ ] added a release note for user-visible changes to `doc/changes` diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 09075bf..cb2de0e 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -38,7 +38,7 @@ jobs: # We have two cores so we can speed up the testing with xdist - name: Install xdist, openfiles and flake8 for pytest - run: pip install pytest-xdist pytest-openfiles pytest-flake8 pytest-cov + run: pip install pytest-xdist pytest-openfiles pytest-flake8 pytest-cov "flake8<5" - name: Build and install run: pip install -v . diff --git a/doc/changes/README.rst b/doc/changes/README.rst new file mode 100644 index 0000000..dbfcfb7 --- /dev/null +++ b/doc/changes/README.rst @@ -0,0 +1,23 @@ +Recording Changes +================= + +This directory contains "news fragments" which are small files containing text that will be integrated into release notes. +The files can be in restructured text format or plain text. + +Each file should be named like ``.`` with a file extension defining the markup format. +The ```` should be one of: + +* ``feature``: New feature +* ``bugfix``: A bug fix. +* ``api``: An API change. +* ``perf``: A performance enhancement. +* ``doc``: A documentation improvement. +* ``removal``: An API removal or deprecation. +* ``misc``: Changes that are of minor interest. + +An example file name would therefore look like ``DM-30291.misc.rst``. + +If the change concerns specifically the registry or a datastore the news fragment can be placed in the relevant subdirectory. + +You can test how the content will be integrated into the release notes by running ``towncrier build --draft --version=V.vv``. +``towncrier`` can be installed from PyPI or conda-forge. diff --git a/doc/lsst.pex.config/CHANGES.rst b/doc/lsst.pex.config/CHANGES.rst new file mode 100644 index 0000000..018d272 --- /dev/null +++ b/doc/lsst.pex.config/CHANGES.rst @@ -0,0 +1,72 @@ +lsst-pex-config v24.0.0 (2022-08-30) +==================================== + +New Features +------------ + +* Add support for python typing of Fields. (DM-35312) +* ``loadFromStream`` now accepts a file-like object. (DM-32733) + +Removals +-------- + +* The old ``root`` name in configuration files has been removed. (DM-32759) +* The Python2 iteration methods (``iterkeys``, etc) have been removed (DM-7148) + +Other Changes +------------- + +* Attempting to pickle a proxy object now fails with a useful error message. (DM-33963) + +lsst-pex-config v23.0.0 (2021-12-21) +==================================== + +Other Changes +------------- + +* Internal data structures have been modified to aid Python reference counting. (DM-31507) + +lsst-pex-config v22.0.0 (2021-07-09) +==================================== + +Other Changes +------------- + +* Fix some issues with history handling. (DM-27519) + +lsst-pex-config v21.0.0 (2020-12-08) +==================================== + +New Features +------------ + +* Configuration objects can now be serialized to YAML. (DM-26008) + +lsst-pex-config v20.0.0 (2020-06-24) +==================================== + +New Features +------------ + +* ``__file__`` can now be accessed within a config file. + This allow the config to acccess another config file relative to this one without having to use an environment variable or ``getPackageDir``. (DM-23359) + +Bug Fixes +--------- + +* Freezing a config no longer affects other instances of that config. (DM-24435) + +Other Changes +------------- + +* It is now possible to print a configuration without the associated imports. (DM-22301) + +lsst-pex-config v19.0.0 (2019-12-05) +==================================== + +New Features +------------ + +* Now released under a dual GPLv3 and 3-clause BSD license. +* Add support for deprecating configuration fields. Such fields are not written out. (DM-20378) +* ``pex_policy`` and ``daf_base`` are now optional dependencies, and the dependency on the LSST ``utils`` package in testing has been removed. (DM-21064) diff --git a/doc/lsst.pex.config/index.rst b/doc/lsst.pex.config/index.rst index 0c5ae57..a740777 100644 --- a/doc/lsst.pex.config/index.rst +++ b/doc/lsst.pex.config/index.rst @@ -10,6 +10,17 @@ The ``lsst.pex.config`` module provides a configuration system for the LSST Scie The `lsst.pex.config.Config` class is an integral part of the task framework (see :ref:`lsst.pipe.base`), though ``lsst.pex.config`` is also useful on its own. Configuration parameters can be validated, documented, and even record the history of their values for provenance. +.. _lsst.pex.config-changes: + +Changes +======= + +.. toctree:: + :maxdepth: 1 + + CHANGES.rst + + Using lsst.pex.config ===================== diff --git a/pyproject.toml b/pyproject.toml index 7f18fb3..21f5103 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -10,5 +10,48 @@ target-version = ["py38"] profile = "black" line_length = 110 +[tool.towncrier] + package = "lsst.pex.config" + package_dir = "python" + filename = "doc/lsst.pex.config/CHANGES.rst" + directory = "doc/changes" + title_format = "lsst-pex-config {version} ({project_date})" + issue_format = "`{issue} `_" + + [[tool.towncrier.type]] + directory = "feature" + name = "New Features" + showcontent = true + + [[tool.towncrier.type]] + directory = "api" + name = "API Changes" + showcontent = true + + [[tool.towncrier.type]] + directory = "bugfix" + name = "Bug Fixes" + showcontent = true + + [[tool.towncrier.type]] + directory = "perf" + name = "Performance Enhancement" + showcontent = true + + [[tool.towncrier.type]] + directory = "misc" + name = "Other Changes and Additions" + showcontent = true + + [[tool.towncrier.type]] + directory = "removal" + name = "An API Removal or Deprecation" + showcontent = true + + [[tool.towncrier.type]] + directory = "doc" + name = "Documentation Enhancement" + showcontent = true + [tool.lsst_versions] write_to = "python/lsst/pex/config/version.py"