-
Notifications
You must be signed in to change notification settings - Fork 2
Release strategy
Jonas Eschle edited this page Apr 16, 2024
·
14 revisions
zfit follows the major.minor.patch strategy. 1.0 should be considered stable, larger breaks should occur in the 'major' version only. (the instructions are equivalent for zfit-physics etc)
- update contributers and authors
- adjust changelog titles
- check that docs build in readthedocs or local
- create a new github release with a tag of the exact release version, i.e. "major.minor.patch" such as "0.5.1". This triggers the CD.
- check if the Github Action build succeeded and the cd sucessfully runs the deploy stage
- update conda-forge recipe if needed, a PR will automatically be created (usually within a day of the GH release). Just change things there
- create a Spack update (for instructions, see below)
To update the spack version, fork & clone the spack repository. Edit the zfit, called py-zfit, file and add the new version. To do this:
- activate spack with
source spack/shape/spack/setup-env.sh
- run
spack checksum py-zfit
This will print out something like==> Selected 58 versions. 51 new versions 0.20.1 https://files.pythonhosted.org/packages/source/z/zfit/zfit-0.20.1.tar.gz 0.20 https://files.pythonhosted.org/packages/source/z/zfit/zfit-0.20.tar.gz 0.18.2 https://files.pythonhosted.org/packages/source/z/zfit/zfit-0.18.2.tar.gz 0.18.1 https://files.pythonhosted.org/packages/source/z/zfit/zfit-0.18.1.tar.gz 0.18.0 https://files.pythonhosted.org/packages/source/z/zfit/zfit-0.18.0.tar.gz 0.17.0 https://files.pythonhosted.org/packages/source/z/zfit/zfit-0.17.0.tar.gz 0.16.0 https://files.pythonhosted.org/packages/source/z/zfit/zfit-0.16.0.tar.gz 0.15.5 https://files.pythonhosted.org/packages/source/z/zfit/zfit-0.15.5.tar.gz 0.15.2 https://files.pythonhosted.org/packages/source/z/zfit/zfit-0.15.2.tar.gz ... 0.2.0 https://files.pythonhosted.org/packages/source/z/zfit/zfit-0.2.0.tar.gz ==> Enter number of versions to take, or use a command: [c]hecksum [e]dit [f]ilter [a]sk each [n]ew only [r]estart [q]uit
- enter
f
(for filter), then enter a filter (i.e. to get all versions 0.20.0 and higher, do0.20:
, inclusive start). This should return==> Selected 2 of 58 versions. 2 new versions. Filtered by @0.20: 0.20.1 https://files.pythonhosted.org/packages/source/z/zfit/zfit-0.20.1.tar.gz 0.20 https://files.pythonhosted.org/packages/source/z/zfit/zfit-0.20.tar.gz
- press
c
; this will retrieve the checksum and return something like==> Fetching https://files.pythonhosted.org/packages/source/z/zfit/zfit-0.20.1.tar.gz ==> Fetching https://files.pythonhosted.org/packages/source/z/zfit/zfit-0.20.tar.gz version("0.20.1", sha256="c834953548be6e1a69ce48eb561b63a6ca8c6cee3bad2d33b98fa5c16001fc27") version("0.20", sha256="ec39f0118fe8f918a488dacc633279321a06bb88fc0dc09207830516177ca4ff")
- copy these lines into the package.py file
- update other dependencies. In short,
@when
refers to the zfit version, with"0.20.1:0.20"
meaning "from 0.20.1 (inclusive) to 0.20.x (inclusive), i.e. anything with 0.20.1 up to 0.20.ANY will have this requirement - run
spack style --fix
to invoke the formatter - push and make a PR. Maybe link to the changed requirements or release notes for a quicker review.