blob: 446e1ad49783fdd88ef3399715094ee787eae9e2 [file] [log] [blame]
Bryce Harringtonb73c58e2015-01-09 18:09:21 -08001To make a release of Weston and/or Wayland, follow these steps.
Kristian Høgsberg73dfbd52014-05-23 10:13:59 -07002
Bryce Harrington044f79d2015-02-06 18:01:33 -08003 0. Verify the test suites and codebase checks pass. All of the
Bryce Harringtone23697f2017-01-24 21:54:41 -08004 tests should either pass or skip.
Kristian Høgsberg73dfbd52014-05-23 10:13:59 -07005
Bryce Harringtonb73c58e2015-01-09 18:09:21 -08006 $ make check
Kristian Høgsberg73dfbd52014-05-23 10:13:59 -07007
Bryce Harringtonf89cd512016-05-24 12:34:44 -07008 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 Ådahl379ee652015-11-18 10:45:28 +080011
Bryce Harrington3ced1a02016-08-30 12:00:38 -070012 2. Update the first stanza of configure.ac to the intended versions
Bryce Harrington819824d2017-02-03 17:23:24 -080013 for Weston and libweston.
Pekka Paalanenbfb392e2016-08-10 12:06:43 +030014
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 Harrington819824d2017-02-03 17:23:24 -080019 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 Paalanenbfb392e2016-08-10 12:06:43 +030023
24 Weston releases are made with the Weston version number, not with the
25 libweston version number.
26
27 Then commit your changes:
Bryce Harrington044f79d2015-02-06 18:01:33 -080028
Bryce Harrington9a4a47d2015-05-27 23:55:08 -070029 $ export RELEASE_NUMBER="x.y.z"
Bryce Harringtoncab7ed92015-08-16 14:00:05 -070030 $ export RELEASE_NAME="[alpha|beta|RC1|RC2|official|point]"
Bryce Harrington044f79d2015-02-06 18:01:33 -080031 $ git status
Bryce Harrington4b488952015-05-26 19:20:37 -070032 $ git commit configure.ac -m "configure.ac: bump to version $RELEASE_NUMBER for the $RELEASE_NAME release"
Bryce Harrington044f79d2015-02-06 18:01:33 -080033 $ git push
34
Jonas Ådahl379ee652015-11-18 10:45:28 +080035 3. For Weston releases, install Xwayland, either from your distro or
Bryce Harrington8a88cec2015-02-13 20:46:41 -080036 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 Harringtona9d0b682015-02-12 16:49:15 -080039
Bryce Harrington90e2d072015-09-17 16:33:48 -070040 XWAYLAND=$(which Xwayland) # Or specify your own path
41 export DISTCHECK_CONFIGURE_FLAGS="--with-xserver-path=$XWAYLAND"
Bryce Harringtona9d0b682015-02-12 16:49:15 -080042
Bryce Harringtonb33877a2015-05-15 18:51:19 -070043 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 Harrington5fa73512015-05-15 18:50:04 -070046
Bryce Harringtonb33877a2015-05-15 18:51:19 -070047 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 Harrington5fa73512015-05-15 18:50:04 -070050
Jonas Ådahl379ee652015-11-18 10:45:28 +080051 4. Run the release.sh script to generate the tarballs, sign and
Bryce Harringtonb73c58e2015-01-09 18:09:21 -080052 upload them, and generate a release announcement template.
53 This script can be obtained from X.org's modular package:
Kristian Høgsberg73dfbd52014-05-23 10:13:59 -070054
Bryce Harringtonb73c58e2015-01-09 18:09:21 -080055 http://cgit.freedesktop.org/xorg/util/modular/tree/release.sh
Kristian Høgsberg73dfbd52014-05-23 10:13:59 -070056
Bryce Harringtonb73c58e2015-01-09 18:09:21 -080057 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øgsberg73dfbd52014-05-23 10:13:59 -070062
Bryce Harrington9a4a47d2015-05-27 23:55:08 -070063 $ release.sh .
Bryce Harrington4b488952015-05-26 19:20:37 -070064
Bryce Harrington12e6dbb2017-02-21 14:34:10 -080065 For Wayland official and point releases, also publish the publican
66 documentation to wayland.freedesktop.org:
Bryce Harringtone534ae42015-05-27 15:33:27 -070067
Bryce Harrington9a4a47d2015-05-27 23:55:08 -070068 $ ./publish-doc
Bryce Harringtone534ae42015-05-27 15:33:27 -070069
Jonas Ådahl379ee652015-11-18 10:45:28 +080070 5. Compose the release announcements. The script will generate
Bryce Harrington1abf5e42016-01-20 11:50:12 -080071 *.x.y.z.announce files with a list of changes and tags, one for
Bryce Harrington1875aff2015-01-26 18:23:37 -080072 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øgsberg73dfbd52014-05-23 10:13:59 -070075
Abdur Rehmaneedf49f2017-01-01 19:46:40 +050076 6. pgp sign the release announcements and send them to
Bryce Harrington1875aff2015-01-26 18:23:37 -080077 wayland-devel@lists.freedesktop.org
Bryce Harringtonb73c58e2015-01-09 18:09:21 -080078
Bryce Harrington1abf5e42016-01-20 11:50:12 -080079 7. Update releases.html in wayland-web with links to tarballs and
Bryce Harrington7154c182015-01-30 19:10:12 -080080 the release email URL.
81
Bryce Harrington2f783012016-05-04 14:58:24 -070082 The wl_register_release script in wayland-web will generate an HTML
Bryce Harrington9a4a47d2015-05-27 23:55:08 -070083 snippet that can be pasted into releases.html (or e.g. in emacs
Bryce Harrington7b0d18e2016-05-31 15:52:33 -070084 insert it via "C-u M-! scripts/wl_register_release x.y.z") and
Bryce Harrington9a4a47d2015-05-27 23:55:08 -070085 customized.
Bryce Harringtonf89ca8c2015-05-27 13:03:42 -070086
Bryce Harrington9a4a47d2015-05-27 23:55:08 -070087 Once satisfied:
Bryce Harringtonf89ca8c2015-05-27 13:03:42 -070088
Bryce Harrington1abf5e42016-01-20 11:50:12 -080089 $ git commit ./releases.html -m "releases: Add ${RELEASE_NUMBER} release"
Bryce Harrington7154c182015-01-30 19:10:12 -080090 $ git push
Bryce Harringtone534ae42015-05-27 15:33:27 -070091 $ ./deploy
Kristian Høgsberg73dfbd52014-05-23 10:13:59 -070092
Bryce Harrington1abf5e42016-01-20 11:50:12 -080093 8. Update topic in #wayland to point to the release announcement URL
Kristian Høgsberg73dfbd52014-05-23 10:13:59 -070094
Bryce Harringtonbbdb2a92015-05-27 13:06:59 -070095For x.y.0 releases, also create the release series x.y branch. The x.y
96branch is for bug fixes and conservative changes to the x.y.0 release,
Bryce Harrington6657fda2016-06-01 17:17:57 -070097and is where we create x.y.z releases from. Creating the x.y branch
Bryce Harringtonbbdb2a92015-05-27 13:06:59 -070098opens up master for new development and lets new development move on.
99We've done this both after the x.y.0 release (to focus development on
100bug fixing for the x.y.1 release for a little longer) or before the
101x.y.0 release (like we did with the 1.5.0 release, to unblock master
102development early).
Kristian Høgsberg73dfbd52014-05-23 10:13:59 -0700103
Bryce Harrington6657fda2016-06-01 17:17:57 -0700104 $ git branch x.y [sha]
Bryce Harringtonb73c58e2015-01-09 18:09:21 -0800105 $ git push origin x.y
106
Bryce Harrington819824d2017-02-03 17:23:24 -0800107The master branch's configure.ac version should always be (at least)
108x.y.90, with x.y being the most recent stable branch. The stable
109branch's configure.ac version is just whatever was most recently
110released from that branch.
Kristian Høgsberg73dfbd52014-05-23 10:13:59 -0700111
112For stable branches, we commit fixes to master first, then cherry-pick
113them back to the stable branch.