Ubuntu App Developer Goings On

With the release of Ubuntu 12.04, there have been many different viewpoints on which parts are the most important features and facilities for our users; Unity, the HUD, application choice etc etc.

Let me show you what I consider to be one of the most important parts of Ubuntu:

The Ubuntu Software Center is the doorway to new applications and experiences for our users.

For many years we have had a wonderful archive that we inherit from Debian and expand and refine pieces of for Ubuntu. The Ubuntu Software Center isn’t just a prettier Synaptic; it is a showcase for awesome Free Software and commercial applications, judged by our users in the ratings and reviews, as well as a delivery mechanism for app developers to sell their apps, books, magazines and other content.

While Free Software developers have been able to deliver their apps via traditional repositories for years, the Ubuntu Software Center offers a unique opportunity for both commercial and Free Software applications to deliver their apps in Ubuntu. get great visibility, and be used by millions of Ubuntu users all around the world.

I have had a theory for a little while now: I think a decent chunk of our users (particularly users of Ubuntu for a long time) haven’t really explored the Ubuntu Software Center and what it has to offer. For those of you who have usually relied on apt-get on the command-line to install your software, I strongly encourage you to check out the Ubuntu Software Center; as I have continued to use it more and more, I have discovered new applications, have more informed choices (via ratings and reviews), and bought interesting commercial apps. I see the Ubuntu Software Center as a wonderful market place for both Free and Commercial applications that serve our users well.

Recently I have been talking about the importance of application developers in Ubuntu. A big piece of delivering an awesome platform for application developers is ensuring that all paths that lead to the Ubuntu Software Center are smooth, efficient, and enjoyable, and ensuring that the Ubuntu Software Center itself is a pleasurable experience for users, with a wealth of wonderful content to choose from.

I think we are making good progress here. but I wanted to follow up and talk about some of the work we are doing in growing this app developer community in Ubuntu. This is a longish post, but I encourage you to read it as I think it will give you folks a sense for where we are going and ways in which you can help. Everything we are doing here is Open Source; the Ubuntu Software Center, apps.ubuntu.com, Quickly, pkgme and more, and we need your help to continue to move the Ubuntu app developer platform forward.

Quickly

Quickly is an important part of Ubuntu. In much the way we think of Juju as our cloud orchestration platform for Ubuntu, I see Quickly as our application development orchestration platform for Ubuntu. With Quickly you can create a new application and be up and running in minutes, edit and develop your app, generate packages, and release your packages in a PPA. Quickly does a wonderful job of simplifying these tasks for app developers.

For Quickly to be a comprehensive tool for app developers, it needs to be able to support the kind of applications that people want to write. One area of focus I have been exploring recently is making it easier for Flash applications to be packaged for Ubuntu (this should be as simple as feeding Quickly an .swf file). Stuart Langridge fixed the Quickly Flash template so this works now; Flash packages can now be generated in just a few commands.

Create your Ubuntu app with a single command.

We have also been working with some other developers to help them to get a wider coverage of Quickly templates. Angelo Compagnucci has been doing excellent work on a Qt Quick Python Quickly template and Didier Roche has been working on a HTML5 template. Both work well and are making good progress; this would expand our coverage so that app devs can write GTK, Qt, HTML5, Flash, and Command Line apps. Our goal is to try and get these new templates backported for Ubuntu 12.04.

Another important change is that Mike Terry fixed /opt support in Quickly (this is so applications can install their content to /opt; a requirement for the Application Review Board). This has been fixed and release to Ubuntu 12.04 users. This was important in optimizing the ARB for app submissions.

If anyone is looking for an interesting project to work on, I think one thing we need in Quickly today is a means to import a project into Quickly. Anyone want to give it a shot? :-)

pkgme

pkgme is a fantastic tool being developed by folks in Canonical to automate packaging. The idea is simple: you can run an application tarball (or otherwise) through pkgme and it will detect what kind of application it is and package it automatically, depositing an Ubuntu package. This tool is being developed to reduce the amount of manual packaging required for applications.

