This section is only relevant to Tuleap integrators that are responsible to review and merge contributions into master.
You need to be ale to sign the commits/tags/merges in stable repository.
The commits are expected to be signed with a SSH key with a FIDO security key.
If it is not already the case, generate a SSH key associated to your security key:
ssh-keygen -t ecdsa-sk -f ~/.ssh/id_ecdsa_sk
Then configure git to use this key:
git config gpg.format ssh
git config user.signingKey ~/.ssh/id_ecdsa_sk
Add yourself in the allowed signers file tools/utils/signing-keys/allowed-integrators
(follow the existing entries to add your public key) and in integrators list in README.mkd
.
Push these modifications under review and wait for the +2
from the integrators.
If you need to check signature of existing commits (e.g git log --show-signature
) then you need to instruct git to use our allowed signers file:
git config gpg.ssh.allowedSignersFile tools/utils/signing-keys/allowed-integrators
-
Make sure that the contribution is ready to merge:
+2
from integrators and+2
from integration continue -
Make sure that the commit message of the contribution is referencing a public reference (request or story artifact). If not:
-1
. -
Re-sync your branch with the latest master updates
$ git fetch stable && git checkout stable/master
-
Merge the patch from gerrit (see the "download" section in gerrit) it should be something of the sort:
$ git fetch ssh://[email protected]:29418/tuleap refs/changes/52/52/8 && \ git merge --no-ff --no-commit --log FETCH_HEAD
Note: It is the responsibility of the contributor to resolve conflicts. Integrators should ask to the contributor to rebase her changes in case of conflicts.
-
Edit VERSION number:
$ tools/utils/version_numbers/generate.sh
Important: Do not
git add
the updated version file. -
Commit (signed) only the merge (do not touch the commit message).
$ `git commit -v -S`
-
Commit (signed) the new version files
$ git commit -av -S -m "This is Tuleap $(cat VERSION)"
-
Push your merge to stable:
$ git push stable HEAD:master
-
Update Gerrit master:
$ git push username@gerrit:tuleap stable/master:refs/heads/master # OR, if you have gerrit as a remote $ git push gerrit HEAD:master
-
Update the corresponding artifact(s) with the following information:
- If the contribution closes the artifact (mentioned in the
commit message or to be checked with the contributor), then you
can close it:
- Set the status to
Closed
- Add artifact link to current release artifact id with nature
Fixed in
- Set the status to
- If the contribution closes the artifact (mentioned in the
commit message or to be checked with the contributor), then you
can close it: