=== astro76_ is now known as astro76
=== neversfelde|mobi is now known as neversfelde
denndaAh finally...13:07
denndaNext Lesson in 01:53h?13:07
denndaIs that correct?13:08
Unksiin 2:53h13:10
denndaoh, yes13:17
=== never|mobi is now known as neversfelde
warp10Hi all!14:32
db-keenwarp10: hello, you're 01:28h early14:33
warp10db-keen: indeed! But early is better then late, imho ;)14:34
* db-keen concedes (after all, he's been here for over 6 hours)14:35
=== asac_ is now known as asac
=== emgent is now known as emgent`work
phoenix24Is the firefox-session already completed ?15:48
asacphoenix24: will start in 10 minutes15:48
phoenix24this channel itself, I believe ?15:49
phoenix24Oh! asac, you'd be delivering the talk :)15:52
phoenix24Nice to meet ye!15:52
asacok we will start in 5 minutes on firefox 3 extension packaging!!15:55
asacmaybe do the Prerequisites on https://wiki.ubuntu.com/MozillaTeam/Firefox3Extensions/Packaging now so you don't get distracted later on :)15:56
db-keenasac: will questions be in #ubuntu-classroom-chat as usual?15:58
asacdb-keen: yes you can ask questions there16:00
asacHi all!16:00
daishujingood morning!16:00
asacWelcome to Ubuntu Developer Week and welcome to the firefox extension world ;)16:01
InsClusoeasac:  Thank you..16:01
asaci will give first some basic background and then will go on to a practicing part16:01
asaclets get started16:02
asacpackaging extensions is a good starter task as the technical side is rather straight-forward.16:02
asacHowever, nothing comes for free :-P and extensions also have a backdraft: the upstream world is quite different compared to other software we distribute.16:02
asacOne important backdraft is on the communication part with upstream16:03
asacffox extension upstreams usually don't care about properly releasing sources that include license information16:03
asacSometimes they often don't even have a homepage and don't release sources. Further, its sometimes even hard to find an appropriate upstream contact.16:03
asacif we cannot find the required information we should not package it. we should rather contact the developers and ask them for clarifying licensing and so on16:04
asacThats why I created https://wiki.ubuntu.com/MozillaTeam/Firefox3Extensions16:04
asacAt that place we should collect the required information needed to decently maintain a package _before_ we start to package one.16:05
asacSo if you want an extension packaged (or want to package one), adding the required information on that page is required and comes handy later!16:05
asacso much for the basics.16:06
=== neversfelde is now known as neversfelde_
asacif you have any questions afterthis session, you can always ask on #ubuntu-mozillateam16:07
asacok, lets go for some practice ;)16:07
asacplease do the "Before you package an extension" section on https://wiki.ubuntu.com/MozillaTeam/Firefox3Extensions/Packaging16:07
asaci'll wait a bit for those that have joined late to install the basics16:08
=== neversfelde_ is now known as neversfelde
asacits important that you need mozilla-devscript package from my ppa (see wiki page) :)16:09
asacaeh mozilla-devscripts, sorry16:09
asacthis practice part will teach two ways of packaging ffox extensions; both using the new xpi.mk feature shipped by the new mozilla-devscripts16:10
asacsorry: above should have read "please do the Prerequisites on https://wiki.ubuntu.com/MozillaTeam/Firefox3Extensions/Packaging"16:11
asacany questions so far? any problems installing the packages?16:12
asacor branching?16:12
* jetsaredim updating the sources.list16:12
asacok ... ill wait a few more minutes i guess :)16:13
jetsaredimthese bzr commands take a while16:14
asacyes. thats known :) ... but should be pretty fast if you have bzr 1.0  or higher16:14
Grazienojetsaredim: yes16:14
asacso ubufox.upstream will be our upstream source code we use to practice16:15
asacwe will produce a package called "myubufox" based on that :)16:15
asaclet me know when you are ready ;)16:16
Grazienoasac: I'm ready...I think :)16:16
asacyeah great.16:17
asacso the first approach is to package .xpi files directly16:17
asacwe usually don't want to package .xpi files, but if upstream doesn't release proper sources, we can still do it16:17
asacto produce an ubufox.xpi, please change to the ubufox.upstream directory and run16:17
asac"sh build.sh"16:17
asacnow lets assume that thats the extension you found on the net that you want to package, we first have to create a proper orig.tar.gz out of it16:18
asaclets assume that the package has version 0.1 ... then create a directory myubufox-0.116:19
asacand copy the ubufox.xpi into that directory16:19
asacthe name of the .xpi file doesn't matter much, so you can just keep it16:20
asacjust to ensure that you have the right directory layout, here its how it looks for me now: http://paste.ubuntu.com/4843/16:20
asacif you are not yet there, let me know :)16:21
asacok ... next create an orig.tar.gz out of that16:21
asac tar cvzf myubufox_0.1.orig.tar.gz myubufox-0.1/16:22
Grazienoasac: ok16:22
phoenix24asac: ok!16:22
asacthe XPI.TEMPLATE you branched further above is a pretty good template and should work for a lot of extensions16:22
asacso just copy the debian directory out of it into your myubufox-0.1 directory16:23
asaclike: cp -r XPI.TEMPLATE/debian myubufox-0.1/debian16:23
asacmy ubufox directory looks now like: http://paste.ubuntu.com/4845/16:24
asacok lets look at the debian/rules ... at best open it in an editor16:25
asacthere are a few variables with some documentation on what they do. for basic .xpi based packages you should not need to change anything except the package name16:26
Grazienoasac: phoenix24 ok!16:26
asacMOZ_EXTENSION_PKG := example-extension => MOZ_EXTENSION_PKG := myubufox16:26
asacfor the second example later, we make use of MOZ_XPI_BUILD_COMMAND  as well, but for simple .xpi thats not needed16:27
asacok, upon request here the folder structure i pastebined above (for the logs)16:28
asac$ find myubufox-0.1/16:28
asacthats how it looked like before we started looking at the debian/rules file16:28
asacbtw, the magic in the rules file is the include include /usr/share/mozilla-devscripts/xpi.mk which makes everything else pretty trivial16:29
asacyou can look at that file after the session  if you are interested in makefile/cdbs wizardry ;) ... but it should not be required to understnd that file16:29
asacok, i assume that you have changed the package name in debian/rules?16:29
Grazienoasac: yes!16:30
asacok good ... then we need to fix debian/control16:31
asacits again just the package name. for our case we use myubufox for Source: as well as for Package:16:32
asacusually you would fill in a good package description, set a proper maintainer as well, but we don't need this for practice16:32
asacfurther the section might be wrong, as there might be office extensions and so on16:33
asacok after fixing the debian/control file we are pretty much done16:35
asacfor me it looks like this now:16:35
asacSource: myubufox16:35
asacSection: web16:35
asacPriority: optional16:35
asacMaintainer: Yourname <your@email.tld>16:35
asacBuild-Depends: debhelper (>= 5), cdbs, mozilla-devscripts (>= 0.5~)16:35
asacXS-Vcs-Bzr: https://code.launchpad.net/~LPID/firefox-extensions/example-extension.ubuntu/16:35
asacStandards-Version: 3.7.316:35
asacPackage: myubufox16:35
asacArchitecture: all16:35
asacDepends: firefox | firefox-3.0 | firefox-216:35
asacDescription: one line for short description Long descriptions can span multiple lines . and as above empty lines16:35
asacwell .. some linebreaks removed for the extensions16:36
asacbut you get the point i guess16:36
asaci just changed the Source: and Package: line16:36
asacok last thing: fix the version and the package name in changelog16:37
asac.e.g debian/changelog16:37
=== tsmithe` is now known as tsmithe
asacand of course your name16:37
asacare you ready?16:38
asacthen give it a spin and produce your binary test package :)16:38
asacjust run: debuild -b16:38
asacthe output i get during that build is like: http://paste.ubuntu.com/4847/16:39
asacat the end of the build i get some lintian warning/errors:16:40
asacE: myubufox_0.1-1_i386.changes: bad-distribution-in-changes-file UNRELEASED16:40
asacE: myubufox: copyright-should-refer-to-common-license-file-for-lgpl16:40
asacW: myubufox: maintainer-not-full-name Yourname16:40
asacW: myubufox: new-package-should-close-itp-bug16:40
asacW: myubufox: wrong-bug-number-in-closes l3:#XXXXXX16:40
asacthe first error would be fixed by using hardy instead of UNRELEASED16:40
asacand the second one, by filling the debian/copyright file with proper content16:40
asacthe others should be self-explanatory16:41
asacbut we don't need to fix them ;)16:41
asacok ... do you all have a myubufox_0.1-1_all.deb now?16:42
Grazienoasac: yes16:42
asacGrazieno: congrats!!16:42
asacyou win ;)16:43
Grazienoasac: :)16:43
asacyou could install it now and it should install the extension in your firefox. you don't need to test that now, if it doesn't work then its a bug in mozilla-devscripts that you can always bug me about ;)16:43
asacbut it should work :)16:44
asac(well maybe you need to uninstall the main ubufox package first, because they have the same extension id)16:44
asacok ... lets go on with second approach then (which should be quicker as we know how it works a bit)16:46
Grazienoasac: How can I see the extension in firefox? Is it possible?16:46
asacGrazieno: well ... you need to uninstall the ubufox package first16:46
asacthen you should see the new one16:47
asac(they conflict and firefox will just display one)16:47
asacok the second approach is to use the realy ubufox sources16:47
asacand we will use bzr for real :)16:48
asacto start you create a package branch locally thats based on the ubufox.upstream branch you have16:48
asacjust do: bzr branch ubufox.upstream myubufox.ubuntu16:48
asacthat should create a new directory "myubufox.ubuntu"16:48
asacnow the same procedure as before: copy the debian/ directory from the XPI.TEMPLATE directory into it16:49
asaccp -r XPI.TEMPLATE/debian myubufox.ubuntu/debian16:49
asacyou can also use the debian directory from the other package we created16:49
asacso cp -r myubufox-0.1/debian/ myubufox.ubuntu/debian16:50
asacnow commit those changes to your packaging branch and push it to launchpad ;)16:50
asac^^ thats the last step in section "Packaging Procedure"16:51
asacyou are still up?16:51
asacor should i wait a bit ?16:51
asacas we don't have a .xpi in the upstream branch anymore, we have to produce one before the package building can go on.16:52
asacyou can enable that by setting a proper build command in debian/rules16:53
asacconventiently ubufox has a build.sh script to produce the .xpi ... so you can just enable:16:54
asac#MOZ_XPI_BUILD_COMMAND = sh build.sh16:54
asacMOZ_XPI_BUILD_COMMAND = sh build.sh16:54
asacafter that edit you can commit this to your packaging branch like:16:55
asacbzr commit -m "* enable sh build.sh to build the .xpi" debian/rules16:55
asacok, to build the package, just run debuild -b again16:56
asacif you have that ... then we are through!16:56
asacif you couldn't finish everything, but want to learn more, you can always join #ubuntu-mozillateam and ask questions16:57
asacsorry for the quick pace in the end ... 1hour is so little ;) ... i tried to best to squeeze quite a bit out of it and show you that most extensions are pretty easy to package16:58
asacone more question which i find important:16:58
asac jetsaredim> Q: what is the reason to package an extension vs letting people just get them from the addons.mozilla site?16:58
WutzThanks for the lesson16:58
asacthats frequently asked. but the answer is simple. The same reason why we want to package everything16:58
asacwe can better integrate it and quality assure it16:59
jetsaredimfair enough16:59
AlucardProf. Asac: thank you very much!16:59
asacand even auto-updates are not wanted in many environemtns16:59
asac(like corporations)16:59
asacthey want to test and only get tested stuff16:59
asacwhich is what we provide16:59
asacthanks all!16:59
asaclooking forward to see you all in #ubuntu-mozillateam helping to get a lot of extensions ready for hady16:59
Grazienoasac: Thanks a lot!16:59
asacyou can make a big difference!16:59
barccasac: thanks!17:00
* asac hugs you all17:00
asacnext one please ;)17:00
asac \o/17:00
liwI guess it's my turn now17:00
liwI'm going to lead a session on writing scripts for automated desktop testing17:01
liwI would like to have a volunteer to relay questions from the -chat channel so that I don't have to do that at the same time as talking here -- anyone?17:02
liwbut let's start17:02
liwthe first part of this session is going to be about running existing scripts17:03
Grazienoliw: I can do it17:03
liwGrazieno, thank you!17:03
liwthere is going to be a nice framework to run the tests automatically, but that isn't done yet, so we're going to concentrate on the scripts themselves, running them manually and writing them17:04
liwwe're using the AT-SPI framework for the scripts; it was originally written for accessibility, but provides a way for external programs to poke GUI applications and get them to do things, and to examine some of their internal state17:05
liwAT-SPI only works in GNOME, not in KDE (and may work in Xfce, but I haven't investigated)17:05
liwto enable it, go to System -> Preferences -> Universal Access -> Assistive Technology, then tick the "Enable..." checkbox17:06
liwyou may want to set up a dedicated account for this, though17:06
liwor run things in kvm, or virtualbox, or another emulator17:06
liwbecause there's a fair chance that the scripts don't work they way they're supposed to work, and they may then break things17:07
liwI use kvm myself, and I am making a Qemu image file (which kvm can use) that has everything already set up to run the tests, but that's still uploading (it's amazing how long it can take to upload big files), so I won't point you at the url yet17:08
liwkvm is basically qemu, but with hardware acceleration; you can run the following command to see if your CPU can run kvm: egrep '^flags.*(vmx|svm)' /proc/cpuinfo17:09
liwif that returns anything, and you want kvm, upgrade to hardy, install the kvm package, do "adduser $LOGIN kvm" (where $LOGIN is your username), and log out and log back in again17:09
liwoh, and I forgot: if you want to enable the assistive technologies stuff, you need to log out and back in again as well, it's not enough to just tick the checkbox (the AT-SPI services need to be started when you log in)17:10
liwanyone here already have an environment where they have assistive technology enabled?17:11
Grazienoliw: ok, I'll be back :)17:11
liwif anyone else wants to enable it, now would be a good time, I can wait a few minutes17:11
Grazienoliw: ready!17:12
liwhttps://wiki.ubuntu.com/Testing/Automation/DogtailTutorial has instructions for enabling AT and is generally useful for this automated testing stuff, please bookmark17:13
liwok, next step is to install the python-dogtail package17:14
liw(please do so now  if you want to experiment today)17:14
liwalso, we're going to be using a sample script for gThumb, so install that, too, if you don't have it already17:14
liwhttps://wiki.ubuntu.com/Testing/Automation/Coverage has some scripts that have been written and collected -- there's way too few of them, since I've been tinkering with the framework to run them instead of writing new scripts, but let's hope some people here will get excited and help with the script writing (which is the more interesting part of the job) :)17:15
liweddyMul, just in case you missed things: https://wiki.ubuntu.com/Testing/Automation/DogtailTutorial is a useful link, and if you want to play with things tonight, install python-dogtail and gthumb packages17:16
eddyMulliw: thanks17:17
liwthose wanting to try running a script, download the gthumb.tar.gz file from the Coverage page (url above) and unpack it17:17
liwthen, from the command line, enter the directory with the unpacked files, and run this command: LC_ALL=C python gthumb-preferences.py17:18
liwmagical things should now be happening17:18
liwis anyone seeing magic?17:18
liwor is anyone trying to see magic and failing?17:18
Grazienoliw: failing..17:19
liwGrazieno, what's the error?17:19
Grazienoliw: http://paste.ubuntu.com/4851/17:20
liwGrazieno, weird... are you running this in hardy?17:20
Grazienoliw: yes :)17:21
Grazienoliw: wrong?17:21
liwGrazieno, hardy is right17:21
eddyMulliw: gutsy is wrong?   :(17:22
liweddyMul, I know hardy is right, but I don't know if gutsy will work or not17:22
eddyMulliw: failed for me: http://paste.ubuntu.com/4852/             :(17:22
liwok, this is a bit disturbing, but I think I'll want to continue with the session -- I'd like to help you guys get this working, but we can perhaps do that later?17:23
liwis that ok?17:23
Grazienoliw: yes!17:23
eddyMulliw: yes. carry on.17:24
liwI should'v emade a movie about how the gthumb-preferences.py script runs and opens gthumb and toggles various preferences17:24
liwyou'll have to just believe me that it does...17:24
liwthe crucial bit here would have been to get it to work so that we can progress to writing new scripts17:25
liwbut well, we'll fix that later17:25
Grazieno<jimcooncat>QUESTION: I see dogtail can work with GTK-enabled OpenOffice; is this the default in gutsy?17:25
liwthe way we determine that a script worked is that it exits with a zero exit code -- this will hide some problems, but we'll worry about those at a later stage -- if a scipt crashes, it will return non-zero, so we'll notice that17:26
liwjimcooncat, I don't know if that is the default in gutsy, sorry17:27
heno_It is, yes17:27
jimcooncatthanks, this will be very useful17:27
liwbut more generally speaking, AT-SPI / dogtail should be able to work with any gtk+ application, with few exceptions17:27
heno_I've run dogtail scripts on openoffice17:27
liwoh, and to see the exit code of a script, run this right after the script: echo $?17:28
heno_openoffice also works fairly well with Orca the screen reader17:28
liw$? is the shell's charming way to express "exit code of the previous command217:28
heno_and that relies on AT-SPI17:28
heno_(sorry to interrupt)17:28
liwyeah, at-spi (and atk from -chat) is all part of the assistive technology stuff, and it's meant for screenreaders and such aids, and the way we're using it for testing is really an afterthought, but it works (really! it does!)17:29
liwok, my qemu image upload finished, so you should be able to download http://people.ubuntu.com/~liw/autoguitest/autoguitest.qemu.lzma for a working hardy i386 basic gnome setup17:29
liwuncompress with unlzma, and run with: kvm -m 512 -hda autoguitest.qemu -snapshot17:30
liwthe -m 512 is the amount of emulated memory, and -snapshot means that any changes you make won't be writte into the image (also meaning you will lose them once you quit kvm)17:31
liwbut continuing to writing scripts17:31
liwer, not yet17:31
liwthe username is "tomjon", the password is "password1" (the industry standard password!)17:31
liwand now, writing scripts17:31
liwthe easy way of writing scripts is by using the dogtail-recorder program (part of python-dogtail) and use the program you want to write a test for with the keyboard only17:32
liwdogtail seems to be missing almost all mouse events, but gets keyboard events reliably, so it's best to stick to keyboarding17:32
liwso: start the program you want to write a script for, start dogtail-recorder, click on "record", do stuff, click on "stop", and then on "save", and you have a script17:33
liwthis sounds too easy and wonderful to be true17:33
liwand it is17:33
liwthe scripts pretty much always need some manual tweaking17:33
liwhttp://paste.ubuntu.com/4837/ has one example script17:34
liwstraight from dogtail-recorder17:34
liwthe first problem is that this script does not actually start the program, it assumes the program is already running17:34
liwwe can fix this by replacing the first two "focus...." lines with "run('gcalctool')"17:35
liwhttp://paste.ubuntu.com/4836/ -- this is the script after editing -- there's more changes, I'll go through them next17:35
liwI find that it is best to write the scripts such that they are independent: they don't assume the program is already running, or anything else, except possibly that there aren't other programs running at the same tiem that might interfere (jimcooncat, hi), because those other programs are going to make things very complicated if we allow for them17:37
liwso, at least for now, we're keeping things simple17:37
liwthe other problem with the original script in my pastebin is that I messed up while keyboarding and some silly and wrong stuff got recorded17:37
liwbasically: I was driving the app with the keyboard, but making assumptions about the order of things in menus, which is dangerous, if we want to keep the scripts running from release to release17:38
liwand we want to be able to run the scripts from release to release, if possible17:38
liwless work for testers... :)17:38
liwso, I removed some useless keyboarding from the beginning of the script17:39
liwthe final difference is that dogtail-recorder inserts focus.something stuff in various places, and it is meant to do that17:39
liwthose focus things affect dogtails's idea of what has focus, not the window manager's17:39
liwunfortunately, when I run the scripts, the focus setting doesn't really work, and I'm not entirely sure why, but luckily it is OK to just remove them, at least as long as we stick to an application with one window (and no dialog windows)17:40
liwso the new version of the script is much shorter, and just toggles the various settings in the View menu of gcalctool17:40
liwany questions about this so far?17:41
liwthose interested in danger and excitement may want to save http://paste.ubuntu.com/4836/ to foo.py and run it and see if it works17:41
Grazienoliw: it's ok for me17:42
jimcooncatSo I can intersperse python code with the dogtail commands?17:42
liwoh, right: the dogtail scripts are pure Python code, which calls the dogtail Python library17:42
liwso if you know what you're doing, you can add any Python stuff in there that you wish17:42
pranithis this where the bughelper session going to be held?17:43
liwgetting scripts to work is sometimes a bit of a hassle: I haven't figured out a way to do it systematically yet, so that things always work the first time, but a little tweaking is usually all that is required17:44
liwit's best to keep scripts fairly small -- this means that when they break, or when they find a problem, it is easier to see what happens17:44
liwa 1000 line script that tests all of an application is harder to debug than a hundred 10-line scripts that each test a small part of the application17:45
pixelpapstpranith: you're interrupting a running session. join #ubuntu-classroom-chat and i'll fill you in17:46
pranithoops, sorry everyone17:46
liwif you write any scripts, we would like to ask you to upload them to https://wiki.ubuntu.com/Testing/Automation/Coverage and we can hopefully include them in the automatic desktop testing suite and eventually run them automatically as part of the Ubuntu release process17:46
liwif you can attach a small text file that explains what the tests are about (or include that in comments in the script itself), even better, but as long as you get scripts done, we're happy :)17:47
liwso, any questions now?17:48
allinsanecan't get dogtail to run do they have an IRC?17:48
liw#dogtail on this IRC network, but I don't know how active that is17:48
jimcooncatCan dogtail read text from a widget back into a python variable?17:49
Grazieno<phoenix24_> QUESTION: Where can I get the schedule for the #ubuntu-classroom ?17:49
liwjimcooncat, in theory, yes, through the at-spi interfaces, but I'm not sure how to do that17:49
liwphoenix24_, https://wiki.ubuntu.com/UbuntuDeveloperWeek17:49
liwok, I think we're about done, then ... ahead of time, even (my keyboard is smoking and my fingers are numb...)17:52
jimcooncatliw, what kinds of script would you like to see on your wiki page?17:53
liwjimcooncat, any script that verifies that some part of a GUI application in Ubuntu works17:54
liwjimcooncat, anything that interests you is good, and we're most interested in stuff that is included in the default installation17:54
liwthose who had trouble getting dogtail to work: I am goign to have to leave in a few minutes, and I'm at fosdem over the weekend, but e-mail me at lars@canonical.com or ask me on irc on Monday, and I'll help you as best I can17:55
liwthank you, everyone17:56
* liw bows and exits gracefully17:56
Grazienoliw: very thanks!17:56
barccliw: thanks17:56
Grazienoa few minutes until Brian Murray and Markus Korn with Bughelper17:58
bdmurrayGrazieno: Shall we start now?18:00
thekornI'm ready :)18:01
bdmurrayHello thekorn and I devlop the bughelper suite and python-launchpad-bugs and wanted to tell you about how they can help you work with bug reports.18:02
Grazienobdmurray: yes, sure!18:02
bdmurrayIf you want to tryout the examples we provide in our session, please install bughelper and python-launchpad-bugs. Some of the examples will only work with the latest versions of this tools.18:02
bdmurraythekorn has setup a ppa for the latest version of them and you can get them by adding     *18:03
bdmurraythekorn has setup a ppa for the latest version of them and you can get them by adding           deb [WWW] http://ppa.launchpad.net/bughelper-dev/ubuntu hardy main18:03
bdmurrayto your /etc/apt/sources.list, and replace 'hardy' with the version of ubuntu you use18:03
bdmurrayThen you can should update via 'sudo apt-get update' and install bughelper and python-launchpad-bugs18:04
thekornpranith asked: 'what all packages do we need to install to get started?'18:05
bdmurraySo what is python-launchpad-bugs?  It is a python interface to work with bugs, and blueprints to a degree, in Launchpad.18:05
thekornsorry ;)18:05
bdmurrayYou should install bughelper and python-launchpad-bugs to get started.18:06
bdmurrayBughelper is a suite of utilies that uses python-launchpad-bugs to help you find specific bugs in Launchpad.18:06
bdmurrayWe'll start off talking about the bughelper suite and then move on to python-launchpad-bugs.18:06
bdmurrayThe bughelper suite has 3 main applications - buginfo, bugnumbers and bughelper18:07
bdmurraybuginfo is designed for reporting information about one specifc bug18:07
bdmurrayfor example 'buginfo --title 38442' will return the bugs title18:07
bdmurrayWhile bugnumbers is designed for returning a list of bugs based off a query in launchpad18:08
bdmurrayStarting points for a query include '-p' for a package in Ubuntu, '-l' for a url of a search in Launchpad18:09
bdmurrayOr now you can search a whole distribution using '-D' or an upstream project using '-P'18:10
bdmurrayUsing those starting points you can then filter using features in Launchpad (bug status and importance) and some not in Launchpad18:10
bdmurraysome features not in Launchpad are querying on the quantity of duplicates, subscribers, comments, attachments18:11
bdmurrayin addition to the date or author of the last comment or the bug reporter18:11
bdmurrayFor example lets say I'm the gdm maintainer and I know Brian Murray reports some useful bug reports I could find all the bugs he's reported using 'bugnumbers -p gdm --reporter=brian-murray' or if I wanted just the new ones I could add that as a filter too so 'bugnumbers -p gdm --reporter=brian-murray --status New'18:11
bdmurrayAnother example is xorg bug reports which should always contain 2 attachments /etc/X11/xorg.conf and /var/log/Xorg.0.log. We could look for New bug reports with more than 1 attachment using 'bugnumbers -p xorg --na ">1"' to find "more complete" bug reports that might be worth triaging first.18:12
bdmurrayI run reports on busy packages for bugs with more than 2 duplicates, more than 5 subscribers and more than 5 comments at http://people.ubuntu.com/~brian/reports/18:13
bdmurrayAdditionally, you can modify the output of bugnumbers - formats available include just the bug numbers, urls, moinmoin wiki markup, html to name a few18:13
bdmurrayYou can also check out statistics for your package via 'bugnumbers -p gnome-power-manager --stats -C' where -C includes closed bug reports18:14
bdmurrayAre there any questions about buginfo or bugnumbers?18:14
phoenix24_bdmurray: QUESTION: Do the "bughelper python-launchpad-bugs" support Proxy Server ?18:16
bdmurraythekorn: Do you know the answer to that?18:16
thekornphoenix24_, I did not try it with the latest code,18:16
thekornbut we had a bugreport on this in the past18:17
thekornbut I'm not sure18:17
Grazienobdmurray: I think does not works18:17
bdmurrayOkay, we'll look into that then.  Anything else?18:18
yuriybdmurray: QUESTION: could you elaborate on the usage of -l? what urls can you/ are you supposed to give it?18:19
bdmurrayyuriy: you can give it any valid search in Launchpad.  Let's say we wanted to find bugs tagged apport-bug with more than 2 attachments.  We could use 'bugnumbers -l <lpsearch> --na ">2"'18:20
bdmurrayIt'd be useful to use a url search in this case because those bugs be reported about multiple packages.18:21
bdmurraySo your starting point really depends on the scope of bug reports you want to find.18:22
yuriybdmurray: so you would just search whatever you want on launchpad, then copy/paste the resulting URL?18:22
bdmurrayyuriy: that's correct the advantage here is that you could have it then output into html or moinmoin markup or add an additional filter that doesn't exist in launchpad18:23
bdmurrayDoes that help?18:23
yuriybdmurray: yeah, thanks18:23
yuriybdmurray: QUESTION: is there API documentation online for python-launchpad?18:24
bdmurrayyuriy: yes, we'll get to that shortly18:24
bdmurraymoving on18:24
bdmurraybughelper, the application, searches bug reports and attachments for a specific string and provides with a clue about that bug18:24
=== emgent`work is now known as emgent
bdmurrayclue files use a separate bzr branch bughelper-data and are stored on your local disk in ~/.bughelper/packages18:25
bdmurraythis is a separate project in Launchpad - https://code.launchpad.net/bughelper-data/ and anyone in the bugsquad can add clues for packages so feel free to add clues for your package18:25
bdmurrayet's have a look at '~/.bughelper/packages/bughelper.info' as an example18:26
bdmurraythis file is also online at http://tinyurl.com/2zwm7a18:26
bdmurrayas you can see clue-file are in a xml format and can contain multiple clues18:26
bdmurrayyou can combine operations by using logical operators like 'and' or 'or'18:27
bdmurraythis is done in the "contains" portion of the clue file18:27
bdmurrayRegular Expressions are also supported as you can see in the first clue, this clue matches all bugs with 'importance' set to 'Undecided' and which are tagged with 'xpath' or 'commandline'18:27
bdmurrayWhen a bug with those attributes are found we'll be presented with the hint in <info>18:28
bdmurrayThis can be useful for finding duplicate bug reports or managing bug workflow18:29
bdmurraySo a crash report might have a specifc string in it and we can search all bug reports in a package for that string18:29
bdmurrayOr the kernel team wants confirmed or triaged bugs assigned to a specific team18:29
pranithbdmurray, QUESTION: can you give us an example so that we can see it live?18:29
bdmurrayHere is the output of a matched clue:18:30
bdmurrayhttp://launchpad.net/bugs/191834 [update-manager (Ubuntu): New/Undecided] - This is expected when someone is running a development release of Ubuntu18:30
bdmurrayWe are presented with a link to the matched bug report and a hint as to what the issue might be18:31
bdmurraypranith: Is that what you are looking for?18:31
bdmurrayWriting clue files is a way for us to easily share our knowledge with other bug triagers18:32
pranithbdmurray, how do i get this bug report using bughelper?18:32
pranithbdmurray, ok18:32
pranithbdmurray, i got it now18:32
bdmurraypranith: via 'bughelper -p <package>'18:32
bdmurrayyou can add additional filters too like if you only wanted to search new bugs for a specific string18:33
bdmurraythat would be 'bughelper -p <package> --status New'18:33
pranithbdmurray, thanks, i got it18:33
bdmurrayWe have time for one more question about bughelper before moving on to python-launchpad-bugs18:34
bdmurrayI'll hand it over to thekorn then18:35
thekornok, let's have a deeper look at18:35
thekorn== python-launchpad-bugs ==18:35
thekorn 18:35
thekornpython-launchpad-bugs allows you to access bugs.launchpad.net via python. This python module is used by many tools like apport, ubuntu-dev-tools and of course bughelper and bugnumbers.18:35
thekorn 18:36
thekornLet me give you a short "Howto" on using python-launchpad-bugs. This requires some basic understanding of python.18:36
thekorn 18:36
thekornLet's start a python session and do some general preparation:18:36
thekorn    >>> import launchpadbugs.connector as Connector18:36
thekorn    >>> from launchpadbugs.basebuglistfilter import URLBugListFilter18:37
thekorn 18:37
thekornOk, so far so good, let's get a list of all open bugs in the bughelper project18:37
thekorn    >>> BugList = Connector.ConnectBugList()18:37
thekorn    >>> bl = BugList("https://bugs.launchpad.net/bughelper/+bugs")18:37
thekornEach member of this list has attributes like 'bugnumber', 'url', 'status' and 'importance'.18:38
thekorn 18:38
thekornGetting filtered lists is also very easy:18:38
thekorn    >>> bug_filter = URLBugListFilter()18:38
thekorn    >>> bug_filter.add_option("status", ("New","Confirmed"))18:39
thekorn    >>> bug_filter.add_option("importance", ("Medium",))18:39
thekorn    >>> bl = BugList(bug_filter("https://bugs.launchpad.net/bughelper/+bugs"))18:39
thekornIt's also possible to use any python functions as a filter, but this would go too far right now.18:40
thekorn 18:40
thekornany questions so far?18:41
praniththekorn, this is how the bughelper gets the list of bugs?18:41
thekornpranith, yes bughelper/bugnumber is using python-launchpad-bugs to get buglists etc18:42
thekorn 18:42
thekornOkay, that's all about bug lists for now, for more information please visit http://tinyurl.com/yrmze918:42
thekorn 18:43
thekornyuriy, ^ this is one part of our API documentation18:43
thekornNow, let's have a look on how to handle bugreports with python-launchpad-bugs:18:43
rzrhi there18:44
thekorn    >>> Bug = Connector.ConnectBug()18:44
thekorn    >>> b = Bug(123456)18:44
thekornThe argument of Bug() can either be a bug number, an url of a bugreport or an element of a BugList-object18:44
thekorn 18:44
thekornThere is a huge amount of attributes of a bug-object. You can access almost all information of a bugreport.18:45
thekornLet's have a look at some examples:18:45
thekorn    >>> b.url18:45
thekorn    'https://bugs.launchpad.net/ubuntu/+source/xine-lib/+bug/123456'18:45
thekorn    >>> print b.subscriptions18:45
thekorn    set([<user ken-paulsen (Valyander)>, [...], <user kubuntu-sujee (LinuxLover)>])18:45
thekorn    >>> print b.comments18:45
thekorn    [<Comment #1 by kubuntu-sujee on 2007-07-03 07:17:39 UTC>,[...],<Comment #6 by bersace on 2007-09-30 22:04:49 UTC>]18:46
thekornFor a list of all attributes of a Bug-object and some examples on using these attributes have a look at http://tinyurl.com/2mboze18:46
thekorn 18:46
thekornSo far, we have only read bugs, but with python-launchpad-bugs you can also change bugreports in a very easy way!18:46
thekornFirst of all, only registered user can change bugreports in launchpad, so let's authenticate with our account data:18:46
thekorn    >>> Bug.authentication = {"password":"<your-password>","email":"<your-login-email>"}18:47
thekornThere is also another possibility of authentication: you can use a mozilla cookie-file (this for example works for cookies created by epiphany or firefox < 3.0)18:47
thekorn    >>> Bug.authentication = "/path/to/the/cookiefile/cookie.txt"18:47
thekorn 18:47
thekornNow I want to show you, as an example, how to change the status of a bug:18:48
thekorn    >>> demo = Bug(193948)18:48
thekorn    >>> demo.status18:48
thekorn    'New'18:48
thekorn    >>> demo.status = "Invalid"18:48
thekorn    >>> demo.commit()18:48
thekornUntil you call the 'commit()'-method all changes are local, with 'commit()' you try to commit all changes you did locally to launchpad.18:49
thekorn 18:49
thekornyuriy> thekorn: QUESTION: can you authenticate using an ssh key?18:49
thekornno, py-lp-bugs do not support this18:50
thekorn 18:50
thekornLike this you can for example change the description, add comments or attachments, subscribe to a bug or change the tags.18:50
thekorn 18:51
thekornLet's have a look at two more complex examples.18:51
thekornYou can get this scripts here: https://wiki.ubuntu.com/BugHelper/Dev/python-launchpad-bugs/Examples18:51
thekornThese two scripts show you how to use python-launchpad-bugs to do things you can't do in launchpad itself.18:51
thekorn 18:51
thekornLet's say you are a developer of an upstream project in launchpad. When you create a package of your tool and build it for ubuntu, bugs in ubuntu are closed by the (LP: #123456) syntax, but upstream bugs were not. The first example also closes this upstream bugs in your project and adds a comment containing the changelog-entry.18:51
thekorn 18:52
thekornI wrote the second example few days ago when we had all these python-central bugreports. This example returns you a list of bugs created in ubuntu after 2008-02-18 and filters this list by the following criteria:18:52
thekorn    * 'pycentral' or 'python-central' in the content of the bugreport (that's no magic, launchpad can do this :))18:52
thekorn    * an attachment called 'DpkgTerminalLog.gz' which contains 'pycentral' or 'python-central' (this is magic! no way to do this in launchpad)18:53
thekorn 18:54
thekorn<RainCT> QUESTION: Since the last python-launchpadbugs update I get Ā«AssertionError: Parsing of this page (https://bugs.launchpad.net/ubuntu/+bugs?field.searchtext=[.........]) is not supported by python-launchpad-bugsĀ» when I run some scripts I had that used it... What changed?18:54
thekornthat's simple you need either the latest version in hardy, or the latest versions of py-lp-bugs from the team PPA18:55
thekornbecause the way launchpad presents the data changes with almost evry update18:55
thekornbut it should be fixed with the latest version of py-lp-bugs18:56
thekorn 18:56
thekornRainCT, I hope this helps18:56
thekornas an explanation18:56
thekornlet's move on18:57
thekorn 18:57
thekornAs a last example I want to show you how to create a bugreport with python-launchpad-bugs, it's only one line of code!18:57
thekorn    >>> b = Bug.New(18:57
thekorn    ...    product = {"name":"buglog-data"},18:57
thekorn    ...    summary = "this class is almost over",18:57
thekorn    ...    description = "UDW rocks! - but we need more time to show all features of bughelper and py-lp-bugs")18:57
thekornThis creates a new bugreport in the 'buglog-data'-project, if you would like to file a bugreport in ubuntu use18:57
thekorn    'product = {"target": "ubuntu", "name": "my-package"}'18:58
thekorn 18:58
thekornOk, that's all about python-launchpad-bugs for now, time for some questions!18:58
thekornno questions?18:59
bdmurrayI realize this is a lot to absorb and think about18:59
mruizgo go pedro_ !18:59
thekorn 19:00
thekornIf you would like to use bughelper and/or python-launchpadbugs and have any questions, or even better if you want to help us improving this two packages, this are ways to get in with us:19:00
dholbachthanks thekorn, thanks bdmurray - you guys ROCK! :)19:00
forsaken_do other bug trackers have an API?19:00
* thekorn hugs dholbach 19:00
thekorn    * bughelper has a separate mailing list, bughelper@l.u.c19:00
thekorn    * browse https://launchpad.net/python-launchpad-bugs and https://launchpad.net/bughelper to file bugreports or get the code19:00
* dholbach hugs thekorn back19:00
thekorn    * for more information check out our wiki pages at https://wiki.ubuntu.com/BugHelper19:01
thekorn    * and last but not least ping us in #ubuntu-bugs19:01
praniththekorn, bdmurray thanks for the class. it was really informative19:01
bdmurrayThanks for coming to our class.19:01
thekornthanks for joining our session!19:01
cody-somervillewoot :)19:02
pedro_Hello, are we ready ?19:02
dholbachNext up is Pedro Villavivencio, member of the QA and the Desktop mafia!19:02
=== holloway_ is now known as holloway
dholbachHe promised to plug https://wiki.ubuntu.com/5-A-Day a couple of times, thanks a lot for that pedro_ :-)19:03
dholbachpedro_: the stage is yours :)19:03
pedro_thanks dholbach!19:03
* mruiz waves19:03
pedro_hello everybody19:03
IulianHi there!19:03
pedro_how many people we have here, can you raise your hand?19:03
phoenix24_Hi pedro_ !19:03
IulianI am19:03
fvenegas_hi pedro!19:03
pedro_good! ok i'll going to introduce you into the triage world19:04
pedro_Iulian: offered himself to moderate the questions19:04
pedro_he's also a member of the bugsquad :-)19:04
pedro_ok so what's "TRIAGE" all about19:05
pedro_we often explains that the "triage" is very similar to the process that people do at the hospitals and i'm referring to the process of separating the very badly wounded from those who are lightly wounded19:05
pedro_for us it's the process of separating and identifying bugs that are most severe and useful for the developers to fix19:06
rzrdoes this mean separating the injured part of body  ?19:06
pedro_a bug became "triaged" when it have all the information required and it have an status and an importance19:07
pedro_one of the teams that do this at Ubuntu is the BugSquad team19:07
pedro_it's an open team and everybody can join19:08
pedro_and you may also want to have a look to https://wiki.ubuntu.com/BugSquad/GettingInvolved if you have a doubt about it19:09
pedro_we also have a mailing list (ubuntu-bugsquad) and a channel #ubuntu-bugs19:09
pedro_ok, how the bugs are get reported into Ubuntu19:10
pedro_One of the ways of reporting a bug to Ubuntu is using the "Help-> Report a problem" menu  entry on the application you're having issues with19:10
pedro_for example if you going to gedit now,  you'll see that menu there19:11
rzrwhat about command lines applications ? can't we use reportbug like on debian ? I tried once on ubuntu19:11
pedro_rzr: yes you can i'm going to there19:11
pedro_rzr: questions at #ubuntu-classroom-chat please :-)19:12
pedro_ok if you want to report a bug with the command line you can use this command:19:12
pedro_apport-cli -f -p PACKAGE , where PACKAGE is the name of the package you're having problems19:12
pedro_example : apport-cli -f -p gedit19:12
pedro_if you don't know the name of the package and the program is running you can try to report the bug with his PID like:19:13
pedro_apport-cli -f -P PID19:13
pedro_Both process will collect information about the version of Ubuntu the reporter is using, the application and the version of it19:14
pedro_both ways are extremely recommended :-)19:14
pedro_Another way of report bugs to Ubuntu is trough the Launchpad website19:14
pedro_if you go to https://bugs.launchpad.net/ you'll see a red button that say something like "report a bug"19:15
pedro_then you'll be asked for a summary, a description and you'll be asked to select a package if you know it19:16
pedro_most of the time the people that report bugs this way, don't really know which package is the one containing the bug19:16
pedro_so they select "Ubuntu"19:16
pedro_which leads to having lot of reports without a package; you can see a tiny list here http://tinyurl.com/32l4gd19:17
pedro_When you Don't have to file a bug report:19:18
pedro_when it's a support request, like "i don't know how to do this", you can ask that at https://answers.launchpad.net/ubuntu19:18
pedro_when it's a policy discussion or you have development ideas, this should be discussed at the ubuntu-devel-discuss mailing list19:19
pedro_and of course when the bug is already filed19:20
pedro_Since we most of the time didn't get too many good quality reports, we need to improve them19:21
pedro_There's a few things you can do for improving a bug report19:21
pedro_as i mentioned we get a lot of reports without a package and this is a really good task for new brave triagers19:22
pedro_because most of the time those bugs are easy to reassign to the right package19:22
pedro_we also have a documentation about it here: https://wiki.ubuntu.com/Bugs/FindRightPackage19:22
pedro_so if you want to start triaging that's a really good first step19:23
pedro_another way of improve a bug report is asking or documenting the steps on how to reproduce the bug19:24
pedro_sometimes you'll find reports with a summary that say "I clicked here and it doesnt work"19:24
pedro_what we need is they to answers questions like:19:25
pedro_How can the problem be reproduced?19:25
pedro_ What actually happens when you follow these steps?19:25
pedro_What would you expect to happen when you follow them?19:25
pedro_All of them in much detail as possible19:26
Iulian <mirrado> QUESTION: Is there any command line utility to list all bugs related to a especific package? I mean something that could help in identifying duplicated bugs, etc19:26
pedro_mirrado: yes, there's bughelper, bdmurray and thekorn gave a talk a couple of minutes ago about it :-)19:26
pedro_Another thing that we should worry about is to see if the bug report has a descriptive summary19:27
pedro_if not we should edit it19:27
pedro_as i said , we find a lot of bugs with things like "Doesn't work"  or " I don't know what i was doing"19:28
Iulian<eddyMul> QUESTION: can any registered LP user change a bug's title/summary?19:29
pedro_so if we ask for steps on how to reproduce we can improve a lot the summary and the developers can read it and have a really good idea of what's going on19:29
pedro_eddyMul:  yes basically anyone19:29
pedro_for change the summary and the title you have to do the following19:30
pedro_on the launchpad page of a bug for example https://bugs.launchpad.net/ubuntu/+source/gnome-power-manager/+bug/19405219:30
pedro_on the left side there's a column that say "Edit description/tags"19:31
pedro_if you click there you'll be redirected to the edit form and there you can edit all that19:31
pedro_if you're editing the summary or the description please make sure it's really consistent19:32
pedro_for example a description like "rhythmbox hangs when click on a previous podcast"19:32
pedro_is way better than one like "just hanged"19:32
pedro_it doesn't matter if it's too long :-)19:32
pedro_another thing you should take care of when you do triaging is the status of the bug19:33
pedro_all the status on Ubuntu are described here: https://wiki.ubuntu.com/Bugs/Status19:33
pedro_and currently we have 9 status New, Incomplete, Invalid, Confirmed, Triaged, In Progress, Won't Fix, Fix Committed, and Fix Released19:34
pedro_some of them may confuse people but i'll try to explain them and if you have a question about them just ask19:34
pedro_New: When a bug is first reported the status of it is New meaning that no one has touch it yet and these kind of bugs are a good candidates for new triagers19:35
pedro_Incomple: means that the bug is missing some information, like steps to reproduce the bug19:35
pedro_Confirmed: means that someone than the original report has the same issue (was able to reproduce the bug) or the that the bug has a minimum of debugging information on it19:37
pedro_triaged: means that the bug has enough information for a developer to start working and fix the problem19:37
pedro_the Triaged status can only be set by a member of the ubuntu-bugcontrol team19:38
pedro_Progress: means that a developer or another person is working on a fix for it19:38
pedro_Fix Committed: means that there's a fix for the bug committed on a development branch but it's not yet available on a Ubuntu official package19:39
Iulian<InsClusoe> QUESTION: So many people log bugs saying functionality is this way. Should be that way. What would be correct status for such 'bugs'?19:39
Iulian<InsClusoe> QUESTION: (continue) Should status be invalid or should it be new and have importance set to 'wishlist'?19:40
pedro_InsClusoe: it depends if that functionality is not working as it should it's a valid bug19:40
Iulian<eddyMul> QUESTION: does the bug status suggest an "evolution" of the bug? Can I start filing with a bug with "Work In Progress" instead of New? (e.g when I'm submitting a patch)19:41
pedro_InsClusoe: if they're asking for a new one , it should be Wishlist , but Wishlist is an Importance not a bug status :-)19:42
pedro_eddyMul: no, better to set it as New and select the "patch" check box when you submit the patch to it19:43
pedro_then a developer will take a look to it19:43
Iulian<InsClusoe> QUESTION: Who can edit importance of a bug?19:43
pedro_if the patch needs work he'll set it as "In Progress"19:43
pedro_InsClusoe: any member of the ubuntu-bugcontrol team, if someone has been doing a good work triaging bug he can apply to the ubuntu-bugcontrol team19:44
pedro_which gives you a few more permissions that just edit the importance of a bug :-)19:44
pedro_ok so Fix Released19:45
pedro_means that there's a official package available on Ubuntu that fix the problem19:45
pedro_Won't Fix: means that the developers of the same determined that will not fix the issue19:45
pedro_and last one the scary Invalid status19:46
pedro_a bus is marked as Invalid when it doesn't have enough information to determine where the bug is or that the report isn't a bug itself19:46
pedro_for asking all these things we have a page with stock responses that are really useful19:47
pedro_sometimes it's hard for new triagers what to ask on some reports19:48
pedro_the stocks responses will help you with that19:48
pedro_we also have debugging procedures that may help you to ask for files the reporter can submit in order to see where's the bug: https://wiki.ubuntu.com/DebuggingProcedures19:49
Iulian<InsClusoe> QUESTION: I feel a bug needs to be looked at by the bugcontrol team. Can I subscribe them to the bug?19:50
pedro_InsClusoe: best way is to announce the bug at #ubuntu-bugs if you don't get attention in a few hours you can send an email to the bugsquad list19:51
Iulian<barcc> QUESTION: there are some reports "xy doesn't work" with answers "me too,me too,..." without providing more information. how is the correct status Incomplete or Confirmed?19:51
pedro_barcc: that's one of the painful bugs we have to face the "me too" ones... if the bug doesn't have the enough information but lot of "me too" the status should be Incomplete19:52
pedro_it doesn't matter if you have 10000 "me too" but there's no enough information19:53
pedro_it should incomplete anyways19:53
pedro_One of the fun things we do as a BugSquad are the Hug Days19:54
pedro_A Hug or Bug Day it's a complete day where the BugSquad focus on a package or task19:54
pedro_we celebrate the Hug days twice a week, that means Tuesdays and Thursdays19:54
pedro_today we're running the GNOME Power Manager one and last Tuesday we had a Printing one19:55
pedro_you can see both pages and progress here:19:55
pedro_of course you can always join the #ubuntu-bugs channel and discuss bugs there19:56
pedro_everyday everyhour19:56
pedro_if you take a look to http://planet.ubuntu.com19:57
pedro_you'll see a few posts in there with a "5"19:57
dholbachYES YES YES :)19:57
Iulian5-a-day r0cKz!19:58
pedro_that's a new and really funny way to work on bugs19:58
pedro_5-a-day means everybody  have to do 5 bugs a day!19:58
dholbach https://wiki.ubuntu.com/5-A-Day#Log for how to join up19:59
pedro_there's a stats page http://daniel.holba.ch/5-a-day-stats/ and we really like to see your name on it19:59
pedro_so if you have any questions on how to do more specific triage or a question on what to do with a bug, feel free to ask at #ubuntu-bugs or in our bugsquad mailing list everytime everyhour 24x7 :-)20:00
dholbachthanks a lot for plugging 5 a day and thanks for your great talk pedro_! :-)20:01
pedro_thanks for the attention :-)20:01
* dholbach hugs pedro_20:01
InsClusoepedro_: Thanks a lot.20:01
IulianThanks all!20:01
* pedro_ hugs dholbach back20:01
pedro_let's squash some bugs at #ubuntu-bugs!20:02
Iulian<yuriy> QUESTION: I run derivative X with desktop Y, but all the bugs on those bugday pages are about gnome, how can I participate?20:02
pedro_yuriy: may you ask it on #ubuntu-bugs, there's another talk here :-), thanks.20:02
phoenix24_Thanks pedro_ !20:02
dholbachROCK ON! :)20:02
dholbachNext up is "Debdiffs And How To Get Them Submitted" :)20:03
dholbachHow are you all doing?20:03
dholbachHow's Ubuntu Developer Week coming on this week for you? :)20:03
* mruiz hugs pedro_ 20:04
daishujinvery interesting20:04
Grazienodholbach: very cool for me!20:04
dholbachROCK ON! That's what I like to hear :-)20:04
InsClusoedholbach: I am loving it.20:04
hollowaywe want more, we want more \o/20:04
dholbachOk, let's talk debdiffs.20:04
dholbachhehe :-)20:04
dholbachDebdiffs are your way to make other developers happy. In this session we'll try to create one and I'll tell you how you'd submit it20:05
dholbachThis time I thought we're going to try to fix a real bug20:05
dholbachI picked a 'bitesize' one, which generally are bugs that are suited for new contributors20:06
=== ember_ is now known as ember
dholbachall those bugs are linked from http://wiki.ubuntu.com/MOTU/TODO and http://wiki.ubuntu.com/MOTU/TODO/Bugs20:06
dholbachbut first we need to set up our working environment20:07
dholbachplease all edit your ~/.bashrc (or .zshrc if you use zsh) file and add something along the lines of:20:08
dholbachexport DEBFULLNAME='Daniel Holbach'20:08
dholbachexport DEBEMAIL='daniel.holbach@ubuntu.com'20:08
dholbachthen save it and run   source ~/.bashrc20:08
dholbachthese two variables will be used by a couple of tools we're going to need20:08
dholbacheverybody all set?20:08
Grazienodholbach: or . .bashrc :)20:08
dholbachGrazieno: I don't understand20:09
Grazienodholbach: in your home, do only '. .bashrc'20:09
dholbachanyway... all set? give a quick '+1' too20:10
TuxCrafter+ 1/220:10
rzrpedro_: thx, sorry for disturbing ... my RTFM list is overloading :)20:10
dholbachok perfect20:10
dholbachwe need a few tools next, please run:20:10
dholbach   sudo apt-get install devscripts build-essential wget fakeroot patchutils debhelper20:10
dholbachdevscripts contains packaging tools which make the job much easier20:11
dholbachbuild-essential is a meta-package which pulls in stuff like gcc, make and so on20:12
dholbachfakeroot is interesting too, because it simulates an environment where we work as 'root'20:12
dholbachok... let's get working on https://bugs.launchpad.net/ubuntu/+source/xnetcardconfig/+bug/181494 together20:12
dholbachI don't know how tricky it's going to be, let's just all start working on it and let's see where we end up :)20:13
dholbachif you have questions or I'm too quick, please let me know on #ubuntu-classroom-chat20:13
dholbachthe problem seems to be that xnetcardconfig depends on xsu which is going to be removed soon20:13
dholbachThis seems to confirm it:20:14
dholbach   apt-cache show xnetcardconfig20:14
dholbachok, let's dive into the problem :-)20:14
dholbach   apt-get source xnetcardconfig20:14
dholbachoh... I forgot:20:14
dholbachyou might have to add a deb-src line to your /etc/apt/sources.list first20:15
dholbachfor hardy that'd be  "deb-src http://archive.ubuntu.com/ubuntu hardy main restricted universe multiverse"20:15
dholbachand please run    sudo apt-get update   afterwards20:15
dholbachthen the    apt-get source    run is going to work :)20:15
dholbach<charliecb> QUESTION: what means -> Conflicts: menu (<< 2.1.12)20:15
dholbachcharliecb: the package xnetcardconfig conflicts with the package menu (if it is older than 2.1.12)20:16
dholbachthat means they're not installable at the same time20:16
dholbachthe main reason for using conflicts is that no two packages can install the same file at the same time20:17
dholbachthat's also the main reason breaking upgrades :)20:17
dholbachso you need to be very careful if you move files from one package to another20:17
dholbachOK, apt-get source downloaded the following files for us20:18
dholbachxnetcardconfig_0.2.0-1.dsc  and  xnetcardconfig_0.2.0-1.tar.gz20:18
dholbachwhich is REALLY weird20:18
dholbachdoes somebody see a problem with those two files?20:18
dholbachOK, the version number 0.2.0-1 indicates that:20:19
dholbach - the upstream version of xnetcardconfig is 0.2.0 (what the upstream author release on their homepage)20:19
dholbach - it's the first debian revision of it20:20
dholbach<rzr> no patches20:20
dholbachrzr: Exactly.20:20
dholbachif you package upstream software, you take the tarball you download from their webpage and rename it to20:20
dholbachthis result in the debian/ubuntu packaging tools moving all the changes we apply to make it build properly into <software>_<upstreamversion>-<ubunturevision>.diff.gz20:21
dholbachthere's no .diff.gz here, although the 0.2.0-1 version indicates that20:22
dholbachdoes that make sense for everybody?20:22
dholbachOk, let's move on then :)20:22
dholbachcd xnetcardconfig-0.2.0/20:22
dholbachlet's fix the obvious problem first: xsu depends20:22
dholbachfor those of you who have read the link on the bug report: http://packages.qa.debian.org/x/xsu/news/20040720T150036Z.html suggests to use 'gksu' instead20:23
dholbachlet's take a look at debian/control20:23
dholbachit's the file that specifies (among other things): what is needed to build the package and what is needed to install and use the package20:24
dholbachlet's, as a first measure, replace xsu with gksu20:24
dholbach<charliecb> QUESTION: isn't the name for the package wrong? it must be xnetcardconfig_0.2.0-1.orig.tar.gz? or not?20:24
dholbachcharliecb: I'd agree with xnetcardconfig_0.2.0.orig.tar.gz - the debian maintainer might have overlooked it20:25
geserit was never in Debian, it got synced from some other source during for hoary and never touched since Dec 200520:25
dholbacheverybody welcome geser - he's a great guy and always digs up these facts from somewhere - he's awesome!20:26
dholbachthanks geser20:26
dholbachok, that's done now, let's document our change20:26
dholbachlet's run      dch -i         to add a new changelog entry and increment the version number20:26
dholbachdch is a nifty tool from devscripts20:27
dholbacha few things we need to make sure here:20:27
dholbach - get the version right, which might be a bit controversial here :-)20:27
dholbach - upload to the right Ubuntu version20:27
dholbach - document our changes right20:27
dholbachas the version is wrong already, I suggest we just use 0.2.0-1ubuntu1 and go from there20:29
dholbach<charliecb> QUESTION: changelog has to look like this: xnetcardconfig (0.2.0-1ubuntu1) gutsy; urgency=low20:29
dholbach   * removed dependence for xsu , add dependence for gksu20:29
dholbachcharliecb: nearly20:29
dholbachwe can't upload to gutsy, it's released already20:29
dholbachbut if we replace gutsy with hardy, I think it looks OK already20:30
dholbachalthough I prefer to use changelog entries like20:30
dholbach  * debian/control: replaced xsu dependency with gksu.20:30
dholbachor something20:30
dholbachit's important to point out which files you changed, so the next person who works on the package knows what happend and why20:30
dholbachwho's done with that part of the story? quick +1 please?20:31
dholbachparty on20:32
dholbachwhat do we do now? is that all?20:32
hollowaywe need a new source package?20:33
dholbachbefore that20:33
mirradowe need to change the reference to the package mantainer in debian/control20:33
dholbachmirrado: good point, but even before that20:33
charliecbtest the package with pbuilder?20:33
dholbachall good points, but something else20:33
InsClusoeget gksu20:34
dholbachif there's a dependency on xsu, it might be used somewhere in the code somewhere - we need to fix that reference20:34
dholbach grep -r xsu *20:34
dholbachseems that we need to get   xnetcardconfig.in   a proper treatment20:34
dholbachthis line is the offending one:20:34
dholbach      (xsu -c "$0" -u root -i "@PREFIX@/share/pixmaps/xnetcardconfig.png" -t "Configure network" -d -m "Network configuration requires^superuser priveleges.") >/dev/null 2>&1 || {20:35
Grazienosed -i 's/xsu/gksu/g' xnetcardconfig.in20:35
dholbachjust replacing 'xsu' with 'gksu' is not going to work20:36
dholbachif you look at the manpage of gksu, you'll find out that there is no '-c' or '-i'20:36
dholbachas I read the manpage, something like20:36
dholbach     (gksu -c "$0" -D /usr/share/applications/xnetcardconfig.desktop) >/dev/null 2>&1 || {20:36
dholbachmight work20:36
dholbachit's something we need to test in the end20:36
dholbachGrazieno: you have a question?20:37
Grazienodholbach: no20:37
dholbachok good20:37
dholbachlet's document that change too, please run20:37
dholbach    dch -e20:37
dholbachsomething like this will do:20:38
dholbach  * xnetcardconfig.in: replaced usage of xsu with gksu.20:38
dholbachnow we come to mirrado's point20:38
dholbachmirrado: care to explain?20:38
dholbach<charliecb> QUESTION: why  /usr/share/applications/xnetcardconfig.desktop ? who creates that file?20:38
mirradowe need to substitute the mantainer field with XSBC-original-mantainer tag20:39
dholbachcharliecb: I'll make it short becaues it's not really relevant to the topic of the session... as I read the gksu manpage you can pass it the location of a Desktop file, where it get description of the program from (instead of the strings that were passed to xsu call before)20:39
dholbachcharliecb: I saw it in gksu's manpage and found that the .desktop file in the tarball is available at ./xnetcardconfig.desktop20:40
charliecbok. thanks20:40
dholbachcharliecb: and grepping for .desktop in the source I found out that it's installed to "/usr/share/applications/xfld-xnetcardconfig.desktop" - thanks for prodding me, I was wrong :-)20:41
dholbachif you want to update the line in xnetcardconfig.in, it's now:20:42
dholbach  (gksu -c "$0" -D /usr/share/applications/xfld-xnetcardconfig.desktop) >/dev/null 2>&1 || {20:42
dholbachmirrado is completely right in what he says, we need to follow https://wiki.ubuntu.com/DebianMaintainerField20:43
=== rzr is now known as rZr
dholbachour friends at Debian asked us to preserve the debian maintainer in debian/control, but set a different maintainer address so that Ubuntu users are not going to mail them if the Ubuntu package is broken :)20:43
dholbachwe'll replace this:20:44
dholbach   Maintainer: Benedikt Meurer <bm@os-cillation.de>20:44
dholbach   XSBC-Original-Maintainer: Benedikt Meurer <bm@os-cillation.de>20:44
dholbach   Maintainer: Ubuntu MOTU Developers <ubuntu-motu@lists.ubuntu.com>20:44
dholbachok, let's document that too :)20:45
dholbach'updated Maintainer field' should be fine20:46
dholbachnow we'll do what holloway suggested: a new source package20:46
mirradoWe need to register in the changelog our changes in the xnetcardconfig.in20:47
hollowaydebuild -S :)20:47
dholbachmirrado: exactly20:47
geserdpkg-source: error: syntax error in ./xnetcardconfig-0.2.0/debian/control at line 14: duplicate field Conflicts found20:47
dholbachholloway: exactly20:47
dholbachgeser: good point - let's take a look at it20:47
dholbachgeser is right - there are two Conflicts statements, let's merge them20:48
dholbachalso let's document it20:48
charliecbi don't see conflicts when i run "debuild -S"20:48
dholbachcharliecb: that's because you're on gutsy - the hardy build will fail20:49
dholbachyou should get    E: xnetcardconfig source: debian-control-with-duplicate-fields conflicts: 13, 15   though20:49
dholbach<Iulian> QUESTION: Standards-Version shouldn't be 3.7.3 ?20:49
dholbachIulian: good question - can you explain what Standards-Version means?20:50
IulianIt's the Standards-Version from the debian policy.20:50
dholbachso if you put standards version 3.7.3 in there, you're saying "this package complies to version 3.7.3 of the debian policy"20:51
dholbachwhich is something I wouldn't testify right now :)20:51
IulianRight :)20:51
dholbachchanging the Standards-Version is a good thing if it's a package that you maintain20:51
dholbachif it's a package we inherit from debian or some other place, we try to only introduce minimal changes that have a bigger effect20:52
dholbachso changing just the standards-version is probably not something we'd do20:52
dholbachIulian: but a lot of people still do it - so the question is definitely justified :)20:52
dholbachdid the    debuild -S   command work for everybody now that we merged the Conflicts fields?20:52
charliecb+1 (with gutsy)20:53
dholbachanybody else?20:53
dholbachahhh, here we go20:54
dholbach  cd ..20:54
dholbach   debdiff xnetcardconfig_0.2.0-1.dsc xnetcardconfig_0.2.0-1ubuntu1.dsc20:54
dholbachThis command will print out the diff the between the two source packages (0.2.0-1 and 0.2.0-1ubuntu1)20:55
dholbachcan you all put your debdiff up at http://paste.ubuntu.com and paste the link here?20:55
dholbachGrazieno: you don't mention that you drop the xsu depends and don't mention which files you changes, but apart from that: very good20:58
dholbachcharliecb: you did not mention the change in xnetcardconfig.in, other than that: good work20:58
dholbachbarcc: good work :)20:59
dholbachIulian: you didn't change xnetcardconfig.in and your changelog is a bit sparse20:59
dholbachmirrado: your changelog does not list all the changes either, other than that: good work21:00
dholbachWOW, I'm amazed - well done everybody!21:00
dholbachso what would be next:21:00
mirradoI'm correcting it right now.21:00
dholbach - what charliecb mentioned above: test building it with pbuilder (http://wiki.ubuntu.com/PbuilderHowto)21:01
dholbach - testing if our suggested xsu fix really works21:01
dholbach - then we'd add a    (LP: #181494)   to the bug report, so the bug will automatically closed once our patch gets uploaded21:02
dholbachthen we'd run:21:02
dholbach   debdiff xnetcardconfig_0.2.0-1.dsc xnetcardconfig_0.2.0-1ubuntu1.dsc > debdiff21:02
dholbachand attach the resulting debdiff file to the bug report21:02
dholbachand subscribe ubuntu-universe-sponsors to the bug report to get the fix uploaded21:03
dholbachhttps://wiki.ubuntu.com/SponsorshipProcess has more information on how to get it uploaded :)21:03
dholbachfixing this bug will actually two bugs:21:04
dholbachOnce https://bugs.edge.launchpad.net/ubuntu/+source/xnetcardconfig/+bug/181494 is done21:04
dholbachhttps://bugs.edge.launchpad.net/ubuntu/+source/xsu/+bug/181495 can be fixed too :)21:04
charliecbdholbach: isn't it enough to attach the diff to https://bugs.launchpad.net/ubuntu/+source/xnetcardconfig/+bug/181494 ???21:04
dholbachso I hope somebody of you will walk through all the additional steps I mentioned so we get those two bugs ironed out :)21:04
dholbachcharliecb: the sponsoring process requires that the sponsors team is subscribed to the bug21:05
dholbachcharliecb: if you look at the bug you will notice that just three people are subscribed to it right now21:05
dholbachhaving the sponsors team on it will make sure you don't block on just one person, but it will be dealt with by a bigger team21:05
dholbachany last questions? :)21:06
charliecbno. thanks for the nice lesson, dholbach!!21:06
IulianAll good here.21:06
dholbachrock on!21:06
IulianThe next package will be much better than this one.21:06
mirradoIs it correct now?21:07
dholbachtomorrow we'll have a MOTU Q&A session - if anything came up in your mind after this session, bring your questions to that session instead :)21:07
IulianThank you dholbach!21:07
Grazienodholbach: thanks, really!21:07
dholbachmirrado: better, I'd just mention the other changes to debian/control too: maintainer field change and merge of the two conflicts lines21:07
dholbachmirrado: other than that: good work21:08
dholbachthanks everybody: you guys ROCK21:08
IulianThat was awesome!21:08
mirradoThanks dholbach :)21:08
dholbachand I'd like to welcome you all to working with the MOTU team - it's big fun!21:08
barccyou ROCK!21:08
dholbachhave a great day everybody and see you tomorrow!21:08
* Iulian hugs dholbach21:08
* dholbach hugs Iulian back21:09
* dholbach waves21:09
ewookyay, hugging! :)21:10
rZrso who fix https://bugs.edge.launchpad.net/ubuntu/+source/xnetcardconfig/+bug/181494 ?21:17
nrpilrZr: good question!21:22
rZrnrpil: then I shouldnt have ask :)21:23
rZr..ed it21:24
rZrwill do then21:29
nrpilrZr: how do you fix it ?21:32
rZrnrpil: test it and join the debdiff like said ?21:34
rZrnrpil: did i miss something ?21:35
nrpilrZr: i don't know, i'm learning21:36
phoenix24_I get the same "debuild -S" error, geser showed.21:52
phoenix24_How do i correct it. ?21:52
phoenix24_resultant build.. fails.21:52
civijaphoenix24_: please post error message on paste.ubuntu.com21:55
phoenix24_civija: http://paste.ubuntu.com/4878/21:57
civijanow paste control file21:57
civijait looks like you have duplicate Confilcts field21:58
geserphoenix24_: when you look at debian/control you will see two lines starting with Conflicts21:58
geserput the values from both lines into one field, seperated with ','21:59
geseryou should end with something like that (don't remember the exact field values): Conflicts: dhcp-client, menu (<< 2.11.2)21:59
geserorder doesn't matter22:00
phoenix24_Conflicts: dhcp-client , menu (<< 2.1.12)22:00
rZrI plan to upload a package to my personnal package archive22:00
charliecbdoes anybody know, why a package from debian/sid is not in ubuntu hardy?22:00
rZrcharliecb: i never was in debian22:00
rZrit not I :)22:00
geserphoenix24_: looks ok22:00
rZrI'll sumbit it to debian also22:01
phoenix24_geser: now build it again ?22:01
phoenix24_and document it using, dch -e ?22:01
geserphoenix24_: yes and yes22:01
kdub432 /join #svn22:02
geserphoenix24_: dch (without -e) should automatically add a new bullet22:02
kdub432oops, sorry everyone22:02
gesercharliecb: my guess is that it entered Debian after the automatic sync stopped and nobody filed a sync request for it22:03
rZr<geser> charliecb: my guess is that it entered Debian ?22:04
rZrare you sure ?22:04
charliecbrZr: sure for what?22:05
geserrZr: as I don't know which package charliecb is talking about I can only guess22:06
gesercharliecb: which package are you missing?22:06
rZrxnetcardconfig-0.2.0 ?22:06
phoenix24_geser: after rebuild, I get another error : http://paste.ubuntu.com/4879/22:06
charliecbrZr: libjogl-jni22:06
rZrok my mistake22:07
charliecbrZr: how can i find out the upstream date from this package?22:07
geserphoenix24_: only the signing failed (which is only important for uploading), you should have a new source package22:07
gesercharliecb: when you look at https://wiki.ubuntu.com/HardyReleaseSchedule you will that DebianImportFreeze (stop of automatic syncing) was on Dec 13th and when you look at http://packages.qa.debian.org/libj/libjogl-java.html you will see that the first upload got accepted on Dec 19th22:10
phoenix24_geser: My debdiff output, http://paste.ubuntu.com/4880/22:12
charliecbgeser: thanks. thats the answer22:13
geserphoenix24_: the changes look nearly good: it was noted that the filename of the .desktop file is different (xfld-xnetcardconfig.desktop I guess)22:15
geserphoenix24_: and you called dch -i to often, you should have only one new entry (-1ubuntu1) instead of three22:15
rZrthis apps seems obsolete anyway22:16
phoenix24_ok, is that why I got -1ubuntu3 instead of -1ubuntu1 packaged?22:16
geser-i = increment22:17
geserdch -e = edit22:17
kdub432im confused. is a debdiff analogous to standard patches, except that they are for debian packages?22:17
phoenix24_geser: thanks a lot!22:18
=== ember_ is now known as ember
geserkdub432: you can unpack the old source package and the new one to different dirs and run diff on them or if you are lazy use debdiff22:19
kdub432and where are debdiffs submitted to?22:21
geserkdub432: to LP (Launchpad), file a bug if none exists, attach the debdiff and subscribe ubuntu-universe-sponsors (or ubuntu-main-sponsors if the source package is in main)22:22
kdub432thanks geser. im coming up on a 10 day break from classes, hopefully thats enough time to sort this whole motu thing out...22:25
=== Wasserstoff is now known as Hydrogen
=== mruiz is now known as mruiz_afk
=== mruiz_afk is now known as mruiz_away
=== Seeker`_ is now known as Seeker`

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