-
Notifications
You must be signed in to change notification settings - Fork 61
Release Process
Brent Huisman edited this page Jun 22, 2021
·
9 revisions
These notes enumerate the steps required every time we release a new version of Arbor.
- Create new temp-branch? v0.5.1-rc
- Bump the
VERSION
file: https://github.com/arbor-sim/arbor/blob/master/VERSION - Update Python/pip/PyPi metadata and scripts
- Update MANIFEST (required for PyPi step later): https://github.com/arbor-sim/arbor/blob/master/MANIFEST.in
- also checkout
setup.cfg
andsetup.py
- Double check all examples/tutorials/etc not covered by CI
- python setup.py sdist
- python -m venv env
- source env/bin/activate
- move tarball here and extract
- pip install --upgrade pip
- pip install numpy
- pip install ./arbor-0.5.1 --verbose
- python -c 'import arbor; print(arbor.config)'
- twine upload -r testpypi dist/* (have some testrepo)
- create another venv: python -m venv env && source env/bin/activate
- pip install numpy
- pip install -i https://test.pypi.org/simple/ arbor==0.5.1 --verbose
- python -c 'import arbor; print(arbor.config)'
- Create/overwrite
ciwheel
branch with the above branch, and push to Github. - Collect artifact from GA run.
- 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.4.10 python -c 'import arbor; print(arbor.config)'
- Tag and release: https://github.com/arbor-sim/arbor/releases
- on cmdline: git tag -a TAGNAME
- git push origin TAGNAME
- Go to GH tags and click "..." and "Create release"
- Go through merged PRs to come up with a changelog
- Create tarball with
scripts/create_tarball ~/loc/of/arbor tagname outputfile
- eg
scripts/create_tarball /full/path/to/arbor v0.5.1 ~/arbball.tar.gz
- AUTOMATED push to [email protected]:arbor-sim/arbor.git
- Download output of wheel action and extract (verify the wheels and source targz is in /dist)
- Verify wheel
- create venv: python -m venv env && source env/bin/activate
- pip install arbor-0.5.1-cp39-cp39-manylinux2014_x86_64.whl
- python -c 'import arbor; print(arbor.config)'
- Upload to pypi
- twine upload -r arborpypi dist/*
- Verify
- create venv: python -m venv env && source env/bin/activate
- pip install arbor==0.5.1 --verbose
- python -c 'import arbor; print(arbor.config)'
- Update spack package make PR here
- Add release for citation on Zenodo
- Add tagged version of docs on ReadTheDocs
- HBP internal admin
- Plus
- TC Wiki
- KG - Update howto.
- Send an update to the folk in charge of HBP Twitter if we want to shout about it
Here is a description of the steps required to release a version of Arbor to PyPi so that it can be installed using pip. In the example below, we are working with v0.4.
Quick steps to test installation
python -m venv env
source env/bin/activate
pip install --upgrade pip
# test out basic install
pip install git+https://github.com/arbor-sim/[email protected] --verbose
# test out a fancy install (depends on what you have available)
pip install --install-option='--vec' --install-option='--gpu=cuda' --install-option='--mpi' git+https://github.com/arbor-sim/[email protected] --verbose
# test out installation
python -c 'import arbor; print(arbor.__config__)'
# I get the following output:
# {'mpi': False, 'mpi4py': False, 'gpu': True, 'vectorize': True, 'version': '0.4', 'source': '2020-10-07 21:06:47 +0200 4a94032abe2925e462727400105c6c55ef4d87c5', 'arch': 'native'}
python3 -m venv env
source env/bin/activate
pip install --upgrade pip
pip install wheel
pip install twine
git checkout -b v0.4-rc
vim VERSION
git push origin v0.4-rc
# try to install in your virtual env
pip install git+https://github.com/arbor-sim/[email protected]
# try out some different options
pip install --install-option='--vec' --install-option='--gpu=cuda' git+https://github.com/arbor-sim/[email protected]
python setup.py sdist
# check the distribution:
ls dist
# prints the following for this use case:
# arbor-0.4.tar.gz
The source distribution can be expanded somewhere and you can try to install from there. This can save you the latency of uploading it to TestPyPi to discover that there was an issue.
cp dist/arbor-0.4.tar.gz ~/tmp
cd ~/tmp
tar -xzvf arbor-0.4.tar.gz
cd arbor-0.4
# you can check the auto-generated PKF-INFO file.
# check for 'UNKNOWN' in PKG-INFO, which usually indicates incorrect/missing information
# in the setup.py file.
python setup.py install
python3 -m twine upload --repository testpypi dist/*
note give the package a different name in the config.py
if you have to upload multiple times.