ctapipe is not stable yet, so expect large and rapid changes to structure and functionality as we explore various design choices before the 1.0 release.

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.

    Run towncrier in to render the changelog:

    $ git fetch
    $ git switch -c prepare_<VERSION NUMBER> origin/main
    $ towncrier build --version=<VERSION NUMBER>

    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.

  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.