Release procedure¶
Table of Contents:
General assumption: You are working on branch maintenance, the next version is a bug fix release. For feature releases it is slightly different.
Check before¶
Make sure the current state is really final ;) You can test most of the steps described here locally before doing it real.
Check the upgrade functions in
intelmq/lib/upgrades.py
.Close the milestone on GitHub and move any open issues to the next one.
docs/INSTALL.md
: Update supported operating systems.
Documentation¶
CHANGELOG.MD and
NEWS.MD: Update the latest header, fix the order, remove empty sections and (re)group the entries if necessary.
intelmq/version.py
: Update the version.debian/changelog
: Insert a new section for the new version with the tooldch
.
Eventually adapt the default log levels if necessary. Should be INFO for stable releases. See older releases.
Commit, push, review and merge¶
Commit your changes in a separate branch, the final commit’s message should start with REL:
. Push and create a pull request to maintenance and after that from maintenance to master. Someone else should review the changes. Eventually fix them, make sure the REL:
is the last commit, you can also push that one at last, after the reviews.
Why a separate branch? Because if problems show up, you can still force-push to that one, keeping the release commit the latest one.
Tag and release¶
Tag the commit with git tag -s version HEAD
, merge it into master, push the branches and the tag. The tag is just a.b.c
, not prefixed with v
(that was necessary only with SVN a long time ago…).
Go to https://github.com/certtools/intelmq/tags and enter the release notes (from the CHANGELOG) for the new tag, then it’s considered a release by GitHub.
Tarballs and PyPI¶
Build the source and binary (wheel) distribution:
python3 setup.py sdist bdist_wheel
Upload the files including signatures to PyPI with e.g. twine:
twine upload -s dist/intelmq...
Packages¶
We are currently using the public Open Build Service instance of openSUSE: http://build.opensuse.org/project/show/home:sebix:intelmq
First, test all the steps first with the unstable-repository and check that at least installations succeed.
Create the tarballs with the script
create-archives.sh
.Update the dsc and spec files for new filenames and versions.
Update the .changes file
Build locally for all distributions.
Commit.
Announcements¶
Announce the new version at the mailinglists intelmq-users, intelmq-dev. For bigger releases, probably also at IHAP, Twitter, etc. Ask your favorite social media consultant.
Prepare new version¶
Increase the version in intelmq/version.py
and declare it as alpha version.
Add the new version in intelmq/lib/upgrades.py
.
Add a new entry in debian/changelog
with dch -v [version] -c debian/changelog
.
Add new entries to CHANGELOG.md
and NEWS.md
. For CHANGELOG.md
:
### Configuration
### Core
### Development
### Harmonization
### Bots
#### Collectors
#### Parsers
#### Experts
#### Outputs
### Documentation
### Packaging
### Tests
### Tools
### Contrib
### Known issues
And for NEWS.md
:
### Requirements
### Tools
### Harmonization
### Configuration
### Libraries
### Postgres databases