blob: 4ea210b728a9cb73b06d4671ade7fa9afe3e3a64 [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 Harringtona9d0b682015-02-12 16:49:15 -080018 2. Install Xwayland, either from your distro or manually (see
19 http://wayland.freedesktop.org/building.html). If you install it
20 to a location other than /usr/bin/Xwayland, specify this in the
21 following env var:
22
23 export DISTCHECK_CONFIGURE_FLAGS="--with-xserver-path=<your-Xwayland-path>"
24
25 3. Run the release.sh script to generate the tarballs, sign and
Bryce Harringtonb73c58e2015-01-09 18:09:21 -080026 upload them, and generate a release announcement template.
27 This script can be obtained from X.org's modular package:
Kristian Høgsberg73dfbd52014-05-23 10:13:59 -070028
Bryce Harringtonb73c58e2015-01-09 18:09:21 -080029 http://cgit.freedesktop.org/xorg/util/modular/tree/release.sh
Kristian Høgsberg73dfbd52014-05-23 10:13:59 -070030
Bryce Harringtonb73c58e2015-01-09 18:09:21 -080031 The script supports a --dry-run option to test it without actually
32 doing a release. If the script fails on the distcheck step due to
33 a testsuite error that can't be fixed for some reason, you can
34 skip testsuite by specifying the --dist argument. Pass --help to
35 see other supported options.
Kristian Høgsberg73dfbd52014-05-23 10:13:59 -070036
Bryce Harringtona9d0b682015-02-12 16:49:15 -080037 4. Compose the release announcements. The script will generate
Bryce Harrington1875aff2015-01-26 18:23:37 -080038 *.x.y.0.announce files with a list of changes and tags, one for
39 wayland, one for weston. Prepend these with a human-readable
40 listing of the most notable changes. For x.y.0 releases, indicate
41 the schedule for the x.y+1.0 release.
Kristian Høgsberg73dfbd52014-05-23 10:13:59 -070042
Bryce Harringtona9d0b682015-02-12 16:49:15 -080043 5. Send the release announcements to
Bryce Harrington1875aff2015-01-26 18:23:37 -080044 wayland-devel@lists.freedesktop.org
Bryce Harringtonb73c58e2015-01-09 18:09:21 -080045
Bryce Harringtona9d0b682015-02-12 16:49:15 -080046 6. Get your freshly posted release email URL from
Kristian Høgsberg73dfbd52014-05-23 10:13:59 -070047 http://lists.freedesktop.org/archives/wayland-devel/
48
Bryce Harringtona9d0b682015-02-12 16:49:15 -080049 7. Update releases.html in wayland-web with links to tarballs and
Bryce Harrington7154c182015-01-30 19:10:12 -080050 the release email URL.
51
52 $ git commit releases.html -m "Add x.y.z release"
53 $ git push
54 $ rsync -avz * wayland.freedesktop.org:/srv/wayland.freedesktop.org/www/
Kristian Høgsberg73dfbd52014-05-23 10:13:59 -070055
Bryce Harringtona9d0b682015-02-12 16:49:15 -080056 8. Update topic in #wayland to point to the release announcement URL
Kristian Høgsberg73dfbd52014-05-23 10:13:59 -070057
Bryce Harrington7154c182015-01-30 19:10:12 -080058
Kristian Høgsberg73dfbd52014-05-23 10:13:59 -070059For x.y.0 releases, also create the x.y branch. The x.y branch is for
Bryce Harringtonae715792015-01-09 18:09:20 -080060bug fixes and conservative changes to the x.y.0 release, and is where
Kristian Høgsberg73dfbd52014-05-23 10:13:59 -070061we release x.y.z releases from. Creating the x.y branch opens up
62master for new development and lets new development move on. We've
63done this both after the x.y.0 release (to focus development on bug
64fixing for the x.y.1 release for a little longer) or before the x.y.0
65release (like we did with the 1.5.0 release, to unblock master
66development early).
67
Bryce Harringtonb73c58e2015-01-09 18:09:21 -080068 $ git branch x.y
69 $ git push origin x.y
70
Kristian Høgsberg73dfbd52014-05-23 10:13:59 -070071The master branch configure.ac version should always be (at least)
72x.y.90, with x.y being the most recent stable branch. Stable branch
73configure version is just whatever was most recently released from
74that branch.
75
76For stable branches, we commit fixes to master first, then cherry-pick
77them back to the stable branch.