diff options
author | Lars Wirzenius <liw@liw.fi> | 2018-02-01 18:19:51 +0200 |
---|---|---|
committer | Lars Wirzenius <liw@liw.fi> | 2018-02-01 18:19:51 +0200 |
commit | c53df2a151c2b415f48cedf2abefde1b85138c06 (patch) | |
tree | cb71b47c122001d57b7a882cd1e1b34d3a7a4662 | |
parent | 772a41ef38ef678f601d218b584affa0915b9ea7 (diff) | |
download | qvisqve-c53df2a151c2b415f48cedf2abefde1b85138c06.tar.gz |
Add: merge workflow
-rw-r--r-- | README | 58 |
1 files changed, 58 insertions, 0 deletions
@@ -7,6 +7,64 @@ server. Originally developed to help development of Qvarn credentials** grant. Later on, we hope to develop this into an OpenID Connect provider. +Merging workflow +----------------------------------------------------------------------------- + +All development will happen on branches other than master. Changes are +merged into master, when they're ready to be included into the next +release. If the feature is not ready to be enabled by default, the +merge will include a feature flag that disables the feature by +default. Merging should ideally happen about daily. + +Before a merge happens, the changes to be merged will be reviewed and +OK'd by someone else than the their author. The reviewer does the +merge. + +The branch to be merged MUST be rebased onto the commit in master. The +actual merge MUST NOT have any conflicts. + +The merge MUST be done using --no-ff, i.e., with a merge commit, even +if only one commit is being merged. The merge commit MUST say who +reviewed and accepted it, by including a `Signed-off-by` line. If +there are more than one reviewer, they should all be added to the +merge commit. + +Every commit in the master branch MUST pass `./check`. + +The merge process is described below. It starts after the changes have +been reviewed and are ready to be merged. + +* `git checkout feature-branch` + + Check out the changes to be merged. + +* `git checkout -b feature-branch-rebase` + + Create a new branch, where it's safe to rebase. + +* `git rebase master` + + Rebase onto master. Resolve any conflicts. Hopefully there aren't + any. + +* `git checkout master` + + Checkout master, which is where the changes will be merged to. + +* `git merge --no-ff --no-commit feature-branch-rebase` + + Merge, without committing the changes. + +* `./check` + + Run tests. If there are any problem, abort merge process. + +* `git commit -s` + + Commit the merge, adding the `Signed-off-by` line to the commit + message. The merge commit message should summarise the changes made. + + Legalese ----------------------------------------------------------------------------- |