ReleaseManagement - geopython/pygeoapi GitHub Wiki
The following are step by step instructions on how to package a release.
Building the Release Packages
Source Code
Step 1
Make sure the source builds and works locally, and the docs build with no errors
Step 2
Make sure the source passes GitHub Actions CI, OGC CITE tests and unit tests
Step 3
Create a release tag against master:
- update desired branch with
x.y.z
inpygeoapi/__init__.py
anddocs/source/conf.py
- update changelog information in
debian/changelog
- commit the above updates:
# in branch master
git commit -m 'update release version' pygeoapi/__init__.py docs/source/conf.py debian/changelog
git push origin master # or branch if releasing from a branch
Release tags are in the format x.y.z
If releasing from master:
git tag -a x.y.z -m 'tagging x.y.z'
git push --tags
If a stable branch is required:
git checkout -b x.y
# pin requirements in requirements.txt as per RFC2
git push x.y
If releasing from a branch:
git checkout x.y
git tag -a x.y.z -m 'tagging x.y.z'
git push --tags
Release to PyPI:
python3 setup.py sdist bdist_wheel --universal
twine upload dist/*
Step 4
Create Docker Image on DockerHub for release/tag (you'll need permission for that repo on DockerHub):
- Go to pygeoapi DockerHub Builds Page.
- Press the blue button "Configure Automated Builds"
- Under "Build Rules" press the '+' button
- In new build rule choose: Source Type
tag
and fill-in new tagx.y.z
in Source and Docker Tag columns - Disable toggle Build Caching in last column
- Press the button Save (Save and Build will build all tagged Images!)
- Press the button Trigger Build
- Inspect the build progress (may take up to 15 mins!) on builds
Step 5
Upgrade stable
version of pygeoapi
on demo.pygeoapi.io/stable. Not automated yet!
Requires changes within the demo.pygeoapi.io GitHub repo and the demo server:
- edit/commit/push
services/pygeoapi_stable/docker-compose.yml
: set new version tagx.y.z
ofimage: geopython/pygeoapi: x.y.z
- edit/commit/push
services/pygeoapi_stable/local.config.yml
: set new version inmetadata.identification.title
- login with admin account on demo server
demo.pygeoapi.io
cd ~/git
- pull changes on server:
./refresh-git.sh
- no rebuild needed, only possible changes in local.config.yml if config-conventions have changed
- restart:
cd ~/git/services/pygeoapi_stable
- restart:
./stop.sh
then./start.sh
Step 6
Update https://github.com/geopython/pygeoapi.io/blob/master/docs/download.md
Push updates
git commit -m 'update release' docs/download.md
git push origin master
Step 7
Add the x.y.z documentation to readthedocs.org
- go to https://readthedocs.org/projects/pygeoapi
- under 'Build a version', select 'latest' and click 'Build'
- this will cause readthedocs.org to sync release tags, new version will appear
- go to https://readthedocs.org/projects/pygeoapi/versions
- find x.y.z
- click 'Active' and ensure visibility is set to 'Public'
- click 'Submit'
Step 8
Create a release on GitHub.
- Go to https://github.com/geopython/pygeoapi/releases
- Click 'Draft a new release'
- Under 'Tag Version' add the relevant release tag (x.y.z)
- Release title should be
pygeoapi x.y.z
- Release description should be per below:
The pygeoapi team announces the release of x.y.z.
<high level description>
## Download
- source code: https://pygeoapi.io/download
- PyPI: https://pypi.org/project/pygeoapi
## At a glance
- [xx Issues fixed](https://github.com/geopython/pygeoapi/issues?q=is%3Aissue+milestone%3Ax.y.x+is%3Aclosed)
- [xx Pull Requests contributed](https://github.com/geopython/pygeoapi/pulls?q=is%3Apr+milestone%3Ax.y.z+is%3Aclosed)
## API
- TODO
## Web/UI/HTML
- TODO
## Providers
- TODO
## Configuration
- TODO
## Documentation
- TODO
## Other
- TODO
## Thanks
The pygeoapi team gives thanks for all contributions made for this release.
As always, all contributions are always welcome.
The pygeoapi team
https://pygeoapi.io
Step 9
- Email mailing list:
Subject: pygoeapi x.y.z released
Body:
The pygeoapi team announces the release of pygeoapi x.y.z.
Please see the release announcement at https://github.com/geopython/pygeoapi/releases/tag/x.y.z for more information.
The pygeoapi team gives thanks for all contributions made for this release.
As always, all contributions are always welcome.
The pygeoapi team
https://pygeoapi.io
Step 10
-
Tweet release from the pygeoapi Twitter account with link to GitHub release
-
Toot notification from pygeoapi Mastodon account with link to GitHub release
-
Update the pygeoapi OSGeo project page if features have been updated (i.e. new standard support, etc.)
Step 11
Update version in master back to dev (x.y.dev0)