diff options
author | Jeremy Benoist <jeremy.benoist@gmail.com> | 2019-05-29 11:41:07 +0200 |
---|---|---|
committer | Jeremy Benoist <jeremy.benoist@gmail.com> | 2019-05-29 11:41:07 +0200 |
commit | 6546aca4a3a54ec61c3b43e84aa948efb1aeca95 (patch) | |
tree | da21bd96caa6eb74c6aae94bb876a22d0ea1ea8e /RELEASE_PROCESS.md | |
parent | 73ec68b1ffafb792265a3805833e5cd84c966aed (diff) | |
download | wallabag-6546aca4a3a54ec61c3b43e84aa948efb1aeca95.tar.gz wallabag-6546aca4a3a54ec61c3b43e84aa948efb1aeca95.tar.zst wallabag-6546aca4a3a54ec61c3b43e84aa948efb1aeca95.zip |
Keep composer.lock
We initially ignored the `composer.lock` because it generated a lock of rebase on PR when someone updated it and the master updated it too.
Now we have less contributions (sadly) so I think we won't run against that problem.
Also, it'll solve issue about people cloning the master and got angry because composer eat all the available memory to determine packages to install.
It'll also be much easier to make release.
Scrutinizer & Travis will be faster too.
Diffstat (limited to 'RELEASE_PROCESS.md')
-rw-r--r-- | RELEASE_PROCESS.md | 43 |
1 files changed, 6 insertions, 37 deletions
diff --git a/RELEASE_PROCESS.md b/RELEASE_PROCESS.md index 829f8390..c8b29b18 100644 --- a/RELEASE_PROCESS.md +++ b/RELEASE_PROCESS.md | |||
@@ -22,59 +22,28 @@ During this documentation, we assume the release is `$LAST_WALLABAG_RELEASE` (li | |||
22 | git checkout master | 22 | git checkout master |
23 | git pull origin master | 23 | git pull origin master |
24 | git checkout -b release-$LAST_WALLABAG_RELEASE | 24 | git checkout -b release-$LAST_WALLABAG_RELEASE |
25 | SYMFONY_ENV=prod composer up --no-dev | 25 | composer up |
26 | ``` | ||
27 | |||
28 | - Update `.travis.yml` file and replace the composer line with this one: | ||
29 | |||
30 | ```diff | ||
31 | script: | ||
32 | - - travis_wait bash composer install -o --no-interaction --no-progress --prefer-dist | ||
33 | + - travis_wait bash composer update -o --no-interaction --no-progress --prefer-dist | ||
34 | ``` | 26 | ``` |
35 | 27 | ||
36 | - Then continue with these commands: | 28 | - Then continue with these commands: |
37 | 29 | ||
38 | ``` | 30 | ``` |
39 | git add --force composer.lock .travis.yml | 31 | git add composer.lock |
40 | git commit -m "Release wallabag $LAST_WALLABAG_RELEASE" | 32 | git commit -m "Release wallabag $LAST_WALLABAG_RELEASE" |
41 | git push origin release-$LAST_WALLABAG_RELEASE | 33 | git push origin release-$LAST_WALLABAG_RELEASE |
42 | ``` | 34 | ``` |
43 | 35 | ||
44 | - Create a new pull request with this title `DON'T MERGE Release wallabag $LAST_WALLABAG_RELEASE`. This pull request is used to launch builds on Travis-CI. | 36 | - Create a new pull request with this title `Release wallabag $LAST_WALLABAG_RELEASE`. This pull request is used to launch builds on Travis-CI. |
37 | - Once PR is green, merge it and delete the branch. | ||
45 | - Run these command to create the package: | 38 | - Run these command to create the package: |
46 | 39 | ||
47 | ``` | 40 | ``` |
48 | make release VERSION=$LAST_WALLABAG_RELEASE | 41 | make release VERSION=$LAST_WALLABAG_RELEASE |
49 | ``` | 42 | ``` |
50 | 43 | ||
51 | - [Create the new release on GitHub](https://github.com/wallabag/wallabag/releases/new) by targetting the `release-$LAST_WALLABAG_RELEASE` branch. You have to upload the package (generated previously). | 44 | - [Create the new release on GitHub](https://github.com/wallabag/wallabag/releases/new) by targetting the `master` branch. You have to upload the package (generated previously). |
52 | - Close the previously created pull request (**DO NOT MERGE IT**) and delete the `release-$LAST_WALLABAG_RELEASE` branch. | 45 | - Update the URL shortener (used on `wllbg.org` to update links like `https://wllbg.org/latest-v2-package` or `http://wllbg.org/latest-v2`) |
53 | - Update the URL shortener (used on `wllbg.org` to generate links like `https://wllbg.org/latest-v2-package` or `http://wllbg.org/latest-v2`) | ||
54 | - Update Dockerfile https://github.com/wallabag/docker (and create a new tag) | 46 | - Update Dockerfile https://github.com/wallabag/docker (and create a new tag) |
55 | - Update wallabag.org website (downloads, MD5 sum, releases and new blog post) | 47 | - Update wallabag.org website (downloads, MD5 sum, releases and new blog post) |
56 | - Put the next patch version suffixed with `-dev` in `app/config/wallabag.yml` (`wallabag_core.version`) | 48 | - Put the next patch version suffixed with `-dev` in `app/config/wallabag.yml` (`wallabag_core.version`) |
57 | - Drink a :beer:! | 49 | - Drink a :beer:! |
58 | |||
59 | ### `composer.lock` | ||
60 | A release tag must contain a `composer.lock` file. It sets which dependencies were available at the time a release was done, | ||
61 | making it easier to fix issues after the release. It also speeds up `composer install` on stable versions a LOT, by skipping the | ||
62 | dependencies resolution part. | ||
63 | |||
64 | Since `composer.lock` is ignored by default, either it must be removed from `.gitignore` _in the release branch_, | ||
65 | or it must be added using `git add --force composer.lock`. | ||
66 | |||
67 | ### Target PHP version | ||
68 | `composer.lock` is _always_ built for a particular version, by default the one it is generated (with `composer update`). | ||
69 | |||
70 | If the PHP version used to generate the .lock isn't a widely available one (like PHP 7), a more common one should | ||
71 | be locally specified in `composer.lock`: | ||
72 | |||
73 | ```json | ||
74 | "config": { | ||
75 | "platform": { | ||
76 | "php": "5.5.9", | ||
77 | "ext-something": "4.0" | ||
78 | } | ||
79 | } | ||
80 | ``` | ||