At the Ubuntu Developer Summit there was an interesting session on pkgme and I have had Michael Hall and Daniel Holbach on my team working on supporting the pkgme team in growing community participation in the project. pkgme is built so that it can support multiple backends to detect different types of applications, and Michael Hall is reaching out to the community to encourage folks o write backends to improve pkgme’s coverage and success.

This is something that we would love you folks to help with; see Michael’s blog entry, complete with tutorial for more details. Michael is currently lining up points of contact for different backends so that prospective back-end developers can get all the help you need.

Daniel Holbach also ran the ARB queue through pkgme and this and uncovered a set of bugs that the team are focusing on. A combination of growing community participation in pkgme, growing the number of backends, and exposing it to real world scenarios (such as the ARB and Consumer Apps Team submissions) is going to help further the project more and more.

Interested in helping? Be sure to join #pkgme on freenode IRC and join the mailing list.

Reviewing Submissions

An important part of Ubuntu is the Application Review Board. This is a community board that reviews free applications from app developers for inclusion in Ubuntu. The ARB have faced some challenges in keeping up with the queue of new applications. One of the primary challenges here has been in getting the submitted apps to a point where the packaging works correctly. This challenge has bottlenecked on the existing ARB members, despite their excellent contributions, and we have been working to bring some improvements here.

A big piece of this is building more of a support network for the ARB called arb-helpers. This will be a wider group who can review the queue and help with any engineering tasks.

Unfortunately, in terms of this additional engineering, there was not really a good way for people to collaborate (the queue of applications merely has the submitted content from the developer in a tarball/zip file and no way to submit improvements).

Daniel Holbach has put together a script that sucks in all of the code submissions in the queue and generates bazaar branches. This means that our existing developer base can use the tools they are familiar to help with these submissions. We would like to make motu and core-dev members be automatic members of arb-helpers so that they can submit engineering improvements (as they have the packaging experience).

Upstream Relations

Upstreams are an essential part of Ubuntu. We have a pretty simple goal here: to make the upstream software experience the best it can be in Ubuntu. We want upstreams to feel that their software is delivered well in Ubuntu.

Beatbox, complete with Unity Quicklists for a more integrated desktop experience.

As part of this work Michael Hall has been working with David Planella to reach out to upstreams directly and ensure that they have all the support and guidance needed to deliver their software in Ubuntu. This work is being tracked on a Trello, and Michael also developed Hello Unity as a useful tool to make it easier for upstreams to integrate their apps nicely into Ubuntu.

In addition to these, last week I announced a campaign to encourage Download For Ubuntu buttons on Upstream websites. This is a great project in which everyone can help – just see this wiki page and reach out to the upstream and ask them to put the Ubuntu button on there. This helps to continue to spread the awareness of Ubuntu.

Getting More Developers Involved

An important goal for the coming months is to get more and more developers interested in building applications for Ubuntu. We want app developers to feel at home with the tools, documentation, and community support they need to build applications that run smoothly on Ubuntu.

David Planella has been leading a raft of improvements to developer.ubuntu.com, which include additional API documentation, and the creation of a cookbook of recipes and HOWTOs for common programming challenges. We have also been ensuring that the site is up to date for the current platform we have and building an Ask Ubuntu resource for app developer related questions. Have a quesion? Ask!

