-
Notifications
You must be signed in to change notification settings - Fork 16
ReleaseManagement
Tom Kralidis edited this page Jan 27, 2025
·
68 revisions
The following are step-by-step instructions on how to package a wis2box release.
Ensure upstream packages are tagged/release as required.
Package name | Release tag | Package indexes | Container registries | Notes |
---|---|---|---|---|
csv2bufr | x | PyPI | https://github.com/wmo-im/csv2bufr#releasing | |
bufr2geojson | x | https://github.com/wmo-im/bufr2geojson#releasing | ||
pymetdecoder | x | https://github.com/wmo-im/pymetdecoder | ||
synop2bufr | x | https://github.com/wmo-im/synop2bufr#releasing | ||
pyoscar | x | PyPI | https://github.com/wmo-cop/pyoscar#releasing | |
pywcmp | x | PyPI | https://github.com/wmo-im/pywcmp#releasing | |
pywis-pubsub | x | PyPI | https://github.com/wmo-im/pywis-pubsub#releasing | |
pywis-topics | x | PyPI | https://github.com/wmo-im/pywis-topics#releasing | |
wis2box-api | x | ghcr.io | https://github.com/wmo-im/wis2box-api#releasing | |
wis2box-ui | x | ghcr.io | https://github.com/wmo-im/wis2box-ui#releasing | |
wis2box-webapp | x | ghcr.io | https://github.com/wmo-im/wis2box-webapp#releasing | |
wis2box-auth | x | ghcr.io | https://github.com/wmo-im/wis2box-auth#releasing |
- Remember the versions, which will be used later on in the release process
Make sure the source passes GitHub Actions CI.
wis2box follows the Semantic Versioning Specification (SemVer).
Create a release tag against main:
- update desired branch with
x.y.z
in-
wis2box-management/wis2box/__init__.py
(__version__
) VERSION.txt
docs/source/user/setup.rst
-
- commit the above updates:
# in branch main
git commit -m 'update release version x.y.z' wis2box-management/wis2box/__init__.py docs/source/user/setup.rst VERSION.txt
git push origin main # or branch if releasing from a branch
Release tags are in the format x.y.z
If releasing from main:
git tag -a x.y.z -m 'tagging release x.y.z'
git push --tags
If releasing from a branch:
git checkout x.y
git tag -a x.y.z -m 'tagging release x.y.z'
git push --tags
Update https://github.com/wmo-im/wis2box-release/blob/main/docker-compose.images.yml to reflect the releases of the images that will comprise the wis2box release.
Create release asset bundle (default configuration and docker-compose setup files)
mkdir -p asset/wis2box-x.y.z
#vi docker-compose.yml # change all containers with to their tagged and built equivalent on GHCR
#vi docker-compose.monitoring.yml # change all containers to their tagged and built equivalent on GHCR
# copy required docker configs and env file bootstrap
cp docker-compose.monitoring.yml docker-compose.wis2box-ftp.yml docker-compose.data-subscriber.yml docker-compose.override.yml docker-compose.ssl.yml docker-compose.yml VERSION.txt asset/wis2box-x.y.z
cp -rp nginx prometheus loki grafana asset/wis2box-x.y.z
cp wis2box-ctl.py wis2box-create-config.py asset/wis2box-x.y.z
# discard local changes
git checkout docker-compose.yml docker-compose.monitoring.yml
cd asset
# create README
cat << EOF > wis2box-x.y.z/README.txt
wis2box setup
=============
Please see https://docs.wis2box.wis.wmo.int/en/x.y.z/user/setup.html for setting up wis2box from example configurations in this directory.
EOF
# create zipfile for upload to release.
zip -r wis2box-setup-x.y.z.zip wis2box-x.y.z
Save the resulting wis2box-setup-x.y.z.zip
locally.
Create a release on GitHub.
- Go to https://github.com/wmo-im/wis2box/releases
- Click 'Draft a new release'
- Under 'Tag Version' add the relevant release tag (x.y.z)
- Release title should be
x.y.z
- Release description should be:
- major or minor releases:
wis2box x.y.z has been released. See the [release announcement](URL) for more information.
-
URL
should be a link to the announcement made on wis2box Discussions
-
- patch/bugfix releases:
wis2box x.y.z has been released. This release is a maintenance/bugfix release.
- major or minor releases:
- upload
wis2box-setup-x.y.z.zip
(from Step 6) as part of the release announcement - Ensure 'Create a discussion for this release' is checked to also publish to GitHub Discussions
- Click 'Publish release'
- Go to https://github.com/wmo-im/wis2box/discussions
- Rename the release from 'x.y.z' to 'wis2box x.y.z released'
- Update default version in documentation/Read the Docs
- Update https://readthedocs.org/dashboard/wis2box/advanced/ so that "Default version" points to the the release
- Click "Save"
- Post release announcement to wis2box GitHub Discussions
- Tweet release
- TODO: other communication channels?
- Update version in main back to dev (x.y.dev0)
wis2box-management/wisbox/__init__.py
git commit -am 'back to dev'
git push origin main