Commit Graph

5 Commits

Author SHA1 Message Date
Harald Welte ee497f245e Fixup severe build performance issues
Make variable substitution calling bumpversion and other commands
introduce by osmo-release.mk has severely slowed down builds.

Inside the makefile we could use $(eval FOO:=$(shell...)) constructs
to have variable substitution only happen once the 'release' target
is executed. However, 'ifeq' and friends don't work with such late
constructs. Let's shift all release action into a helper shell script
that is called from the Makefile instead.

This way we get the best of both worlds: No performance impact during
normal builds, and the convenience of 'make release'.

Modified-by: Max <msuraev@sysmocom.de>

Related: OS#2524

Change-Id: I98b3b5fe3db39953cea969a9dfbb75889df2e1ea
2017-10-04 16:26:37 +02:00
Max 98f6482ec7 Make release helper more robust
* check for bumpversion and error out if missing
* drop bumpversion dependency from .deb

Change-Id: Ide04d4c1ba20426bdf9531e25b462eda9418858a
Related: OS#1861
2017-09-15 15:04:20 +00:00
Max 031ac91807 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
2017-08-26 18:35:06 +00:00
Max d5962a8ac7 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
2017-08-24 13:24:04 +02:00
Max ff932bbc38 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
2017-08-08 11:55:03 +00:00