[Replicant] [release-scripts] [PATCH 2/3] releasetag.sh: tag all repositories

Denis 'GNUtoo' Carikli GNUtoo at cyberdimension.org
Mon Jul 20 16:08:08 UTC 2020

Here is the rationale for tagging all repositories:
- In Replicant 6.0 we now have mirrored all the repositories we use, so we
  can now tag them all.
- For libsamsung-ipc, as the tag as replicant-<version> in its name, it
  cannot conflict with future tags for other distributions, or future
  Replicant versions.
- Even if libsamsung-ipc is meant to be shared across different
  distributions, having a record of which Replicant versions use
  which libsamsung-ipc versions in libsamsung-ipc is very important as
  libsamsung-ipc is heavily tested with Replicant and users reporting bugs
  in Replicant typically know the Replicant version not the exact
  libsamsung-ipc commit used.

In addition, we need to tag the manifest otherwise we have an error like
    $ ./release.sh replicant-6.0 replicant-6.0-0004-rc2 all
    Releasing metadata
    fatal: ambiguous argument 'replicant-6.0-0004-rc2':
    unknown revision or path not in the working tree.
    Use '--' to separate paths from revisions, like this:
    'git <command> [<revision>...] -- [<file>...]'
And it is better to have it done automatically, in the same way than for
the other repositories.

To do that, we will document the release procedure in a subsequent commit
to make sure that no step is missed.

It will make sure that .repo/manifests has the required tag before being
used by release.sh by:
- Making sure that the people doing the release don't forget to add patches
  in the manifest/ directory. Patches are needed to change the revision
  to the release tag.
- Making sure that the tag pushed by releasetag.sh.
- Making sure that people doing the release will re-download the source for
  building, so the tag will be in .repo/manifests.

Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo at cyberdimension.org>
 releasetag.sh | 9 ++-------
 1 file changed, 2 insertions(+), 7 deletions(-)

diff --git a/releasetag.sh b/releasetag.sh
index 90e2c27..a1ef8f5 100755
--- a/releasetag.sh
+++ b/releasetag.sh
@@ -33,19 +33,14 @@ set_color
 tag_repos () {
 	dir=$( pwd )
-	ALL_MIRROR_REPOS=$( repo forall -c ' echo "$REPO_REMOTE$REPO_PROJECT" | grep lineage-mirror \
-						| cut -c15-' )
-	ALL_REPLICANT_REPOS=$( repo forall -c ' echo "$REPO_REMOTE$REPO_PROJECT" | grep replicant \
-						| cut -c10- | grep -v "manifest.git" || true ' )
 	TAGGING_CMD="echo \"Tagging $color_start \$REPO_PROJECT $color_end\" && \
 			git tag -u $RELEASE_KEY -m \"Replicant $VERSION $RELEASE images release\" \
 	PUSHING_CMD="echo \"Pushing $color_start \$REPO_PROJECT $color_end\" && \
 			git push \"git@$PUSH_REMOTE:\$REPO_PROJECT\" \"replicant-$VERSION-$RELEASE\""
+	repo forall -c "$TAGGING_CMD && $PUSHING_CMD"
+	repo forall -c "$TAGGING_CMD && $PUSHING_CMD"
 	cd "$dir"

More information about the Replicant mailing list