This is an old revision of the document!


(still needs more editing, but I'm leaving it alone for now)

How to contribute bug fixes and feature enhancements to Rosegarden project

There are numerous ways to contribute to Rosegarden. You may

  • Create a patch (described in this page)
  • Create a feature request (Please understand that some good requests everyone likes have still been on the waiting list for several years.)
  • Update documentation (needs a page, but first we actually need to establish a new documentation structure)

Let's proceed on and follow steps on how to prepare a patch for Rosegarden…

1. Check out the current Subversion trunk

svn co https://rosegarden.svn.sourceforge.net/svnroot/rosegarden/trunk/rosegarden

2. Prepare the build environment

Rosegarden has many dependencies. It should be possible to satisfy the build requirements using stock packages from any recent distro at least as far back as Ubuntu 8.04, although we strongly recommend building with Qt 4.5 or later if possible, due to its very significant improvement in graphics rendering speed.

This is a fresh attempt to write out a complete list. If you install everything listed here and are still unable to build Rosegarden, please get in touch with us or create an account and edit this list yourself to share your findings.

You will need the following programs and libraries available on your system:

Command/Library Min. Version From (.deb-based) From (.rpm-based)
gcc 4.1 gcc-4.1
g++ 4.1 g++-4.1
automake 1.10 automake
GNU make 3.81 make
makedepend 1.0.1 xutils-dev
pkg-config 0.22 pkg-config
qt 4.4.3 libqt4-dev qt-devel
alsa 1.0 libasound2-dev alsa-lib-devel
jack 0.109 libjack-dev jack-audio-connection-kit-devel
ladspa 1.1 ladspa-sdk ladspa-devel
dssi 0.9 dssi-dev dssi-devel
lo 0.23 liblo0-dev liblo-devel
lirc 0.8 liblircclient-dev lirc-devel
liblrdf-dev liblrdf-devel
libfftw3-dev fftw3-devel
lilypond 2.6.0
libsamplerate 0.1.4 libsamplerate-dev libsamplerate-devel
libsndfile 1.0.16 libsndfile1-dev libsndfile-devel
perl
bash
GNU tar
GNU gzip

(Using Debian Lenny as the oldest supportable distro for this)

2. Compile source (be prepared to install missing dependencies in first compile)

$ sh ./bootstrap.sh

$ ./configure [options]

Useful things to specify for [options] include:

  • –prefix=[ desired installation path (typically /usr) ]
  • QTDIR=[ location of Qt library files ]
  • –enable-debug

$ make

$ sudo make install

NOTE: Rosegarden only installs a few files, and these will not overwrite or conflict with any version you may have installed from a distro package of Rosegarden “Classic”

3. Make changes and recompile

Edit files, paying attention to coding style… If you made no changes to anything in data/ then you can simply:

$ make && ./rosegarden

If you did make changes to data, you should

$ make qrc && make && ./rosegarden

If you added any new icons, for example, they won't be picked up and added to the resource bundle until you svn add them to your local copy. Even though you're submitting a patch, you must still do this. Hopefully new files will get picked up and incorporated into the patch, although I don't think there's a precedent for this, and I'm not sure if it would work. If this becomes a problem, get in touch with us, and we'll work something out.

4. Create patch (against svn and source root)

cd to the Rosegarden source root directory, then

$ svn update

$ svn diff > patch-user-[YEAR][DAY][MONTH]

for example patch-egonzales-20092305 for a patch from Eduardo Gonzáles on the 23rd of May 2009

5. Publish patch

5.A) as a fix to a bug

Create new bug report (if there is not an existing one), and include the patch as a resolution to the bug.

5.B) as an implementation of a feature request

Create new feature request (if there is not an existing one), and include the patch as a fulfillment of the request.

5.C) as a follower of the Rosegarden development discussion list: rosegarden-devel AT lists DOT sourceforge DOT net

Describe your problem in a mail to the list and add the patch as an attachment. If your patch is large, your post might be rejected by the list software, but the project administrators will attend to this if it should happen.

6. Discuss

Your patch will be reviewed by one or more Rosegarden developers. Be prepared to improve the patch and resubmit it. We do like getting patches, and are often happy to fix problems with them, so don't be reticent about sending them in even if they're incomplete or imperfect. If you get stuck, send us what you've got!

See also:

 
 
dev/contributing.1263549204.txt.gz · Last modified: 2022/05/06 16:07 (external edit)
Recent changes RSS feed Creative Commons License Valid XHTML 1.0 Valid CSS Driven by DokuWiki