This week we are also going to be announcing an application development competition, so stay tuned!

  • http://twitter.com/jspaleta Jef Spaleta

    Do you have a showcase are for projects that have spun up using quickly?  I’m very aware that you’ve made a personal investment in dog-fooding quickly yourself to spin up things like the ubuntu irc classroom proggie(sorry I forget its name at the moment) and more recently the accomplishment client/server stack.  But outside of your own endeavour as an opportunistic programmer I’m not sure I’ve a good view of quickly in action.  A little showcase area for users of quickly might get a little snowball of interesting rolling..especially in conjunction with the hinted at competition.

    -jef

  • http://paulhorne.posterous.com/ Markhan Son

    Spot on with this write-up, I truly think this website needs much more consideration. I’ll probably be again to read much more, thanks for that info.

  • http://davidplanella.wordpress.com David Planella

    Hi Jef,

  • Lucas Betschart

    Software Center is still to slow to start up.

  • http://twitter.com/nq6 Frederico Araújo

    The categories on the left should be fixed to reduce the number of clicks. Ubuntu Music should be supported in the Ubuntu Software Center. He inside the music player is very hidden. The icons of the applications should be larger, allows a better visualization. The top bar of the Ubuntu Software Center should be less, the proposal is to make Ubuntu pixels less. The recommendations of software can be enabled with a short questionnaire. If you are having your first contact with Ubuntu, if he has any specific knowledge as a terminal, partitioning, using windows in dual boot, if you want to install Windows software, What is the purpose of using Ubuntu if it’s for work or leisure, if you have preferences for photo applications, audio, video, games etc … Thus the responses through specific applications can be suggested.

  • http://twitter.com/jspaleta Jef Spaleta

     My point is that I believe its under-exposed as a tool. If its going to be positioned as a streamlined/preferred way to develop new “apps” then it needs a little concentrated attention.   Going back to Jono’s comparison with Juju. Juju appears to be to have reached a certain level of adoption in a much reduced timeframe. Quickly seems to just be lingering as a technology. If it really is as important as Jono suggests in his write-up it needs an adoption push of some sort or at the very least a higher profile with regard to its current usage.  If is a strategic technology…like juju…then it needs to be lifted up a little more.

    -jef

  • Anonymous

     I agree, Jef. Would you be interested in participating and doing this?

  • http://twitter.com/jspaleta Jef Spaleta

     If you can demonstrate for me that quickly can help upstream developers publish packages in at least both debian and ubuntu..yes.  I’m not going to be as silly as to expect quickly to be able generate rpms, before reaching critical mass adoption and growing some contributors who want to plumb rpm packaging support in.  Being able to help publish for Debian and Ubuntu as two different platform targets is enough for now.  Obviously the accomplishments app isn’t really a candidate demo as its functionality is deeply Ubuntu specific and ties into a backend service. 

    -jef

  • Anonymous

     Hey Jef,

    Our primary focus is naturally on Ubuntu, but there is no reason why Quickly can’t generate packages for Debian – everything we do with Quickly is available in Debian (GTK, dpkg etc).

    In terms of testing on Debian, this is outside of our scope, although I know the Quickly team would be delighted if folks could do some testing.

    Is this something you would be happy to help with? Maybe any deficiencies in how Quickly works on Debian could be fixed by you and contributed back?

  • http://twitter.com/jspaleta Jef Spaleta

     point me to an upstream project that is using quickly in its development and has a desire to be target neutral and not a ubuntu-specific app as a starting point for poking and extending quickly.

    Preferably a project that provides any build or install instructions with a succint list of project dependencies in their codebase as a text file as a starting point for interested contributors working outside the assumed Ubuntu packageset. Not a list which can only be culled from the packaging information and thus assumes the contributor has mastery of the debian packaging semantics. qreator falls down a bit here.

    A project which documents with the anticipation that the next person to pull the codebase will be looking to do a port/package for BSD or QNX would be perfect :->

    -jef”did I mention yet how much I loath having to write code for qnx6 for my dayjob”spaleta

  • Arthur Walker

    Free Software developers have been able to deliver their apps via traditional repositories for years, the Ubuntu Software Center offers a unique opportunity for both commercial and Free Software applications to deliver their apps in Ubuntu. get great visibility, and be used by millions of Ubuntu users all around the world.

  • http://arthur-valdez.tripod.com/ Roger Frye

    I have had a theory for a little while now: I think a decent chunk of our users (particularly users of Ubuntu for a long time) haven’t really explored the Ubuntu Software Center and what it has to offer.