I think Mike Shaver said it best when he stated (in a podcast here) that an Open Source project should do its best to let willing contributors get in and get out quickly. As a busy father, husband, home owner, and engineer - I don't have a lot of time to contribute to open source projects, so when I do have some time, I'd like my efforts to count. Ideally, it's best if I can find a bug to fix that will directly impact the user experience (as opposed to changing some software plumbing underneath that doesn't have any immediate user impact). In other words, as a part time contributor with not a lot of time to invest, I want my efforts to have some immediate visible benefit.
Furthermore, it's best to pick bugs (at least initially) that don't require full-scale immersions into software architectures to figure out the root of the problem. This wouldwill likely change ifas more time is spent working with such projects.
I just spent a half hour or so fixing a couple minor errors in the Basic tutorial in Inkscape. I had some back-and-forth conversations with MenTaLguY and Bryce on IRC and mailing lists earlier in the week where I learned that the tutorials, while deployed as SVG, are actually stored as DocBook format in the SVN repository. So here's how I did things using my OpenSUSE 10.2 box.
A Caveat
But first, a caveat: I have yet to successfully delve in the code of Inkscape using OpenSUSE 10.2. I was able to get the latest source, I ensured I have all the libraries installed (as per YaST), and I was able to successfully make and install the trunk source. But upon running the trunk binary, it crashes. At this time, I haven't been able to learn how to debug this sufficiently (my gdb experience is very minimal). So for now, I'm stuck doing some doc updates until I can spend more time on this and figure out which library dependency (presumably) is causing the problem. So far, that's my biggest contention with the Inkscape development project - too many dependencies on libraries.
As always, if someone has a clue how to help me out of this pickle, please comment or send me an email. And yes, I've been to this page.
Check Out the Inkscape Documentation
First, make sure you check out the latest Inkscape documentation project trunk node. Note that this is a different folder than the Inkscape application project as described here.
For this step, you will need to have Subversion installed. The easiest way to do this is through Yast > Software Management.
Next, create a folder for the Inkscape Documentation project and from that folder, execute the following command:
Get The Right Version Of Saxon
The latest version of the Saxon XSLT and XQuery Processor is 8.9 (available through YaST), but for some reason Inkscape Documentation requires Saxon 6.5.3.
- Go to http://saxon.sourceforge.net/#F6.5.3 and download the Saxon 6.5.3 zip file.
- Unzip the file somewhere. Find the files saxon.jar and saxon-jdom.jar in the top level of this zip.
- Copy these files to /usr/share/java/ but make sure you rename them so they don't overwrite any existing Saxon jar files. This will require you to be root:
# cp saxon.jar /usr/share/java/saxon-6.5.3.jar
# cp saxon-jdom.jar /usr/share/java/saxon-6.5.3-jdom.jar
Install Inkscape
If you don't have a working copy of Inkscape installed, then go to YaST > Software Management, find Inkscape and install it. From the command-line you can find out where the inkscape binary is installed by typing:
Mine was installed at /opt/gnome/bin/inkscape.
Build DocBook into SVG
Now test out building the DocBook XML files files into SVG:
- Go to the top-level of the Inkscape Documentation Project repository that you checked out. This is the folder with all the make-svg, make-html scripts in it.
- Type the following command:
./make-svg basic /usr/share/java/saxon-6.5.3.jar /opt/gnome/bin/inkscape
NOTE: Substitute the location of the Inkscape binary for your own, if it differs
This should create the basic/tutorial-basic.svg file.
Fix A Bug In The Tutorials
(Exercise left to reader. Go look at basic/tutorial-basic.xml to get familiar with the DocBook format. Find an easy bug on the Bug Tracker)
Submit Your Patch
Once you've made your updates, built the SVG, and verified that it looks good, you can make a patch and submit it to the Patch Tracker:
- Make a patch file (for this example, let's assume you've updated basic/tutorial-basic.xml):
$ svn diff basic/tutorial-basic.xml > /tmp/my-patch-file.txt
- Upload patch (/tmp/my-patch-file.txt) to the Inkscape Patch Tracker
- Inform the inkscape-devel mailing list