/srv/irclogs.ubuntu.com/2010/07/14/#ubuntu-classroom.txt

=== Andre_Gondim-afk is now known as Andre_Gondim
=== maco is now known as maco2
=== stingernewt is now known as damionloop
=== IAmNotThatGuy is now known as mohi1
=== mohi1 is now known as 15SAAJGOH
=== IAmNotThatGuy is now known as mohi1
=== nhandler_ is now known as nhandler
=== IAmNotThatGuy is now known as mohi1
abhijainabhi_nav: hello12:14
abhi_navhi abhijain12:14
abhijainactully when  i am on ubuntu prefrences window and try to connect devices >connect no connecticvity with my account12:15
abhi_navabhijain, but why are you here? this is not the channel to ask question? come in #Ubuntu12:16
=== pjarnahomzz is now known as pjarnahom
maja87hi15:03
=== abhi_nav_ is now known as abhi_nav
=== abhi_nav_ is now known as abhi_nav
dholbachhttps://wiki.ubuntu.com/UbuntuDeveloperWeek Day 3 about to start in 19 minutes in #ubuntu-classroom16:41
=== Hutley is now known as Guest76305
dholbachHELLO EVERYBODY, WELCOME TO DAY 3 of UBUNTU DEVELOPER WEEK!16:57
dholbachbefore our first session of today kicks off, just a few organisational things, as usual16:57
dholbachif you made it here, that's great, plus please also join #ubuntu-classroom-chat, which is where you can ask questions (yes, lernid does that for you already)16:57
dholbachwhen you ask questions, please prefix them with QUESTION:, so they stick out16:58
dholbachie: QUESTION: What kind of music does Jorge Castro like?16:58
dholbachetc16:58
dholbachhttps://wiki.ubuntu.com/UbuntuDeveloperWeek/Sessions has some description of all the upcoming sessions, plus also if you need to prepare for them somehow16:58
delcoyotehi16:58
dholbachif you didn't get to see all the other sessions, check out https://wiki.ubuntu.com/UbuntuDeveloperWeek - the logs are linked from there16:59
dholbachfirst on stage are Nigel Babu and David Futcher - enjoy their session about Operation Cleansweep and Patch Review with them17:00
nigelbthanks dholbach :)17:00
bobbothanks daniel :)17:00
=== ChanServ changed the topic of #ubuntu-classroom to: Welcome to the Ubuntu Classroom - https://wiki.ubuntu.com/Classroom || Support in #ubuntu || Upcoming Schedule: http://is.gd/8rtIi || Questions in #ubuntu-classroom-chat || Event: Ubuntu Developer Week - Current Session: Operation Cleansweep - Reviewing Patches - Instructors: nigelb, bobbo
nigelbok! Now, we're kicking17:01
nigelbHello everyone, I'm Nigel and with me is David.  We're going to talk about patch review.17:01
* bobbo waves17:01
nigelbI'd like you all to take a look at https://wiki.ubuntu.com/OperationCleansweep17:01
nigelbThis cycle, this is a very critical operation that we'd like to see carried out.  As you can read17:01
nigelbThis cycle, this is a very critical operation that we'd like to see carried out.  As you can read17:01
nigelbgrr17:02
nigelbin the wiki page, operation cleansweep is about reviewing all the bugs in Launchpad against the Ubuntu project which have a patch attached.17:02
nigelb(sorry folks, paste fail ;)17:02
nigelbWe 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.17:02
nigelbIts 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!17:02
bobboSo how can you help out with patch reviews?17:03
bobboWe have a script which automatically finds bugs with patches that need reviewing17:03
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 in17:03
bobboThe script subscribes us to all Ubuntu bugs with a patch attached minus the packages that we exclude (https://wiki.ubuntu.com/ReviewersTeam/ExcludingPackages)17:03
bobboThe first step to reviewing patches is to look at the current work queue.17:04
bobboWe've got a big Launchpad query which filters out all the reviewed patches and just shows the ones we need to look at17:04
bobboYou can find the bug list at http://tinyurl.com/2u7kf3b17:05
bobboAS you can see was have currently around 1500 bugs in the unreviewed queue17:05
bobboThose are bugs that have patches that need to be reviewed and we haven't gotten around to do17:06
bobboJust for perspective, we started out with just under 2000 bugs in that list17:06
bobboYeah, we're getting there, but unfortunately new patches are added every day!  We get almost 100 new patches a month, maybe more.17:06
bobboalso nigelb's laptop just broke, so that's slowing us down too :D17:06
nigelbheh, its getting fixed :)17:07
nigelbWe'll quickly summarize the process and we will show you some specific examples to get a better grasp of the idea.17:07
nigelbCan all of us open the review guide?  Its at https://wiki.ubuntu.com/ReviewersTeam/ReviewGuide17:07
nigelbSo now you have the list of bugs.  Pick a bug to work on.17:07
nigelbOnce 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.17:08
nigelbNo point of the patch if the bug is already solved.  Close the bug as "Fix Released"17:08
nigelbIf the bug is reproducible, the next step is to check if the patch applies.17:08
nigelbIf the patch is old, the source may have changed so much that the patch does not apply any longer.17:09
=== daker_ is now known as daker
nigelbIf 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 patch17:09
nigelband ask the original author if he can re-write the patch.17:09
bobbof you can make sense of the code enough to correct, that would be even more great17:10
bobbofail, If*17:10
bobboThis bug though will be off our list since we can't work with the patch unless its reworked.17:11
bobboIf the patch applies and the bug still exists, we need to check if it fixes the bug.17:11
bobboAgain, no point in a patch if the bug is present after applying the patch and run the program again.17:11
bobboIf the patch works, we have a few options17:12
bobboIdeally 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 regressions17:12
bobboAlso, since upstream is the original author of the code, they have a good idea of what makes sense.17:13
nigelbEncourage 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.17:13
nigelbThis helps us keep track of the good that came out of it (and jcastro gets the credit :p)17:14
nigelbDepending on what upstream feels about it, you may need to modify the tag to patch-accepted-upstream or patch-rejected-upstream.17:14
nigelbSometimes 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.17:14
nigelbIn that case, we forward the bug to Debian and add a 'patch-forwarded-debian' tag.17:14
bobboAgain, depending on feedback from Debian, we mark the patch as and patch-accepted-upstream and patch-rejected-upstream.17:15
bobbo In very rare cases though, the patch is just wrong and we have to reject it.17:16
bobboIn that case, we tag the bug with 'patch-rejected'17:16
bobboIn other cases the bug is so severe that the need to deal with it as quickly as possible17:16
bobboor 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 it17:17
bobboIn these cases, the patch is applied in the Ubuntu package, and then forwarded to upstream or debian17:17
bobboOne extra complication is that sometimes patches onfly affect the packaging of an application17:18
nigelbok, so you've all asked some questions, we'll be answering those now17:18
ClassBotdevildante67 asked: Does Operation Cleansweep include bzr branches or only patches?17:18
nigelbIt includes only patches.  the bzr branches would follow udd and are sponsored in directly.17:19
nigelbudd = ubuntu distributed development17:19
ClassBotjoaopinto 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 ?17:19
nigelblike bobbo said earlier, if you can rework it, by all means, go ahead :)17:20
ClassBotAudioFranky asked: How do I know/find the exact Ubuntu source package version against which the original patch submitted created his patch?17:20
nigelbIf 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, etc17:21
ClassBotjoaopinto asked: are those tags/workflow written somewhere ?17:21
bobboYou can often check using the date the bug was reported and matching it up with the changelog :)17:21
nigelbthanks bobbo :)17:21
nigelbYes, Review process is documented17:21
bobbohttps://wiki.ubuntu.com/ReviewersTeam/ReviewGuide#Workflow17:22
nigelbhttps://wiki.ubuntu.com/ReviewersTeam/ReviewGuide is your friend :)17:22
ClassBotmythos asked: the ability of the reviewer is never checked, so everybody can review patches?17:22
nigelbYes, everyone can review patches.  Noone blocks you on anything.  There is a team, but not being a member does not block you from contributing.17:22
ClassBotdupondje 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 ?17:23
nigelbIt is a case-by-case situation, but this calls for an sru and the sru process17:23
nigelboften, 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 sru17:24
bobbosru = Stable Release Update17:24
nigelbok, so ClassBot tells me the good news that question queue is empty17:25
nigelblets move onto some specfic examples17:25
nigelbBug #54424217:25
ubot2Launchpad 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/54424217:25
nigelb This bug was opened with a patch provided by the  reporter.  It was subscribed by the subscription script with the patch  tag.17:25
nigelbThe patch was forwarded upstream, and recieved the patch-forwarded-upstream  tag17:26
nigelbAfter upstream accepted this patch, it recieved the patch-accepted-upstream  tag and is ready to be fixed in Ubuntu.17:26
bobboBug #54424217:26
ubot2Launchpad 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/54424217:26
bobbofail17:27
bobboBug #46219317:27
ubot2Launchpad 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/46219317:27
bobboThis patch only had to go to Debian as the changes only affected the application's packaging17:27
bobboit makes non sense in most cases to send patches against the packaging to the upstream as they normally don't touch it at all17:28
bobboso it was forwarded to Debian and received patch-forwarded-debian17:28
bobboit was then accepted and receive patch-accepted-debian17:28
bobboand now we're waiting for the fix to be merged or synced into the Ubuntu archives17:29
bobboOne last example17:29
ClassBotjoaopinto asked: Once a bug gets patch-accepted-upstream, how do we ensure that the patch is applied to the current development package ?17:29
nigelbbobbo: finish the example and we'll answer this :)17:29
bobbookay :)17:29
bobboBug #3328817:30
ubot2Launchpad 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/3328817:30
nigelbah, that was a famous one :)17:30
bobboThe patch was forwarded upstream, where it was rejected17:30
bobboit's now been fixed, however with a different patch17:31
bobbo</examples>17:31
nigelbheh, thanks bobbo :)17:31
nigelbok, so about the question17:32
nigelbin our hurry to write this session up, we missed a step, which actually answers the question17:32
nigelbwhen 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.17:33
nigelbWhen the patch is accepted upstream, you can either get it into ubuntu directly if its very severe or wait for it to flow downstream17:33
nigelbBut essentially, our mission would be complete, i.e. patches don't rot in launchpad and die17:34
nigelbAlso, contributors who write awesome patches don't get discouraged from writing more code17:34
ClassBotdevildante67 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?17:35
bobboI've just checked this up17:35
bobboeither the upstream bug report simply hasn't been updated17:35
nigelbthe upstream bug hasn't been updated - there is a comment "pushed to git master"17:36
bobboor 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 release17:36
nigelbjoaopinto: To answer your question, you have to take the initiative.17:37
nigelbIf its a main application, talk to desktop team or other subteams if its in their packageset17:37
nigelbthey'll glady welcome the help17:37
nigelbIf its universe, try mailing the DM who's responsible for the package.17:38
bobboas long as there is an active package maintainer in Debian, all upstream accepted patches should filter down at some point17:38
nigelbNow, if there is no active maintainer and the patch is good, you have to do some effort on the debian side17:38
nigelbIf a package is orphaned in debian, you can do a QA upload.17:40
nigelbYou'll need a DD who can sponsor you though.17:40
nigelbA quick mail to  debian-mentors mailing list should help you in that case17:40
bobboIf you're not a packager, you can tell a MOTU and they'll hopefully keep track of the package for you17:40
nigelbI'd like to point your attention to a package called galrey17:41
nigelbhttp://packages.debian.org/sid/galrey17:41
bobbodropping a mail to the MOTU mailing list or shouting in #ubuntu-motu will at least put it onto a packager's radar17:41
nigelbthis package had a patch in ubuntu, its an orphaned package in debian17:41
nigelbI spoke to a MOTU friend and she recommended uploading to debian directly, since we don't want to carry a diff.17:42
nigelbA quick hop into oftc, #debian-mentors and in some time it was awaiting sponsorship and the DD who guided me uploaded into the debian archive17:42
nigelbI put in a sync request and we got into lucid in a few days17:43
nigelbjoaopinto: I'll answer in here for that one17:44
nigelbjoaopinto 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 :) ?"17:44
nigelbExpectations are high, but that leads to trouble like diverging from upstream and diverging from debian.17:45
nigelbIf you've every done a 3-way merge, you'll know that we *really* don't want that17:45
nigelbWhen packages are synced that's a better use of our time.  Even if we don't work on Ubuntu directly at times.17:46
nigelbIts a bit of a pain, but the reward is much better.  More distro's carry the patch and more people have a happy time.17:46
nigelbjoaopinto: does that answer your question to some extent?17:47
nigelbAnymore questions folks?17:48
nigelbYou see, bobbo and I both lost notes for this session and wrote it in 20 minutes before session started, so its a bit short :)17:48
bobbodupondje 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 ?17:48
nigelbincomplete = we need more information abaout the bug from the reporter17:49
bobboIncomplete means that not enough information has been given in the report and we have asked for more17:49
bobboFix Committed is a bit of an odd one in Ubuntu17:49
bobboit can mean many different things and it's often not used correctly17:49
nigelband desktop team uses it for a specific purpose which confuses us often.17:49
nigelbGenerally, fixed commited means the fix in repositry, but not yet rolled into a release.17:50
ClassBotThere are are 10 minutes remaining in the current session.17:50
bobbobasically for patch revirew purposes, it's best to ignore Fix Committed and focus on the patch-* tags on the bug instead17:50
ClassBotdupondje 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 ?17:51
nigelbwe did that one :)17:51
bobbofail, I can't work classbot17:51
nigelbheh17:51
bobboempty queue, does anyone have any questions for the final 9 minutes?17:51
bobbonone? Okay then17:52
bobboWe'd lvoe for you guys to help out reviewing patches and reach the goals of Operation Cleansweep17:52
nigelbJoin us in #ubuntu-reviews17:53
nigelbtalk about it at your loco events17:53
bobboif you want more information or would liek some help getting started please feel free to drop into #ubuntu-reviews17:53
nigelbHelp us by reviewing 1 patch a day17:53
nigelbAlso, we have this beautiful progressbar that daker made for us17:53
nigelbif you can showcase it on your website or blog that would be great17:54
ClassBotdevildante67 asked: Is Operation Cleansweep a Maverick only operation, or do you plan on extending it for future releases?17:54
bobboThe original plan was to get all 2000 patches reviewed by this cycle's releaase date17:54
nigelbThe focus is on getting unreviewed patches to 0 by maverick release17:54
nigelbwe'll have more patches and then our focus would be keeping it low all the time, reviewing them instantly17:55
ClassBotThere are are 5 minutes remaining in the current session.17:55
bobboThis i project was started to get rid of the huge pile of patches sitting in LP17:55
bobboso that in future, patches will be reviewed much quicker17:56
nigelbjono just spontaneously came up with the idea17:56
nigelb(and spontaneously assigned it to me :p)17:56
dholbachnigelb: you asked for it :)17:56
nigelbdholbach: heh17:57
ClassBotean5533 asked: So who's fault is it that it got this bad? nigelb or bobbo?17:57
nigelbWell, the situation got bad because we never had a system to deal with it17:57
nigelbAbout 6 months back, I was innocently hanging out in #ubuntu-motu and said "I'm bored"17:57
bobbo(big mistake)17:57
ClassBotpenguin42 asked: What about patches in debian bug tracking system that fix bugs shared with us?17:58
nigelbyes, in retrospect :p17:58
nigelbEmmet a.k.a. persia said, "go review patches" and I started writing the workflow which we all perfected.17:58
bobboThey are essentially patch-forwarded-debian17:58
bobboOkay we'd better clear off before the next session17:58
bobbothanks for listening and please get involved with Operation Cleansweep!17:59
nigelbYes, Thank you folks.  I'm not going anywhere though.  I'll talk about the "how to forward patches" with pedro :)17:59
pedro_We're having a bug day for Operation Cleansweep next week so stay tune ;-)17:59
=== ChanServ changed the topic of #ubuntu-classroom to: Welcome to the Ubuntu Classroom - https://wiki.ubuntu.com/Classroom || Support in #ubuntu || Upcoming Schedule: http://is.gd/8rtIi || Questions in #ubuntu-classroom-chat || Event: Ubuntu Developer Week - Current Session: Forwarding Bugs And Patches Upstream - Instructors: pedro_, nigelb
pedro_Hello guys! My name is Pedro Villavicencio Garrido and i'm the guy behind the Ubuntu desktop bugs18:01
pedro_today together with the awesome nigelb we're going to teach you how to forward bugs and patches upstream18:01
pedro_I'm going to introduce you to the workflow we use for the GNOME bugtracker18:01
* nigelb wave again18:01
=== ext2 is now known as ext3
pedro_which also applies to the freedesktop tone18:02
pedro_s/tone/one18:02
pedro_since they're using Bugzilla as well18:02
pedro_if you never heard about bugzilla before -> http://www.bugzilla.org/18:02
pedro_the GNOME project uses as said Bugzilla for tracking their bugs reports18:03
pedro_you can find it at https://bugzilla.gnome.org18:03
=== pjarnahom is now known as pjarnahomzz
pedro_If a bug in launchpad needs to be send there what you need to do first of all is to well... create an account18:04
pedro_assuming you're not familiar with it, at the top of the page there's a 'New Account' link18:05
pedro_if you click on that you'll be redirected to a page which is  https://bugzilla.gnome.org/createaccount.cgi18:05
pedro_in most of the bug trackers out here the only requirement to create an account is provide a valid email account18:05
pedro_and the GNOME Bugzilla is not an exception18:06
pedro_so just provide your email account and you'll receive a confirmation email18:06
pedro_just follow the steps described on that and your account will be ready to rock18:06
pedro_Ok now you created your account so you're ready to start opening bugs upstream18:07
pedro_but first!18:07
pedro_it's important to search for already reported bugs18:08
pedro_we don't want to start flooding upstream with duplicates18:08
pedro_it creates a lot of more work for the maintainers and the bugsquad18:08
pedro_alright for searching you need to go to18:09
pedro_https://bugzilla.gnome.org/query.cgi18:09
pedro_and put any text you'd like to search for , for example 'love'18:09
pedro_if you did what i did you'll get a bug report18:11
pedro_like this one: https://bugzilla.gnome.org/show_bug.cgi?id=43884718:11
ubot2Gnome bug 438847 in gnome "i love you" [Normal,Resolved: incomplete]18:11
pedro_such of nice report isn't ?18:11
pedro_that's how it looks a report on the GNOME Bugzilla ,will go a bit deeper in to that in a bit18:12
pedro_now if you didn't find the report you're were looking for18:12
pedro_what do to?18:12
pedro_well an extra hint would be to search on the list of most frequently reported bugs18:13
pedro_which is available here: https://bugzilla.gnome.org/duplicates.cgi18:13
pedro_is your report there or not?18:13
pedro_let's say : yes18:13
pedro_now how can i know if that report is already being tracked on Launchpad?18:14
pedro_there's a little trick for doing that18:14
pedro_(don't tell anyone!)18:14
pedro_for example if we want to know if bug https://bugzilla.gnome.org/show_bug.cgi?id=47997918:14
ubot2Gnome bug 479979 in window selector "Crash in wnck_task_button_glow()/cairo_translate()" [Critical,Resolved: incomplete]18:15
pedro_is being tracked we need to pass something like this to launchpad18:15
pedro_https://bugs.launchpad.net/bugs/bugtrackers/gnome-bugs/47997918:15
pedro_click on that url18:15
pedro_it will take you to a report in launchpad which is watching that upstream report18:15
ClassBotcharlie-tca asked: that is a great report!18:16
pedro_indeed charlie-tca ;-)18:16
pedro_btw you can do that for all the bug trackers which are listed here: https://bugs.launchpad.net/bugs/bugtrackers18:16
pedro_it helps a lot when you're searching for upstream reports18:17
pedro_ok now let say that the report you're looking for is not on the upstream bug tracker, so you need to open a new one18:17
pedro_Click on the New link at the top and a list of parts is going to be presented to you, if you don't know to which set a product belongs, just click on All and search for that program there, for example nautilus18:18
pedro_bugzilla is going to show a long list , like the one here:18:18
pedro_https://bugzilla.gnome.org/enter_bug.cgi?classification=__all18:18
=== ZachK_ is now known as zkriesse
ClassBotdevildante67 asked: Can't we do that nice secret trick directly in the site?18:19
pedro_not really in launchpad, there's no search box for those, but yeah would a neat wishlist18:19
pedro_what i did for my workflow was to create a keyword on firefox so everytime i enter something like: gnome #12345618:20
ubot2Gnome bug 123456 in general "ItemFactory.create_items and <ImageItem> bug" [Normal,Resolved: fixed] http://bugzilla.gnome.org/show_bug.cgi?id=12345618:20
=== Jack is now known as Guest49040
pedro_it will search automatically for that bugs for me instead of entering the whole url over and over again18:20
pedro_ok if you click on the nautilus product you'll see something like this:18:21
pedro_http://people.canonical.com/~pedro/new_bug1.jpg18:21
pedro_where you have something similar to what we have in launchpad18:21
pedro_a field to enter a Summary18:21
pedro_Description , add an Attachment etc18:21
pedro_now if you click on the "Show Advanced Fields" you'll see something like this:18:22
pedro_http://people.canonical.com/~pedro/new_bug2.jpg18:22
pedro_You can use either of those to open a new bug18:23
pedro_most of the information which is requested there is already available in our bugs at Ubuntu18:23
pedro_like the version of GNOME used, the version of the program, the summary etc18:23
pedro_Now paste the title of the bug in launchpad and improve it if that title isn't good enough18:24
pedro_ it's always better to use something like "nautilus search freeze when searching for odp files" then "nautilus freezes"18:24
pedro_also use a good description of the issue, add clear steps to reproduce it if applicable and add all the information that might be relevant like comments from users, screenshots or even screencasts18:24
pedro_And if applicable add a keyword18:25
pedro_a keyword is similar to what we call 'tags' on launchpad18:26
pedro_you can see those used on GNOME at https://bugzilla.gnome.org/describekeywords.cgi18:26
pedro_for example: use STACKTRACE for crashes with full debug backtrace18:26
pedro_usability for well usability issues18:26
pedro_documentation for bugs in the docs, etc etc18:27
pedro_ok how a report forwarded from Ubuntu looks like18:27
pedro_please have a look to https://bugzilla.gnome.org/show_bug.cgi?id=58938618:28
ubot2Gnome bug 589386 in general "Reverting changes when submenus are created make the submenus appear as alacarte-made-#" [Normal,New]18:28
pedro_as you can see there, the format we use is to add a Link to the launchpad report18:28
pedro_a description of the issue and if we have more information we add it as well like the logs on that particular report18:28
ClassBotsimar_mohaar asked: does the trick yout told to find bugs in launchpad that is watching a upstream bug is applicable to free desktop also .. say eg - 21614 in freedesktop how to find on launchpad18:29
pedro_yes that works for freedesktop too, let me give you the link18:29
pedro_https://bugs.edge.launchpad.net/bugs/bugtrackers/freedesktop-bugs/2161418:30
pedro_those are the bugs that are watching that upstream report18:30
pedro_maybe they could be marked as duplicate if they aren't yet ;-)18:30
pedro_Ok If you saw that alacarte report18:31
pedro_you'll see that the status are different than in launchpad18:31
pedro_for example that bug was confirmed but the status is New18:31
pedro_the New status in the GNOME bugzilla is similar to our Triaged status18:32
pedro_and our New status there is UNCONFIRMED18:32
pedro_there's a few status on bugzilla that you might not familiar with , you can read about those at18:33
pedro_https://bugzilla.gnome.org/page.cgi?id=fields.html18:33
pedro_so don't change the status to New if you just filed the report and nobody else confirmed it :-P18:33
ClassBotsimar_mohaar asked: One more thing pedro, that how you create keyword in firefox like #56383 say so we don'y have enter the whole URL always.? Sorry I dinn't get it . :<18:33
pedro_simar_mohaar, I can teach you how to do it after the talk ;-)18:34
pedro_Alright let's assume you have your bug filed upstream18:35
pedro_a shine and new upstream report18:35
pedro_what to do now?18:35
pedro_well what you need to do is to create a Bug Watch in Launchpad for that upstream report you just filed18:36
pedro_how to do it? easy, you need to click on the Also affects project link which is available in every report at launchpad18:36
pedro_you'll get something like this: http://people.canonical.com/~pedro/also-affects.jpg18:37
pedro_where you can paste the link that bugzilla gives you18:37
pedro_then just click on Add to Bug Report18:38
=== abhi_nav__ is now known as abhi_nav
pedro_and your report will look like this one https://bugs.edge.launchpad.net/ubuntu/+source/gnome-panel/+bug/51032218:38
ubot2Launchpad bug 510322 in gnome-panel (Ubuntu) (and 1 other project) "wnck-applet crashed with SIGSEGV in cairo_translate() (affects: 30) (dups: 4) (heat: 139)" [Medium,Incomplete]18:38
pedro_a new field is going to appear18:38
pedro_with the name of the project, status, importance and a link to that upstream report on the assigned to field18:39
pedro_ok we're almost done!18:39
pedro_what you need to do now, is to comment on the bug report in launchpad with something as:18:39
pedro_Thanks for your bug report. This bug has been reported to the developers of the software. You can track it and make comments here: URL18:40
pedro_where URL is of course the link bugzilla returns you previously18:40
pedro_then you just need to change the status to Triaged or Confirmed if you don't have the rights to set it as Triaged and that's all!18:41
pedro_this same second part of the workflow applies to mostly all of the projects in Ubuntu with upstream projects18:41
pedro_what only changes is the how the upstream projects manage their bugs, with more keywords, some different status or severities etc18:42
pedro_Ok i know you're all interesting on how to do it for Patches so i pass the mic to the awesome nigelb who is going to talk you about that18:43
pedro_nigelb, stage is all yours!18:43
nigelbthanks pedro_18:43
nigelbHe conviniently has a call right now, so he's passed the batton to me18:43
nigelbSo, in the last session bobbo and I talked about why you need to forward patches, when you need to forward patchs, and to some extend where18:44
nigelbI intended to give pedro the task of explaining the "how to forward" patches, but I see its come to me.18:44
nigelb;)18:44
nigelbso, you've seen the gnome bugzilla and seen how it works and how to report a bug18:45
nigelbif you scroll down a bugzilla bug, you'll see a table that lists the patches available (empty if no patches yet)18:45
nigelbIt looks like this http://imagebin.ca/view/GBIh_i5.html18:46
nigelbif you click on the button, you'll go to another page18:47
nigelbit looks like this http://imagebin.ca/view/GtvMF1.html18:47
nigelbinitially, it asks that you select a file to upload and give a description for it18:48
=== mab is now known as Guest87736
nigelbits a good idea to give the description as whatever it fixes, like "Fixes the crash that happens when you do $foo"18:48
nigelbyou can either force bugzilla to consider it as a patch or let it automatically decide whether it was a patch18:49
nigelbthen, enter a comment and press submit18:49
nigelbviola! your patch is submitted upstream18:49
nigelbyou'll notice there is a field called "obsolete"18:50
ClassBotThere are are 10 minutes remaining in the current session.18:50
nigelbthats for when you've rewritten a patch (which was initially written by you) and you upload the new patch18:50
nigelbyou can mark the old one as obsolte18:50
nigelbbut they're smart people, they don't let you mark your patch obsolteling someone else's ;)18:51
ClassBotpenguin42 asked: Is there anything that needs to be done to make sure it's traceable to the original author or the ubuntu bug it came from?18:51
nigelbWell, personally a lot of us start the bug with "This bug was orginally reported in Launchpad, bug# 123"18:52
nigelbthat way other triagers know which one its linked to18:52
ClassBotmgamal asked: How should we forward patches to upstream projects that follow a different patch submission procedure (e.g. Linux Kernel)?18:52
nigelbvery good question18:52
nigelbEach project has different specifications and rules, its very importannt that you read their guidelines if any18:53
nigelbAnd, the Kernel is very special from other projects.  Jfo can explain more on that.  I'm not very familiar with their procedures18:54
nigelbthe freedesktop project also uses bugzilla and their patch submission interface looks very similar to gnome bugzilla18:54
nigelb(well, its after all bugzilla with different themes)18:54
nigelbhere's how that looks http://imagebin.ca/view/BsKUieS.html18:55
ClassBotThere are are 5 minutes remaining in the current session.18:55
nigelbhttp://imagebin.ca/view/X0Fpl-pn.html18:55
ClassBotsimar_mohaar asked: What exactly is a patch. If a patch provides a fix is it the same thing that we update to our system during Updates?18:56
nigelba patch is essentially a diff file.  Its a diff of current source vs new source18:56
nigelbAnd a patch is not what updates your system during update18:56
nigelbI have one more bug tracker to talk about18:56
nigelbthis tracker deserves a session of its own18:57
nigelbits very special in that, its one of the view that doesn't require that you sign up before you report a bug18:57
nigelbbut it doesn't let you file a bug from a webform18:57
nigelbyou have to either send a mail in a particular format or use a commandline tool18:57
nigelbany guesses?18:57
nigelbc'mon, no guesses?18:58
nigelbyep, jacob18:58
nigelbIts the Debian BTS18:58
nigelbIts the tracker we all love to hate.18:58
nigelbIts a bit complicated to work with.  I won't be going into detail, but I'll give you some links where you can learn about it18:59
nigelbhttp://www.debian.org/Bugs/Reporting18:59
nigelbyou can use that debian page to know more about reporting bugs on debian or use reportbug19:00
nigelbreportbug is a commandline tool that helps you do it provided you can send email from your system19:00
nigelbAnd with that, my time is done :)19:00
=== ChanServ changed the topic of #ubuntu-classroom to: Welcome to the Ubuntu Classroom - https://wiki.ubuntu.com/Classroom || Support in #ubuntu || Upcoming Schedule: http://is.gd/8rtIi || Questions in #ubuntu-classroom-chat || Event: Ubuntu Developer Week - Current Session: Daily Builds And You - Instructor: jcastro
nigelbThanks folks for listening in!19:00
jcastroalright!19:01
dholbachhello everybody :)19:01
jcastrowelcome to our class19:01
jcastrothis session will be about daily builds, I'm Jorge Castro ...19:01
dholbachand I'm Daniel Holbach19:01
jcastroand we're working with the launchpad team to make daily builds a reality19:01
jcastrobefore I start19:02
jcastrolet me give you some information that you need to follow along in this class19:02
jcastrohttps://help.launchpad.net/Packaging/SourceBuilds19:02
jcastroand all the pages in that section of the wiki will help you out19:02
jcastroso first off, what the heck is a daily build?19:02
dholbachYes, https://help.launchpad.net/Packaging/SourceBuilds/GettingStarted is the page you should probably bookmark :)19:02
jcastrosimply put19:02
jcastroa daily build is a PPA that contains software from a project that is updated every day19:03
jcastroso for example, if we have daily builds of gedit, then the daily build will have the code from that day in the PPA19:03
jcastroso why would we do this?19:03
jcastroFirst of all, the main reason is testing19:03
jcastroif you're writing a program, you want to be able to test it19:03
jcastrohowever because ubuntu releases are stable (meaning we don't update to new versions generally)19:04
jcastrothen this can be hard to get people to test.19:04
jcastroideally we want any upstream project to be able to fix a bug and enable users to check to see if it's fixed19:04
jcastroand we plan to do this by offering the latest builds of things19:04
jcastroit can be annoying when a developer tells you "try it with this patch, let me know if it works!"19:05
jcastrowith daily builds we can now easily test that software19:05
jcastroand enable the upstream developer to get those fixes out to their users19:05
jcastrowhich is what it's all about19:05
jcastrohowever, there can be badness too, it's not all cupcakes and unicorns19:05
jcastroif you commit broken code, it shows up in the daily build19:06
jcastrosince dailies are automated, if you break your code, this can break the software19:06
jcastrosome well run projects use things like distributed version control and unit testing to make sure that trunk always builds19:06
jcastrothis is a Good Thing(tm)19:06
jcastroalso, if your project is starting out and you're not ready for feedback then dailies can be a waste for you while you make major changes19:07
jcastroor if you rewrite entire chunks and don't have a good way for users to move back and forth between versions19:07
jcastroand lastly, the world is full of people who love crack, and might use daily builds for day-to-day usage instead of testing19:07
jcastroso you might get some bad feedback from people complaining that the software is broken half the time19:08
jcastrobut whatever. :D19:08
jcastrook so now that's daily builds19:08
jcastronow Daniel is going to show you how they work.19:08
dholbachand with a PPA it's incredibly easy to get users to test software, if they're interested in that particular package, it's just a "sudo add-apt-repository …" away (or well they use the GUI option :-)), so for an upstream or somebody who "adopted an upstream" it couldn't be easier to get willing testers :)19:08
dholbachI wanted to add a note on "warning users", etc. because I think it's very important that you as an upstream or you as somebody who wants to test a particular piece of software tell people very carefully what's going to happen :)19:09
dholbachin https://help.launchpad.net/Packaging/SourceBuilds/KnowledgeBase we have a bunch of good information on how to tell people what's happening, which cases it makes sense to have daily builds etc19:10
dholbachhttps://help.launchpad.net/Packaging/SourceBuilds/GoingBack for example explains in a visual way how to "go back to an old version"19:10
dholbachare there any questions up until now?19:10
dholbachalright, seems what Jorge and I said made at least a bit of sense :-)19:11
dholbachfirst of all: this feature is BETA and we have already found a few bugs that still need to be ironed out19:11
dholbachhttps://help.launchpad.net/Packaging/SourceBuilds/KnownLimitations is what's on our list right now19:11
dholbachok, so how does this work19:11
dholbachfirst of all: all the code needs to be in launchpad19:12
dholbachso if you're interested in some project that is hosted somewhere in a cvs repository somewhere, you need to import it into launchpad19:12
dholbachluckily, that's very easy19:12
dholbachwe have links in the knowledge base about how to do exactly that19:12
jcastro(... we also support svn and git imports)19:12
dholbachyes, that's all explained in there :)19:13
dholbachah, we have the first few questions19:13
dholbach<joaopinto> QUESTION: Are daily builds targeted for every supported release ?19:13
dholbachjoaopinto: you can target them to releases as you like it19:13
dholbach<simar_mohaar> QUESTION: Whats a PPA?19:13
dholbachsimar_mohaar: it's a Personal Package Archive19:13
dholbachin addition to the ubuntu archive people or teams can set up their own archives in Launchpad19:14
dholbachhttps://help.launchpad.net/PPA has more detail about this19:14
dholbachit's the best thing since sliced bread19:14
dholbachok, now that we have the code in Launchpad, what's next19:14
dholbachthere's the "recipe"19:14
dholbachthis gets a little bit more complicated, so hold tight and relax - we'll get to the actual builds in a bit :)19:15
dholbacha recipe is instructions how launchpad is going to assemble the source package on its own19:15
dholbach(from which source branch, how does the version numbering work, etc.)19:15
dholbachit's crucial that you write up that recipe (we have a few nice examples) and TEST it locally19:16
dholbachand when I mean test19:16
dholbachI mean19:16
dholbach _____ _____ ____ _____ _19:16
dholbach|_   _| ____/ ___|_   _| |19:16
dholbach  | | |  _| \___ \ | | | |19:16
dholbach  | | | |___ ___) || | |_|19:16
dholbach  |_| |_____|____/ |_| (_)19:16
dholbach                          19:16
dholbachluckily we have tools for that and we'll cover that in a bit19:16
jcastrook so let's start with a simple recipe19:17
jcastro# bzr-builder format 0.2 deb-version {debupstream}+{revno}19:17
jcastrolp:gtg19:17
jcastronest packaging lp:~gtg/gtg/debian debian19:17
jcastro3 lines!19:17
jcastrolet's go over each19:17
jcastrothe first one defines the recipe19:17
jcastrothe 0.2 is the version you want the package to be19:17
jcastroI usually derive this from the upstream version19:17
jcastro(remember that you need the version numbers to be close to what upstream is19:18
jcastroactually, wait19:18
jcastroI totally messed that up19:18
jcastrolet's start with line 1 again19:18
jcastro"bzt-builder format" is needed to start the recipe19:18
jcastro0.2 is the version of the recipe formate19:19
jcastroso for those you can just leave those the same19:19
dholbachdeb-version describes what the resulting package in the PPA will have as version number19:19
dholbachyou need to be a bit careful there19:20
dholbach{debupstream} will be replaced with the version number in the packaging (debian/changelog - more on that in a sec)19:20
dholbach{revno} is the revision number of the upstream branch19:20
jcastrothe second line is easy19:21
jcastroit's where in launchpad the upstream source is19:21
jcastroso in this example, since gtg is hosted in launchpad, we can use lp:gtg19:21
jcastrofor imports it might be more comples19:21
jcastrocomplex I mean19:21
jcastrothen the last line is where the packaging is19:21
jcastroso we're basically telling launchpad "grab the code from lp:gtg, and nest the packaging from lp:~gtg/gtg/debian which is a debian directory, and spit it out."19:22
dholbachso in this case we have the following case19:22
dholbachlp:gtg contains no packaging at all19:22
dholbachit's just the upstream source19:23
dholbachusually if you get the source of a source package, you can see a debian/ directory in there which contains all the packaging information19:23
dholbachso on its own lp:gtg would not build19:23
dholbachso what we do here is: check out a branch that contains the current packaging and stick it in to a debian/ directory in what we checked out as trunk19:24
dholbachthe second branch does ONLY contain packaging, nothing else19:24
dholbachso "nest" is the keyword that means "ok, check out this second branch and just put it where I tell you"19:25
dholbachok, that was case one and what we think is a very common one19:25
dholbachfor case two, I'd like to highlight fabrice_sp's question :)19:25
dholbach<fabrice_sp> QUESTION: what if upstream ships a debian directory?19:25
dholbachthat case is simple: you just drop the third line, you have a two line recipe then :-D19:26
dholbachand now we have case three which is a bit more complicated - I hope you're a little bit familiar with distributed revision control, so I don't look stupid19:27
dholbachlet's recap: case 1) pristine trunk, does not have packaging, so "nest" packaging branch into debian/ dir19:27
dholbachcase 2) upstream has packaging already, so you get a simple recipe19:27
dholbachcase 3)19:27
dholbachyou have two branches you're going to merge19:27
dholbachso for example you have the upstream trunk that does not have any packaging included19:28
dholbachand the other branch was branched off of upstream and you added packaging in there, maybe you just wanted to ship a particular release19:29
dholbachas you can see the third one is a bit more complicated, but as I said we have tools to test and see if it works :-)19:29
jcastrohey wait a minute!19:29
jcastroso let's say I have my upstream19:29
jcastroand the packaging19:29
jcastrobut someone out there made bug fixes in a branch19:29
jcastroI want to be able to try those fixes in a build19:30
jcastroso can I merge in branches with fixes from launchpad?19:30
jcastrolike say ....19:30
jcastromerge fix-build lp:~bzr/bzr/fix-build19:30
dholbachexactement - that's exactly what you can do now :)19:30
jcastroso we can combine stuff!19:30
dholbachyeah :-)19:31
jcastroso let's check out a more convoluted example19:31
jcastro# bzr-builder format 0.2 deb-version 1.0+{time}19:31
jcastrolp:bzr19:31
jcastromerge fix-build lp:~bzr/bzr/fix-build19:31
jcastronest pyfoo lp:pyfoo foo19:31
jcastro  merge branding lp:~bob/pyfoo/ubuntu-branding19:31
jcastromerge packaging lp:~bzr/bzr/packaging19:31
dholbachwow :)19:31
jcastroI can even specify revisions!19:31
jcastromerge packaging lp:~bzr/bzr/packaging revno:235519:31
jcastrowhoa, now I see why this is so powerful! :)19:31
dholbachyeah, that takes a bit to understand, but if you do it step by step, it'll all be nice and easy19:32
dholbachas an added bonus you get an email if the fixed branch does not apply any more in trunk :)19:32
dholbach<joaopinto> QUESTION: Is there some middle ground official project, technically similar to daily builds but providing stable releases instead ?19:32
dholbachjoaopinto: good question: sometimes upstream will have a stable branch, so you could have multiple PPAs: one for beta, one for stable, one for crack of the day, etc.19:33
dholbachin the other cases, you could supply revision numbers, etc.19:33
dholbachthis technology is still quite new, but we'll figure out over time how to make the best use of it19:33
jcastroso if we have the packaging, the upstream, and PPAs ... then really it's up to me if I want to publish it daily19:33
dholbachright now we still have to do it carefully19:33
jcastroor just follow stable branches19:33
dholbachjcastro: exactly :)19:33
jcastrook so before we go off and flood lp19:34
jcastrocan you tell me why it's so important to test locally?19:34
jcastroand then show me how?19:34
dholbachsure, will do :)19:34
dholbachthere's still a couple of bugs  the Soyuz team (which does the building and PPA part of things), the bazaar team (who deals with all the branch goodness) and the launchpad-code team (the folks who work on merge proposals, code import, etc.) and lots of others are working on19:35
dholbachplus, there's currently a bunch of builds in PPAs piled up19:35
jcastro(I hear they're sprinting right now to fix these bugs!)19:36
dholbachso if you know the build is not really important or you don't know it works, it's unfair to others if this hammers launchpad19:36
jcastroyou mean I can't just set up 50 of them and then just fire and forget?19:36
dholbachI don't know if there's any limit hardcoded in LP, but we should all bear in mind that it's BETA, that it's a service that other folks use and that we should all take it nice and easy :)19:37
dholbachmatttbe37 asked a question about this too19:37
dholbach<matttbe37> QUESTION: Hello! Do you know when the version of 'bzr-builder' will be updated in launchpad? => because it seems there is a bug with the current version (Bug #604837) and also because I need the new {date} variable :) ?19:37
dholbachmatttbe37: honestly I don't know right now, but I'll make sure to get some feedback on it and make sure  that it's addressed somehow19:38
dholbachalright19:38
dholbachlet's get to testing it19:38
dholbachthis is not a demo or packaging session, so we'll just give you the quick instructions here and you can go and try this out later on19:38
dholbachbasically you write your recipe based on the instructions19:39
dholbachthen you save it locally19:39
dholbachthen install bzr-builder19:39
jcastrohttps://launchpad.net/builders has build stats (and yes there are more resources coming)19:39
dholbachand then you just run "bzr dailydeb package.recipe working-dir"19:39
dholbachwhich will try out just what launchpad is going to do for you19:39
dholbach(it'll get the branches you specified and assemble the source package for you)19:40
jcastro(this way you can also build the packages locally and make sure they work before asking launchpad to do it for you)19:40
dholbachthere's one particular big guy in the launchpad team (bigjools) who'll be unhappy if you don't try this out first19:40
dholbachso don't say I didn't warn you :)19:40
dholbachthen you can use pbuilder to test build the package locally19:40
dholbachand that's a good exercise as well :)19:41
dholbachand it's easy to do19:41
dholbachsudo apt-get install pbuilder19:41
dholbachadd   COMPONENTS="main universe multiverse restricted"   to  ~/.pbuilderrc19:41
dholbachsudo pbuilder create; sudo pbuilder build <working-dir>/<project>_<version>.dsc19:41
dholbachdone19:41
dholbachIf the build succeeds, you can test-install the resulting package from /var/cache/pbuilder/result/.19:42
dholbachbut that means that you need to have the packaging sorted out before, the tools won't "make that happen for you"19:42
dholbachon the plus side we have good info on how to get that done :)19:42
dholbachin the knowledge base19:42
dholbach<joaopinto> QUESTION: Do daily builds, PPAs, and official archives share the same infrastructure resources ?19:42
dholbachjoaopinto: yes, it's all the same infrastructure, but build machines are assigned specific tasks19:42
dholbachand some builds have a higher priority than others19:43
jcastrook so one last example19:43
jcastro(this is the OOOOH moment.19:43
jcastroso, in case you didn't know, some teams in ubuntu are already putting their packaging in bzr19:44
jcastroand eventually the entire distro will be in there19:44
jcastroso if we know where upstream is19:44
jcastroand where the packaging is ...19:44
jcastrowe /should/ be able to make dailies out of almost anything!19:44
jcastroso ... I tried this:19:44
jcastrohttps://code.edge.launchpad.net/~jorge/+recipe/shotwell-daily19:44
jcastro(note the +recipe in the url, this is how we'll keep track of the recipes)19:45
jcastroshotwell is a photo editor19:45
jcastroI knew where upstream SVN is19:45
jcastroso I imported it into launchpad19:45
jcastroand I knew the ubuntu desktop team kept the packaging in bzr. So I tried to mush it together.19:45
jcastroand this is also where you see the "not finished" bits yet19:46
jcastroright now we don't have an easy way to do this, but it's a goal19:46
jcastrobut from looking at that page you can get an idea of where we're going with this19:46
jcastroand yes, we're going to need more hardware. :)19:46
dholbachare there any more questions up until now?19:46
jcastroalso, some tips here19:47
jcastrofirst off, we can't work in a vaccum, so while it may be fun to set up 50 dialy builds for your favorite project19:47
jcastroremember that they're not as useful if the upstream projects themselves don't know about it19:47
jcastroor know how to deal with it19:47
jcastroimagine if you were a developer and someone on the internet made daily builds available, and your bug tracker started getting alot of traffic19:48
jcastroand you weren't ready for it!19:48
jcastroso I encourage you not to just set these up, but work with app developers19:48
jcastroso that they can use these tools to make better releases and better software19:49
dholbachyeah, good thinking, plan with upstream19:49
jcastromore questions?19:49
dholbachtalk to them, and go adopt-an-upstream19:49
jcastroyes, I personally plan on perfecting a few recipes locally19:49
jcastroand then mailing someone upstream19:49
dholbach(more info on that on Friday 16th, 18 UTC, same place :-D)19:49
jcastroand then have them set up their own based on my initial work, so that they can use them as they see fit19:49
ClassBotThere are are 10 minutes remaining in the current session.19:50
dholbachmore questions? or anything else you're wondering about?19:50
jcastroand of course, if you know projects interested in dailies, please let me know!19:50
jcastroI'm looking forward to seeing all the recipes people come up with19:51
dholbachyeah, me too19:52
jcastrowe're working on listing some dailies here: https://wiki.ubuntu.com/DailyBuilds/AvailableDailyBuilds19:52
jcastroSince right now launchpad doesn't have a way of just showing them all at once19:52
dholbachmaybe you have some suggestions or crazy ideas what you want to do with daily builds?19:52
dholbachand please: if you find bugs, file them, talk to the people in #launchpad about them, so we can iron all of them out19:53
jcastrooh, I forgot to mention19:53
jcastrothis isn't just for desktop stuff19:53
jcastrochuck short has been offering dailies of mysql, puppet, and a ton of other server stuff19:53
dholbach<penguin42> QUESTION: Ah, there's a good question - if you find a bug in a daily, do you file it in the normal way?19:53
jcastrothis is great for testing the entire platform you deploy on!19:53
dholbachpenguin42: I think you can start with the launchpad-code project, but if bzr gives you an error message, or bzr-builder acts up, file the bug there19:54
dholbachif you're unsure, talk to the folks in #launchpad19:54
dholbachsorry, one thing we missed: you need to be part of the ubuntu beta testers team19:55
dholbachit's currently only available on edge19:55
jcastrohttps://edge.launchpad.net/~launchpad-beta-testers19:55
jcastrojoin that team if you want to test this feature!19:55
dholbach<penguin42> dholbach: I meant a bug in a particular daily built package, not in the daily-build mechanism19:55
ClassBotThere are are 5 minutes remaining in the current session.19:55
dholbachsorry I misunderstood penguin42's question19:55
dholbachin that case it makes sense to file the bug upstream and let them know about it19:55
jcastrothis is why it's important to talk to them19:56
dholbachapport for example will tell you that it's not an ubuntu package, but something else19:56
jcastrothey might say "yeah, I know that's broken, don't file bugs"19:56
jcastroor they might appreciate a bunch of testing19:56
dholbachif you give out daily build packages to users, let them know what to do with bugs they found, give them detailed instructions19:56
dholbachif you haven't, bookmark https://help.launchpad.net/Packaging/SourceBuilds/GettingStarted :-)19:56
dholbachjcastro: I'm done - what about you?19:57
jcastroawesome, thanks for the tour daniel19:57
jcastroI am looking forward to seeing how app developers use this!19:57
dholbachthanks jcastro - these daily builds ROCK and will make life a lot more fun :)19:57
jcastroI think it'll go a long ways to getting fixes out to people much quicker!19:57
jcastrothanks everyone for participating!19:57
jcastrowho is next?19:57
dholbachyou have 3 minutes break until tedg talks to you about indicators :)19:57
dholbachthanks a lot everybody19:57
jcastroapp indicators are great19:58
* dholbach hugs you all19:58
jcastrodid you know that the KDE folks kicked it off with KStatusNotifierItem?19:58
jcastro(it's the reason app indicators are so wonderfully crossdesktop)19:58
tedgjcastro, Hey, you stealing my material? ;)19:59
=== ChanServ changed the topic of #ubuntu-classroom to: Welcome to the Ubuntu Classroom - https://wiki.ubuntu.com/Classroom || Support in #ubuntu || Upcoming Schedule: http://is.gd/8rtIi || Questions in #ubuntu-classroom-chat || Event: Ubuntu Developer Week - Current Session: Making Your Application Shine With Application Indicators - Instructor: tedg
tedgI'm not sure if I'm comfortable being an "Instructor" (sounds so official), but hello everyone!20:01
tedgSo this session is about Application Indicators.20:01
tedgFor those who aren't familiar with them they're basically the small custom menus that are put in the panel by applications.20:02
tedgThese provide extra functionality that is persistent.  Things like your music player, where you'll keep it running, but not want the full window all the time.20:02
tedgWhile we'd all love to have 40" screens, that's rarely practical, so we allow an easy way to do minimized status.20:03
tedgThat doesn't mean that every application under the sun should have an application indicator.20:03
tedgFor most it really doesn't make any sense what so ever.20:03
tedgIt's rare that you'd want continuous status on your word processor for instance.20:04
tedgmpt has written up some practical guidelines on what should and shouldn't be an application indicator.20:04
tedghttps://wiki.ubuntu.com/CustomStatusMenuDesignGuidelines20:05
tedgThat page goes into a lot more, but it starts off talking about how to think about the application indicators.20:05
tedgOur long term goal with Application Indicators is to replace the Notification Area.20:05
tedgWhich, has become a usability ghetto.  Everything behaves differently, which makes them difficult to use overall.  Sure you can learn them, but really you shouldn't have to.20:06
tedgFor a discussion on the notification area and application indicators there a good post on the Canonical Design Blog.20:06
tedghttp://design.canonical.com/2010/04/notification-area/20:06
tedgSo to get to more predictability on how the icons behave, we took an opinionated tact to say that all of them are menus.20:07
tedgThis provides some limitations, but it also can be a very flexible interfaces for providing rich functionality to users.20:07
tedgI just realized I wasn't in the chat room.20:09
tedgSorry about that.20:09
tedgIf people have posted questions please repost them.20:09
tedgOkay, back on track :)20:09
tedgSo, how does all of this work?20:10
tedgThe basis is the KDE Status Notifier Item specification.20:10
tedghttp://www.notmart.org/misc/statusnotifieritem/index.html20:10
tedgKSNI provides an interface for status notifier items that is independent of how they can be displayed.20:11
tedgWhile we have a particular ideas on how that display should work, KNSI doesn't provide anything on that.20:11
tedgSo it is possible to link KSNI supporting applications in a variety of displays, but we're not currently using any of those.20:12
tedgThere are some available on KDE for Plasma.20:12
tedgOn top of that we added the ability to export a menu across dbus.20:12
tedgThat is implemented using the Dbusmenu protocol and librarly.20:12
tedgIf you're interested in dbusmenu you can start on Launchpad at http://launchpad.net/dbusmenu20:12
tedgFor the most part, application developers don't need to know anything about either of these protocols because they're hidden behind libappindicator which provides a pretty simple interface to both.20:13
tedgThat interface is the AppIndicator object who's C Language documentation is available here: http://people.canonical.com/~ted/libappindicator/current/AppIndicator.html20:14
tedgMuscovy, Working windicators are on the todo list, but with the shorted development time in the Maverick cycle they probably won't make the Feature Freeze cutoff.20:15
tedgSo if you're wanting to implement Application indicators there are a few guides available.20:16
tedgThere is the reference documentation above, but you probably want one of the guides.20:16
tedghttps://wiki.ubuntu.com/DesktopExperienceTeam/ApplicationIndicators#Porting%20Guide%20for%20Applications20:16
tedgThe Wiki goes through examples in a variety of languages.20:16
tedgThere are Mono, Python and Vala bindings in Maverick.  Including GObject Introspection support.20:17
tedgSo I haven't heard of anyone doing it, but Javascript should work too :)20:17
tedgmatttbe, I believe that we are using the same address as KSNI names, so KDE applications do work with the application indicators.20:18
tedgmatttbe, We do register with dbus for two names, one for dbus activations purposes and the other to connect with the KSNI protocol.20:18
tedgOn the topic of application work, I want to again mention the design guidelines.20:19
tedghttps://wiki.ubuntu.com/CustomStatusMenuDesignGuidelines20:19
tedgThe reason being is that many times an Application Indicator isn't what you need.20:19
tedgWe don't want to end up in a situation where people need a 40" screen just to show all the app indicators!20:19
tedgIt's also important to not that the category indicators like the Messaging Menu and/or the Sound Menu might be a better solution for your particular application.20:20
tedgmatttbe, I'm not sure about Cairo Dock in particular, but if the address has changed we'd change too.  We're not intentionally using a different name.  I haven't switched to Maverick yet *blush* :)20:21
tedgSo I wanted to talk a little about an issue that comes up a lot and that's falling back to the notification area.20:22
tedgOf course the default Ubuntu/UNE desktop isn't what everyone on the planet uses (we're working on it, not there yet :) )20:23
tedgSo it's important that we can fallback to using something compatible in the end.20:23
tedgSo libappindicator by default provides a fallback to a GtkStatusIcon that behaves very similar to the Application Indicators.20:23
tedgSome people don't necessarily want to make the same opinionated choices on the design when they're falling back.20:24
tedgWhich is fine, but we don't take in enough information to do anything else.20:24
tedgSo what we instead provide is a way to change how the fallback is handled via subclassing.20:25
tedgThere is two virtual functions fallback and unfallback that can be used to handle the fallback differently.20:25
tedgThis could include anything you possibly want, it's just a function call.20:25
tedgIf you'd like to see an example of that there is a fallback test included in the test suite of libappindicator.20:25
tedghttp://bazaar.launchpad.net/~indicator-applet-developers/indicator-application/trunk/annotate/head:/tests/test-libappindicator-fallback-item.c20:26
tedgFor those who aren't C/GObject programmers there is a lot there that you dont' need to understand.20:26
tedgYou're probably just most interested in the two functions.20:26
tedgIn this case it marks the test as passed/failed based on the calls to the fallback/unfallback functions.20:26
tedgSo, if you're using those functions, you know that they're tested as the test suite uses this feature as well :)20:27
tedgThere is also a signal when a fallback occurs.20:27
tedgI don't think that this is as useful for implementing a fallback, but it could be used in other parts of your code.20:27
tedgThat signal is "connection-changed" which will give you a boolean on the status.20:28
tedgAgain, I don't really recommend that route for fallback, but you *could* do it if you wanted :)20:29
tedgWhen jcastro was asking me about doing this session he said "talk about what's new".  I want to stress, there is nothing new -- we're polishing at this point.20:30
tedgBut that does introduce some change, but there shouldn't be any API breakage, just extensions.20:30
tedgOne of the things that we're planning on supporting is KNSI's support for mouse scroll wheels.20:31
tedgWe'll be adding signals to the object for the scroll event.20:31
tedgAnd then when the mouse is over your icon users can have a "power user" function with the scroll wheel.20:31
tedgThe important thing to realize is that this isn't something most folks will find on their own, so don't make that a critical feature of the app.20:32
tedgTry to keep it something that your advanced users can use as they become more comfortable with it.20:32
tedgWe're also working on adding label into the interface.20:33
tedgThe reason for this is that some applications need custom icons with some text on this.20:33
tedgthem20:33
tedgThings like the temperature or the batter percentage.20:33
tedgbattery20:33
tedg(typing too much)20:33
tedgThere is no reasonable way for them to really make these icons as they don't know the theme that the panel is rendering with.20:34
tedgSo if they make an icon that has black text, they could end up on a dark panel and be unreadable.20:34
tedgYou can see this today with the keyboard selector in gnome-settings-daemon.20:34
tedgWe hope to fix that by rendering the test panel side.20:35
tedgjacob, That is basically the icon policy that GNOME and Ubuntu would like to get to.  Unfortunately we're not close to that overall.20:36
tedgjacob, So hopefully all applications, even with icons on, will end up with something similar.20:36
tedgmatttbe, We try to release version every week for Maverick on Thursdays.20:37
tedgmatttbe, Those in general are pretty stable as we use a Continuous Integration server to make sure they all pass the test suite on every commit.20:37
tedgmatttbe, But, I'm sure there's bugs -- it's software :)20:37
tedgBack to talking about new things we want to provide a way for applications to control some of their ordering, and also allowing users to override this.20:38
tedgThe idea being that if you have two applications, say Getting Things GNOME! and Hamster, you probably want those two next to each other.20:39
tedgIt makes a lot of sense.20:39
tedgFor the first pass we'll probably just provide the mechanisms without any UI or real configurability, but we want to grow that in the future.20:40
tedgAs currently the order is dependent on the users system, so even from Ubuntu machine to Ubuntu machine they could be different.20:40
tedgThis increases "support costs" as if someone calls you on the phone you get to describe the icon instead of saying the "third one"20:40
tedgLast up we want to provide a way to associate the AppIndicator item with the desktop file.20:42
tedgSo we're working with the KDE folks to come up with a key in the desktop file to hold the AppIndicator IDs.20:42
tedgThis will give us a static way to determine which applications we can expect application indicators from.20:42
tedgWe hope to use this to provide better user experiences in the future.20:43
tedgI think the Unity guys might try to get things into Maverick, but I doubt we'll use it for anything in Desktop for Maverick.20:43
tedgOkay, so that's all the material that I wanted to go through.20:43
tedgIs there any other questions?20:44
tedgsao, I believe that the Weather Indicator is being written in Vala.  jcastro do you have a link?20:45
tedgjacob, There is currently an applet that you can install called "indicator-applet-complete" that brings all the indicators into a single menu bar.  I doubt that we'll use that by default in Maverick, but that's the call of the Ubuntu Desktop Team.  The main issue being that the clock indicator doesn't provide all the functionality of the GNOME Applet yet.20:46
tedgjacob, Though, personally, I've switched as I think the tradeoff is worth it.20:46
tedgOkay, thanks everyone for attending.20:48
tedgI'm usually in #ayatana or #ubuntu-desktop if you have further questions.20:48
tedgOr you can join the Ayatana mailing list at http://launchpad.net/ayatana20:48
tedgSorry, that should have been http://launchpad.net/~ayatana20:48
tedgOne is the projects, the "~" is the mailing list.20:49
ClassBotThere are are 10 minutes remaining in the current session.20:50
ClassBotThere are are 5 minutes remaining in the current session.20:55
=== ChanServ changed the topic of #ubuntu-classroom to: Welcome to the Ubuntu Classroom - https://wiki.ubuntu.com/Classroom || Support in #ubuntu || Upcoming Schedule: http://is.gd/8rtIi || Questions in #ubuntu-classroom-chat || Event: Ubuntu Developer Week - Current Session: Kernel Triage - Instructor: JFo
JFoHi folks, I'm JFo (Jeremy Foshee) and I am the Kernel Bug Triager21:01
JFoToday we are going to discuss a bit about triaging kernel package bugs.21:01
JFothis class is going to be something of a follow along for the chat from Saturday's Ubuntu User days21:02
JFologs can be found here for that talk: https://wiki.ubuntu.com/UserDays/07102010/What%20is%20a%20kernel,%20and%20why%20do%20i%20need%20it21:02
JFoso several of the things I'd like to cover are:21:02
JFo1) duplicate bugs and the Ubuntu Kernel21:02
JFo2) The subsystem tagging of kernel bugs21:03
JFo3) triage statuses and the kernel bugs21:03
JFoand 4) The Kernel Triage Summit21:03
JFoplease feel free to ask questions as you see fit by prefacing them with QUESTION:21:03
JFothose of you using Lernid will not need to enter that21:03
JFook, duplicates :)21:04
JFoFor those of you who may not be aware, the Ubuntu kernel team have decided not to continue using duplicates in the current way21:04
JFothis means that, where you would normally have marked bugs that were on the same laptop model, we'd now ask that you do not21:05
JFothis is due to several things, most notably, the fact that not all of the same laptop models carry the exact same chipsets21:05
JFoin some cases bus chips and minor board processors could be from different manufacturers etc.21:06
JFowe have found that minor differences such as these cause us issues when solving bugs21:06
JFoas we have many cases where a fix for one user did not solve other affected users21:06
JFoit was decided that we prefer for anyone affected by a bug to file a ticket for their own issue.21:07
JFoas such we have asked the launchpad team to provide us a way to turn off the ability to mark duplicates21:07
JFoand we are working on ways to preclude apport from recommending apparently related tickets21:08
JFowhile this will add a heavy load to myself and the team, we feel it is imperative that we are able to work seemingly related issues differently21:09
JFothis will also allow us to get a better picture of who is affected by a bug and in what way21:09
JFoany questions on the change to the policy on dupes?21:09
JFook, moving on to item 2 :-)21:10
JFosubsystem tagging21:10
ClassBotpenguin42 asked: OK, so what do you do when you think you have 50 related bugs - do you hae some common bug to attach them all to?21:10
JFopenguin42, no, in that case we would take a look at all of the bugs to identify underlying similarities21:10
JFowe'd then try to fix the underlying problem versus trying to fix symptoms21:11
JFothis would allow us to narrow our work to address the issue in a better manner.21:11
JFoIt is also important to note that it is not the primary goal of the team to solve issues upstream21:12
JFobut this has the added benefit of helping us identify what upstream bugs could be related to a particular group of issues21:12
ClassBotsimar asked: Regarding your duplicate policy, if we have duplicate bugs still the developers can have bugs grouped so they can work on like workable bugs in one go?21:12
JFosimar, we'd prefer not to use the duplicate feature in that way21:13
JFoin a perfect world, we could identify which bugs are actually duplicates and mark them such, but that takes a lot of overhead21:13
JFoin my perfect world, each of our bugs has an upstream bug watch :-)21:14
JFoand we would use those to identify related bugs21:14
JFonow, let me get back to subsystem tagging :)21:14
JFohttps://wiki.ubuntu.com/Kernel/Tagging is the exhaustive listing of tags currently used by the team21:15
JFothere are tags listed from Bugs/Tags/ that have been used for some time21:15
JFoand you will also see that there are subsystem specific tags21:15
JFothis is an effort for us to break down kernel bugs in to a few subsystem categories21:16
JFothis will allow us to triage specific sections that triagers have knowledge in21:16
JFowhile also enhancing our documentation of those subsystems21:16
JFothis will have the added benefit of helping those individuals interested in a particular subsystem to focus their energy and move their knowledge forward as they learn more about the kernel21:17
JFoi hope for this to empower community members to learn more about the bugs they file too21:18
JFoPlease keep in mind that we are currently refining our wiki documentation, so these links I am giving you are probably going to change in the near future21:19
JFothe content on them, that is21:19
JFoany questions on the subsystem tags?21:19
JFook, we will move on to statuses in that case.21:20
JFomost of you are familiar with the bug status, "NEW", "INCOMPLETE", etc.21:20
JFowhat you may not be aware of, is how I use those to process kernel bugs programmatically21:21
JFogiven that at any particular time we currently have over 6000 bugs open against the kernel, it is not realy possible for me to provide a focused answer to each.21:22
JFothis is where the arsenal scripts i use come in handy21:22
JFoand also, in some cases, cause me headaches ;-)21:22
=== ext2 is now known as ext3
JFothe scripts are meant as a method to keep information current in bugs as to testing based on updates we pull in from upstream stable and Debian21:23
JFoas well as determining what information is missing from a bug and requesting that21:23
JFosome people get annoyed with me for sending them an automated response, and I'd prefer not to have to, but this is just not possible.21:24
JFoi am working on a definitive page identifying the benefits of using the scripts, but i have not yet made it available21:25
JFoI hope to do so and link to it from the automated response as soon as next week.21:25
JFothis page should also provide some further information on the scripts themselves and what they do21:25
JFoany questions on the statuses?21:26
ClassBotcharlie-tca asked: should we as triagers be using triaged, or leave that one for you to set?21:27
JFocharlie-tca, I am perfectly happy for you to set bugs to triaged21:28
JFothe only thing i want for them is that they have all the logs, have checked upstream kernels and latest development21:28
JFo:)21:28
JFomy goal is for most of the bugs to be in a triaged state so that they can be pinged when there are relevant updates to the kernel that may affect the specific issues encountered.21:29
JFook, Kernel triage summit21:29
JFoThis will be like an ubuntu user day session in the -classroom channel here21:30
JFobut it will be geared toward the subsystems, and providing those of you interested with a deeper understanding of what information is helpful for what subsystems21:30
JFomy goal is to provide a bit of professional development for those of you interested in a specific piece of the kernel21:31
JFowe will have sessions much like these on bugs in graphics, sound etc.21:31
JFoand there will be representatives from the kernel team, and hopefully some upstreams so that there will be greater coverage for Q&A21:32
JFoone of the main focuses of this summit will be knowledge and documentation21:32
JFoI want the interested parties to broaden their understanding, while at the same time fleshing out or subsystem wiki pages.21:33
JFoThis will most likely be held at the end of August  or the first part of September21:33
JFoany questions on that? :)21:33
JFook, I'm going to add a point that I missed earlier21:34
JFothe Live ISO testing images21:34
=== ext2 is now known as ext3
JFoIt has been my goal for a while now to provide a testing ISO based off of the daily LiveISO image21:34
JFothis ISO will boot straight into the desktop as the ubuntu user21:35
JFoand will provide a series of tests against the most common kernel issues we see21:35
JFoit will enable LoCo teams to do localized testing of the machines available at meetings and Global days21:36
JFowhile at the same time providing the ubuntu kernel team with much needed information on failures21:36
JFomy goal, thanks in very large part to the efforts of bjf21:36
JFois to have these building daily by the end of next week so that we can test them out and start making them available21:37
JFowhether or not that happens... we shall see :-)21:37
JFoany questions on the Triage Summit?21:37
JFoor the Live ISO testing images21:37
JFoI'll take that to mean I have covered these topics thoroughly :-D21:38
ClassBotsimar asked: good work for Live ISO testing images. Great Idea. will this be available on internet.21:39
JFothey will be available via the kernel PPA21:39
JFoI will also have a wiki page describing them and how to create and submit tests for inclusion in the test suite21:39
JFothere will also be a description of the current tests that are available21:40
ClassBotsimar asked: we will be really happy to test !!!21:40
ClassBotcharlie-tca asked: they will include a daily kernel ?21:40
JFosimar, :-)21:40
JFocharlie-tca, they will have what is available to the Live ISO, so it will be the most current development kernel21:41
JFoalong with all other available development packages, with the notable exception of Open Office21:41
JFoand a few others21:41
JFothis is mainly to allow us to add the testing stuff and not go over our space allowance21:42
JFoa brief idea of the tests we have currently are: suspend/resume21:42
JFovideo modesetting21:42
JFosound21:42
JForecording21:43
JFoamong others21:43
JFoall things that are built on the kernel or have kernelspace items21:43
JFoany other things you want to talk about?21:43
JFook, well, thanks for listening and asking questions. It is a lot of information to parse :)21:44
ClassBotpenguin42 asked: Which X version is on those disks? Latest for the distro or an edgers?21:44
JFopenguin42, it will be whatever is rolled for the daily ISO21:45
JFoI couldn't say for sure21:45
JFoI'll hang around until the end of the session if you have further questions.21:45
JFoafter this, i am always available in the #ubuntu-kernel channel along with the rest of the team21:45
JFothanks everyone :-)21:46
JFoI should also mention, the Triage Summit idea came from sconklin :)21:50
ClassBotThere are are 10 minutes remaining in the current session.21:50
JFoThanks folks! I really appreciate all of your questions! :-)21:55
JFosee you next time.21:55
ClassBotThere are are 5 minutes remaining in the current session.21:55
=== ChanServ changed the topic of #ubuntu-classroom to: Welcome to the Ubuntu Classroom - http://wiki.ubuntu.com/Classroom || Support in #ubuntu || Upcoming Schedule: http://is.gd/8rtIi
=== pgraner is now known as pgraner-afk
=== bauerj is now known as bauerj|away
=== dave is now known as Guest98544
=== Guest98544 is now known as arbleow

Generated by irclog2html.py 2.7 by Marius Gedminas - find it at mg.pov.lt!