Commit Graph

19 Commits

Author SHA1 Message Date
Pau Espin 5d39e05bf4 osmo-release.sh: Improve of PKG_CHECK_MODULES from configure.ac
Remove brackets and check for "(" after PKG_CHECK_MODULES to avoid
getting comments containing the keyword.

Change-Id: Ie2b9a65d42615aa3cce6906ddd53758bc3052942
2020-01-02 18:33:26 +01:00
Pau Espin 24277b4db5 osmo-release.sh: Use set -e before applying changes to prepare release
Change-Id: I783c3645537258a75ae6f5a684489d629b852188
2019-12-03 17:36:20 +01:00
Pau Espin a609713246 osmo-release.sh: update TODO-RELEASE for non-lib projects too
Projects not containing libraries may also want to contain a
TODO-RELEASE in order to write down when a new API available only on
libosmoXYZ current master (hence configure.ac and debian cannot be
updated during the patch using the API until the APIs are available in a
new release). This way, during release process of the project, the
maintainer can see that a release of libosmoXYZ is needed beforehand and
then update configure.ac of project accordingly with the new version of
libosmoXYZ.

Furthermore, we want to update the file only if mode DRY_RUN is not
selected.

Change-Id: I409b7eb8c23d21473f25dd2000f5d4447b24adb9
2019-09-20 15:11:03 +00:00
Pau Espin c996d652f9 osmo-release.sh: Support releasing openbsc.git
openbsc's directory structure is a bit different (has most stuff inside
an extra subdir). Let's account for that.

Change-Id: I407cf47d8339d99c74a976460ea84fffe679dfd8
2019-08-08 18:20:38 +02:00
Pau Espin 3a8d5d390d osmo-release.sh: Check patches under debian/patches apply
Change-Id: I614080361f3cc5bfb89994a8e8e36981529cd439
2019-08-08 12:59:40 +02:00
Pau Espin 6d57556c97 osmo-release.sh: Verify consistency of dependency versions in configure.ac and debian/control
Sample output for current osmo-msc master:
Releasing 1.3.1.191-7ea0d -> 1.4.0...
ERROR: configure.ac <libosmocore, 1.0.0> does NOT match debian/control <libosmocore, 0.10.0>!
ERROR: configure.ac <libosmo-netif, 0.4.0> does NOT match debian/control <libosmo-netif, 0.1.0>!
ERROR: configure.ac <libosmo-sigtran, 1.0.0> does NOT match debian/control <libosmo-sigtran, 0.8.0>!
ERROR: configure.ac <libosmo-mgcp-client, 1.5.0> does NOT match debian/control <libosmo-mgcp-client, 1.1.0>!
ERROR: configure.ac <libosmo-gsup-client, 1.0.0> does NOT match debian/control <libosmo-gsup-client, 0.2.1>!
ERROR: configure.ac <libsmpp34, 1.13.0> does NOT match debian/control <libsmpp34, 1.12>!
ERROR: configure.ac <libasn1c, 0.9.30> does NOT match debian/control <libasn1c, 0.9.28>!
ERROR: configure.ac <libosmo-ranap, 0.3.0> does NOT match debian/control <libosmo-ranap, 0.2.0>!
ERROR: exiting due to previous errors
make: *** [osmo-release.mk:9: release] Error 1

Change-Id: I702a82c1b0e21dbe71a334a6f8bc62efe07859a6
2019-08-08 12:06:49 +02:00
Pau Espin c4228d11ff osmo-release.sh: Verify debian/rules dh_strip lines match LIBVERSION
Change-Id: Ib929bfac3689f35aaa58d7d079a46fff188b7e8e
2019-08-07 14:41:44 +02:00
Pau Espin c5527f07bf osmo-release.sh: Add DRY_RUN mode
This option allows testing if everything is in place before attempting
release related actions such as commiting, applying tag, etc.
It's also useful during development of the osmo-release.sh release
itself, sine it makes test iterations faster (no need to undo actions
done).

