From fc43dbcb7282dca9b16acb2617a04a5d2f393b4f Mon Sep 17 00:00:00 2001 From: AndyScherzinger Date: Mon, 2 Oct 2017 12:29:30 +0200 Subject: [PATCH] added branching model --- CONTRIBUTING.md | 10 +++ doc/branching.png | Bin 0 -> 22626 bytes doc/branching.svg | 187 ++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 197 insertions(+) create mode 100644 doc/branching.png create mode 100644 doc/branching.svg diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 9cf67219cc..00953055fd 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -79,6 +79,16 @@ We are all about quality while not sacrificing speed so we use a very pragmatic * create [pull request](https://github.com/nextcloud/android/pulls) * to assure the quality of the app, any PR gets reviewed, approved and tested by [two developers](https://github.com/nextcloud/android/blob/master/MAINTAINERS) before it will be merged to master + +### Branching model +![branching model](/doc/branching.png "Branching Model") +* All contributions bug fix or feature PRs target the ```master``` branch +* Feature releases will always be based on ```master``` +* Bug fix releases will always be based on their respective feature-release-bug-fix-branches +* Bug fixes relevant for the most recent _and_ released feature (e.g. ```2.0.0```) or bugfix (e.g. ```2.0.1```) release will be backported to the respective bugfix branch (e.g. ```2.0.x``` or ```2.1.x```) +* Hot fixes not relevant for an upcoming feature release but the latest release can target the bug fix branch directly + + ### Android Studio formatter setup Our formatter setup is rather simple: * Standard Android Studio diff --git a/doc/branching.png b/doc/branching.png new file mode 100644 index 0000000000000000000000000000000000000000..1b5605509dcfefcc1f6b9febe085ed81eca82b3d GIT binary patch literal 22626 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%0D^%g0SW_NYE((|+N|$8{rdX) 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +