/srv/irclogs.ubuntu.com/2011/02/28/#ubuntu-classroom.txt

=== cyril is now known as Steap
=== ono is now known as Guest54949
=== jmarsden_ is now known as jmarsden
=== achiang` is now known as achiang
=== msnsachin12 is now known as msnsachin
=== deegee_ is now known as plustwo
root_ 11:18
root_q11:19
thetechfreakHello Guys !'12:14
thetechfreakwill something happen ?12:15
thetechfreakor else i am off !12:15
AbhijiTthetechfreak, see the timetable12:18
rsajdokthetechfreak: http://people.ubuntu.com/~nhandler/classroom.html12:19
thetechfreakAbhijiT:  anything started ?12:20
AbhijiTno12:21
thetechfreakHmmm.. I'll return in an hour.Have some work12:21
thetechfreakBye12:21
thetechfreakBTW who's going to conduct it ?12:21
thetechfreakany head or something like that ??12:22
bluepicasohey people12:35
bluepicasoI'm new here12:35
bluepicasoGood evening to everyone12:35
bluepicaso??12:41
abhiQUESTION13:14
Niteshhi13:20
hemanthNitesh, hi!13:22
=== peri4n is now known as perian
Fviccan anyone tell me where to find new bugs to triage.i wish to start bug triaging but always find already triaged bugs13:57
wolfpackFvic: All the untiaged bugs can be found through this link . https://launchpad.net/ubuntu/+bugs?field.searchtext=&orderby=-datecreated&field.status%3Alist=New&field.importance%3Alist=Undecided&assignee_option=none&field.assignee=&field.owner=&field.component=1&field.component=2&field.component-empty-marker=1&field.omit_dupes.used=&field.omit_dupes=on&field.has_patch.used=&field.has_no_package.used=&search=Search14:00
wolfpackuntriaged*14:00
techbreakhello everybody.. :)14:06
leoquanthi!14:06
Fvicwolfpack, sir i was trying to triage one of the bug from your link.can you please help in that.Further i can proceed myself.i dont know how to comment to that bug.14:07
Fvictechbreak, hi14:08
techbreakFvic, so how long to start the developers week ?14:08
Fvictechbreak, i am abeginner in it14:09
tumbleweedtechbreak: 2 hours, I guess. Start time is 16:00 UTC14:09
Fvictechbreak, 16.00 utc14:10
techbreakFvic, tumbleweed how much time lag or lead UTC with greenwich time. I am in India :/14:10
Fvictechbreak, 21.30 india14:10
techbreakFvic, thanks :)14:11
Fviccan anyone help in bug triaging,i am new to this domaini.??plz14:11
jdobrienFvic, this may help: https://wiki.ubuntu.com/Bugs/HowToTriage14:18
=== yofel_ is now known as yofel
imag1test14:53
Fvicwhat does apport-collect do?15:03
akshatjFvic: https://wiki.ubuntu.com/Apport#Tools15:04
acarpineI thought this channel was used only for tuition ubuntu classroom...15:06
techbreakrhohit, _15:07
fisch246is ubuntu dev week about to start in less than an hour?15:11
techbreakfisch246, yeah indeed :)15:11
fisch246good i read the schedule right :)15:11
techbreakfisch246, :)15:12
rhohittechbreak hello15:14
techbreakrhohit, :) gotcha15:14
techbreakrhohit, welcome :)15:14
=== marc is now known as Guest88175
nileshI guess I'm late. Everything is over :(15:27
joaopintonilesh, did not start yet15:28
nileshjoaopinto: running late?15:28
joaopintono, it's still Seg Fev 28 15:28:49 UTC 2011, isn't it scheduled for 16h ?15:29
stefwalyes it is15:29
joaopintoso it's on time :)15:29
nileshhmm, I guess I didn't read the time properly on the fb event15:29
nileshanyways15:29
hemanthnilesh, date -u, it's at UTC 5pm15:30
stefwalbut i think that the ubuntu-classroom-chat is for discussion15:30
stefwalthis one is for the teacher15:30
macoyep15:30
* hemanth this room will be muted as the class starts 15:31
* nilesh has a bad luck. has to get up early tomorrow, so can't be at 11 pm IST here :(15:31
hemanthnilesh, you will always have the logs to read :)15:32
Will123456hey guys. am i right in saying the session is going to start in about 20 minutes? or is my understanding of UTC way off?15:41
gartralis anyone allowed too watch/participate?15:41
dholbachWill123456, yes, 20 minutes15:41
dholbachgartral, yes, everyone can watch15:41
cyrilWill123456: you're right, but you should joing #ubuntu-classroom-chat to talk about it :p15:41
saketWill123456, yes , the session will start in 20 min15:41
Will123456cyril: just noticed that - sorry. :P teach me to type before thinking. thanks everyone.15:42
saketwill te session be involving video?15:52
dholbachsaket: no, text only15:52
saketdholbach, hmm, okay15:52
dholbachsaket: but you can sign up here for a development videocast I do: http://www.ustream.tv/channel/ubuntu-development-with-daniel-holbach15:52
saketdholbach, okay15:53
techbreakso how more minutes to go ?15:54
dholbachtechbreak, 515:54
awsominatorHello15:55
techbreakdholbach, :)15:55
MeanEYEyou shouldn't talk here... go to #ubuntu-classroom-chat15:55
akshatjawsominator, join #ubuntu-classroom-chat15:55
KroosecI would like to know, do I need something specific to Ubuntu/Linux for this session ? Or can I just follow from Windows ?15:56
MeanEYEyou can follow15:56
steinexif you use irssi, you might want to: /ignore -channels #ubuntu-classroom * JOINS PARTS QUITS NICKS15:58
altmas5doesn't work in pidgin steinex16:00
awsominatorsteinex: I was jsut owndering how to do that, the command didn't work though16:00
steinexit just works in the irc-client irssi16:00
awsominatorAh yeah got it16:00
steinexi don't know for other clients, sorry16:00
awsominatorthanks16:00
dholbachHELLO MY FRIENDS!!!16:00
c2tarunhello dholbach16:00
AbhijiThi16:00
MTecknologyhowdy16:00
dholbachIt's Ubuntu Developer Week and it's starting RIGHT NOW!16:00
sakethi16:00
awsominatorStart16:00
techbreakdholbach, :) start16:01
acarpinehello!16:01
dholbachok, so first things first16:01
monish001hello!16:01
dholbachcan all kinds of chat and questions please please please (with sugar on top) go to #ubuntu-classroom-chat please?16:01
dholbachif you haven't joined that channel yet, can you please do that now?16:01
mkumarhello !16:01
dholbachto review the schedule and get more information about the sessions, check out https://wiki.ubuntu.com/UbuntuDeveloperWeek16:02
dholbachthat's the only page you need to bookmark for now :)16:02
dholbachexcellent, let's get started16:03
dholbachif you have any kinds of questions, please ask in #ubuntu-classroom-chat16:03
=== hakimsheriff_ is now known as hakimsheriff
dholbachand please make sure you prefix it with QUESTION:16:03
dholbachie: "QUESTION: What is your dog's name?"16:03
dholbachetc16:03
dholbachit makes it easier to figure out what exactly the question is :)16:03
dholbachfirst of all I'd like to thank all speakers - we have a pretty divserse schedule and it's going to be an awesome week16:04
ClassBotLogs for this session will be available at http://irclogs.ubuntu.com/2011/02/28/%23ubuntu-classroom.html following the conclusion of the session.16:04
dholbachmy name is Daniel Holbach, I live in Berlin and have been part of the Ubuntu Community for ~6 years16:04
dholbachmy primary interest is and always was the developer community16:04
dholbachso it's my honour today to talk about "getting started with Ubuntu Development" and you'll be stuck with me for the next 2 hours :)16:05
dholbachin the first hour I'd like to give you a very broad overview of Ubuntu development, Ubuntu's infrastructure, give you an idea of our processes, how we interact with other projects, etc.16:05
dholbachI won't answer all the questions you have, but I hope I can give you an idea how all the bits and pieces fit together16:06
dholbachin the second hour I'll help you get your development environment set up16:06
dholbachso for the rest of the week you should be all set up and ready to go16:06
dholbachdo we have any first questions already?16:06
dholbach(if not, I'd say we get cracking now :-D)16:06
dholbach<20QAAV4RZ> QUESTION: I'm a total newbie with lernid - do I need to hear something or is all done via chats?16:07
dholbach20QAAV4RZ, yes, it will be done all via chat - some of the sessions will be more tutorial style, so you might have to do a few things in the terminal16:07
dholbachok, let's get cracking :)16:08
dholbachas you all know Ubuntu is made of thousands of packages16:08
dholbachlibraries, tools, apps, games, etc16:08
dholbachthey're written in many different languages, and they're all available as source packages16:08
dholbacha source package typically consists of the actual source code and some meta-data16:09
dholbachevery single change that gets made (be it just a small fix or a new version, etc.) requires an upload to the build machines (part of Launchpad), where the source package gets transformed into binary packages (.deb packages)16:09
=== 20QAAV4RZ is now known as hugohirsch
dholbach<susenj> QUESTION: i am using pidgin..not lernid..is it okay??16:10
dholbachsusenj, yes, totally16:10
dholbach<gartral> QUESTION: will multiple shells be covered?16:10
dholbachgartral, it shouldn't really matter which shell you're using16:10
mauriciocinellihow to see video?16:10
dholbachok, once the .deb files (binary packages) are available, they are pushed to various mirrors16:11
dholbachand they're also used to build CDs of all kinds of Ubuntu flavours (Ubuntu server, Kubuntu, Ubuntu Desktop, etc.)16:11
dholbachso no matter if you use Kubuntu or Ubuntu or Xubuntu or anything else... all the changes are uploaded to the same build machines and are part of the same archive16:12
dholbach<Kroosec> QUESTION: Do I need to be on Ubuntu for this session ?16:12
dholbachKroosec, no, not necessarily - later on for the tutorials probably16:12
dholbach<raju> QUESTION: was session started ?16:12
dholbachraju, yes - if you missed the start there will be logs on https://wiki.ubuntu.com/UbuntuDeveloperWeek later on16:12
dholbachthe CDs are mostly built every single day, so that's what we use for installation tests, etc.16:13
dholbach<middle> QUESTION: WIll there be a formal QnA later on? I want to ask questions but not interrrupt you16:13
dholbachmanish raju: you dont put that16:13
dholbachmiddle: please just ask - I'll decide myself when I take a small break to answer a couple of questions :)16:14
dholbachok, so much for the Ubuntu archive, packages and how they're built16:14
dholbachlet me talk a bit about the Ubuntu release cycle16:14
dholbachwhat Ubuntu developers focus on heavily depends on the release schedule16:15
dholbachas you know Ubuntu is released every 6 months, and to able to deliver on the exact date, we need to stick to the dates in the schedule16:16
dholbachif you want to see the schedule for the current development release,  check out https://wiki.ubuntu.com/NattyReleaseSchedule16:16
dholbachif you don't have problems with seeing colours, you see that there's green at the start and red at the end16:17
dholbach"green" does NOT mean: "it's all working, it's all great"16:17
dholbachit rather means "everything goes, you can upload whatever changes you want/need" :)16:17
dholbachtowards the end of the release cycle we introduce more and more freeze dates, where the changes are becoming less and less intrusive16:18
dholbachbut let's go back to the beginning16:18
dholbachfirst the toolchain (the most basic build-relevant packages) are set up, then we work on merging changes that have happened in Debian (and other software projects) since we got out the last release16:18
dholbachthen there's Ubuntu Developer Summit (UDS), which I'll talk about a bit later - for now it should be enough to say that it's where the features of the release are defined and agreed on16:19
=== tarun is now known as Guest97414
=== Guest97414 is now known as c2tarun
dholbachDebian Import Freeze is the first freeze date that appears in the list - it's where we stop to automatically "sync" source packages from Debian16:20
dholbachthis is done as a measure to start to stabilise the code in Ubuntu, but can be overriden in warranted cases16:20
dholbachnext up is Feature Freeze, where we expect big parts of features to be landed16:21
dholbachif they still have bugs, that's fine, but if they're not there in rudimentary form, then that's a problem and we might consider to postpone them to the next release16:21
dholbachFeature Freeze is also the date where try to slow down introducing new versions of packages (again: in order to stabilise, and yes there might be warranted cases where we want to override)16:22
dholbachfrom Feature Freeze on, we introduce more and more other freezes, UI, Docs, Kernel, etc etc16:22
dholbachthis is done, so that we focus on show stopper bugs and don't introduce any big changes any more and bring Ubuntu in a releasable form :)16:23
dholbachApril 28th is the date we're aiming for this release and I'm quite sure that that's where we'll get the release out :)16:23
dholbach<udienz> Question: How long someone can be a MOTU? 6 month from first upload or depends on how much uploaded or depends from recommendations?16:24
dholbachudienz, to become an Ubuntu developer I'd prefer not to give and concrete number of weeks/months16:24
=== MickStep is now known as QUESTION
=== RobertM is now known as Guest98250
dholbachI personally feel that if you gained the trust of other developers you've worked with (more on the topic later on), you're ready16:24
dholbachok, so much for the release schedule for now :)16:25
dholbachbut I guess you got a better idea now why it makes more sense to upload a rewrite of a piece of software EARLY in the cycle, and not 5 days before release :)16:26
dholbachetc :)16:26
dholbachand you can also imagine now that with thousands of packages, millions of lines of code, hundreds of project and hundreds of developers communication/coordination is very important16:27
dholbach<monish001> QUESTION: How would developer's code get into the main ubuntu code? Which tools are used for development and commits, how these commits are tested by others for authentication?16:27
dholbachmonish001, I'll get to that in a bit16:27
dholbach <hugohirsch> QUESTION (later): I find a bug in a gnome package, checked out the sources, discovered that the bugfix merely is a 'remove commented out line in sources' - how do I get this into Ubuntu?16:28
dholbach hugohirsch: I'll get to that in a few minutes as well :)16:28
dholbachI touched on UDS (Ubuntu Developer Summit) a bit earlier on already16:28
dholbachit's where hundreds of people get together in one location and for one week discuss all kinds of problems they want to solve in the next cycle16:29
dholbachthe great thing is, if you can't be there physically, you can attend remote (talk on IRC and listen in via audiocast)16:29
dholbachthe outcomes of the sessions are written up as specifications, so all the ideas, assumptions, rationale and action plan is recorded publicly and others can involved helping to solve those problems16:30
dholbachwhile this works well for "big picture" things, there are loads of day-to-day decisions that are made on mailing lists (ubuntu-devel@lists.u.c for example) or on IRC channels, such as #ubuntu-devel16:31
dholbachof course if there's a specific software project that interests you that is outside of Ubuntu, you might want to be on the project's mailing list and IRC channel as well16:31
dholbachanother important medium for discussion and coordination is bug reports16:32
dholbachyou can find all of Ubuntu's bugs at https://bugs.launchpad.net/ubuntu16:32
=== pixelmeister_ is now known as rechengehirn
dholbachit makes it much easier to stay on top of what needs to be fixed if you're subscribed to a specific package's bugs, talk to its authors, etc16:33
dholbachwe also make deliberate use of bug statuses, tags and assignee fields to track what's in progress and who's working on it16:34
dholbach<hugohirsch> QUESTION: What's the 'process' model of Canonical/Ubuntu? Scrum? XP? How are you guys managed/tracked?16:34
dholbachhugohirsch, first you need to distinguish between Canonical and Ubuntu - Canonical's engineers are part of the Ubuntu community as is everyone else16:35
dholbachthere are a lot of software projects that originate in the Ubuntu world and they make use of whatever release management they like best16:35
dholbachthere is the Kanban approach in Launchpad for example, there is others that "release when it's ready"16:36
dholbachthere's others who have regular meetings, etc. - there's a huge variety16:36
dholbachI mentioned it before already... we rely on a lot of other software projects16:36
dholbachnot all the code that is shipped in Ubuntu is written by Ubuntu developers16:37
dholbachprojects that release code which we integrate into Ubuntu are called "upstream projects" or short "upstreams"16:37
dholbachit's critically important to us to have a great relationship to all of these16:37
dholbachwe need to talk about timeframe of releases, pass on information about bug reports, pass on code changes, etc16:38
dholbachone of the most important Upstream projects for us is Debian (luckily, there'll be dedicated session about Debian later in the week)16:38
dholbachDebian is a distribution itself and we inherit a lot of changes immediately from Debian16:38
dholbachalso were most of the technical decisions made in (or in conjuction with) Debian too16:39
dholbachso there's package maintainers or package maintenance teams in Debian, with whom it's very interesting to have a conversation if you plan changes or want to coordinate work16:40
dholbach(as I said earlier: there'll be a session about that later in the week - YES!)16:40
dholbach<wolfpack> QUESTION: on Which Irc channel can I get help on develoment related question/problems?16:40
dholbachwolfpack, #ubuntu-motu on irc.freenode.net should be a good start16:40
dholbachok... some of you wanted to know earlier already... how do I get my changes into Ubuntu16:41
dholbachso let's talk about that now16:41
dholbachit's not daunting at all and it's very rewarding - not only because you learn something new every single time (at least I did), but also because you fix problems for millions of users out there16:41
dholbachbecause new contributors can't immediately upload to the build machines themselves (we use GPG to track who uploaded changes, etc.), they need somebody who reviews their changes first and uploads for them16:42
dholbachand that's a great way to learn, as you interact with loads of different people and they all might teach you something new16:43
dholbachand also you make loads of great friends16:43
dholbachbarry will later on talk about Ubuntu Distributed Development, so explaining the exact process of how to branch a source package, how to submit changes, etc.16:44
dholbachso I won't steal his thunder by going into technical details :)16:44
dholbachbasically: you get the source, you make your changes, you test build the code, test it, push it for review, get it reviewed and uploaded - BUG FIXED :)16:45
dholbach<hugohirsch> QUESTION: Do I need to choose a reviewer or is a reviewer assigned via Launchpad automatically?16:45
dholbachhugohirsch, you don't have to choose16:45
=== dholbach_ is now known as dholbach
=== rahadian is now known as razorBAT
dholbachsorry16:47
dholbachfell out of the internet for a second :)16:47
dholbachhugohirsch, naturally if somebody has their special area of expertise with some package, you might talk to them over and over again :)16:48
dholbach<mauriciocinelli> QUESTION: What languages are used for Ubuntu Development?16:48
dholbachmauriciocinelli, all kinds: C, C++, Python, Perl, Java, Mono, Vala, etc etc etc.16:48
dholbachthe good thing is: you don't need to know "all of them" to get started16:48
dholbachyou can easily lay back, take it easy, fix a few simple and obvious bugs first and take it from there16:49
dholbachand as I said a couple of times already: you learn more and more over time16:49
dholbach<abcd87> QUESTION: how to customize the bootloader?16:49
dholbachabcd87, I'm afraid I don't know - if you elaborate on your question, you might find somebody who's cleverer than me in #ubuntu-devel :)16:50
dholbachI really like mauriciocinelli's question, so I'll talk about that a little bit more16:50
dholbachif you ask me it's not so much about knowing n+1 programming languages already16:51
dholbachit's about having a knack for making things work again16:51
dholbachit's about doing some detective work16:51
dholbachit's about being a team player16:51
dholbachit's about not being afraid of reading documentation16:51
dholbachit's about not being afraid of asking a few (seemingly) stupid questions16:51
dholbachif you answered "Yes" more often than "no" to the points above, you should fit right in16:52
dholbachdetective work also involves talking to upstreams and people from other distributions, coordinating with them - sometimes a fix for a specific issue might be available already and you just need to get it into Ubuntu as well16:53
dholbach<MeanEYE> QUESTION: Are you considering using Go (Google's language) at one point since it's designed for OS/service development16:53
dholbachMeanEYE, I don't know how many packages already make use of it16:53
=== bobthebob is now known as bobthebob1234
dholbachbut I'm sure it will get considered if there's demand for it16:54
dholbachOk... with that I suggest we take a 5 minute break before I help you get started and get your development environment set up16:54
dholbachso get yourself a coffee or tea or glass of water and I'll see you in 5 minutes16:54
=== abc_ is now known as Guest32570
dholbachok... we're back for part 2 of "getting started with ubuntu development"17:00
dholbachfor those of you who came late... don't worry - we'll put up logs of all sessions up at https://wiki.ubuntu.com/UbuntuDeveloperWeek later17:01
dholbachalso, if you want to chat, ask questions and all the rest of it, please head to #ubuntu-classroom-chat17:01
dholbachand prefix questions with QUESTION17:01
dholbach<jack002> QUESTION: What about for people that don't know any programming language? How can they help with development process? Translations, reporting bugs, testing the code, discussing in the brainstorm. Is there more? Any web page?17:01
dholbachjack002, you can do all of what you mentioned, but you can also try to fix small and obvious bugs - don't hesitate :)17:02
dholbach<middle> QUESTION: What do yo uthink hte best route froa student currently studying A-levels woulkd be to get intot eh wolrd of open source software development?17:02
dholbachmiddle: yes, I think it's a great choice to get involved in Ubuntu development - you'll learn loads because you basically touch all parts of an operating system - it's a fun experience and will help you figure out what you really enjoy doing17:03
dholbach<darkdevil56> QUESTION:  James Gosling resigns from sun/oracle and now oracle wont provide support for J2SE n J2M. will this affect ubuntu packaging in java?17:03
dholbach *J2ME17:03
dholbachdarkdevil56, I'm not a Java hacker, so I don't know - I personally haven't heard of any big concerns in the open source community yet though17:04
dholbach<qayshp> QUESTION: will ubuntu/canonical be taking part in the Google Summer of Code this year?17:04
dholbachqayshp, Ubuntu will definitely apply as a mentoring organisation - the decision will be with Google though :)17:04
dholbachalrightie17:05
dholbachthat's all the outstanding questions from part 1 as far as I could see17:05
dholbachin part 2 I'll help you get your ubuntu development environment set up17:05
=== QUESTION is now known as MickStep
dholbachyou will need reasonably fast internet for this, so if things take longer for you, don't despair - take it easy and just open a second terminal and continue with other steps in the meantime17:06
dholbachalso there might be some steps involved that you already did on your own some time ago - feel free to skip those17:07
dholbach(ie: you set up a GPG key already - you don't need two :-))17:07
dholbachalrightie17:07
dholbachlet's get cracking :-D17:07
dholbachin a terminal, please run this command17:07
dholbach  sudo apt-get install gnupg pbuilder ubuntu-dev-tools bzr-builddeb17:07
dholbachwhile it runs and installs a few packages, I'll talk a bit more about what we're doing here17:08
dholbachonce we're done with this session,17:08
dholbach - you have all the tools to do Ubuntu development installed on your machine17:08
dholbach - your local developer tools know about you, which simplifies work a lot17:08
dholbach - you can do local builds of packages17:08
dholbach - you can interact with other developers and propose your changes on Launchpad to get merged17:09
dholbach - you can upload packages to Launchpad, so they are hosted in your Personal Package Archive (PPA)17:09
dholbachanother word of advise: if you do Ubuntu development, it's incredibly helpful to run the current development release17:09
dholbachwe all know that from time to time the current development release is quite broken, so it's obvious that you might not want to run it as your one and only Ubuntu system17:10
dholbachhttps://wiki.ubuntu.com/UsingDevelopmentReleases explains how you can easily and safely use the development release17:10
dholbach(you don't need to do that now)17:10
dholbach<hugohirsch> QUESTION: If I have a private GPG-key and one for ubuntu development. What do you recommend? Work as a separate user with the ubuntu-GPG-key or is there an easy way to switch between keys when working on ubuntu-stuff on the console ?17:11
dholbachhugohirsch, you can easily specify whichever one you want to use17:11
dholbach<fisch246> QUESTION: did you mean to say PGP, instead of GPG?17:11
dholbachfisch246, I meant to say GPG (GNU Privacy Guard), which implements the OpenPGP standard17:11
dholbach<mauriciocinelli> QUESTION: During install it asks general type of mail configuration?17:12
dholbachmauriciocinelli, sorry about that - you can also run the install command with "--no-install-recommends" if you want to avoid the mail configuration17:12
dholbach<stefwal82> QUESTION: how is the gpgkey introduced in the mended package17:12
dholbachstefwal82, I don't understand the question17:12
dholbach<darkdevil56> QUESTION: what's postfix config?17:13
dholbachdarkdevil56, you can also run the install command with "--no-install-recommends" if you want to avoid the mail configuration17:13
dholbachok.. let's see what kind of packages we're installing right now.......17:13
dholbachthere's:17:13
dholbach - gnupg which you will need to create a GPG key with which you will sign files you want to upload to Launchpad17:13
dholbach - pbuilder which is a great tool to do a reproducible build of a package in a clean and isolated environment17:14
dholbach - ubuntu-dev-tools (and devscripts, a direct dependency) which provide you with a collection of tools that make a lot of packaging tasks a lot easier17:14
dholbach - and there's bzr-builddeb (and bzr, a dependency) which will get you set up for working in the distributed development environment, that makes it easy for many developers to collaborate and work on the same code while keeping it trivial to merge each others work17:14
dholbachA few people seem to have problems downloading packages - if you hit any problems, please head to #ubuntu-classroom-chat - there's people who are going to help you out.17:16
dholbachok... let's talk about gpg (GnuPG) first17:16
dholbachit is important that you can sign files with your key, so they can be identified as something that you worked on17:16
dholbachif you upload a source package to Launchpad, it will only accept the package if it can tell who uploaded the package17:17
dholbachIf you don't have a GPG key yet, please run this command in a terminal:17:17
dholbach  gpg --key-gen17:17
dholbachGnuPG will first ask you which kind of key you want to generate. Choosing the default (RSA and DSA) is fine.17:17
dholbachNext it will ask you about the keysize. The default (currently 2048) is fine, but 4096 is more secure.17:17
dholbachAfterwards it will ask you if you want it to expire the key at some stage. It is safe to say “0”, which means the key will never expire.17:18
dholbachThe last questions will be about your name and email address. Just pick the ones you are going to use for Ubuntu development here, you can add additional email addresses later on.17:18
dholbach<middle> QUESTION: gpg --key-gen17:18
dholbachmiddle: sorry, my mistake17:18
dholbachit's:17:18
dholbach  gpg --gen-key17:19
dholbachonce you're done with the questions it asked, there'll be also one about a "comment"17:20
dholbachAdding a comment is not necessary.17:20
dholbachThen you will have to set a passphrase. Choose a safe one.17:20
dholbachNow GnuPG will create a key for you, which can take a little bit of time, as it needs random bytes, so if you give the system some work to do it will be just fine.17:20
dholbachjust keep it sitting there and do its work - if it takes very long, open another terminal :)17:21
dholbachthe next step will be to generate a SSH key17:22
dholbachSSH is a network protocol that allows you to exchange data in a secure way over the network. In a lot of cases you will use it to access and open a shell on another machine. It is also very useful to transfer files in a secure way.17:22
dholbachif you don't have an SSH key yet, just run17:22
dholbach  ssh-keygen -t rsa17:22
dholbachThe default filename makes sense, you can just leave it as it is. Also you can choose to use a passphrase or not.17:22
dholbachWe will use the SSH key to securely push code changes to Launchpad.17:23
=== msnsachin12 is now known as msnsachin
dholbachnext we'll set up pbuilder17:23
dholbachpbuilder allows you to build packages locally on your machine. It serves a couple of purposes:17:23
dholbach - the build will be done in a minimal and clean environment, where you can see if it succeeds in a reproducible way (with no modifications of the local system17:24
dholbach - there is no need to install all necessary build-dependencies locally17:24
dholbach - you can set up multiple instances for various Ubuntu and Debian releases17:24
dholbach<gartral|watcher> QUESTION: why should communications be secured with RSA instead of AES?17:24
dholbachgartral|watcher, I'm afraid I don't know the answer to that question - it's what we use... you might get a more elaborate answer on #ubuntu-devel though :)17:25
dholbach<wolfpack> QUESTION: Does pushing code neccesary nedds ssh connection? As I am working university network proxy and can make connection through http only.17:25
dholbachwolfpack, that might be a problem then - the nice people in #launchpad might give you an alternative option17:25
dholbach<abhinav51> QUESTION: I already have ssh keys set up (I created them for use with github). Do I need to regenerate ?17:26
dholbachabhinav51, no, not necessary17:26
dholbachSetting pbuilder up is very easy. Edit ~/.pbuilderrc and add the following line to it:17:26
dholbachCOMPONENTS="main universe multiverse restricted"17:26
dholbachand save the file17:26
dholbachThis will ensure that build-dependencies are satisfied using all components.17:27
dholbachthen run:17:27
dholbach  pbuilder-dist natty create17:27
dholbachThis will take a while as it will download all the necessary packages for a “minimal installation”. These will be cached though.17:27
dholbachthe great thing about pbuilder-dist is, that you can also set up build environments for other Ubuntu (or Debian) releases17:28
dholbach(just replace "natty" with whatever else you need)17:28
dholbach<gartral|watcher> QUESTION: more of an extension of the previous question, but, will launchpad accept keys larger than 2048 bits?17:28
dholbachgartral|watcher, I could very well imagine that yes they do, but you might want to ask that question in #launchpad too :)17:28
dholbach(sorry :))17:28
dholbach<cire831> QUESTION: you specify natty on the pbuilder-dist cmd line,   does it matter that I'm running on a lucid box?17:29
dholbachcire831, no, it should still work :)17:29
dholbach<middle> QUESTION: I htink some of your commands are off, there was nothing in the file that we added the line to ans nuilder-dist wasn#'t found =s17:29
dholbachmiddle: if ~/.pbuilderrc was empty, that's totally fine17:29
dholbach<maco> QUESTION:  will pbuilder-dist be upstreamed to Debian? I was surprised to learn that it's in ubuntu-dev-tools rather than devscripts17:29
dholbachmaco, it'd be great to see it in Debian too - if you want to propose it for devscripts, please go ahead and do it :)17:30
dholbachmaco, you of all people should know how to get that done :-D17:30
dholbach<hugohirsch> QUESTION: Is there a way to make pbuilder use more than one core on a multicore machine?17:30
dholbachhugohirsch, I would think so - can somebody confirm in #ubuntu-devel? :)17:31
dholbach<mainerror> QUESTION: There is no ..pbuilderrc in my home directory17:31
dholbachmainerror, that's fine - just create it17:31
dholbach<gmargo3> QUESTION: Must pbuilder-dist be run as root?  Or does it use a fakeroot behind the scenes?17:31
dholbachgmargo3, the reason why pbuilder-dist (via pbuilder) uses root is that it uses chroot internally17:31
dholbach<cire831> QUESTION: where is it putting the natty files?17:32
dholbachcire831, ~/pbuilder17:32
=== IAmNotThatGuy is now known as M0hi
dholbach<monish001> QUESTION: In  ~/.pbuilderrc  , which directory does ~ means?17:32
dholbachmonish001, your home folder17:32
dholbachalright, let's crack on :)17:33
dholbachnext we'll teach Bazaar about yourself17:33
dholbachBazaar is the tool we use to store code changes in a logical way, to exchange proposed changes and merge them, even if development is done concurrently.17:33
dholbachSimply run:17:33
dholbach  bzr whoami "Frank Chu <fchu@example.com>"17:33
dholbach  bzr launchpad-login fchu17:33
dholbach(please, if your name is not "Frank Chu", replace with your own name, thanks)17:33
=== wolfpack is now known as Guest40940
dholbachif you don't have a launchpad account yet, you can get it if you sign up at https://launchpad.net/+login17:34
dholbach(and do that step later on)17:35
dholbachif you have launchpad account, your launchpad id is whatever is after "~" in the URL that https://launchpad.net/people/+me redirects you to17:35
dholbach<middle> QUESTION: What do we do with our SSh key, can we jsut close the terminal as it is saved somewhere or do we need to write it down?17:35
dholbachmiddle: yes, just close it - that's fine17:35
dholbachok, next we'll teach the development tools about ourselves17:36
=== Guest40940 is now known as wolfpack
dholbachEdit ~/.bashrc (if you use a different shell use whatever configuration file it comes with)17:36
dholbachand add something like this to the bottom:17:36
dholbach  export DEBFULNAME="Frank Chu"17:37
dholbach  export DEBEMAIL="fchu@example.com"17:37
dholbach(again, please replace with whatever YOUR name and YOUR email is :))17:37
dholbachafterwards save the file and run17:37
dholbach  source ~/.bashrc17:37
dholbachsorry, please make this DEBFULLNAME17:38
dholbach(thanks sapphirepaw)17:38
dholbachif you have a look back at the terminal where your gpg key was created, you might see a message like this:17:39
dholbachpub   4096R/43CDE61D 2010-12-0617:39
dholbach      Key fingerprint = 5C28 0144 FB08 91C0 2CF3  37AC 6F0B F90F 43CD E61D17:39
dholbachuid                  Daniel Holbach <dh@mailempfang.de>17:39
dholbachsub   4096R/51FBE68C 2010-12-0617:39
dholbachin this case "43CDE61D" is my GPG ID17:39
dholbachif you had a GPG key before, run this:17:40
dholbach  gpg --fingerprint <email@address.com>17:40
dholbachit should give you a similar output17:40
dholbachonce you know your gpg key id, you can run:17:40
dholbach  gpg --send-keys <KEY ID>17:40
dholbachwhich will upload your key to the keyservers, which allows others to confirm that something you signed is actually from you17:40
dholbach(if you uploaded it already, you can obviously skip that step)17:41
dholbachit would take too much time to go through all the individual steps (it's not that bad actually) to register you gpg and ssh key with LP, so for now I'll just give you the links you need:17:42
dholbach - https://launchpad.net/people/+me/+editpgpkeys (GPG key registration)17:42
dholbach - https://help.launchpad.net/YourAccount/ImportingYourPGPKey (docs for gpg key registration)17:42
dholbach - https://launchpad.net/people/+me/+editsshkeys (ssh key registration)17:42
dholbach - https://help.launchpad.net/YourAccount/CreatingAnSSHKeyPair (docs for ssh key registration)17:42
dholbachand that's really it :-)17:42
dholbach<fisch246> QUESTION: "bzr: ERROR: The user paul-mcspadden has not registered any SSH keys with Launchpad." and how do i go about doing this?17:43
dholbachfisch246, you can fix this at https://launchpad.net/people/+me/+editsshkeys17:43
dholbach<HoellP> QUESTION: How can i delete an outdated key from the keyserver?17:43
dholbachHoellP, as far as I know you can revoke a gpg key locally and then upload the revoked key to keyservers17:43
dholbach<stefwal82> QUESTION: how do you sign something?17:44
dholbachstefwal82, the development tools will do that "automatically" for you, but you can set up your mail client to sign mails, or sign files manually17:44
dholbach<hugohirsch> QUESTION: Sending the gpg-key fails with 'keyserver not configured' error. Can I upload my GPG-key to launchpad or does it need to be available via an open key server?17:44
dholbachhugohirsch, you can specify --keyserver keyserver.ubuntu.com (for example)17:46
dholbach<darkdevil56> QUESTION: which key am i supposed to send? pblic or secret?17:46
dholbachdarkdevil56, never share the secret key (--send-keys will figure that out for you)17:46
dholbach<monish001> QUESTION: Output of 'bzr whoami "Name <mailId>" '? I am getting blank..17:47
dholbachmonish001, that's fine - the command succeeded17:47
dholbachany more questions?17:49
dholbachif you missed anything, or things are still being worked on, just follow the log of the session later on again - it's fine if you needed a little bit more time :)17:49
dholbach<hugohirsch> QUESTION: Thx - uploaded my GPG-key. Will it automatically be connected/synced with my Launchpad account?17:49
dholbachhugohirsch, no, you need to head to https://launchpad.net/people/+me/+editpgpkeys to tell Launchpad about it17:50
dholbach<darkdevil56> QUESTION: the ssh command that i had typed earlier is retrieving and validating all the packagges till now.. is this normal?17:50
dholbachdarkdevil56, that must be the pbuilder-dist command - yes that's to be expected - just let it do its work :)17:50
dholbach<mauriciocinelli> QUESTION: Is there anything else we need?17:50
dholbachmauriciocinelli, that should be it for now - it should set you up for a good start - whatever else is required for others sessions will be dealt with there17:51
dholbachare there maybe some more general questions about Ubuntu development?17:51
dholbachwe still have ~10 minutes before I have to hand the mic to barry :)17:51
* barry clears his throat17:52
dholbach<steinex> QUESTION: not completely related, more about the process itself: are the packages synced from debian just the plain packages and ubuntu does the ubuntuspecific patches from-scratch for every new release? or are ubuntu-patches automatically applied on sync and if they don't merge, they must be merged by hand?17:52
dholbachsteinex, good question and it will be dealt with in the Debian session17:52
=== kai__ is now known as rechengehirn
dholbachfor now: if the source is unmodified from Debian and we're before Debian Import Freeze, they will be synced automatically and built in Launchpad17:53
dholbachif there are ubuntu changes we need to "merge" and we have a tool that helps us with that (http://merges.ubuntu.com)17:53
dholbach<acarpine> QUESTION: I read something about https://wiki.ubuntu.com/MOTU/Mentoring Could you explain more in detail how it works and who should use it?17:53
dholbachacarpine, unfortunately the Mentoring programme is out of order at this moment17:53
dholbachI suggest you check out https://wiki.ubuntu.com/MOTU/GettingStarted and please feel very welcome to ask all the questions you have in #ubuntu-packaging or #ubuntu-motu17:54
dholbacheven if it's not a dedicated mentor for you, there's loads of people who are very happy to help you get started and solve your problems17:54
dholbach<hugohirsch> QUESTION: I uploaded my key, but LP doesn't find the key with the given fingerprint. Do I need to wait for synchronisation between LP and Ubuntu-Keyserver?17:54
dholbachhugohirsch, yes, you might have to wait a little bit (I don't know the exact timeframe, sorry)17:54
dholbach<wolfpack> QUESTION: Does ssh key are need to be updated with every new distro release or new computer?17:55
dholbachwolfpack, no, just leave them as they are17:55
dholbach<jledbetter> QUESTION: So, now that we have our environment set up, we look at https://bugs.launchpad.net/ubuntu and -- that's where I'm not sure.17:55
dholbachjledbetter, the upcoming sessions and https://wiki.ubuntu.com/MOTU/GettingStarted should give you some ideas where to look for bugs to fix and how to go about it :)17:55
dholbachmore questions? we still have 5 minutes :)17:56
dholbach<cire831> QUESTION: when I uploaded the key it said it was uploading it to keys.gnupg.net.  On launchpad under editpgpkeys it says something about Ubuntu keyservers.   Will the Ubuntu keyserver get the new key directly from the gnupg keyserver?17:56
dholbachcire831, yes, it will take a few minutes17:56
dholbach<saimanoj> QUESTION:Are ubuntu packages sent back to Debian?17:56
dholbachsaimanoj, nice one!17:56
dholbachsending patches back to Debian (or other upstreams) is a manual process and very important17:57
dholbachit is indeed being done17:57
dholbachand there will be more info about that in the Debian session which I believe will be tomorrow17:57
dholbach<acarpine> QUESTION: Fixing bugs, when choose bzr and when use a traditional process (create a patch with a debdiff)?17:57
dholbachacarpine, bzr is a REALLY nice way to go about fixing stuff and barry will take the next hour to walk you through it17:58
dholbachif it should not work out for you, I'm sure that barry will love to hear more about it and yes, in that case the "traditional process" of posting a patch will work too17:58
dholbach<stefwal82> QUESTION: in former courses you gave examples, why don't you now?17:58
dholbachstefwal82, I type too slowly - not enough time :)17:58
dholbachand I really enjoy answering loads of questions here - I hope it's useful17:59
dholbachthere'll be more examples in other sessions this week17:59
dholbach<simar> QUESTION: When I run gpg-key fingerprint <email>, I get three uid, what does it mean?17:59
dholbachsimar, do you have more than one gpg key?17:59
dholbachah no... is that maybe different user IDs on the same key? in any case it shouldn't be a problem17:59
dholbach<cire831> QUESTION: is the debian session being talked about the same as "Getting fixes into Debian"?18:00
dholbach"Getting fixes into Debian" will definitely be part of it18:00
dholbach<middle> QUESTION:What has this allowed me to actually do?!18: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: Introduction to Ubuntu Distributed Development (UDD) - Instructors: barry
dholbach  - you have all the tools to do Ubuntu development installed on your machine18:01
dholbach  - your local developer tools know about you, which simplifies work a lot18:01
dholbach  - you can do local builds of packages18:01
dholbach  - you can interact with other developers and propose your changes on Launchpad to get merged18:01
dholbach  - you can upload packages to Launchpad, so they are hosted in your Personal Package Archive (PPA)18:01
dholbachand I'm out of time18:01
barryhi, my name is barry warsaw, and i live near washington dc.  i work for canonical, do ubuntu development, am a core python developer and project leader for gnu mailman.  i'm here to introduce you to a new way of developing ubuntu, called 'ubuntu distributed development', or 'udd'18:01
dholbachnext up is the ROCKing Barry Warsaw18:01
barrythanks dholbach!18:01
dholbach... not only an Ubuntu, Launchpad and Python hacker, but also a fun guy, friend and exceptional bass player18:01
barryaw shucks, thanks :)18:02
dholbachenjoy the session, you'll love Ubuntu Distributed Development afterwards18:02
barryin a nutshell, udd uses the bazaar revision control system to fix bugs and develop features in ubuntu packages.  in this session, we'll learn how to fix a bug by:18:02
barry * creating a local branch of the project18:02
barry 18:02
barry * developing a fix, then committing it to your local branch18:02
barry * link the branch to the bug report in launchpad18:02
barry * request a 'merge proposal' for the package maintainer to review18:02
barrywe'll probably just be scratching the surface of how this works, but hopefully you will come out of this session feeling more confident about using bzr to work on you ubuntu packages.  i won't cover much about packaging in particular, or bzr, but i will try to answer any questions you have!18:03
barryjust a note: we'll be using a bug in computer-janitor as an example.  c-j is a little different than most packages in ubuntu because it's developed natively in launchpad. for the purposes of this class, this difference won't matter too much.  if it comes up, i'll point it out.18:03
barrywhy use bzr when the old tools work just fine?  bzr gives you the benefit of a full distributed version control system to manage package changes.18:04
barry  * incremental changes can be committed locally as you go18:04
barry  * logging, diffing, intelligent merging18:04
barry  * interact better w/other ubuntu devs by sharing works-in-progress18:04
barry  * work disconnected18:04
barry  * manage all artifacts in launchpad18:04
barry  * request reviews online18:04
barry  * automatic requests for sponsorship review18:05
barry  * soon: build-from-branch-to-archive18:05
barryfor now, the documentation is a little bit scattered, but the best place to start is on the wiki.  we are acdtively working on cleaning this up and moving it to the official ubuntu developers documentation.18:05
barryhttps://wiki.ubuntu.com/DistributedDevelopment/Documentation18:05
barryso, i'm going to give folks a few minutes to catch up on all the prepared overview above, then i'll start digging in...18:06
barryanybody need a few more minutes to catch up?18:08
barryor are there any questions about the introductory material, or what i hope to cover today?18:08
barryso, we need to start by making sure you have the basic tools.  you'll need bazaar and a special plugin that adds a lot of useful stuff18:09
barrystart by doing this:18:10
barrysudo aptitude install bzr bzr-builddeb18:10
barryyou're also going to need to know your launchpad id.  dholbach covered this in the previous session.  it's the bit after the ~ in your launchpad url18:10
barryif you don't have a launchpad login yet, either go get one now or there will be a few steps later that don't work for you.  no worries, you can still follow along18:11
barrydholbach: points out that you can visit this url:18:11
barryhttps://launchpad.net/people/+me18:11
barryand after it redirects, you can look for the ~ in the url.  the bit after that is your launchpad id18:12
ClassBotmonish001 asked: bzr launchpad-login monish001 bzr: ERROR: The user name monish001 is not registered on Launchpad.18:13
barrymonish001: be sure you've registered on launchpad first.  'bzr launchpad-login' will not create a login for you18:13
barryalso, some folks may not have aptitude, you can install the bzr tools with this instead:18:14
barrysudo apt-get install bzr bzr-builddeb18:14
barryokay, now, i'd like you to run this command:18:15
barrybzr --version18:15
=== evilshadeslayer is now known as shadeslayer
barryand note the version of bzr that you are using18:15
barrywe are going to use two different urls later to refer to package source in launchpad.  if you are using bzr version 2.3 or higher, you will be able to do things like this:18:16
barrybzr branch ubuntu:mypackage18:16
barryto get the version of 'mypackage' in natty18:16
barryif you have bzr 2.2 or older, this will be spelled like this:18:17
barrybzr branch lp:ubuntu/mypackage18:17
barryif you sat in on dholbach's session, you've already done this:18:17
barrybzr whoami "Your Name <me@example.com>"18:17
barrybzr launchpad-login mylpid18:17
barryand now we're ready to use bzr to fix a bug in ubuntu!18:17
ClassBothugohirsch asked: Is it a problem that I still run 10.10? My bzr is 2.2.118:18
barryhugohirsch: it is not a problem.  this will work just fine.  just remember to use the lp:ubuntu/foo urls instead of ubuntu:foo18:18
ClassBotcire831 asked: how does it know to get the natty version?  what if I'm running lucid and want that version?18:18
barrycire831: the ubuntu:foo urls always pick the current in-development version of ubuntu, i.e. as we speak, that's natty18:19
barryyou can always use ubuntu:natty/foo or ubuntu:maverick/foo etc. to get a specific version of a package in a specific version of ubuntu18:19
barrythose could also be spelled as lp:ubuntu/natty/foo or lp:ubuntu/maverick/foo or lp:ubuntu/lucid/foo etc18:20
ClassBotpalhmbs asked: Why does bzr-builddeb setup mail, do I really need it?18:20
barryit sets up your email which will be used when you commit changes later on (i.e. it'll show up in your debian/changelog file)18:21
ClassBotchilicuil asked: can I use bzr and lp to pull debian versions?18:21
barryyes.  you can use urls like this:18:21
barrydebian-lp:squeeze/foo18:21
barryor18:21
barrylp:debian/squeeze/foo18:22
barryokay, let's fix a bug!18:22
barrygo ahead and open this url in your browser: http://launchpad.net/bugs/72661618:22
barrysomeone noticed a typo in a file in the package.  we'll fix that the udd way :)18:22
barrygo ahead and cd to a location where you want to do the work.  we'll be creating a bunch of directories in there18:23
barrycd someplace18:23
barrynow, just a little bazaar boilerplate to make things efficient:18:23
barrybzr init-repo janitor18:23
barrycd janitor18:23
barryand now we're going to grab the source branch for the current version of computer-janitor in natty:18:24
barrybzr branch ubuntu:computer-janitor natty18:24
* barry will give you a moment to catch up18:24
ClassBotmhall119 asked: why is init-repo necessary? why not just bzr branch?18:24
barryit's not strictly necessary, but as you'll see in the next step, using a bazaar 'shared repository' like this will make future steps go much faster by reducing the amount of network traffic you'll consume18:25
barry(i.e. bzr can cache things locally if you use a shared repo)18:25
ClassBotcire831 asked: didn't work.  bzr branch ubuntu:computer-janitor natty says not a branch.18:26
barrydoes 'bzr branch lp:ubuntu/computer-janitor' work for you?18:26
barryah.  this ubuntu: url might not work for computer-janitor.  remember i said it was a little weird because c-j is developed in launchpad natively?  if it does not work for you, use this url instead:18:27
barrybzr branch lp:computer-janitor18:27
barryin general you will use the ubuntu: urls, but in this case it's a little different.  don't let that confuse you too much ;)18:27
barryeverybody good?18:28
barrybzr branch lp:computer-janitor natty18:28
barry^^18:28
barry(that just gives you the branch in a directory called 'natty')18:28
barryokay, so we're going to work on bug 726616.  let's branch the current c-j trunk to a working directory which will only contain our fix18:29
barrybzr branch natty bug-72661618:29
ClassBotcire831 asked: what exactly does the natty on the end do?  rather than say bzr lp:ubuntu/natty/computer-janitor18:29
barryall it does is leave you with a local directory called 'natty' instead of the default 'computer-janitor'.  there's no other difference18:29
barryit's totally up to you18:30
barrynow...18:30
barrycd bug-72661618:30
barryand we're sitting in a directory where we'll make our fix!18:30
barrylook around.  you'll see the upstream source code, and a debian directory with all the packaging information.  it looks like a pretty typical ubuntu source package, right?18:31
ClassBotcire831 asked: so I should be able to do bzr branch lp:ubuntu/lucid/computer-janitor lucid to get the lucid version?18:31
barryyes18:31
barrythese urls are very handy when you want to backport fixes for sru's and such18:31
barryokay, sorry, just triaging some questions18:33
barryso, now, if you open the NEWS file in your favorite editor, and search for the word 'publically' you see the typo18:34
barryjust use your favorite editor to spell check this to 'publicly' and congratulations!  you've just fixed an ubuntu bug18:34
barrybut of course, now you'd like to share your fix with the world and get it into ubuntu, right?  let's do that now18:35
barryexit your editor and then at the command line do this:18:35
barrybzr diff18:35
barryyou should see that the NEWS file has the fix.  what you'll see is a unified diff between your local change and the original source code18:36
barrynext thing you want to do is commit this change, but before you do that, you also want to add a debian/changelog entry which records what you've done18:36
barrytype this: dch -i18:36
barrythis will open an editor providing you with a template to fill in your change18:37
barryyou'll add a little bit of descriptive text, such as what i did here:18:37
barrycomputer-janitor (2.1.0-0ubuntu4~udd0) UNRELEASED; urgency=low18:37
barry 18:37
barry  * NEWS: fixed a typo.  (LP: #726616)18:37
barry 18:37
barry -- Barry Warsaw <barry@ubuntu.com>  Mon, 28 Feb 2011 11:18:20 -050018:37
barry 18:37
barrynote a couple of things:18:37
barrythe version number will be filled in, but when you see it, it won't have the ~ppa0 suffix.  that's a trick we use to specify a version "in the middle" of the previous release and what will be the next release18:38
barryusing a ~ suffix makes it easier for testing later, but it's not strictly necessary18:38
barryalso notice the UNRELEASED tag.  we'll eventually change that to 'natty' but again, this is a middle step so we can do some testing18:39
barryfinally, the most important part18:39
barrynotice this text at the end of the description line:18:39
barry(LP: #726616)18:39
barrythat is really critical to include.  it will be used to link your branch with the fix to the bug report18:39
barryit must be exactly like that (the parentheses are optional)18:39
barrybut it must be of the form:18:40
barryLP: #12345618:40
barrywith a space between the colon and hash, and the hash must be there18:40
barryanyway, save the changelog and exit your editor.  i'll take some questions now18:40
ClassBotfisch246 asked: "bzr branch natty bug-726616" what command do i use if i'm on maverick?18:40
=== Nik is now known as Nekhelesh
barrynote that 'natty' in the above example is the local directory of the source branch that you checked out previously.  you'd still use that, since you're working on the natty version of the package, even though you're on maverick18:41
ClassBotdarkdevil56 asked: bash: cd: bug-726616: No such file or directory?18:41
barrydid you do the 'bzr branch natty bug-726616' command from earlier?18:42
ClassBotfigure002 asked: where does dch get your email address from?18:43
barryin the previous session, dholbach described how to set the DEBEMAIL and DEBFULLNAME environment variables.  dch gets those values from there by default, but do a 'man dch' for details18:44
barryokay.  now, we've fixed the bug, and we've added a changelog entry.  we just need to commit our changes to the local branch18:44
barryrun this: debcommit18:45
barrythis will call 'bzr commit' with some useful defaults, so it's mostly a convenience.  you could use 'bzr commit' but for now, 'debcommit' is better18:45
barryyou can ask bzr to show you the history of the change you just made:18:45
barrybzr log -c -118:46
barryup to now though, your fix is just sitting in a branch on your local machine.  we want to push the change to launchpad so we can share it with others.  to do this, run this command:18:46
barrybzr push lp:~myid/computer-janitor/bug-72661618:46
barrywhere of course you use your launchpad id instead of 'myid'18:47
barrythat'll take just a few seconds to run, and then when the command comes back, type this:18:47
barrybzr lp-open18:47
barrythis should open your web browser to the launchpad page that represents your just pushed branch18:47
ClassBotpalhmbs asked: if you fix a bug that hasn't been reported, what then, create a bug on launchpad?18:48
barryit's generally good practice for there to always be a bug report first.  it's not strictly required for any of the udd tasks, but it makes everyone's life easier to track the issue if there is a bug report18:48
barryso i do suggest creating the bug report first.  do that directly in launchpad not through bzr though18:49
ClassBotjderose asked: when i fix a bug, i like to do a PPA test build (also so others can easily test fix) - in this case, is it okay to commit, say, "natty" in the changelog rather than "UNRELEASED"?  Wont the PPA builders choke on UNRELEASED?18:49
barryi'm running out of time, but i do plan on covering this later.  or if time runs out i will answer this in -chat18:49
ClassBotcire831 asked: where can I find out how all these tools are integrated.  ie.  how the bzr stuff knows about LP: #<bug> etc.18:50
barrymore info can be found in #ubuntu-devel or #udd or #bzr18:50
barryokay, so we've pushed our fix branch to launchpad, now what?18:50
barryif you look at the page that 'bzr lp-open' opened in your browser, scroll down to the 'related bugs' section18:51
barryyou should see a link to bug 72661618:51
ClassBotThere are 10 minutes remaining in the current session.18:51
barrythis was done automatically by debcommit, and launchpad when you pushed your branch.  it was made possible by the 'LP: #726616' text you added in debian/changelog18:51
barryif you click on the related bug link, you'll hop over the bug.  notice that the bug page also has a link for 'related branches'. that should let you get back to the branch page18:52
barrythough, there may be multiple such branches from all the other folks in this class :)18:52
barrybe sure to pick yours!  or use the back button18:52
barrynow, make sure you're on your branch page.  scroll down and look for a link that says 'propose for merging'18:52
barryclick on that18:53
barrywhat that does is inform the owner of the master branch, and all the ubuntu sponsors, that you have a fix for an ubuntu bug18:53
barryso you don't have to request a sponsor, or a review, explicitly.  (again, here's where computer-janitor is a little odd, but the above is true for 99% of branches)18:53
barryer, packages18:53
barrymaco points out that sponsors aren't specifically notified, but your branch does show up in the sponsorship queue automatically.  you can still ping a sonsor directly as normal18:55
ClassBotThere are 5 minutes remaining in the current session.18:55
ClassBotcire831 asked: mine didn't link automatically.  I can do it by hand though.18:55
barryit can take several minutes for launchpad to process your branch and create the link.  you can of course do it manually if you get impatient :)18:56
ClassBotcire831 asked: should we actually go ahead and do it?18:56
barrygo for it!  don't worry, i'll be processing that bug when the class is over :)18:56
ClassBotdarkdevil56 asked: aborting commit write group: PointlessCommit(No changes to commit) bzr: ERROR: No changes to commit. Use --unchanged to commit anyhow.?18:56
barrybzr will spit this out if you've already committed all your changes.  just use --unchanged, or make another change.18:57
barryit can happen if you used 'bzr commit' before you did debcommit18:57
barryplease note that i skipped a lot of stuff about doing test builds, creating source packages, uploading to a ppa etc.   we've basically run out of time, but i'll head over to #ubuntu-classroom-chat to continue for a while18:58
barryremember that all the gory details are on the wiki:18:58
barryhttps://wiki.ubuntu.com/DistributedDevelopment/Documentation18:58
barryi'll take a few more questions before the next session starts, and thank you all for listening!18:59
ClassBotstefwal82 asked: is the worked on problem now uploaded?18:59
barryno.  a sponsor would have to merge your branch, build the source package, and upload that18:59
barryin the future though, there will be some very cool stuff to do even that automatically in launchpad19:00
barryif you have upload rights of course :)19:00
ClassBothugohirsch asked: If i fix a bug do I need to create a PPA or is a branch sufficient enough?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: Taking bite out of Unity - Instructors: DBO, jcastro
ClassBotLogs for this session will be available at http://irclogs.ubuntu.com/2011/02/28/%23ubuntu-classroom.html following the conclusion of the session.19:01
barrya branch is sufficient for a sponsor to review and apply your change.  a ppa is not necessary at all!  but it's useful for testing your package, or sharing your changes with others before it gets uploaded19:01
jcastrowoo, thanks barry, great job!19:02
DBOoh wait, there you are19:02
DBOsweet19:02
jcastroThis next session is How to Contribute to Unity19:02
jcastrowith me and DBO19:02
jcastroo/19:02
DBOwoot!19:02
jcastrook so I'm going to go through the intro19:02
jcastroand show you guys how we roll in Unity land19:02
jcastroand then DBO's gonna take your questions19:03
jcastroso first things first19:03
jcastrowhy are we doing this?19:03
jcastroas it ends up, things in Open Source end up more awesome when more people contribute (duh)19:03
jcastroso what we're concentrating on here for Natty is making it easy for people to fix unity19:03
jcastroor to contribute features19:03
jcastrowhatever scratches your itch, so that you can put your "brick in the wall"19:04
jcastroyes, like the pink floyd song19:04
jcastroso, for this session you hopefully already know what unity is19:04
jcastroand you're itching to get your hands on the code19:04
jcastrohttp://unity.ubuntu.com/getinvolved/19:04
jcastrowe're going to start here19:04
jcastroif you're going to do unity I recommend you bookmark this page19:05
jcastroit's the cheat sheet for how to get the code, and do branch proposals19:05
jcastroso, are people comfortable with bzr? This session doesn't cover bzr basics but I can do a quick tutorial (just comment in -chat)19:05
jcastrooh, someone's asked a good question19:06
ClassBotakshatj asked: Does contributing to unity require knowledge of compiz?19:06
jcastroDBO: ^19:06
DBOakshatj, in short, no19:06
=== chris_ is now known as bobthebob1234
DBOthe longer answer is, not unless you want to work on those specific parts that interface between compiz and unity19:07
DBOabout 90% of the code really doesn't touch compiz at all19:07
jcastrook so the first step is to grab the code19:08
jcastrothis is straight forward19:08
jcastrobzr branch lp:unity19:08
jcastrowhich is "hey bzr, make a branch of the unity project on launchpad, I want to do stuff"19:08
jcastroyou will then decide, what is it you want to fix19:08
jcastronow some people know right away "I am going to go make this"19:09
jcastroother people prefer "hey just tell me what needs to get fixed and I'm on it."19:09
jcastroso the unity team takes bugs that they feel are "bitesize"19:09
jcastrothings to familiarize yourself with the code19:09
jcastroand not flood you with a ton of stuff19:09
jcastroso you can pick and choose some bufgs to familiarize yourself19:10
jcastrodon't worry, we don't put all the crap bugs in bitesize19:10
jcastrowe try to pick a mix of "sexy" bugs too19:10
jcastrofor example trevino fixed the little fade in the title bar, etc.19:10
jcastrothis list is here:19:10
jcastrohttps://bugs.launchpad.net/unity/+bugs?field.searchtext=&orderby=-importance&field.status:list=NEW&field.status:list=INCOMPLETE_WITH_RESPONSE&field.status:list=INCOMPLETE_WITHOUT_RESPONSE&field.status:list=CONFIRMED&field.status:list=TRIAGED&assignee_option=any&field.assignee=&field.bug_reporter=&field.bug_supervisor=&field.bug_commenter=&field.subscriber=&field.tag=bitesize&field.tags_combinator=19:10
jcastroALL&field.has_cve.used=&field.omit_dupes.used=&field.omit_dupes=on&field.affects_me.used=&field.has_patch.used=&field.has_branches.used=&field.has_branches=on&field.has_no_branches.used=&field.has_no_branches=on&search=Search19:10
jcastrook so launchpad hates me19:10
jcastrohttps://wiki.ubuntu.com/Unity/Bitesize19:10
jcastrothe list of bugs is on that page there19:10
jcastro(we're on steps 2 and 3)19:11
DBOits worth noting that most bitesize bugs have been picked because they can be handled with little knowledge beyond C++ and glib19:11
jcastroso, you basically find a bug from that list, something you want to fix19:11
jcastroof course, you can feel free to ignore the bitesizers and dig into compiz and fix the universe, but for this tutorial we're going to keep it simple19:11
jcastrook so now you find a bug you want to fix19:11
jcastroand you have the code19:11
jcastrothe next step is to fix the code itself19:11
jcastrothis is basically up to you, you need to fix the bug, DBO can you tell people how they can get coding help for fixing bugs?19:12
DBOthe absolute best resource for getting coding help is us, the primary developers19:12
jcastrowhere can I find you?19:12
DBOwe all idle in #ayatana and are happy to field your questions about the code19:12
jcastroyou can also post on ayatana-dev@lists.launchpad.net19:13
DBOif you ping me there I will either answer your question or direct you to the proper person to ping :)19:13
DBOand yes as jorge mentioned, we watch the mailing list too19:13
jcastrook so for this example we're going to assume that you know how to code (heh) and have fixed the bug.19:13
jcastroyou would do normal hacker things here, test it, etc.19:13
jcastrothe next thing you need to do is commit the fix to your local repo19:14
jcastrothis is easy, "bzr commit"19:14
jcastronow, you've fixed it and committed, now we need to put it somewhere where DBO can check it out19:14
jcastrowe're going to push a branch to launchpad19:14
jcastroto do this I'll shove it under my username in launchpad19:15
jcastroso, I'll say:19:15
jcastrobzr push lp:jorge/unity/fix-for-12345619:15
jcastroor19:15
jcastrobzr push lp:jorge/unity/awesome-new-feature-that-does-foo-bar19:15
jcastroI can name it what I want at the end there19:15
DBObzr push lp:~jorge/unity/fix-for-12345619:15
jcastropeople generally just pick something descriptive19:15
DBOyou missed the ~19:15
jcastrooops, sorry19:16
jcastrothanks19:16
* DBO got your back19:16
jcastro(I see the doc has a typo, I'll fix that after the class)19:16
jcastrook, let's field some questions at this point19:16
ClassBotmhall119 asked: Are there any bugs yet that Python devs can fix?19:16
DBOmhall119, totally! we need people using libunity to add support for the launcher in other applications19:17
DBOsince python has gir support, and libunity is a standard gobject library, you are able to use it directly19:17
jcastrolibunity and python should be sorted real soon, there's a few bugs but the right people are on the problem19:17
jcastro"it's close"19:17
DBOdoh, speaking ahead of myself :)19:18
ClassBotrsajdok asked: Can I develop on maverick or only natty?19:18
DBOnatty only, sorry19:18
DBOI stayed on maverick as long as I could19:18
DBOand eventually too many deps needed to be backported for me to keep up19:18
DBOyou would need to backport, glib, gio, gtk, and vala at least19:18
jcastrothe nice thing is now that the APIs and stuff are getting hashed out we won't need to break things going forward19:19
jcastrowhat I recommend is waiting until thursday to grab alpha 3, this will have all the goodies (including fixed nvidia and ati drivers)19:19
jcastroand then installing it on a USB key, boot off of it, and code19:19
jcastroas natty stabilizes and it's not so "scary" to run a devel distro we expect more people to mess with the code19:20
jcastrowhich is what we want!19:20
ClassBotrsajdok asked: Can You describe how to compile? cmake . etc.?19:20
jcastroDBO: ^^ this one is all yours19:21
DBOrsajdok, yeah one second19:21
jcastroheh, cmake!19:21
DBOrsajdok, grabbing the command :)19:21
DBOso what you do19:21
DBObzr branch lp:unity19:21
DBOcd unity; mkdir build; cd build;19:22
DBOthen you run this big command19:22
DBOcmake .. -DCMAKE_INSTALL_PREFIX=/home/USERNAME/staging/ -DCMAKE_BUILD_TYPE=Debug -DCOMPIZ_PLUGIN_INSTALL_TYPE=compiz -DGSETTINGS_LOCALINSTALL=ON19:22
DBOthat will install the unity plugin into your /home/USERNAME/staging directory19:22
DBOerm19:23
DBOafter you run make and make install that is19:23
jcastrowhere's the wiki page at?19:23
jcastroYou wrote this down right? :)19:23
DBOon the installing unity wiki page...19:24
DBOhttps://wiki.ubuntu.com/Unity/InstallationGuide19:24
jcastrohttps://wiki.ubuntu.com/Unity/InstallationGuideFromSource19:24
jcastrothose 2 pages should help you out19:24
DBOah right19:24
jcastrook19:25
jcastroso, now you have built it19:25
=== bdrung_ is now known as bdrung
jcastroand fixed your bug19:25
jcastroand tested it19:25
jcastroPro tip: You will need to test your fix19:25
jcastroas your code will undergo review19:25
jcastrook, so we submitted the code to launchpad with our last bzr push19:25
jcastrohttps://code.launchpad.net/unity19:26
jcastroyour branch will automagically show up on that page ^19:26
jcastrowhat you see here is all the branches for unity19:26
jcastroas people work on the code they do it in branches19:26
jcastroand then submit them19:26
jcastrothis is important, as we're very distributed19:26
jcastroso you won't see things going into trunk until people submit a branch19:26
jcastroPro tip: this page is also a good way to see what's coming down the pipe19:27
jcastroso, every day, when DBO wakes up19:27
jcastro(at like noon)19:27
jcastrohe goes through these branches19:27
jcastroDBO: can you tell us what you go through to review these branches?19:27
DBOso the review process is 2 primary stages19:27
DBOwell 319:27
DBOin the 0th stage I decide what can be reviewed (certain features are outside of the scope of what we can support for natty)19:28
DBOif your feature/bugfix is able to land for natty, we move on to step 1, otherwise we inform you that your review will be looked at again for Natty +119:29
DBOthe first step of code review involves looking over the code itself19:29
DBOit must conform to the correct coding guidelines (which for now are somewhat loose) and not present any obvious issues19:29
DBOhere I will be looking for memory leaks, crash conditions, general architecture, and overall clarity of the code19:30
DBOif you pass mustard, we move to step 2, otherwise the problems are noted and the merge will be marked "Needs Fixing"19:30
DBOyou may resubmit at any time if you think the issues have been resolved19:30
DBOat step 3, I am going to actually install the code on my machine, test that it actually does what its supposed to do, ensure its not doing anything too stupid (leaking tons of memory comes to mind here)19:31
jcastro(coding guidelines here: https://wiki.ubuntu.com/Unity/CodingStyle)19:31
DBOif that all passes mustard again, I will approve the merge19:31
DBOif not, I will mark the branch as "Needs Fixing" and send it back to the original developer with the reasoning why19:31
DBOonce approved, assuming the contributor has signed the CA, I will pull the branch into trunk19:32
DBOand your code ships in the next release19:32
jcastroIf you haven't accepted the canonical contributor agreement yet, we'll also send you a mail asking you to either accept/not accept19:32
jcastrohttps://code.launchpad.net/unity/+merges19:32
jcastrohere's the list of all the merges we've had so far19:32
jcastroas you can see, it starts to pile up, which is good19:32
jcastrothe more branches we have incoming, the better19:33
jcastrook so really, those are all the steps, any questions?19:33
ClassBotrsajdok asked: Can I develop unity-2d on maverick or only natty?19:34
DBOUnity-2D has similar requirements to Unity-3d19:34
DBOI can't say for sure (as I have not checked) but I imagine it would also require natty19:34
DBOI will ask a Unity-2D dev right now19:34
ClassBotmhall119 asked: what info do you want attached to bug reports against Unity?19:35
DBOGeneral system info is always helpful for starters19:35
DBOthings like CPU, 64 vs 32 bit, GPU, and amount of memory19:35
DBOwe also like to know what package version of compiz and unity you have19:36
DBOand if you can include steps to reproduce teh issue, that is awesome19:36
jcastro(if you're reporting a bug on the unity in natty "ubuntu-bug unity" will snag a bunch of data for us)19:37
DBOif the issue is intermittent (and many issues with X/compiz are), if you can manage to get a backtrace using GDB, you instantly become a hero, and we sing your praises on high19:37
ClassBotwolfpack asked: Does building and installing UNITY does not removes originally installed unity?19:37
DBOit depends on where you install it to19:38
DBOif you install it into /usr, it will overwrite the existing unity plugin19:38
DBOif you install it anywhere else, it does not19:38
DBOif you accidentally overwrite the existing plugin, you can do sudo aptitude reinstall unity19:38
DBOto install the old version again19:38
jcastromore questions?19:39
jcastroDBO: he goes on to ask "So both wiil be working together if installed in directory othe than /usr?"19:40
DBOwolfpack, you would have to use an env variable to tell compiz which one to use19:40
jcastrook while we wait for questions19:41
jcastroDBO: why don't you go into some of the architecture19:41
jcastrolike, what does what19:41
DBOwolfpack, I'll get you more details on that in a bit, i actually dont have them off hand because I run my dev setup a bit differently19:42
DBOjcastro, sure no problem19:42
DBOjcastro, Unity is broken down into 3 major components. The plugin interface, the UI elements, and the backend elements.19:43
DBOThe plugin interface exists entirely in a file named unityshell.cpp. This is where you go to look for any bug dealing with interactions between unity and compiz19:43
DBOevent handling, grabbing of and passing off events, and other plugin interactions are performed here. This is also the main entry point for Unity19:44
DBOUnity is also painted from this file (there is a pretty clear paint function if you open it up)19:44
DBO(jcastro, feel free to interrupt me with questions)19:45
DBOUI elements are things like the launcher, quicklist, panel, or palces19:45
DBOthese elements are rendered using a library called Nux19:46
DBONux widgets are not that dissimilar from GTK or Qt widgets save for the fact that they can be embedded into existing openGL contexts19:46
DBOUI elements are laid out in a semi-hierarchal fashion, just like qt and gtk19:47
DBOreally if you have worked in any toolkit before, you should not feel that far out of your comfort zone19:47
ClassBotrsajdok asked: Is it possible to develop Unity on virtual machine?19:47
DBOnot last I checked19:47
DBOmost virtual machine drivers still dont do FBO's yet19:48
DBOwhich means we cant draw properly19:48
jcastrofor a time Virtualbox 4 ran it19:48
DBOI hear rumors that vmware has fixed this, but I have not tested that19:48
jcastrothen we ran into the Xorg transition in natty19:48
ClassBotwolfpack asked: Am I allowed to upload patches for bugs? As I can make connection through http only . No ssh is allowed her.19:48
DBOwolfpack, we take patches :)19:49
DBOwolfpack, if you can communicate your patch to us through bongos and a string and we understand it, we'll take it19:49
ClassBotAmoz asked: sorry for being a bit late, but when you talked about the system info part, and getting a backtrace with GDB, is there a specific command to collect all this information?19:50
DBOubuntu-bug unity collects most of the info19:50
ClassBotThere are 10 minutes remaining in the current session.19:50
DBObacktraces can be trickier, usually what I do is ssh in from another machine (or switch to a VT), then run "sudo gdb"19:51
DBOinside gdb, I run "attach <pid of compiz>19:51
DBOyou will have to check the pid of compiz before you start gdb19:51
DBOafter it finishes attaching, you can simply run "backtrace" adn get the data19:51
DBOwolfpack, if you need help at the time of collection, you can always stop by #ayatana, and we can walk you through it no problem19:52
DBOerm19:52
DBOI am not sure that was wolfpack asking that19:52
DBOi meant Amoz :)19:52
jcastro10 minutes left, more questions?19:53
ClassBotmhall119 asked: SInce we can't test in a virtualmachine, can we at least run Unity from a LiveCD now?19:54
DBOlive CD is an acceptable way to run unity, we suggest running from a USB key so you can save19:54
jcastrothere's been some real churn due to the Xorg transition with people getting working desktops to test on Unity19:55
jcastroAlpha 3 (this thursday) will finally have all that sorted19:55
ClassBotThere are 5 minutes remaining in the current session.19:55
ClassBotjderose asked: I'd like to help document the Python API... what's the best way to do with for gobject introspection? can i make help(Unity.foo) show something useful?19:56
jcastroohh, please join us in #ayatana after this session19:57
jcastroand we can sort that19:57
ClassBotakshatj asked: Are there any plans to provide a Unity Live CD like Gnome Shell does?19:57
DBOjderose, yes, #ayatana, we'll get you in touch with the right peoples19:57
DBOakshatj, its called the 11.04 release of Ubuntu :)19:57
jcastroyep, on thursday!19:57
jcastrook well that's about it19:58
jcastrothanks for participating19:58
jcastrowe hope you snag the unity code19:58
jcastroand mess with it, make it better, so that you can contribute!19:58
jcastroDBO: nice job!19:58
jcastroalright, next class, smoke if you got em!19:59
* DBO bows and dances off stage, ashley simpson style19:59
* tumbleweed waves20:00
tumbleweedthanks jcastro and DBO20: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: Getting your fixes into Ubuntu , how to make sponsors happy - Instructors: tumbleweed
ClassBotLogs for this session will be available at http://irclogs.ubuntu.com/2011/02/28/%23ubuntu-classroom.html following the conclusion of the session.20:01
tumbleweedHi, and welcome everyone.20:01
tumbleweedI know it's been a long evening (in my timezone),20:01
tumbleweedlet's bring it to a close with something that helps you get things done in Ubuntu.20:01
tumbleweedPlease ask questions in #ubuntu-classroom-chat, I'll answer them regularly, they'll make this discussion much more interesting.20:01
tumbleweeddarkdevil56: yeah, 10pm here20:02
tumbleweedI'm Stefano Rivera. I live in sunny Cape Town, South Africa, and am an Ubuntu MOTU and Debian Developer.20:02
tumbleweedMy main interests are Python-related packages, and helping people with Ubuntu Development.20:02
tumbleweedTonight I'm talking abut the Ubuntu Sponsorship Queue.20:02
tumbleweedThis talk will be less practical examples like dholbach and barry's excellent talks earlier, and more discussion.20:03
tumbleweedThere's simply no way I can cover examples on how to do everything :)20:03
tumbleweedThe sponsorship queue is how you get things uploaded when you don't have upload rights yourself.20:03
tumbleweedhttps://wiki.ubuntu.com/SponsorshipProcess20:03
tumbleweedAll new Ubuntu developers use it, it's how we learned and showed our skills, that led to us becoming Ubuntu developers.20:04
tumbleweedso, what, why?20:04
tumbleweedLet's say there's a bug in an Ubuntu package you want to fix. You have a patch for it.20:04
tumbleweedYou could file a bug in Launchpad, with the patch, but as I'm sure you've seen, the bug may go without any feedback for a long time...20:04
tumbleweedUbuntu has ~100 000 open bugs, and ~2 000 bugs with patches. That's a lot, far too many for us to ever get around to fixing them all.20:05
tumbleweedSo, instead of waiting for someone else to test & integrate your patch, you could do the next step, and prepare the upload for the Ubuntu archive.20:05
tumbleweedYou do this, request sponsorship, and an Ubuntu Developer who has the necessary rights will then come along, review your work, and if it's ready, sign it and upload it to the archive for you.20:05
tumbleweedThis is more work for you, than filing a bug with a patch, but you'll learn more, and eventually can earn yourself Ubuntu upload rights.20:05
tumbleweedSomeone has to prepare every upload, so if you want something desperately, it might as well be you who does the work.20:06
tumbleweedFor example, I'm a MOTU, but before I was, I used the sponsorship queue to do work on universe packages.20:06
tumbleweedTo fix bugs, upload new versions, and do SRUs (updates to stable releases).20:06
tumbleweedAs a MOTU, I can upload to universe, but not to Ubuntu "main" or "restricted" packages.20:06
tumbleweedFor those, I have to go through the sponsorship queue.20:07
tumbleweedOf course, because I *can* upload to universe, I review universe things on sponsorship queue, and sponsor the uploads.20:07
tumbleweedI'm not the only one. We have "Patch Pilot"s every day, who sit down for a few hours, reviewing things in the queue20:07
tumbleweedNow, I can't tell you how to go from every patch out there, to an upload ready for sponsorship, there are just too many possibilities.20:07
tumbleweedHowever, if you followed barry's talk earlier, you will have already got as far as posting something into the sponsorship queue.20:07
tumbleweedhttp://irclogs.ubuntu.com/2011/02/28/%23ubuntu-classroom.html#t18:2220:08
tumbleweedBeyond that, you need to read up more generally about Debian packaging:20:08
tumbleweedhttps://wiki.ubuntu.com/PackagingGuide http://www.debian.org/doc/maint-guide/20:08
tumbleweedAnd our sponsors are awesome. When they review your work, you'll get good feedback, that should improve your knowledge and abilities.20:08
tumbleweedWhen you propose a bzr merge against an Ubuntu branch, it'll be picked up by the sponsorship queue.20:09
tumbleweedhttp://reports.qa.ubuntu.com/reports/sponsoring/index.html (this page is generated every half hour or so)20:09
tumbleweedYou can see a few I proposed earlier today (near the bottom), two samba SRUs: ntlm-auth-623342.20:09
tumbleweedThere's another way to get things into the queue, if you attach a "debdiff" patch to a bug, and subscribe "ubuntu-sponsors" to the bug.20:10
tumbleweedYou create a debdiff by running the "debdiff" command from devscripts on two source packages (.dsc files). debdiff will give you the diff between them.20:10
tumbleweedIt's up to you which approach you find more comfortable.20:10
tumbleweedI find UDD (bzr) more flexible, e.g. it handles new upstream versions quite well, but not all developers prefer it.20:10
tumbleweedWhen you are doing merging, for example, it can be quite confusing to read the diffs, in UDD.20:10
tumbleweedok, that's a broad overview of the sponsors, what we do, and how20:11
tumbleweed(any questions?)20:11
tumbleweedright, let's go on to the meat of this, how to make sponsors happy:20:12
tumbleweedI'm just going to list some stuff here, I hope to get some decent questions on them:20:12
tumbleweed* Read the debdiff / bzr diff that you propose20:12
tumbleweed  - The sponsor is going to be reading it, so you should as well. You might find mistakes you made.20:12
tumbleweed  - Does the changelog entry accurately describe the changes?20:13
tumbleweed     + There's a mailing list, natty-changes, where the changelog entries of all natty uploads get mailed (same for other releases)20:13
tumbleweedpeople read these, wanting to understand how things are changing20:14
tumbleweedthe changelog is the how you communicate what you've done20:14
tumbleweedit also helps future mergers to understand what's necessary, and what isn't20:14
tumbleweed    + "Fixed FTBFS" is a poor description, rather say "explicitly linked to libfoo to fix FTBFS with ld --as-needed"20:14
tumbleweed* Was your fix the right fix?20:15
tumbleweed  - Does it work, and fix the issue?20:15
tumbleweed  - Does it belong in Ubuntu, or in Debian, or upstream?20:16
tumbleweed    (of course, the debian session is tommorrow night)20:16
tumbleweed  - Is it minimal? We try to change as little as possible in Ubuntu, the closer it is to Debian, the less work we have to do.20:16
tumbleweedthat's something that's worth going into:20:16
tumbleweedWhenever we make a change in Ubuntu, we have to carry it until we can pass it upstream20:17
tumbleweedThe majority of our packages, we import directly from Debian, with no changes20:17
tumbleweedthese happen automatically20:17
tumbleweedhowever, when we have changes, whenever we want a new version from Debian, we have to manually re-add the changes to the new version20:17
tumbleweedthis is Merging https://wiki.ubuntu.com/UbuntuDevelopment/Merging20:18
tumbleweedso, if a package is currently unmodified in Ubuntu, it may be a bad idea to change it, just to correct a spelling mistake like barry did earlier20:19
tumbleweedwe should rather report the spelling mistake to the upstream, and we'll get the benefit of the fix, without extra effort, when the upstram releases a new version20:19
barrytumbleweed: there are ways to do it.  i did not have time to talk about how to integrate udd with patch systems, but that's laid out in the wiki pages20:19
barrytumbleweed: yes, that's always ideal20:19
tumbleweedbarry: thanks :)20:20
barry:)20:20
tumbleweedchadadavis: Yes, it probably will be accepted upstream easily20:20
tumbleweedchadadavis: but if it's not a major issue, why waste development time on it in Ubuntu, and Debian, and upstream20:21
tumbleweedwhy not just get it straight upstream20:21
tumbleweed(err, that qustion was)20:21
tumbleweed22:20 < chadadavis> But if the change is so trivial, wouldn't it also be more likely to be accepted upstream? How  is the review process in that direction. Can any of that be 'seen' from Launchpad?20:21
=== palhmbs is now known as palhmbs_
tumbleweedSo, yes Debian developers can chose to see the changes Ubuntu makes20:21
tumbleweedsome do, some don't20:22
tumbleweedin general, if you want to get their attention, you should file a bug in Debian, with a patch20:22
tumbleweedupstreams can also chose to follow their bugs in Ubuntu, by subscribing to their package20:22
tumbleweedbut some packages have thousands of bugs filed against them in Ubuntu, and nobody can sift through them easily20:23
tumbleweed22:23 < chadadavis> But bugs against ubuntu stay in Launchpad until they are fixed upstream then? Assuming one  would prefer to fix a certain bug upstream than make the change in Ubuntu?20:24
tumbleweedcorrect. And maybe nobody will notice and close the bug. That happens a lot. Ubuntu has too many bugs for them to be kept well up to date20:24
ClassBot36DAA71NS asked: The problem sometimes is that a bug discovered in ubuntu leads to an orphaned upstream package. Therefore the fix in Ubuntu seems to be easier although it's more expensive on the long run. Right?20:24
tumbleweedI don't know if bugs in Ubuntu *lead* to packages being orphaned upstream, but yes, we certainly have packages in Ubuntu that no upstream cares about any more20:25
tumbleweedand yes, in that case, fixing it in Ubuntu is the only option20:25
tumbleweedwhen I said "Does it belong in Ubuntu, or in Debian, or upstream?", that requires some context to judge it20:26
tumbleweedif you feel unsure, ask in #ubuntu-motu, there are almost alwysa people around who'll help20:26
tumbleweed< 36DAA71NS> The problem seems that there's no easy way to get the bugs fixed upstream20:27
tumbleweedthat's unfortunatly true in many places20:27
tumbleweedhowever there are also upstreams who merge patches I send them within the hour20:27
tumbleweedUbuntu is big, we have a bit of everything :)20:28
tumbleweedcontinuing with my recommendations, if there are no more questions:20:28
tumbleweed* Test your fix:20:28
tumbleweed  - Test-build it in pbuilder / sbuild / a PPA20:28
tumbleweed  - read what lintian has to say. Many packages arrive from Debian, with loud lintian warnings. Don't worry about that, worry about new ones that you are responsible for.20:29
tumbleweed  - Does it install / upgrade correctly (if you touched maintainer scripts)20:29
tumbleweedthese are pretty common sense, but we all slip up :)20:29
tumbleweed* Should the bug / patch be forwarded to Debian?20:29
tumbleweed  - If you do this, link the Debian bug back to the launchpad bug (also affects project), that way the sponsor knows you did your homework.20:30
tumbleweedit's not just to say you did your homework, it'll help future mergers (quite possibly you) to remember20:30
tumbleweedok, I've run out of pre-typed recommendations, and am hoping for some more questions20:31
tumbleweedother things I can suggest for people wanting to get into ubuntu devolpment:20:32
tumbleweed- take a look at how other people are solving problems. Read natty-changes or install apt-listchanges20:32
tumbleweed< 36DAA71NS> So basically a good way is to find the corresponging bugtracker to see whether the upstream project is alive or not20:33
tumbleweedmost upstreams are alive20:33
tumbleweedand many bugs that we fix day to day are about taking patches from upstream bugtrackers and pulling them into Ubuntu20:34
tumbleweedor fixing bugs in our packaging20:34
tumbleweedthese things obviously don't involve any fowarding upstream (although possibly to Debian, for packaging issues)20:34
tumbleweed< 36DAA71NS> after that contact MOTUs via IRC and proceed afterwards?20:34
tumbleweedYeah #ubuntu-motu is very friendly to beginner ubuntu contributors. I waste way too many evenings there :)20:35
tumbleweed< chadadavis> Does Launchpad's tracker for a package generally link to the corresponding upstream tracker? I.e. does Launchpad have a facility like that built in?20:35
tumbleweedyes it does. Most small packages aren't linked to an upstream tracker (this requires registering a launchpad project in th ename of the upstraem package)20:36
tumbleweedbut most big ones are20:36
tumbleweedof course Rhonda will be covering a fair portion of this in her talk tomorrow night, on getting things into Debian20:36
tumbleweedanything else? or are we all falling asleep :)20:38
tumbleweed< chadadavis> General newbie question: would you recommend browsing bugs across all packages (i.e. the most critical/newest) to get a feel for all of ubuntu, or do newbies contribute more by becoming more familiar with the innards of just a few packages?20:38
tumbleweedI'll be honest, I don't browse new bugs on launchpad very much20:38
tumbleweedthere are pretty awesome people out there who do that, and triage them20:39
tumbleweedI'm subscribed to the bugs of packages I care about, and I try to deal with all of them20:39
tumbleweed(this does mean my bug inbox gets pretty full when I've been busy with other things)20:39
tumbleweedbut there's a new site out there to help you find things to fix in Ubuntu (I'm suprised I didn't see dholbach mention it yet)20:40
tumbleweedhttp://harvest.ubuntu.com/20:40
tumbleweedthat tries to pick out th einteresting things from launchpad, that are ready to deal with20:41
tumbleweed< Endanwender> What is with bug-fixes submitted in Debian? How long it need to find the way in Ubuntu?20:41
tumbleweedSo, Ubuntu releases once every 6 months20:41
tumbleweedfrom about a week after the release, until Debian Import Freeze, we automatically pull new versions of packages from Debian into Ubuntu20:42
tumbleweedDebian Import Freeze was around new year, in natty http://wiki.ubuntu.com/NattyReleaseSchedule20:43
tumbleweedduring that time, any uploads to debian get pulled over pretty quickly (assuming we haven't deviated from Debian)20:43
tumbleweedhow long between submitting a bug fix to debian and, and the debian maintainer of th epackage uploading th efix, well that varies20:44
tumbleweeddebian is like any other upsteram in that respect20:44
tumbleweedsome debian packages are small, actively maintained and have 0 bugs, others are fighting under the deluge of hundreds of bugs. And there's a lot inbetween.20:44
tumbleweedanything else?20:46
ClassBotEndanwender asked: Have I understood the correctly? Between the release cycles of Ubuntu and Debian no further exchange between bug-fixes and so on takes place?20:50
tumbleweedEndanwender: so, there are Debian Developers who take active care of their packages in Ubuntu20:50
ClassBotThere are 10 minutes remaining in the current session.20:50
tumbleweedyou could say I'm one of them20:50
tumbleweedif I see a serious bug reported in Debian, I'll make sure the fix gets into Ubuntu soon20:51
tumbleweedand if I see a bug reported in Ubuntu, I'll fix it in Debian, and sync it across to Ubuntu20:51
tumbleweedbut there are no formal bug exchanges20:51
tumbleweedif you want to forward a bug from Ubuntu to Debian or vice-versa, you need to do it manually20:52
tumbleweed(we have tools to automate this in ubuntu-dev-tools)20:52
tumbleweedand Rhonda in sure to go into deal on it tomorrow night20:52
tumbleweeddetail20:52
tumbleweedthe reason for this is that not all Ubuntu bug reports are of interest, or even relevant to Upstream / Debian20:53
tumbleweedthe upstreams need to decide for themselves, if they want to spend the time reading and understanding them.20:53
ClassBotThere are 5 minutes remaining in the current session.20:55
ClassBotEndanwender asked: Ah ok. Thx for the info. I'm a little bit surprised about this. I thought both distrubution have a direct exchange concerning this.20:57
tumbleweedEndanwender: we keep things that can't be automated perfectly manual20:57
tumbleweedbut you'll find most Ubuntu developers should know thier way around th Debian and Redhat bugtrackers, quite well20:58
=== 36DAA71NS is now known as hugohirsch
* tumbleweed guesses that's that20:59
tumbleweedthanks for listening everyone, hope you enjoyed th efirst day of Ubuntu Developer Week, and will be back for more, tomorrow20:59
tumbleweedgood night :)20:59
ClassBotLogs for this session will be available at http://irclogs.ubuntu.com/2011/02/28/%23ubuntu-classroom.html21: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 ||
=== palhmbs_ is now known as palhmbs
shizzleis this the right channel for the Ubuntu Developer week?22:30
YoBoYshizzle: yes22:31
shizzleThanks22:32
=== herb__ is now known as herb
=== SuperHark is now known as MichealH
=== palhmbs is now known as Guest5969
=== pleia2_ is now known as pleia2
octopurba__does anyone have a book to be a linux developer??23:11
=== nhandler_ is now known as nhandler
=== Guest5969 is now known as Guest5969_
=== palhmbs is now known as palhmbs_
=== palhmbs_ is now known as palhmbs

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