Teaching Ubuntu App Development

Tablet and phone, running Ubuntu

At the vUDS in November we talked about having events where local communities could learn more about app development for Ubuntu for the first time. Since then we have come a long way:

  • We have some really nice materials set up.
  • The first events were held in a number of places around the world.
  • We got feedback and improved our docs.
  • Before the Ubuntu Global Jam and the release parties for 14.04 LTS we will have two Q&A sessions where you can ask all organisational and technical questions you might have.

You don’t have to do everything yourself!

When we started the initiative, we first talked to members of the Ubuntu community who knew a bit of app development already. Many of them liked the idea, but didn’t quite know how to set up an event or how to organise everything. We tried to address this by bringing them in touch with some of the LoCo teams which helped in a bunch of cases where events have already happened or are going to happen quite soon. We want more of this to happen.

It’s only understandable that you can’t do everything yourself, or that one person’s skills lie in a more organisational field and somebody else has some more experience with app development. Bringing the two together, we are going to have more interesting events, more people introduced to writing apps for Ubuntu, which will be great for everyone involved.

Getting started

Sounds good so far? Here’s what you can do to get more folks exposed to how sweet and easy it is to write apps for Ubuntu.

As somebody who can organise events, but might need to find a speaker: Ask in #ubuntu-app-devel on Freenode or on the ubuntu-app-devel@ mailing list, to see if anyone is in your area to give a talk. Ask on your LoCo’s or LUG’s mailing list as well. Even if somebody who’s into programming hasn’t developed using Ubuntu’s SDK yet, they should be able to familiarise themselves with the technologies quite easily.

As somebody who has written code before and didn’t find the Ubuntu app development materials too challenging, but might need to find some help with organising the event: Ask on the loco-contacts@ mailing list. There are LoCos all around the world and most of them will be happy to see somebody give a talk at an event.

Whichever camp you’re in:

Let’s make this happen together. Writing apps for Ubuntu and publishing them has never been easier, and they’ll make Ubuntu on phones/tablets much more interesting, and will run on the desktop as well.

Packaging Guide News!

packaging.ubuntu.com

I’m please to announce the following changes have landed in the Ubuntu Packaging Guide:

  • The Packaging Guide is now fully translated into French! Bravo, équipe français! Thanks a lot everyone who helped out here!
  • We moved from developer.ubuntu.com/packaging to our new home http://packaging.ubuntu.com – don’t despair, redirects are in place!This was done, because developer.ubuntu.com more and more moved into the direction of delivering tutorials for people who want to create content (apps, scopes, charms, etc.) on top of Ubuntu.
    This also gives us the benefit that we don’t have to integrate the guide into a wordpress installation somehow, but maintain it all on our own.
    Thanks a lot Tom Haddon for helping set this up and Andrew Starr-Bochicchio for beautifying the landing page. Great work everyone!
  • We are finally going to get rid of the old wiki guide. Andrew had announce the move many months ago and we should now be safe to remove the content.

Our journey is far from over. If you want to help out, please do!

  • We have bugs filed against the packaging guide and need help. Some are tagged as ‘bitesize‘ already.
  • Please also help translating the guide. Many teams have already put some work into this. You can help out by either translating or reviewing translated strings.

Keep up the good work everyone. This is great! 🙂

Gute Arbeit, deutsches Übersetzungsteam!

The German translations team have done it! They brought the German translation of the Ubuntu Packaging Guide above 70%, which is the magic threshold for us to enable the translation in the package. Since earlier today you will find this in the Packaging Guide Daily Build PPA (soon going to land in Debian and then in Ubuntu too):

daniel@daydream:~$ apt-cache search german packaging guide ubuntu
ubuntu-packaging-guide-html-de - Ubuntu Packaging Guide - HTML guide - German version
ubuntu-packaging-guide-pdf-de - Ubuntu Packaging Guide - PDF guide - German version
ubuntu-packaging-guide-epub-de - Ubuntu Packaging Guide - EPUB guide - German version
daniel@daydream:~$