Change-Id: Ie5c320b7c92f92fcc37287bb9801368265a986b3
2019-08-07 14:40:09 +02:00
Pau Espin 2c28129709 osmo-release.sh: Drop whitespace after = when parsing LIBVERSION
As a result whitespace ended up in some variables and then command
"expr" was not happy about it.
It was spotted because src/coding/Makefile.am had some whitespacing.
Since it's the only one, let's drop the whitespace there too to have
similar line in all Makefile.am files.

Change-Id: I33afef5e4ef9eb36de81274533f46598ba9a0edb
2019-08-06 17:58:28 +02:00
Pau Espin 1a72bafa5d osmo-release.sh: Add checks to help avoid libversion debian major mismatch
Change-Id: Ie0f6a2f9d60908b36f90921bfba3fc31606e5027
2018-08-30 14:07:11 +02:00
Pau Espin cf8497cb2f osmo-release.sh: Allow forcing release without LIBVERSION bump
Sometimes a fix release may be required which only contains fixes to
parts not related to a shared library, for instance a fix in the build
system. Thus allow releasing without bumping LIBVERSION, but only
through env var setting for people who know what they are doing.

Change-Id: I91e186d47638038bc2968ea0178879365ffc9512
2018-08-30 14:01:29 +02:00
Pau Espin 941fd9be1b osmo-release.sh: Add quotes to string to fix shellcheck warning
Change-Id: I40376c99d44552d9b8023fca8d319a9312b0fbb0
2018-08-30 12:42:37 +02:00
Pau Espin bf81932dff osmo-release.sh: Allow user to add extra information to the release commit
Change-Id: Ie25d921dd27fb7653bd616cb2912330964108663
2018-05-03 15:25:38 +02:00
Pau Espin 01dd570de8 osmo-release.sh: Always generate entire commit changelog
Before this commit, for library projects (containing LIBVERSION in some
Makefile), the entire commit list was not stored into the changelog, but
only a few lines from TODO-RELEASE files.

This is a bad approach for several reasons. First, because that file was
only aimed at containing API/ABI breaks, and not the full relevant
changeset (like bugfixes, new features, etc.). Second, because it relies
on every developer making API/ABI changes to remember to store the
change in there during commit break time.

Let's instead always store the entire commit list in changelog, and
let's use TODO-RELEASE only as a list of hints for the maintainer to
help him evaluate how LIBVERSION needs to be bumped for each library.
Other tools such as osmo-abi-check.git can be used to help with the
process of decission too.

Let's take the opportunity too to only commit stuff already added to the
staging area, as it proved easier to manage from my personal experinece
making latest releases.

Change-Id: Ibf662173ce2b4ff3966e9ad5f56c65dfb13607ff
2018-05-03 15:21:24 +02:00
Pau Espin 0b0f908859 osmo-release.sh: Fix error condition no LIBVERSION modified
It turns out git status doesn't return an error code in any of the
modified/unmodified cases. It's not clear anyway why we check
TODO-RELEASE when we actually care about the file containing the
LIBVERSION (non-)change.

Change-Id: I2320d6ee29cd528e55c0609be1af350655123b85
2018-05-02 21:30:30 +00:00
Pau Espin dcbb24b8c8 osmo-release.sh: Exit with error if no description for new changelog entry provided
If no line is provided, then the xargs line doesn't call dch (due to -r
param) and as a result no new version entry is created in the log, and
the old one is updated.

Change-Id: I17894f669e6d3d6d31203a4522dce7fa01da323f
2018-05-02 21:30:30 +00:00
Pau Espin 42174d18d1 osmo-release.sh: Remove temporary file TODO-RELEASE.entries after use
Change-Id: I1cac39093d43910c2f5b969f5287cf3678110f4e
2018-05-02 21:30:29 +00:00
Pau Espin 075299db7c osmo-release.sh: Set correct version when generating the changelog
Otherwise, while updating osmo-trx 0.2.0->0.3.0, the version printed in
the changelog by gbp dch is 0.2.1

Change-Id: I744adb23b4602e5e47f80a012286578d1e59de88
2018-03-05 16:52:43 +01:00
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