QuicklyApp
Differences between revisions 1 and 2
|
⇤ ← Revision 1 as of 2010-07-15 20:40:24
Size: 19292
Comment:
|
← Revision 2 as of 2010-07-15 20:43:32 ⇥
Size: 22095
Comment:
|
| Deletions are marked like this. | Additions are marked like this. |
| Line 3: | Line 3: |
| (12:00:46 PM) nigelb: ok! Now, we're kicking (12:00:54 PM) nigelb: Hello everyone, I'm Nigel and with me is David. We're going to talk about patch review. (12:01:03 PM) ***bobbo waves (12:01:08 PM) nigelb: I'd like you all to take a look at https://wiki.ubuntu.com/OperationCleansweep (12:01:32 PM) nigelb: This cycle, this is a very critical operation that we'd like to see carried out. As you can read (12:01:40 PM) nigelb: This cycle, this is a very critical operation that we'd like to see carried out. As you can read (12:01:43 PM) nigelb: grr (12:01:51 PM) nigelb: in the wiki page, operation cleansweep is about reviewing all the bugs in Launchpad against the Ubuntu project which have a patch attached. (12:01:59 PM) nigelb: (sorry folks, paste fail ;) (12:02:17 PM) nigelb: We have a lot of awesome contributors who write code to fix bugs, but we lose out on this awesomeness because we're slow to review the patches. (12:02:26 PM) nigelb: Its not something thats new to an open source project, but its something that we in Ubuntu would like to pay attention to and we NEED your help! (12:02:54 PM) bobbo: So how can you help out with patch reviews? (12:03:05 PM) bobbo: We have a script which automatically finds bugs with patches that need reviewing (12:03:20 PM) bobbo: Of course, it can't decide whether the patch is good or not, we need a human for this. This is where you guys come in (12:03:37 PM) bobbo: The script subscribes us to all Ubuntu bugs with a patch attached minus the packages that we exclude (https://wiki.ubuntu.com/ReviewersTeam/ExcludingPackages) (12:04:02 PM) bobbo: The first step to reviewing patches is to look at the current work queue. (12:04:40 PM) bobbo: We've got a big Launchpad query which filters out all the reviewed patches and just shows the ones we need to look at (12:05:01 PM) bobbo: You can find the bug list at http://tinyurl.com/2u7kf3b (12:05:33 PM) bobbo: AS you can see was have currently around 1500 bugs in the unreviewed queue (12:05:46 PM) bobbo: Those are bugs that have patches that need to be reviewed and we haven't gotten around to do (12:06:08 PM) bobbo: Just for perspective, we started out with just under 2000 bugs in that list (12:06:28 PM) bobbo: Yeah, we're getting there, but unfortunately new patches are added every day! We get almost 100 new patches a month, maybe more. (12:06:40 PM) bobbo: also nigelb's laptop just broke, so that's slowing us down too :D (12:06:50 PM) nigelb: heh, its getting fixed :) (12:06:55 PM) nigelb: We'll quickly summarize the process and we will show you some specific examples to get a better grasp of the idea. (12:07:11 PM) nigelb: Can all of us open the review guide? Its at https://wiki.ubuntu.com/ReviewersTeam/ReviewGuide (12:07:37 PM) nigelb: So now you have the list of bugs. Pick a bug to work on. (12:07:47 PM) nigelb: Once you pick a bug, you have to reproduce the bug again. Sometimes the bug is fixed and someone forgot to close it from changelog or it was fixed upstream. (12:08:09 PM) nigelb: No point of the patch if the bug is already solved. Close the bug as "Fix Released" (12:08:22 PM) nigelb: If the bug is reproducible, the next step is to check if the patch applies. (12:08:44 PM) nigelb: If the patch is old, the source may have changed so much that the patch does not apply any longer. (12:09:12 PM) nigelb: If the patch fails to apply or fix the bug, you should add the patch-needswork tag and ideally leave a comment explaining what is wrong with the patch (12:09:22 PM) nigelb: and ask the original author if he can re-write the patch. (12:10:30 PM) bobbo: f you can make sense of the code enough to correct, that would be even more great (12:10:37 PM) bobbo: fail, If* (12:10:52 PM) bobbo: This bug though will be off our list since we can't work with the patch unless its reworked. (12:11:10 PM) bobbo: If the patch applies and the bug still exists, we need to check if it fixes the bug. (12:11:27 PM) bobbo: Again, no point in a patch if the bug is present after applying the patch and run the program again. (12:12:06 PM) bobbo: If the patch works, we have a few options (12:12:36 PM) bobbo: Ideally we should forward it upstream for their take on it because we don't want to conflict with them if they have a better way of fixing it or if we introduce some dangerous regressions (12:12:51 PM) bobbo: Also, since upstream is the original author of the code, they have a good idea of what makes sense. (12:13:28 PM) nigelb: Encourage the patch author to forward the bug upstream or forward the bug upstream yourself, once the patch is forwarded upstream, add the patch-fowarded-upstream tag. (12:13:42 PM) nigelb: This helps us keep track of the good that came out of it (and jcastro gets the credit :p) (12:14:07 PM) nigelb: Depending on what upstream feels about it, you may need to modify the tag to patch-accepted-upstream or patch-rejected-upstream. (12:14:21 PM) nigelb: Sometimes though, the bug maybe a bit more critical than to wait for upstream to fix it and we're sure the patch is going to help us. (12:14:38 PM) nigelb: In that case, we forward the bug to Debian and add a 'patch-forwarded-debian' tag. (12:15:24 PM) bobbo: Again, depending on feedback from Debian, we mark the patch as and patch-accepted-upstream and patch-rejected-upstream. (12:15:44 PM) bobbo: In very rare cases though, the patch is just wrong and we have to reject it. (12:16:02 PM) bobbo: In that case, we tag the bug with 'patch-rejected' (12:16:38 PM) bobbo: In other cases the bug is so severe that the need to deal with it as quickly as possible (12:17:11 PM) bobbo: or the patch is so perfect, well tested and unlikely to cause regressions that we won't lose sleep if we apply it without upstream looking at it (12:17:37 PM) bobbo: In these cases, the patch is applied in the Ubuntu package, and then forwarded to upstream or debian (12:17:59 PM) bobbo: One extra complication is that sometimes patches onfly affect the packaging of an application (12:18:23 PM) nigelb: ok, so you've all asked some questions, we'll be answering those now (12:18:31 PM) ClassBot: devildante67 asked: Does Operation Cleansweep include bzr branches or only patches? (12:18:59 PM) nigelb: It includes only patches. the bzr branches would follow udd and are sponsored in directly. (12:19:08 PM) nigelb: udd = ubuntu distributed development (12:19:29 PM) ClassBot: joaopinto asked: when we have the technical ability to do so, is it ok to rework the patch ourselves or should we wait for the path feedback instead ? (12:19:52 PM) nigelb: like bobbo said earlier, if you can rework it, by all means, go ahead :) (12:20:10 PM) ClassBot: AudioFranky asked: How do I know/find the exact Ubuntu source package version against which the original patch submitted created his patch? (12:20:45 PM) nigelb: If a bug was reported via apport, should be there in the bug report. Otherwise, its going to be a bit of guesswork based on version of ubuntu, date of filing, etc (12:21:00 PM) ClassBot: joaopinto asked: are those tags/workflow written somewhere ? (12:21:09 PM) bobbo: You can often check using the date the bug was reported and matching it up with the changelog :) (12:21:22 PM) nigelb: thanks bobbo :) (12:21:41 PM) nigelb: Yes, Review process is documented (12:21:44 PM) bobbo: https://wiki.ubuntu.com/ReviewersTeam/ReviewGuide#Workflow (12:21:47 PM) nigelb: https://wiki.ubuntu.com/ReviewersTeam/ReviewGuide is your friend :) (12:21:59 PM) ClassBot: mythos asked: the ability of the reviewer is never checked, so everybody can review patches? (12:22:38 PM) nigelb: Yes, everyone can review patches. Noone blocks you on anything. There is a team, but not being a member does not block you from contributing. (12:23:02 PM) ClassBot: dupondje asked: when a patch is created for a important bug in for example lucid, and its fixed in maverick, do we still need to review it to get it into lucid then ? (12:23:25 PM) nigelb: It is a case-by-case situation, but this calls for an sru and the sru process (12:23:50 PM) nigelb: often, I've taken up sru for hardy or earlier releases when the patch was there, but it was fixed in a later ubuntu release and everyone forgot about sru (12:23:56 PM) bobbo: sru = Stable Release Update (12:24:43 PM) nigelb: ok, so ClassBot tells me the good news that question queue is empty (12:24:52 PM) nigelb: lets move onto some specfic examples (12:25:07 PM) nigelb: Bug #544242 (12:25:08 PM) ubot2: Launchpad bug 544242 in empathy (Ubuntu) (and 1 other project) "[PATCH] Empathy should allow users to toggle auto-away mode on/off (affects: 1) (heat: 38)" [Wishlist,Fix released] https://launchpad.net/bugs/544242 (12:25:22 PM) nigelb: This bug was opened with a patch provided by the reporter. It was subscribed by the subscription script with the patch tag. (12:25:51 PM) nigelb: The patch was forwarded upstream, and recieved the patch-forwarded-upstream tag (12:26:07 PM) nigelb: After upstream accepted this patch, it recieved the patch-accepted-upstream tag and is ready to be fixed in Ubuntu. (12:26:34 PM) bobbo: Bug #544242 (12:26:35 PM) ubot2: Launchpad bug 544242 in empathy (Ubuntu) (and 1 other project) "[PATCH] Empathy should allow users to toggle auto-away mode on/off (affects: 1) (heat: 38)" [Wishlist,Fix released] https://launchpad.net/bugs/544242 (12:26:59 PM) bobbo: fail (12:27:07 PM) bobbo: Bug #462193 (12:27:08 PM) ubot2: Launchpad bug 462193 in djvulibre (Debian) (and 2 other projects) "djvulibre-bin produces garbage in the root (/man1/*) (affects: 16) (dups: 2) (heat: 56)" [Unknown,Unknown] https://launchpad.net/bugs/462193 (12:27:32 PM) bobbo: This patch only had to go to Debian as the changes only affected the application's packaging (12:27:57 PM) bobbo: it makes non sense in most cases to send patches against the packaging to the upstream as they normally don't touch it at all (12:28:12 PM) bobbo: so it was forwarded to Debian and received patch-forwarded-debian (12:28:20 PM) bobbo: it was then accepted and receive patch-accepted-debian (12:28:45 PM) bobbo: and now we're waiting for the fix to be merged or synced into the Ubuntu archives (12:29:14 PM) bobbo: One last example (12:29:19 PM) ClassBot: joaopinto asked: Once a bug gets patch-accepted-upstream, how do we ensure that the patch is applied to the current development package ? (12:29:36 PM) nigelb: bobbo: finish the example and we'll answer this :) (12:29:41 PM) bobbo: okay :) (12:29:56 PM) bobbo: Bug #33288 (12:30:01 PM) ubot2: Launchpad bug 33288 in poppler (Ubuntu Lucid) (and 2 other projects) "Evince doesn't handle columns properly (affects: 28) (dups: 9) (heat: 191)" [Medium,Fix released] https://launchpad.net/bugs/33288 (12:30:33 PM) nigelb: ah, that was a famous one :) (12:30:40 PM) bobbo: The patch was forwarded upstream, where it was rejected (12:31:12 PM) bobbo: it's now been fixed, however with a different patch (12:31:31 PM) bobbo: </examples> (12:31:40 PM) nigelb: heh, thanks bobbo :) (12:31:48 PM) nigelb: ok, so about the question (12:32:11 PM) nigelb: in our hurry to write this session up, we missed a step, which actually answers the question (12:32:47 PM) nigelb: when you decide to change the tga or comment on the bug, subscribe yourself to the bug. That way you can keep track of the bug. (12:33:21 PM) nigelb: When the patch is accepted upstream, you can either get it into ubuntu directly if its very severe or wait for it to flow downstream (12:33:53 PM) nigelb: But essentially, our mission would be complete, i.e. patches don't rot in launchpad and die (12:34:17 PM) nigelb: Also, contributors who write awesome patches don't get discouraged from writing more code (12:35:01 PM) ClassBot: devildante67 asked: In the last example, the patch has been accepted, but the upstream bug is still set to Confirmed, even with the tag patch-accepted-upstram. How's that possible? (12:35:09 PM) bobbo: I've just checked this up (12:35:19 PM) bobbo: either the upstream bug report simply hasn't been updated (12:36:11 PM) nigelb: the upstream bug hasn't been updated - there is a comment "pushed to git master" (12:36:16 PM) bobbo: or it may be because we have cherry picked our patch from their git repository and they don'[t move from COnfirmed until it's actually been pushed out in a final release (12:36:57 PM) nigelb: joaopinto: To answer your question, you have to take the initiative. (12:37:26 PM) nigelb: If its a main application, talk to desktop team or other subteams if its in their packageset (12:37:34 PM) nigelb: they'll glady welcome the help (12:37:55 PM) nigelb: If its universe, try mailing the DM who's responsible for the package. (12:37:56 PM) bobbo: as long as there is an active package maintainer in Debian, all upstream accepted patches should filter down at some point (12:38:28 PM) nigelb: Now, if there is no active maintainer and the patch is good, you have to do some effort on the debian side (12:39:44 PM) nigelb: If a package is orphaned in debian, you can do a QA upload. (12:39:59 PM) nigelb: You'll need a DD who can sponsor you though. (12:40:24 PM) nigelb: A quick mail to debian-mentors mailing list should help you in that case (12:40:34 PM) bobbo: If you're not a packager, you can tell a MOTU and they'll hopefully keep track of the package for you (12:40:58 PM) nigelb: I'd like to point your attention to a package called galrey (12:41:01 PM) nigelb: http://packages.debian.org/sid/galrey (12:41:01 PM) bobbo: dropping a mail to the MOTU mailing list or shouting in #ubuntu-motu will at least put it onto a packager's radar (12:41:38 PM) nigelb: this package had a patch in ubuntu, its an orphaned package in debian (12:42:08 PM) nigelb: I spoke to a MOTU friend and she recommended uploading to debian directly, since we don't want to carry a diff. (12:42:41 PM) nigelb: A quick hop into oftc, #debian-mentors and in some time it was awaiting sponsorship and the DD who guided me uploaded into the debian archive (12:42:52 PM) nigelb: I put in a sync request and we got into lucid in a few days (12:44:00 PM) nigelb: joaopinto: I'll answer in here for that one (12:44:20 PM) nigelb: joaopinto asked "that's a bit odd, because a bug reporter expects a bug to be fixed for the current release, isn't that the goal of testing development releases :) ?" (12:44:58 PM) nigelb: Expectations are high, but that leads to trouble like diverging from upstream and diverging from debian. (12:45:23 PM) nigelb: If you've every done a 3-way merge, you'll know that we *really* don't want that (12:46:03 PM) nigelb: When packages are synced that's a better use of our time. Even if we don't work on Ubuntu directly at times. (12:46:38 PM) nigelb: Its a bit of a pain, but the reward is much better. More distro's carry the patch and more people have a happy time. (12:46:55 PM) nigelb: joaopinto: does that answer your question to some extent? (12:47:47 PM) nigelb: Anymore questions folks? (12:48:18 PM) nigelb: You see, bobbo and I both lost notes for this session and wrote it in 20 minutes before session started, so its a bit short :) (12:48:19 PM) bobbo: dupondje asked: if a bugreport has status 'incomplete' it has been rejected and doesn't need check anymore? Also 'Fix Commited' means is has been accepted? So no check needed neither ? (12:48:48 PM) nigelb: incomplete = we need more information abaout the bug from the reporter (12:48:49 PM) bobbo: Incomplete means that not enough information has been given in the report and we have asked for more (12:49:01 PM) bobbo: Fix Committed is a bit of an odd one in Ubuntu (12:49:13 PM) bobbo: it can mean many different things and it's often not used correctly (12:49:33 PM) nigelb: and desktop team uses it for a specific purpose which confuses us often. (12:50:19 PM) nigelb: Generally, fixed commited means the fix in repositry, but not yet rolled into a release. (12:50:31 PM) bobbo: basically for patch revirew purposes, it's best to ignore Fix Committed and focus on the patch-* tags on the bug instead (12:50:58 PM) ClassBot: dupondje asked: if a bugreport has status 'incomplete' it has been rejected and doesn't need check anymore? Also 'Fix Commited' means is has been accepted? So no check needed neither ? (12:51:09 PM) nigelb: we did that one :) (12:51:11 PM) bobbo: fail, I can't work classbot (12:51:23 PM) nigelb: heh (12:51:37 PM) bobbo: empty queue, does anyone have any questions for the final 9 minutes? (12:52:22 PM) bobbo: none? Okay then (12:52:37 PM) bobbo: We'd lvoe for you guys to help out reviewing patches and reach the goals of Operation Cleansweep (12:52:49 PM) nigelb: Join us in #ubuntu-reviews (12:52:58 PM) nigelb: talk about it at your loco events (12:53:03 PM) bobbo: if you want more information or would liek some help getting started please feel free to drop into #ubuntu-reviews (12:53:16 PM) nigelb: Help us by reviewing 1 patch a day (12:53:31 PM) nigelb: Also, we have this beautiful progressbar that daker made for us (12:53:46 PM) nigelb: if you can showcase it on your website or blog that would be great (12:54:03 PM) ClassBot: devildante67 asked: Is Operation Cleansweep a Maverick only operation, or do you plan on extending it for future releases? (12:54:30 PM) bobbo: The original plan was to get all 2000 patches reviewed by this cycle's releaase date (12:54:30 PM) nigelb: The focus is on getting unreviewed patches to 0 by maverick release (12:54:55 PM) nigelb: we'll have more patches and then our focus would be keeping it low all the time, reviewing them instantly (12:55:23 PM) bobbo: This i project was started to get rid of the huge pile of patches sitting in LP (12:55:43 PM) bobbo: so that in future, patches will be reviewed much quicker (12:55:56 PM) nigelb: jono just spontaneously came up with the idea (12:56:08 PM) nigelb: (and spontaneously assigned it to me :p) (12:56:33 PM) dholbach: nigelb: you asked for it :) (12:56:43 PM) nigelb: dholbach: heh (12:56:50 PM) ClassBot: ean5533 asked: So who's fault is it that it got this bad? nigelb or bobbo? (12:56:54 PM) nigelb: Well, the situation got bad because we never had a system to deal with it (12:57:16 PM) nigelb: About 6 months back, I was innocently hanging out in #ubuntu-motu and said "I'm bored" (12:57:28 PM) bobbo: (big mistake) (12:57:54 PM) nigelb: yes, in retrospect :p (12:57:54 PM) ClassBot: penguin42 asked: What about patches in debian bug tracking system that fix bugs shared with us? (12:58:14 PM) nigelb: Emmet a.k.a. persia said, "go review patches" and I started writing the workflow which we all perfected. (12:58:14 PM) bobbo: They are essentially patch-forwarded-debian (12:58:34 PM) bobbo: Okay we'd better clear off before the next session (12:58:50 PM) bobbo: thanks for listening and please get involved with Operation Cleansweep! (12:59:23 PM) nigelb: Yes, Thank you folks. I'm not going anywhere though. I'll talk about the "how to forward patches" with pedro :) (12:59:28 PM) pedro_: We're having a bug day for Operation Cleansweep next week so stay tune ;-) |
(12:00:23 PM) didrocks: great! thanks dholbach (12:00:40 PM) didrocks: so, some quick words of presentation first (12:01:03 PM) didrocks: my name is Didier Roche, I'm working in the ubuntu desktop team on updating GNOME and UNE (Ubuntu Netbook Edition) (12:01:27 PM) didrocks: also, as a spare time project with Rick Spencer, I'm hacking on Quickly (12:01:47 PM) didrocks: first question will be from me :) who knows about Quickly? (please answer on -chat) (12:02:22 PM) didrocks: good, the session will be useful so :) (12:02:29 PM) didrocks: a lot of people having no idea what is it (12:02:34 PM) didrocks: So, few words about it (12:02:44 PM) didrocks: Quickly is to bring back fun in development (12:03:16 PM) didrocks: Rick, the person who created the Quickly idea, call it, among other things, an "Application Templating System" (12:03:27 PM) didrocks: the essence of the project is to provide you boiler plate for the kind of program you want to write (12:03:37 PM) didrocks: so the code that you would have to write for every program of a certain type gets generated for you (12:04:02 PM) didrocks: that part is called the "boiler plate" (12:04:11 PM) didrocks: we have different boiler plates right now: (12:04:19 PM) didrocks: ubuntu-application, ubuntu-cli and ubuntu-pygame in lucid (12:04:27 PM) didrocks: but Quickly is also a set of commands (12:04:42 PM) didrocks: the commands are designed to integrate with the Ubuntu Application infrastructure (12:04:52 PM) didrocks: thinks like bzr, launchpad, PPAs, etc.. (12:04:59 PM) didrocks: and the commands are what make all that work (12:05:10 PM) didrocks: The moto of Quickly is "Easy and Fun" (12:05:32 PM) didrocks: while I'll answer to the first set of questions, you can install it (not mandatory to follow the session): sudo apt-get install quickly (12:05:43 PM) didrocks: QUESTION: Is quickly and IDE? (12:05:56 PM) didrocks: no, it's not, it's a Command Line tools, that brings a lot of love (12:06:14 PM) didrocks: the core of Quickly brings advanced shell completion, it will suggest you everytime what to do (12:06:34 PM) didrocks: there is a Quickly API, (in trunk only right now), so if people want to integrate if with any IDE, go go go :) (12:06:49 PM) didrocks: QUESTION: Is it a code generator or is it more like a To-do list? (12:06:57 PM) didrocks: it's generate a boiler plate of code (12:07:00 PM) didrocks: but then, don't touch it (12:07:19 PM) didrocks: let me find a screenshot of what the ubuntu-application template generates for you (12:07:55 PM) didrocks: http://blog.didrocks.fr/public/projects/quickly/.Capture-Myproject_m.jpg (12:08:10 PM) didrocks: this is what you get after the first "create" command (12:08:30 PM) didrocks: you can then modify it to a wide range of applications, there is no more action on the code itself (12:08:45 PM) didrocks: QUESTION: Quickly will be ported to other distros??? (12:08:55 PM) didrocks: applications created with Quickly should work with any distros (12:09:04 PM) didrocks: there is no dependency on Quickly itself (it's not a framework) (12:09:20 PM) didrocks: Quickly itself is being packaged in fedora and gento (12:09:24 PM) didrocks: gentoo (12:09:33 PM) didrocks: we are waiting for templates for them so :) (12:09:44 PM) didrocks: QUESTION: Will quickly create MeeGo/Maemo buildable programs? (12:09:52 PM) didrocks: see above, you just need a template for that :) (12:10:05 PM) didrocks: QUESTION: How does Quickly differ from Acire/python- nippets? (12:10:17 PM) didrocks: well, acire is writtent with Quickly :) (12:10:20 PM) didrocks: written* (12:10:31 PM) didrocks: also, some of you may use Lernid (12:10:35 PM) didrocks: this is another Quickly app (12:11:14 PM) didrocks: so, you can see that Quickly can enables you to create a lot of different apps for different purpose (12:11:16 PM) didrocks: QUESTION: is quickly a ubuntu project or third party project? (12:11:48 PM) didrocks: as of today, the Quickly devs (mostly me, Rick making awesome work on Quickly-Widgets I'll talk about later), uses ubuntu (12:11:54 PM) didrocks: so, we develop templates for ubuntu first (12:12:01 PM) didrocks: but, the project is really template oriented (12:12:09 PM) didrocks: that means, you have no requirement to use python, or ubuntu (12:12:33 PM) didrocks: I'll go on and answer remaining questions then :) (12:13:02 PM) didrocks: so, as some of you have seen, Quickly brings a lot of tools, so downloading can take a while (12:13:10 PM) didrocks: Note that the current version is 0.4.3 on lucid (12:13:27 PM) didrocks: 0.4 brings a lot of news over 0.2, you can see that in previous ubuntu devweek sessions (12:13:47 PM) didrocks: the rest of the class will be in 4 parts: (12:13:51 PM) didrocks: Creating your app (12:13:55 PM) didrocks: Editing the UI (12:13:58 PM) didrocks: Writing Code (12:14:03 PM) didrocks: Packaging and PPAs (12:14:14 PM) didrocks: (so, to answer a question, yes, Quickly creates packages) (12:14:48 PM) didrocks: so, creating an app (12:15:00 PM) didrocks: this is a single command, $ quickly create ubuntu-application <project_name> (12:15:19 PM) didrocks: (for ubuntu-cli, replace ubuntu-application by ubuntu-cli, for ubuntu-pygame, … you understand :)) (12:15:44 PM) didrocks: we support hyphen, spaces and a lot of fun in project_name (12:15:57 PM) didrocks: you can see that Quickly run the application for you (12:16:12 PM) didrocks: so, you already have a complete application ready ! (12:16:29 PM) didrocks: not really fancy, but you have preferences integrations, menus, about box, easter eggs :) (12:16:34 PM) didrocks: all what an application need! (12:17:00 PM) didrocks: (of course, wait for Quickly to be installed to run the command) (12:17:13 PM) didrocks: so, Quickly created a folder for you (12:17:19 PM) didrocks: you can cd into it (12:17:36 PM) didrocks: there, if you use tabulation, you should see that you have access to a lot of commands now (12:17:44 PM) didrocks: I won't enter and details all of them (12:17:50 PM) didrocks: the most important is… testing! (12:17:57 PM) didrocks: quickly run will launch your application (12:18:22 PM) didrocks: then, edit the code: (12:18:23 PM) didrocks: quickly edit (12:18:40 PM) didrocks: this will launch gedit and open all your development files there (12:18:56 PM) didrocks: there, you can remove what you want (like the preferences code), and tweak from the default (12:19:04 PM) didrocks: so, Quickly is opinionated choices (12:19:10 PM) didrocks: those choices are made by the template (12:19:18 PM) didrocks: for instance, in the ubuntu-application template, you have: (12:19:30 PM) didrocks: - python as a language to develop in (12:19:35 PM) didrocks: - glade for editing the GUI (12:19:47 PM) didrocks: - gedit as default editor (you can override this by exporting the EDITOR variable) (12:19:56 PM) didrocks: - pygtk for the toolkit (12:20:05 PM) didrocks: - desktopcouch for storing persistent data (12:20:12 PM) didrocks: - launchpad integration (12:20:28 PM) didrocks: all is chosen for helping you starting with your app (12:20:49 PM) didrocks: then, if you are confident enough and know what you need, you can remove each block you don't want and replace by yours (12:21:00 PM) didrocks: or create your own template even! (12:21:11 PM) didrocks: alucardni | didrocks: you missed bzr for version control ;-) (12:21:14 PM) didrocks: of course bzr :) (12:21:17 PM) didrocks: thanks! (12:21:56 PM) didrocks: the idea is really to drive development and help opportunistic developer to know "where to start" (12:22:02 PM) didrocks: rather than beeing lost in choices (12:22:23 PM) didrocks: for helping starting development too, we have a tutorial: (12:22:25 PM) didrocks: quickly tutorial (12:22:42 PM) didrocks: that will fire up yelp to have a step by step app to develop (12:22:54 PM) didrocks: and I heard that an "ubuntu developer manual" is on the way (12:23:11 PM) didrocks: let's move on, I see some questions, but nothing related to that :) (12:23:31 PM) didrocks: so, editing the UI. (12:23:46 PM) didrocks: as told previously, we use glade for that in the ubuntu-application template (12:23:52 PM) didrocks: to fire it up, just use quickly design (12:24:02 PM) didrocks: glade is really awesome for editing a GUI graphically (12:24:23 PM) didrocks: and really integrates in a easy way with python too (12:24:35 PM) didrocks: QUESTION: what is glade? a short intro about it, please? (12:24:46 PM) didrocks: glade is a tool for building gtk-based UI (12:24:49 PM) didrocks: let me find a screenshot (12:25:05 PM) didrocks: http://glade.gnome.org/images/glade-main-page.png (12:25:24 PM) didrocks: you choose your components and draw them on the application area (12:25:32 PM) didrocks: the quickly tutorial explains the basic of this (12:25:56 PM) didrocks: in fact, Glade is a UI editing tool, that creates the XML you need to describe your windows and widgets (12:26:06 PM) didrocks: don't worry because the quickly template totally handles keeping the code and the XML hooked up (12:26:34 PM) didrocks: if others templates, like kubuntu comes, we assume it won't use glade, obviously :) (12:26:42 PM) didrocks: hence the "design" command to launch it (12:27:09 PM) didrocks: so here are some tips for using Glade if you are new to Glade (12:27:15 PM) didrocks: first, adding widgets works like a fill tool (12:27:22 PM) didrocks: you click the widget you want in the toolbox, and then click where you want it to be on the window (12:27:29 PM) didrocks: the widgets will then fill the space alloted to it (12:27:37 PM) didrocks: to layout the form, you use HBoxes and VBoxes (12:27:48 PM) didrocks: an HBox handles Horizontal layout, and a VBox handles vertical (12:28:00 PM) didrocks: so you will find yourself putting lots of boxes within boxes (12:28:10 PM) didrocks: when you add a widget to a window, you can select it in the "inspector" tree if it is hard to select in the window itself' (12:28:17 PM) didrocks: boxes can be hard to select in the window, for example (12:28:30 PM) didrocks: if a widget is in a box, use the position property in the "Property editor" window in the "packing" tab to change the order (12:28:42 PM) didrocks: you can also set the pack type to start or end to change the order (12:28:51 PM) didrocks: Fill and Expand control sizing (12:28:58 PM) didrocks: while Border and Padding control spacing (12:29:05 PM) didrocks: whenever possible, you should use "Stock" widgets (12:29:11 PM) didrocks: they get translated, the right icons, etc... automatically (12:29:25 PM) didrocks: finally, if you want to add a dialog to your project: (12:29:31 PM) didrocks: 1. close glade (12:29:41 PM) didrocks: 2. run: quickly add dialog <dialog_name> (12:29:45 PM) didrocks: 3. quickly glade (12:29:51 PM) didrocks: ooops (12:29:54 PM) didrocks: quickly design :) (12:30:06 PM) didrocks: quickly glade was in previous version of Quickly (12:30:29 PM) didrocks: this way, Quickly helps you to ship all files to get access to the new window (12:30:57 PM) didrocks: of course, your code can have bugs (12:31:16 PM) didrocks: what's best for debugging than a debugging tool where you can see variable values and such, step by step? (12:31:33 PM) didrocks: Quickly uses winpdb for that. Just run "quickly debug" and you can add breakpoints and such (12:32:21 PM) didrocks: ok, let's say you are happy with your project (12:32:31 PM) didrocks: now, you want to share with someone, or even release? (12:32:39 PM) didrocks: let's say you want to release your first version (12:32:43 PM) didrocks: it's pretty easy, just: (12:32:46 PM) didrocks: $ quickly release (12:33:06 PM) didrocks: this will version your release to YY.MM (the ubuntu way of marking an ubuntu version) (12:33:12 PM) dark is now known as Guest88529 (12:33:23 PM) didrocks: you will be asked to bind with a Launchpad project you created (12:33:40 PM) didrocks: it will licence all your files (default is GPLV3 if you didn't run quickly licence by hand before) (12:34:06 PM) didrocks: it will tag your release, change evertything for your, drop the COPYING files to get a well licensed project (12:34:14 PM) didrocks: push your code to launchpad (12:34:36 PM) didrocks: also, the about box will contain the version of the current release, the credit, the copyright, the url to the project (12:34:57 PM) didrocks: (http://blog.didrocks.fr/public/projects/quickly/Capture-A_propos_de_Slip_Cover.png (12:34:59 PM) didrocks: for instance (12:35:10 PM) didrocks: and all that for free! No need to maintain it manually (12:35:25 PM) didrocks: in addition to that, it will create an ubuntu package (12:35:29 PM) didrocks: detecting all dependencies for you (12:35:56 PM) didrocks: will collect all your "quicky save" messages (quickly save is to take snapshot of your code. For those you know, it triggers a bzr commit) (12:36:15 PM) didrocks: it will upload your package to launchpad, in a ppa for people trying our your application (12:36:44 PM) didrocks: it will also upload your upstream tarball, sign it, push it to launchpad, and make an annoucement with your changes annoucement (12:36:59 PM) didrocks: dotblank | QUESTION: Does quickly walk you through steps with gpg? (12:37:15 PM) didrocks: if you don't have a gpg key already, Quickly will help you to create one (12:37:18 PM) didrocks: (same for ssh) (12:37:35 PM) didrocks: it won't upload it to launchpad yet, we are working with Launchpad guys to get that integrated nicely (12:37:47 PM) didrocks: in any case, it will tell you before uploading if something got wrong :) (12:37:58 PM) didrocks: QUESTION: is it possible to change the way of versioning e.g. to 0.0.1 as fist build? (12:38:04 PM) didrocks: just run quickly release 0.0.1 (12:38:21 PM) didrocks: then, you have to specify manually at each release the version number (12:38:45 PM) didrocks: but YY.MM is really the short approach and avoid a lot of collision :) (12:39:03 PM) didrocks: so, in a nutshell, in two commands: (12:39:11 PM) didrocks: quickly create ubuntu-application foo (12:39:13 PM) didrocks: quickly release (12:39:33 PM) didrocks: I have a licenced project, pushed to launchpad, with tarballs, announces and ubuntu package to share to the world! (12:39:56 PM) didrocks: sometimes, you maybe want to get some testing (12:40:08 PM) didrocks: and not release really to get people testing this (12:40:16 PM) didrocks: for local testing, you can use: (12:40:18 PM) didrocks: quickly package (12:40:29 PM) didrocks: this will create a package in your directory that you can install (12:40:37 PM) didrocks: for sharing in a ppa, use instead: quickly share (12:40:48 PM) didrocks: this won't change anything, won't licence your project, won't upload tarball (12:40:55 PM) didrocks: but at least, you can get some testing :) (12:41:11 PM) didrocks: QUESTION: does quickly package (version here) also work in order to force a version? (12:41:34 PM) didrocks: of course, but think that you can't upload to your ppa a version with a lower version than previous upload (12:42:00 PM) didrocks: you will see that there are a lot of other commands to manipulate your project (12:42:29 PM) didrocks: like quickly configure to configure the ppa you want to upload, the bzr branch where you want to push/pull, additional dependencies that you want to add… (12:43:02 PM) didrocks: if you use shell completion on license, you will see that we support a wide range of licence too. Adding a new one (or a custom is really easy) (12:43:21 PM) didrocks: last part I want to discuss is Quickly widgets before taking the bunch of pending questions :) (12:43:35 PM) didrocks: so, quickly widgets are widgets that help you to make your life easy (12:43:43 PM) didrocks: contrary to Quickly, this is for python only (12:44:11 PM) didrocks: in one line of code, you can show a dialog asking for a question and get the answer (12:44:25 PM) didrocks: this is generally taking 6-8 lines of codes (12:44:34 PM) didrocks: in 5 lines, you can get a CouchGrid (12:44:57 PM) didrocks: you can imagine that as a tabular, where you can store persistent information, synchronised between your use (using couchdb) (12:45:03 PM) didrocks: hosts* (12:45:27 PM) didrocks: it will detect for you the type of your column, you can add a filter in two lines, and such (12:45:44 PM) didrocks: this is really really great stuff and avoiding copying 50-60 lines from random websites (12:46:00 PM) didrocks: quickly-widgets come with a lot of widget (12:46:11 PM) didrocks: QUESTION: Where can we find information about Quiqly-widgets (couch-grid etc)? (12:46:30 PM) didrocks: as Rick is the main developer, you can find a lot of fun videos over the web (12:46:49 PM) didrocks: http://theravingrick.blogspot.com/ is your central info place (12:47:08 PM) didrocks: ok, taking questions now :) (12:47:15 PM) didrocks: let me a second to take them one by one (12:47:43 PM) didrocks: QUESTION: Say I don't need the preferences dialog in my project can I delete it from the project? (12:47:58 PM) didrocks: exactly, as told previously, you can remove any part of the code you don't want really easily (12:48:08 PM) didrocks: this is mainly for the preferences dialog removing a file and call to it (12:48:22 PM) didrocks: QUESTION: Is template creation difficult? (12:48:37 PM) didrocks: not at all, I've even written a tutorial on that (12:48:39 PM) didrocks: one sec (12:49:15 PM) didrocks: http://blog.didrocks.fr/index.php/post/Build-your-application-quickly-with-Quickly%3A-Inside-Quickly-part-6 (12:49:45 PM) didrocks: in general this set of 9 blog posts give you everything you need to know about Quickly http://blog.didrocks.fr/index.php/post/Build-your-application-quickly-with-Quickly%3A-part1 (12:50:03 PM) didrocks: but this was about Quickly 0.2, we have 0.4.X now (12:50:09 PM) didrocks: so I wrote some updates: http://blog.didrocks.fr/index.php/post/Quickly-0.4-available-in-lucid%21 (12:50:20 PM) didrocks: if you want to build a template upon an existing template (12:50:33 PM) didrocks: like ubuntu-cli sharing a lot in common with ubuntu-application (12:50:38 PM) didrocks: your can import commands between template (12:50:42 PM) didrocks: templates* (12:50:50 PM) didrocks: for instance, ubuntu-cli is really 0 line of code! (12:51:02 PM) didrocks: I just import every commands I need from ubuntu-application template (12:51:20 PM) didrocks: (apart from design which makes no sense for a command line application), and add dialog (12:51:32 PM) didrocks: so, it's really easy to create a template :) (12:51:55 PM) didrocks: you can even wrote you template in perl with some C boiler plate if you want some fun (12:52:01 PM) didrocks: Quickly is language agnostic (12:52:11 PM) didrocks: that comes to the question: (12:52:12 PM) didrocks: QUESTION: what is the difference between gambas and quickly? (12:52:25 PM) didrocks: gambas is (AFAIK), really binded with python (12:52:37 PM) didrocks: Quickly is written in python but template can be whatever you want (12:52:46 PM) didrocks: also gambas doesn't handle packaging and such (12:53:00 PM) didrocks: Quickly is really "helping your developping your project from start to the end" (12:53:22 PM) didrocks: QUESTION: Can quickly use existing source code? (12:53:37 PM) didrocks: sure, bughugger, another quickly project wasn't written for Quickly first (12:53:56 PM) didrocks: but migrate it to Quickly took half an hour approximately (12:54:10 PM) didrocks: it's just moving files in the right folder and add some glue (12:54:17 PM) didrocks: you won't get automatically launchpad integration for instance (12:54:39 PM) didrocks: (when you release your project with Quickly, project get integration like "Help on/Report a bug" in the help menu) (12:54:50 PM) didrocks: but you will get all the rest for free, which is already a lot :) (12:54:59 PM) didrocks: QUESTION: How hard is it to remove the couchdb support from the template? (12:55:01 PM) didrocks: hmm (12:55:15 PM) didrocks: I would say it's basically removing the preferences dialog (12:55:21 PM) didrocks: so, not hard at all :) (12:55:31 PM) didrocks: QUESTION: we CAN create templates for templates then? (12:55:55 PM) didrocks: sure, I don't see the point as quickly quickly <origin_template> <dest_template> already help you to create subtemplates (12:56:11 PM) didrocks: it's copying to ~/quickly-templates all what you need (12:56:35 PM) didrocks: I think that's it for question. If I forget some, yell (12:56:41 PM) didrocks: in the remaining times, some links: (12:57:01 PM) didrocks: - so, the blog post I posted before http://blog.didrocks.fr/index.php/post/Build-your-application-quickly-with-Quickly%3A-part1 and http://blog.didrocks.fr/index.php/post/Quickly-0.4-available-in-lucid%21) (12:57:15 PM) didrocks: - https://launchpad.net/quickly of course (12:57:27 PM) didrocks: - #quickly on freenode for support and development on Quickly (12:57:43 PM) didrocks: also, some reviews on 0.2 version: (12:57:46 PM) didrocks: - http://lwn.net/Articles/351522/ (12:57:52 PM) didrocks: - http://arstechnica.com/open-source/news/2009/08/quickly-new-rails-like-rapid-development-tools-for-ubuntu.ars (12:57:58 PM) didrocks: - http://www.maximumpc.com/article/news/canonical_releases_quickly_framework_speed_linux_app_development (12:58:14 PM) didrocks: we got some good contributions and I want to thank everyone helping to make Quickly better (12:58:32 PM) didrocks: (approximately 10 different people have contributed to the code so far, it's already a lot!) (12:58:49 PM) didrocks: hope that you can join, we don't bite and share the fun developping :) (12:59:24 PM) didrocks: I guess now, it's vish's who will explain you how to help Ubuntu in a night! |
Dev Week -- Create an application for Ubuntu with Quickly -- didrocks -- Thu, Jul 15th, 2010
(12:00:23 PM) didrocks: great! thanks dholbach (12:00:40 PM) didrocks: so, some quick words of presentation first (12:01:03 PM) didrocks: my name is Didier Roche, I'm working in the ubuntu desktop team on updating GNOME and UNE (Ubuntu Netbook Edition) (12:01:27 PM) didrocks: also, as a spare time project with Rick Spencer, I'm hacking on Quickly (12:01:47 PM) didrocks: first question will be from me :) who knows about Quickly? (please answer on -chat) (12:02:22 PM) didrocks: good, the session will be useful so :) (12:02:29 PM) didrocks: a lot of people having no idea what is it (12:02:34 PM) didrocks: So, few words about it (12:02:44 PM) didrocks: Quickly is to bring back fun in development (12:03:16 PM) didrocks: Rick, the person who created the Quickly idea, call it, among other things, an "Application Templating System" (12:03:27 PM) didrocks: the essence of the project is to provide you boiler plate for the kind of program you want to write (12:03:37 PM) didrocks: so the code that you would have to write for every program of a certain type gets generated for you (12:04:02 PM) didrocks: that part is called the "boiler plate" (12:04:11 PM) didrocks: we have different boiler plates right now: (12:04:19 PM) didrocks: ubuntu-application, ubuntu-cli and ubuntu-pygame in lucid (12:04:27 PM) didrocks: but Quickly is also a set of commands (12:04:42 PM) didrocks: the commands are designed to integrate with the Ubuntu Application infrastructure (12:04:52 PM) didrocks: thinks like bzr, launchpad, PPAs, etc.. (12:04:59 PM) didrocks: and the commands are what make all that work (12:05:10 PM) didrocks: The moto of Quickly is "Easy and Fun" (12:05:32 PM) didrocks: while I'll answer to the first set of questions, you can install it (not mandatory to follow the session): sudo apt-get install quickly (12:05:43 PM) didrocks: QUESTION: Is quickly and IDE? (12:05:56 PM) didrocks: no, it's not, it's a Command Line tools, that brings a lot of love (12:06:14 PM) didrocks: the core of Quickly brings advanced shell completion, it will suggest you everytime what to do (12:06:34 PM) didrocks: there is a Quickly API, (in trunk only right now), so if people want to integrate if with any IDE, go go go :) (12:06:49 PM) didrocks: QUESTION: Is it a code generator or is it more like a To-do list? (12:06:57 PM) didrocks: it's generate a boiler plate of code (12:07:00 PM) didrocks: but then, don't touch it (12:07:19 PM) didrocks: let me find a screenshot of what the ubuntu-application template generates for you (12:07:55 PM) didrocks: http://blog.didrocks.fr/public/projects/quickly/.Capture-Myproject_m.jpg (12:08:10 PM) didrocks: this is what you get after the first "create" command (12:08:30 PM) didrocks: you can then modify it to a wide range of applications, there is no more action on the code itself (12:08:45 PM) didrocks: QUESTION: Quickly will be ported to other distros??? (12:08:55 PM) didrocks: applications created with Quickly should work with any distros (12:09:04 PM) didrocks: there is no dependency on Quickly itself (it's not a framework) (12:09:20 PM) didrocks: Quickly itself is being packaged in fedora and gento (12:09:24 PM) didrocks: gentoo (12:09:33 PM) didrocks: we are waiting for templates for them so :) (12:09:44 PM) didrocks: QUESTION: Will quickly create MeeGo/Maemo buildable programs? (12:09:52 PM) didrocks: see above, you just need a template for that :) (12:10:05 PM) didrocks: QUESTION: How does Quickly differ from Acire/python- nippets? (12:10:17 PM) didrocks: well, acire is writtent with Quickly :) (12:10:20 PM) didrocks: written* (12:10:31 PM) didrocks: also, some of you may use Lernid (12:10:35 PM) didrocks: this is another Quickly app (12:11:14 PM) didrocks: so, you can see that Quickly can enables you to create a lot of different apps for different purpose (12:11:16 PM) didrocks: QUESTION: is quickly a ubuntu project or third party project? (12:11:48 PM) didrocks: as of today, the Quickly devs (mostly me, Rick making awesome work on Quickly-Widgets I'll talk about later), uses ubuntu (12:11:54 PM) didrocks: so, we develop templates for ubuntu first (12:12:01 PM) didrocks: but, the project is really template oriented (12:12:09 PM) didrocks: that means, you have no requirement to use python, or ubuntu (12:12:33 PM) didrocks: I'll go on and answer remaining questions then :) (12:13:02 PM) didrocks: so, as some of you have seen, Quickly brings a lot of tools, so downloading can take a while (12:13:10 PM) didrocks: Note that the current version is 0.4.3 on lucid (12:13:27 PM) didrocks: 0.4 brings a lot of news over 0.2, you can see that in previous ubuntu devweek sessions (12:13:47 PM) didrocks: the rest of the class will be in 4 parts: (12:13:51 PM) didrocks: Creating your app (12:13:55 PM) didrocks: Editing the UI (12:13:58 PM) didrocks: Writing Code (12:14:03 PM) didrocks: Packaging and PPAs (12:14:14 PM) didrocks: (so, to answer a question, yes, Quickly creates packages) (12:14:48 PM) didrocks: so, creating an app (12:15:00 PM) didrocks: this is a single command, $ quickly create ubuntu-application <project_name> (12:15:19 PM) didrocks: (for ubuntu-cli, replace ubuntu-application by ubuntu-cli, for ubuntu-pygame, … you understand :)) (12:15:44 PM) didrocks: we support hyphen, spaces and a lot of fun in project_name (12:15:57 PM) didrocks: you can see that Quickly run the application for you (12:16:12 PM) didrocks: so, you already have a complete application ready ! (12:16:29 PM) didrocks: not really fancy, but you have preferences integrations, menus, about box, easter eggs :) (12:16:34 PM) didrocks: all what an application need! (12:17:00 PM) didrocks: (of course, wait for Quickly to be installed to run the command) (12:17:13 PM) didrocks: so, Quickly created a folder for you (12:17:19 PM) didrocks: you can cd into it (12:17:36 PM) didrocks: there, if you use tabulation, you should see that you have access to a lot of commands now (12:17:44 PM) didrocks: I won't enter and details all of them (12:17:50 PM) didrocks: the most important is… testing! (12:17:57 PM) didrocks: quickly run will launch your application (12:18:22 PM) didrocks: then, edit the code: (12:18:23 PM) didrocks: quickly edit (12:18:40 PM) didrocks: this will launch gedit and open all your development files there (12:18:56 PM) didrocks: there, you can remove what you want (like the preferences code), and tweak from the default (12:19:04 PM) didrocks: so, Quickly is opinionated choices (12:19:10 PM) didrocks: those choices are made by the template (12:19:18 PM) didrocks: for instance, in the ubuntu-application template, you have: (12:19:30 PM) didrocks: - python as a language to develop in (12:19:35 PM) didrocks: - glade for editing the GUI (12:19:47 PM) didrocks: - gedit as default editor (you can override this by exporting the EDITOR variable) (12:19:56 PM) didrocks: - pygtk for the toolkit (12:20:05 PM) didrocks: - desktopcouch for storing persistent data (12:20:12 PM) didrocks: - launchpad integration (12:20:28 PM) didrocks: all is chosen for helping you starting with your app (12:20:49 PM) didrocks: then, if you are confident enough and know what you need, you can remove each block you don't want and replace by yours (12:21:00 PM) didrocks: or create your own template even! (12:21:11 PM) didrocks: alucardni | didrocks: you missed bzr for version control ;-) (12:21:14 PM) didrocks: of course bzr :) (12:21:17 PM) didrocks: thanks! (12:21:56 PM) didrocks: the idea is really to drive development and help opportunistic developer to know "where to start" (12:22:02 PM) didrocks: rather than beeing lost in choices (12:22:23 PM) didrocks: for helping starting development too, we have a tutorial: (12:22:25 PM) didrocks: quickly tutorial (12:22:42 PM) didrocks: that will fire up yelp to have a step by step app to develop (12:22:54 PM) didrocks: and I heard that an "ubuntu developer manual" is on the way (12:23:11 PM) didrocks: let's move on, I see some questions, but nothing related to that :) (12:23:31 PM) didrocks: so, editing the UI. (12:23:46 PM) didrocks: as told previously, we use glade for that in the ubuntu-application template (12:23:52 PM) didrocks: to fire it up, just use quickly design (12:24:02 PM) didrocks: glade is really awesome for editing a GUI graphically (12:24:23 PM) didrocks: and really integrates in a easy way with python too (12:24:35 PM) didrocks: QUESTION: what is glade? a short intro about it, please? (12:24:46 PM) didrocks: glade is a tool for building gtk-based UI (12:24:49 PM) didrocks: let me find a screenshot (12:25:05 PM) didrocks: http://glade.gnome.org/images/glade-main-page.png (12:25:24 PM) didrocks: you choose your components and draw them on the application area (12:25:32 PM) didrocks: the quickly tutorial explains the basic of this (12:25:56 PM) didrocks: in fact, Glade is a UI editing tool, that creates the XML you need to describe your windows and widgets (12:26:06 PM) didrocks: don't worry because the quickly template totally handles keeping the code and the XML hooked up (12:26:34 PM) didrocks: if others templates, like kubuntu comes, we assume it won't use glade, obviously :) (12:26:42 PM) didrocks: hence the "design" command to launch it (12:27:09 PM) didrocks: so here are some tips for using Glade if you are new to Glade (12:27:15 PM) didrocks: first, adding widgets works like a fill tool (12:27:22 PM) didrocks: you click the widget you want in the toolbox, and then click where you want it to be on the window (12:27:29 PM) didrocks: the widgets will then fill the space alloted to it (12:27:37 PM) didrocks: to layout the form, you use HBoxes and VBoxes (12:27:48 PM) didrocks: an HBox handles Horizontal layout, and a VBox handles vertical (12:28:00 PM) didrocks: so you will find yourself putting lots of boxes within boxes (12:28:10 PM) didrocks: when you add a widget to a window, you can select it in the "inspector" tree if it is hard to select in the window itself' (12:28:17 PM) didrocks: boxes can be hard to select in the window, for example (12:28:30 PM) didrocks: if a widget is in a box, use the position property in the "Property editor" window in the "packing" tab to change the order (12:28:42 PM) didrocks: you can also set the pack type to start or end to change the order (12:28:51 PM) didrocks: Fill and Expand control sizing (12:28:58 PM) didrocks: while Border and Padding control spacing (12:29:05 PM) didrocks: whenever possible, you should use "Stock" widgets (12:29:11 PM) didrocks: they get translated, the right icons, etc... automatically (12:29:25 PM) didrocks: finally, if you want to add a dialog to your project: (12:29:31 PM) didrocks: 1. close glade (12:29:41 PM) didrocks: 2. run: quickly add dialog <dialog_name> (12:29:45 PM) didrocks: 3. quickly glade (12:29:51 PM) didrocks: ooops (12:29:54 PM) didrocks: quickly design :) (12:30:06 PM) didrocks: quickly glade was in previous version of Quickly (12:30:29 PM) didrocks: this way, Quickly helps you to ship all files to get access to the new window (12:30:57 PM) didrocks: of course, your code can have bugs (12:31:16 PM) didrocks: what's best for debugging than a debugging tool where you can see variable values and such, step by step? (12:31:33 PM) didrocks: Quickly uses winpdb for that. Just run "quickly debug" and you can add breakpoints and such (12:32:21 PM) didrocks: ok, let's say you are happy with your project (12:32:31 PM) didrocks: now, you want to share with someone, or even release? (12:32:39 PM) didrocks: let's say you want to release your first version (12:32:43 PM) didrocks: it's pretty easy, just: (12:32:46 PM) didrocks: $ quickly release (12:33:06 PM) didrocks: this will version your release to YY.MM (the ubuntu way of marking an ubuntu version) (12:33:12 PM) dark is now known as Guest88529 (12:33:23 PM) didrocks: you will be asked to bind with a Launchpad project you created (12:33:40 PM) didrocks: it will licence all your files (default is GPLV3 if you didn't run quickly licence by hand before) (12:34:06 PM) didrocks: it will tag your release, change evertything for your, drop the COPYING files to get a well licensed project (12:34:14 PM) didrocks: push your code to launchpad (12:34:36 PM) didrocks: also, the about box will contain the version of the current release, the credit, the copyright, the url to the project (12:34:57 PM) didrocks: (http://blog.didrocks.fr/public/projects/quickly/Capture-A_propos_de_Slip_Cover.png (12:34:59 PM) didrocks: for instance (12:35:10 PM) didrocks: and all that for free! No need to maintain it manually (12:35:25 PM) didrocks: in addition to that, it will create an ubuntu package (12:35:29 PM) didrocks: detecting all dependencies for you (12:35:56 PM) didrocks: will collect all your "quicky save" messages (quickly save is to take snapshot of your code. For those you know, it triggers a bzr commit) (12:36:15 PM) didrocks: it will upload your package to launchpad, in a ppa for people trying our your application (12:36:44 PM) didrocks: it will also upload your upstream tarball, sign it, push it to launchpad, and make an annoucement with your changes annoucement (12:36:59 PM) didrocks: dotblank | QUESTION: Does quickly walk you through steps with gpg? (12:37:15 PM) didrocks: if you don't have a gpg key already, Quickly will help you to create one (12:37:18 PM) didrocks: (same for ssh) (12:37:35 PM) didrocks: it won't upload it to launchpad yet, we are working with Launchpad guys to get that integrated nicely (12:37:47 PM) didrocks: in any case, it will tell you before uploading if something got wrong :) (12:37:58 PM) didrocks: QUESTION: is it possible to change the way of versioning e.g. to 0.0.1 as fist build? (12:38:04 PM) didrocks: just run quickly release 0.0.1 (12:38:21 PM) didrocks: then, you have to specify manually at each release the version number (12:38:45 PM) didrocks: but YY.MM is really the short approach and avoid a lot of collision :) (12:39:03 PM) didrocks: so, in a nutshell, in two commands: (12:39:11 PM) didrocks: quickly create ubuntu-application foo (12:39:13 PM) didrocks: quickly release (12:39:33 PM) didrocks: I have a licenced project, pushed to launchpad, with tarballs, announces and ubuntu package to share to the world! (12:39:56 PM) didrocks: sometimes, you maybe want to get some testing (12:40:08 PM) didrocks: and not release really to get people testing this (12:40:16 PM) didrocks: for local testing, you can use: (12:40:18 PM) didrocks: quickly package (12:40:29 PM) didrocks: this will create a package in your directory that you can install (12:40:37 PM) didrocks: for sharing in a ppa, use instead: quickly share (12:40:48 PM) didrocks: this won't change anything, won't licence your project, won't upload tarball (12:40:55 PM) didrocks: but at least, you can get some testing :) (12:41:11 PM) didrocks: QUESTION: does quickly package (version here) also work in order to force a version? (12:41:34 PM) didrocks: of course, but think that you can't upload to your ppa a version with a lower version than previous upload (12:42:00 PM) didrocks: you will see that there are a lot of other commands to manipulate your project (12:42:29 PM) didrocks: like quickly configure to configure the ppa you want to upload, the bzr branch where you want to push/pull, additional dependencies that you want to add… (12:43:02 PM) didrocks: if you use shell completion on license, you will see that we support a wide range of licence too. Adding a new one (or a custom is really easy) (12:43:21 PM) didrocks: last part I want to discuss is Quickly widgets before taking the bunch of pending questions :) (12:43:35 PM) didrocks: so, quickly widgets are widgets that help you to make your life easy (12:43:43 PM) didrocks: contrary to Quickly, this is for python only (12:44:11 PM) didrocks: in one line of code, you can show a dialog asking for a question and get the answer (12:44:25 PM) didrocks: this is generally taking 6-8 lines of codes (12:44:34 PM) didrocks: in 5 lines, you can get a CouchGrid (12:44:57 PM) didrocks: you can imagine that as a tabular, where you can store persistent information, synchronised between your use (using couchdb) (12:45:03 PM) didrocks: hosts* (12:45:27 PM) didrocks: it will detect for you the type of your column, you can add a filter in two lines, and such (12:45:44 PM) didrocks: this is really really great stuff and avoiding copying 50-60 lines from random websites (12:46:00 PM) didrocks: quickly-widgets come with a lot of widget (12:46:11 PM) didrocks: QUESTION: Where can we find information about Quiqly-widgets (couch-grid etc)? (12:46:30 PM) didrocks: as Rick is the main developer, you can find a lot of fun videos over the web (12:46:49 PM) didrocks: http://theravingrick.blogspot.com/ is your central info place (12:47:08 PM) didrocks: ok, taking questions now :) (12:47:15 PM) didrocks: let me a second to take them one by one (12:47:43 PM) didrocks: QUESTION: Say I don't need the preferences dialog in my project can I delete it from the project? (12:47:58 PM) didrocks: exactly, as told previously, you can remove any part of the code you don't want really easily (12:48:08 PM) didrocks: this is mainly for the preferences dialog removing a file and call to it (12:48:22 PM) didrocks: QUESTION: Is template creation difficult? (12:48:37 PM) didrocks: not at all, I've even written a tutorial on that (12:48:39 PM) didrocks: one sec (12:49:15 PM) didrocks: http://blog.didrocks.fr/index.php/post/Build-your-application-quickly-with-Quickly%3A-Inside-Quickly-part-6 (12:49:45 PM) didrocks: in general this set of 9 blog posts give you everything you need to know about Quickly http://blog.didrocks.fr/index.php/post/Build-your-application-quickly-with-Quickly%3A-part1 (12:50:03 PM) didrocks: but this was about Quickly 0.2, we have 0.4.X now (12:50:09 PM) didrocks: so I wrote some updates: http://blog.didrocks.fr/index.php/post/Quickly-0.4-available-in-lucid%21 (12:50:20 PM) didrocks: if you want to build a template upon an existing template (12:50:33 PM) didrocks: like ubuntu-cli sharing a lot in common with ubuntu-application (12:50:38 PM) didrocks: your can import commands between template (12:50:42 PM) didrocks: templates* (12:50:50 PM) didrocks: for instance, ubuntu-cli is really 0 line of code! (12:51:02 PM) didrocks: I just import every commands I need from ubuntu-application template (12:51:20 PM) didrocks: (apart from design which makes no sense for a command line application), and add dialog (12:51:32 PM) didrocks: so, it's really easy to create a template :) (12:51:55 PM) didrocks: you can even wrote you template in perl with some C boiler plate if you want some fun (12:52:01 PM) didrocks: Quickly is language agnostic (12:52:11 PM) didrocks: that comes to the question: (12:52:12 PM) didrocks: QUESTION: what is the difference between gambas and quickly? (12:52:25 PM) didrocks: gambas is (AFAIK), really binded with python (12:52:37 PM) didrocks: Quickly is written in python but template can be whatever you want (12:52:46 PM) didrocks: also gambas doesn't handle packaging and such (12:53:00 PM) didrocks: Quickly is really "helping your developping your project from start to the end" (12:53:22 PM) didrocks: QUESTION: Can quickly use existing source code? (12:53:37 PM) didrocks: sure, bughugger, another quickly project wasn't written for Quickly first (12:53:56 PM) didrocks: but migrate it to Quickly took half an hour approximately (12:54:10 PM) didrocks: it's just moving files in the right folder and add some glue (12:54:17 PM) didrocks: you won't get automatically launchpad integration for instance (12:54:39 PM) didrocks: (when you release your project with Quickly, project get integration like "Help on/Report a bug" in the help menu) (12:54:50 PM) didrocks: but you will get all the rest for free, which is already a lot :) (12:54:59 PM) didrocks: QUESTION: How hard is it to remove the couchdb support from the template? (12:55:01 PM) didrocks: hmm (12:55:15 PM) didrocks: I would say it's basically removing the preferences dialog (12:55:21 PM) didrocks: so, not hard at all :) (12:55:31 PM) didrocks: QUESTION: we CAN create templates for templates then? (12:55:55 PM) didrocks: sure, I don't see the point as quickly quickly <origin_template> <dest_template> already help you to create subtemplates (12:56:11 PM) didrocks: it's copying to ~/quickly-templates all what you need (12:56:35 PM) didrocks: I think that's it for question. If I forget some, yell (12:56:41 PM) didrocks: in the remaining times, some links: (12:57:01 PM) didrocks: - so, the blog post I posted before http://blog.didrocks.fr/index.php/post/Build-your-application-quickly-with-Quickly%3A-part1 and http://blog.didrocks.fr/index.php/post/Quickly-0.4-available-in-lucid%21) (12:57:15 PM) didrocks: - https://launchpad.net/quickly of course (12:57:27 PM) didrocks: - #quickly on freenode for support and development on Quickly (12:57:43 PM) didrocks: also, some reviews on 0.2 version: (12:57:46 PM) didrocks: - http://lwn.net/Articles/351522/ (12:57:52 PM) didrocks: - http://arstechnica.com/open-source/news/2009/08/quickly-new-rails-like-rapid-development-tools-for-ubuntu.ars (12:57:58 PM) didrocks: - http://www.maximumpc.com/article/news/canonical_releases_quickly_framework_speed_linux_app_development (12:58:14 PM) didrocks: we got some good contributions and I want to thank everyone helping to make Quickly better (12:58:32 PM) didrocks: (approximately 10 different people have contributed to the code so far, it's already a lot!) (12:58:49 PM) didrocks: hope that you can join, we don't bite and share the fun developping :) (12:59:24 PM) didrocks: I guess now, it's vish's who will explain you how to help Ubuntu in a night!
MeetingLogs/devweek1007/QuicklyApp (last edited 2010-07-15 20:43:32 by pool-71-123-28-183)