diff options
author | Carlos Garcia Campos <carlosgc@gnome.org> | 2007-12-16 17:10:42 +0100 |
---|---|---|
committer | Carlos Garcia Campos <carlosgc@gnome.org> | 2007-12-16 17:10:42 +0100 |
commit | 3c57e6d71491c1001c61947a006f33cb17d4e0bd (patch) | |
tree | 58a3d03a1052907ee91bd8c50fdcfdc2d0deae04 /RELEASING | |
parent | 764c681fa2fa0bc91f8b7ba535b5fc2b35ae4b25 (diff) |
Add scripts and instructions for releasing, based on cairo release system
Diffstat (limited to 'RELEASING')
-rw-r--r-- | RELEASING | 101 |
1 files changed, 101 insertions, 0 deletions
diff --git a/RELEASING b/RELEASING new file mode 100644 index 0000000..d5697e0 --- /dev/null +++ b/RELEASING @@ -0,0 +1,101 @@ +Here are the steps to follow to create a new libspectre release: + +1) Ensure that there are no local, uncommitted modifications. + It's probably good enough if "git diff HEAD" doesn't output + anything and your "master" and "origin" branchs are at the current + revision. + +2) Verify that the code passes "make distcheck" + + First, make sure you have 'nm' and 'readelf' commands in PATH. + this should be Ok with any Linux distro. + + Running "make distcheck" should result in no warnings or + errors and end with a message of the form: + + ================================================== + libspectre-X.Y.Z archives ready for distribution: + libspectre-X.Y.Z.tar.gz + ================================================== + + (But the tar file isn't actually ready yet, as we still have + some more steps to follow). + +3) Fill out an entry in the NEWS file + + Sift through the logs since the last release. This is most + easily done with a comand such as: + + git log --stat X.Y.Z.. + + where X.Y.Z is the previous release version. + + Summarize major changes briefly in a style similar to other + entries in NEWS. Take special care to note any additions in + the API. These should be easy to find by noting modifications + to .h files in the log command above. And more specifically, + the following command will show each patch that has changed a + public header file since the given version: + + find libspectre -name 'spectre*.h' ! -name '*-private.h' \ + ! -name 'spectre-gs.h' ! -name 'spectre-device.h' \ + ! -name 'spectre-utils.h' | xargs git log -p X.Y.Z.. -- + +4) Increment spectre_{minor|micro}_version and LT_{CURRENT|REVISION|AGE} + in configure.ac: + + If there are API additions, then increment spectre_minor_version + and reset spectre_micro_version to 0. + + Otherwise, (ie. there are only bug fixes), increment + spectre_micro_version to the next larger number. + + Adjust LT_CURRENT, LT_REVISION, and LT_AGE as described in the + comments in configure.ac. + +5) Commit the changes to NEWS and configure.ac and push + + It's especially important to mention the new version number in your + commit log. + +6) Run "make release-publish" which will perform the following steps + for you: + + * Generate ChangeLog file out of git repository + * Check that no release exists with the current version + * Verify that make distcheck completes successfully + * Generate the final tar file + * Generate an sha1sum file + * Sign the sha1sum using your GPG setup (asks for your GPG password) + * scp the three files to appear on http://libspectre.freedesktop.org/releases + * Place local copies of the three files in the releases directory + * Create a LATEST-package-version file (after deleting any old one) + * Tag the entire source tree with a tag of the form X.Y.Z, and sign + the tag with your GPG key (asks for your GPG password, and you + may need to set GIT_COMMITTER_NAME and GIT_COMMITTER_EMAIL to match + your public-key's setting or this fails.) + * Provide some text for the release announcement (see below). + If for some reason you lost this message, "make release-publish-message" + prints it for you. + +7) Push the newly created tag out to the central tree with a command + something like: + + git push origin X.Y.Z + +8) Edit the libspectre bugzilla product and add the new version + number. + +9) If there are API changes run "make doc-publish" to update the + documentation manual. + +10) Send a message to announce the new release using + the text provided from "make release-publish", adding the excerpt + from NEWS, your signature, followed by the standard "What is libspectre" + and "Where to get more information about libspectre" blurbs from README, + and finally tacking on the detailed changelog-ish thing that gets + mailed out when you push the tag (but not the diffstat thing). + +11) Edit the libspectre wiki to add the announcement. + + |