From 08fe7735b091d10d199a4240ecf22792ea79864b Mon Sep 17 00:00:00 2001 From: Martin Schanzenbach Date: Sat, 3 Apr 2021 09:40:46 +0200 Subject: handbook: Add section on commit messages and developer branches --- doc/handbook/chapters/developer.texi | 70 ++++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) diff --git a/doc/handbook/chapters/developer.texi b/doc/handbook/chapters/developer.texi index 8b0085cce..9bb74c3de 100644 --- a/doc/handbook/chapters/developer.texi +++ b/doc/handbook/chapters/developer.texi @@ -689,6 +689,7 @@ Here you can find some rules to help you write code for GNUnet. @menu * Naming conventions:: * Coding style:: +* Commit messages and developer branches:: @end menu @node Naming conventions @@ -1093,6 +1094,75 @@ fun (short i, @end itemize +@cindex Commit messages and developer branches +@node Commit messages and developer branches +@subsection Commit messages and developer branches + +You can find the GNUnet project repositories at @uref{https://git.gnunet.org}. +For each release, the ChangeLog file is generated from the commit history. +Hence, commit messages are required to convey what changes were made in +a self-contained fashion. Commit messages such as "fix" or "cleanup" are +not acceptable. +You commit message should ideally start with the subsystem name and be followed +by a succinct description of the change. Where applicable a reference to +a bug number in the bugtracker may also be included. +Example: + +@example +# : . (#XXXX) +IDENTITY: Fix wrong key construction for anonymous ECDSA identity. (Fixes #12344) +@end example + +If you need to commit a minor fix you may prefix the commit message with a +dash. It will then be ignored when generating the ChangeLog entries: + +@example +# - +-fix +@end example + +If you need to modify a commit you can do so using: + +@example +$ git commit --amend +@end example + +If you need to modify a number of successive commits you will have to rebase +and squash. +Note that most branches are protected. This means that you can only fix commits +as long as they are not pushed. You can only modify pushed commits in your own +developer branches. + +A developer branch is a branch which matches a developer-specific prefix. +As a developer with git access, you should have a git username. If you do not +know it, please ask an admin. +A developer branch has the format: + +@example +dev// +@end example + + +Assuming the developer with username "jdoe" wants to create a new branch for an +i18n fix, the branch name could be: + +@example +dev/jdoe/i18n_fx +@end example + +The developer will be able to force push to and delete branches under his prefix. +It is highly recommended to work in your own developer branches. +Code which conforms to the commit message guidelines and coding style, is tested +and builds may be merged to the master branch. +Preferably, you would then... + +@itemize +@item ...squash your commits, +@item rebase to master and then +@item merge your branch. +@item (optional) Delete the branch. +@end itemize + @c *********************************************************************** @node Build-system @section Build-system -- cgit v1.2.3