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 tooldch
or 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 --recursive
as this repository contains submodulesIf the
intelmq-docker
repository 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_version
inpublish.sh
to the new version you want to release.Change the
namespace
variable 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-docker
repository``
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.