You can also check out the HTML version, single page HTML, PDF version and EPUB version on the web.

This is great news for everyone who wants to get started with Ubuntu development as it will make the first steps easier. Let’s get the translations up to 100% now! 🙂

Current translations stats are looking like this now:

  • Spanish (96%).
  • Brazilian Portuguese, Russian (83%).
  • German (72%).
  • Traditional Chinese (28%).
  • Japanese (14%).
  • French (10%).
  • Dutch, Indonesian (5%).
  • Chinese Hong Kong (1%).
  • Italian, Greek, Telugu, Australian English, Vietnamese, Kannada, Macedonian, Swedish, Turkish, Simplified Chinese. Latvian, Slovenian, Croatian, Hungarian, Catalan (0%).

Please help out making the guide available in your language as well. Start here.

Parabéns e muito obrigado!

I’m particularly happy to announce that the Brazilian team managed to get their translation of the Ubuntu Packaging Guide up to more than 70% of completion, which is the magic threshold to get it accepted and posted on developer.ubuntu.com. This means that our current list of available languages is:

  • English
  • Spanish (99%)
  • Russian (85%)
  • Brazilian Portuguese (74%)

You can view the individual forms of the Packaging Guide in Brazilian Portuguese here:

Right at the start I said that I was “particularly happy” about this translation. That’s because I recently picked up a little bit of Portuguese. Mostly useful sentences like “Meu irmão gosta de cerveja” or “O leão escreve cartas”. Thanks Duolingo!

A big big big “obrigado” to the tireless Brazilian Portuguese translators. You all are heroes! This is great news for everyone who wants to get involved in Ubuntu development, as it smoothes the first steps considerably.

You can help out with translations. Just head to the Packaging Guide’s translation page in Launchpad, pick your language and get started. Current runners-up to the translations mentioned earlier are:

  • German (32%)
  • Japanese (15%)
  • French (7%)
  • Indonesian (5%)
  • Dutch (4%)

The available translations are not entirely complete yet either, so please do get involved.

The Packaging Guide finally does speak Spanish

We have achieved a huge milestone in the development community. For years we wanted translatable packaging and development documentation. It’s there. If you head to http://developer.ubuntu.com/packaging/ you can see the following:


The Ubuntu Packaging Guide (Spanish) – would you like to learn how to package or become an Ubuntu Developer? Here’s a comprehensive, topic-base guide that explores and describes the main concepts of packaging. It is available as


This is absolutely awesome. From now on we will be able to add languages and have up-to-date Packaging and Development docs available whenever they are complete enough.

This work was brought to you by many people who worked very hard to get all the bits right, both on the packaging, integration, beautification and translations sides. You all know who you are. Be proud of your work. This will ease the steps of many people into helping out with Ubuntu!

As always this is ongoing work and the great thing is, you can help out:

This makes me a very happy man and it’s great we finally got there. Now let’s get all the other translations up to scratch! 😀

Packaging Guide: Hablamos español.

One group in Ubuntu which never gets the credit they deserve are the translators. These fine people spend hours smoothing the road for Ubuntu into all the parts of the world. One project where this recently became clear to me again was the Packaging Guide.

Weighing in at 759 strings or 196K of text, and at times very technical text, it’s probably not the easiest document to translate. Still we have a very nice success story to share.

The Spanish team got their translations up to 95% completion. Incredible work! Muchas gracias! The other teams were busy as well, so we have:  Brazilian Portuguese (22%), Japanese (17%), Russian (9%), German (9%), Dutch (3%), along with other teams which are just getting started: Vietnamese, Macedonian, Swedish, Turkish, Indonesian, French, Latvian, Chinese (Traditional), Slovenian, Hungarian and Catalan.

This means that Spanish is the first language which made it past out magic threshold and will soon ship separate packages for the guide in Spanish. Fantástico!

