Rhythmbox is maintained primarily in the Arch revision control system, specifically the tla implementation.
rhythmbox-devel@gnome.org--2004
http://web.rhythmbox.org/arch/2004
rhythmbox--main--0.9
rhythmbox--main--0.8
IMPORTANT: These instructions require tla 1.1 or better.
First, if you have never registered the Rhythmbox archive, you should do that now:
$ tla register-archive http://web.rhythmbox.org/arch/2004
After doing that (which you only have to do once), you can get a copy of the tree like so:
$ tla get rhythmbox-devel@gnome.org--2004/rhythmbox--main--0.9
To update the source tree, just do:
$ tla update
On the IRC channel and in Bugzilla, you will occasionally see references to developers' branches of Rhythmbox. One example is: walters@rhythmbox.org--2003b/rhythmbox--main--0.9 . It can be hard to find what the walters@rhythmbox.org--2003b part refers to, so we've provided this handy table of known archives. Here's how you might register an archive:
$ tla register-archive http://arch.example.com/archive
tla will then add that archive to your list of registered archives.
Archive Name | Archive Location | GPG key | Comments |
---|---|---|---|
rhythmbox-devel@gnome.org--2004 | http://web.rhythmbox.org/arch/2004 | (keyring) | Central archive |
walters@rhythmbox.org--2003b | http://arch.verbum.org/rhythmbox-2003b | 6A765865 | Maintainer's archive |
desrt@desrt.ca--2003 | http://arch.desrt.ca/ | song display, misc bugfixes | |
harshy@dersoldat.org--2004 | http://arch.dersoldat.org/arch--2004 | C828E736 | misc bugfixes |
jyasskin@mail.utexas.edu--2003 | http://bluejay.dyndns.org/archives/2003 | 04F49795 | Shuffle and random play orders |
sri@aracnet.com--2004 | http://banu.homelinux.net:3517/Arch/archives/sri@aracnet.com--2004/ | 7BB80427 | GtkFileChooser fixes, statusbar |
teuf@gnome.org--2003 | http://cfergeau.free.fr/arch/ | 39734ACE | iPod integration |
teuf@gnome.org--2004 | http://testoo.no-ip.com/~teuf/archive | 39734ACE | Various experiments |
treed@surreality.us--2003-rhythmbox | http://www.surreality.us/arch/rhythmbox | CE1A0CDC | misc bugfixes |
yann@cvs.gnome.org--2003 | ftp://81.64.184.176/archive | 2FE51A2E | drag & drop, misc bugfixes |
mterry@fastmail.fm--2004 | http://people.umass.edu/msterry/archive | 136B762D | automatic rating work |
mfcn@wh-hms.uni-ulm.de--2004 | http://www.wh-hms.uni-ulm.de/~mfcn/archive/ | album covers | |
aeb@debian.org--2004 | http://home.in.tum.de/~bombe/arch/aeb@debian.org--2004 | 04880A44 | bugfixes |
daf@muse.19inch.net--2004 | http://muse.19inch.net/~daf/arch/ | 128287E8 | Welsh translation |
david@grepninja.com--2004 | http://arch.grepninja.com | DD0ABE82 | Xine fixes, iradio work, and more |
One hint: after registering a new archive, you may want to run
$ tla abrowse jane@example.com--2003
This will show you in a nice format what all is in the archive.
However, not all the developers use Arch right now, so the arch tree is regularly synchronized (about once a day) with the GNOME CVS , in the rhythmbox module. See this message for more information about how things work.
So you'd like to start contributing to Rhythmbox? Arch makes it incredibly easy. You don't need any kind of write access to the GNOME CVS or the main Rhythmbox arch tree to start working. You can create your own local branch of the tree, and start hacking on it.
The very first thing you need to do is tell tla what your identity is. Do this, if you've never done it before:
$ tla my-id 'Jane Doe <myname@myisp.com>'First, if you haven't already, you need to create your own Arch "archive". This is your local repository; it can contain many multiple branches of various software.
$ tla make-archive myname@myisp.com--2003 ~/code/archive
If you have at least tla 1.2pre0 and a gpg key, you may want to sign your archive. To do so, use the following command instead.
$ tla make-archive --signed myname@myisp.com--2003 ~/code/archive
Then create the file ~/.arch-params/signing/=default containing the line
gpg --clearsign
Next, you want to create a branch. At this point, if you didn't register the archives above, you should do that now. You will then make this branch refer back to the main Rhythmbox arch repository:
$ tla archive-setup myname@myisp.com--2003/rhythmbox--main--0.9 $ tla tag rhythmbox-devel@gnome.org--2004/rhythmbox--main--0.9 myname@myisp.com--2003/rhythmbox--main--0.9
Congratulations, you've created your own branch! Next, let's get a copy of the tree, where we can do work:
$ tla get myname@myisp.com--2003/rhythmbox--main--0.9 rhythmbox
Development on your branch is now entirely independent of development on the main Rhythmbox tree. However, it's likely that you will want to merge in changes made on the main Rhythmbox tree. When you want to do that, just do:
$ tla star-merge rhythmbox-devel@gnome.org--2004/rhythmbox--main--0.9
That's it! Now, cd into rhythmbox and hack away. When you're ready to commit, do this:
$ tla commit -s 'fix crash on invalid mp3s'
That's the basic work cycle. Now, finally you need to publish your changes somewhere. You do this by creating a mirror of your local repository, on a public web site or FTP site, where others can read your changes. You will need write access for yourself to the repository; I personally talk to arch.verbum.org over SFTP, but there are other transports available.
$ tla make-archive --listing --mirror myname@myisp.com--2003 sftp://myisp.com/home/me/public_html/archiveIf you have signed your main archive, in order to preserve your signatures, the above command should be
$ tla make-archive --signed --listing --mirror myname@myisp.com--2003 sftp://myisp.com/home/me/public_html/archive
And you should create the file ~/.arch-params/signing/myname@myisp.com--2003-MIRROR containing the line
myname@myisp.com--2003In the above command, the directory archive must not already exist. Now, you want to push the changes in your local repository to the mirror:
$ tla archive-mirror myname@myisp.com--2003Finally, to publish your changes, you need to tell people how to access your public mirror, by giving them the archive name ( myname@myisp.com--2003 ) and the location (say http://myisp.com/~me/archive ).
Periodically, a new branch of Rhythmbox will be created for new major versions. If you have your own branch of an older version, you will likely also want your own branch of the newer version as well. This message describes how to handle that.
You may find this IRC discussion to be a good introduction to Arch from a newbie perspective.
Last modified: Mon, 10 May 2004 13:05:48 -0400
Copyright © 2003,2004
Colin Walters
. Available under the
Creative Commons License
.
Valid
XHTML
and
CSS 2
.