[liblouis-liblouisxml] Subversion workflow and releases

  • From: Eitan Isaacson <eitan@xxxxxxxxxxxx>
  • To: liblouis-liblouisxml@xxxxxxxxxxxxx
  • Date: Mon, 09 Jun 2008 15:29:17 -0700

Hi.

This is especially for John. You mentioned in your last mail putting
autotooled version on your web site. Here are some examples of how I see
an optimal process using subversion and to google project page.

Using SVN.

1. Checkout a working copy of liblouis from the SVN repository.
2. Make appropriate changes to the code.
3. Run "svn update" to assure that the local copy is up to date. If
things have been changed by someone else while you were hacking on your
local copy, the changes should be automatically merged.
4. Add an entry in the ChangeLog describing your changes.
5. run "svn commit", and paste the ChangeLog entry text as the commit
comment.

Creating a patch for others to review and test.

1. Follow steps one through three above.
2. In the working copy's root directory run "svn diff". This will print
to standard output a universal diff that shows the delta between SVN
"trunk" and your working copy. Redirect it to a file, say changes.patch.
3. Send patch for review by e-mail or attach it to an issue in the issue
tracking system.
4. The reviewer needs to apply the patch by doing 
"patch -p0 < changes.patch" in the project's root directory. This will
patch the reviewer's copy of the code, allowing her to test the changes.

NOTE: If you want to undo your changes or a patch, and revert back to
SVN "trunk" do "svn revert -R .". This will recursively revert all files
(DANGEROUS!).

Making a new tarball release.

1. Follow steps one through three from "Using SVN".
2. Update configure.in to reflect the new version number.
3. Update NEWS.
4. Update ChangeLog and check in the changes (see "Using SVN").
5. Tag SVN trunk. This stores a snapshot of the repository's current
state "svn cp https://liblouis.googlecode.com/svn/trunk
https://liblouis.googlecode.com/svn/tags/liblouis_1_3_8";
6. Check out a clean copy in a different directory, like /tmp.
7. Run "configure" with no special prefixes.
8. Run "make distcheck". This will make sure that all needed files are
present, and do a general sanity check.
9. Run "make dist". This will produce a tarball.
10. Upload tarball to google project page, tag as "featured". This will
put the link on the main project page.
11. Remove "featured" tag from previous tarball release.

These are two good docs to read about using SVN and making releases from
the GNOME project, my main influence. There is some GNOME specific
things there, those could be ignored of course.
http://developer.gnome.org/tools/svn.html
http://live.gnome.org/MaintainersCorner/Releasing


For a description of the software and to download it go to
http://www.jjb-software.com

Other related posts:

  • » [liblouis-liblouisxml] Subversion workflow and releases