blob: b704725af98cd33ae72a5fc5c0271a7a917d4465 [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
4 tests pass 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 Harrington044f79d2015-02-06 18:01:33 -08008 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
14 $ git status
15 $ git commit configure.ac -m "configure.ac: bump to version x.y.z for the xxx release"
16 $ git push
17
Bryce Harringtonb73c58e2015-01-09 18:09:21 -080018 2. Run the release.sh script to generate the tarballs, sign and
19 upload them, and generate a release announcement template.
20 This script can be obtained from X.org's modular package:
Kristian Høgsberg73dfbd52014-05-23 10:13:59 -070021
Bryce Harringtonb73c58e2015-01-09 18:09:21 -080022 http://cgit.freedesktop.org/xorg/util/modular/tree/release.sh
Kristian Høgsberg73dfbd52014-05-23 10:13:59 -070023
Bryce Harringtonb73c58e2015-01-09 18:09:21 -080024 The script supports a --dry-run option to test it without actually
25 doing a release. If the script fails on the distcheck step due to
26 a testsuite error that can't be fixed for some reason, you can
27 skip testsuite by specifying the --dist argument. Pass --help to
28 see other supported options.
Kristian Høgsberg73dfbd52014-05-23 10:13:59 -070029
Bryce Harrington1875aff2015-01-26 18:23:37 -080030 3. Compose the release announcements. The script will generate
31 *.x.y.0.announce files with a list of changes and tags, one for
32 wayland, one for weston. Prepend these with a human-readable
33 listing of the most notable changes. For x.y.0 releases, indicate
34 the schedule for the x.y+1.0 release.
Kristian Høgsberg73dfbd52014-05-23 10:13:59 -070035
Bryce Harrington1875aff2015-01-26 18:23:37 -080036 4. Send the release announcements to
37 wayland-devel@lists.freedesktop.org
Bryce Harringtonb73c58e2015-01-09 18:09:21 -080038
39 5. Get your freshly posted release email URL from
Kristian Høgsberg73dfbd52014-05-23 10:13:59 -070040 http://lists.freedesktop.org/archives/wayland-devel/
41
Bryce Harringtonb73c58e2015-01-09 18:09:21 -080042 6. Update releases.html in wayland-web with links to tarballs and
Bryce Harrington7154c182015-01-30 19:10:12 -080043 the release email URL.
44
45 $ git commit releases.html -m "Add x.y.z release"
46 $ git push
47 $ rsync -avz * wayland.freedesktop.org:/srv/wayland.freedesktop.org/www/
Kristian Høgsberg73dfbd52014-05-23 10:13:59 -070048
Bryce Harringtonb73c58e2015-01-09 18:09:21 -080049 7. Update topic in #wayland to point to the release announcement URL
Kristian Høgsberg73dfbd52014-05-23 10:13:59 -070050
Bryce Harrington7154c182015-01-30 19:10:12 -080051
Kristian Høgsberg73dfbd52014-05-23 10:13:59 -070052For x.y.0 releases, also create the x.y branch. The x.y branch is for
Bryce Harringtonae715792015-01-09 18:09:20 -080053bug fixes and conservative changes to the x.y.0 release, and is where
Kristian Høgsberg73dfbd52014-05-23 10:13:59 -070054we release x.y.z releases from. Creating the x.y branch opens up
55master for new development and lets new development move on. We've
56done this both after the x.y.0 release (to focus development on bug
57fixing for the x.y.1 release for a little longer) or before the x.y.0
58release (like we did with the 1.5.0 release, to unblock master
59development early).
60
Bryce Harringtonb73c58e2015-01-09 18:09:21 -080061 $ git branch x.y
62 $ git push origin x.y
63
Kristian Høgsberg73dfbd52014-05-23 10:13:59 -070064The master branch configure.ac version should always be (at least)
65x.y.90, with x.y being the most recent stable branch. Stable branch
66configure version is just whatever was most recently released from
67that branch.
68
69For stable branches, we commit fixes to master first, then cherry-pick
70them back to the stable branch.