Using repo to make 'regular' releases

This is merely a historical archive of years 2008-2021, before the migration to mailman3.

A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/OpenBSC@lists.osmocom.org/.

André Boddenberg dr.blobb at gmail.com
Wed Apr 26 13:13:06 UTC 2017


Hi,

> I like the idea. I think repo is going to work better for this kind of stuff
> and also given the amount of git repositories we are handling.

Imho repo is the better choice compared to git submodule, which I so
far only used in quite basic no-dependency projects to "bind"one
common-ci repo.


> I would also use branches/tags inside the repo repository. For instance,
> branch "master" is mapped to all master branches from all git repositories,
> then branch "version1" points to specific versions or revisions. This way it
> can be used both for building/testing development + releases.

I made a spike/hands-on [1] last night to get a better understanding
of repo, because I so far only consumed/used it. The created "repo"
clones all necessary repositories for the accelerate3g5 CN stack, but
the default.xml manifest already holds all Osmocom-CellNet
repositories mentioned in this thread. So one can already switch
between "default" and "accelerate3g5" project as well as add new
projects.

My understanding is that we need branches/tags to use repo for several
Osmocom-CellNet projects (not optional).  That's why I created
"accelerate3g5" branch where release (candidate) tags of actual git
repositories can be tested and tagged as release (candidate) within
the "accelerate3g5" repo branch. The tested/verified state within the
accelerate3g5 branch will be then merged to the master and tagged as a
release to detach its state from HEAD.


> ...and then everybody can easily test it by switching the repo
> repo to "3g" branch, then calling repo sync + build_all.sh

Inspired by your post I added a script to build the accelerate3g5 CN
stack to the repo repository, so one can build the entire stack with 3
lines:

  $ repo init -u https://github.com/blobbsen/repo-handson -m accelerate3g5.xml
  $ repo sync
  $ .repo/manifests/build_accelerate3g5.sh

Note: should work on FreeBSD too (gmake/make topic)

Probably worth discussing is the topic whether mentioned build script
should live in the repo repository or in osmo-ci (if we agree to add
osmo-ci)?

Although, osmo-ci sounds like a good place I like the fact one can put
those build scripts also in the repo repository itself. Perhaps an
osmo-repo helper script, which holds some handy shortcuts à la
switchToProject, switchToBranch, because to switch branches or project
one basically uses the three above mentioned lines again (cumbersome).


> What about using a Makefile instead of a build_all.sh script? We can ten
> perhaps paralelize some autoconf building between repositories which have no
> depndencies to speedup build/test time.

Interesting idea! :)


What do you think about [1] in general?


Cheers,
  André

[1] https://github.com/blobbsen/repo-handson



More information about the OpenBSC mailing list