Version 19 (modified by 11 years ago) ( diff ) | ,
---|
Making a release of WebKit/GTK+
This document describes the steps toward making a release. To understand release strategy and timing please see https://trac.webkit.org/wiki/WebKitGTKStableReleases
1. The last commit before release
- Update the NEWS file using the same format as the previous entry.
- Identify the commit id of the previous release (NEWS file is normally changed only when releasing, so you could get the commit id of the previous release by looking at NEWS history)
- Summarize major changes briefly in a style similar to other entries in NEWS.
- You can use gtk-release-notes script.
- Copy the script to Tools/Scripts and run it giving the commit id of the previous release.
- It returns a list of bugs fixed since the given revision that might be related to the GTK port and the list fo people who fixed every bug.
- Take special care to note any additions in the API. The following command will show each patch that has changed a public header file since the given version:
$ find Source/WebKit/gtk/webkit/ -name "webkit*.h" ! -name '*private.h' | xargs git log -p <commit-id-of-previous-release>.. --
- Update Source/autotools/Versions.m4:
- The public version is controlled by the lines:
m4_define([webkit_major_version], [1]) m4_define([webkit_minor_version], [7]) m4_define([webkit_micro_version], [5])
- The libtool library version is controlled by the line:
m4_define([libwebkitgtk_version], [C:R:A])
- C (current): increment if the interface has additions, changes, removals.
- R (revision): increment any time the source changes; set to 0 if you increment CURRENT
- A (age): increment if any interfaces have been added; set to 0 if any interfaces have been changed or removed. Removal has precedence over adding, so set to 0 if both happened.
- The user-agent version should be updated from Source/WebCore/Configurations/Version.xcconfig. It's controlled by the lines:
m4_define([webkit_user_agent_major_version], [535]) m4_define([webkit_user_agent_minor_version], [20])
- The public version is controlled by the lines:
2. Run final tests before release
- Run
make distcheck
with the patched version of gnumake (or take `make-3.8x-long-cmdline.patch` from here).- Running "make distcheck" should result in no warnings or errors and show:
================================================== webkit-X.Y.Z archives ready for distribution: webkit-X.Y.Z.tar.xz ==================================================
- Running "make distcheck" should result in no warnings or errors and show:
- Commit the changes to NEWS and configure.ac. It's especially important to mention the new version number in your commit message.
- Check that the bots are not horribly broken and run the layout tests locally and see that they are in reasonably good health
3. Make the release
make distcheck
should have created tarball in the build directory. Upload it to petibonum.igalia.com.- Update the website to add the annoucement and download link
- Tag the release using the command:
svn cp http://svn.webkit.org/repository/webkit/trunk/ http://svn.webkit.org/repository/webkit/releases/WebKitGTK/webkit-[release version]
4. After the release
- Update the API documentation (FIXME: how?)
- Send a message to announce the new release to webkit-gtk@lists.webkit.org with CC: gnome-announce-list@gnome.org. You can use previous announcements as a template.
- Update the WebKitGTK+ entry of the current moduleset in jhbuild repository
- Update the IRC topic message
- Suggestions:
- Update WebKitGTK/StartHacking
- Dependencies are not listed in the official page. Maybe it would be worthy to add them also somewhere there or just add it to the published NEWS messages as in:
Attachments (1)
-
gtk-release-notes
(1.5 KB
) - added by 13 years ago.
Script to get information about bugs fixed since a given release
Download all attachments as: .zip
Note:
See TracWiki
for help on using the wiki.