Skip to Content.

rare-dev - [rare-dev] Install the latest freerouter version with the release-manager

Subject: Rare project developers

List archive


[rare-dev] Install the latest freerouter version with the release-manager


Chronological Thread 
  • From: Alexander Gall <>
  • To: <>
  • Subject: [rare-dev] Install the latest freerouter version with the release-manager
  • Date: Fri, 22 Apr 2022 14:35:33 +0200


Yes, I promised the first RARE release for today at the latest. But
there was this one last thing that nagged me a bit: how can we
integrate the "flash upgrade" feature with the strict package
management imposed by Nix? I have discussed this problem many times
but couldn't find a satisfying solution until it all came together as
an idea yesterday. I found that I could implement it in a few hours so
I decided to hold back the release for just a little bit longer to get
this feature in.

Here is what I came up with. The release-manager now has a new option
"--install-experimental" (covered by a new alias
"tna-install-experimental"). It fetches the latest commit of the
freerouter repository at the time when the command is executed. Then
it fetches the latest commit of the rare-nix repository and creates an
ad-hoc release of RARE in which the freerouter version declared in the
rare-nix repo is replaced by the newest version. In other words, it
behaves like "--install-git origin/master" (equivalent to the
tna-install-latest alias) but superimposes the newest freerouter code
on top of it.

Such a release exists only locally, i.e. there is nothing being done
by the Hydra CI system to support this. This means that the
freerouter jar file must be built locally, but that is not a problem
and happens automatically. All other components that go into such a
local release are pre-built by Hydra whenever a commit for rare-nix is
pushed.

The release-manager needs to create a unique tag for every installed
release. For regular releases this is simply the result of running
"git describe". For an "experimental" release, this would lead to a
conflict because the tag would be identical for all of them. To solve
this, the "--install-experimental" option will append the string
"-freertr-" followed by the first 6 digits of the commit hash to
the regular tag. Here is an example:

release-1theta-14-g1e0318f-freertr-41ad35

This tells us that the release is based on commit 1e0318f of the
rare-nix repository
(https://bitbucket.software.geant.org/projects/RARE/repos/rare-nix/commits/1e0318fb071b0efceca6438cce66bec4aef03c78).
It
also says that 1e0318f is 14 commits ahead of the annotated Git tag
"release-1theta", which marks the latest (test) release. Finally, it
tells us that this version of RARE is running the freerouter code from
41ad35.

Such an ad-hoc release is treated like any other release by the
release manager.

I hope this finally settles the last major problem with release
management (at least that I'm aware of :)

--
Alex



Archive powered by MHonArc 2.6.19.

Top of Page