diff options
author | Nicolas LÅ“uillet <nicolas@loeuillet.org> | 2016-03-01 20:06:44 +0100 |
---|---|---|
committer | Nicolas LÅ“uillet <nicolas@loeuillet.org> | 2016-03-01 20:06:44 +0100 |
commit | f8b835f537c8bec0460f94b960a8d81745f9e9d6 (patch) | |
tree | 9eb06161a1aee1b4b2d6d50a83e4e720c138fa11 | |
parent | df814148c328b8c1185ad22944afe8e3c1a289fc (diff) | |
parent | 923a7e8d68c540e3642800daa4e6761f400937a1 (diff) | |
download | wallabag-f8b835f537c8bec0460f94b960a8d81745f9e9d6.tar.gz wallabag-f8b835f537c8bec0460f94b960a8d81745f9e9d6.tar.zst wallabag-f8b835f537c8bec0460f94b960a8d81745f9e9d6.zip |
Merge pull request #1615 from bdunogier/release_process_doc
Added RELEASE_PROCESS document
-rw-r--r-- | RELEASE_PROCESS.md | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/RELEASE_PROCESS.md b/RELEASE_PROCESS.md new file mode 100644 index 00000000..ebca54d6 --- /dev/null +++ b/RELEASE_PROCESS.md | |||
@@ -0,0 +1,37 @@ | |||
1 | ## Definition | ||
2 | |||
3 | A release is mostly a git tag of http://github.com/wallabag/wallabag, following [semantic versioning](http://semver.org). | ||
4 | The last release at the time of writing is 2.0.0-alpha.2, from the v2 branch. | ||
5 | |||
6 | ### Steps | ||
7 | - Update `wallabag.version` is up-to-date in `app/config/config.yml` if necessary | ||
8 | - run composer update to make sure `composer.lock` is up-to-date | ||
9 | - add and update `composer.lock`: `git add -f composer.lock && git commit -m "Added composer.lock for 2.0.0-alpha.3 release"` | ||
10 | - create the tag: `git tag 2.0.0-alpha.3` | ||
11 | - remove composer.lock, and commit: `git rm composer.lock && git commit -m "Removed composer.lock"` | ||
12 | - push the tag: `git push origin 2.0.0-alpha.3` | ||
13 | - go to http://github.com/wallabag/wallabag/releases | ||
14 | - find the tag that was created in the list, click on the tag. Edit the release name / description | ||
15 | |||
16 | ### `composer.lock` | ||
17 | A release tag must contain a `composer.lock` file. It sets which dependencies were available at the time a release was done, | ||
18 | making it easier to fix issues after the release. It also speeds up `composer install` on stable versions a LOT, by skipping the | ||
19 | dependencies resolution part. | ||
20 | |||
21 | Since `composer.lock` is ignored by default, either it must be removed from `.gitignore` _in the release branch_, | ||
22 | or it must be added using `git add --force composer.lock`. | ||
23 | |||
24 | ### Target PHP version | ||
25 | `composer.lock` is _always_ built for a particular version, by default the one it is generated (with `composer update`). | ||
26 | |||
27 | If the PHP version used to generate the .lock isn't a widely available one (like PHP 7), a more common one should | ||
28 | be locally specified in `composer.lock`: | ||
29 | |||
30 | ```json | ||
31 | "config": { | ||
32 | "platform": { | ||
33 | "php": "5.5.9", | ||
34 | "ext-something": "4.0" | ||
35 | } | ||
36 | } | ||
37 | ``` | ||