Release Process
This is the process for tagging and publishing a release. Change the release version number and paths as appropriate. Release version numbers are in the form YYYY.major.minor where YYYY is the year and major, minor are the release numbers.
Create Environment
pyenv install 3.9
pyenv virtualenv 3.9 gsg-release
pyenv local gsg-release
python -m pip install --upgrade pip
pip install --upgrade setuptools setuptools_git_versioning build twine
Dependencies
pip install pyyaml wheel git-archive-all
Clone Repository
# clone repository
git clone git@github.com:greatscottgadgets/greatfet.git greatfet.git
# update submodules
cd greatfet.git/
git submodule update --init --recursive
Update RELEASENOTES.md from previous release
update
RELEASENOTES.mdfor the latest release
Prepare release
RELEASE_VERSION=2024.0.1 make prepare_release
Push Release Tag
git tag -a v2024.0.1 -m 'release 2024.0.1'
git push --tags
“Draft a new release” on github
call it “release 2024.0.1”
paste release notes (just for this release, not previous)
upload .tar.xz and .zip files
Upload release to PyPI
python -m twine upload –repository pypi host-packages/*
Announce the release
discord
greatfet mailing list