Project

General

Profile

Feature #1861

automatize the release process

Added by laforge over 4 years ago. Updated about 3 years ago.

Status:
Resolved
Priority:
Normal
Assignee:
Target version:
-
Start date:
11/28/2016
Due date:
% Done:

100%

Spec Reference:

Description

This is an idea by max: have something like a "make release" that performs all required steps, like
  • updating the version number in autoconf
  • tagging the release in the git repo
  • preparing a release change-log (for human filtering/editing)
  • signing the tag (git tag -s)
  • signign the release (pgp)
  • uploading it?
  • posting a news item on osmoocm.org?

Checklist

  • make sure all projects use semver
  • make test library release
  • make test non-library release
  • update wiki with new release procedure
  • make sure all projects use release helper
  • improve robustness to handle mixed projects
  • make sure all libraries have LIBVERSION

Related issues

Related to Cellular Network Infrastructure - Feature #2531: tweak TODO-RELEASE and LIBVERSION comments to match latest osmo-mgw editsClosed10/04/2017

Related to Cellular Network Infrastructure - Bug #2644: release scripts use "gbp dch" for applications, but not for librariesResolved11/15/2017

Related to Cellular Network Infrastructure - Bug #2643: release scripts shouldn't tag/sign at the same time as "make release"Closed11/15/2017

Associated revisions

Revision 4e72ee0d (diff)
Added by max over 4 years ago

Catch-up with git version tags

  • update debian/changelog
  • update TODO-RELEASE
  • add comments to Makefile.am and TODO-RELEASE to simplify the process
    in future
  • add link to libtool docs to Makefile.am to simplify LIBVERSION
    maintenance

Related: OS#1861
Change-Id: I22c257e357f597519120232d742d6a61289db021

Revision 0bd7a191 (diff)
Added by max almost 4 years ago

Use release helper from libosmocore

Change-Id: Ib8efd2095fcf759276299b516d495219105c1f2b
Related: OS#1861

Revision ff932bbc (diff)
Added by max almost 4 years ago

Add release target to Makefile

Add simple helper target to automate basic release steps:
  • version bump
  • prepare release commit
  • git commit, tag and sign
For library projects:
  • update debian/changelog from TODO-RELEASE
  • cleanup TODO-RELEASE
For non-library projects:
  • update debian/changelog from git log

Note: it requires bumpversion package to be installed, debian/control is
adjusted accordingly. The helper itself is installed to facilitate reuse
by other libraries.

N. B: you still have to manually adjust LIBVERSION in previous commit -
see TODO-RELEASE header for details.

Use it as follows:
make REL=minor release

The REL parameter defines which component of the version [1] to bump and
can be any of { major, minor, patch }.

[1] http://semver.org/

Change-Id: I790ceb958195b9f6cbabfe8c977dc30e2bd7414b
Related: OS#1861

Revision e3260722 (diff)
Added by max almost 4 years ago

Use release helper from libosmocore

Change-Id: Ifc88e5c942a8b430b2436d429c86560d82984a95
Related: OS#1861

Revision d5962a8a (diff)
Added by max over 3 years ago

Relax branch restriction while making release

Previously making release of non-library project from non-master branch
would fail. Relax this check to facilitate submission to gerrit via
topic branches.

Change-Id: Ie89b79a45033bee422e4ff898069ea6ac2c2f524
Related: OS#1861

Revision b026d387 (diff)
Added by max over 3 years ago

Add git-version-gen snippet

Change-Id: Id1732921ecb768b3c3c4872b82b74ccc3d26cf77
Related: OS#1861

Revision 031ac918 (diff)
Added by max over 3 years ago

Update release helper

  • add reference to semver spec
  • use 'patch' release by default
  • unify debian/changelog distro update for library and non-library
    projects
  • abort library release for non-empty TODO-RELEASE if libversion is not
    modified

Change-Id: I413f99cbfa6e6dcc753e3be9fc3c8d682e6a41f3
Related: OS#1861

Revision 099a44ab (diff)
Added by max over 3 years ago

Use release helper from libosmocore

See
https://osmocom.org/projects/cellular-infrastructure/wiki/Make_a_new_release
for details.

Change-Id: Ieb843923d8f534654413be695f2b5f0c87b75520
Related: OS#1861

Revision 03b84ec9 (diff)
Added by max over 3 years ago

Use release helper from libosmocore

See
https://osmocom.org/projects/cellular-infrastructure/wiki/Make_a_new_release
for details.

Change-Id: I01b0aae741b83a3f17f1caf2b6837cf365a1709b
Related: OS#1861

Revision 5a3df8fa (diff)
Added by max over 3 years ago

Use release helper from libosmocore

See
https://osmocom.org/projects/cellular-infrastructure/wiki/Make_a_new_release
for details.

Change-Id: I3ccc8202b650268cc9d1721719ba2f205c351a67
Related: OS#1861

Revision 02e02970 (diff)
Added by max over 3 years ago

Use release helper from libosmocore

