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¶
Release¶
Make sure no errors were encountered in the pre-release phase, working wheels were produced, and were installable from Test.PyPI.org and that no problems were reported.
Change
VERSION
. Make sure does not end with-rc
or-dev
.Update
scripts/check-all-tags.sh
to check the current tag.Tag
commit and either reuse the draft PR for the RC, or open a new one.
once merged, make and push tag.
on cmdline:
git tag -a TAGNAME
git push upstream TAGNAME
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__)'
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
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.
Update
spack/package.py
. The checksum of the targz is the sha256sum.Start a new release on Zenodo, this allocated a DOI, but you don’t have to finish it right away. Add new Zenodo badge/link to docs/README.
Create Github Release: https://github.com/arbor-sim/arbor/releases
Go to GH tags and click “…” and “Create release”
Categorize/edit Github’s autogenerated release notes (alternatively go through merged PRs to come up with a changelog).
add tarball to release, created in previous step.
Update Zenodo with authors and changelog created in previous step and submit.
Post Release¶
Make a new PR setting
VERSION
to the next with a trailing-dev
. E.g. if you just release3.14
, changeVERSION
to3.15-dev
Include changes such as to
spack/package.py
,CITATIONS
,doc/index.rst
in postrel PR. Copy Zenodo BibTex export toCITATIONS
.
Update spack package / Ebrains Lab / Opensourcebrain
Spack upstream: PR here
Ebrains Lab: MR here
OSB: update dockerfile if needed.
Make sure that Notebooks work on the version that their image is built with.
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