blob: 62c5be9fafe9bd6b60008dd3387ee784bb53d620 [file] [log] [blame]
Kristian Høgsbergbe957cc2009-12-03 17:49:31 -05001The release criteria for libdrm is essentially "if you need a release,
2make one". There is no designated release engineer or maintainer.
3Anybody is free to make a release if there's a certain feature or bug
4fix they need in a released version of libdrm.
5
6When new ioctl definitions are merged into drm-next, we will add
7support to libdrm, at which point we typically create a new release.
8However, this is up to whoever is driving the feature in question.
9
10Follow these steps to release a new version of libdrm:
11
12 1) Ensure that there are no local, uncommitted/unpushed
13 modifications. You're probably in a good state if both "git diff
14 HEAD" and "git log master..origin/master" give no output.
15
Damien Lespiau992940c2015-03-19 16:27:31 +000016 2) Bump the version number in configure.ac. We seem to have settled
Kristian Høgsbergbe957cc2009-12-03 17:49:31 -050017 for 2.4.x as the versioning scheme for libdrm, so just bump the
18 micro version.
19
Damien Lespiau992940c2015-03-19 16:27:31 +000020 3) Run autoconf and then re-run ./configure so the build system
Kristian Høgsbergbe957cc2009-12-03 17:49:31 -050021 picks up the new version number.
22
Damien Lespiau992940c2015-03-19 16:27:31 +000023 4) (optional step, release.sh will make distcheck for you, but it can be
Damien Lespiau8f245b72015-03-19 16:24:49 +000024 heart warming to verify that make distcheck passes)
Kristian Høgsbergbe957cc2009-12-03 17:49:31 -050025
Damien Lespiau8f245b72015-03-19 16:24:49 +000026 Verify that the code passes "make distcheck". Running "make
27 distcheck" should result in no warnings or errors and end with a
28 message of the form:
Kristian Høgsbergbe957cc2009-12-03 17:49:31 -050029
30 =============================================
31 libdrm-X.Y.Z archives ready for distribution:
32 libdrm-X.Y.Z.tar.gz
33 libdrm-X.Y.Z.tar.bz2
34 =============================================
35
36 Make sure that the version number reported by distcheck and in
37 the tarball names matches the number you bumped to in configure.ac.
38
Damien Lespiau992940c2015-03-19 16:27:31 +000039 5) Commit the configure.ac change and make an annotated tag for that
Kristian Høgsbergbe957cc2009-12-03 17:49:31 -050040 commit with the version number of the release as the name and a
41 message of "libdrm X.Y.Z". For example, for the 2.4.16 release
42 the command is:
43
44 git tag -a 2.4.16 -m "libdrm 2.4.16"
45
Damien Lespiau992940c2015-03-19 16:27:31 +000046 6) Push the commit and tag by saying
Kristian Høgsbergbe957cc2009-12-03 17:49:31 -050047
48 git push --tags origin master
49
50 assuming the remote for the upstream libdrm repo is called origin.
51
Damien Lespiau992940c2015-03-19 16:27:31 +000052 7) Use the release.sh script from the xorg/util/modular repo to
Kristian Høgsbergbe957cc2009-12-03 17:49:31 -050053 upload the tarballs to the freedesktop.org download area and
Damien Lespiaue2acca42015-03-19 16:29:52 +000054 create an announce email template. The script takes one argument:
Damien Lespiau8f245b72015-03-19 16:24:49 +000055 the path to the libdrm checkout. So, if a checkout of modular is
56 at the same level than the libdrm repo:
Kristian Høgsbergbe957cc2009-12-03 17:49:31 -050057
Damien Lespiau8f245b72015-03-19 16:24:49 +000058 ./modular/release.sh libdrm
Kristian Høgsbergbe957cc2009-12-03 17:49:31 -050059
60 This copies the two tarballs to freedesktop.org and creates
61 libdrm-2.4.16.announce which has a detailed summary of the
62 changes, links to the tarballs, MD5 and SHA1 sums and pre-filled
63 out email headers. Fill out the blank between the email headers
64 and the list of changes with a brief message of what changed or
65 what prompted this release. Send out the email and you're done!