Release procedure¶
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/user/installation.rst: Update supported operating systems.
Documentation¶
These apply to all projects:
CHANGELOG.MD and
NEWS.MD: Update the latest header, fix the order, remove empty sections and (re)group the entries if necessary.
debian/changelog: Insert a new section for the new version with the tooldchor update the version of the existing last item if yet unreleased.
IntelMQ¶
intelmq/version.py: Update the version.
Eventually adapt the default log levels if necessary. Should be INFO for stable releases. See older releases.
IntelMQ API¶
intelmq_api/version.py: Update the version.
IntelMQ Manager¶
intelmq_manager/version.py: Update the version.
intelmq_manager/static/js/about.js: Update the version.
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.
Docker Image¶
Releasing a new Docker image is very easy.
Clone IntelMQ Docker Repository with
git clone https://github.com/certat/intelmq-docker.git --recursiveas this repository contains submodulesIf the
intelmq-dockerrepository is not updated yet, use git pull –recurse-submodules to pull the latest changes from their respective repository.Run
./build.sh, check your console if the build was successful.Run
./test.sh- It will run nosetests3 with the exotic flag. All errors/warnings will be displayed.Change the
build_versioninpublish.shto the new version you want to release.Change the
namespacevariable in publish.sh.If no error/warning was shown, you can release with
./publish.sh.Update the DockerHub ReadMe and add the latest version.
Commit and push the updates to the
intelmq-dockerrepository``
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.
IntelMQ¶
For CHANGELOG.md:
### Configuration
### Core
### Development
### Data Format
### Bots
#### Collectors
#### Parsers
#### Experts
#### Outputs
### Documentation
### Packaging
### Tests
### Tools
### Contrib
### Known issues
And for NEWS.md:
### Requirements
### Tools
### Data Format
### Configuration
### Libraries
### Postgres databases
IntelMQ API¶
An empty section of CHANGELOG.rst.
IntelMQ Manager¶
For CHANGELOG.md:
### Pages
#### Landing page
#### Configuration
#### Management
#### Monitor
#### Check
### Documentation
### Third-party libraries
### Packaging
### Known issues
And an empty section in the NEWS.md file.