Maintainer Info#

This is a collection of some notes for maintainers.

Python / NumPy Versions To Support#

ctapipe follows NEP 29.

This means ctapipe will require the following minimum python / numpy releases vs. time:

  • After 2023-01-31 drop support for NumPy 1.20 (initially released on 2021-01-31)

  • After 2023-04-14 drop support for Python 3.8 (initially released on 2019-10-14)

  • After 2023-06-23 drop support for NumPy 1.21 (initially released on 2021-06-22)

  • After 2024-01-01 drop support for NumPy 1.22 (initially released on 2021-12-31)

  • After 2024-04-05 drop support for Python 3.9 (initially released on 2020-10-05)

  • After 2024-06-22 drop support for NumPy 1.23 (initially released on 2022-06-22)

  • After 2024-12-18 drop support for NumPy 1.24 (initially released on 2022-12-18)

  • After 2025-04-04 drop support for Python 3.10 (initially released on 2021-10-04)

  • After 2026-04-24 drop support for Python 3.11 (initially released on 2022-10-24)

However, for specific features, ctapipe could require more recent versions of numpy. E.g. for the astropy quantity interoperability, we required 1.17 earlier than 2021.

How To Update the Online Docs?#

The docs are automatically built and deployed using readthedocs.

How To Make a Release?#

  1. Open a new pull request to prepare the release. This should be the last pull request to be merged before making the actual release.

    1. Run towncrier to render the changelog:

      $ git fetch
      $ git switch -c prepare_<VERSION NUMBER> origin/main
      $ towncrier build --version=<VERSION NUMBER>
      
    2. Add the planned new version to the docs/_static/switcher.json file, so it will be available from the version dropdown once the documentation is built.

    3. Update the AUTHORS file using the following command:

      $ bash -c "git shortlog -sne | grep -v dependabot | sed -E 's/^\s+[0-9]+\s+//' > AUTHORS"
      
  2. Create a new GitHub release. A good starting point should already be made by the release drafter plugin.

  3. The PyPI upload will be done automatically by GitHub Actions.

  4. conda packages are built by conda-forge, the recipe is maintained here: conda-forge/ctapipe-feedstock. A pull request to update the recipe should be opened automatically by a conda-forge bot when a new version is published to PyPI. This can take a couple of hours. You can make it manually to speed things up.