Ubuntu Opportunistic Developers Week March 2010 - What's new in Quickly 0.4 - Didier Roche - Mar 3 2010

(01:01:34 PM) didrocks: awesome laszlok, thanks for your session :) Just a question, when will you do a Quickly template for a cairo project? :p (kidding)
(01:01:57 PM) didrocks: so, welcome everyone on the session about Quickly 0.4
(01:02:04 PM) didrocks: [SLIDE 1]
(01:02:49 PM) didrocks: who is interested on what we backed for Quickly 0.4? hands up in -chat!
(01:03:34 PM) didrocks: nice
(01:03:58 PM) didrocks: so, I'm Didier Roche, one of the Quickly developer and also desktop team member
(01:04:05 PM) didrocks: (and fresh ubuntu core dev :))
(01:04:35 PM) didrocks: for people not seeing the slide, you can get them at http://people.canonical.com/~didrocks/Quickly-0.4.pdf
(01:04:47 PM) didrocks: it should be on the Session tab in lernid
(01:05:04 PM) didrocks: so, first, what this session is *not* about
(01:05:48 PM) didrocks: this session isn't a presentation of Quickly. This has already been done later this week by Rick Spencer. logs availabled at https://wiki.ubuntu.com/MeetingLogs/OpWeek1003/Quickly
(01:06:03 PM) didrocks: [SLIDE 2]
(01:06:16 PM) didrocks: (at least, it works me in lernid :p)
(01:06:23 PM) didrocks: (and that's not Quickly's fault ;))
(01:06:45 PM) didrocks: so, 0.4 is unfortunately still in development
(01:06:56 PM) yofel_ is now known as yofel
(01:07:06 PM) didrocks: it still needs some stuff to be added in launchpad to make things easier
(01:07:19 PM) didrocks: and I prefer to do that the right way than a quickly screenscrapping
(01:07:38 PM) didrocks: so, warning, it's unstable, the current version is 0.3.5
(01:07:52 PM) didrocks: I hope to release the stable version before lucid beta 1
(01:08:05 PM) didrocks: in any case, Quickly 0.4 will be in lucid :)
(01:08:14 PM) didrocks: so, a little about stats
(01:08:37 PM) didrocks: last version which is 0.2.6 has been release approximately 6 months before
(01:08:44 PM) didrocks: and a lot happens in 6 months :)
(01:09:07 PM) didrocks: you can see some stats for the addicts: 250 commits and 12930 changed lines
(01:09:40 PM) didrocks: to be honest, some file had been moved, so if we want to be fair, I would say 4000 code of code have been really impacted
(01:09:58 PM) didrocks: it's a lot, and I'll show you now what are in those lines :)
(01:10:04 PM) didrocks: [SLIDE 3]
(01:10:26 PM) didrocks: souces: how to be informed of what's new?
(01:10:37 PM) didrocks: well, this session is dedicated to that, so that's a good first step :)
(01:10:51 PM) didrocks: (I'll probably blog on planet ubuntu too when Quickly 0.4 will be out)
(01:11:08 PM) didrocks: a more detailed sources the NEWS file in trunk
(01:11:14 PM) didrocks: I try to keep it pretty complete
(01:11:38 PM) didrocks: and of course, if you want full details, you have to read the 250 commits :)
(01:12:59 PM) didrocks: let's first see what's the most noticeable changes
(01:13:00 PM) didrocks: the first thing is that the ubuntu-project template (the only one which existed in 0.2.x) is no more…
(01:13:00 PM) didrocks: don't be panic, it has just been renamed ubuntu-application
(01:13:07 PM) didrocks: of course, existing project will be transitionned appropriately so that you don't have to change anything for existing Quickly users
(01:13:44 PM) didrocks: Quickly 0.4 will welcome at least one new template, and even maybe a third one in trunk :)
(01:14:08 PM) didrocks: ubuntu-cli template is to create a command line soft with all the ubuntu-application intgration
(01:14:23 PM) didrocks: (a lot of people asked for a cli template :))
(01:14:56 PM) didrocks: ubuntu-game (or pygame, or whatever) will be detailed later in this week by Rick, you should be already aware of that if you read planet ubuntu
(01:15:29 PM) didrocks: also, artfwo (thanks to the template inheritance I'll described later) is beginning to implement a gedit-plugin template
(01:15:38 PM) didrocks: so, a lot of goodness to come in a very short time :)
(01:15:57 PM) didrocks: [SLIDE 4]
(01:16:47 PM) didrocks: as there is no question, let's dive a little bit more on what's interest most of you: ubuntu-project… hum… ubuntu-application new capability ;)
(01:17:18 PM) didrocks: first thing (and I'll come back later on that) you have to understand is that your existing app will be converted for 0.4
(01:17:38 PM) didrocks: it will be the first time you run a quickly command on it
(01:17:44 PM) didrocks: (also if you proceed some tab completion)
(01:17:57 PM) didrocks: that's needed and it's a new Quickly core capability
(01:18:18 PM) didrocks: that implies that projects which will be converted to Quickly 0.4 won't work anymore with a previous version of Quickly
(01:18:34 PM) didrocks: (it's still possible to convert back by hand, but complicated)
(01:19:02 PM) didrocks: as I wrote, ubuntu-application in 0.4 has a new versionning scheme
(01:19:17 PM) didrocks: that means that project will follow by default ubuntu way of versionning thing
(01:19:36 PM) didrocks: for instance, if I run "quickly release" just now, my release will be 10.03
(01:19:50 PM) didrocks: if I run quickly release again, it will be 10.03.1
(01:19:53 PM) didrocks: and so on :)
(01:20:12 PM) didrocks: you are still able to provide your release version yourself
(01:20:30 PM) didrocks: the second point is the most tricky one but the one on the top priority list
(01:20:59 PM) didrocks: did you have some troubles setting up your gpg and ssh key on LP to make your first quickly share/quickly release?
(01:21:31 PM) didrocks: that will be (we hope) part of the past in 0.4!
(01:22:02 PM) didrocks: this is what I'm currently working and that needs a lot of work on launchpad side… and I'm not a LP hacker
(01:22:34 PM) didrocks: so, normally, if you don't have one, Quickly will do everything for your
(01:22:36 PM) didrocks: you*
(01:23:03 PM) didrocks: also, selecting the right email adress through some algorithms :)
(01:23:14 PM) didrocks: moving on…
(01:23:23 PM) didrocks: quickly license has been totally reshaped
(01:23:45 PM) didrocks: no more Copyright file which populate an AUTHOR file, you will only have to edit the AUTHOR one
(01:23:53 PM) didrocks: (this confused some people before)
(01:24:05 PM) didrocks: the next one is more interesting
(01:24:36 PM) didrocks: when you quickly release, your changelog will automatically be collected with all the messages you provided in "quickly save <your message>" from the last release
(01:24:45 PM) didrocks: it will create a release and milestone on launchpad
(01:24:57 PM) didrocks: upload your tarball too to be available on the first page
(01:25:08 PM) didrocks: and create an annoucement with your changelog
(01:25:39 PM) didrocks: of course, as a good upstream, it signs the tarball file too (as it's recommended as a best practice)
(01:26:04 PM) didrocks: you can see what it gives on my test project: https://edge.launchpad.net/fooby
(01:26:45 PM) didrocks: next point is ppa
(01:27:01 PM) didrocks: when Quickly 0.2 was released, launchpad only enabled you to have one ppa
(01:27:06 PM) didrocks: which was called… "ppa"
(01:27:19 PM) didrocks: things have changed now and you can have multiple ppa
(01:27:40 PM) didrocks: also, some people would like to upload the package to a team ppa
(01:27:46 PM) didrocks: and to be honest, that makes sense :)
(01:27:59 PM) didrocks: so, now, you can upload to any ppa you want
(01:28:10 PM) didrocks: either by providing --ppa <ppa_name>
(01:28:16 PM) didrocks: to quickly share and release
(01:28:33 PM) didrocks: or to put it as a default with quickly configure ppa <ppa_name>
(01:28:51 PM) didrocks: of course, shell completion still works there and give you the list of all ppa you have access
(01:29:04 PM) didrocks: (/!\ it's slow on LP side, can take more than 10s)
(01:29:22 PM) didrocks: ppa_name can be: "myppa" or "team/ppaname"
(01:29:32 PM) didrocks: and shell completion works for everycase :)
(01:30:08 PM) didrocks: on another aspect, as I wrote some commands have been rename to be more consistent
(01:30:15 PM) didrocks: quickly dialog is now quickly add dialog
(01:30:31 PM) didrocks: (that will avoid in the futur to have 50 commands in a template)
(01:30:44 PM) didrocks: quickly lp-project is quickly configure lp-project
(01:30:50 PM) didrocks: and quickly glade is now quickly design
(01:31:22 PM) didrocks: of course, as always, statement completion is here to help you to find commands name and arguments to the commands :)
(01:31:49 PM) didrocks: for instance quickly configure [tab][tab] will show you all available options like ppa, lp-project, bzr
(01:32:08 PM) didrocks: [SLIDE 5]
(01:32:21 PM) didrocks: ah, I like very much next option :)
(01:32:44 PM) didrocks: when you "quickly release", now, you will have the about dialog automatically refreshed
(01:33:31 PM) didrocks: that means, your logo, but also the new version number appears, the Copyright holder, the homepage, the Credit (authors) button and license one
(01:33:55 PM) didrocks: so, no need to before or to think about them, Quickly is handling that for you :)
(01:34:11 PM) didrocks: that avoid to make a .1 release with "I forgot to…"
(01:34:37 PM) didrocks: next item (no, not the blank one) had been asked also by a lot of persons
(01:34:48 PM) didrocks: being able to add manual dependencies
(01:35:08 PM) didrocks: "why care, quickly already grab all the depends for us?" you will tell me…
(01:35:17 PM) didrocks: that's both true and false to be honest :)
(01:35:58 PM) didrocks: for instance, if you launch a command yourself as a subprocess pythondistutils-extra won't find it and you will have a missing dependency
(01:36:15 PM) didrocks: so now, for that, you can just fire away $ quickly configure dependencies
(01:36:36 PM) didrocks: as "dependencies" is typo-prone, think about using shell completion for that too :)
(01:37:17 PM) didrocks: next thing is bzr branch, as for ppa, you can tell where you can push and pull your code if you are interested in :)
(01:37:44 PM) didrocks: quickly configure bzr of course :)
(01:38:26 PM) didrocks: maybe the tutorial which (I'm afraid) is still not internationalized will be thanks to fagan. But nothing sure yet, still ongoing work :)
(01:39:09 PM) didrocks: of course, this was only the most important things I can list for that session for ubuntu-application template, but there are a lot of various fixes, new licenses available, packagin tweak, internationalized application, and so on :)
(01:39:27 PM) didrocks: [SLIDE 6]
(01:39:47 PM) didrocks: oh btw, I forgot about the apport hook!
(01:40:08 PM) didrocks: all project will come (but you can still disabling that if you don't want) an apport hook by default
(01:40:32 PM) didrocks: and the menu will have the launchpad addition for translation and help in the help menu
(01:40:51 PM) didrocks: ok, so, now, really slide 6 :)
(01:41:14 PM) didrocks: this is for prospective template developers and people interested in making a GUI for Quickly
(01:41:29 PM) didrocks: first thing is importing commands between templates is available
(01:41:44 PM) didrocks: QUESTION: does having an apport hook mean that if the program crashes and stuff you can send a detailed report to the launchpad project?
(01:41:53 PM) didrocks: dbell: exactly :)
(01:42:06 PM) didrocks: and you get that for free :)
(01:42:17 PM) didrocks: so, back on importing commands
(01:42:33 PM) didrocks: if one day you want to look at the ubuntu-cli template
(01:42:42 PM) didrocks: you will see that there is 0 line of code
(01:42:49 PM) didrocks: yes, no typo, I said 0!
(01:43:10 PM) didrocks: it's just a new boiler plate, and I import all commands from ubuntu-application
(01:43:44 PM) didrocks: so, basically, there is a commandsconfig with:
(01:43:50 PM) didrocks: [ubuntu-application]
(01:43:51 PM) didrocks: IMPORT=configure;create;edit;license;package;release;run;save;shar
(01:44:14 PM) didrocks: (for obvious reason for a cli template, I don't import design and add dialog :))
(01:44:30 PM) didrocks: and then, I can create a ubuntu-cli application, edit, licence, package…
(01:44:59 PM) didrocks: and get statement completion for all of those using the new boiler plate code :)
(01:45:12 PM) didrocks: so, creating a template from an existing one is really really easy
(01:45:17 PM) didrocks: QUESTION: Will apps still work if python-launchpad-integration isn't installed (eg. on other distros)
(01:45:40 PM) didrocks: RainCT: we try to include that as a patch, so that pristine tarball doesn't have that code and so other distros aren't impacted
(01:45:56 PM) didrocks: (it's basically a try: pass)
(01:46:28 PM) didrocks: well, other functions (quickly ;))
(01:46:33 PM) didrocks: you can now pass option to template
(01:46:37 PM) didrocks: we have apport integration
(01:46:44 PM) didrocks: so ubuntu-bug quickly is your friend :)
(01:47:09 PM) didrocks: as I told you, you can now quickly configure [tab][tab] --ppa [tab][tab]
(01:47:20 PM) didrocks: that means that the core has now option completion for you
(01:47:35 PM) didrocks: we handle template upgrade
(01:47:47 PM) didrocks: (even if you launch a command from one template into another project)
(01:47:59 PM) didrocks: like quickly --template my-awesome-template foocommand
(01:48:07 PM) didrocks: we have also now an API
(01:48:24 PM) didrocks: so, if you want to build a GUI or integrate it into an IDE, that's the way to go :)
(01:48:40 PM) didrocks: of course, in addition to thing, many fixes and refactoring
(01:48:46 PM) didrocks: [SLIDE 7]
(01:49:07 PM) didrocks: I've already talked about the ubuntu-cli template
(01:49:24 PM) didrocks: the most important thing is that it's a new boiler plate for no code for the commands :)
(01:49:55 PM) didrocks: if you want to implement your own template with import of ubuntu-application command, that's where to look for examples
(01:50:03 PM) didrocks: QUESTION: Any examples on the API?
(01:50:34 PM) didrocks: osteenbergen47: basically, you just have to "from quickly import api" and then, look at the api file
(01:50:49 PM) didrocks: if you are interested in that, join #quickly and I can help you :)
(01:50:58 PM) didrocks: QUESTION: is there a tutorial on how to do own/custom templates ?
(01:51:12 PM) didrocks: oskude: I've written one for Quickly 0.2, let me find the link
(01:51:45 PM) didrocks: http://blog.didrocks.fr/index.php/post/Build-your-application-quickly-with-Quickly%3A-Inside-Quickly-part-6
(01:52:08 PM) didrocks: (and now, I kill my Internet connexion as I host myself my server ;))
(01:52:27 PM) didrocks: this is quite outdated
(01:52:33 PM) didrocks: I will refresh that once 0.4 out
(01:52:41 PM) didrocks: [SLIDE 8]
(01:52:52 PM) didrocks: so, you want to try Quickly 0.4? (well, 0.3.5)
(01:53:09 PM) didrocks: as I mentionned before, we warned, you can't convert back your project to the previous format
(01:53:39 PM) didrocks: and I don't have the time to ensure that everycommand works at each commit, but I try to fix the issue within the day
(01:53:54 PM) didrocks: so, jump into #quickly, so that you can yell at me that it's broken :)
(01:54:03 PM) didrocks: and if you want to test, branch the trunk
(01:54:07 PM) didrocks: bzr branch lp:quickly
(01:54:20 PM) didrocks: export PATH=<path_to_your_trun>/bin:$PATH
(01:54:27 PM) didrocks: (note the /bin :))
(01:54:40 PM) didrocks: quickly --version should normally answer you about the current version
(01:54:49 PM) didrocks: [SLIDE 9]
(01:55:10 PM) didrocks: of course special thanks to Rick to have the idea of this project
(01:55:21 PM) didrocks: and he will do the two next session, stay around :)
(01:55:37 PM) didrocks: also some contributors are really awesome and help pushing the project further :)
(01:55:47 PM) didrocks: [SLIDE 10]
(01:55:57 PM) didrocks: so, taking questions now in the 5 remaining minutes
(01:56:22 PM) didrocks: QUESTION: Is there an easy way to try fresh quickly on Karmic? The straightforward setup.py build/install way results in a lot of errors.
(01:56:34 PM) didrocks: right, there is a bug logged about that
(01:56:46 PM) didrocks: I don't see anything preventing for backporting to karmic
(01:56:49 PM) didrocks: BUT
(01:56:55 PM) didrocks: you need last distutils-extra version
(01:57:09 PM) didrocks: (else you can't add depends, nor you have the automated changelog goodness)
(01:57:26 PM) didrocks: and I probably have to fix setup.py
(01:57:37 PM) didrocks: I think I'll try to provide a package in the quickly ppa for karmic
(01:57:44 PM) didrocks: QUESTION: Is there a ppa-daily of Quickly for auto installing the last one?
(01:58:07 PM) didrocks: there is a daily ppa, jcastro was the owner IIRC, I don't know the current state to be honest
(01:58:18 PM) didrocks: I think export PATH is more convenient :)
(01:58:30 PM) didrocks: and that's what I do everyday :)
(01:59:12 PM) didrocks: well, of course the day we can do "quickly release lucid", I think Quickly will take some thousands lines of code :)
(01:59:18 PM) jcastro: The dailies work, if they don't work for you just poke me.
(01:59:32 PM) didrocks: but as I still like my job, it won't happen :)
(01:59:50 PM) didrocks: I guess it's time :)
(01:59:53 PM) didrocks: and thanks jcastro
(01:59:59 PM) didrocks: thanks all for your attention
(02:00:14 PM) didrocks: now, stage is to you rickspencer3
(02:00:33 PM) didrocks: and thanks for having launched Quickly once more :)

MeetingLogs/OpWeek1003/Quickly2 (last edited 2010-03-03 19:01:09 by pool-71-182-100-128)