I said “soon” because we are still working out a couple of kinks to do this in the easiest fashion. Thanks to help of many we figured out the following problems:

But we are still struggling with the following ones:

So if you are knowledgeable in this area, please consider helping out.

Thanks everyone for your stellar work on this. You make the lives of new contributors a lot lot easier!

Bringing new developers up to scratch

I talked many times about getting involved with developing Ubuntu and how it can seem daunting and that there’s much to learn. When I talked to contributors who had reached the critical point where they understood what they can do, who they can talk to and how the processes roughly work, most of them said that three things helped them to get to the point:

Code review

Today I want to talk about code reviews. It’s probably the most straight-forward way to learn by osmosis: you easily pick up conventions, distinctions which are made and which processes to follow.

Everybody has to go through code reviews, no matter which team they are in, which company they work for or when they joined the project. Up until a point they get their developer application approved and get upload rights.

This is the reason why code reviews in Ubuntu are so important and why we should constantly strive for timely replies and decisions on review requests.

Sponsoring Queue

The sponsoring queue is reviewed by developers with upload rights. Sometimes it’s very easy to approve a request and upload the package, sometimes it takes a bit longer, especially when you have a comment ping-pong between the reviewer and the patch author.

We came up with a number of points in our documentation which should help keeping the queue manageable:

For Bugs fixing small details, you could do the following:

  1. Ask the contributor to forward the patch upstream.
  2. Open an empty upstream bug task.
  3. Mark the Ubuntu task as ‘Fix Committed’.
  4. Unsubscribe ubuntu-sponsors, or mark the merge proposal status as “Work in Progress”. (Be sure to tell the contributor to reverse the process.)

This will get the review item off the list for the time being and once we can import the code from upstream, it will get fully closed.

We also get requests which are not suitable for the current release period. In this case you could:

  1. Let the contributor know that the patch is not suitable for the current release period.
  2. Unsubscribe ubuntu-sponsors, or mark the merge proposal status as “Work in Progress”. (Be sure to tell the contributor to reverse the process.)
  3. Subscribe yourself to the bug report.
  4. Milestone the bug to ‘later’.
  5. Visit https://bugs.launchpad.net/people/+me/+bugs/?field.milestone%3Alist=196 once the new release opens and upload the fix.

This are just some points which help to keep things on the queue relevant.

Patch Pilots

From the Bazaar team we borrowed the scheme of “patch pilots”. Here’s how they explain how it works: “The word pilot is in the sense of a maritime pilot: we help patches come through congested waters safely in to harbour. The main thing to watch is the bzr active reviews page in Launchpad. When you’re piloting, put some concentrated effort into helping people have a good and satisfying experience contributing to Bazaar. Just how you do that is up to you.

Instead of trying to review each and every bit in the queue – sometimes there are packages you know less about and where you can’t make a decision for example – you try to help nudge the patch along. You help to talk to upstream about it, try to find somebody who can make a decision, etc.

Canonical engineers with upload rights who work on Ubuntu are expected to spend an hour per week on the Ubuntu sponsoring queue, so everybody’s on the hook for having a piloting shift 4h every four weeks. This usually works much better, as you have an extended period of time where you do nothing else. Current patch pilots can be seen in the #ubuntu-devel channel topic.

Up until now I mostly noticed Canonical engineers who did piloted. If you have upload rights and are interested, let me know and I can add you to a preliminary schedule, so you get a reminder mail and you can try it out and see if you like it.

Please all help making this work even better. 🙂

Ubuntu Packaging Guide has finally landed

