Swimming Upstream: What to do next with your Quicklists

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.


This entry was posted in OpenSource, Programming, Work and tagged , , , , . Bookmark the permalink.

10 Responses to Swimming Upstream: What to do next with your Quicklists

  1. foo says:

    Please upload Unity to Debian (Ubuntu’s upstream).

    • Michael Hall says:

      Debian won’t take Unity until upstream Gtk takes the patches that were necessary for Unity, which they so far haven’t been inclined to do.

  2. trijntje says:

    What is the apropriate way to do translations for these quicklists? I’ve also asked this in #ubuntu+1, and there people suggested to add Name[langcode]=translation to the .desktop files and push the changes. Is this indeed the best way to go about translating these quicklists?

    • Michael Hall says:

      Translations are generally applied automatically, we will need to change Name= to _Name=, and they the normal tools used for applying translations will expand that to Name[lang]= for us.

      • trijntje says:

        If I understand you correctly that would mean that the quicklists would show up for translation in upstream automatically. However, this means that for Precise most quicklists will only be available in English, since it is already too late to import these translations from upstream. Is this true? It would be a pity if most quicklists are untranslated in the LTS.

        • Michael Hall says:

          Unfortunately none of these were made in time to make it into Precise, we had already missed the import freeze, feature freeze and UI freeze. But if we get them into upstream now, they will be available from 12.10 onward.

          • trijntje says:

            If the quicklists will be available from 12.10 translating them via upstream is fine. I was under the impression that the quicklists would make it into precise.

            I’ve also looked at making a quicklist for calibre (ebook management) but it has no usefull command line options, and I can’t think of any to request the developer.

            Thanks for your response, and thanks for explaining how to make these quicklists, they should make unity a lot better!

  3. Andreas Moog says:

    Unfortunately, the quicklist contributions to geany and smplayer were quickly reverted again. :-(

    Does that mean that no universe package shall get quicklist access?

    The changelog entry is unfortunately not very verbose about why this untranslated string is particularly bad – can’t unity interpret

    • Michael Hall says:

      I spoke to the people who decided to revert, and the problem had to do with translations. Since translations for Universe packages are handled entirely upstream, we need to get these changes applied there first, which is why I posted this followup post to get that started.

  4. Pingback: Contributing to Unity for non-developers: Keywords | Michael Hall's Blog

Comments are closed.