BringingYourAppIntoUbuntu

Dev Week -- Bringing your app to Ubuntu -- dpm -- Wed, Feb 1st, 2012

   1 [15:01] <dpm> Allright, how's everyone doing?
   2 [15:01] <ryan__> I am doing well.
   3 [15:01] <dtss> good :)
   4 [15:01] <yuvilio> awake
   5 [15:02] <dpm> cool
   6 [15:02] <dpm> ok, awesome
   7 [15:03] <dpm> let's wait a minute for stragglers to come in and then we can start
   8 [15:04] <dpm> I hope you all are enjoying UDW so far...
   9 [15:04] <dpm> dholbach tells me yesterday was awesome!
  10 [15:04] <dpm> Anyway, let's get started
  11 [15:05] <dpm> Hi everyone and welcome to the first session of Ubuntu Developer Week Day 2!
  12 [15:05] <dpm> During the next hour I'll be talking about how to submit your apps to Ubuntu,
  13 [15:06] <dpm> so that they get published in the Software Centre
  14 [15:06] <dpm> to be distributed to millions of users that will surely enjoy your cool software :)
  15 [15:06] <dpm> But it will not be just a talk: I'll  make sure that there is plenty of time for everyone
  16 [15:07] <dpm> to participate and ask their questions at the end. However, feel free to interrupt me during the
  17 [15:07] <dpm> rest of the session if you've got any questions.
  18 [15:07] <dpm> Just remember to prepend them with QUESTION: on the #ubuntu-classroom-chat channel
  19 [15:07] <dpm> Throughout the talk I will be referring to different places in the Ubuntu App Developer site,
  20 [15:07] <dpm> which is the central place for anyone wanting to create and publish their apps in Ubuntu.
  21 [15:08] <dpm> Here's where it lives:
  22 [15:08] <dpm>     http://developer.ubuntu.com
  23 [15:08] <dpm> ... and without further ado ...
  24 [15:08] <dpm> let's get rolling!
  25 [15:08] <dpm>  
  26 [15:09] <dpm> Creating your app
  27 [15:09] <dpm> =================
  28 [15:09] <dpm>  
  29 [15:09] <dpm> Well, the first step is obvious, you have to create your app,
  30 [15:09] <dpm> which is basically the time when you materialise that cool idea into beautiful software.
  31 [15:09] <dpm> I will not dwell too much on this subject, as it's beyond the scope of the session,
  32 [15:10] <dpm> However, I'll just add a couple of tips for app authors.
  33 [15:10] <dpm> If you're considering writing a new application for Ubuntu, I'd recommend to use
  34 [15:10] <dpm> the standard set of tools available from the Ubuntu archive.
  35 [15:10] <dpm> They are an extremely powerful and versatile bunch of tools
  36 [15:11] <dpm> which will not only put everything you need to write software at your fingertips,
  37 [15:11] <dpm> but also will help you following good development practices.
  38 [15:11] <dpm> And they're all Free Software and also free as in free beer!
  39 [15:12] <dpm> I see we've got a question already, but let me show you something first:
  40 [15:12] <dpm> You've got an overview of our recommendations to write new apps here:
  41 [15:12] <dpm>     http://developer.ubuntu.com/get-started/quickly-workflow/
  42 [15:12] <ClassBot> ryan___ asked: Which programming language do you perfer to use to develop Ubuntu apps?
  43 [15:13] <dpm> as you can see from the table in the link above, we're currently recommending Python
  44 [15:13] <dpm> as a language to write new apps
  45 [15:13] <dpm> What we've also got is a tool called quickly, which puts all those technologies together
  46 [15:14] <dpm> You can learn more about it here, it's got a nice and short video tutorial
  47 [15:14] <dpm> to show you how to write a basic functional template for your app in 3 minutes:
  48 [15:14] <dpm>     http://developer.ubuntu.com/get-started/
  49 [15:14] <dpm> However, if you've already written an application with another set of tools,
  50 [15:15] <dpm> or if you do prefer another choice of toolkit, that's also ok!
  51 [15:15] <dpm> We're providing these recommendations to make it easy for app authors to get started
  52 [15:15] <dpm> and provide a smooth path for publishing their apps.
  53 [15:15] <dpm> However, we acknowledge the diversity of the whole Open Source ecosystem,
  54 [15:16] <dpm> so you can basically submit your apps using your weapon of choice.
  55 [15:16] <dpm> Just remember that our recommendations will make things easier, though!
  56 [15:16] <ClassBot> metasansana asked: why phython?
  57 [15:18] <dpm> 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.
  58 [15:18] <dpm> apart from that, it comes with a rich library of functions to do virtually anything you want
  59 [15:19] <dpm> Continuing on this subject,
  60 [15:19] <dpm> 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.
  61 [15:20] <ClassBot> ryan___ asked: does Quickly support the Microsoft Visual Basic programming language?
  62 [15:21] <dpm> 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
  63 [15:22] <dpm> however, to answer the question, quickly intendedly only supports python, no Visual Basic
  64 [15:22] <dpm> ok, moving along
  65 [15:22] <dpm>  
  66 [15:22] <dpm> Which types of apps qualify
  67 [15:22] <dpm> ===========================
  68 [15:22] <dpm>  
  69 [15:22] <dpm> There are thousands of apps available in the Ubuntu archive already, which usually get in there through other means.
  70 [15:22] <dpm> Many of these fall into the category of system software, or big applications that are part of the Ubuntu platform.
  71 [15:23] <dpm> They are also subject to strict policies to ensure the security and quality of the software,
  72 [15:23] <dpm> as well as to ensure that they are indeed Free Software and can be distributed with Ubuntu.
  73 [15:23] <dpm> So in order to differentiate from these archive applications, I'll call the process  we'll be talking about today, "the app developer process".
  74 [15:24] <dpm> Ultimately though, they are all published through the Software Centre
  75 [15:25] <dpm> So to answer the first question, these are the 3 broad categories under which apps to be submitted through the app developer process fall:
  76 [15:25] <dpm> * Paid for apps
  77 [15:25] <dpm> * Gratis apps with proprietary licenses
  78 [15:25] <dpm> * Gratis apps with Open Source licenses
  79 [15:25] <dpm> Notice that as well as open source, we're also embracing commercial applications
  80 [15:25] <dpm> to give the opportunity to app authors and Canonical to make revenue of application sales.
  81 [15:26] <dpm> This should give you a rough idea, but ultimately you will need to know the whole
  82 [15:26] <dpm> details to see if your app qualifies for the app developer process.
  83 [15:26] <dpm>  
  84 [15:26] <dpm> - For paid for and gratis+proprietary apps:
  85 [15:26] <dpm>     http://developer.ubuntu.com/publish/commercial-software-faqs/
  86 [15:26] <dpm> - For gratis+open source apps:
  87 [15:27] <dpm>     https://wiki.ubuntu.com/AppReviewBoard/Review/Guidelines
  88 [15:27] <dpm> Ok, next is where it gets interesting: how to actually submit your app!
  89 [15:27] <dpm>  
  90 [15:27] <dpm> 1. Submitting your app
  91 [15:27] <dpm> ======================
  92 [15:27] <dpm>  
  93 [15:27] <dpm> Ok, so all that cleared up, by this point you've already have a working app you'd
  94 [15:27] <dpm> like the world to see and enjoy.
  95 [15:28] <dpm> The good news is that we've got an easy, streamlined and web-based process
  96 [15:28] <dpm> to make it easy for you to to publish, keep track of, monitor and update your apps.
  97 [15:28] <dpm> For this, we've developed a tool especially for app developers.
  98 [15:28] <dpm> It's called My Apps and you'll find it on the app developer site:
  99 [15:28] <dpm>     https://myapps.developer.ubuntu.com
 100 [15:29] <dpm> 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
 101 [15:29] <dpm> to enter the Ubuntu app developer programme and start using it straight away :-)
 102 [15:29] <dpm> Signing up it's free, and again, it's a matter of a couple of minutes.
 103 [15:29] <dpm> The process is based on Ubuntu's single login,
 104 [15:30] <dpm> so if you've got an Ubuntu SSO account already, it will be even quicker.
 105 [15:30] <dpm> Simply go to https://myapps.developer.ubuntu.com, either click on the "Sign in or register" link at the top right hand side
 106 [15:30] <dpm> or the "Submit a new application" button, and the website will guide you through the process.
 107 [15:30] <dpm> Before you continue the process of submitting the app though, you might want to read the quickstart guide on:
 108 [15:31] <dpm>     http://developer.ubuntu.com/publish/
 109 [15:31] <dpm> It will show you the basic steps you will be following and give you some useful tips along the way.
 110 [15:31] <dpm> Let's go quickly through them:
 111 [15:31] <dpm> 1 - Set up your My Apps account - you've already done that :)
 112 [15:31] <dpm> 2 - Prepare your app's icons and screenshots - you will want your app to be
 113 [15:31] <dpm> appealing to users, so make sure you've got nice screenshots and icons, in all recommended sizes
 114 [15:32] <dpm> 3 - Add your application details - here you'll be describing your app and making it easily
 115 [15:32] <dpm> discoverable in the Software Centre. Make sure the description is clear and use a spell-checker to avoid typos
 116 [15:32] <dpm> 4 - Choose your price - if your app is paid for, you'll have to decide the price in USD at this point
 117 [15:32] <dpm> The minimum price is $2.99
 118 [15:32] <dpm> 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
 119 [15:32] <dpm> 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.
 120 [15:33] <dpm> So going back on the step of uploading your app,
 121 [15:33] <dpm> 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.
 122 [15:33] <dpm> *However*, there are some important caveats:
 123 [15:34] <dpm>  * 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.
 124 [15:34] <dpm> Very soon we'll have automatic packaging in place, but more details on that when it's all deployed and working
 125 [15:35] <dpm>  * 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
 126 [15:35] <dpm> developer.ubuntu.com/packaging
 127 [15:36] <dpm> We've got a few questions coming in, and they're related to reviewing
 128 [15:36] <dpm> Let me talk a bit about review and then answer them
 129 [15:36] <dpm>  
 130 [15:37] <dpm> 2. Reviewing your app
 131 [15:37] <dpm> =====================
 132 [15:37] <dpm>  
 133 [15:37] <dpm> After your application has been submitted, and depending of the type of app, one of two things will happen:
 134 [15:38] <dpm> * 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.
 135 [15:38] <dpm> * 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)
 136 [15:39] <dpm> In any case, reviewers will get in touch with you as soon as they start reviewing
 137 [15:39] <dpm> your app, and you will be notified of any app state changes by e-mail.
 138 [15:39] <dpm> For all the exact details of an application's lifecycle in My Apps, check out:
 139 [15:39] <dpm>     http://developer.ubuntu.com/publish/application-states/
 140 [15:39] <dpm> Now onto the questions:
 141 [15:40] <ClassBot> 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?
 142 [15:40] <dpm> they'd be delighted to hear that!
 143 [15:40] <dpm> you can jump into the #ubuntu-arb channel and ask how to help, or you can contact the ARB through e-mail
 144 [15:41] <dpm> https://wiki.ubuntu.com/AppReviewBoard
 145 [15:41] <dpm> you'll find all the details there
 146 [15:41] <ClassBot> ryan___ asked: how long does it take after you submit an application to Ubuntu before it shows up in the Ubuntu Software Centre?
 147 [15:43] <dpm> 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
 148 [15:44] <dpm> it can take from some hours to some days, but it varies on an app by app basis
 149 [15:44] <dpm> You'll find some more details there: http://askubuntu.com/questions/97272/how-long-does-it-take-to-complete-the-review-stages-in-ubuntu
 150 [15:45] <ClassBot> dmj726 asked: How will proprietary apps be reviewed for security?
 151 [15:46] <dpm> apps submitted through the app developer process are not subject to the same security policies of those in the Ubuntu archive
 152 [15:47] <dpm> let me ask davmor2 to provide some more details in a minute
 153 [15:47] <ClassBot> Gontxo-Vitoria asked: If I make a app that is foss, i can't not sell it in ubuntu?
 154 [15:47] <dpm> yes, you can also sell free software apps!
 155 [15:48] <dpm>     http://developer.ubuntu.com/publish/commercial-software-faqs/ covers that too
 156 [15:48] <ClassBot> 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?
 157 [15:49] <dpm> 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
 158 [15:49] <ClassBot> dmj726 asked: I've seen magazine issues and books in the Ubuntu Software Center.  How would one publish something like that through Ubuntu?
 159 [15:50] <dpm> I'm not sure I understand the question, we already publish them in Ubuntu, which means making them available in the Software Centre!
 160 [15:50] <dpm> I've got some more details on the security question from davmor2:
 161 [15:50] <dpm> 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
 162 [15:51] <ClassBot> There are 10 minutes remaining in the current session.
 163 [15:51] <ClassBot> 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?
 164 [15:53] <dpm> 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
 165 [15:53] <dpm> cwayne asked: how long will an app stay in 'pending review' state for?
 166 [15:54] <dpm> you can find the details here: http://askubuntu.com/questions/97272/how-long-does-it-take-to-complete-the-review-stages-in-ubuntu
 167 [15:54] <dpm> any more questions?
 168 [15:55] <ClassBot> dmj726 asked: Are commercial apps vetted for any sort of quality to avoid malicious apps?
 169 [15:55] <ClassBot> There are 5 minutes remaining in the current session.
 170 [15:55] <dpm> <davmor2> 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.
 171 [15:56] <dpm> so if there are no more questions for now, just a quick reminder on how to get help or get in touch
 172 [15:56] <dpm>  
 173 [15:56] <dpm>  Getting help
 174 [15:56] <dpm> ============
 175 [15:56] <dpm>  
 176 [15:56] <dpm> If you need any help or if you've got any questions, be it during or before the
 177 [15:56] <dpm> publishing step, there is an awesome, awesome community of app developers out
 178 [15:56] <dpm> there just like you, willing to lend a hand
 179 [15:56] <dpm> Check out:
 180 [15:57] <dpm> http://developer.ubuntu.com/community/
 181 [15:57] <dpm> From there, I'd like to highlight:
 182 [15:57] <dpm> Real-time chat: http://webchat.freenode.net/?channels=ubuntu-app-devel
 183 [15:57] <dpm> i.e. the #ubuntu-app-devel IRC channel on Freenode
 184 [15:57] <dpm> Askubuntu: http://www.askubuntu.com/questions/ask?tags=application-development
 185 [15:58] <dpm> For all your app development related questions
 186 [15:58] <dpm> Mailing list: https://lists.ubuntu.com/mailman/listinfo/ubuntu-app-devel
 187 [15:58] <dpm> Also for all your questions and longer discussions
 188 [15:58] <dpm> And finally, here's an overview on how to stay up to date:
 189 [15:58] <dpm> http://developer.ubuntu.com/2011/11/building-the-ubuntu-app-development-community-i-communication-channels/
 190 [15:59] <ClassBot> PaoloRotolo asked: If you have uploaded an app without packaging, after the packaging by review board, can you ask to download the packaged app?
 191 [16:00] <dpm> For Free Software gratis apps, we currently recommend packaging your application yourself and put it in a PPA

MeetingLogs/devweek1201/BringingYourAppIntoUbuntu (last edited 2012-02-02 09:19:00 by dholbach)