diff options
Diffstat (limited to 'RELEASE_PROCESS.md')
-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 | ``` | ||