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 |
| 4 | tests pass 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 | 044f79d | 2015-02-06 18:01:33 -0800 | [diff] [blame] | 8 | 1. Update the first three lines of configure.ac to the intended |
| 9 | version, commit. Also note that Weston includes versioned |
| 10 | dependencies on 'wayland-server' and 'wayland-client' in |
| 11 | configure.ac which typically need updated as well. Then commit |
| 12 | your changes: |
| 13 | |
Bryce Harrington | 4b48895 | 2015-05-26 19:20:37 -0700 | [diff] [blame] | 14 | $ export RELEASE_NUMBER="x.y.z" |
| 15 | $ export RELEASE_NAME="[alpha|RC1|RC2|official|point]" |
Bryce Harrington | 044f79d | 2015-02-06 18:01:33 -0800 | [diff] [blame] | 16 | $ git status |
Bryce Harrington | 4b48895 | 2015-05-26 19:20:37 -0700 | [diff] [blame] | 17 | $ 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] | 18 | $ git push |
| 19 | |
Bryce Harrington | 8a88cec | 2015-02-13 20:46:41 -0800 | [diff] [blame] | 20 | 2. For Weston releases, install Xwayland, either from your distro or |
| 21 | manually (see http://wayland.freedesktop.org/building.html). If |
| 22 | you install it to a location other than /usr/bin/Xwayland, specify |
| 23 | this in the following env var: |
Bryce Harrington | a9d0b68 | 2015-02-12 16:49:15 -0800 | [diff] [blame] | 24 | |
| 25 | export DISTCHECK_CONFIGURE_FLAGS="--with-xserver-path=<your-Xwayland-path>" |
| 26 | |
Bryce Harrington | b33877a | 2015-05-15 18:51:19 -0700 | [diff] [blame] | 27 | If you're using a locally installed libinput or other dependency |
| 28 | libraries, you'll likely need to set a few other environment |
| 29 | variables: |
Bryce Harrington | 5fa7351 | 2015-05-15 18:50:04 -0700 | [diff] [blame] | 30 | |
Bryce Harrington | b33877a | 2015-05-15 18:51:19 -0700 | [diff] [blame] | 31 | export WLD="<path-to-your-local-installation>" |
| 32 | export LD_LIBRARY_PATH=$WLD/lib |
| 33 | export PKG_CONFIG_PATH=$WLD/lib/pkgconfig:$WLD/share/pkgconfig/ |
Bryce Harrington | 5fa7351 | 2015-05-15 18:50:04 -0700 | [diff] [blame] | 34 | |
Bryce Harrington | a9d0b68 | 2015-02-12 16:49:15 -0800 | [diff] [blame] | 35 | 3. Run the release.sh script to generate the tarballs, sign and |
Bryce Harrington | b73c58e | 2015-01-09 18:09:21 -0800 | [diff] [blame] | 36 | upload them, and generate a release announcement template. |
| 37 | This script can be obtained from X.org's modular package: |
Kristian Høgsberg | 73dfbd5 | 2014-05-23 10:13:59 -0700 | [diff] [blame] | 38 | |
Bryce Harrington | b73c58e | 2015-01-09 18:09:21 -0800 | [diff] [blame] | 39 | http://cgit.freedesktop.org/xorg/util/modular/tree/release.sh |
Kristian Høgsberg | 73dfbd5 | 2014-05-23 10:13:59 -0700 | [diff] [blame] | 40 | |
Bryce Harrington | b73c58e | 2015-01-09 18:09:21 -0800 | [diff] [blame] | 41 | The script supports a --dry-run option to test it without actually |
| 42 | doing a release. If the script fails on the distcheck step due to |
| 43 | a testsuite error that can't be fixed for some reason, you can |
| 44 | skip testsuite by specifying the --dist argument. Pass --help to |
| 45 | see other supported options. |
Kristian Høgsberg | 73dfbd5 | 2014-05-23 10:13:59 -0700 | [diff] [blame] | 46 | |
Bryce Harrington | 4b48895 | 2015-05-26 19:20:37 -0700 | [diff] [blame] | 47 | $ release.sh . |
| 48 | |
Bryce Harrington | a9d0b68 | 2015-02-12 16:49:15 -0800 | [diff] [blame] | 49 | 4. Compose the release announcements. The script will generate |
Bryce Harrington | 1875aff | 2015-01-26 18:23:37 -0800 | [diff] [blame] | 50 | *.x.y.0.announce files with a list of changes and tags, one for |
| 51 | wayland, one for weston. Prepend these with a human-readable |
| 52 | listing of the most notable changes. For x.y.0 releases, indicate |
| 53 | the schedule for the x.y+1.0 release. |
Kristian Høgsberg | 73dfbd5 | 2014-05-23 10:13:59 -0700 | [diff] [blame] | 54 | |
Bryce Harrington | a9d0b68 | 2015-02-12 16:49:15 -0800 | [diff] [blame] | 55 | 5. Send the release announcements to |
Bryce Harrington | 1875aff | 2015-01-26 18:23:37 -0800 | [diff] [blame] | 56 | wayland-devel@lists.freedesktop.org |
Bryce Harrington | b73c58e | 2015-01-09 18:09:21 -0800 | [diff] [blame] | 57 | |
Bryce Harrington | a9d0b68 | 2015-02-12 16:49:15 -0800 | [diff] [blame] | 58 | 6. Get your freshly posted release email URL from |
Kristian Høgsberg | 73dfbd5 | 2014-05-23 10:13:59 -0700 | [diff] [blame] | 59 | http://lists.freedesktop.org/archives/wayland-devel/ |
| 60 | |
Bryce Harrington | a9d0b68 | 2015-02-12 16:49:15 -0800 | [diff] [blame] | 61 | 7. Update releases.html in wayland-web with links to tarballs and |
Bryce Harrington | 7154c18 | 2015-01-30 19:10:12 -0800 | [diff] [blame] | 62 | the release email URL. |
| 63 | |
| 64 | $ git commit releases.html -m "Add x.y.z release" |
| 65 | $ git push |
| 66 | $ rsync -avz * wayland.freedesktop.org:/srv/wayland.freedesktop.org/www/ |
Kristian Høgsberg | 73dfbd5 | 2014-05-23 10:13:59 -0700 | [diff] [blame] | 67 | |
Bryce Harrington | a9d0b68 | 2015-02-12 16:49:15 -0800 | [diff] [blame] | 68 | 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] | 69 | |
Bryce Harrington | 7154c18 | 2015-01-30 19:10:12 -0800 | [diff] [blame] | 70 | |
Kristian Høgsberg | 73dfbd5 | 2014-05-23 10:13:59 -0700 | [diff] [blame] | 71 | For x.y.0 releases, also create the x.y branch. The x.y branch is for |
Bryce Harrington | ae71579 | 2015-01-09 18:09:20 -0800 | [diff] [blame] | 72 | bug fixes and conservative changes to the x.y.0 release, and is where |
Kristian Høgsberg | 73dfbd5 | 2014-05-23 10:13:59 -0700 | [diff] [blame] | 73 | we release x.y.z releases from. Creating the x.y branch opens up |
| 74 | master for new development and lets new development move on. We've |
| 75 | done this both after the x.y.0 release (to focus development on bug |
| 76 | fixing for the x.y.1 release for a little longer) or before the x.y.0 |
| 77 | release (like we did with the 1.5.0 release, to unblock master |
| 78 | development early). |
| 79 | |
Bryce Harrington | b73c58e | 2015-01-09 18:09:21 -0800 | [diff] [blame] | 80 | $ git branch x.y |
| 81 | $ git push origin x.y |
| 82 | |
Kristian Høgsberg | 73dfbd5 | 2014-05-23 10:13:59 -0700 | [diff] [blame] | 83 | The master branch configure.ac version should always be (at least) |
| 84 | x.y.90, with x.y being the most recent stable branch. Stable branch |
| 85 | configure version is just whatever was most recently released from |
| 86 | that branch. |
| 87 | |
| 88 | For stable branches, we commit fixes to master first, then cherry-pick |
| 89 | them back to the stable branch. |