Navigation: Debian/Ruby Extras / Using Subversion Language: en WikiLink: Using Subversion

Using the Subversion repository

Follow the instructions for building the pkg-ruby-extras packages.

If you need general help with Subversion, an online book is available.

Repository structure

Our repository is structured like this:

pkg-ruby-extras
+-- trunk
    +-- libfoo-ruby
    +-- libbar-ruby
    +-- ...
    +-- tools
    +-- website
+-- branches
+-- tags

All our packages will live inside the trunk/ directory. When uploaded, the version being uploaded is copied to tags/.

First, you have to build your package outside of the SVN tree. You should get something like that:

.
|-- libfeedparser-ruby-0.1/ (build dir)
|-- libfeedparser-ruby1.8-dev_0.1-1_all.deb
|-- libfeedparser-ruby1.8_0.1-1_all.deb
|-- libfeedparser-ruby_0.1-1.diff.gz
|-- libfeedparser-ruby_0.1-1.dsc
|-- libfeedparser-ruby_0.1-1_i386.changes
|-- libfeedparser-ruby_0.1.orig.tar.gz
`-- libxfeedparser-ruby_0.1-1_all.deb

Then just do:

svn-inject -v -l 2 -o libfeedparser-ruby_0.1-1.dsc \
       svn+ssh://LOGIN@svn.debian.org/svn/pkg-ruby-extras/

You should not try to import your package manually: this handles a lot of small gory details you do not want to know.

N.B. Make sure that you have registered a SSH key, else you will be prompted for your password a good dozen of times.

Checking out

You can check a package out by using:

$ svn checkout svn+ssh://svn.debian.org/svn/pkg-ruby-extras/trunk/libfoo-ruby

Alternatively, you can check out all the current versions of all packages (takes less than 50 MB):

$ svn checkout svn+ssh://svn.debian.org/svn/pkg-ruby-extras/trunk

Building with svn-buildpackage

First, you must download upstream sources.

Then you have to change do the trunk directory:

$ cd libfoo-ruby/

Inside libfoo-ruby/, you can build the package with svn-buildpackage:

$ svn-buildpackage -rfakeroot

Releasing and tagging

After releasing the package, its current state must be tagged to keep the exact source used to build the uploaded package. This can be done from the package directory with (assuming the released version is 0.1-1):

$ svn copy trunk/libfoo-ruby tags/libfoo-ruby/0.1-1

Alternatively, you can tell svn-buildpackage to automatically tag the release after building using the option --svn-tag. You can also optionally use debcommit -r if you have the devscripts package installed.

Attention: use this option only when you are sure that this build will be the final build, just before upload.

Package upload checklist

  1. Update your repository (just in case).
  2. Rebuild the package (without --svn-ignore-new!).
  3. Check everything is alright and do whatever tests you always do.
  4. Change the latest changelog entry distribution to “unstable” (or whatever is appropriate).
  5. Rebuild again with pbuilder!
  6. Perform small checks, final lintian & linda check.
  7. Upload the package.
  8. Tag with svn-buildpackage --svn-tag-only.
  9. Commit the new changelog entry for the UNRELEASED distribution.

We will soon release a bash source file with useful aliases. If you are interested, write to our mailing list, pkg-ruby-extras-maintainers (at lists.alioth.debian.org).