There has been a fantastic amount of feedback and contributions being made by folks who have been following my recent posts, and we’ve already had some of those contributions landing in Ubuntu 12.04. But we’re not done yet!
Ubuntu means “I am who I am, because of who we all are”. In a very literal sense, Ubuntu is what it is, because of what other distros are. We all bring together the best open source software from upstream developers, and we should all be giving our improvements back to those developers. Unity may be the default desktop on Ubuntu, but it’s also been ported to ArchLinux and SuSe, and is making it way to Fedora too. That means that your Quicklist contribution can help more than just Ubuntu, all you need to do is submit it upstream.
Step 1: Find your Upstream
While all of Ubuntu’s package sources use Launchpad, and are therefore all in the same place, your upstream developers will all of their own separate spaces. Some are rather easy to find, for example Firefox is developed over on mozilla.org. Others may use GitHub, SourceForge, or their own sites. So you first task if to find out where the code is developed.
Step 2: Talk to your Upstream
Once you’ve found their development home, look for ways of contacting the developers. Usually there will me an email/mailing list available, an IRC channel or a forum. Whatever method they prefer, us it to ask the developers how they want you to submit your patch. Most developers love being contacted by somebody who already has a patch written.
Step 3: Submit your changes
Depending on your upstream’s development process, they may want a patch file with your changes, or they might ask you to use their version control system of choice (svn, git, etc) to submit your change in a way that is easy for them to merge. Some, especially Debian, may request a patch for the package itself. This is why Step 2 is so important, you need to know how to submit it in order for it to be accepted. Don’t worry if you don’t know how do what they want, ask them to help you learn it. Again, developers like people who come to them with patches.
For Geany, I first found their website, geany.org, and from there a link to their Feature Tracker on SourceForge. I also found their IRC channel, #geany on freenode, and was in contact with their developers there. In the end, I was asked to create a fork of their code on GitHub, and submit my change as a Pull Request.
Step 4: Updated your Merge Proposal
Once you’ve submitted you changes upstream, leave a comment to that effect in your merge proposal. Ubuntu developers don’t like to keep custom changes in Ubuntu, and your merge proposal is much more likely to be accepted if they know the change will eventually be made in the upstream project as well.
Step 5: Stay involved with your Upstream
If you were working on a program you like, don’t let this be the end of your contribution! You now have experience making and submitting changes (to both Ubuntu and Upstream), and you are forming a relationship with the upstream developers. Keep up with both of those, as they will be invaluable assets to you.