From 6a8ddfdb6b5a821d44be4f6cdb8da365b25807ae Mon Sep 17 00:00:00 2001 From: decentral1se Date: Tue, 25 Jul 2023 20:37:43 +0200 Subject: [PATCH] docs: how to unbork lightweight tag See https://git.coopcloud.tech/coop-cloud/organising/issues/433 --- docs/maintainers/handbook.md | 70 ++++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) diff --git a/docs/maintainers/handbook.md b/docs/maintainers/handbook.md index eb30c1a..fa2e7a7 100644 --- a/docs/maintainers/handbook.md +++ b/docs/maintainers/handbook.md @@ -646,3 +646,73 @@ export APP_ENTRYPOINT_VERSION=v5 ``` You should be able to deploy this overriden configuration now. + +## Linting rules + +### R014: "invalid lightweight tag" + +This is an issue related to the way Git/`go-git` handle Git tags internally. We +need to use "annotated tags" and not "lightweight tags" for our recipe versions +tags. Otherwise, `abra` has a hard time parsing what is going on. + +The `R01O4` linting error happens because the recipe in question has a +lightweight tag. This needs to be replaced. This is a manual process. Here's a +practical example with the Gitea recipe when we had this issue. + +You can validate what kind of tag is which by running the following: + +``` +git for-each-ref refs/tags +734045872a57d795cd54b1992a1753893a4934f1 tag refs/tags/1.0.0+1.14.5-rootless +b2cefa5ccf2f2f77dae54cf6c304cccecb3547ca tag refs/tags/1.1.0+1.15.0-rootless +6d669112d8caafcdcf4eb1485f2d6afdb54a8e30 tag refs/tags/1.1.1+1.15.3-rootless +64761ad187cc7a3984a37dd9abd4fa16979f97b9 tag refs/tags/1.1.2+1.15.6-rootless +1ccb1cb6a63a08eebf6ba5508b676eaaccba7ed8 tag refs/tags/1.1.3+1.15.10-rootless +b86e1f6dfef3c464b16736274b3cd95f8978f66b tag refs/tags/1.2.0+1.16.3-rootless +b1d22f3c39ca768a4efa1a0b9b9f780268c924b3 tag refs/tags/1.2.1+1.16.8-rootless +85a45aa749427822a73ef62b6362d57bae1a61af tag refs/tags/1.3.0+1.17.2-rootless +f35689989c0b57575b8362e1252476d8133dc961 commit refs/tags/1.3.1+1.17.3-rootless +df015fae592fca7728a3f0835217e110da4dbafc tag refs/tags/2.0.0+1.18.0-rootless +71920adb0c25a59f7678894e39f1a705f0ad08dd tag refs/tags/2.0.1+1.18.2-rootless +1ab9a96922341c8e54bdb6d60850630cce4b9587 tag refs/tags/2.1.0+1.18.5-rootless +1e612d84a2ad7c9beb7aa064701a520c7e91eecc commit refs/tags/2.1.2+1.19.3-rootless +0bee99615a8bbd534a66a315ee088af3124e054b tag refs/tags/2.2.0+1.19.3-rootless +699378f53501b2d5079fa62cc7f8e79930da7540 tag refs/tags/2.3.0+1.20.1-rootless +c0dc5f82930d875c0a6e29abc016b4f6a53b83dd tag refs/tags/2.3.1+1.20.1-rootless +``` + +Where `f35689989c0b57575b8362e1252476d8133dc961` & +`1e612d84a2ad7c9beb7aa064701a520c7e91eecc` need to be removed ("commit"). We +will deal with `refs/tags/1.3.1+1.17.3-rootless` in this example. + +``` +# find the tag hash +git show 1.3.1+1.17.3-rootless +commit f35689989c0b57575b8362e1252476d8133dc961 (tag: 1.3.1+1.17.3-rootless) +Merge: af97db8 1d4dc8e +Author: decentral1se +Date: Sun Nov 13 21:54:01 2022 +0000 + + Merge pull request 'Adding Oauth2 options and up on versions' (#29) from javielico/gitea:master into master + + Reviewed-on: https://git.coopcloud.tech/coop-cloud/gitea/pulls/29 + +# delete the tag locally / remotely +git tag -d 1.3.1+1.17.3-rootless +git push origin 1.3.1+1.17.3-rootless --delete + +# re-tag, this time with `-a` (annotated) +git checkout f35689989c0b57575b8362e1252476d8133dc961 +git tag -a 1.3.1+1.17.3-rootless + +# push new tag +git checkout master # might be main on other recipes! +git push origin master --tags + +# check everything works +git for-each-ref refs/tags | grep 1.3.1+1.17.3-rootless +964f1680000fbba6daa520aa8d533a53ad151ab8 tag refs/tags/1.3.1+1.17.3-rootless +``` + +That's it! Spread the word, use `-a` when taggin recipe versions manually! Or +just use `abra` which handles this automagically for you in all cases 🎉