Skip to content

NewRelease

Andy Porter edited this page Dec 16, 2024 · 23 revisions

Guidelines for a new PSyclone Release

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

  2. Check out (or update local copy of) the master branch.

  3. Ensure master is frozen.

  4. Ensure that the release candidate 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.

  5. If this needs changing then you will have to go through a review process to check that the everything is working correctly. You should also 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)

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

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

  8. Check that all PSyclone developers are happy with the draft release.

  9. 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. Commit.

  10. Regenerate PSyclone.pdf. Commit.

  11. Update the changelog. Commit and push to GitHub.

  12. Once the master branch on GitHub has all these changes, use GitHub to create the release using the draft created at step 7.

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

  14. Manually upload the release to pypi by doing the following: https://packaging.python.org/tutorials/packaging-projects. Currently the directions are: <use python3>; pip install --upgrade setuptools wheel; <cd PSyclone>; python setup.py sdist bdist_wheel; pip install --upgrade twine; twine upload dist/*

  15. Update PSyclone in upstream Spack:

    • 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;

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

  17. Update Zenodo with the new release;

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

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

  20. Close issue.

Clone this wiki locally