Releases¶
Release cycle¶
release every 3 months (at time
T
)T-11
weeks:all
add your favorite Issues to the next-rel columnT-10
weeks:Scrum Master
prep dev meet (internal)Update/trim next-release column in Kanban
Prepare agenda, include possible additions not covered by Kanban/Issues
Add milestone tags (nextver, nextver+1, etc.)
Add highlighted new features to RELEASE_NOTES.md
T-8
weeks:Release Manager
dev meet (external/public)Use Kanban as starter
Move issues around based on input
Add milestone tags, for this release or future releases
Update highlighted new features to RELEASE_NOTES.md
T-1
:all
reserve week for wrapping up PRs and review.T±0
:Release Manager
release!Have a look at Python release schedule, and time Arbor release optimally with new Python minor version. It is nice to generate wheels for the new minor as soon as minor is released.
T+1
weeks:Scrum Master
retrospectiveset date for next release
Procedure¶
These notes enumerate the steps required every time we release a new version of Arbor.
Pre-release¶
Test the RC¶
Collect artifact from the above GA run. In case you want to manually want to trigger
ciwheel.yml
GA, overwrite theciwheel
branch with the commit of your choosing and force push to Github.twine upload -r testpypi dist/*
Ask users to test the above, e.g.:
python -m venv env && source env/bin/activate
pip install numpy
pip install -i https://test.pypi.org/simple/ arbor==0.6-rc
python -c 'import arbor; print(arbor.__config__)'
Release¶
Make sure
ciwheel.yml
passes tests, produced working wheels, and nobody reported problems testing the RC. Make sureVERSION
does not end with-rc
or-dev
Create tarball with
scripts/create_tarball ~/loc/of/arbor tagname outputfile
eg
scripts/create_tarball /full/path/to/arbor v0.5.1 ~/arbor-v0.5.1-full.tar.gz
Tag and release: https://github.com/arbor-sim/arbor/releases
on cmdline: git tag -a TAGNAME
git push upstream TAGNAME
Go to GH tags and click “…” and “Create release”
Go through merged PRs to come up with a changelog Or categorize/edit Github’s autogenerated release notes.
add tarball to release, created in previous step.
[AUTOMATED] push to git@gitlab.ebrains.eu:arbor-sim/arbor.git
Download output of wheel action associated to this release commit and extract (verify the wheels and source targz is in /dist)
Of course, the above action must have passed the tests successfully.
Upload to TEST pypi & verify
twine upload -r arborpypi dist/*
python -m venv env && source env/bin/activate
pip install numpy
pip install -i https://test.pypi.org/simple/ arbor==0.6
python -c 'import arbor; print(arbor.__config__)'
Upload to pypi & verify
twine upload -r arborpypi dist/*
python -m venv env && source env/bin/activate
pip install arbor
python -c 'import arbor; print(arbor.__config__)'
Update spack package / Ebrains Lab
first, update
spack/package.py
. The checksum of the targz is the sha256sum.Then, use the file to make PR here
Make an MR here
In the same PR with the update to spack/package.py, bump VERSION file.
e.g. to 0.6.1-dev
In the same PR with the update to spack/package.py, add new Zenodo badge/link.
Start a new release on Zenodo, this allocated a DOI, but you don’t have to finish it right away. OTOH, you can already make and upload the tarball in step 1.
Post Release¶
Update and submit Zenodo release if necessary.
Announce on our website
Announce on HBP newsletter newsletter@humanbrainproject.eu, HBP Twitter/socials evan.hancock@ebrains.eu
[AUTOMATED] Add tagged version of docs on ReadTheDocs
HBP internal admin
TC Wiki: https://wiki.ebrains.eu/bin/view/Collabs/technical-coordination/EBRAINS%20components/Arbor/
KG: https://search.kg.ebrains.eu/instances/5cf4e24b-b0eb-4d05-96e5-a7751134a061
Update howto: https://github.com/bweyers/HBPVisCatalogue/wiki/How-to-start-software-meta-data-curation%3F#update-curated-software
Previous update as template: https://github.com/bweyers/HBPVisCatalogue/issues/480
Supported file formats
Send an update to the folk in charge of HBP Twitter if we want to shout about it
FZJ admin