Only for developers
This page describes the process/steps for a new software release.
- Version number: Decide on the version number; we follow a MAJOR.MINOR.PATCH scheme. See here. I use version 0.6.0 as an example in the rest of the document.
- Library version: Update the version number in source:gdp/Makefile.
- License update: Make sure that all the source files have the license block set right. We tend to forget this for new files, but a new release is a good time to fix this. See source:adm/update-license.sh
- Repository tagging: In order to make it easy to keep track of the exact code for older releases, we use tags that match the version number, e.g. tag
- Compiled packages: Compile the
.debfiles that we will provide for downloads. (See below)
- File upload: Make sure you get all the
.debfiles, you should have at least 4; 5 if you are also doing a router release. Upload this to the
Filesmodule in redmine.
- Server upgrades: Make sure you update the code on various services that we are running, the most important being the router and the log-servers.
- News item: Post a news item with a brief summary (ideally full Changelog), along with links to the files. DO NOT attach the files to the news item, since the news is world-readable and we are not ready for that yet.
How to make debian packages¶
In git root, use the following:
make VER=0.6.0 debian-package
We need to do this for at least 64-bit x86 and ARM platforms, so make sure you have a beaglebone lying around, ideally with the compilation environment setup. You should now have 3
gdp-client_0.6.0_amd64.deb: C-library, header files, and various utilities (
gdp-reader, etc). This is architecture dependent, and we do need to include both 64-bit x86 version (for swarmboxes) and ARM version (for beaglebone).
python-gdp_0.6.0_all.deb: Python bindings. This is platform independent.
gdp-server_0.6.0_amd64.deb: Server binaries. Platform dependent, but we don't really run servers on ARM, so no need to worry about that.