/srv/irclogs.ubuntu.com/2012/02/01/#ubuntu-classroom.txt

=== jordan_ is now known as jordan
ysnoihello there...00:31
ysnoimy first time boot here..00:31
=== kevjava_ is now known as kevjava
codepalysnoi, welcome - o/00:47
codepal!logs00:47
ClassBotLogs for all classroom sessions that take place in #ubuntu-classroom can be found on http://irclogs.ubuntu.com/00:47
ysnoihi codepal...I've been disconnected after I use lernid and XChat at the same time...01:13
codepalysnoi, aha - you've learnt something then!01:13
codepaldon't use both at the same time!01:13
codepal:D01:13
ysnoiim just curious...1st time here01:14
codepalysnoi, if you want to read  what happened in this class this morning you can visit01:14
codepal!logs01:14
ClassBotLogs for all classroom sessions that take place in #ubuntu-classroom can be found on http://irclogs.ubuntu.com/01:14
ysnoiok thanks...i'll get to it01:15
ysnoiah..so it's in html and txt file format...got it01:18
ysnoicodepal: you have two colors on username...may I know why?01:19
codepalysnoi, maybe because when I speak your nickname it changes.01:25
codepallet's try...01:25
ysnoiyeah..01:25
ysnoi+101:25
ysnoican i ask anything here?01:26
ysnoilike how can I change my username?01:26
ysnoion this chat01:26
codepal- /nick someother01:26
codepalirc uses '/' to give access to commands01:27
ysnoii don't get it01:27
ysnoi- /ysnoi TheYsNoi01:27
codepalwhen u use it correctly with the '/' as  the first thing on a line01:27
codepaltake off the '-'01:27
codepaland space01:27
ysnoi- ysnoi TheYsNoi01:28
pleia2/nick TheYsNoi01:28
pleia2^^ just that01:28
ysnoihaha...01:28
pleia2and sessions aren't starting again here for several hours, 15:00 UTC (it's 1:30 UTC now)01:29
ysnoi- /ysnoi TheYsNoi01:30
codepalpleia2, how'd you do that?01:30
codepalescaping '/'01:30
pleia2codepal: using irssi: / /command01:31
pleia2"/ " escapes commands01:31
codepalah, thanks!01:31
=== ysnoi is now known as TheYsNoi
TheYsNoiyes...01:31
TheYsNoiI got it...01:31
TheYsNoithanks pleia2 and codepal01:32
codepalobviously different for different IRC clients...01:32
codepalTheYsNoi, in any case, we're glad your getting familiar with IRC01:32
TheYsNoithanks a lot codepal01:33
codepalTheYsNoi, do you want a IRC lessson?01:34
TheYsNoii'm using XChat...I was starting to connect to this channel last night but I got connected to mint instead...01:34
TheYsNoiuntil I saw freenode and ubuntu-classroom01:35
TheYsNoiIRC lesson?01:36
deltabin some you use /say instead01:36
codepalTheYsNoi, -- http://en.wikipedia.org/wiki/Wikipedia:IRC/Tutorial -- Take a read, hopefully you'll be able to work out some things for yourself01:38
codepalusing /msg Chanserv help && /msg Nickserv help01:38
TheYsNoiopening now in browser...i'll take a look on it...01:39
codepalTheYsNoi, there are many channels on freenode on different topics, just 'remember the rules'01:39
TheYsNoithanks codepal01:39
deltabsee also  http://freenode.net/  - especially for the quirks of this network01:39
codepalyeah, freenode.net needs a web redesign - I hate it01:40
codepalhttp://linuxlibrary.org/command-line/irc-internet-relay-chat/ for a quick, basic run down of commands01:40
TheYsNoiah...so pidgin has also an IRC support01:44
benonsoftwareYep01:44
TheYsNoiok..i'll try adding an account..01:46
TheYsNoihey codepal..02:18
codepalyeah?02:19
TheYsNoiI tried registering my nickname on NickServ as TheYsNoi but the username that arrived on my mail is TheYsNoi1? is this normal?02:20
TheYsNoiI hate having 1 on my nick..02:20
codepalwell maybe you can ignore the registration email ( you don't have to confirm )02:21
codepalthink hard about your nickname - it defines your first impression with many people.02:22
codepaland try again - you still can retry signing up with TheYsNoi,02:22
codepalif you want02:22
TheYsNoimaybe because when I register my nick on Pidgin, i'm also here as TheYsNoi..02:22
codepalthat would be it02:23
codepalpossibly02:23
codepalyou can register in XChat instead02:23
TheYsNoiif so, I  need to logout here and try again...02:23
codepalor do that, yeah!02:23
TheYsNoior, i will logout on pidgin and register here02:24
TheYsNoiis this server irc.ubuntu.com?02:25
codepalit doesn't really matter which server does it?02:26
TheYsNoiah ok..i'll try now..02:27
codepalwhenever you log in you can get a different server that's still connected to this network02:27
codepallot's of servers make up the freenode network02:27
TheYsNoiNickServ REGISTER <pass> <email>02:29
TheYsNoiis that correct syntax codepal?02:29
codepalyup02:30
codepalremember, you can find help on most commands using /msg nickserv help command02:30
codepalor /msg chanserv help command02:31
TheYsNoiyeah...02:31
TheYsNoii learned that today from you...02:32
codepalyou might like a cloak which hides your ip address -- so people don't try hacking you -- in the channel #freenode02:33
codepaljust ask nicely for a cloak02:33
codepalalso you probably want to learn how to connect via SSL (more securely)02:33
TheYsNoihow?02:33
codepalwhich can get complicated....02:33
codepalask in #freenode for help or your IRC clients channel02:34
codepalie #xchat / #pidgin02:34
codepaland don't forget you can use www.google.com02:34
TheYsNoiyeah...may I get to it one day..02:35
TheYsNoii'm on familiarization now..02:35
TheYsNoiit's my rest day today..hehhe02:35
TheYsNoiyes..i'm done on registration..02:42
=== TheYsNoi is now known as ysNoi
ysNoitest02:44
=== ysNoi is now known as TheYsNoi
TheYsNoitest 202:44
=== kanliot is now known as kanliot111111111
TheYsNoihello03:15
=== ysnoi is now known as TheYsNoi
Ravemastehmnnn...03:52
Ravemasteanybody?03:54
benonsoftwareHello03:56
Ravemastehi benon04:00
TheYsNoijoin #ubuntu-release04:18
kanliot111111111                                                                                                                                                                                                                                                                                                                                                                                                                                                          05:43
kanliot111111111                                                                                                                                                                                                                                                                                                                                                                                                                                                          05:44
kanliot111111111                                                                                                                                                                                                                                                                                                                                                                                                                                                          05:44
kanliot111111111                                                                                                                                                                                                                                                                                                                                                                                                                                                          05:44
kanliot111111111                                                                                                                                                                                                                                                                                        05:44
=== mintos is now known as mintos_out
=== user__ is now known as rockys
=== Partyschaum is now known as Partyschaum^away
=== Partyschaum^away is now known as Partyschaum
=== muthusuba_ is now known as muthusuba
=== greyback is now known as greyback|lunch
=== Adriaan is now known as Guest3208
=== allan_ is now known as Rehhoff
ysnoianybody?12:59
metasansanawhat is the link to the timetable again?12:59
=== ysnoi is now known as TheYsNoi
metasansananevermind13:01
=== yofel_ is now known as yofel
=== greyback|lunch is now known as greyback
=== dduffey_afk is now known as dduffey
=== ublinx is now known as jmarc
dpmEveryone ready for the UDW Day 2?14:53
palladin35ymetasansana:  is that you ?14:55
PaoloRotolodpm, sure :)14:57
dholbachAlright my friends! WELCOME TO DAY 2!14:58
dholbachAgain a few organisational bits before dpm takes over the stage...14:58
dholbachPlease make sure you all join #ubuntu-classroom-chat because that's where all the chat and questions go14:59
dholbachalso please make sure you prefix all your questions with QUESTION, ie14:59
dholbachQUESTION: dpm, how much do you like metal music?14:59
dholbachyou can find the schedule at https://wiki.ubuntu.com/UbuntuDeveloperWeek along with all the logs of the sessions yesterday if you missed them14:59
dholbachI hope you have a fantastic time today15:00
dholbachbig hugs from me15:00
=== metasansana_ is now known as metasansana
dpm(do I really have to answer that question...?)15:00
dholbachand I pass on the mic to David "dpm" Planella who talks about "Bringing your app to Ubuntu "15:00
* dholbach hugs dpm15:00
dholbachthe stage is yours15:00
dholbach:)15:00
* dpm hugs dholbach while catching the mike15:00
ClassBotLogs for this session will be available at http://irclogs.ubuntu.com/2012/02/01/%23ubuntu-classroom.html following the conclusion of the session.15:01
=== 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: Bringing your app to Ubuntu - Instructors: dpm
dpmAllright, how's everyone doing?15:01
ryan__I am doing well.15:01
dtssgood :)15:01
yuvilioawake15:01
dpmcool15:02
dpmok, awesome15:02
dpmlet's wait a minute for stragglers to come in and then we can start15:03
dpmI hope you all are enjoying UDW so far...15:04
dpmdholbach tells me yesterday was awesome!15:04
dpmAnyway, let's get started15:04
dpmHi everyone and welcome to the first session of Ubuntu Developer Week Day 2!15:05
dpmDuring the next hour I'll be talking about how to submit your apps to Ubuntu,15:05
dpmso that they get published in the Software Centre15:06
dpmto be distributed to millions of users that will surely enjoy your cool software :)15:06
dpmBut it will not be just a talk: I'll  make sure that there is plenty of time for everyone15:06
dpmto participate and ask their questions at the end. However, feel free to interrupt me during the15:07
dpmrest of the session if you've got any questions.15:07
dpmJust remember to prepend them with QUESTION: on the #ubuntu-classroom-chat channel15:07
dpmThroughout the talk I will be referring to different places in the Ubuntu App Developer site,15:07
dpmwhich is the central place for anyone wanting to create and publish their apps in Ubuntu.15:07
dpmHere's where it lives:15:08
dpm    http://developer.ubuntu.com15:08
dpm... and without further ado ...15:08
dpmlet's get rolling!15:08
dpm 15:08
dpmCreating your app15:09
dpm=================15:09
dpm 15:09
dpmWell, the first step is obvious, you have to create your app,15:09
dpmwhich is basically the time when you materialise that cool idea into beautiful software.15:09
dpmI will not dwell too much on this subject, as it's beyond the scope of the session,15:09
dpmHowever, I'll just add a couple of tips for app authors.15:10
dpmIf you're considering writing a new application for Ubuntu, I'd recommend to use15:10
dpmthe standard set of tools available from the Ubuntu archive.15:10
dpmThey are an extremely powerful and versatile bunch of tools15:10
dpmwhich will not only put everything you need to write software at your fingertips,15:11
dpmbut also will help you following good development practices.15:11
dpmAnd they're all Free Software and also free as in free beer!15:11
dpmI see we've got a question already, but let me show you something first:15:12
dpmYou've got an overview of our recommendations to write new apps here:15:12
dpm    http://developer.ubuntu.com/get-started/quickly-workflow/15:12
=== jincreator1 is now known as jincreator
ClassBotryan___ asked: Which programming language do you perfer to use to develop Ubuntu apps?15:12
dpmas you can see from the table in the link above, we're currently recommending Python15:13
dpmas a language to write new apps15:13
dpmWhat we've also got is a tool called quickly, which puts all those technologies together15:13
dpmYou can learn more about it here, it's got a nice and short video tutorial15:14
dpmto show you how to write a basic functional template for your app in 3 minutes:15:14
dpm    http://developer.ubuntu.com/get-started/15:14
dpmHowever, if you've already written an application with another set of tools,15:14
dpmor if you do prefer another choice of toolkit, that's also ok!15:15
dpmWe're providing these recommendations to make it easy for app authors to get started15:15
dpmand provide a smooth path for publishing their apps.15:15
dpmHowever, we acknowledge the diversity of the whole Open Source ecosystem,15:15
dpmso you can basically submit your apps using your weapon of choice.15:16
dpmJust remember that our recommendations will make things easier, though!15:16
ClassBotmetasansana asked: why phython?15:16
dpmwe chose quickly because it's an easy to learn high level language, which is open source and it's got first class support in Ubuntu.15:18
dpmapart from that, it comes with a rich library of functions to do virtually anything you want15:18
dpmContinuing on this subject,15:19
dpmalso, commercial apps (more on those in a minute) might be written in a completely different set of tools, and we want to be inclusive to them too.15:19
ClassBotryan___ asked: does Quickly support the Microsoft Visual Basic programming language?15:20
dpmquickly just puts together a set of tools, it's not an IDE that supports languages, although conceivably could be extended to support other languages15:21
dpmhowever, to answer the question, quickly intendedly only supports python, no Visual Basic15:22
dpmok, moving along15:22
dpm 15:22
dpmWhich types of apps qualify15:22
dpm===========================15:22
dpm 15:22
dpmThere are thousands of apps available in the Ubuntu archive already, which usually get in there through other means.15:22
dpmMany of these fall into the category of system software, or big applications that are part of the Ubuntu platform.15:22
dpmThey are also subject to strict policies to ensure the security and quality of the software,15:23
dpmas well as to ensure that they are indeed Free Software and can be distributed with Ubuntu.15:23
dpmSo in order to differentiate from these archive applications, I'll call the process  we'll be talking about today, "the app developer process".15:23
dpmUltimately though, they are all published through the Software Centre15:24
dpmSo to answer the first question, these are the 3 broad categories under which apps to be submitted through the app developer process fall:15:25
dpm* Paid for apps15:25
dpm* Gratis apps with proprietary licenses15:25
dpm* Gratis apps with Open Source licenses15:25
dpmNotice that as well as open source, we're also embracing commercial applications15:25
dpmto give the opportunity to app authors and Canonical to make revenue of application sales.15:25
dpmThis should give you a rough idea, but ultimately you will need to know the whole15:26
dpmdetails to see if your app qualifies for the app developer process.15:26
dpm 15:26
dpm- For paid for and gratis+proprietary apps:15:26
dpm    http://developer.ubuntu.com/publish/commercial-software-faqs/15:26
dpm- For gratis+open source apps:15:26
dpm    https://wiki.ubuntu.com/AppReviewBoard/Review/Guidelines15:27
dpmOk, next is where it gets interesting: how to actually submit your app!15:27
dpm 15:27
dpm1. Submitting your app15:27
dpm======================15:27
dpm 15:27
dpmOk, so all that cleared up, by this point you've already have a working app you'd15:27
dpmlike the world to see and enjoy.15:27
dpmThe good news is that we've got an easy, streamlined and web-based process15:28
dpmto make it easy for you to to publish, keep track of, monitor and update your apps.15:28
dpmFor this, we've developed a tool especially for app developers.15:28
dpmIt's called My Apps and you'll find it on the app developer site:15:28
dpm    https://myapps.developer.ubuntu.com15:28
dpmYou'll see that it's easy and intuitive to use, and the first thing you'll want to do is to sign up for it15:29
dpmto enter the Ubuntu app developer programme and start using it straight away :-)15:29
dpmSigning up it's free, and again, it's a matter of a couple of minutes.15:29
dpmThe process is based on Ubuntu's single login,15:29
dpmso if you've got an Ubuntu SSO account already, it will be even quicker.15:30
dpmSimply go to https://myapps.developer.ubuntu.com, either click on the "Sign in or register" link at the top right hand side15:30
dpmor the "Submit a new application" button, and the website will guide you through the process.15:30
dpmBefore you continue the process of submitting the app though, you might want to read the quickstart guide on:15:30
dpm    http://developer.ubuntu.com/publish/15:31
dpmIt will show you the basic steps you will be following and give you some useful tips along the way.15:31
dpmLet's go quickly through them:15:31
dpm1 - Set up your My Apps account - you've already done that :)15:31
dpm2 - Prepare your app's icons and screenshots - you will want your app to be15:31
dpmappealing to users, so make sure you've got nice screenshots and icons, in all recommended sizes15:31
dpm3 - Add your application details - here you'll be describing your app and making it easily15:32
dpmdiscoverable in the Software Centre. Make sure the description is clear and use a spell-checker to avoid typos15:32
dpm4 - Choose your price - if your app is paid for, you'll have to decide the price in USD at this point15:32
dpmThe minimum price is $2.9915:32
dpm5 - Have an archive of your application ready to upload - here's where you upload your actual app to MyApps. More on this in a minute15:32
dpm6 - Your app will be reviewed - before it gets into the wild, your app needs to be reviewed and QAd. More on this in a minute too.15:32
dpmSo going back on the step of uploading your app,15:33
dpmIdeally, you should submit a Debian source package. A Debian source package consists of 3 files (with extensions .dsc, diff.gz, orig.tar.gz), which you should put in a compressed archive (a tarball, zip file, rar...) and upload into My Apps. This will allow reviewers to easily test and publish your app.15:33
dpm*However*, there are some important caveats:15:33
dpm * If your app is commercial or proprietary software: we still recommend uploading a Debian source package, but if you are not experienced in packaging you can also upload either your binary executables and all files needed to run your app in a compressed archive, a binary Debian package (.deb), your source code in a compressed archive, and the commercial packagers will package and publish it for you.15:34
dpmVery soon we'll have automatic packaging in place, but more details on that when it's all deployed and working15:34
dpm * If your app is Free Software and gratis: we recommend using a Personal Packaging Archive (PPA). You can specify the location of your PPA in the 'Any additional notes for the application reviewer' text box in the Overview tab of your app's entry in My Apps. You can also learn more about PPAs in the packaging section of the Ubuntu App Developer Site15:35
dpmdeveloper.ubuntu.com/packaging15:35
dpmWe've got a few questions coming in, and they're related to reviewing15:36
dpmLet me talk a bit about review and then answer them15:36
dpm 15:36
dpm2. Reviewing your app15:37
dpm=====================15:37
dpm 15:37
dpmAfter your application has been submitted, and depending of the type of app, one of two things will happen:15:37
dpm* If it's a paid for or a gratis+proprietary app, it will be reviewed by the Canonical reviewers team. If necessary, they will package it for you and QA it. Very soon, though, we'll be able to automatically package those.15:38
dpm* If it's a Free Software+gratis app, it will generally be reviewed by a team of volunteers called the Ubuntu App Review Board (ARB)15:38
dpmIn any case, reviewers will get in touch with you as soon as they start reviewing15:39
dpmyour app, and you will be notified of any app state changes by e-mail.15:39
dpmFor all the exact details of an application's lifecycle in My Apps, check out:15:39
dpm    http://developer.ubuntu.com/publish/application-states/15:39
dpmNow onto the questions:15:39
ClassBotcielak asked: I have been interested in the review process for some time, and I would like to somehow help the ARB team. Is there any way I could participate and help them?15:40
dpmthey'd be delighted to hear that!15:40
dpmyou can jump into the #ubuntu-arb channel and ask how to help, or you can contact the ARB through e-mail15:40
dpmhttps://wiki.ubuntu.com/AppReviewBoard15:41
dpmyou'll find all the details there15:41
ClassBotryan___ asked: how long does it take after you submit an application to Ubuntu before it shows up in the Ubuntu Software Centre?15:41
dpmit depends on your application, and if it's easy to review and QA, or if it's a commercial app, if it needs to be packaged and it's easy to do15:43
dpmit can take from some hours to some days, but it varies on an app by app basis15:44
dpmYou'll find some more details there: http://askubuntu.com/questions/97272/how-long-does-it-take-to-complete-the-review-stages-in-ubuntu15:44
ClassBotdmj726 asked: How will proprietary apps be reviewed for security?15:45
dpmapps submitted through the app developer process are not subject to the same security policies of those in the Ubuntu archive15:46
dpmlet me ask davmor2 to provide some more details in a minute15:47
ClassBotGontxo-Vitoria asked: If I make a app that is foss, i can't not sell it in ubuntu?15:47
dpmyes, you can also sell free software apps!15:47
dpm    http://developer.ubuntu.com/publish/commercial-software-faqs/ covers that too15:48
ClassBotpawel_st asked: As an app author, am I obliged to support all currently supported Ubuntu releases, or can I target a specific (latest) Ubuntu release with my app?15:48
dpmwe recommend you to support as many releases for the sake of making your app more widely available, but we do not enforce you to do it15:49
ClassBotdmj726 asked: I've seen magazine issues and books in the Ubuntu Software Center.  How would one publish something like that through Ubuntu?15:49
dpmI'm not sure I understand the question, we already publish them in Ubuntu, which means making them available in the Software Centre!15:50
dpmI've got some more details on the security question from davmor2:15:50
dpmdmj726 asked: How will proprietary apps be reviewed for security?  reference to this, you are currently limited to which directories you can write to.  However security is strictly the responsibility of the application developer and it is they that become liable for any breach of these ref the developer contracts15:50
ClassBotThere are 10 minutes remaining in the current session.15:51
ClassBotpawel_st asked: What are acceptance criteria for commercial apps? Is acceptance process transparent? Is this only about packaging quality etc., or are there other criterias such as conformance to patents etc.? Can I get an early draft of my application reviewed against acceptance criteria before investing time and effort into its further development?15:51
dpmif it's not covered on http://developer.ubuntu.com/publish/commercial-software-faqs/, then it's on an app-by-app basis. I'd recommend submitting the draft of your application and then reviewers will get in touch with you15:53
dpmcwayne asked: how long will an app stay in 'pending review' state for?15:53
dpmyou can find the details here: http://askubuntu.com/questions/97272/how-long-does-it-take-to-complete-the-review-stages-in-ubuntu15:54
dpmany more questions?15:54
ClassBotdmj726 asked: Are commercial apps vetted for any sort of quality to avoid malicious apps?15:55
ClassBotThere are 5 minutes remaining in the current session.15:55
dpm<davmor2> dmj726: so there is a developer review and qa steps to pick up on obviously broken/unistallable apps as for malicious this again falls to the liability of the app developer.15:55
dpmso if there are no more questions for now, just a quick reminder on how to get help or get in touch15:56
dpm 15:56
dpm Getting help15:56
dpm============15:56
dpm 15:56
dpmIf you need any help or if you've got any questions, be it during or before the15:56
dpmpublishing step, there is an awesome, awesome community of app developers out15:56
dpmthere just like you, willing to lend a hand15:56
dpmCheck out:15:56
dpmhttp://developer.ubuntu.com/community/15:57
dpmFrom there, I'd like to highlight:15:57
dpmReal-time chat: http://webchat.freenode.net/?channels=ubuntu-app-devel15:57
dpmi.e. the #ubuntu-app-devel IRC channel on Freenode15:57
dpmAskubuntu: http://www.askubuntu.com/questions/ask?tags=application-development15:57
dpmFor all your app development related questions15:58
dpmMailing list: https://lists.ubuntu.com/mailman/listinfo/ubuntu-app-devel15:58
dpmAlso for all your questions and longer discussions15:58
dpmAnd finally, here's an overview on how to stay up to date:15:58
dpmhttp://developer.ubuntu.com/2011/11/building-the-ubuntu-app-development-community-i-communication-channels/15:58
ClassBotPaoloRotolo asked: If you have uploaded an app without packaging, after the packaging by review board, can you ask to download the packaged app?15:59
=== ChanServ changed the topic of #ubuntu-classroom to: Welcome to the Ubuntu Classroom - https://wiki.ubuntu.com/Classroom || Support in #ubuntu || Upcoming Schedule: http://is.gd/8rtIi || Questions in #ubuntu-classroom-chat || Event: Ubuntu Developer Week - Current Session: How to update a package to the latest upstream version in the repositories - Instructors: coolbhavi
dpmFor Free Software gratis apps, we currently recommend packaging your application yourself and put it in a PPA16:00
ClassBotLogs for this session will be available at http://irclogs.ubuntu.com/2012/02/01/%23ubuntu-classroom.html following the conclusion of the session.16:00
coolbhavithanks dpm :)16:00
coolbhaviHi all I am Bhavani Shankar a 24 year old ubuntu developer from India and I am going to take you through the process of upgrading packages in the ubuntu archive16:00
coolbhaviBefore we start a bit of dev environment preparation; Make sure you have packaging-dev package installed if you are running on oneiric :) or please go through the session logs of dholbach's session yesterday :)16:01
coolbhaviSo lets start :)16:01
coolbhaviUpgrading a package generally means upgrading a package to the latest upstream version in the ubuntu archive16:01
coolbhavinormally, we would get the update from debian in the form of a merge or a sync, but there are cases when we don't, like for example if debian is in a freeze, or the package is orphaned, or its a native ubuntu maintained package16:02
coolbhavior we simply need it urgently (in case of a RC bugfix, for instance), and then pass the result back to debian16:02
coolbhaviSo assuming there are no doubts lets move on :)16:03
coolbhaviso, we now know we have a new upstream version, first thing to do is to get it16:03
coolbhaviWe can either download it using wget or uupdate <path to orig tarball>16:03
coolbhaviOr if we have a watch file under debian directory in the current package, we can use that giving the command "uscan" at the source tree root16:04
coolbhavi(More on debian/watch here http://wiki.debian.org/debian/watch)16:04
coolbhaviuscan --verbose would say a bit more about what we are trying to do (in fact uscan calls upon uupdate :) more on uupdate: please see man uupdate)16:04
coolbhavifinally, there could be a get-orig-source target in debian/rules that we can use16:05
coolbhaviby executing "make -f debian/rules get-orig-source" in the source tree16:05
coolbhaviA check here: be careful to read the previous entries of debian/changelog as the previous packager could have mentioned something he did with the previous version of the upstream tarball (like for instance repacking the tarball) which comes in detail later in the session16:06
coolbhaviok, now that we have an upstream tarball, we need to rename it in accordance to our policy foo-1.1.tar.gz will become foo_1.1.orig.tar.gz16:07
coolbhaviIn the simplest case is if there are no changes to packaging and no changes outside of debian16:07
coolbhaviJust untar your tarball, copy the old debian dir to the new source tree, Add a changelog entry and Build the package :)16:08
coolbhaviI wish all the updates were so simple :)16:08
coolbhavi(Previously prior to dpkg-source version 3.0 if the the previous packager made inline changes instead of using a patch system, (you could check this by checking the old diff.gz), Just making changes inside the debian directory would'nt be enough, you needed to run the patch the present version of the package manually and there you would experience some pain in some changes being obsolete and couldnt apply anymore or you would run uup16:09
coolbhavidate ../foo_2.orig.tar.gz in the old version src tree to automate the whole manual process.)16:09
coolbhaviBut now thanks to dpkg-source version 3.0 which generates a debian-changes-* file while building if there are any changes outside the debian directory and wrt policy 3.9.2 throws out a lintian warning too :)16:10
coolbhavi( More about dpkg-source version 3.0 here: http://wiki.debian.org/Projects/DebSrc3.0)16:10
coolbhaviA more complex scenario of updating a package would involve the following checks normally:16:11
coolbhaviChecking licenses of all the files in the tarball (licensecheck -r --copyright command)16:11
coolbhaviChecking if all the patches in the previous version are perfectly applicable or obsolete16:11
coolbhaviChecking if there are new dependencies required for the new version of the package (this is usually reported in upstream ChnageLog, but sometimes you only discover it by looking at upstream autoconf files (or Makefile))16:12
coolbhaviChecking if the package installs files in a different manner for instance, any change in file locations (We may need to change our packaging then)16:12
coolbhaviChecking if the package has a man page, desktop file, icons et al and we may want to install those or for ex. there is a .desktop file already existing we may want to validate the same. (desktop-file-validate)16:13
coolbhavisometimes upstream changes few things which need you to change compilation flags16:13
coolbhaviif upstream is a library particular care has to be taken16:14
coolbhavichecking if API/ABI change is reflected in SONAME/version (More on SONAME here: http://en.wikipedia.org/wiki/Soname)16:14
coolbhavi(check-symbols command can help you in that)16:15
coolbhaviyou may need a library transition, which involves perhpas rebuilding many packages already in the archive16:15
coolbhaviPerhaps at this point its better to go through a simple example for us to get started hands on :)16:16
coolbhaviI hope I am not speeding up the session16:16
coolbhaviOkay  lets get started with our hands on :)16:17
coolbhaviThe package I am using as an example is my own debian package mobile-broadband-provider-info (Which I havent updated in quite sometime due to my schedule of things lately)16:18
coolbhaviType in a terminal mkdir m-b-p-i && cd m-b-p-i &&  dget -x https://launchpad.net/ubuntu/+archive/primary/+files/mobile-broadband-provider-info_20111113-1ubuntu1.dsc16:19
coolbhaviWhich will download the latest available version in ubuntu i.e 20111113-1ubuntu1 (Note: I'm not using apt-get source mobile-broadband provider info as it will download the respective SRU versions for oneiric,natty,maverick or lucid)16:19
coolbhaviI ll wait for sometime now for those who are downloading the package16:20
coolbhavi<obounaim> QUESTION: I'm getting an error Validation FAILED!!16:21
coolbhaviobounaim, please do gpg --recv-keys <the key ID due to which package is failing to validate>16:22
coolbhaviand retry  dget -x https://launchpad.net/ubuntu/+archive/primary/+files/mobile-broadband-provider-info_20111113-1ubuntu1.dsc16:22
coolbhavior simple one pull-lp-source  mobile-broadband-provider-info16:23
coolbhaviso assuming everything is fine lets move on16:25
=== Partyschaum is now known as Partyschaum^away
coolbhavinow if you do a cd mobile-broadband-provider-info-20111113/ and look in you will find a debian directory and most of our work is concentrated in around the debian directory normally16:26
coolbhavinow if you look inside the debian directory you will see a changelog control mobile-broadband-provider-info.docs copyright rules watch files and a source directory16:27
coolbhavi<chilicui1> QUESTION: bzr branch lp:ubuntu/mobile-broadband-provider-info  will work?16:28
coolbhaviyes it will but m not explaining distributed devel method herr :)16:29
coolbhaviits a more conventional explanation here for a start off :)16:30
coolbhaviobounaim, QUESTION: i don't have the mobile-broadband-provider-info-20111113/ directory ?16:31
coolbhaviPlease make sure you extracted the source properly16:31
coolbhaviok so now moving on, inside the source directory you will find a file called format which contains something as "3.0 (quilt)" which specifies that this is a dpkg-source version 3.0 package16:34
coolbhaviNow if you look at the watch file it states that its a dummy watch file (which I created to satisfy lintian as the package is maintained and updates are pushed into git and no orig tarball is available for same for a dynamic update (once in 1 month, 2 months))16:34
coolbhaviNow since the debian/watch file is unavailable if you take a look at debian/rules file you can see that we have defined a get-orig-source target.16:35
coolbhaviNow to parse through the get-orig-source rule you saw in debian/rules, you need to install automake and git-core packages as specified in the debian/rules file16:37
coolbhaviassuming there are no doubts at this point, lets move on16:39
coolbhaviSo, running make -f debian/rules get-orig-source inside mobile-broadband-provider-info-20111113/ directory will download the latest version of the changes in git-head and converts the same to a  tarball mobile-broadband-provider-info-20120201 and untars it creating a directory mobile-broadband-provider-info-20120201 going by the sequence of commands under get-orig-source in debian/rules16:41
coolbhaviNow since there are no changes or patches outside the debian directory copy the debian directory from mobile-broadband-provider-info-20111113/ to mobile-broadband-provider-info-20120201/16:42
coolbhaviOnce done navigate to the debian directory in the new source tree and type dch -i and give a version as 20120201-0ubuntu1 (-0ubuntu1 since this version is not present yet in debian but in ubuntu) targetted to precise since that is the devel version presently16:43
coolbhavi(Looks something like mobile-broadband-provider-info (20120201-0ubuntu1) precise; urgency=low)16:46
coolbhaviAnd update the changelog as * Merging upstream version 20120201 from git and make a list of upstream changes mapping the LP bugs closed in the changelog (Changelog writing will be taken up as a seperate topic by myself tomorrow where I'm going to explain changelog writing specifics)16:46
coolbhavi<jincreator1> QUESTION: I heard about fakeroot. What's difference between fakeroot debian/rules ~ and make -f debian/rules ~ ?16:48
ClassBotThere are 10 minutes remaining in the current session.16:50
coolbhavijincreator1, make -f uses make command on debian/rules as a file (see man make) and  fakeroot runs the same command in a env faking root previlages for execution16:50
coolbhavias per my understandingf16:50
coolbhaviOnce done, Save the file and then type debuild -S -sa (Which builds the package along with the new tarball included)16:51
coolbhaviSome steps to gain additional points :)16:51
coolbhaviAfter that a dsc and a changes file will be generated. Use pbuilder to test build the generated dsc file in a pristine environment (A session is coming up on the same tomorrow by tumbleweed)16:52
coolbhaviAnd then do a diff between the old source tree and the new source tree for example bhavani@bhavani-desktop:~/m-b-p-i_1$ diff -Nurb mobile-broadband-provider-info-20111113 mobile-broadband-provider-info-20120201 > m-b-p-i.diff and attach the diff and the new source tarball to the new upstream request bug in LP. (my preferred way as a sponsor!)16:53
coolbhaviOnce done, Please subscribe the ubuntu-sponsors team to evaluate the same :)16:54
coolbhaviOnce evaluated the package will be uploaded and a new upstream version lands in ubuntu archives16:55
ClassBotThere are 5 minutes remaining in the current session.16:55
coolbhaviAny more questions?16:55
coolbhaviThanks all of you for turning up :) Please feel free to hang out at #ubuntu-motu or #ubuntu-devel for any questions.16:56
coolbhaviYou can also catch me up on bhavi@ubuntu.com or facebook.com/bshankar16:57
coolbhaviThanks all again! Thats it from my side :) See you tomorrow!16:57
=== 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: Charming Juju - Instructors: m_3
ClassBotLogs for this session will be available at http://irclogs.ubuntu.com/2012/02/01/%23ubuntu-classroom.html following the conclusion of the session.17:00
m_3hi all17:01
m_3I'm Mark... and I'm a <borat>CharmingGuy</borat>17:01
m_3so I'd like to cover:17:01
=== Partyschaum^away is now known as Partyschaum
m_3- basic intro to juju and service orchestration17:02
m_3- anatomy of a charm17:02
m_3rather than concentrate on a single charm, I'll give examples from several different charms for common services that most will be familiar with17:03
m_3I'll be chatting here, and using a juju-classroom in ec2 to show examples17:04
m_3argh!17:09
m_3sorry, conference wifi just cut me off17:09
m_3ok, so I was saying you can see examples with either a browser or ssh... lemme paste the url:17:10
m_3ec2-107-21-156-68.compute-1.amazonaws.com17:10
m_3you can go there in a browser and log in with guest/guest17:10
m_3or ssh directly there w/ same user/pass17:11
m_3ok, so juju is a new set of devops tools baked into ubuntu server17:11
m_3it's a fundamentally new paradigm in devops17:11
m_3it's not concerned with just configuring machines or automating that process17:11
m_3it takes it to the next level of looking at your entire infrastructure as a set of services17:12
m_3services with varied lifecycles that interact with each other17:12
m_3examples of services... applications, load balancers, databases, monitors, storage, caches, etc17:13
m_3the list goes on and looks different for different people17:13
m_3well juju's about maintaining stacks of services within your infrastructure17:14
m_3take a simple example17:14
m_3gimme a sec to get reconnected to it17:15
m_3ok, now in the ec2 instance, you can see a simple stack of services17:15
m_3this is what the end-user's view of juju will be17:15
m_3juju bootstrap17:16
m_3juju deploy [options] service17:16
m_3juju add-relation service1 service217:16
m_3juju expose service17:16
m_3the last step exposes the service to the outside world (you typically want this to happen ina gated manner)17:17
m_3that's a stack that deploys a mongo database, a node.js app, and relates the two17:17
m_3there's some additional stuff commented out that hints at where we can go next with this17:18
m_3adding extra services and then scaling service units out17:18
m_3but that's the basic process17:18
m_3bootstrap, deploy, relate, expose17:18
m_3so the way juju represents services is through templates we call charms17:18
m_3there are charms for all sorts of standard services17:19
m_3mongo, ganglia, mediawiki, mysql, etc etc17:19
m_3the list is growing every day17:19
m_3so these charms "distill" the best-practices of the devops peeps that've been working with those services17:20
m_3some charms are simple package type installations17:20
m_3some charms are really complex sets of packages, pulls from repos, and templated code17:21
m_3so these charms "distill" the best-practices of the devops peeps that've been working with those services17:21
m_3sorry, paste-barf17:21
m_3the most complex example I can think of at the moment is openstack17:21
m_3we've got charms built (nod to adam_g) that deploy openstack on bare-metal clusters using juju17:22
m_3we'll start with simple ones in a bit17:22
m_3so juju orchestrates services17:23
m_3represented as charms17:23
m_3it's essentially a low-level eventing framework as we'll see17:23
m_3take a look at a more mature stack for a sec (ec2 example)17:24
m_3this is a more realistic infrastructure than most examples you deal wth17:25
m_3we're going to delve into the anatomy of charms in some detail, but the big picture is that these charms can be combined into larger stacks of services17:26
m_3ok, so next is anatomy of a charm17:26
m_3I'll pause for questions on juju in general before we do that though17:27
m_3#question17:27
m_3hmmm... ok, that's not it... I'll check out #ubuntu-classroom-chat17:27
m_3I got a "this is going to be over our heads"17:28
m_3and a question "what is juju built on"17:28
m_3totally not over your heads... wait til you see the charms themselves17:29
=== Partyschaum is now known as Partyschaum^away
m_3they can be written in any language17:29
m_3and it's got a really great learning curve17:29
m_3juju's a basic eventing framework17:29
m_3uses twisted in the agents17:29
m_3and uses zookeeper to keep track of it all17:30
m_3yeah, it's communicating through ssh using std key-injection for most cloud providers17:31
m_3it runs on ec2, hpcloud, openstack, almost eucalyptus, lxc, bare-metal17:31
m_3so single-server installs are possible17:32
m_3just depends on your resources17:32
m_3an example... I was just developing more on the mongo-node app17:33
m_3typical production stack for that would be haproxy head, dozen node instances, and a 4-instance mongo replset17:33
m_3on my local machine, I'll just run a single mongo and a single node instance17:33
m_3we'll see how the charms scale out ina sec17:34
m_3ok, so great questions17:35
m_3let's look at the anatomy of a charm and I think it'll be a little clearer how the events work17:36
m_3so think about the configuration for a typical service17:36
m_3there' stuff you gotta do to just get it installed on the box17:36
m_3sometimes that's super-simple17:37
m_3(example)17:37
m_3the 'open-port' is a juju primitive17:37
m_3sometimes installation isn't so simple17:37
m_3juju lets you install services on ubuntu service from packages, of course17:38
m_3but it also lets you easily install using other methods17:38
m_3like npm17:38
m_3or gems17:39
m_3if your app needs a version of django or rails that isn't in the repos17:39
m_3then you can install it17:39
m_3of course you can shoot yourself in the foot17:39
m_3we take pains to insure the shared charms in the charmstore are somewhat safe17:40
m_3cryptographically verified payloads, peer reviews, tests17:40
m_3but ultimately, pretty much anything goes in a juju charm17:41
m_3so a charm for a service is just a handful of hooks17:41
m_3(see example)17:41
m_3install, start, stop, upgrade-charm17:42
m_3the hooks in this example are all shell script17:43
m_3but they can be written in anything you'd like17:43
m_3just need an interpreter/runtime on the instance17:43
m_3heck, you could even write them in clojure17:43
m_3you just have to make sure the first "install" script bootstraps that executable env17:44
m_3binary hooks are cool too17:44
m_3although for the official ones in the charm store, we'd need transparency17:44
m_3now each service relates to other services17:45
m_3this is specified in the metadata for the charm17:45
m_3what sort of services can plug in to this one... is specified in the provides and requires interfaces17:46
m_3they have to match17:46
m_3mysql provides a db:mysql interface17:46
m_3other services such as mediawiki consume this with a requires section17:47
m_3juju uses these interface definitions (they're loose, you can make up your own) to wire service units together17:47
m_3and there are hooks to be called when that happens17:48
m_3so let's go over basic lifecycle...17:48
m_3juju spins up mysql (juju deploy --repository ~/charms local:mysql)17:49
m_3juju spins up mediawiki (..)17:49
m_3for each of these services... juju spins up a new instance, calls the "install" and "start" hooks in the respective charms17:50
ClassBotThere are 10 minutes remaining in the current session.17:50
m_3next, we 'juju add-relation mysql mediawiki' and then the magic begins17:50
m_3ok, so it's not magic... it's just juju calling the relation hooks for each of those services17:51
m_3it also lets these relation hooks talk to each other17:51
m_3that's the real win IMO17:51
m_3think of the stuff you have to do to set up a service17:52
m_3juju separates this into the stuff you have to do for installation17:52
m_3and the stuff you have to do for relation17:52
m_3it's typically quite isolated... I'm learning17:52
m_3installing mediawiki17:52
m_3installing mysql17:52
m_3but _relating_ them is just:17:53
m_3create a new db on mysql17:53
m_3hand over the creds to access this db to the other service17:53
m_3that's all they really have to know about each other17:53
m_3(example)17:53
m_3ok, that's more detail than we need17:54
m_3simpler example... pgsql17:54
m_3there that's it17:55
m_3create a user/passwd/db17:55
ClassBotThere are 5 minutes remaining in the current session.17:55
m_3and then "relation-set" is a juju primitive that lets this hook hand the info over to the other end of the relation (mediawiki in this case)17:55
m_3mediawiki will have corresponding 'relation-get's where it just saves that out to /etc/mediawiki/...17:57
m_3ok, heading to ubuntu-classroom-chat for questions17:57
m_3also, if you look at nothing else with juju... totally check out the 'juju debug-hooks' command17:59
m_3it opens a tmux session on the service unit and spawns a new session for each hook as it execs (with the hook's exec env)17:59
m_3it's cool!17:59
=== ChanServ changed the topic of #ubuntu-classroom to: Welcome to the Ubuntu Classroom - https://wiki.ubuntu.com/Classroom || Support in #ubuntu || Upcoming Schedule: http://is.gd/8rtIi || Questions in #ubuntu-classroom-chat || Event: Ubuntu Developer Week - Current Session: Running the development release - Instructors: Cariboo907, Effenberg0x0
m_3so there's juju.ubuntu.com/Charms to see these in detail18:00
m_3yikes... outta time18:00
ClassBotLogs for this session will be available at http://irclogs.ubuntu.com/2012/02/01/%23ubuntu-classroom.html following the conclusion of the session.18:00
m_3thanks for your attention!18:00
Effenberg0x0Hi everyone, It's a pleasure to be at UDW. Thank you all for being here! My name is Alvaro Leal (my user name is Effenberg0x0). As you are (probably) aware, we'll be talking about runing the Development Release: Ways to do it, common pitfalls, some tips, how stable it is right now, etc.18:00
Effenberg0x0So, let me introduce myself first. I have been working in IT for 50% of my life (I'm 32, so that's somewhat relevant for me!). My first job was with Solaris (later SunOS) and I got to try Linux by using Conectiva Linux (later Mandrake/Mandriva) for some years, until I tested Ubuntu in 2005 (Hoary) and never left it. Regarding development, work has requested me to focus on HTML+PHP, C+WinAPI (I've been a Dev-C++ user for a long time) and s18:01
Effenberg0x0ome (unnecessarily large) shell (mainly Bash) scripting (prototyping).18:01
Effenberg0x0My current job involves providing market intelligence services to some of the largest global IT companies and, in parallel, coordinating tests and developing for research databases analytic software. I've been active in many Linux and general IT forums in my country (Brazil) but, for the last two cycles, I have focused exclusively in UbuntuForums and its Ubuntu+1 area. So, long story short, that's how I got to testing Ubuntu. It's my firs18:01
Effenberg0x0t time hosting a session so, please, be nice :)18:01
Effenberg0x0Also joining us is Cariboo907, a Forum Admin and Forum Council Member at UbuntuForums. He's been active in the forums for a long time and specifically in the U+1 area for most of the last development cycles. He's here to help and will be answering questions too, so don't feel shy and ask everything you want (relevant to using the development release, please!).18:01
cariboo907Hi everyone, I'm sure most of you know me, or of me18:01
cariboo907Welcome18:02
Effenberg0x0So I have mentioned UbuntuForums and U+1. What is the U+1 area of UbuntuForums? It's a place where a growing group of regulars join to post their perceptions, doubts and workarounds regarding every update to the development release of Ubuntu.18:02
Effenberg0x0From day one of every development cycle,  these guys test the installation of the ISOs (Ubuntu flavors - Ubuntu, Kubuntu, Lubuntu mostly and x86/x86_64) and update their OSs many times a day, reporting back to the forum when something goes wrong. Hopefully, the others can help in reproducing the reported behavior and finding out the origin of the problem (sometimes even a workaround).18:02
cariboo907!q18:03
Effenberg0x0One of the contributions of this team is that they can provide the community with higher value-added and more precise Launchpad bug reports, which potentially makes the work of developers easier. We're also open for receiving specific test tasks from developers and the QA team. And we're ready to provide help to any of you if you happen to encounter any specific problem when using the development releases of Ubuntu.18:03
Effenberg0x0I'd like to talk a little about the importance of testing the development release. It's a huge contribution to the community and something mostly anyone can do, as it requires no specific knowledge. The Testing Team has a wiki at https://wiki.ubuntu.com/Testing.18:03
Effenberg0x0The activities include ISO Testing, Stable Release Testing, Feature Testing, General Testing, Application Testing, Automated Testing, Laptop Testing and, of course, reporting bugs found during this processes in Launchpad and following up with them. So there are activities for all tastes and skill levels.18:04
Effenberg0x0Each activity is not hard or time consuming but, as you can see, all these activities together compose a great load of work, so help is welcomed.18:04
Effenberg0x0So, PLEASE :) Be a part of it.18:04
Effenberg0x0Among all these activities of the Testing Team, I'd like to mention ISO Testing. As we approach a CD Release (Alpha, Beta, RCs, etc) it is really important to do the ISO testings. There are instruction on ISO Testing procedures at https://wiki.ubuntu.com/Testing/ISO/Procedures and a Testcases Wiki is hosted at https://wiki.ubuntu.com/Testing/ISO/Procedures.18:05
Effenberg0x0If all of you could dedicate a couple minutes to go through these links and give some consideration to supporting the Test Team, I would mean a lot to the community.  It's great way to get involved.18:05
ClassBotmetasansana asked: Effenberg0x0 can you slow down a bit please?18:06
* Effenberg0x0 will slow down, as requested by ubuntu-classroom users :)18:07
Effenberg0x0Enough with the introduction part of it: Let's get down to the business at hand, which is running the development release. I'll be posting a lot of information we prepared and then we'll open for questions. As you know, logs will be available online, so there's no need to take note of URLs, commands or anything right now.18:09
Effenberg0x0Ok, lets proceed. We know there's a focus on getting more people into developing software for Ubuntu (see http://developer.ubuntu.com/ and http://www.ubuntu.com/community/get-involved/developers). And considering the growing popularity of this platform, many developers are coding for it now. One of the concerns we see among this group is how they can run the development release without facing serious bugs and breakages.18:10
Effenberg0x0Let me start by saying that there is a consensus about the overall stability in the Precise Pangolin cycle.  From its start (with the upload of the toolchain in Oct 13th) to now, only a few users have faced serious breakages that lead to a lockout / reinstall. This is no coincidence. On Nov. 2011, a list of priorities and specs for the Development Releases was created and it included one important rule: Keep releases usable from day to da18:11
Effenberg0x0y (see https://blueprints.launchpad.net/ubuntu/+spec/other-p-plusonemaint-priorities and  https://wiki.ubuntu.com/PlusOneMaintenanceTeam/Specs/Priorities).18:11
Effenberg0x0So, as you can see, these specs try to make sure you'll have a installable system and buildable packages at any given moment.  So, as developers, you'll also want to take those guidelines under consideration.18:12
Effenberg0x0Of course, it is not bulletproof and we do face some updates that eventually break this or that . But, most of the time,  PP has been succeeding into keeping the system viable enough for its use and test. While this is ***absolutely not recommended at all***, many users are working with PP in their production machines.18:13
* Effenberg0x0 is running it right now: xchat, vmware-player x 4 VMs, Eclipse Juno, about 20 firefix tabs, rhythmbox, Nixnote, Thunderbird and everything is fine (uptime is more than 5 days)18:14
Effenberg0x0firefix=firefox :)18:14
Effenberg0x0Then what are the options to use PP safely? We'll discuss a few as every user/developer will generally choose what fits its preferences best. They are numbered from 1 (less risky) to 5 (more risky).18:14
Effenberg0x0Some are obvious to most people, some are not. But it's important to mention them.18:15
ClassBotkanliot asked: I'm used to lubuntu.  is the PP testing, and reporting the same for Lubuntu?  Or is the schedule a little differnt?]18:16
=== abdulkarim is now known as techmaniack
cariboo907Seeing as Lubuntu is now an official part of the Ubuntu family reporting and scheduling is the same18:17
cariboo907for all versions, except for kubuntu which has it's own bug tracker18:17
Effenberg0x0kanliot, they host a page with specific info for testing Lubuntu: https://wiki.ubuntu.com/Lubuntu/Testing18:18
Effenberg0x0So, proceeding with the common ways to test Ubuntu and its flavors:18:19
Effenberg0x01) Separate PC: Considering you have an extra PC that fits the specs to run the development release (see https://wiki.ubuntu.com/DesktopExperienceTeam/UnityHardwareRequirements and https://wiki.edubuntu.org/DemystifyingUnityGraphicsHardwareRequirements) this is the safest choice. You can run your favorite IDE in your main PC, remotely access the test machine via Samba, SSH, FTP, NFS, Git, SVN, or any other protocol and even run remote GDB18:19
Effenberg0x0 sessions. There's extensive documentation in doing all of those in the Ubuntu Online documentation. In the case of PP Server, you can also consider using a Cloud Service Provider.18:19
Effenberg0x0This is the "ideal" way, of course. But not everyone has extra machines at their disposal.18:20
ClassBotThere are 10 minutes remaining in the current session.18:20
Effenberg0x02) Virtual Machines: During the last two cycles many people have adopted VirtualBox and VMWare-Player as platforms for testing the development release. There's some discussion as to how valid these tests are, since the Operating System is actually accessing virtualized (and not real) hardware. But, if you, as a developer, does not need to access hardware in a low level (and that's generally the case), you can test using a VM just fine.18:20
Effenberg0x0ABout VMs:18:20
Effenberg0x0A Virtual Machine with  1 or 2 GB of RAM and about 30GB of dynamic disk space is more than enough to test both Unity and unity-2D desktops, as well as the other flavors such as Lubuntu and Kubuntu. Installing VirtualBox is easy, as all you have to do is sudo apt-get install virtualbox. In the case of VMWare-Player, you need to download the VMWare-Player bundle (a binary file) from VMWare website, chmod it +x and run its install procedure.18:20
Effenberg0x0 VMWare does have some problems compiling its Kernel modules in the 3.2.x kernel series. But I have made patches available to it, as well as instructions on how to use these patches, and they are posted at UbuntuForums U+1 area. Just search for +Effenberg0x0 +VMWare +Patch and apply the patches if you need to. I can help anyone that falls into trouble installing VMWare-Player on Kernel 3.2.0, just post something at that thread @ UbuntuFor18:20
Effenberg0x0ums..18:20
ClassBotobounaim asked: do you i always need to download the last ISO to test or doing updates will be fine ?18:21
Effenberg0x0And also its important to mention test drive18:21
Effenberg0x0obiwlan, DOing the updates is fine for testing instalation, applications.18:21
Effenberg0x0BUt if you want to test the ISO itsef, you have to download it18:21
Effenberg0x0Something that not everybody knows: Ubuntu has its own testing application, named TestDrive. It is available via Software Center. You can install it using sudo apt-get install testdrive. It downloads/syncs the requested Ubuntu release ISO and starts a Qemu / VirtualBox VM so you can test the latest Ubuntu in an easy and safe way. I recommend using VirtualBox for a single reason: It is capable of OpenGL acceleration. So, it allows you test18:21
Effenberg0x0 Unity. Running Qemu and VMWare Player will only allow you to run Unity-2D in the VMs. Ubuntu has great documentation for all these options. Check https://help.ubuntu.com/community/VirtualBox, https://help.ubuntu.com/community/VMware/Player and https://launchpad.net/testdrive.18:21
Effenberg0x0Test drive can actually download the images, sync them to the latest, and create the testing VM for you.18:22
Effenberg0x0just sudo apt-get install testdrive to try it18:22
Effenberg0x03)  Separate HDD: Also one of the safest options. We all know it's easy to install Ubuntu to a secondary drive, which can be an internal / external HDD and even an USB/eSATA unit. Ubuntu setup is very easy and clear in how to do this, but information is also available in the documentation. See https://help.ubuntu.com/community/InstallingANewHardDrive for example.18:23
Effenberg0x04) Separate HDD Partition: This means you'll have your standard OS installed to /dev/sda1 and PP installed to /dev/sda3 (for example). Same as when using a separate HDD, it should be dealt properly by Ubuntu install. There's no mystery to it.18:23
ClassBotmetasansana asked: what about kvm for virtulisation?18:23
Effenberg0x0These two ways above have absolutely no mystery: Ubuntu default install handles it normally. But of course, they are ore risky than runing it in a separate PC or VM.18:23
cariboo907kvm or any of ther vms work well18:24
Effenberg0x0metasansana: You can use KVM too, but if you'd like to see Unity effects, AFAIK, you have to use VirtualBox, as it provides some hardware acceleration.18:24
ClassBotThere are 5 minutes remaining in the current session.18:25
Effenberg0x04) Separate HDD Partition: This means you'll have your standard OS installed to /dev/sda1 and PP installed to /dev/sda3 (for example). Same as when using a separate HDD, it should be dealt properly by Ubuntu install. There's no mystery to it.18:25
Effenberg0x0oops18:25
Effenberg0x0Another important tip: Few people are familiar with ZSync. It allows you to sync your current image file to the new daily ISO at every time. Only the changed parts of the image will be downloaded, saving time and bandwidth. All the info on how to use ZSync is at https://help.ubuntu.com/community/ZsyncCdImage . After installing ZSync, all you have to do is run something like zsync http://cdimage.ubuntu.com/daily-live/current/precise-deskto18:25
Effenberg0x0p-i386.iso.zsync to have your ISO updated. It really helps a lot. RSync can also be used, and the URL above has the (easy) instructions on how to do it in a single command.18:25
Effenberg0x0This is actually what most people do, as you can save a lot of time and bandwidth for downloading the daily ISOs18:26
Effenberg0x0(and it's how testdrive works too - syncyng the ISO)18:26
Effenberg0x0Ok, I'll post now some of the main tips we have for running the development release. We're almost out of time, so excuse for pasting it relly quick. It will be available in logs for you on those who cuoldn't be here today.18:27
Effenberg0x0We'll answer questions in the ubuntu-classroom-chat channel after this session.18:27
Effenberg0x01. The most important thing: Backup. Always. And do it to a safe and external media. Backing up data to the same partition in use in the installation is too risky. Use an external HDD, a USB drive, a separate partition, a network drive, anything. But NEVER forget to backup. It doesn't really matter if you use dejadup, backintime, or tar and rsync, as long as you manage to keep your important data safe. I have created my own bash script to18:27
Effenberg0x0 backup stuff I find relevant and rsync it to a network storage, and added it to a cron schedule. But the tools I mentioned have GUI options that allow anyone to easily create a proper backup config and schedule.18:28
ClassBotkanliot asked: so i could install lubuntu from the image every day, and use it?18:28
cariboo907oops18:28
cariboo907kanilot you could if you wanted to18:29
cariboo907but there really is no need just do daily updates using the software center synaptic of the command line18:29
=== 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: Working with Debian - Instructors: tumbleweed
cariboo907or the command line18:30
ClassBotLogs for this session will be available at http://irclogs.ubuntu.com/2012/02/01/%23ubuntu-classroom.html following the conclusion of the session.18:30
cariboo907thanks everyone18:30
tumbleweedHi everyone, I'm Stefano Rivera, an Ubuntu MOTU and Debian Developer18:30
tumbleweedI live in South Africa, and have been actively working on Ubuntu & Debian for 3 years or so18:31
tumbleweedI'm here to talking to you about Working with Debian18:31
tumbleweedThis is a short session (30 mins) so I've prepared some notes and will go fast. Maybe there'll be time for examples at the end, probably not18:31
tumbleweedLaney will take a second session on doing work for Ubuntu *in* Debian, later tonight18:31
tumbleweedReminder to please ask any questions in #ubuntu-classroom-chat, and start them with QUESTION:18:31
tumbleweedIn fact, if you're listening, please wave in #ubuntu-classroom-chat, so I know how full the room is :)18:31
tumbleweed== Why work with Debian? ==18:32
tumbleweederr18:32
tumbleweedRight, that's the formalities, let's get moving18:32
* tumbleweed waves to Kerbero, from my LoCo team :)18:32
tumbleweedIf you followed dholbach's introductory sessions yesterday, you'll know that Ubuntu is largely (~75%) unmodified Debian source packages, rebuilt18:32
tumbleweedWe like to keep it this way, because we don't actually have that many developers (~170 with upload rights, compared to Debian's ~900), and it makes sense to avoid duplicating work18:32
tumbleweedYou may not think of yourself as a Debian user, and you probably want to spend your time improving Ubuntu, not Debian, but improving Debian improves Ubuntu.18:33
tumbleweedSo, where possible, when issues affect both Debian and Ubuntu, we like to get them fixed in Debian and let the fix flow to Ubuntu18:33
tumbleweedIf it's too urgent for that in Ubuntu, we can fix it directly in Ubuntu, until the next Debian version brings the fix18:34
tumbleweedOr if bringing in the next Debian version would bring in some undesired bits (e.g. after Feature Freeze, bring in new features), we can apply the fix directly in Ubuntu, and get the new version from Debian next cycle18:34
tumbleweeddebian and ubuntu don't have synchronised release cycles, so this kind of thing happens quite often18:34
tumbleweedhave I  convinced everyone why you should care about debian, and submit patches there (or even upstream, when possible)?18:35
tumbleweedI hope so18:35
tumbleweed== Maintainership ==18:35
tumbleweedThat's the motivation, now for a little discussion on the differences in culture between Debian and Ubuntu18:35
tumbleweedIn Debian, every package has a maintainer who (hopefully) cares for it. The maintainer gets e-mail for all the bugs filed against the package, and is responsible for looking after it18:36
tumbleweedIn Ubuntu, we don't have strong maintainership, anyone can upload any package without having to ask anyone else (except for some core packages, where we have people / teams that know them really well and probably want to talk to you first)18:36
tumbleweed(ok, obviously you need upload rights to upload in debian or ubuntu, but both distributions have sponsorship proceses for new developers without upload rights. And we all started there)18:36
tumbleweedDebian also has some teams (they are becoming more common), but every package will also have a human maintaining it18:37
tumbleweedYou can see who maintains a package by looking it up in the Package Tracking System (PTS) (or by doing an apt-cache showsrc)18:37
=== techmaniack is now known as abdulkarim
tumbleweedThe PTS URL is http://packages.qa.debian.org/SRC_PACKAGE_NAME18:37
tumbleweedI'm referring to source packages everywhere, because that's what developers deal with. Source packages build binary packages, we fix the bugs in the source packages.18:37
tumbleweede.g. here are some packages I maintain:18:38
tumbleweed http://packages.qa.debian.org/beautifulsoup18:38
tumbleweed http://packages.qa.debian.org/pypy18:38
tumbleweedYou can see links to the equivalent Ubuntu pages in Launchpad, in the Ubuntu box on the right: http://pad.lv/u/beautifulsoup http://pad.lv/u/pypy18:38
tumbleweedany questions about that? anyone never come across source packages before?18:39
ClassBotkanliot asked: i've never submitted a patch to a maintainer.  what do i need to put in the email18:40
tumbleweedright, good question18:40
tumbleweedit depends a little on what the patch is for18:40
tumbleweedif it's a packaging change, you should say why it's necessary18:40
tumbleweedif it's an issue that only affects Ubuntu, not Debian, you should probably say so, and mark the bug minor/wishlist (the maintainer has no obligation to care about Ubuntu :P )18:41
tumbleweedgenerally, it should asy everything that a good bug report usually says (google for how to write a good bug report)18:42
tumbleweedwhat causes the problem, what the problem is, how you propose fixing it18:42
ClassBotobounaim asked: where can i find packages to maintain?18:42
tumbleweedif you want to take over maintainance of packages yourself, you can look at the list of orphaned packages18:42
tumbleweedhttp://wnpp.debian.net/18:43
tumbleweedpackages which are "O" are orphaned18:43
tumbleweed"RFH" is a request for help, such as help triaging bugs18:43
tumbleweedor help co-maintaining it18:43
tumbleweedalmost all big packages need help like that, all the time18:43
tumbleweed"RFA" is request for adoption. The current maintainer would like to hand it over to someone, but still cares enough, not to orphan it18:44
tumbleweedand of coures, anyone can propose to bring in new packages, and maintain them18:44
tumbleweedsee the debian new maintainers guide for more details on that bit18:44
ClassBotCeno asked: I'm developing a free software application and intend to directly support Ubuntu by providing a PPA. Should I register as a maintainer and put together a package and publish for debian first and then somehow create a PPA where I treat my software as an external, upstream project?18:45
tumbleweedCeno: I don't see how that's directly relevant to working with Debian18:45
tumbleweedbut if you want to get your package into Ubuntu eventually (rather than just keep it in a PPA)18:45
tumbleweedthen getting into debian is a very good idea18:46
tumbleweedDebian is generally a better distribution for maintaining ones onwn packages (the strong maintainership I mentioned)18:46
ClassBotmetasansana asked: Are there any copyright or legal issues to be aware of when becomming the maintainer for a package?18:46
tumbleweedmetasansana: You are effectively the person responsible for it18:46
tumbleweedit's up to you as the maintainer to review that everything within the package meets the Debian Free Software Guidelines18:47
tumbleweedI've never heard of anyone being sued for screwing up there, but packages certainly get removed fro containing non-free bits18:48
tumbleweed(the ftp-masters do a licencing check, but it's only a check)18:48
tumbleweedhope that answers that18:48
ClassBotobounaim asked: What about Ubuntu where can i find packages to maintain?18:48
tumbleweedmost packages in Ubuntu could use some love18:48
tumbleweedpick something that has lots of open bugs, and go through them18:49
tumbleweedharvest.ubuntu.com is a great place to find things18:49
tumbleweedsubscribes to bugs from packages that you care about18:49
tumbleweed*subscribe18:49
tumbleweedok, let's press on18:49
tumbleweed== Debian's Bug Tracker ==18:49
tumbleweedIf you look at the top right hand corner of a PTS page, you'll see a bugs box, this gets you to the right bit of Debian's Bug Tracking System (BTS)18:49
tumbleweedthey're broken down into totals by severity18:49
tumbleweedmost packages have very few bugs, so the "all" link is what you want18:50
tumbleweedYou can also go directly to http://bugs.debian.org/src:SRC_PACKGAGE_NAME or http://bugs.debian.org/BUG_NUMBER18:50
tumbleweedUnlike Launchpad (although it also has e-mail support), the BTS is driven *entirely* by e-mail18:50
tumbleweedYou don't have to register for anything18:50
ClassBotThere are 10 minutes remaining in the current session.18:50
tumbleweedyou don't need any special permissions18:50
tumbleweedyou can just e-mail any bug18:50
tumbleweedEach bug is filed by sending a specially formated to e-mail to the BTS, and all comments are just replies to the bug's e-mail address.18:50
tumbleweedHere's an example: http://bugs.debian.org/50544218:51
tumbleweedYou can see that I replied to the bug and included some commands to modify the bug (and I CC-ed a special address that parses those commands)18:51
tumbleweedYou can find out more about the gorey details here: http://www.debian.org/Bugs/ or in last year's UDW session by Rhonda: https://wiki.ubuntu.com/MeetingLogs/devweek1103/GettingYourFixesIntoDebian18:51
tumbleweedmost of the time, you don't need the fancy bits, and can just reply to e-mail18:51
tumbleweedDebian users report bugs with the "reportbug" tool. You should probably use that, or our "submittodebian" tool (in ubuntu-dev-tools)18:52
tumbleweedTo modify bugs, you may want to use the "bts" tool (in devscripts) (and, if you use mutt, bts show -m is pure awesome)18:52
tumbleweedYou'll need to set up a way for these tools to send e-mail18:52
tumbleweedThe first time you run submittodebian, it'll set up a working .reportbugrc that sends directly to the BTS, but you may want to edit that to use your normal SMTP server...18:52
tumbleweed== Examples! ==18:53
tumbleweedOK, that was the high level overview. Let's squeeze in an example, and any last questions18:53
tumbleweedbug 840709:18:53
tumbleweedpah, there's no ubottu here18:53
tumbleweedhttp://pad.lv/84070918:53
tumbleweedThis bug is just a fix for some spelling errors in a package description.18:53
tumbleweedIf we fixed that directly in Ubuntu, we'd have to carry that change, and merge it into new versions of the package whenever they came from Debian18:54
tumbleweedThat takes effort, and isn't really worth it in this case18:54
tumbleweedSo, what the submitter did, was to forward the bug to Debian18:54
tumbleweedHe downloaded the package source, made the change, and then ran submittodebian18:54
tumbleweedThis automatically generated a debdiff, and fired up reportbug18:54
tumbleweedIt's a very handy tool! :)18:55
tumbleweedOnce he had the bug number (you get it by e-mail), he linked the debian bug to the Ubuntu one, to ease tracking18:55
ClassBotThere are 5 minutes remaining in the current session.18:55
tumbleweedNow we wait for the debian maintainer to apply that patch, and we'll get it for free :)18:55
tumbleweedlast questions?18:55
tumbleweed(you can see the link to the forwarded bug, at the top, it's an extra bug task on "conduit (Debian)"18:56
tumbleweedOK, hope that wasn't too fast and people were able to learn something18:57
tumbleweedif you need any help in dealing with Debian, as an Ubuntu Developer / contributor, stick your nose into #debian-ubuntu on irc.oftc.net (Debian's IRC network)18:58
tumbleweedthere are a fair number of people who know Debian & Ubuntu in there18:58
tumbleweedalso, most of #ubuntu-motu can probably help out18:58
ClassBotkanliot asked: if this is as easy as you say, how come its so damn hard for me18:58
tumbleweed^ I love that question!18:58
tumbleweedeverything is probably quite hard the first time one does it18:59
tumbleweedit gets easier :)18:59
tumbleweedI can't really say much more without details, but I'm happy to help, if you ask me afterwards18:59
ClassBotmetasansana asked: you mentioned ~75% so what would be the main diff between ubuntu and debian software18:59
=== ChanServ changed the topic of #ubuntu-classroom to: Welcome to the Ubuntu Classroom - https://wiki.ubuntu.com/Classroom || Support in #ubuntu || Upcoming Schedule: http://is.gd/8rtIi || Questions in #ubuntu-classroom-chat || Event: Ubuntu Developer Week - Current Session: Ubuntu Distributed Development - Instructors: barry
tumbleweedIIRC about 10% is minor changes (e.g. small bug fixes or dealing with the slightly different environment)19:00
ClassBotLogs for this session will be available at http://irclogs.ubuntu.com/2012/02/01/%23ubuntu-classroom.html following the conclusion of the session.19:00
barryhello everyone.  welcome to today's class on ubuntu distributed development (udd).  this is an hour-long class so hopefully we'll be able to get to everyone's questions.  i'll start here in just a minute.  don't forget to join #ubuntu-classroom-chat to ask your questions, prefaced with QUESTION:19:01
barryokay, let's get started19:03
barryfirst a little bit of background19:03
barryhere is the online documentation for udd. note however that it's slightly out of date at the moment.  i just merged a branch that updated a lot of information we're going to cover today, but it hasn't hit the web yet19:03
barryhttp://developer.ubuntu.com/packaging/html/index.html19:04
barryhopefully it will very soon now, but you can always grab the ubuntu packaging guide branch and build the html yourself.  ask a question in #u-c-c if you want details on that19:04
barryi'm not really planning on covering packaging basics, hopefully you are all familiar with that.  i'm also not going to cover the traditional "apt-get source" way of doing packaging.  it's not strictly necessary that you know about that, but it might help for mapping the traditional way with the udd way.19:05
barryif not, don't worry, you can pretty much do everything in udd these days19:05
barryokay, so what is udd?19:06
barryudd uses launchpad and the bazaar dvcs to do package development.  it has many advantages over the traditional apt-get source way (imho), and while there are still a few warts in the process, the tools are really fantastic these days thanks to the great bzr and lp teams19:07
barryi'll also mention that most of what i'll discuss will be focused on using precise as the dev platform.  you can use oneiric, but you will want to get the latest bzr and bzr-builddeb packages from the bzr ppa if you do.  precise has some really great improvements that will make your life easier19:08
barryso...19:08
barryas you probably know, launchpad keeps bzr branches for all the packages in the ubuntu archive, and also all the packages in the debian archive.  we call these 'source branches'19:09
barrylp runs a package importer process so whenever someone uploads a new version of a package, the importer will grab that and update the source branch for the package.  it works in 98% or so of cases.  the importer has some problems with a few packages, but at least now the tools will tell you if that's the case (and then you can drop down to the traditional way for those small number of problematic cases)19:10
barrylaunchpad has source branches not just for the current in-development version of ubuntu and debian, but also for most older versions as well.  e.g. oneiric, lucid, squeeze, etc.19:10
barrynote that these source branches are distinct from any upstream branches lp may be tracking.  the source branches have the full unpacked source of the upstream as it exists in the ubuntu archive, along with the debian/ directory that is the packaging goodness.19:11
barrythe source branches also have the full history of the package, both in individual bzr revisions, and as bzr tags for easier access.19:12
barryudd then is using these source branches to fix bugs, update to newer upstream versions, merge in new debian versions, build source packages for uploading, etc.  i.e. we now do everything with bazaar19:13
barryany questions so far?19:13
barryokay then19:14
barryso let's say you want to fix a bug in tomboy using udd.  let's start by grabbing the source branch for tomboy in precise19:15
barryi always find it useful to do my work in a bzr shared repo.  this amortizes the cost of doing the initial branching.  i personally like a shared repo per package19:16
barryso, cd to someplace where you're going to do your work and then type `bzr init-repo tomboy`19:16
barrythen cd into the tomboy directory19:16
barrybzr has a very nice shortcut for accessing the source branches for any package in the in-development version of ubuntu (i.e. precise).  just do this to grab the tomboy source branch:19:17
barrybzr branch ubuntu:tomboy precise19:17
barryyou will end up with a `precise` directory containing the source branch19:18
barryas the branching happens, notice two very useful things:19:18
barryMost recent Ubuntu version: 1.8.0-1ubuntu1.219:18
barryPackaging branch status: CURRENT19:18
barrybzr prints both those lines to your console19:18
barrywhat that is telling you is that the most recent ubuntu version of tomboy (i.e. in precise) is 1.8.0-1ubuntu1.2 *and* that the packaging branch is up-to-date with the state of the archive19:19
barrythis is great because it means we can use udd to do our development19:19
barryremember above i mentioned that the package importer sometimes has problems?  you would see a different message above if the tomboy branch was out of date19:20
ClassBotjincreator asked: In common package, is maintainer the only one who can edit package?19:21
ClassBotkanliot asked: i think i know what a bzr repo is, but what's a shared repo?19:22
barrykanliot: a shared repo is just a parent directory that contains all the bazaar revision metadata.  it's nice to use because let's say you want to make a change to tomboy as described above.  when you do that in a shared repo, 99.9% of the revisions are going to be shared by your two branches.  all that shared metadata lives in the parent directory's .bzr directory.  so using a shared repo makes it super cheap to branch and merge19:23
barrykanliot: hopefully that answers your question.  if not ask again, and i can dig up some bzr docos that explain it better19:24
barryokay, depending on your bandwidth, you hopefully have the precise source branch for tomboy19:24
barryi'll just mention a couple of things.  notice we used the ubuntu: prefix?  well, there's also a debianlp: prefix which can get the current debian version of the package (in wheezy, a.k.a. the in-development version)19:25
barryif we wanted to get the lucid version of a package we would use19:25
barryubuntu:lucid/tomboy or abbreviated ubuntu:l/tomboy19:25
barryabbreviations don't work for debian branches, but you can still do things like19:26
barrydebianlp:squeeze/tomboy to get the squeeze version of the package19:26
=== ashams_ is now known as ashams
barryokay, let's get back to our example19:27
barrywe've got the precise version of tomboy and now we want to create a branch to work on our fix.  let's say we're working on bug 12345.  we might do something like this:19:27
barrybzr branch precise bug-1234519:27
barrythat should go really fast in a shared repo19:27
barrygo ahead and cd into bug-12345 and ls19:28
barryyou will see all the upstream source code, plus a debian directory19:28
barrythe debian dir contains all the packaging stuff of course19:28
barryif we did nothing else, we could build a source package for local building and testing, by doing this:19:29
barrybzr bd -S19:29
barrythis is roughly equivalent to debuild -S19:29
barrywe can also do normal package development stuff like19:29
barrydch -i19:29
barryand so on19:29
barrya quick word about package systems19:29
barryer, s/package/patch/19:30
barryif you're an experienced packager you know that in general, we prefer to provide fixes to packages using a patch system, quilt being the most popular and recommended these days19:30
barrythe important thing to remember is that source branches already have all the patches applied19:31
barryso once you get a source branch, you're ready to dig right in19:31
barryit's equivalent to having already done `quilt push -a`19:31
barrythis generally makes things much nicer, but there are a few small gotchas we'll hopefully have time to get to19:31
barryinside your bug-12345 branch, do this: quilt applied19:32
barrythat will show you that all the quilt patches in tomboy are already applied19:32
barrylet's say bug 12345 just described a typo in the debian/control file.  okay, this is easy to fix19:32
barryyou use your favorite editor to fix the typo19:32
barrythen you use dch -i to add an entry to debian/changelog19:33
barryif you're happy with the change, you can then do:19:33
barrybzr commit19:33
barrywhat's nice about this is that your commit message will be taken from your changelog entry, so generally you can just use that directly19:34
barryonce you've committed your change, build your source package:19:34
barrybzr bd -S19:34
barryin the shared repo (i.e. the parent of bug-12345), you'll have the .dsc .orig.tar.gz and so on19:34
barryyou can test and upload these as normal19:34
barrybefore you upload though, do one other thing:19:34
barrybzr tag19:34
barry(with no options).  this will add a tag matching the new changelog entry version number.  super easy!19:35
barryyou can then merge this back into the source branch by doing this:19:35
barrycd ../precise19:35
barrybzr merge ../bug-1234519:35
barrybzr commit19:35
barrybzr push :parent19:36
barrythat last bit pushes your updates back to launchpad (assuming you have permission to do so, i.e. you have upload rights on the package)19:36
barrynote that you'll still need to dput the package19:36
barrywhat if you don't have upload rights?19:36
barryin that case, you submit a merge proposal so that a package maintainer or sponsor can help you get your changes uploaded19:37
barryin that case19:37
barrystay in the bug-12345 directory.  after you've committed and tagged, do the following:19:37
barrybzr push lp:~barry/ubuntu/precise/tomboy/bug-1234519:37
barrysubstituting your own lp id for ~barry of course19:37
barrythe last path component is up to you.  i like naming it after the bug i'm fixing19:38
barryonce the branch is pushed, do the following:19:38
barrybzr lp-propose19:38
barrythat will create a merge proposal with all the right details, and open your browser to that page19:38
barrya sponsor can then review your changes, work with you to ensure they are correct, and help you get your changes uploaded19:39
barryi'll pause a moment for questions19:39
barryokay.  the next topic i'd like to cover is merging updates from debian or upstream using udd19:40
barrylet's say upstream tomboy releases a new version and you'd like to get that into ubuntu.  for whatever reason, you're going to do this without going through debian first19:41
ClassBotfjrodriguez asked: What are upstream branches?19:41
barryfjrodriguez: by "upstream branches" we can mean a couple of things.  because debian is an upstream of ubuntu, we could mean the version of the package in debian.  more typically though, we mean the code from the upstream project itself, although these will generally be tar.gz files or similar and not actual dvcs branches19:42
barry(or non-d vcs branches)19:42
barryi.e. when tomboy makes a new release, we're going to call the new  .tar.gz file the "upstream" version19:43
barrydoes that make sense?19:43
barryso let's say that tomboy releases version 2.0 and we want to put this in ubuntu (the following commands likely won't work since this is a hypothetical situation)19:44
barryif the source branch, i.e. ubuntu:tomboy has a working debian/watch file, and we're lucky, we should just be able to do the following:19:45
barrybzr merge-upstream19:45
barrythis command will grab the upstream tarball from the web, do a bunch of magic <wink>, and leave you with a branch of uncommitted changes that include an updated source code, and new debian/changelog entries for the new upstream version19:46
barryeveryone know what a debian/watch file is?19:46
barryif the debian/watch file doesn't work, you can provide more options to bzr merge-upstream to help it along.  do `bzr merge-upstream --help` for details.  i'm going to skip ahead 'cause we have only 15 minutes left19:47
barrykanliot: a debian/watch file contains a url pattern for how to find the upstream released tarball19:47
barrythe uscan command reads debian/watch and this can be used to find the latest released tarball (by checking version numbers).  `bzr merge-upstream` uses uscan under the hood to download that tarball19:48
barrymore common than getting a new upstream version into ubuntu is merging a new debian version of the package into ubuntu19:49
barryjincreator: yes, debian/watch is packaging basics and not specifically udd related.19:49
ClassBotThere are 10 minutes remaining in the current session.19:50
barryso let's say debian wheezy has tomboy 1.9 while ubuntu has tomboy 1.8.0.  we want to merge the debian version into the ubuntu version19:50
barryin this case, let's assume that launchpad has the latest debian source branch19:50
barrywe can create a new local branch of ubuntu:tomboy, e.g.19:51
barrybzr branch precise mergedeb19:51
barrythen cd in mergedeb and do this19:51
barrybzr merge debianlp:tomboy19:51
ClassBotkanliot asked: what are some specific scenarios where i would need bzr?  would it help if the debian source is downstream of an upstream source on sourceforge.net?19:52
barrykanliot: one of the primary reasons for using bzr is if you want to work on packages for which you don't have upload rights.  by creating branches, pushing them to lp, and submitting merge proposals, you can gain street cred for your fixing, ubu devel, and packaging skills, and a sponsor can help you with the last little bit of getting your changes uploaded19:53
barrydoes that make sense?19:53
barrykanliot: lp is abbreviation for launchpad19:54
barryit's the central hub for all ubuntu development19:54
barrykanliot: correct.  bzr can be used in some cases for debian, but it's not as universal as it is for ubuntu19:54
ClassBotThere are 5 minutes remaining in the current session.19:55
barryand debian has a different culture and workflow for package development, which i can't go into here ;)19:55
ClassBotjincreator asked: Why Most recent Debian Version is "MISSING" when I merge from debian?19:55
barryjincreator: that's an artifact of launchpad not knowing exactly what's in the debian archive.  i believe there is a bug open on this to try to improve that message19:55
barryfor now, you'll always get it when referring to debianlp: branches19:56
barrywell, i was hoping to get to using udd to work with quilt patches, because there's some really fantastic new stuff in precise about this, but there really isn't time.  i'll stick around #ubuntu-classroom-chat if you want to talk about that or you can always ping me on #ubuntu-devel19:57
barryand the url for the packaging guide will have much better and simpler instructions on this soon19:57
ClassBotbenonsoftware asked: WHat CVS does Debian use Git, SVN, etc? (Sorry if I missed this part as I just came in :P)19:57
barrybenonsoftware: that's a little outside the scope of today's class, but different teams use different things.  e.g. the python packaging teams typically use svn19:58
barryany other questions in our last 2 minutes?  my apologies for going so quickly and/or cutting things short due to time19:59
barrylet me add in closing that there are lots of places to learn about udd, ask questions, get help etc.19:59
barrythere is a udd mailing list: ubuntu-distributed-devel@lists.launchpad.net19:59
barryi am always on #ubuntu-devel20: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: Working in Debian - Instructors: Laney
barry#bzr can also be very helpful20:00
ClassBotLogs for this session will be available at http://irclogs.ubuntu.com/2012/02/01/%23ubuntu-classroom.html following the conclusion of the session.20:00
LaneyHi there!20:00
LaneyThanks barry (also for reminding me that I need to remember to update Tomboy in Precise :P)20:01
LaneyMy name is Iain and I'm an Ubuntu Developer and also a Debian Developer. I've been around these parts for a few years now.20:01
LaneyI'm going to tell you a bit today about how you can contribute directly to the Debian project.20:02
LaneyThere's a /lot/ (really) to know in this area, way more than I could cover in a 30 minute session, so I'll mainly be trying to give you a feel of what exists and where you can go for help. I'll provide links wherever I can.20:03
LaneyAs you've been told in other sessions, Ubuntu is what's known as a Debian derivative. This means that most of the software that Ubuntu users use comes in from the Debian project's packages.20:04
LaneyWe generally take what's in Debian, modify it if we need to, recompile it and then make it available to the users of Ubuntu. This process is more or less automatic depending on where we are in the cycle and depending on the particular package concerned.20:05
LaneyIn the majority case (for Universe at least), packages are copied ("synced") automatically from Debian at the start of every Ubuntu release cycle. After this automatic period ends, developers can request copies to be performed by using a simple script.20:06
LaneyThis https://merges.ubuntu.com/universe-now.png is an image I like to link to which shows that the majority of packages in Universe are unmodified Debian packages (the Unmodified and Needs Sync) sections.20:07
LaneyThe Modified and Needs Merge sections are Debian packages which Ubuntu developers have modified for one reason or another. We try to keep this to a minimum as far as possible, as every Ubuntu change adds a small piece of manual maintenance.20:08
ClassBotryan___ asked: Is Ubuntu still considered a full Debian derivative even though Ubuntu uses its own shell for GNOME (Unity)?20:08
LaneyHi ryan__, that's a good question. Ubuntu has always selected its own 'default' experience, even when we were shipping a more-or-less vanilla GNOME desktop.20:09
LaneyThere will always be cases when it is necessary for Ubuntu to diverge from Debian, but the default remains that we take our packages from there, and our processes are set up for this.20:09
LaneyI want to outline a couple of reasons why you might want to contribute your work to Debian directly20:10
Laney - Debian is upstream to a large number (http://wiki.debian.org/Derivatives and more) of derivatives, of which Ubuntu is just one. By working up there your work will have a larger impact; you'll reach all users of Debian /and/ all derivatives.20:11
Laney - You'll also be able to benefit from Debian's QA infrastructure, not all of which Ubuntu has just yet (although we are moving more in this direction)20:11
Laney + Regular archive rebuilds to catch build failures that may have cropped up since the initial upload20:12
Laney + Automated installation and upgrade tests (http://piuparts.debian.org/)20:12
Laney + Automated build log scanning for common detectable problems (https://buildd.debian.org/~brlink/)20:12
Laney + The Package Tracking System (PTS), which is a handy dashboard that is personalised to each package. Here's the page for the 'mono' package: http://packages.qa.debian.org/m/mono.html20:13
LaneyYou can see that there are links to details about the maintainers, automatically detected problems (as mentioned above), an overview of the bug situation and much more information. It's a really handy tool that I genuinely use all the time when checking out Debian packages (set up a browser keyword for it)20:14
ClassBotryan___ asked: Since Ubuntu is a Debian derivative, does Ubuntu contain packages that Debian doesn't currently contain?20:14
LaneyThat's right. Being a derivative implies that a lot of the packages are the same, but not all. Some packages (e.g. unity) are so-called Ubuntu local packages meaning that they are not in Debian yet.20:15
LaneyThe goal is to get this number as close to zero as possible, but for various reasons this isn't always so easy.20:15
Laney--20:16
LaneyA key difference (possibly the one which has the most implications) is that of maintainership. In Ubuntu every single package is maintained by a team (either the Core Developers or the MOTUs). In Debian each package has its own maintainer. This may be one or more individuals or it may (increasingly commonly) be an organised packaging team (http://wiki.debian.org/Teams#Packaging_teams).20:17
LaneyThis means that you always (actually only usually, as we'll see later) have a point of contact for each package, who is supposed to be an expert on that package.20:18
LaneyIt may also be a slight disadvantage in that this person can 'block' progress if they are unresponsive for one reason or another.20:18
LaneyTeams are becoming increasingly common, and are a great way of finding people with a shared interest. One excellent way to get involved with Debian development is to find a team that interests you from the link above and join their IRC channel or mailing list.20:19
ClassBotThere are 10 minutes remaining in the current session.20:20
LaneyFor example, if you have a Haskell package, you could post about it to the Debian Haskell Group's mailing list and you'll receive help from exactly those people who have the most knowledge about Haskell packaging. This information is, imho, much more accessible to a newcomer than the corresponsing information in Ubuntu.20:20
ClassBotryan___ asked: Are there package teams in the Ubuntu project?20:21
LaneyThere's not so much a culture of having formal teams in Ubuntu as there is in Debian. What you might tend to find is some individuals have an interest in a package (which you can usually discover by searching the changleog)20:22
LaneyThere are some teams though, for example the desktop team takes care of some packages and the server team some other.20:22
LaneyThe difference, as I said, is that even though the teams exist, they do not have exclusive control of their packages. Any developer is free to develop them. This isn't really the case in Debian, where you usually have to work with the Maintainer.20:23
Laney--20:23
LaneySince we've only got a few minutes left I'll quickly give you some links20:23
LaneyOne useful document is the Debian developers' reference (devref), which describes the expectations that debian has of its maintainers and how to use some of the services available to them20:24
Laney 20:24
ClassBotThere are 5 minutes remaining in the current session.20:25
Laneyhttp://www.debian.org/doc/manuals/developers-reference/ (some iof this is only applicable to DDs)20:25
LaneyThe New Maintainers' guide is also interesting both as a packaging guide and an introduction to the social dynamics in Debian20:25
Laneyhttp://www.debian.org/doc/manuals/maint-guide/20:25
LaneyThe Debian Bug Tracking System (BTS) is an extremely important tool which is quite difficult to grasp at first (due to its email driven nature)20:26
Laneyhttp://www.debian.org/Bugs/Reporting and there are other documents linked fro http://bugs.debian.org20:26
Laneyreportbug is also a great tool for reporting bugs in debian, and `bts' in the devscripts package20:26
LaneyThere are many mroe resources available from http://www.debian.org/devel/20:27
LaneyIf you've got questions when getting involved with development in Debian, try contacting either the Debian mentors team (http://mentors.debian.net / debian-mentors@lists.debian.org / #debian-mentors @ OFTC)20:27
Laneythere are many friendly people there who will be able to help you out20:28
Laneyanother very useful resource is the Derivatives Frontdesk http://wiki.debian.org/DerivativesFrontDesk20:28
LaneyThis was set up to help collaboration between Debian and its derivatives. Members can be contacted on debian-derivatives@lists.debian.org  / #debian-ubuntu @ OFTC20:28
LaneyThis is /extremely useful/ if you're an Ubuntu contributor having trouble figuring out how something in Debian is supposed to work (or need help finding a sponsor, or anything similar).20:29
LaneyRight, out of time. I had some more to say20:29
LaneyBut I've made a little primer and put it up on the wbe here: http://people.debian.org/~laney/working-in-debian.html20:29
LaneyFeel free to email me or grab me on IRC if you have any questions.20:30
LaneyHappy Debianing :-)20:30
=== 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: Starting with HTML/CSS - Instructors: benonsoftware
ClassBotLogs for this session will be available at http://irclogs.ubuntu.com/2012/02/01/%23ubuntu-classroom.html following the conclusion of the session.20:30
benonsoftwareHello and welcome to Starting with HTML/CSS20:30
benonsoftwareIf you have any questions at all perface them with QUESTION: You question here? in #ubuntu-classroom-chat20:31
benonsoftwareToday I'll be teaching the basics of HTML and CSS and hopefully moving up20:31
benonsoftwareOk, first if you have a look at any webpage soruce by right clicking then selecting View Soruce20:32
benonsoftwareIt may look it bit scary at first but its easy to understand20:32
benonsoftwareFirst all webpages should have a DOCTYPE at the start of it to tell you its a X/HTML 4.0/4.1/5 type of page20:33
benonsoftwareMost newer websites are using <!DOCTYPE html> for their webpages as it is the HTML 5 doctype20:34
benonsoftwareI would just like to note 2 things, 1. You can ask questions any time in #ubuntu-classroom-chat20:34
benonsoftwareand 2. I am the website team leader for TouchLay and a website dev for SII20:35
benonsoftwareNow after the <!DOCTYPE html> there should be <html>20:35
benonsoftwareNow everything inside <html> or <p> is called a tag20:36
benonsoftwareand all tags must be closed:20:37
benonsoftwareSay if I have a <p> tag to close it (stop it) I would type </p>20:37
ClassBotryan___ asked: Is the web page title inside <title> a tag?20:37
benonsoftwareryan__: Yes, inside <html> is a <head> which desribs the page and the tag <title> its in there20:38
benonsoftwareSo for example:20:38
benonsoftware<!DOCTYPE html>20:38
benonsoftware<html>20:38
benonsoftware<head>20:38
benonsoftware<title>Google</title>20:38
benonsoftware</head>20:38
benonsoftwareNow inside the <head> tag is usally lots of things to help out with Search Engines and the like20:39
benonsoftwareLets move onto <body>20:39
benonsoftwareNow the <body> tag is usally what everyone else sees on the page, so all of the text and images are inside here20:40
benonsoftwareSo usally after the start of <body> is usally the page heading inside the <h1> tag20:40
benonsoftwareNow was the <hx> tag it can go up from <h1> to <h6> with <h1> being the biggest heading and <h6> being the smallest heading20:41
ClassBotryan___ asked: Is the page background color/image also in <body>?20:42
benonsoftwareryan__: There is 3 ways, inside <body>, inside <head> (with CSS) and using a CSS style sheet20:43
benonsoftwareI would just like to note that if I do not cover eveything here I am free for questions afterwards and I'll do another session at a later time20:44
benonsoftwareImages:20:44
benonsoftwareNow to inseart a image into a HTML file you do:20:44
benonsoftware<img alt=" " src="slice_0_0.jpg" style="width: 180px;  height: 173px; border-width: 0px;"></td>20:44
benonsoftwareSorry, remove the final </td> tag as it will not work with just that :)20:45
ClassBotryan___ asked: I may have a lot of questions, so  instead of asking them here, do you have an email address I could email you at?20:45
benonsoftwareryan__: I sure do, anyone can contact me at benny @ ubuntu.com20:46
benonsoftwareNow where <img alt=" " inside the " " you have to write a one or two words about the image in case of people using screen readers or cannot view the image20:46
benonsoftwareand inside src="slice_0_0.jpg" you have to replace slice_0_0.jpg with your image name20:47
benonsoftwareUsally people place their images inside a images sub folder so you would then do, images/image1.png for src=" "20:48
benonsoftwareNow with <p>;20:48
benonsoftware<p> is where most people's content goes.20:49
benonsoftwareSo if I wanted to write Web dev is great! on a webpage I would use:20:49
benonsoftware<p>Web dev is great!</p>20:49
benonsoftware<p>20:49
benonsoftwaremeans paragraph20:50
ClassBotThere are 10 minutes remaining in the current session.20:50
benonsoftwareSo if you close it then open another <p> tag there would be a one line space inbetween20:50
benonsoftwareBut if you just want to start a new line then you would use:20:51
benonsoftware<br>20:51
benonsoftwareor <br />20:51
benonsoftwarePlease note that the line break tags do NOT close20:51
ClassBotisgjevori asked: Do we have to close the <img> tag ?20:52
benonsoftwareisgjevori: In the img tag example I showed you, you can see at the end of it the is ">, that closes it20:53
* benonsoftware is not talking about the </td> tag there20:53
benonsoftwarepalladin35y asked: What is CSS?20:53
benonsoftwarepalladin35y: CSS stands for Cascading Style Sheets and they help you desribe how your webpage should look with colours and the like20:54
benonsoftwareI will if there is enough interest run a session on but CSS in a few weeks time20:54
benonsoftwareWith a few minutes left any questions?20:55
ClassBotThere are 5 minutes remaining in the current session.20:55
benonsoftwareNext session is Fixing small bugs in Unity with Trevinho and andyrock20:57
ClassBotisgjevori asked: Can we put tags like <img> or <blink> ect in a Css file?20:57
benonsoftwareisgjevori: From what I have read no20:58
ClassBotfjrodriguez asked: What software do you use to create html pages?20:58
ClassBotnava asked: (please write some article of basic html and css and put it on web to others can download and learn fast) do u teach css 3 and html 5 in next weeks ?20:58
benonsoftwarefjrodriguez: I just use any old notepad program and save the file as .html20:58
benonsoftwarePage if you Google around there is some good What you see is what you get editors20:59
benonsoftwarenava: Well I may in the next month or two but some things about CSS and HTML on my website at www.benonsoftware.com and I might teach about CSS in the next month too20:59
benonsoftwareAlso everything covered here in HTML5 too21: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: Fixing small bugs in Unity - Instructors: Trevinho, andyrock
ClassBotLogs for this session will be available at http://irclogs.ubuntu.com/2012/02/01/%23ubuntu-classroom.html following the conclusion of the session.21:00
TrevinhoHello all21:01
andyrockhey all! :)21:01
TrevinhoTo begin let's introduce ourselves...21:01
TrevinhoWe were two Unity Community hackers21:01
Trevinhothat after hacking on the unity and nux code get contracted by Canonical21:02
Trevinhoto develop unity for 12.0421:02
andyrockNow we're working on bug fixing21:03
TrevinhoThis describes our work, anyway we're two Italian guys... That's why we're often called "The Italians" on our team21:04
andyrockand to implement small features21:04
TrevinhoWe're getting here thanks to the work that we started as community guys, lead by the passion on the free software development21:06
andyrockSo as by description, this session is about Unity and after bug fixing in Unity21:09
TrevinhoFirst of all...21:09
TrevinhoWhy contributing to unity?21:09
TrevinhoWell... The first reason can be simple... As it's a quite new software with a very important role and as every software is not bug free21:10
Trevinhoso... We need to squash them out21:11
Trevinhoto make unity and so the main ubuntu interface to rock21:11
TrevinhoThen personally, you can enjoy to work on a big piece of software21:11
Trevinhothat will be used by millions of users21:12
andyrockFrom my point of the view, contributing to unity (and open source software in general) can be an opportunity to learn a lot of cool stuff21:12
TrevinhoAlso... If unity doesn't fill exactly to your needs maybe you can work on it to improve it.. That's the main reason I joined at the beginning21:13
andyrockinstead of criticizing without doing anything :)21:14
TrevinhoOr finally, you can just join the development to be welcomed by Jorge in a such way, once you're at the UDS: http://www.flickr.com/photos/trevi55/5701699276/in/photostream21:16
Trevinho;)21:16
TrevinhoOk... I think you got what we meant...21:17
TrevinhoBy the way if you're here, maybe the main thing you want is start doing something for our beautiful shell21:18
TrevinhoSo... Let's start21:18
TrevinhoFirst of all... Talking about unity we talk about an (united) ecosystem... So Unity is just one of the projects that makes the "unity experience" possible21:19
TrevinhoThe main launchpad branches you should start to branch and look are21:19
Trevinholp:bamf - for the Windows /applications matching and management21:19
Trevinholp:nux as the widget library21:20
Trevinholp:libunity21:20
Trevinhoand then21:20
ClassBotnava asked: what basics we should know to help in unity project (i mean programming language) ?21:20
Trevinholp:unity21:20
andyrocknava, basic c++21:20
TrevinhoYes, nux and untiy are in C++21:21
Trevinhowhile bamf is in C and libunity in Vala21:21
andyrockautopilot in pythong21:22
TrevinhoSo, I was listing the projects... lp:unity is anyway the "core" of our shell... Basically is a compiz plugin that gets loaded when compiz runs, but to do many patches this shouldn't worry you21:22
andyrockwithout the g :)21:22
TrevinhoSo.. To get started on development, first of all, we suggest to always stay up-dated to the last ubuntu version21:23
Trevinho*development version*21:23
Trevinhoso precise, now21:23
TrevinhoThen, to install the main dependencies you can use the unity-team staging ppa21:24
Trevinhothat is at https://launchpad.net/~unity-team/+archive/staging21:24
Trevinhoand you can get the needed dependencies by doing something like21:24
Trevinhosudo apt-get build-dep unity21:24
andyrockkeep in mind the staging ppa can break your pc :)21:24
Trevinhoyes, that's the coolest part :)21:24
andyrockmost of the time, you'll need to play with nux21:25
andyrockso it can be useful21:25
andyrocksudo apt-get build-dep nux21:25
andyrockbtw to build unity from trunk read here http://askubuntu.com/questions/28470/how-do-i-build-unity-from-source21:26
andyrocknow that we know how to build unity, let's talk about what bugs we can solve :)21:27
TrevinhoNow... If you want to start, you'd maybe remember the famous "bitesize list"... Well that's still valid and you can check it at https://bugs.launchpad.net/unity/+bugs?field.tag=bitesize21:27
andyrockBut if you want to be really useful you can fix the "backlog bugs"21:27
andyrockhttps://bugs.launchpad.net/unity/+bugs?field.tag=backlog21:28
TrevinhoAll these bugs are also listed in this more useful page: http://people.canonical.com/~platform/design/upstream.html21:28
Trevinhothat shows the bugs that have more design priority21:28
andyrockA bitesize bug is a really simple to solve bug (or at least is should be easy to solve)21:29
andyrockLet's talk about the backlog bugs21:29
andyrockWhat is a backlog bug?21:30
TrevinhoYou can also subscribe to the unity bugs at https://bugs.launchpad.net/unity21:30
andyrockA backlog is a feature that needs to be implemented21:31
andyrocka feature or an improvement to a feature21:31
andyrockas you can see we have a quite long backlog list :/21:32
andyrockSo the first step is: "Decide what bug do you want do solve"21:33
TrevinhoOnce you've decided... You just need to branch unity (or the project you want to fix)21:33
TrevinhoSo for example, considering unity21:33
Trevinhojust do21:33
Trevinhobzr branch lp:unity21:34
andyrockthen21:34
andyrockcd unity21:34
andyrockmkdir build21:34
andyrockcd build21:34
Trevinhocmake .. -DCMAKE_BUILD_TYPE=Debug -DCOMPIZ_PLUGIN_INSTALL_TYPE=local -DCMAKE_INSTALL_PREFIX=/usr21:34
Trevinhothis will configure your branch to be compiled21:34
Trevinhoensuring that you've all the dependencies needed21:34
TrevinhoAt this point the hardest thing begings21:34
Trevinhothat's coding your feature21:35
Trevinhonow... If you need some documentations for the libraries we mostly use21:35
Trevinhoyou can go to http://developer.ubuntu.com/resources/platform/api/21:35
andyrockSo let's say we want to fix this bug21:38
andyrockhe document that andyrock just linked is another useful tool you can use to understand how unity is made21:38
andyrocksorry :)21:39
andyrockhttp://www.google.it/url?sa=t&rct=j&q=alt%20%2B%20f4%20dash&source=web&cd=1&ved=0CCsQFjAA&url=https%3A%2F%2Fbugs.launchpad.net%2Fbugs%2F891818&ei=6LApT52gI8jc4QSr_bzYAw&usg=AFQjCNFLgM3TIF4Q5cR-2yTt7uWI_6rxgw&sig2=3e3RioCBKXjA-b4MgZFDxA21:39
andyrocksorry again :)21:39
andyrockhttps://bugs.launchpad.net/bugs/89181821:40
andyrockDash - dash is not closed with alt+f421:40
andyrockThe first thing to do so is to study21:41
andyrockand the first question is: "What is the best way to solve this bug"21:41
andyrockMaybe we can just intercept the alt+f4 key and the close the dash21:42
andyrockbut there is a best way...21:42
andyrockintercept a WM_DELETE_WINDOW message21:43
andyrockthat is send from the windows manager when you press alt+f421:44
TrevinhoYou can get this by using xev for example21:44
Trevinhoan useful tool to understand what's going on an X window...21:44
Trevinhoif you run it on a terminal and you do Alt+F421:44
andyrockWhy this is the best wat to do this?21:44
Trevinhoyou get an output:21:45
TrevinhoClientMessage event, serial 36, synthetic YES, window 0x6400001,21:45
Trevinho    message_type 0x13a (WM_PROTOCOLS), format 32, message 0x138 (WM_DELETE_WINDOW)21:45
andyrockWhy this is the best wat to do this?21:45
andyrockbecause it's easy to test21:45
andyrockand because if you change the key binding to close a window21:46
andyrockthe code will continue to work :)21:46
ClassBotkedde asked: Is it possible to set up a breakpoint in an IDE?21:46
andyrockkedde, yes, but you need to do it using gdb21:47
andyrockfrom another tty21:47
andyrockso alt+ctrl+f121:47
andyrocklogin21:47
andyrockthen21:47
andyrockDISPLAY=:0 unity --advanced-debug21:48
andyrockor21:48
andyrockDISPLAY=:0 gdb --args compiz --replace21:48
andyrockLet's return to our bug...21:49
ClassBotThere are 10 minutes remaining in the current session.21:50
andyrockso what we want to do is to intercepet that event21:50
andyrockyou should know that the dash has an associated X window21:51
andyrockso we'll use that window to receive the event21:51
andyrockbut we have a little problem :)21:52
andyrockwe should add the support in nux21:52
andyrockto send the event to unity21:52
andyrockand this is the tricky part of this bug :)21:54
andyrockNow've not the time to go into the details21:54
ClassBotThere are 5 minutes remaining in the current session.21:55
TrevinhoYes.. Anyway in that case basically you need to make nux get that event and to emit to a BaseWindow21:55
Trevinhothen on the Unity side you only have to connect to that event and close the window21:55
TrevinhoNow, in Precise we're also focusing a lot on testing21:55
Trevinhoand on quality21:56
Trevinhoso, tetsing can be another way to contribute to the project21:56
TrevinhoWe have many ways to test...21:56
andyrockGoogle test for example21:56
andyrockhttp://code.google.com/p/googletest/21:56
TrevinhoThey mostly depends on what you should test21:56
Trevinhoso, we use google test when we have to just check a data structure, for example21:57
Trevinhoor we use Autopilot https://wiki.ubuntu.com/Unity/QA/Autopilot to autogically move unity and check if it's doing the right thing21:57
TrevinhoGive a look to Autopilot, it could be fun to test with it21:57
TrevinhoSo, we slightly shown the process we generally follow when doing something for unity21:58
Trevinhowhat we can say is that it's not that hard21:58
Trevinhoif you know a little the language and you can use grep, you can just start to scratch your itches from now21:59
Trevinhofixing the bugs the most are breaking your head21:59
TrevinhoJust branch unity, and have fun21:59
ClassBotLogs for this session will be available at http://irclogs.ubuntu.com/2012/02/01/%23ubuntu-classroom.html22:00
TrevinhoIf you want, you can also check to our branches to see how to do things https://code.launchpad.net/~3v1n0/unity and https://code.launchpad.net/~andyrock/unity22: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 ||
andyrockthank you guys22:00
TrevinhoThank you all22:01
TrevinhoHope to see your code in launchpad, and to review it! ;)22:01
benonsoftwareThat was a fast hour :P22:03
=== metasans is now known as metasansana
=== chucknorris is now known as KC-45
=== fjrodriguez is now known as pakuco

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