Hi.
So far releases of Osmocom project were rather rare and without any schedule. It would be nice to change that but to do that we've got to make the process of making a release as smooth as possible.
The ticket which tracks this activity: https://projects.osmocom.org/issues/1861
What we have right now: https://osmocom.org/projects/cellular-infrastructure/wiki/Make_a_new_release
What I've implemented: https://gerrit.osmocom.org/#/c/3130/
The TLDR:
we type "make REL=minor release" and get:
* signed and tagged commit
* automated version bump
* updated debian/changelog
Longer explanation:
That's implemented as separate makefile which is installed as part of libosmocore-dev and can be re-used by other projects in few lines (see https://gerrit.osmocom.org/#/c/3131/ for example).
It treats libraries separately from non-library projects (we don't have to clean up TODO-RELEASE in the latter case). Also, it does not update LIBVERSION automatically (see https://www.gnu.org/software/libtool/manual/html_node/Updating-version-info...." for details) - I'm not quite sure how this can be automated.
Caveats:
- it does not push the committed result automatically - so far it's left as an additional chance to inspect the changes before pushing them. Also I'm not sure if we have to tweak our gerrit setup to allow for signed tags to go through and how will it interact with auto-rebase.
- it does not replace human decision, it's still your job to adjust version requirements for the libraries you use and properly bump LIBVERSION
- it enforces use of semantic versioning (see my previous email about semver and http://semver.org/ for details)
Questions:
- does it make sense?
- what and, more importantly, how can we automate in addition to that?
The intention is to make release process easy enough so we could make releases more frequently (maybe even have some schedule for it in a long run).