See
https://osmocom.org/projects/cellular-infrastructure/wiki/Make_a_new_release
for details.

Change-Id: I39b3bfa8a1ccf376215a3ce220cb3cf7a85471cb
Related: OS#1861

Revision 88d8bcb7 (diff)
Added by max over 3 years ago

Use release helper from libosmocore

See
https://osmocom.org/projects/cellular-infrastructure/wiki/Make_a_new_release
for details.

Change-Id: I869395d5c9ab5ec1a487aff15418d1517f47e831
Related: OS#1861

Revision 938cf564 (diff)
Added by max over 3 years ago

Use release helper from libosmocore

See
https://osmocom.org/projects/cellular-infrastructure/wiki/Make_a_new_release
for details.

Change-Id: I869395d5c9ab5ec1a487aff15418d1517f47e831
Related: OS#1861

Revision 98f6482e (diff)
Added by max over 3 years ago

Make release helper more robust

  • check for bumpversion and error out if missing
  • drop bumpversion dependency from .deb

Change-Id: Ide04d4c1ba20426bdf9531e25b462eda9418858a
Related: OS#1861

History

#1 Updated by msuraev over 4 years ago

  • Status changed from New to Stalled
  • % Done changed from 0 to 10

Gerrit #1427 is an example of some manual steps necessary for release which have to be automated in future.

#3 Updated by laforge over 4 years ago

#4 Updated by msuraev almost 4 years ago

  • Status changed from Stalled to In Progress
  • % Done changed from 10 to 20

Gerrit 3130 with generic implementation has been sent for review. Usage examples were sent in 3131 (libosmo-abis) and 3143 (osmo-bts).

#5 Updated by msuraev almost 4 years ago

  • Status changed from In Progress to Stalled

#6 Updated by msuraev over 3 years ago

  • Checklist item make sure all projects use semver added
  • Checklist item make test library release added
  • Checklist item make test non-library release added
  • % Done changed from 20 to 30

All the patches were merged so far. Next - see checklist.

#7 Updated by msuraev over 3 years ago

  • Checklist item update wiki with new release procedure added

Test library release submitted as gerrit 3595, 3595; non-library release is submitted as 3598.
Minor fix for release helper sent as gerrit 3597.

#8 Updated by msuraev over 3 years ago

  • Checklist item make test library release set to Done
  • Checklist item make test non-library release set to Done

#9 Updated by msuraev over 3 years ago

  • % Done changed from 30 to 70

Test libosmo-abis 0.4.0 release and test osmo-bts 0.6.0 release were pushed.

#10 Updated by msuraev over 3 years ago

  • Checklist item update wiki with new release procedure set to Done

#11 Updated by msuraev over 3 years ago

  • Checklist item make sure all projects use release helper added

#12 Updated by msuraev over 3 years ago

Gerrit 3707-3710 and 3712-3719 were sent for review with the patches adding support for 'make release' command to all remaining projects.

#13 Updated by msuraev over 3 years ago

  • Checklist item make sure all projects use semver set to Done
  • % Done changed from 70 to 80

Everything except for 3710, 3713, 3716, 3717 was merged. Pending are osmo-* (after MSC-split) and osmo-trx.

#14 Updated by msuraev over 3 years ago

  • Checklist item improve robustness to handle mixed projects added
  • Checklist item make sure all libraries have LIBVERSION added
  • Checklist item make sure all projects use release helper set to Done

All remaining patches which add support for release helper were merged. Gerrit 3817 was sent for review with minor improvements.

Based on the feedback in ML, remaining items are:
  • improve robustness to handle repos which contain both some library and non-library code
  • clarify wiki docs

#15 Updated by neels over 3 years ago

  • Related to Feature #2531: tweak TODO-RELEASE and LIBVERSION comments to match latest osmo-mgw edits added

#16 Updated by msuraev over 3 years ago

  • Checklist item make sure all libraries have LIBVERSION set to Done

#17 Updated by msuraev over 3 years ago

  • Related to Bug #2644: release scripts use "gbp dch" for applications, but not for libraries added

#18 Updated by msuraev over 3 years ago

  • Related to Bug #2643: release scripts shouldn't tag/sign at the same time as "make release" added

#19 Updated by laforge about 3 years ago

  • Assignee changed from msuraev to sysmocom

#20 Updated by laforge about 3 years ago

  • Assignee changed from sysmocom to pespin

#21 Updated by pespin about 3 years ago

  • Checklist item improve robustness to handle mixed projects set to Done

#22 Updated by pespin about 3 years ago

  • Status changed from Stalled to Resolved
  • % Done changed from 80 to 100

After a full release round of all projects, I think the automatization is good enough for now. Small Specific stuff to be done is handled in less-generic tasks.
Wiki has been updated will all related interesting documentaiton. https://osmocom.org/projects/cellular-infrastructure/wiki/Make_a_new_release

Also available in: Atom PDF

Add picture from clipboard (Maximum size: 48.8 MB)