blob: a01fe376940246752c70b55c79eb4dbe6b549d44 [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
13 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
19 Additionally for all Weston releases, if libweston version
20 major.minor.patch is less than Weston version major.minor.micro, bump
21 libweston version numbers to match the Weston version numbers.
22
23 Weston releases are made with the Weston version number, not with the
24 libweston version number.
25
26 Then commit your changes:
Bryce Harrington044f79d2015-02-06 18:01:33 -080027
Bryce Harrington9a4a47d2015-05-27 23:55:08 -070028 $ export RELEASE_NUMBER="x.y.z"
Bryce Harringtoncab7ed92015-08-16 14:00:05 -070029 $ export RELEASE_NAME="[alpha|beta|RC1|RC2|official|point]"
Bryce Harrington044f79d2015-02-06 18:01:33 -080030 $ git status
Bryce Harrington4b488952015-05-26 19:20:37 -070031 $ git commit configure.ac -m "configure.ac: bump to version $RELEASE_NUMBER for the $RELEASE_NAME release"
Bryce Harrington044f79d2015-02-06 18:01:33 -080032 $ git push
33
Jonas Ådahl379ee652015-11-18 10:45:28 +080034 3. For Weston releases, install Xwayland, either from your distro or
Bryce Harrington8a88cec2015-02-13 20:46:41 -080035 manually (see http://wayland.freedesktop.org/building.html). If
36 you install it to a location other than /usr/bin/Xwayland, specify
37 this in the following env var:
Bryce Harringtona9d0b682015-02-12 16:49:15 -080038
Bryce Harrington90e2d072015-09-17 16:33:48 -070039 XWAYLAND=$(which Xwayland) # Or specify your own path
40 export DISTCHECK_CONFIGURE_FLAGS="--with-xserver-path=$XWAYLAND"
Bryce Harringtona9d0b682015-02-12 16:49:15 -080041
Bryce Harringtonb33877a2015-05-15 18:51:19 -070042 If you're using a locally installed libinput or other dependency
43 libraries, you'll likely need to set a few other environment
44 variables:
Bryce Harrington5fa73512015-05-15 18:50:04 -070045
Bryce Harringtonb33877a2015-05-15 18:51:19 -070046 export WLD="<path-to-your-local-installation>"
47 export LD_LIBRARY_PATH=$WLD/lib
48 export PKG_CONFIG_PATH=$WLD/lib/pkgconfig:$WLD/share/pkgconfig/
Bryce Harrington5fa73512015-05-15 18:50:04 -070049
Jonas Ådahl379ee652015-11-18 10:45:28 +080050 4. Run the release.sh script to generate the tarballs, sign and
Bryce Harringtonb73c58e2015-01-09 18:09:21 -080051 upload them, and generate a release announcement template.
52 This script can be obtained from X.org's modular package:
Kristian Høgsberg73dfbd52014-05-23 10:13:59 -070053
Bryce Harringtonb73c58e2015-01-09 18:09:21 -080054 http://cgit.freedesktop.org/xorg/util/modular/tree/release.sh
Kristian Høgsberg73dfbd52014-05-23 10:13:59 -070055
Bryce Harringtonb73c58e2015-01-09 18:09:21 -080056 The script supports a --dry-run option to test it without actually
57 doing a release. If the script fails on the distcheck step due to
58 a testsuite error that can't be fixed for some reason, you can
59 skip testsuite by specifying the --dist argument. Pass --help to
60 see other supported options.
Kristian Høgsberg73dfbd52014-05-23 10:13:59 -070061
Bryce Harrington9a4a47d2015-05-27 23:55:08 -070062 $ release.sh .
Bryce Harrington4b488952015-05-26 19:20:37 -070063
Bryce Harrington9a4a47d2015-05-27 23:55:08 -070064 For wayland, also publish the publican documentation to
65 wayland.freedesktop.org:
Bryce Harringtone534ae42015-05-27 15:33:27 -070066
Bryce Harrington9a4a47d2015-05-27 23:55:08 -070067 $ ./publish-doc
Bryce Harringtone534ae42015-05-27 15:33:27 -070068
69
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
Kristian Høgsberg73dfbd52014-05-23 10:13:59 -0700107The master branch configure.ac version should always be (at least)
108x.y.90, with x.y being the most recent stable branch. Stable branch
109configure version is just whatever was most recently released from
110that branch.
111
112For stable branches, we commit fixes to master first, then cherry-pick
113them back to the stable branch.