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 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 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.
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).
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!