Update release instructions for new release-publish target.

Add release-check and release-publish targets copied from libpixman.
This commit is contained in:
Carl Worth 2004-10-27 11:59:56 +00:00
parent 39d57762a6
commit 377983fdf3
3 changed files with 80 additions and 37 deletions

View file

@ -1,5 +1,11 @@
2004-10-27 Carl Worth <cworth@cworth.org>
* RELEASING: Update release instructions for new release-publish
target.
* Makefile.am: Add release-check and release-publish targets
copied from libpixman.
* test/Makefile.am (AM_LDFLAGS): Fix to always link tests against
locally built library, not installed version.

View file

@ -8,3 +8,43 @@ EXTRA_DIST = \
pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = cairo.pc
# Some custom targets to make it easier to release things.
# Use either:
# make release-check
# or make release-publish
RELEASE_UPLOAD_DIR = cairographics.org:/home/www/cairo/snapshots
RELEASE_URL_BASE = http://cairographics.org/snapshots
RELEASE_ANNOUNCE_LIST = cairo-announce@cairographics.org
tar_file = $(PACKAGE)-$(VERSION).tar.gz
md5_file = $(tar_file).md5
$(md5_file): $(tar_file)
md5sum $^ > $@
release-remove-old:
rm -f $(tar_file) $(md5_file)
release-check: release-remove-old distcheck $(md5_file)
release-publish: release-check
mkdir -p releases
scp $(tar_file) $(md5_file) $(RELEASE_UPLOAD_DIR)
mv $(tar_file) $(md5_file) releases
@echo ""
@echo "Please send an announcement to $(RELEASE_ANNOUNCE_LIST)"
@echo "including the following:"
@echo ""
@echo "Subject: $(PACKAGE) snapshot $(VERSION) now available"
@echo ""
@echo "A new $(PACKAGE) snapshot $(VERSION) is now available from:"
@echo ""
@echo " $(RELEASE_URL_BASE)/$(tar_file)"
@echo " $(RELEASE_URL_BASE)/$(md5_file)"
@echo -n " "
@cat releases/$(md5_file)
@echo ""
@echo "Also, please include the new entries from the NEWS file."

View file

@ -2,38 +2,30 @@ So far, cairo hasn't reached an initial release. But we can still form
good habits now by practicing the release process with the current
snapshots.
10 easy steps to creating a new cairo snapshot
==============================================
A new snapshot is needed whenever significant new features or bug
fixes are committed. Here are the steps to follow:
1) Commit code with a significant new feature or backwards
incompatibility.
1) Ensure that there are no local, uncommitted modifications. The best
thing to do here may be to begin with a fresh checkout from CVS:
Either of these events triggers the need for a new snapshot.
Users of cairo snapshots need to be able to specify snapshot
version numbers in order to get access to a specific set of
features.
cvs -d cairographics.org:/cvs/cairo co cairo
2) Increment CAIRO_VERSION in configure.in
But it's probably good enough if "cvs -q update -Ad" generates no
output.
Right now, in its pre-release form, we are incrementing
CAIRO_VERSION for each snapshot but we are not changing the
libtool shared library version information. Until now, we've
only incremented the sub-minor version. We'll invent rules for
incrementing major and minor numbers when the time is right.
3) Verify that the code passes "make distcheck"
2) Verify that the code passes "make distcheck"
Running "make distcheck" should result in no warnings or
errors and end with a message of the form:
=============================================
================================================
cairo-X.Y.Z.tar.gz is ready for distribution
=============================================
================================================
(But the tar file isn't actually ready yet, as we still have
some more steps to follow).
4) Fill out an entry in the NEWS file
3) Fill out an entry in the NEWS file
Sift through the information in ChangeLog since the last
snapshot. Summarize major changes briefly in a style similar
@ -41,33 +33,38 @@ snapshots.
incompatible changes in the API. These should be easy to find
by looking for cairo.h in the ChangeLog.
4) Increment CAIRO_VERSION in configure.in
Right now, in its pre-release form, we are incrementing
CAIRO_VERSION for each snapshot but we are not changing
the libtool shared library version information. Increment the
subminor version for bug fixes and backwards-compatible
additions to the API. Increment the minor number (and reset
the subminor) for backward-incompatible changes to the API
(including removals). Leave the major number at 0 until we are
ready for the first 1.0 release, (at which point these rules
will change).
5) Commit the changes to NEWS and configure.in
Don't forget to fill out the ChangeLog just like with any
other commit. It's especially important to mention the new
version number in the ChangeLog.
6) Run "make distcheck" to generate the final tar file including the
changes to NEWS and ChangeLog.
6) Run "make release-publish" which will perform the following steps
for you:
7) Copy the resulting tar file to the cairo snapshots distribution
directory:
* Verify that make distcheck completes successfully
* Generate the final tar file with the correct version number
* Generate an md5sum file
* scp both files to cairographics.org:/home/www/cairo/snapshots
* Place local copies of both files in the releases directory
* Provide some text for the release announcement
scp cairo-X.Y.Z-tar.gz cairographics.org:/home/www/cairo/snapshots
8) Tag the entire source tree with a tag of the form SNAPSHOT_X_Y_Z:
7) Tag the entire source tree with a tag of the form SNAPSHOT_X_Y_Z:
cvs tag SNAPSHOT_X_Y_Z
9) Send a message to cairo-announce@cairographics.org to announce the
new snapshot.
8) Send a message to cairo-announce@cairographics.org to announce the
new snapshot using the text provided by the previous step.
The message should provide the URL for the snapshot:
http://cairographics.org/snapshots/cairo-X.Y.Z.tar.gz
and should also include the relevant section from the NEWS
file.
10) Sit back and relax in confidence, or alternately, brace yourself
for a flood of new bug reports.