Skip to content

NewRelease

Sergi Siso edited this page Nov 27, 2025 · 27 revisions

Guidelines for a new PSyclone Release

  1. Create a "new release" Issue. e.g. #337

  2. Create a release candidate PR and ensure that it works with a released version of fparser. As part of this:

    • Ensure that the line in the PSyclone/.github/workflows/python-package.yml file that separately installs the fparser submodule from the git submodule (pip install external/fparser) is commented out.

    • Ensure that the version of fparser pointed to by the git submodule (PSyclone/external/fparser) is consistent with the release of fparser specified in setup.py. cd submodule_name; git checkout master <or required version>; git pull; cd ..; git add submodule_name; git commit (if you want to at this point)

    • Ensure that the install_requires line in setup.py specifies the precise version of fparser to use (e.g. 'fparser==0.0.14').

    • Update the version number in src/psyclone/version.py, doc/reference_guide/doxygen.config. Also check that the copyright dates in the latter file as well as the doc/{user_guide,developer_guide,reference_guide/source}/conf.py files are correct.

    • Temporarily remove the trailing "-dev" from the version strings in src/psyclone/version.py. i.e. change:

      __SHORT_VERSION__ = f"{__MAJOR__:d}.{__MINOR__:d}-dev"
      __VERSION__ = f"{__MAJOR__:d}.{__MINOR__:d}.{__MICRO__:d}-dev"
      to
      __SHORT_VERSION__ = f"{__MAJOR__:d}.{__MINOR__:d}"
      __VERSION__ = f"{__MAJOR__:d}.{__MINOR__:d}.{__MICRO__:d}"
  3. Go through the standard review process. Once approved the changelog should be updated with the release number and date.

  4. Use GitHub to create a draft new release: https://github.com/stfc/PSyclone/releases. It will create a new tag with the release number and it will auto-generate release notes if you ask it too but these will typically require editing to make them more user friendly.

  5. Once the master branch on GitHub has all these changes from step 3 (and completed the CI) and all PSyclone developers are happy with the draft release in step 4, use GitHub to create the release using the draft.

  6. If read the docs fails then login and force rebuild manually.

  7. A 'Upload Release to PyPI' action should automatically be submitted, but this needs to be manually approved. If if fails, follow the documentation in: https://packaging.python.org/tutorials/packaging-projects.

  8. Check that a) pypi has created a new release, b) read the docs stable and latest has documentation from the latest release.

  9. Update PSyclone in upstream Spack and Conda:

    • Create a fork of the Spack repo (https://github.com/spack/spack);

    • Create a branch in this fork for the version update;

    • Use spack edit py-psyclone to update the PSyclone package;

    • Create a pull request on the Spack repo for this branch;

  10. Tell lfric list and PSyclone teams we have a new release and summarise relevant new features.

  11. Optionally: tell Karen, Holly, Marion that we have a new release and summarise interesting new features.

  12. Close issue.

After the release:

  1. Revert your changes to version.py;

  2. Revert your changes for fparser.

Clone this wiki locally