From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: ludo@gnu.org (Ludovic =?iso-8859-1?Q?Court=E8s?=) Newsgroups: gmane.lisp.guile.devel Subject: Release process for Guile 2.0 Date: Wed, 06 Jul 2011 13:10:05 +0200 Message-ID: <87zkkrfywi.fsf@gnu.org> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: multipart/signed; boundary="==-=-="; micalg=pgp-sha1; protocol="application/pgp-signature" X-Trace: dough.gmane.org 1309950647 17149 80.91.229.12 (6 Jul 2011 11:10:47 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Wed, 6 Jul 2011 11:10:47 +0000 (UTC) To: guile-devel@gnu.org Original-X-From: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Wed Jul 06 13:10:42 2011 Return-path: Envelope-to: guile-devel@m.gmane.org Original-Received: from lists.gnu.org ([140.186.70.17]) by lo.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1QeQ07-0002wS-8a for guile-devel@m.gmane.org; Wed, 06 Jul 2011 13:10:39 +0200 Original-Received: from localhost ([::1]:40580 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QeQ05-0003ff-VG for guile-devel@m.gmane.org; Wed, 06 Jul 2011 07:10:38 -0400 Original-Received: from eggs.gnu.org ([140.186.70.92]:33677) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QePzu-0003es-Nh for guile-devel@gnu.org; Wed, 06 Jul 2011 07:10:28 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1QePzs-0001HO-3e for guile-devel@gnu.org; Wed, 06 Jul 2011 07:10:26 -0400 Original-Received: from lo.gmane.org ([80.91.229.12]:35850) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QePzr-0001HI-Iq for guile-devel@gnu.org; Wed, 06 Jul 2011 07:10:23 -0400 Original-Received: from list by lo.gmane.org with local (Exim 4.69) (envelope-from ) id 1QePzp-0002p5-0V for guile-devel@gnu.org; Wed, 06 Jul 2011 13:10:21 +0200 Original-Received: from reverse-83.fdn.fr ([80.67.176.83]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Wed, 06 Jul 2011 13:10:21 +0200 Original-Received: from ludo by reverse-83.fdn.fr with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Wed, 06 Jul 2011 13:10:21 +0200 X-Injected-Via-Gmane: http://gmane.org/ Original-Lines: 196 Original-X-Complaints-To: usenet@dough.gmane.org X-Gmane-NNTP-Posting-Host: reverse-83.fdn.fr X-URL: http://www.fdn.fr/~lcourtes/ X-Revolutionary-Date: 18 Messidor an 219 de la =?iso-8859-1?Q?R=E9volution?= X-PGP-Key-ID: 0xEA52ECF4 X-PGP-Key: http://www.fdn.fr/~lcourtes/ludovic.asc X-PGP-Fingerprint: 83C4 F8E5 10A3 3B4C 5BEA D15D 77DD 95E2 EA52 ECF4 X-OS: x86_64-unknown-linux-gnu User-Agent: Gnus/5.110017 (No Gnus v0.17) Emacs/24.0.50 (gnu/linux) Cancel-Lock: sha1:+qYz12OUh4M7kzz6rgF+qvc7WUs= X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 3) X-Received-From: 80.91.229.12 X-BeenThere: guile-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Developers list for Guile, the GNU extensibility library" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Original-Sender: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.lisp.guile.devel:12644 Archived-At: --==-=-= Content-Type: multipart/mixed; boundary="=-=-=" --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Hello, Attached is a document describing the release process as I=E2=80=99ve done = it for 2.0. The goal is to make it possible for someone else to take over this nice job ;-), even temporarily, and perhaps to discuss things. I can add it to the repo if you think it=E2=80=99s a good idea. Comments welcome. Ludo=E2=80=99. --=-=-= Content-Type: text/x-org; charset=iso-8859-1 Content-Disposition: inline; filename=release.org Content-Transfer-Encoding: quoted-printable Content-Description: the release process #+TITLE: Release Process for GNU Guile 2.0 #+AUTHOR: Ludovic Court=E8s #+EMAIL: ludo@gnu.org * Preparing & uploading the tarball ** Update Gnulib The commit log's first line should be "Update Gnulib to X", where X is the output of `git describe' in the Gnulib repo. This allows us to keep track of the source code we use, in case a bug or security vulnerability gets fixed in Gnulib sometime later. Ideally update Gnulib several days prior to the release, so that portability or build issues can be uncovered in time. ** Make sure it works, portably, and with different configurations *** Check [[http://hydra.nixos.org/jobset/gnu/guile-2-0][Hydra]] This contains builds and cross-builds on different platforms, with different `configure' switches, different CPPFLAGS, and different versions of the compiler. As of this writing, there are unfixed failures. For instance Darwin's compiler randomly crashes, preventing build completion; the FreeBSD 7.x box experiences Guile crashes while running the test suite, which were not fixed because not reproduced elsewhere. Even for these platforms, make sure "things don't get worse", at least. *** Check [[http://autobuild.josefsson.org/guile/][Autobuild]] This contains build reports from other people, typically on lesser used platforms, so it's worth checking. *** Use the [[http://gcc.gnu.org/wiki/CompileFarm][GCC Compile Farm]] Use the GCC Compile Farm to check on lesser used architectures or operating systems. In particular, the Farm has ARM, SPARC64, PowerPC, and MIPS GNU/Linux boxes (remember that this is not superfluous: Debian builds on 11 architectures). It also has FreeBSD and NetBSD boxes. *** Use porter boxes If you're still in a good mood, you may also want to check on porter boxes for other OSes. The GNU/Hurd people have [[http://www.gnu.org/softwa= re/hurd/public_hurd_boxen.html][porter boxes]], so does the [[http://www.opencsw.org/standards/build_farm][OpenCSW Solaris Team]]. ** Update `GUILE-VERSION' For stable releases, make sure to update the SONAME appropriately. To that end, review the commit logs for libguile in search of any C ABI changes (new functions added, existing functions deprecated, etc.) Change `LIBGUILE_INTERFACE_*' accordingly. Re-read the Libtool manual if in doubt. `libguile/libguile.map' should also be updated as new public symbols are added. Ideally, new symbols should get under a new version symbol---e.g., `GUILE_2.0.3' for symbols introduced in Guile 2.0.3. However, this has not been done for Guile <=3D 2.0.2. ** Tag v2.0.x Create a signed Git tag, like this: $ git tag -s u MY-KEY -m "GNU Guile 2.0.X." v2.0.X The tag *must* be `v2.0.X'. For the sake of consistency, always use "GNU Guile 2.0.X." as the tag comment. ** Push the tag and changes $ git push && git push --tags Normally nobody committed in the meantime. ;-) ** Run "make dist" This should trigger an `autoreconf', as `build-aux/git-version-gen' notices the new tag. After "make dist", double-check that `./configure =2D-version' reports the new version number. The reason for running "make dist" instead of "make distcheck" is that it's much faster and any distribution issues should have been caught by Hydra already. ** Upload $ ./build-aux/gnupload --to ftp.gnu.org:guile guile-2.0.X.tar.gz You'll get an email soon after when the upload is complete. Your GPG public key must be registered for this to work (info "(maintain) Automated Upload Registration"). Make sure to publish your public key on public OpenPGP servers (keys.gnupg.net, pgp.mit.edu, etc.), so that people can actually use it to check the authenticity and integrity of the tarball. ** Download Make sure the file was uploaded and is available for download as expected: $ mkdir t && cd t && wget ftp.gnu.org/gnu/guile/guile-2.0.X.tar.gz $ diff guile-2.0.X.tar.gz ../guile-2.0.X.tar.gz You're almost done! * Announcements First, re-read the GNU Maintainers Guide on this topic (info "(maintain) Announcements"). ** Update web pages - Replace any references to the previous version number and replace it with the new one. - Update news.html. ** Update the on-line copy of the manual - Use `build-aux/gendocs', add to the manual/ directory of the web site. ** Prepare the email announcement $ build-aux/announce-gen --release-type=3Dstable --package-name=3Dguile \ --previous-version=3D2.0.1 --current-version=3D2.0.2 \ --gpg-key-id=3DMY-KEY --url-directory=3Dftp://ftp.gnu.org/gnu/guile \ --bootstrap-tools=3Dautoconf,automake,libtool,gnulib \ --gnulib-version=3D$( cd ~/src/gnulib ; git describe ) The subject must be "GNU Guile 2.0.X released". The text should remain formal and impersonal (it is sent on behalf of the Guile and GNU projects.) It must include a description of what Guile is (not everyone reading info-gnu may know about it.) Use the text of previous announcements as a template. Below the initial boilerplate that describes Guile should come the output of `announce-gen', and then the `NEWS' file excerpt in its entirety (don't call it a change log since that's not what it is.) ** Send the email announcement - guile-user@gnu.org, guile-devel@gnu.org, guile-sources@gnu.org - info-gnu@gnu.org (for stable releases only!) - comp.lang.scheme ** Post a news on [[http://sv.gnu.org/p/guile/][Savannah]] The news will end up on planet.gnu.org. The text can be shorter and more informal, with a link to the email announcement for details. --=-=-=-- --==-=-= Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.16 (GNU/Linux) iEYEARECAAYFAk4UQpAACgkQd92V4upS7PScswCgnUVZ7qhvcfG++GgMYsrIkClJ 6HkAn3KaX6ESjZwd5ATPf0ogkEfaTrWO =4ash -----END PGP SIGNATURE----- --==-=-=--