Bryce Harrington | b73c58e | 2015-01-09 18:09:21 -0800 | [diff] [blame] | 1 | To make a release of Weston and/or Wayland, follow these steps. |
Kristian Høgsberg | 73dfbd5 | 2014-05-23 10:13:59 -0700 | [diff] [blame] | 2 | |
Bryce Harrington | 044f79d | 2015-02-06 18:01:33 -0800 | [diff] [blame] | 3 | 0. Verify the test suites and codebase checks pass. All of the |
Bryce Harrington | e23697f | 2017-01-24 21:54:41 -0800 | [diff] [blame] | 4 | tests should either pass or skip. |
Kristian Høgsberg | 73dfbd5 | 2014-05-23 10:13:59 -0700 | [diff] [blame] | 5 | |
Bryce Harrington | b73c58e | 2015-01-09 18:09:21 -0800 | [diff] [blame] | 6 | $ make check |
Kristian Høgsberg | 73dfbd5 | 2014-05-23 10:13:59 -0700 | [diff] [blame] | 7 | |
Bryce Harrington | f89cd51 | 2016-05-24 12:34:44 -0700 | [diff] [blame] | 8 | 1. For Weston, verify that the wayland and wayland-protocols version |
| 9 | dependencies are correct, and that wayland-protocols has had a |
| 10 | release with any needed protocol updates. |
Jonas Ådahl | 379ee65 | 2015-11-18 10:45:28 +0800 | [diff] [blame] | 11 | |
Bryce Harrington | 3ced1a0 | 2016-08-30 12:00:38 -0700 | [diff] [blame] | 12 | 2. Update the first stanza of configure.ac to the intended versions |
Bryce Harrington | 819824d | 2017-02-03 17:23:24 -0800 | [diff] [blame] | 13 | for Weston and libweston. |
Pekka Paalanen | bfb392e | 2016-08-10 12:06:43 +0300 | [diff] [blame] | 14 | |
| 15 | For Weston's x.y.0 releases, if libweston_major_version is greater than |
| 16 | weston_major_version, bump the Weston version numbers (major, minor, |
| 17 | micro) to match the libweston version numbers (major, minor, patch). |
| 18 | |
Bryce Harrington | 819824d | 2017-02-03 17:23:24 -0800 | [diff] [blame] | 19 | Additionally for all Weston releases, if libweston's |
| 20 | major.minor.patch version is less than Weston's major.minor.micro |
| 21 | version, bump libweston version numbers to match the Weston |
| 22 | version numbers. |
Pekka Paalanen | bfb392e | 2016-08-10 12:06:43 +0300 | [diff] [blame] | 23 | |
| 24 | Weston releases are made with the Weston version number, not with the |
| 25 | libweston version number. |
| 26 | |
| 27 | Then commit your changes: |
Bryce Harrington | 044f79d | 2015-02-06 18:01:33 -0800 | [diff] [blame] | 28 | |
Bryce Harrington | 9a4a47d | 2015-05-27 23:55:08 -0700 | [diff] [blame] | 29 | $ export RELEASE_NUMBER="x.y.z" |
Bryce Harrington | cab7ed9 | 2015-08-16 14:00:05 -0700 | [diff] [blame] | 30 | $ export RELEASE_NAME="[alpha|beta|RC1|RC2|official|point]" |
Bryce Harrington | 044f79d | 2015-02-06 18:01:33 -0800 | [diff] [blame] | 31 | $ git status |
Bryce Harrington | 4b48895 | 2015-05-26 19:20:37 -0700 | [diff] [blame] | 32 | $ git commit configure.ac -m "configure.ac: bump to version $RELEASE_NUMBER for the $RELEASE_NAME release" |
Bryce Harrington | 044f79d | 2015-02-06 18:01:33 -0800 | [diff] [blame] | 33 | $ git push |
| 34 | |
Jonas Ådahl | 379ee65 | 2015-11-18 10:45:28 +0800 | [diff] [blame] | 35 | 3. For Weston releases, install Xwayland, either from your distro or |
Bryce Harrington | 8a88cec | 2015-02-13 20:46:41 -0800 | [diff] [blame] | 36 | manually (see http://wayland.freedesktop.org/building.html). If |
| 37 | you install it to a location other than /usr/bin/Xwayland, specify |
| 38 | this in the following env var: |
Bryce Harrington | a9d0b68 | 2015-02-12 16:49:15 -0800 | [diff] [blame] | 39 | |
Bryce Harrington | 90e2d07 | 2015-09-17 16:33:48 -0700 | [diff] [blame] | 40 | XWAYLAND=$(which Xwayland) # Or specify your own path |
| 41 | export DISTCHECK_CONFIGURE_FLAGS="--with-xserver-path=$XWAYLAND" |
Bryce Harrington | a9d0b68 | 2015-02-12 16:49:15 -0800 | [diff] [blame] | 42 | |
Bryce Harrington | b33877a | 2015-05-15 18:51:19 -0700 | [diff] [blame] | 43 | If you're using a locally installed libinput or other dependency |
| 44 | libraries, you'll likely need to set a few other environment |
| 45 | variables: |
Bryce Harrington | 5fa7351 | 2015-05-15 18:50:04 -0700 | [diff] [blame] | 46 | |
Bryce Harrington | b33877a | 2015-05-15 18:51:19 -0700 | [diff] [blame] | 47 | export WLD="<path-to-your-local-installation>" |
| 48 | export LD_LIBRARY_PATH=$WLD/lib |
| 49 | export PKG_CONFIG_PATH=$WLD/lib/pkgconfig:$WLD/share/pkgconfig/ |
Bryce Harrington | 5fa7351 | 2015-05-15 18:50:04 -0700 | [diff] [blame] | 50 | |
Jonas Ådahl | 379ee65 | 2015-11-18 10:45:28 +0800 | [diff] [blame] | 51 | 4. Run the release.sh script to generate the tarballs, sign and |
Bryce Harrington | b73c58e | 2015-01-09 18:09:21 -0800 | [diff] [blame] | 52 | upload them, and generate a release announcement template. |
| 53 | This script can be obtained from X.org's modular package: |
Kristian Høgsberg | 73dfbd5 | 2014-05-23 10:13:59 -0700 | [diff] [blame] | 54 | |
Bryce Harrington | b73c58e | 2015-01-09 18:09:21 -0800 | [diff] [blame] | 55 | http://cgit.freedesktop.org/xorg/util/modular/tree/release.sh |
Kristian Høgsberg | 73dfbd5 | 2014-05-23 10:13:59 -0700 | [diff] [blame] | 56 | |
Bryce Harrington | b73c58e | 2015-01-09 18:09:21 -0800 | [diff] [blame] | 57 | The script supports a --dry-run option to test it without actually |
| 58 | doing a release. If the script fails on the distcheck step due to |
| 59 | a testsuite error that can't be fixed for some reason, you can |
| 60 | skip testsuite by specifying the --dist argument. Pass --help to |
| 61 | see other supported options. |
Kristian Høgsberg | 73dfbd5 | 2014-05-23 10:13:59 -0700 | [diff] [blame] | 62 | |
Bryce Harrington | 9a4a47d | 2015-05-27 23:55:08 -0700 | [diff] [blame] | 63 | $ release.sh . |
Bryce Harrington | 4b48895 | 2015-05-26 19:20:37 -0700 | [diff] [blame] | 64 | |
Bryce Harrington | 12e6dbb | 2017-02-21 14:34:10 -0800 | [diff] [blame] | 65 | For Wayland official and point releases, also publish the publican |
| 66 | documentation to wayland.freedesktop.org: |
Bryce Harrington | e534ae4 | 2015-05-27 15:33:27 -0700 | [diff] [blame] | 67 | |
Bryce Harrington | 9a4a47d | 2015-05-27 23:55:08 -0700 | [diff] [blame] | 68 | $ ./publish-doc |
Bryce Harrington | e534ae4 | 2015-05-27 15:33:27 -0700 | [diff] [blame] | 69 | |
Jonas Ådahl | 379ee65 | 2015-11-18 10:45:28 +0800 | [diff] [blame] | 70 | 5. Compose the release announcements. The script will generate |
Bryce Harrington | 1abf5e4 | 2016-01-20 11:50:12 -0800 | [diff] [blame] | 71 | *.x.y.z.announce files with a list of changes and tags, one for |
Bryce Harrington | 1875aff | 2015-01-26 18:23:37 -0800 | [diff] [blame] | 72 | wayland, one for weston. Prepend these with a human-readable |
| 73 | listing of the most notable changes. For x.y.0 releases, indicate |
| 74 | the schedule for the x.y+1.0 release. |
Kristian Høgsberg | 73dfbd5 | 2014-05-23 10:13:59 -0700 | [diff] [blame] | 75 | |
Abdur Rehman | eedf49f | 2017-01-01 19:46:40 +0500 | [diff] [blame] | 76 | 6. pgp sign the release announcements and send them to |
Bryce Harrington | 1875aff | 2015-01-26 18:23:37 -0800 | [diff] [blame] | 77 | wayland-devel@lists.freedesktop.org |
Bryce Harrington | b73c58e | 2015-01-09 18:09:21 -0800 | [diff] [blame] | 78 | |
Bryce Harrington | 1abf5e4 | 2016-01-20 11:50:12 -0800 | [diff] [blame] | 79 | 7. Update releases.html in wayland-web with links to tarballs and |
Bryce Harrington | 7154c18 | 2015-01-30 19:10:12 -0800 | [diff] [blame] | 80 | the release email URL. |
| 81 | |
Bryce Harrington | 2f78301 | 2016-05-04 14:58:24 -0700 | [diff] [blame] | 82 | The wl_register_release script in wayland-web will generate an HTML |
Bryce Harrington | 9a4a47d | 2015-05-27 23:55:08 -0700 | [diff] [blame] | 83 | snippet that can be pasted into releases.html (or e.g. in emacs |
Bryce Harrington | 7b0d18e | 2016-05-31 15:52:33 -0700 | [diff] [blame] | 84 | insert it via "C-u M-! scripts/wl_register_release x.y.z") and |
Bryce Harrington | 9a4a47d | 2015-05-27 23:55:08 -0700 | [diff] [blame] | 85 | customized. |
Bryce Harrington | f89ca8c | 2015-05-27 13:03:42 -0700 | [diff] [blame] | 86 | |
Bryce Harrington | 9a4a47d | 2015-05-27 23:55:08 -0700 | [diff] [blame] | 87 | Once satisfied: |
Bryce Harrington | f89ca8c | 2015-05-27 13:03:42 -0700 | [diff] [blame] | 88 | |
Bryce Harrington | 1abf5e4 | 2016-01-20 11:50:12 -0800 | [diff] [blame] | 89 | $ git commit ./releases.html -m "releases: Add ${RELEASE_NUMBER} release" |
Bryce Harrington | 7154c18 | 2015-01-30 19:10:12 -0800 | [diff] [blame] | 90 | $ git push |
Bryce Harrington | e534ae4 | 2015-05-27 15:33:27 -0700 | [diff] [blame] | 91 | $ ./deploy |
Kristian Høgsberg | 73dfbd5 | 2014-05-23 10:13:59 -0700 | [diff] [blame] | 92 | |
Bryce Harrington | 1abf5e4 | 2016-01-20 11:50:12 -0800 | [diff] [blame] | 93 | 8. Update topic in #wayland to point to the release announcement URL |
Kristian Høgsberg | 73dfbd5 | 2014-05-23 10:13:59 -0700 | [diff] [blame] | 94 | |
Bryce Harrington | bbdb2a9 | 2015-05-27 13:06:59 -0700 | [diff] [blame] | 95 | For x.y.0 releases, also create the release series x.y branch. The x.y |
| 96 | branch is for bug fixes and conservative changes to the x.y.0 release, |
Bryce Harrington | 6657fda | 2016-06-01 17:17:57 -0700 | [diff] [blame] | 97 | and is where we create x.y.z releases from. Creating the x.y branch |
Bryce Harrington | bbdb2a9 | 2015-05-27 13:06:59 -0700 | [diff] [blame] | 98 | opens up master for new development and lets new development move on. |
| 99 | We've done this both after the x.y.0 release (to focus development on |
| 100 | bug fixing for the x.y.1 release for a little longer) or before the |
| 101 | x.y.0 release (like we did with the 1.5.0 release, to unblock master |
| 102 | development early). |
Kristian Høgsberg | 73dfbd5 | 2014-05-23 10:13:59 -0700 | [diff] [blame] | 103 | |
Bryce Harrington | 6657fda | 2016-06-01 17:17:57 -0700 | [diff] [blame] | 104 | $ git branch x.y [sha] |
Bryce Harrington | b73c58e | 2015-01-09 18:09:21 -0800 | [diff] [blame] | 105 | $ git push origin x.y |
| 106 | |
Bryce Harrington | 819824d | 2017-02-03 17:23:24 -0800 | [diff] [blame] | 107 | The master branch's configure.ac version should always be (at least) |
| 108 | x.y.90, with x.y being the most recent stable branch. The stable |
| 109 | branch's configure.ac version is just whatever was most recently |
| 110 | released from that branch. |
Kristian Høgsberg | 73dfbd5 | 2014-05-23 10:13:59 -0700 | [diff] [blame] | 111 | |
| 112 | For stable branches, we commit fixes to master first, then cherry-pick |
| 113 | them back to the stable branch. |