Users of Ubuntu 12.10 (Quantal Quetzal) now can easily install the Ubuntu Packaging Guide:
daniel@daydream:~$ sudo apt-get install ubuntu-packaging-guide
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
ubuntu-packaging-guide-html
The following NEW packages will be installed:
ubuntu-packaging-guide ubuntu-packaging-guide-html
0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded.
Need to get 0 B/488 kB of archives.
After this operation, 1244 kB of additional disk space will be used.
Do you want to continue [Y/n]?
Selecting previously unselected package ubuntu-packaging-guide-html.
(Reading database ... 238890 files and directories currently installed.)
Unpacking ubuntu-packaging-guide-html (from .../ubuntu-packaging-guide-html_0.2.2_all.deb) ...
Selecting previously unselected package ubuntu-packaging-guide.
Unpacking ubuntu-packaging-guide (from .../ubuntu-packaging-guide_0.2.2_all.deb) ...
Processing triggers for doc-base ...
Processing 1 added doc-base file...
Registering documents with scrollkeeper...
Setting up ubuntu-packaging-guide-html (0.2.2) ...
Setting up ubuntu-packaging-guide (0.2.2) ...
daniel@daydream:~$

Of course you can always browse it online here but for all offline use it is now in Ubuntu in PDF, HTML and EPUB formats.

This was only possible through the help of many contributors. Some of them I was able to get together from the bzr log:

  • Alexander Fougner
  • Andrew Starr-Bochicchio
  • Barry Warsaw
  • Benjamin Drung
  • Brian Murray
  • Daniel Holbach
  • Dmitry Shachnev
  • Iain Lane
  • Jamie Strandboge
  • Jelmer Vernooij
  • Jeremy Bicha
  • Jim Campbell
  • Jonathan Jesse
  • Jonathan Riddell
  • Joseph Mills
  • Leo Iannacone
  • Martin Owens
  • Raoul Snyman
  • Ryein
  • Stefano Rivera

Thanks so much for your great work in the Ubuntu Packaging Guide project – you are all heroes!

There is still lots of work to be done. If you want to get involved, because it’s a really nice project, have a look at a list of bugs and please help to get it translated!

You can help: code review

This morning I woke up and found the sponsoring queue at 103 items! I mailed the ubuntu-devel and ubuntu-motu lists and the current count is down to 81. This is great, but I’m sure we can get it down to 0.

Jani Monoses also filed these bugs to discuss how we can improve our sponsoring strategy:

You might want to join the conversation.

What we need most though is that if you can review code and upload changes, you head over to the sponsoring queue and help reviewing. It’s understandable that after UDS everybody is busy doing merges or jumps head-first into work items, but we also need to help newcomers get their changes reviewed. If you need some help, review our sponsorship best-practices.

If you should want to help on a regular basis, ping me or drop me an email and I’ll add you to the patch pilot schedule and you’ll get monthly reminders.

Rock on everybody! We can be happy we have so many new contributors, let’s don’t let them down! 🙂

UDS is a great time…

… for planning things, but also for getting things done.

In-between sessions I had discussions with many many folks and I’m happy to say there was renewed and much interest in the Packaging Guide.

Heroes like Andrew Starr-Bochicchio, Leo Iannacone, Joseph Mills and others have contributed suggestions, code, ideas and text bits to improve the packaging guide, and that’s on top of what was discussed in the session we had.

During the session we identified a number of areas of focus. In no particular order, there’s:

  • Include the Packaging Guide in Ubuntu
  • Translate it in as many languages as possible
  • Merge the Wiki documentation into the guide
  • Do user-testing of the guide
  • Do an editorial review of all the content

Also in many other sessions, the Packaging Guide was usually deemed the best place to educate new contributors about how things work, which is great.

What happened this week (outside of sessions) already was:

This level of activity is fascinating and bodes well for a great 12.10 cycle.

What I love most about the guide is that everybody can help us if you have just a little bit of interest in Ubuntu Development. Let’s have a quick look at some bugs you could help out with, if you’re interested.

Here’s some ‘bitesize’ bugs, I hope we can you interest in:

Obviously, there’s more bugs and there’s a blueprint to subscribe to. Feel free to grab a bug and help out, or catch us on IRC and find out how you can get involved.

Update: I forgot to mention John Kim, who has contributed a bunch of bug reports with his experience. Great work, John!