== Dev Week -- Bringing your app to Ubuntu -- dpm -- Wed, Feb 1st, 2012 == {{{#!irc [15:01] Allright, how's everyone doing? [15:01] I am doing well. [15:01] good :) [15:01] awake [15:02] cool [15:02] ok, awesome [15:03] let's wait a minute for stragglers to come in and then we can start [15:04] I hope you all are enjoying UDW so far... [15:04] dholbach tells me yesterday was awesome! [15:04] Anyway, let's get started [15:05] Hi everyone and welcome to the first session of Ubuntu Developer Week Day 2! [15:05] During the next hour I'll be talking about how to submit your apps to Ubuntu, [15:06] so that they get published in the Software Centre [15:06] to be distributed to millions of users that will surely enjoy your cool software :) [15:06] But it will not be just a talk: I'll make sure that there is plenty of time for everyone [15:07] to participate and ask their questions at the end. However, feel free to interrupt me during the [15:07] rest of the session if you've got any questions. [15:07] Just remember to prepend them with QUESTION: on the #ubuntu-classroom-chat channel [15:07] Throughout the talk I will be referring to different places in the Ubuntu App Developer site, [15:07] which is the central place for anyone wanting to create and publish their apps in Ubuntu. [15:08] Here's where it lives: [15:08] http://developer.ubuntu.com [15:08] ... and without further ado ... [15:08] let's get rolling! [15:08] [15:09] Creating your app [15:09] ================= [15:09] [15:09] Well, the first step is obvious, you have to create your app, [15:09] which is basically the time when you materialise that cool idea into beautiful software. [15:09] I will not dwell too much on this subject, as it's beyond the scope of the session, [15:10] However, I'll just add a couple of tips for app authors. [15:10] If you're considering writing a new application for Ubuntu, I'd recommend to use [15:10] the standard set of tools available from the Ubuntu archive. [15:10] They are an extremely powerful and versatile bunch of tools [15:11] which will not only put everything you need to write software at your fingertips, [15:11] but also will help you following good development practices. [15:11] And they're all Free Software and also free as in free beer! [15:12] I see we've got a question already, but let me show you something first: [15:12] You've got an overview of our recommendations to write new apps here: [15:12] http://developer.ubuntu.com/get-started/quickly-workflow/ [15:12] ryan___ asked: Which programming language do you perfer to use to develop Ubuntu apps? [15:13] as you can see from the table in the link above, we're currently recommending Python [15:13] as a language to write new apps [15:13] What we've also got is a tool called quickly, which puts all those technologies together [15:14] You can learn more about it here, it's got a nice and short video tutorial [15:14] to show you how to write a basic functional template for your app in 3 minutes: [15:14] http://developer.ubuntu.com/get-started/ [15:14] However, if you've already written an application with another set of tools, [15:15] or if you do prefer another choice of toolkit, that's also ok! [15:15] We're providing these recommendations to make it easy for app authors to get started [15:15] and provide a smooth path for publishing their apps. [15:15] However, we acknowledge the diversity of the whole Open Source ecosystem, [15:16] so you can basically submit your apps using your weapon of choice. [15:16] Just remember that our recommendations will make things easier, though! [15:16] metasansana asked: why phython? [15:18] we chose quickly because it's an easy to learn high level language, which is open source and it's got first class support in Ubuntu. [15:18] apart from that, it comes with a rich library of functions to do virtually anything you want [15:19] Continuing on this subject, [15:19] also, commercial apps (more on those in a minute) might be written in a completely different set of tools, and we want to be inclusive to them too. [15:20] ryan___ asked: does Quickly support the Microsoft Visual Basic programming language? [15:21] quickly just puts together a set of tools, it's not an IDE that supports languages, although conceivably could be extended to support other languages [15:22] however, to answer the question, quickly intendedly only supports python, no Visual Basic [15:22] ok, moving along [15:22] [15:22] Which types of apps qualify [15:22] =========================== [15:22] [15:22] There are thousands of apps available in the Ubuntu archive already, which usually get in there through other means. [15:22] Many of these fall into the category of system software, or big applications that are part of the Ubuntu platform. [15:23] They are also subject to strict policies to ensure the security and quality of the software, [15:23] as well as to ensure that they are indeed Free Software and can be distributed with Ubuntu. [15:23] So in order to differentiate from these archive applications, I'll call the process we'll be talking about today, "the app developer process". [15:24] Ultimately though, they are all published through the Software Centre [15:25] So to answer the first question, these are the 3 broad categories under which apps to be submitted through the app developer process fall: [15:25] * Paid for apps [15:25] * Gratis apps with proprietary licenses [15:25] * Gratis apps with Open Source licenses [15:25] Notice that as well as open source, we're also embracing commercial applications [15:25] to give the opportunity to app authors and Canonical to make revenue of application sales. [15:26] This should give you a rough idea, but ultimately you will need to know the whole [15:26] details to see if your app qualifies for the app developer process. [15:26] [15:26] - For paid for and gratis+proprietary apps: [15:26] http://developer.ubuntu.com/publish/commercial-software-faqs/ [15:26] - For gratis+open source apps: [15:27] https://wiki.ubuntu.com/AppReviewBoard/Review/Guidelines [15:27] Ok, next is where it gets interesting: how to actually submit your app! [15:27] [15:27] 1. Submitting your app [15:27] ====================== [15:27] [15:27] Ok, so all that cleared up, by this point you've already have a working app you'd [15:27] like the world to see and enjoy. [15:28] The good news is that we've got an easy, streamlined and web-based process [15:28] to make it easy for you to to publish, keep track of, monitor and update your apps. [15:28] For this, we've developed a tool especially for app developers. [15:28] It's called My Apps and you'll find it on the app developer site: [15:28] https://myapps.developer.ubuntu.com [15:29] You'll see that it's easy and intuitive to use, and the first thing you'll want to do is to sign up for it [15:29] to enter the Ubuntu app developer programme and start using it straight away :-) [15:29] Signing up it's free, and again, it's a matter of a couple of minutes. [15:29] The process is based on Ubuntu's single login, [15:30] so if you've got an Ubuntu SSO account already, it will be even quicker. [15:30] Simply go to https://myapps.developer.ubuntu.com, either click on the "Sign in or register" link at the top right hand side [15:30] or the "Submit a new application" button, and the website will guide you through the process. [15:30] Before you continue the process of submitting the app though, you might want to read the quickstart guide on: [15:31] http://developer.ubuntu.com/publish/ [15:31] It will show you the basic steps you will be following and give you some useful tips along the way. [15:31] Let's go quickly through them: [15:31] 1 - Set up your My Apps account - you've already done that :) [15:31] 2 - Prepare your app's icons and screenshots - you will want your app to be [15:31] appealing to users, so make sure you've got nice screenshots and icons, in all recommended sizes [15:32] 3 - Add your application details - here you'll be describing your app and making it easily [15:32] discoverable in the Software Centre. Make sure the description is clear and use a spell-checker to avoid typos [15:32] 4 - Choose your price - if your app is paid for, you'll have to decide the price in USD at this point [15:32] The minimum price is $2.99 [15:32] 5 - Have an archive of your application ready to upload - here's where you upload your actual app to MyApps. More on this in a minute [15:32] 6 - Your app will be reviewed - before it gets into the wild, your app needs to be reviewed and QAd. More on this in a minute too. [15:33] So going back on the step of uploading your app, [15:33] Ideally, you should submit a Debian source package. A Debian source package consists of 3 files (with extensions .dsc, diff.gz, orig.tar.gz), which you should put in a compressed archive (a tarball, zip file, rar...) and upload into My Apps. This will allow reviewers to easily test and publish your app. [15:33] *However*, there are some important caveats: [15:34] * If your app is commercial or proprietary software: we still recommend uploading a Debian source package, but if you are not experienced in packaging you can also upload either your binary executables and all files needed to run your app in a compressed archive, a binary Debian package (.deb), your source code in a compressed archive, and the commercial packagers will package and publish it for you. [15:34] Very soon we'll have automatic packaging in place, but more details on that when it's all deployed and working [15:35] * If your app is Free Software and gratis: we recommend using a Personal Packaging Archive (PPA). You can specify the location of your PPA in the 'Any additional notes for the application reviewer' text box in the Overview tab of your app's entry in My Apps. You can also learn more about PPAs in the packaging section of the Ubuntu App Developer Site [15:35] developer.ubuntu.com/packaging [15:36] We've got a few questions coming in, and they're related to reviewing [15:36] Let me talk a bit about review and then answer them [15:36] [15:37] 2. Reviewing your app [15:37] ===================== [15:37] [15:37] After your application has been submitted, and depending of the type of app, one of two things will happen: [15:38] * If it's a paid for or a gratis+proprietary app, it will be reviewed by the Canonical reviewers team. If necessary, they will package it for you and QA it. Very soon, though, we'll be able to automatically package those. [15:38] * If it's a Free Software+gratis app, it will generally be reviewed by a team of volunteers called the Ubuntu App Review Board (ARB) [15:39] In any case, reviewers will get in touch with you as soon as they start reviewing [15:39] your app, and you will be notified of any app state changes by e-mail. [15:39] For all the exact details of an application's lifecycle in My Apps, check out: [15:39] http://developer.ubuntu.com/publish/application-states/ [15:39] Now onto the questions: [15:40] cielak asked: I have been interested in the review process for some time, and I would like to somehow help the ARB team. Is there any way I could participate and help them? [15:40] they'd be delighted to hear that! [15:40] you can jump into the #ubuntu-arb channel and ask how to help, or you can contact the ARB through e-mail [15:41] https://wiki.ubuntu.com/AppReviewBoard [15:41] you'll find all the details there [15:41] ryan___ asked: how long does it take after you submit an application to Ubuntu before it shows up in the Ubuntu Software Centre? [15:43] it depends on your application, and if it's easy to review and QA, or if it's a commercial app, if it needs to be packaged and it's easy to do [15:44] it can take from some hours to some days, but it varies on an app by app basis [15:44] You'll find some more details there: http://askubuntu.com/questions/97272/how-long-does-it-take-to-complete-the-review-stages-in-ubuntu [15:45] dmj726 asked: How will proprietary apps be reviewed for security? [15:46] apps submitted through the app developer process are not subject to the same security policies of those in the Ubuntu archive [15:47] let me ask davmor2 to provide some more details in a minute [15:47] Gontxo-Vitoria asked: If I make a app that is foss, i can't not sell it in ubuntu? [15:47] yes, you can also sell free software apps! [15:48] http://developer.ubuntu.com/publish/commercial-software-faqs/ covers that too [15:48] pawel_st asked: As an app author, am I obliged to support all currently supported Ubuntu releases, or can I target a specific (latest) Ubuntu release with my app? [15:49] we recommend you to support as many releases for the sake of making your app more widely available, but we do not enforce you to do it [15:49] dmj726 asked: I've seen magazine issues and books in the Ubuntu Software Center. How would one publish something like that through Ubuntu? [15:50] I'm not sure I understand the question, we already publish them in Ubuntu, which means making them available in the Software Centre! [15:50] I've got some more details on the security question from davmor2: [15:50] dmj726 asked: How will proprietary apps be reviewed for security? reference to this, you are currently limited to which directories you can write to. However security is strictly the responsibility of the application developer and it is they that become liable for any breach of these ref the developer contracts [15:51] There are 10 minutes remaining in the current session. [15:51] pawel_st asked: What are acceptance criteria for commercial apps? Is acceptance process transparent? Is this only about packaging quality etc., or are there other criterias such as conformance to patents etc.? Can I get an early draft of my application reviewed against acceptance criteria before investing time and effort into its further development? [15:53] if it's not covered on http://developer.ubuntu.com/publish/commercial-software-faqs/, then it's on an app-by-app basis. I'd recommend submitting the draft of your application and then reviewers will get in touch with you [15:53] cwayne asked: how long will an app stay in 'pending review' state for? [15:54] you can find the details here: http://askubuntu.com/questions/97272/how-long-does-it-take-to-complete-the-review-stages-in-ubuntu [15:54] any more questions? [15:55] dmj726 asked: Are commercial apps vetted for any sort of quality to avoid malicious apps? [15:55] There are 5 minutes remaining in the current session. [15:55] dmj726: so there is a developer review and qa steps to pick up on obviously broken/unistallable apps as for malicious this again falls to the liability of the app developer. [15:56] so if there are no more questions for now, just a quick reminder on how to get help or get in touch [15:56] [15:56] Getting help [15:56] ============ [15:56] [15:56] If you need any help or if you've got any questions, be it during or before the [15:56] publishing step, there is an awesome, awesome community of app developers out [15:56] there just like you, willing to lend a hand [15:56] Check out: [15:57] http://developer.ubuntu.com/community/ [15:57] From there, I'd like to highlight: [15:57] Real-time chat: http://webchat.freenode.net/?channels=ubuntu-app-devel [15:57] i.e. the #ubuntu-app-devel IRC channel on Freenode [15:57] Askubuntu: http://www.askubuntu.com/questions/ask?tags=application-development [15:58] For all your app development related questions [15:58] Mailing list: https://lists.ubuntu.com/mailman/listinfo/ubuntu-app-devel [15:58] Also for all your questions and longer discussions [15:58] And finally, here's an overview on how to stay up to date: [15:58] http://developer.ubuntu.com/2011/11/building-the-ubuntu-app-development-community-i-communication-channels/ [15:59] PaoloRotolo asked: If you have uploaded an app without packaging, after the packaging by review board, can you ask to download the packaged app? [16:00] For Free Software gratis apps, we currently recommend packaging your application yourself and put it in a PPA }}}