aboutsummaryrefslogtreecommitdiffstats
path: root/releasing.txt
diff options
context:
space:
mode:
authorSimon Ser <contact@emersion.fr>2019-04-08 21:37:28 +0300
committerSimon Ser <contact@emersion.fr>2019-04-11 19:53:06 +0300
commitb8933d468894b75e5c17681ff4ea533f213bbe28 (patch)
tree6ebcf0acb0dd43b531b1bf4828bf8cd8ae8f9849 /releasing.txt
parentconfigure.ac: reopen master for regular development (diff)
downloadwayland-b8933d468894b75e5c17681ff4ea533f213bbe28.tar
wayland-b8933d468894b75e5c17681ff4ea533f213bbe28.tar.gz
wayland-b8933d468894b75e5c17681ff4ea533f213bbe28.tar.bz2
wayland-b8933d468894b75e5c17681ff4ea533f213bbe28.tar.lz
wayland-b8933d468894b75e5c17681ff4ea533f213bbe28.tar.xz
wayland-b8933d468894b75e5c17681ff4ea533f213bbe28.tar.zst
wayland-b8933d468894b75e5c17681ff4ea533f213bbe28.zip
Add releasing.txt
This file is imported from Weston (commit 53d7c243). Signed-off-by: Simon Ser <contact@emersion.fr>
Diffstat (limited to 'releasing.txt')
-rw-r--r--releasing.txt113
1 files changed, 113 insertions, 0 deletions
diff --git a/releasing.txt b/releasing.txt
new file mode 100644
index 0000000..446e1ad
--- /dev/null
+++ b/releasing.txt
@@ -0,0 +1,113 @@
+To make a release of Weston and/or Wayland, follow these steps.
+
+ 0. Verify the test suites and codebase checks pass. All of the
+ tests should either pass or skip.
+
+ $ make check
+
+ 1. For Weston, verify that the wayland and wayland-protocols version
+ dependencies are correct, and that wayland-protocols has had a
+ release with any needed protocol updates.
+
+ 2. Update the first stanza of configure.ac to the intended versions
+ for Weston and libweston.
+
+ For Weston's x.y.0 releases, if libweston_major_version is greater than
+ weston_major_version, bump the Weston version numbers (major, minor,
+ micro) to match the libweston version numbers (major, minor, patch).
+
+ Additionally for all Weston releases, if libweston's
+ major.minor.patch version is less than Weston's major.minor.micro
+ version, bump libweston version numbers to match the Weston
+ version numbers.
+
+ Weston releases are made with the Weston version number, not with the
+ libweston version number.
+
+ Then commit your changes:
+
+ $ export RELEASE_NUMBER="x.y.z"
+ $ export RELEASE_NAME="[alpha|beta|RC1|RC2|official|point]"
+ $ git status
+ $ git commit configure.ac -m "configure.ac: bump to version $RELEASE_NUMBER for the $RELEASE_NAME release"
+ $ git push
+
+ 3. For Weston releases, install Xwayland, either from your distro or
+ manually (see http://wayland.freedesktop.org/building.html). If
+ you install it to a location other than /usr/bin/Xwayland, specify
+ this in the following env var:
+
+ XWAYLAND=$(which Xwayland) # Or specify your own path
+ export DISTCHECK_CONFIGURE_FLAGS="--with-xserver-path=$XWAYLAND"
+
+ If you're using a locally installed libinput or other dependency
+ libraries, you'll likely need to set a few other environment
+ variables:
+
+ export WLD="<path-to-your-local-installation>"
+ export LD_LIBRARY_PATH=$WLD/lib
+ export PKG_CONFIG_PATH=$WLD/lib/pkgconfig:$WLD/share/pkgconfig/
+
+ 4. Run the release.sh script to generate the tarballs, sign and
+ upload them, and generate a release announcement template.
+ This script can be obtained from X.org's modular package:
+
+ http://cgit.freedesktop.org/xorg/util/modular/tree/release.sh
+
+ The script supports a --dry-run option to test it without actually
+ doing a release. If the script fails on the distcheck step due to
+ a testsuite error that can't be fixed for some reason, you can
+ skip testsuite by specifying the --dist argument. Pass --help to
+ see other supported options.
+
+ $ release.sh .
+
+ For Wayland official and point releases, also publish the publican
+ documentation to wayland.freedesktop.org:
+
+ $ ./publish-doc
+
+ 5. Compose the release announcements. The script will generate
+ *.x.y.z.announce files with a list of changes and tags, one for
+ wayland, one for weston. Prepend these with a human-readable
+ listing of the most notable changes. For x.y.0 releases, indicate
+ the schedule for the x.y+1.0 release.
+
+ 6. pgp sign the release announcements and send them to
+ wayland-devel@lists.freedesktop.org
+
+ 7. Update releases.html in wayland-web with links to tarballs and
+ the release email URL.
+
+ The wl_register_release script in wayland-web will generate an HTML
+ snippet that can be pasted into releases.html (or e.g. in emacs
+ insert it via "C-u M-! scripts/wl_register_release x.y.z") and
+ customized.
+
+ Once satisfied:
+
+ $ git commit ./releases.html -m "releases: Add ${RELEASE_NUMBER} release"
+ $ git push
+ $ ./deploy
+
+ 8. Update topic in #wayland to point to the release announcement URL
+
+For x.y.0 releases, also create the release series x.y branch. The x.y
+branch is for bug fixes and conservative changes to the x.y.0 release,
+and is where we create x.y.z releases from. Creating the x.y branch
+opens up master for new development and lets new development move on.
+We've done this both after the x.y.0 release (to focus development on
+bug fixing for the x.y.1 release for a little longer) or before the
+x.y.0 release (like we did with the 1.5.0 release, to unblock master
+development early).
+
+ $ git branch x.y [sha]
+ $ git push origin x.y
+
+The master branch's configure.ac version should always be (at least)
+x.y.90, with x.y being the most recent stable branch. The stable
+branch's configure.ac version is just whatever was most recently
+released from that branch.
+
+For stable branches, we commit fixes to master first, then cherry-pick
+them back to the stable branch.