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

roydhelp load01:09
roydpart01:10
ingeniumre01:34
=== Karthik is now known as Guest73678
=== Pete_ is now known as Guest14703
superZoomhi all09:50
benonsoftwareHello superZoom09:50
superZoomlooking forward for this session09:51
superZoomexcited!!! what about you ???09:51
benonsoftwaresadly I will not be able to attend09:51
* benonsoftware is running a session :P09:51
superZoomhow silly i am ;-)09:52
benonsoftwareWhat?09:52
superZoomi mean your running a session and I am asking you about attaining  it09:53
benonsoftware:P09:55
superZoomis this session going to be IRC only??? I mean no screen share or Remote Desktop view ??09:57
superZoomor Voice ??09:57
benonsoftwareNo sorry09:57
=== Fenris is now known as Guest14898
calmpitbullHi all10:56
Gligorijanhello ubuntu!11:13
=== StasPlamadeala is now known as stas
stasstas211:16
=== stas is now known as stas1
=== stas1 is now known as stas2
=== stas2 is now known as Stanislav
=== Stanislav is now known as helicopter
=== jonas_ is now known as Guest57928
=== helicopter is now known as karabas
tehrwhen does the next session start?11:21
dholbachtehr, https://wiki.ubuntu.com/UbuntuDeveloperWeek → 15:00 UTC11:22
dholbachwhich is in roughly 3h30m11:22
tehrthnx dholbach11:22
simmeldholbach: You are *too* nice = )11:23
dholbachno, I'm not :)11:23
tsega@dholbach great didn't miss it11:23
meetingologytsega: Error: "dholbach" is not a valid command.11:23
tsegagreat didn't miss it11:23
=== muthusuba_ is now known as muthusuba
=== joba is now known as Guest55632
=== wilson is now known as Guest21763
=== Aiya is now known as RayJ
jrzabotthellow...12:23
jrzabottSomeone, please, can help me, how did the development week works?12:25
aquariusjrzabott, heya. Developer Week is a series of online talks, done in this channel, starting later on today.12:26
aquariusjrzabott, you should join both this channel and #ubuntu-classroom-chat12:26
aquariusOnce Developer Week starts, only the speaker is allowed to talk in here, but anyone can talk, ask questions, or discuss the talk in #ubuntu-classroom-chat12:26
aquariusthe text of each of the talks is also published after the week is over, if you miss any talks.12:27
aquariusjrzabott, the person running Developer Week is dholbach, who is lovely and helpful.12:27
jrzabottCool!!! Thanks everybody... i'm using the ircII, and i'm a little bit lost...  How can I join the other channel? just /join #channel12:28
dholbachcheck out https://wiki.ubuntu.com/UbuntuDeveloperWeek and the links in there12:29
jrzabottI never used Irc in linux before... LOL... don't know any client.12:29
dholbachyeah, just /join #ubuntu-classroom-chat12:29
=== galileo_ is now known as LyzardKing
mohitkumarwhy does sometime shared drive feature does not work ?12:51
aquariusmohitkumar, the best place to ask technical questions is in #ubuntu -- this channel is really for giving talks about Ubuntu at specific times, so there aren't many people in it who could help.12:54
medberrydholbach, are the back to back 30 minute sessions really the same content (or is it more like an hour long session?)13:49
dholbachmedberry, an hour long13:49
medberrythanks.13:49
ET1hello13:54
umituzunHi there13:57
amigokaranWhat time is the first session starting?13:58
Atlantic77715:00 UTC13:58
Palmwedler15:00 UTC13:58
fecub1513:58
dholbachin around one hour13:58
amigokaranAwesome, thanks!13:59
dholbachif you type    date; date -u    in a terminal, you will get your current time and UTC time13:59
umituzunthanks too13:59
=== mike_ is now known as Guest26503
palladin35yi'm early right ?14:02
draglypalladin35y, sorry, no - all the good cookies are already eaten14:03
umituzunyeah right14:03
draglypalladin35y, but the session hasn't started yet, no ;)14:03
palladin35yoh man no cookies14:04
palladin35ythanks  dragly14:04
toni1 more hour. I suggest new commers (like me) to read this: https://wiki.ubuntu.com/IRC/Guidelines?action=show&redirect=IrcGuidelines14:05
galileo_exit14:06
=== galileo_ is now known as LyzardKing
zgrhey guys shows start in 48 min?14:10
Rbitchwhen the class is supposed to start?14:11
LyzardKing50 minutes14:11
LyzardKingmore or less14:11
Rbitchthank ya :)14:12
yuanfeiToo late for me in China...14:13
kai1exit14:14
devkorcvincea big classroom we have here hope i can see my seatmate lol [kablam coffee mode]...14:18
jrzabottda;date -u14:31
konordate -u14:31
konorda;date -u14:31
konor:)\14:31
dholbachkonor, jrzabott: open a terminal window, then type it in there14:32
jrzabottkkk14:32
jrzabotti've opened... bt te focus hasn't changed.14:32
jrzabottsometimes it happens here. LOL14:32
jrzabottsorry everybody.14:33
palladin35ynp man14:33
=== christian is now known as Guest4209
amigokaranHey, can anyone give an brief description of how this class will be conducted on IRC?14:51
tejaswidpcheck the wiki?14:52
kbmonkeyttps://wiki.ubuntu.com/UbuntuDeveloperWeek/JoiningIn14:52
dholbachamigokaran, I'll give a quick introduction when we start14:53
=== Marco is now known as Guest19139
amigokaranOk awesome that will help14:54
dholbachWELCOME EVERYBODY TO UBUNTU DEVELOPER WEEK!15:00
dholbachFirst of all a few introductory and organisational bits before we get started with out first session.15:01
Sherlock_21215:01
dholbachHere's how this whole event is going to work:15:01
dholbachin #ubuntu-classroom the presenter will hold the session, explain and demo everything15:01
dholbachin #ubuntu-classroom-chat we all can chat and ask questions15:01
dholbachso if you haven't joined #ubuntu-classroom-chat yet, please do so15:02
dholbachalso if you ask questions, please make sure you prefix them with QUESTION:15:02
dholbachQUESTION: What music do you like?15:03
dholbachetc. :)15:03
dholbachalso if you have any problems following the session, you can ask in #ubuntu-classroom-chat where we have lots of experience and helpful people who will sort you out :)15:04
dholbachAlright, here we go with Session 1!15:04
dholbachMy name is Daniel Holbach, I have been involved in Ubuntu since the second release and always loved the community, with a particular focus on development things.15:05
dholbachIn the next hour I'll give you a first introduction to Ubuntu development15:05
dholbachand in the following session, also an hour, I'll help you set up a development environment on your machine15:05
dholbachif you have any questions, please ask in #ubuntu-classroom-chat15:05
dholbachalso tell me if something was unclear or if I'm going too fast :)15:06
dholbachsomething I forgot earlier which is asked very often: yes, we will post the logs on https://wiki.ubuntu.com/UbuntuDeveloperWeek once the sessions are over, so if you can't make it to a session, you can still read it later on :)15:06
dholbach<bjhaid> dholbach: would training here be relevant for linux-mint?? since its built on ubuntu?15:07
dholbachbjhaid, yes, the vast majority of the content of the sessions will be applicable to all Debian and Ubuntu derivatives15:07
dholbachsome of the infrastructure bits will likely be different15:07
dholbachLet's get cracking. :-)15:08
=== nope_man is now known as i_can_bot_maybe_
dholbachUbuntu is made up of thousands of different components, written in many different programming languages.15:08
dholbachvery component - be it a software library, a tool or a graphical application - is available as a source package.15:08
dholbachSource packages in most cases consist of two parts: the actual source code and metadata. Metadata includes the dependencies of the package, copyright and licensing information, and instructions on how to build the package.15:08
dholbachOnce this source package is compiled, the build process provides binary packages, which are the .deb files users can install.15:08
=== vikram is now known as vikram360
dholbachThis means we never deal with binary or compiled code, this is "open source" software after all. :)15:09
dholbachEvery time a new version of an application is released, or when someone makes a change to the source code that goes into Ubuntu, the source package must be uploaded to Launchpad’s build machines to be compiled.15:09
dholbachThe resulting binary packages then are distributed to the archive and its mirrors in different countries. The URLs in /etc/apt/sources.list point to an archive or mirror.15:10
dholbachEvery day CD images are built for a selection of different Ubuntu flavours. Ubuntu Desktop, Ubuntu Server, Kubuntu and others specify a list of required packages that get on the CD. These CD images are then used for installation tests and provide the feedback for further release planning.15:10
=== ChanServ changed the topic of #ubuntu-classroom to: Welcome to the Ubuntu Classroom - https://wiki.ubuntu.com/Classroom || Support in #ubuntu || Upcoming Schedule: http://is.gd/8rtIi || Questions in #ubuntu-classroom-chat || Event: Ubuntu Developer Week - Current Session: Introduction to Ubuntu Development - Instructors: dholbach
dholbach<jrzabott> QUESTION: how important/useful is Python for Ubuntu development? It is a language that I decided to dedicate all my skills and learning.15:10
dholbachjrzabott, It is important and is used a lot. Still there are many other languages used, C, C++, Perl and others for example.15:11
dholbachAny more questions up until here?15:11
dholbachAlright, let's move on then - I'll talk a bit about release cycle now.15:12
dholbachUbuntu’s development is very much dependent on the current stage of the release cycle.15:12
dholbachWe release a new version of Ubuntu every six months, which is only possible because we have established strict freeze dates.15:12
dholbachWith every freeze date that is reached developers are expected to make fewer, less intrusive changes.15:12
dholbachIf you have a look at https://wiki.ubuntu.com/PrecisePangolin/ReleaseSchedule you can see the release schedule for the 12.04 (precise) cycle.15:12
dholbachFeature Freeze is the first big freeze date after the first half of the cycle has passed.15:13
dholbachWe are still roughly 2 weeks away from it.15:13
dholbachAt this stage features must be largely implemented. The rest of the cycle is supposed to be focused on fixing bugs.15:13
dholbachAfter that the user interface, then the documentation, the kernel, etc. are frozen, then the beta release is put out which receives a lot of testing.15:13
dholbachFrom the beta release onwards, only critical bugs get fixed and a release candidate release is made and if it does not contain any serious problems, it becomes the final release.15:13
ClassBoti_can_bot_maybe_ asked: when I install an application from the software center are the sources downloaded and then built or are they built and then downloaded?15:14
dholbachi_can_bot_maybe_, no, if you install a package in software-center, it's only the .deb (binary) packages installed15:14
dholbachthe source still is available from Launchpad and mirrors as well15:14
dholbachI'll cover in the second session how to get the source for packages15:15
ClassBotjrzabott asked: can we abandon C, with the Cpython use?15:15
dholbachjrzabott, I doubt it - I doubt the kernel developers (among others) would be happy to switch. ;-)15:15
ClassBotkbmonkey asked: For Debian-based distros, who don't rely on Launchpad, the source goes into the deb mirrors instead?15:15
dholbachkbmonkey, exactly - Debian for example uses ftp.<countrycode>.debian.org mirrors15:16
ClassBotkyoushuu asked: ​ Are translations affected by the Feature Freeze?15:16
dholbachkyoushuu, no - strings for translations are subject of release freezes a bit later15:16
dholbachluckily we'll have a session about internationalisation (i18n) later this week! :-)15:17
dholbach... with more juicy details15:17
ClassBotse4n_ asked: Why store binaries in .debs for all platforms when the source could be put in a .deb and compiled on the end users machine?15:17
dholbachse4n_, the problem is that you would have to 1) install all the source headers and development tools on all the machines in the world and 2) with some packaging taking several hours to build it's just not practicable15:18
ClassBotvikram360 asked: I was reading online that since ubuntu is supported largely by a corporation, developers are pressured into meeting deadlines i.e the dates are adhered to extremely strongly, and this sometimes leads to a somewhat shaky codebase, could someone please comment on this15:18
dholbachvikram360, that's not quite accurate :-)15:19
=== i_can_bot_maybe_ is now known as tejaswidp
dholbachvikram360, as I mentioned before, we have freeze dates and they are agreed on a long time in advance already15:19
dholbachso if you have a look at the Ubuntu wiki you will find preliminary freeze/release dates for the next few releases already15:19
dholbachalso it doesn't make a difference if you work for Canonical or not, these freeze dates are what counts15:20
dholbachif you have good enough reasons to have to get an exception the release team might give you one15:20
dholbachalso there's a release team meeting every single week15:20
dholbachso these things should not come "out of the blue" to you15:20
ClassBotashickur-noor asked: i18n, is this is a new method? I know 10n15:21
dholbachashickur-noor, i18n is just short for internationalisation15:21
ClassBotyak12 asked: ​ Why does ubuntu have such a short release schedule?15:21
dholbachyak12, personally I feel Ubuntu has proven in the last few years (with just one slipped release date), that 6 months work out quite well15:21
dholbachit's a good compromise between allowing time for new features, but also making sure that there's focus on getting a product out there15:22
dholbachalright, let's crack on :)15:22
dholbachThousands of source packages, billions of lines of code, hundreds of contributors require a lot of communication and planning to maintain high standards of quality.15:22
dholbachAt the beginning of each release cycle we have the Ubuntu Developer Summit where developers and contributors come together to plan the features of the next releases.15:22
dholbachEvery feature is discussed by its stakeholders and a specification is written that contains detailed information about its assumptions, implementation, the necessary changes in other places, how to test it and so on.15:22
dholbachThis is all done in an open and transparent fashion, so even if you can not attend the event in person, you can participate remotely and listen to a streamcast, chat with attendants and subscribe to changes of specifications, so you are always up to date.15:23
dholbachNot every single change can be discussed in a meeting though, particularly because Ubuntu relies on changes that are done in other projects.15:23
dholbachThat is why contributors to Ubuntu constantly stay in touch.15:23
dholbachMost teams or projects use dedicated mailing lists to avoid too much unrelated noise.15:23
dholbachFor more immediate coordination, developers and contributors use Internet Relay Chat (IRC). All discussions are open and public.15:23
ClassBotUbuntuFlo asked: ​ is there any chance to see ubuntu becoming a rolling-release-distribution – or at least a dedicated derivat15:24
dholbachUbuntuFlo, I have no idea how that's supposed to work - the 1 million dollar question is: how do you both do great feature development and give it good testing - also: you'll have to shove out terrabytes of updates to millions of users15:25
=== medberry is now known as med__
dholbachit sounds like an interesting theoretical experiment, but maybe I haven't read a practical proposal yet :)15:25
ClassBotkyoushuu asked: ​ How can we participate remotely to the Ubuntu Dev Summit?15:25
dholbachkyoushuu, http://uds.ubuntu.com/participate/remote/ (there's IRC rooms, voice feeds, mail updates, and the like)15:26
=== med__ is now known as med_
dholbachAnother important tool regarding communication is bug reports. Whenever a defect is found in a package or piece of infrastructure, a bug report is filed in Launchpad.15:26
dholbachAll information is collected in that report and its importance, status and assignee updated when necessary. This makes it an effective tool to stay on top of bugs in a package or project and organise the workload.15:27
dholbachAnd we will have lots of sessions this week about how to deal with bug reports and how to fix them. It's going to be awesome!15:27
dholbachMost of the software available through Ubuntu is not written by Ubuntu developers themselves. Most of it is written by developers of other Open Source projects and then integrated into Ubuntu.15:27
dholbachThese projects are called “Upstreams”, because their source code flows into Ubuntu, where we “just” integrate it.15:28
dholbachThe relationship to Upstreams is critically important to Ubuntu. It is not just code that Ubuntu gets from Upstreams, but it is also that Upstreams get users, bug reports and patches from Ubuntu (and other distributions).15:28
dholbachThe most important Upstream for Ubuntu is Debian. Debian is the distribution that Ubuntu is based on and many of the design decisions regarding the packaging infrastructure are made there.15:28
dholbachTraditionally, Debian has always had dedicated maintainers for every single package or dedicated maintenance teams. In Ubuntu there are teams that have an interest in a subset of packages too, and naturally every developer has a special area of expertise, but participation (and upload rights) generally is open to everyone who demonstrates ability and willingness.15:28
dholbachThe great thing is: we will also have sessions about how to work with and work in Debian this week. So you'll be covered there as well! :)15:29
ClassBotashickur-noor asked: Is there any chance that Ubuntu become Commercial like RHL?15:30
dholbachashickur-noor, There is commercial support for Ubuntu, yes. But if ask if Ubuntu will one day cost money so you can use it, no.15:30
ClassBotpawel_st asked: ​ Since you have to support ~3 past releases (and not only the current one), how do you keep track of what needs to be updated & where (and who is doing this?). This seems like a HUGE task. I suppose you have to track CVEs, debian bug database etc..15:30
dholbachwithout taking too much content away from other sessions: the great thing about launchpad is: it can track bugs in multiple places15:31
dholbachso let's say we just find out that an application has been broken in a seldom used use cases since the last 3 releases and that it's also broken in Debian and upstream15:31
dholbachLaunchpad can track cases like this easily and also will give us updates about bug reports in Debian (or other distros) and upstream :)15:32
dholbachbut I agree with you: it's quite a bit of work to maintain stable releases15:32
ClassBot_rahmat_ asked: i'm new in ubuntu development where should I start?15:32
dholbach_rahmat_, I hope that by the end of Ubuntu Developer Week you should have a good idea of what you can do, how it works and how you can help out15:32
dholbachI'll also share some more links by the end of my session :)15:32
ClassBottejaswidp asked: how different is debian sid from ubuntu?15:33
dholbacha great question :)15:33
dholbachif you go back to the release cycle overview I gave earlier15:34
dholbachup until Debian Import Freeze we automatically sync code from unstable (given that we are working on an LTS release now, we sync from testing instead)15:34
dholbachthis is done as a measure to let the code solidify15:34
dholbachalso in other parts you will notice that Ubuntu is "ahead of Debian" in terms of newer versions15:34
dholbachit always depends on the development focuses of the two, when they plan to release, what the release goals are, etc15:35
dholbachso I can't give you concrete numbers, but I feel we're doing a much much better job at staying in sync15:35
ClassBotAj2012 asked: For upstream project, how bug reports are reported to original authors. Who fixes them?15:35
dholbachAj2012, bug reports are forwarded to upstream projects manually, after we collected all the necessary information15:36
dholbachsometimes you will find that Ubuntu contributors forward patches to upstream, sometimes you will see that they are fixed upstream first15:36
ClassBotashickur-noor asked: I want to be a developer, from where I can start?15:36
dholbachashickur-noor, you're exactly right here - more links later15:36
ClassBotraywang asked: could we have a pdf document like to track all of these, so that we can review and learn from it.15:36
dholbachraywang, yes, I'll give out some links later on15:36
ClassBotjincreator asked: If Debian is one upstream of Ubuntu, can some packages in Ubuntu be upstream of Debian?15:37
dholbachjincreator, yes, this has happened a couple of times already - something originated in Ubuntu, then was forwarded to Debian and got maintained there or Ubuntu stayed upstream15:38
ClassBotvikram360 asked: why did ubuntu choose to go with launchpad and bazaar rather than something like bugzilla and git/mercurial?15:38
dholbachvikram360, Launchpad gives us many many benefits (like the automatic bug tracking in other bugzillas), a close integration with our build services, etc15:38
dholbachI hope by the end of my 2 sessions it will be a bit clearer what our infrastructure can do for you15:38
ClassBotburli_ asked: ​ what is the preferred language/toolkit, especially if I want to develop lenses or apps for Ubuntu TV/Tablet/Phone? I guess, Python is not the best choice for ARM devices?15:39
dholbachburli_, I would suggest you wait until the session about Unity Lenses later on to get a specific answer for the question :)15:39
dholbachbut yes, python is absolutely acceptable, even on ARM devices15:39
ClassBotjincreator asked: Is it possible to get new one from upstream to even "released" Ubuntu? I only see new version of Firefox is landing... If then, what kind of process is needed?15:40
dholbachjincreator, yes, it's possible - there's either the "stable release update" process or the "backport" process15:40
dholbachyou should find explanation for both on the Ubuntu wiki15:40
ClassBotValentin asked: ​ Will something like this be realistic someday? http://nrutledge.blogspot.com/p/ubuntu-laptop-concept.html15:40
dholbachI'm sorry - I don't have the time to read the blog post now - I still have a bunch of things to go through15:41
dholbachmaybe I can suggest #ubuntu-design to discuss the question in the meantime15:41
ClassBotAj2012 asked: I have small app. I want to learn packaging to make it available via launchpad. Could you please share beginners guide to learn packaging15:41
dholbachAj2012, yes, I'll share some links about this topic after the session :)15:41
ClassBotNiagr asked: Why can't ubuntu receive feature updates?15:41
dholbachNiagr, I think I alluded to this earlier already: you have to strike a balance between stability and testing vs. new features - supporting stable releases is hard work when it comes to testing, code review and other things -- it's very expensive to hack on multiple releases at the same time15:42
dholbachalright15:42
dholbachlet's talk a bit about how we would go about getting changes into Ubuntu15:43
dholbachGetting a change into Ubuntu as a new contributor is not as daunting as it seems and can be a very rewarding experience. It is not only about learning something new and exciting, but also about sharing the solution and solving a problem for millions of users out there.15:43
dholbachOpen Source Development happens in a distributed world with different goals and different areas of focus. For example there might be the case that a particular Upstream might be interested in working on a new big feature while Ubuntu, because of the tight release schedule, might be interested in shipping a solid version with just an additional bug fix.15:43
dholbachThat is why we make use of “Distributed Development”, where code is being worked on in various branches that are merged with each other after code reviews and sufficient discussion.15:43
dholbachThat's why for example Ubuntu might decide to ship version 1.0 of a particular package, while upstream is working on 2.0 - and just to fix a couple of bugs ship additional patches from the 2.0 works.15:44
dholbachyou can see how this quickly gets complicated with thousands of packages, thousands of people interacting and each project maintaining multiple releases15:44
dholbachThe goal always is: finding a solution which everybody benefits from, but that can be hard.15:45
dholbachLet's say you wanted to get a fix into Ubuntu - what would you do?15:45
dholbachTo fix a bug in Ubuntu, you would first get the source code for the package, then work on the fix, document it so it is easy to understand for other developers and users, then build the package to test it.15:45
dholbachAfter you have tested it, you can easily propose the change to be included in the current Ubuntu development release. A developer with upload rights will review it for you and then get it integrated into Ubuntu.15:46
dholbachWhen trying to find a solution it is usually a good idea to check with Upstream and see if the problem (or a possible solution) is known already and, if not, do your best to make the solution a concerted effort.15:46
dholbachAdditional steps might involve getting the change backported to an older, still supported version of Ubuntu and forwarding it to Upstream.15:46
dholbachAny questions about this in particular? :)15:46
ClassBotkbmonkey asked: so if I patch a UI bug in say vlc, it would reach Ubuntu in a timely fashion. How can I propose this patch be pushed downstream before that time?15:47
dholbachkbmonkey, the short answer is: get the code of the package in Ubuntu, apply the patch, push it to Launchpad, propose it for merge into Ubuntu15:47
dholbachwe'll have several sessions this week just about this topic, so you can easily find out the specific commands15:48
dholbachbut yes, in general it's totally possible to get the fix into Ubuntu before an upstream release is made15:48
dholbachwe have a patch pilots for every day who go and review code contributions15:48
ClassBotjrzabott asked: May we have some idea of numbers about the development... For example in the release of 11.04 with unity, i've tried since alpha, and had a lot of bugs... and how many people officially act writing and correct this kind of 'modules' from ubuntu? I'm not sure if i made myself clear.15:48
dholbachjrzabott, there's hundreds of people directly uploading and proposing changes for Ubuntu15:49
dholbachbut there's even more people who work on modules (other open source projects and their software authors)15:49
dholbachso it's not quite easy to give a good number which explains everything :)15:50
ClassBots9iper1 asked: bilal is here..can you tell me the merging process when the bug got fixed and than we have to merge the branches is there any guide in ubuntu  fro that or anything?15:50
ClassBotThere are 10 minutes remaining in the current session.15:50
dholbachs9iper1, hey Bilal - yes, I'll share the links later on - basically you want to: bzr branch <branch>; <edit and fix>; bzr commit -m <message>; bzr push <location>; bzr lp-open; <click on "propose for merging">15:51
dholbachbut as I said: we'll have more sessions about this15:51
dholbachAND I'll share links later on :)15:51
ClassBotjacopoL asked: How can I decide when it is better to propose a patch upstream and when to propose it to Ubuntu?15:51
dholbachjacopoL, great question!15:51
dholbachfor example if you have a typo fix somewhere - as it's not something critical, you can just forward the fix to the upstream authors and trust that Ubuntu will get the fix with the next release "for free"15:52
dholbachif we have a crash in an important application just a few weeks before release: get it into Ubuntu (and then forward the fix upstream)15:52
dholbachseverity of the problem and time in the release process are guiding factors I would say15:53
ClassBotfecub_ asked: where can i do all this things, in the launchpad? a developer with upload rights where i can find them?15:53
dholbachfecub_, if you use the method I described earlier (push change to Launchpad, propose for merging), developers with upload rights will be notified and the fix will end up in a review queue15:53
dholbachbut as I said: more links later and we'll have separate sessions about Ubuntu Distributed Development (UDD) and bug fixing, bug fixing, bug fixing :)15:54
ClassBot_rahmat_ asked: is this session logged? where is the log located? thanks15:54
dholbach_rahmat_, yes - the logs will be put up later on at https://wiki.ubuntu.com/UbuntuDeveloperWeek15:54
dholbachbut also you can find them on irclogs.ubuntu.com15:54
dholbachalright, to conclude this first session, here's what it takes to get involved with Ubuntu development15:55
dholbachThe most important requirements for success in Ubuntu development are: having a knack for “making things work again,” not being afraid to read documentation and ask questions, being a team player and enjoying some detective work.15:55
ClassBotThere are 5 minutes remaining in the current session.15:55
dholbachYou don't need to be a C/Perl/Java/C++/Python hero. If you have some of the qualities above, you're right here. :-)15:55
dholbachGood places to ask your questions are ubuntu-motu@lists.ubuntu.com and #ubuntu-motu on irc.freenode.net. You will easily find a lot of new friends and people with the same passion that you have: making the world a better place by making better Open Source software.15:55
ClassBottejaswidp asked: Why was such a drastic change made to the ui by bringing in unity? (I don't know if)15:56
dholbachtejaswidp, Unity suits a lot of use-cases on a variety of devices.15:56
dholbachand I don't feel this session is the best place to debate about it15:56
dholbachinstead I would propose we take 3 minutes break and get back fresh for session 2 :)15:57
dholbachthanks everyone - see you in 3 minutes with fresh tea, water or whatever else you might prefer. :)15: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: Getting set up for Ubuntu development - Instructors: dholbach
ClassBotLogs for this session will be available at http://irclogs.ubuntu.com/2012/01/31/%23ubuntu-classroom.html following the conclusion of the session.16:00
dholbachalright my friends16:01
dholbachwelcome back to session 2 at UDW16:01
dholbachfor those of you who just joined: please make sure you also join #ubuntu-classroom-chat so you can ask questions there16:01
dholbachalso make sure you prefix them with QUESTIONS:, ie:16:01
dholbachQUESTION: What kind of music do you like?16:01
dholbachThis session will be about getting your development environment set up.16:02
dholbachbut let's first clear out our queue of questions from the last session16:02
dholbachok, it seems ClassBot forgot the questions - let me get them from the backlog - one sec16:02
dholbach<UbuntuFlo> QUESTION: ​ dholbach: what version of ubuntu are you working with (private/job)? are you always using the actual development-version?16:03
dholbachUbuntuFlo, I usually upgrade to the development version early on.16:03
=== purvesh is now known as purvesh88
dholbachIncidentally we have a session this week about how you can easily install the dev version without having to break your current system - so stay tuned for that :)16:03
dholbach<Aj2012> QUESTION: Ubuntu ships with few default set of libraries. Where can I find the recommendation about them? I feel that if my application rely more those, then ultimately it would result in fewer dependency and less more packages to download while installing my app.16:03
dholbachAj2012, we will have a session later today with an Ubuntu Technology overview which should answer a lot of this question already16:04
dholbachadditionally I could suggest to check out developer.ubuntu.com with documentation about libraries you can most easily use16:04
dholbach<alco> QUESTION: what's the best way of requesting a mentor? I tried motu-mentoring-reception@reponses.net but didn't get a reply16:05
dholbachalco, unfortunately our mentoring team is defunct at the moment - we got more requests in than we could handle16:05
dholbachthat's the bad news16:05
dholbachthe good news is: we have better documentation than ever (links later on)16:05
dholbachAND:16:05
dholbachyou can join #ubuntu-motu where we have lots of very helpful people who can get you started16:05
dholbach<kanliot> QUESTION: anything wrong with using netbeans?16:06
dholbachkanliot, nothing wrong at all - the Java bits might require some specific packaging and the user to install Java libraries afterwards (if you want to package your Java application)16:06
dholbachbut if Java is what you are comfortable with: use it :)16:06
dholbachOk, I hope I got all questions in the queue, so let's get cracking getting our development environment set up.16:07
=== abcd_ is now known as Guest26487
ClassBotCeno asked: Where can I read a log of the 3 o'clock session?16:08
dholbachCeno, we will put up the logs later on at https://wiki.ubuntu.com/UbuntuDeveloperWeek16:08
dholbachif you need them earlier, check out irclogs.ubuntu.com16:08
dholbachThere are a number of things you need to do to get started developing for Ubuntu. This article is designed to get your computer set up so that you can start working with packages, and upload your packages to Ubuntu’s hosting platform, Launchpad.16:08
dholbachHere’s what we’ll cover:16:08
dholbach - Installing packaging-related software. This includes:16:08
dholbach  - Ubuntu-specific packaging utilities16:09
dholbach  - Encryption software so your work can be verified as being done by you16:09
dholbach  - Additional encryption software so you can securely transfer files16:09
dholbach - Creating and configuring your account on Launchpad16:09
dholbach - Setting up your development environment to help you do local builds of packages, interact with other developers, and propose your changes on Launchpad.16:09
dholbachSo as I mentioned earlier: it's advisable to run the current development release if that's what you are working on16:09
dholbachbut if you don't have it running right now: no big deal16:09
dholbachyou can easily just retrace your steps later on16:10
dholbachand as I said: there's a session about running the development release later this week16:10
dholbachThere are a number of tools that will make your life as an Ubuntu developer much easier.16:10
dholbachIf you run 11.10 or 12.04, run this command:16:11
dholbach  sudo apt-get install packaging-dev16:11
dholbachIf you run an older release, run this command instead:16:11
dholbach  sudo apt-get install gnupg pbuilder ubuntu-dev-tools bzr-builddeb apt-file16:11
dholbachThis will obviously take some time, but I'll just keep on talking :)16:11
dholbachThis command will install the following software:16:11
dholbach - gnupg – GNU Privacy Guard contains tools you will need to create a cryptographic key with which you will sign files you want to upload to Launchpad.16:12
dholbach - pbuilder – a tool to do a reproducible builds of a package in a clean and isolated environment.16:12
dholbach - ubuntu-dev-tools (and devscripts, a direct dependency) – a collection of tools that make many packaging tasks easier.16:12
dholbach - bzr-builddeb (and bzr, a dependency) – distributed version control with Bazaar, a new way of working with packages for Ubuntu that will make it easy for many developers to collaborate and work on the same code while keeping it trivial to merge each others work.16:12
dholbach - apt-file provides an easy way to find the binary package that contains a given file.16:12
ClassBotgoogle_ asked: can we use ubuntu in virtual box for ubuntu development?16:12
dholbachgoogle_, yes, definitely - it's one of the "safe" ways to run the development release16:13
dholbachTomorrow 18:00 UTC will be a session called "Running the development release"16:13
ClassBotlukestuts asked: Can you recommend a good introduction to packaging and setting up your own PPA?16:13
dholbachlukestuts, yes - I'll share some links at the end of the session16:13
ClassBotKvrmurthy asked: What topics are covered till now?16:13
dholbachKvrmurthy, in the session I did before I covered the basics of Ubuntu development (an overview over all the moving parts) and now we'll set up our development environment16:14
ClassBotdnewkirk asked: While we need to be testing packages and fixes in the actual release, how valuable is this before, say, beta? The toolchain changes of course, but it seems problematic as the alphas have a lot of turmoil especially for non-LTS releases...16:14
dholbachdnewkirk, testing all the time is super important - of course I wouldn't ask my dad, mom, sister or brother to do it - they have other things to do and want a stable system16:15
dholbachbut for those of us who enjoy Ubuntu and want to spare some time contributing to it, it makes sense to go and test as early as possible :)16:15
dholbach... in a safe way, like a VM, as I mentioned earlier16:15
ClassBotkbmonkey asked: I run 11.04, but enabled backports and installed packaging-dev. This will do just the same?16:15
dholbachkbmonkey, if there's a package called packaging-dev and  you can install it, you should be all set16:16
ClassBotfantasti1001 asked: can anyone who doesn't use ubuntu be ubuntu developer?16:16
dholbachfantasti1001, it's a bit tough to develop Ubuntu if you don't use it - I'd say that if you use a VM to develop, you are an Ubuntu user though16:16
dholbachalright, let's crack on :)16:16
dholbach= Create your GPG key =16:17
dholbachIf you have a GPG key already created, skip these instructions, you just need one.16:17
dholbachGPG stands for GNU Privacy Guard and it implements the OpenPGP standard which allows you to sign and encrypt messages and files. This is useful for a number of purposes. In our case it is important that you can sign files with your key so they can be identified as something that you worked on. If you upload a source package to Launchpad, it will only accept the package if it can absolutely determine who uploaded the package.16:17
dholbachTo generate a new GPG key, run:16:17
dholbach  gpg --gen-key16:17
dholbachGPG will first ask you which kind of key you want to generate. Choosing the default (RSA and DSA) is fine. Next it will ask you about the keysize. The default (currently 2048) is fine, but 4096 is more secure.16:18
dholbachAfterward, it will ask you if you want it to expire the key at some stage. It is safe to say “0”, which means the key will never expire. The last questions will be about your name and email address.16:18
dholbachJust pick the ones you are going to use for Ubuntu development here, you can add additional email addresses later on. Adding a comment is not necessary. Then you will have to set a passphrase, choose a safe one (a passphrase is just a password which is allowed to include spaces).16:18
dholbachNow GPG will create a key for you, which can take a little bit of time; it needs random bytes, so if you give the system some work to do it will be just fine. Move the cursor around, type some paragraphs of random text, load some web page.16:18
dholbach... or just continue listening to this session - just leave the terminal sitting there and doing its thing. :)16:19
dholbach= Create your SSH key =16:19
dholbachAgain: if you have a SSH key already generated, skip these instructions. :)16:19
dholbachSSH stands for Secure Shell, and it is a protocol that allows you to exchange data in a secure way over a network. It is common to use SSH to access and open a shell on another computer, and to use it to securely transfer files. For our purposes, we will mainly be using SSH to securely upload source packages to Launchpad.16:19
dholbachIf gpg is still sitting there creating your GPG key, just open another terminal window or tab.16:20
=== lavluda_ is now known as lavluda
dholbachTo generate an SSH key, enter:16:20
dholbach  ssh-keygen -t rsa16:20
dholbachThe default file name usually makes sense, so you can just leave it as it is. For security purposes, it is recommended that you use a passphrase.16:20
dholbachAny questions so far?16:21
ClassBotkanliot asked: WHY DOES ssh need a key?  what does it protect?16:22
=== yofel_ is now known as yofel
=== med__ is now known as Guest30041
dholbachkanliot, to establish a safe connection (like SSH does), you need a public and private key to do proper encryption16:22
dholbachssh is for example used if you push branches to Launchpad16:22
dholbachAlright... everything clear so far? All going according to plan?16:23
dholbachIf not, hop into #ubuntu-classroom-chat and ask your question there. :)16:23
ClassBotjacopoL asked: Are there any requirements about using your real name instead of a nickname when uploading to Launchpad?16:23
dholbachjacopoL, I believe there's no strict requirement for using your real name, but it's what very close 100% in Ubuntu development do16:24
ClassBotgaurav__ asked: Can I change my GPG key in future if I want to?16:24
dholbachgaurav__, yes, you can add email address IDs to it, you can revoke it, add a new one, etc16:24
dholbachah, coming back to the real name question:16:25
dholbachI think it's usually good and natural to publish good work you do under your own name - for example can it be a great referral when looking for jobs, etc16:25
dholbachMoving on...16:26
dholbach= Set up pbuilder =16:26
dholbachpbuilder allows you to build packages locally on your machine. It serves a couple of purposes:16:26
dholbach - The build will be done in a minimal and clean environment. This helps you make sure your builds succeed in a reproducible way, but without modifying your local system16:26
dholbach - There is no need to install all necessary build dependencies locally16:26
dholbach - You can set up multiple instances for various Ubuntu and Debian releases16:26
dholbachSetting pbuilder up is very easy, just run:16:26
dholbach  pbuilder-dist <release> create16:26
dholbachin our case:16:26
dholbach  pbuilder-dist precise create16:27
dholbachThis will take a while as it will download all the necessary packages for a “minimal installation”. These will be cached though.16:27
dholbachso again: if you have pbuilder already installed, skip this part - also: if it takes longer, just leave the terminal open and the tool doings its thing16:27
dholbachThe great thing is: we are going to have a session about pbuilder later this week: Thu 2nd Feb - 16:30 UTC - "Building locally with pbuilder"16:28
ClassBotarcimboldo asked: is it possible to use pbuilder on a debian to compile ubuntu packages?16:28
dholbacharcimboldo, yes and vice versa16:28
dholbachLet's go back to16:29
dholbach= Your GPG key =16:29
dholbachOnce the command is done, you will get a message similar to this one:16:30
dholbachpub   4096R/43CDE61D 2010-12-0616:30
dholbach      Key fingerprint = 5C28 0144 FB08 91C0 2CF3  37AC 6F0B F90F 43CD E61D16:30
dholbachuid                  Daniel Holbach <dh@mailempfang.de>16:30
dholbachsub   4096R/51FBE68C 2010-12-0616:30
dholbachIn the case above 43CDE61D is the key ID.16:30
dholbachNext, you need to upload the public part of your key to a keyserver so the world can identify messages and files as yours. To do so, enter:16:30
dholbach  gpg --send-keys <KEY ID>16:30
dholbachIf you get an error message about no specified keyserver, do this instead:16:31
dholbach  gpg --send-keys --keyserver keyserver.ubuntu.com <KEY ID>16:31
dholbachThis will send your key to one keyserver, but a network of keyservers will automatically sync the key between themselves. Once this syncing is complete, your signed public key will be ready to verify your contributions around the world.16:31
ClassBotlaza36 asked: ​ Are there gpg keys that are too old? I have one that was certified, but it's from 199916:31
dholbachlaza36, the encryption used 1999 might be a bit weak by now - I would suggest some reading on the internets16:32
ClassBotCeno asked: can one person registered in launchpad have multiple GPG keys associated with him?16:33
dholbachCeno, yes :)16:33
dholbachwhich leads us to our next topic :)16:33
dholbach= Get set up to work with Launchpad =16:34
dholbachWith a basic local configuration in place, your next step will be to configure your system to work with Launchpad. Here's what we will do:16:34
dholbach - Find out what Launchpad is and create a Launchpad account16:34
dholbach - Upload your GPG and SSH keys to Launchpad16:34
dholbach - Configure Bazaar to work with Launchpad16:34
dholbach - Configure Bash to work with Bazaar16:34
dholbachLaunchpad is the central piece of infrastructure we use in Ubuntu. It not only stores our packages and our code, but also things like translations, bug reports, and information about the people who work on Ubuntu and their team memberships. You will also use Launchpad to publish your proposed fixes, and get other Ubuntu developers to review and sponsor them.16:35
dholbach... where "sponsor" means: upload packages in your stead, until you have upload rights yourself :)16:35
dholbachYou will need to register with Launchpad and provide a minimal amount of information. This will allow you to download and upload code, submit bug reports, and more.16:35
dholbachBesides hosting Ubuntu, Launchpad can host any Free Software project.16:35
ClassBotvikram360 asked: how do i get past the postfix configuration window when installing pbuilder, neither the keyboard not the mouse seem to be working for me.16:36
dholbachvikram360, hum, I didn't have that happening to me - can you just press Enter to continue with the installation - can anyone help vikram360 in #ubuntu-classroom-chat?16:36
ClassBotburli_13 asked: ​ how I should handle keys in general? I have several computers an I make a fresh installation every release. Should I create new keys for each computer? Or can I use one key everywhere?16:36
=== videl is now known as V1del
dholbachburli_13, GPG key I copy over (just copy ~/.gnupg/) for SSH I create ssh keys for every machine16:37
dholbachLaunchpad can easily deal with multiple SSH and GPG keys though16:37
ClassBotnava asked: what is best programming language for writting app for ubuntu ? (which do you suggest ?)16:37
dholbachnava, I personally use Python for almost everything16:37
dholbachbut it depends - if you want something dealing very closely with hardware, you might want to use C16:38
dholbachfor web apps, you might want to use PHP (Python is possible there too)16:38
dholbachthere's many options16:38
dholbachdevelopers.ubuntu.com might help also :)16:38
ClassBotnava asked: i hear canonical is writing a sdk for ubuntu tablet,tv, phone and also desktop is it true ? if yes what is ubuntu sdk language ?16:38
dholbachnava, you know much more than I do :)16:38
dholbachI don't know what's in the cards - the only thing I do now, is that developer.ubuntu.com is a beautiful site with lots of good docs about writing apps for Ubuntu :)16:39
dholbachand it's up and running NOW :)16:39
ClassBotalco asked: which is the most appropriate Python version for Ubuntu devel today? 2.7? 3.x?16:40
dholbachalco, 3.x and 3.7 are both installed on a default system, with 2.7 still being used in lots of places, the future is 3.x though16:40
dholbachalright, let's crack on :)16:40
dholbachIf you haven't set up an Launchpad account yet, go to https://launchpad.net/+login16:41
dholbachLaunchpad’s registration process will ask you to choose a display name. It is encouraged for you to use your real name here so that your Ubuntu developer colleagues will be able to get to know you better.16:41
dholbachWhen you register a new account, Launchpad will send you an email with a link you need to open in your browser in order to verify your email address. If you don’t receive it, check in your spam folder.16:41
dholbachI doubt we have the time to go through all the steps now, but here's where you can upload your GPG and SSH keys once you have your account set up:16:41
dholbachhttps://launchpad.net/~/+editpgpkeys16:42
dholbachhttps://launchpad.net/~/+editsshkeys16:42
dholbach(it's all rather self-explanatory and will just take a few minutes all in all)16:42
dholbachBazaar is the tool we use to store code changes in a logical way, to exchange proposed changes and merge them, even if development is done concurrently. It is used for the new Ubuntu Distributed Development method of working with Ubuntu packages.16:42
dholbachTo tell Bazaar who you are, simply run:16:42
dholbach  bzr whoami "Bob Dobbs <subgenius@example.com>"16:42
dholbach  bzr launchpad-login subgenius16:43
dholbachwhoami will tell Bazaar which name and email address it should use for your commit messages. With launchpad-login you set your Launchpad ID. This way code that you publish in Launchpad will be associated with you.16:43
dholbachNote: If you can not remember the ID, go to https://launchpad.net/~ and see where it redirects you. The part after the “~” in the URL is your Launchpad ID.)16:43
ClassBotvrubium asked: how can i guarante that an app for ubuntu is compatible wiht debian?16:43
dholbachvrubium, if you have written the app already, you can set up a debian virtual machine and test it in there16:44
dholbachif you plan to write it, it might make sense to check that all the libraries and modules you use are in Debian as well16:44
dholbachNow let's go and configure our shell16:45
dholbachSimilar to Bazaar, the Debian/Ubuntu packaging tools need to learn about you as well. Simply open your ~/.bashrc in a text editor and add something like this to the bottom of it:16:45
dholbachexport DEBFULLNAME="Bob Dobbs"16:45
dholbachexport DEBEMAIL="subgenius@example.com"16:45
dholbachNow save the file and either restart your terminal or run:16:45
dholbach  source ~/.bashrc16:45
dholbach(If you do not use the default shell, which is bash, please edit the configuration file for that shell accordingly.)16:45
dholbachIf all the steps above succeeded, you're done and you're up and running.16:46
dholbach:-)16:46
dholbachAny questions up until now?16:47
ClassBotKvrmurthy asked: in bzr whoam i @example means "@launchpad" or my email "@gmail"?16:48
dholbachClassBot, the email address you want to use for Ubuntu development16:48
ClassBotjrzabott asked: Do you have a tutorial in somewhere in the web, to configure the softwares, the enviromente, launchpad bazaar and etc, and a tutorial, right?16:48
dholbachyes, finally: links to docs!16:49
dholbachthere's one link you need: http://developer.ubuntu.com/packaging/16:49
dholbachalso if you want to stay on top of what's going on in the Ubuntu development world, follow:16:49
dholbachhttp://twitter.com/ubuntudev http://identi.ca/ubuntudev http://facebook.com/ubuntudev http://gplus.to/ubuntudev16:49
dholbach(one of them should be enough ;-))16:50
ClassBotkanliot asked: is there a specific ubuntu wiki page for this lecture?16:50
dholbachkanliot, the link above should get you all set16:50
ClassBotCeno asked: bazaar is version control , similar do git right? Imagining we already have a software project using git what would be the best approach? ditch git and use bazaar instead? put our project in github and treat it as an upstream project?16:50
ClassBotThere are 10 minutes remaining in the current session.16:50
dholbachCeno, yes, bazaar is a version control system like git and many others - one of the great advantages of it (and I'm talking here as a almost 100% user of Bazaar, so take it with a grain of salt): its ease of use and its tight integration with Launchpad16:51
dholbachif you're happy with what you're using right now for your software development, keep on using it - there's no obligation to switch16:52
dholbachbut try it out and see for yourself - I never felt like I was missing anything :-)16:52
dholbachIn addition to the links above, I would like to mention #ubuntu-motu and ubuntu-motu@lists.ubuntu.com again16:52
dholbachthese are places where you can very easily find helpful and clever people and after a while: good friends16:53
dholbachdon't hesitate to ask your questions16:53
dholbachAny more questions before I turn the mic over to mhall119? :)16:53
ClassBotAtlantic777 asked: what about building .deb packages if we don't use debian-like distro? Should we just install an Ubuntu-dev into VM and make the package there?16:54
dholbachAtlantic777, a virtual machine is probably the easiest approach, a chroot might work for mere package building too16:55
ClassBotlaza36 asked: ​ How can/is there some way/need that I test my SSH and gpg key that I just imported into launchpad?16:55
ClassBotThere are 5 minutes remaining in the current session.16:55
dholbachlaza36, ssh <launchpad id>@bazaar.launchpad.net16:55
ClassBotKvrmurthy asked: export DEBFULLNAME="Bob Dobbs"16:56
dholbachKvrmurthy, hum16:56
dholbachit was part of the commands supposed to be added to the bottom of your ~/.bashrc file16:56
ClassBotCeno asked: this session has covered how to set up the environment. will there be a session explaining how to make a source package from our code and then send it to launchpad?16:56
dholbachCeno, yes, there'll be Ubuntu Distributed Development tomorrow at 19:00 UTC16:57
dholbachthere will also be many session about fixing bugs in Ubuntu this week, where it will also be used16:57
ClassBotjincreator asked: If I submit bug, request merge, ... and no answers from everyone for long time, what can I do?16:57
dholbachjincreator, join in #ubuntu-motu and ask16:57
ClassBotKvrmurthy asked: export DEBFULLNAME="Bob Dobbs" export DEBEMAIL="subgenius@example.com" is this part of installation in ubuntu?  or answer to somebody's question?16:58
dholbachKvrmurthy, ah yes - it's supposed to go at the bottom of your ~/.bashrc file16:58
dholbachalright my friends16:58
dholbachyou all are awesome16:58
dholbachthanks a lot for joining Ubuntu Developer Week16:58
dholbachBookmark http://developer.ubuntu.com/packaging/ - follow @ubuntudev - join #ubuntu-motu - let's help making Ubuntu better and the world a better place.16:59
dholbachNext up is Michael "mhall119" Hall who will give you the "Ubuntu Technology overview".16:59
mhall119hi everybody!17:00
mhall119so this is going to be a short session, only 30 minutes17: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: Ubuntu Technology overview - Instructors: mhall119
ClassBotLogs for this session will be available at http://irclogs.ubuntu.com/2012/01/31/%23ubuntu-classroom.html following the conclusion of the session.17:00
mhall119Most of what I'll be talking about here will be covered in more detail in other sessions17:00
mhall119so Ubuntu as a development platform provide a number of unique features that, as an application developer, you will probably want to work with17:01
mhall119I'm sure you all know Unity, the default desktop shell since Ubuntu 11.0417:02
mhall119but Unity is more than just a desktop, it's also a development platform that your apps can integrate with17:02
mhall119The launcher will use normal .desktop files, but you can also add what are called "QuickLists", a set of options for your application that are made available through the Unity interface17:03
mhall119your app doesn't even nee to be running17:03
mhall119for example, Thunderbird has QuickList items for composing a new email, or opening the address book17:04
mhall119in the Dash we have Lenses which let users quickly find content, both on their computer and off the internet17:05
mhall119we ship a set of default lenses, but it's easy to add your own, or even provide an additional "scope" to feed content from your application into any of the existing lenses17:06
mhall119there are currently over 50 lenses and scopes being developed for Unity17:06
mhall119Like QuickLists, your lenses and scopes will be available to users even when your application isn't running17:07
mhall119it's all integrated into the desktop17:07
mhall119in the top panel of Unity we have application indicators17:07
mhall119Indicators provide a more useful and user-friendly interface to application that are running, but may not have an active window17:08
mhall119they also let us group similar functionality and information17:08
mhall119for example, all your message notifications are available in the messaging indicator17:09
mhall119and you can control your speaker volume and music playback from the sound indicator17:09
mhall119all of these provide APIs that your application can use17:09
ClassBotpawel_st asked: ​ If I'm not mistaken, the current lens architecture & API assume all lenses are daemons. This has implications when more and more lenses are added to the system. What was the rationale for this architecture? Is there an alternate approach?17:10
mhall119so the rationale for keeping them separate is that we don't want a problem in one of them to crash everything else17:10
mhall119right now if a lens or scope crashes, everything else keeps working, and Unity will reload the daemon process for that one lens and try it again17:11
mhall119join #ubuntu-unity if you want to discuss more technical details about the implementation17:11
ClassBotsatanselbow asked: Is this section about developing for Ubuntu or Unity?17:12
mhall119this session is giving an overview of Ubuntu's technologies (of which Unity is a big one), that you are likely to encounter during the rest of the week17:12
ClassBotjincreator asked: Why indicator-applet need whitelist? It's really hard for people to add their applications at indicator.17:12
mhall119we want to move everything to using application indicators, but some apps haven't yet upgraded and are still using the gnome systray icons17:13
mhall119for those that need a systray icon, you can whitelist them so they are displayed in Unity17:14
mhall119!q17:14
ClassBotlaza36 asked: ​ What's an example for a scope that gets installed as a default?17:14
mhall119the default lenses are for Applications, Files and Music17:14
mhall119the Music lens will show both local music, and things available for purchase through the U1 music store17:15
mhall119there are also scopes written by community members that will feed music options from services like Spotify into the Music lens17:15
mhall119One of the main advantages of lenses is that they allow other people to write scopes to feed results into them17:16
ClassBotKvrmurthy asked: What are lens and scopes?17:16
mhall119https://wiki.ubuntu.com/Unity/Lenses and https://wiki.ubuntu.com/Unity/Lenses/Guidelines give a pretty detailed description17:17
mhall119but the short answer is that Lenses display content, and Scopes supply content17:17
mhall119lenses will be discussed in much more detail at 190017:18
mhall119I encourage you to stick around for that17:18
mhall119Many of you have probably seen the new HUD prototype17:18
mhall119Since Unity is exporting application menus over DBus to display them in the top panel, that also means we can use that data for other interesting things17:19
mhall119which is what the HUD does, allowing you to search for menu action without having to know where they are17:19
ClassBotcalmpitbull asked: just got in :) what is the best way to start programing my own lens, and where to start17:19
mhall119calmpitbull: stick around for the 1900 UTC session and they will cover all of that17:20
mhall119outside of Unity we also have the Ubuntu One cloud syncing service17:20
ClassBotThere are 10 minutes remaining in the current session.17:20
mhall119Ubuntu One lets users sync files between multiple computers, but it also provide an API for application developers to use17:20
mhall119for example, the Tomboy notes application uses Ubuntu One to sync it's note data17:21
mhall119and there is a new API in the works for syncing key-value data, called the U1DB17:21
mhall119there will be a session on Thursday covering both of those17:21
mhall119then we have the Software Center and http://developer.ubuntu.com, which provide application developers an easier way of distributing their application on Ubuntu17:22
mhall119there is even support for selling commercial applications through the Software Center17:22
mhall119and we have a dedicated Application Review Board (ARB) that will help you with that process17:23
ClassBotnava asked: we know unity is API for all (tablet,tv,phone) and also we know all mobile OS have a sdk , what about ubuntu ?17:23
mhall119So this collection of technologies, together with the foundation of Ubuntu itself, will essentially be your SDK17:24
=== Partyschz is now known as Partyschaum
=== kevjava_ is now known as kevjava
=== balloons_ is now known as balloons
=== HomesickAlien_ is now known as HomesickAlien
mhall119we have tools such as Quickly that will get you started and automate a lot of the work around packaging17:25
=== mkv is now known as m4v
=== jincreator1 is now known as jincreator
mhall119Ubuntu does not force you into specific programming languages or toolkits though, you can use whatever you're comfortable with as long as it's available on Ubuntu17:25
ClassBotThere are 5 minutes remaining in the current session.17:25
mhall119and best of all, All of these APIs are going to be the same, whether it's Ubuntu on desktop, TV, tablet or phone, you don't need to learn different technology17:26
ClassBotjrzabott asked: I used both synapse, like the unity menu... but i still have the feeling that synapse is more efective for the commom and home user... it have more speed, and it is lighter... If we put more daemons, lens, scopes and etc... i'm affraid it get worse... what do ya think?17:26
mhall119I'm not familiar with synapse, so I don't really have an opinion17:26
ClassBotrich3 asked: You mentioned Dbus.  what is dbus?17:26
mhall119DBus is a low-level messaging system, it allow different processes to communicate with eachother, without being tied to eachother17:27
=== rich3 is now known as kanliot
mhall119For example, Scopes and Lenses get a DBus message from the Dash when you enter a search, and then they send DBus messages back to the Dash with their results17:27
ClassBotpawel_st asked: ​ is lens/scopes api stable/going to be stabilized with 12.04; will backwards compatibility be maintained from now, or is it still a moving target?17:27
mhall119the lens API had to be changed between Oneiric (11.10) and Precise (12.04), because the original way of doing thing wasn't going to be efficient enough17:28
mhall119but the new API should be all but set in stone17:28
mhall119the changes to the API, by the way, were not very drastic17:28
mhall119I was able to update my code in just a couple of hours17:29
ClassBotnava asked: we have tv with unity 2d (Qt) ,is Qt main language for also mobile and tablet ? or sth. else17:29
mhall119Both Qt and GTK are first-class toolkits in Ubuntu17:29
mhall119The TV demo was done in Qt and Unity-2d, but that won't matter from the perspective of an application or lense developer17: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: What's new in Edubuntu - Instructors: highvoltage
ClassBotLogs for this session will be available at http://irclogs.ubuntu.com/2012/01/31/%23ubuntu-classroom.html following the conclusion of the session.17:30
highvoltagethanks mhall119!17:31
highvoltageI'll be talking a little bit about Unity lenses as well17:31
highvoltageWelcome everyone to the "What's new in Edubuntu" session!17:31
highvoltageI'd like to give a really quick intro to what Edubuntu is17:31
highvoltagesince many people are unfamiliar with the project17:32
highvoltageFirstly, there's the DVD that we produce every six months with some customizations and additional software that might be relevant in Education.17:32
highvoltageIt follows the Ubuntu release cycle and we're very committed to doing things the Ubuntu way17:32
highvoltageOne of our main goals is to produce a system that's easy to install and maintain in environments where people don't necessarily have lots of system administration skills available.17:32
highvoltagemy involvement in Edubuntu came about installing computer labs in South Africa a few years back17:33
highvoltagewe were using K12LTSP (a Fedora-based distribution) that had similar goals that Edubuntu has today17:33
highvoltageseeing what a turn-key system could do in schools was amazing. If a teacher can install their own system and have it up and running within minutes, it makes a *huge* difference17:34
highvoltageOn the Edubuntu DVD we include LTSP (a thin client implementation for Linux), educational suites like gcompris, kde-edu, tux4kids and more.17:34
highvoltageWe also include some system administration tools that make managing a classroom or educational environment easier.17:34
highvoltageSecondly, Edubuntu is also a project that's bigger than that. We aim to get software packaged into Ubuntu and also help maintain it.17:34
highvoltageThere are also other Ubuntu projects that work and help us out on this17:35
highvoltageMost notably, the Kubuntu team who maintains the kde-edu suite and also the MOTU team who helps maintain educational software and games in Universe.17:35
highvoltageIt's also worth mentioning Debian- that's where most of our packages come from. Recently we've also been collaborating more and more with Debian-Edu, they are doing some really great work.17:35
highvoltageThe Edubuntu team is small, at any time we have around 2-8 contributors with varying involvement.17:35
highvoltageSome people are only around for about a month a year, but we value their contribution while we have it. We value any contributions even if it's just once-off.17:36
=== dpm_ is now known as dpm
highvoltageSo, I hope that gives you somewhat of an idea of the Edubuntu project17:36
highvoltageso on to the topic of what's new?17:36
highvoltagewubi - install Edubuntu from Windows17:37
highvoltagethis is a somewhat old Ubuntu feature that we're getting now17:37
highvoltagewe couldn't use it before since we used the text-based installer17:37
highvoltageit basically allows you to install Edubuntu from an existing Windows system.17:37
highvoltagesince it's not that exciting I'll swiftly move on :)17:37
highvoltageinstaller - sssd integration17:38
highvoltageOne of the biggest things we'd like to achieve in Edubuntu is make it as easy and as turn-key as possible in any environment.17:38
highvoltageOne of the ways we do this is by adding to the default installer so that users have some specific control and out of the box configuration for some things.17:38
highvoltageIn this release cycle, we're adding an installation step for SSSD. SSSD stands for Systems Security Services Daemon. What it allows you to do is integrate easily with an existing LDAP or Active Directory (AD) solution.17:38
=== hashc is now known as hashc_
highvoltageThis would make Edubuntu really easy to integrate into existing schools which already has centralized authentication.17:39
ClassBotburli_ asked: ​ which DE is used by Edubuntu?17:39
highvoltageso the Desktop Environment17:40
highvoltagewe offer both Unity and Gnome Fallback (or sometimes called classic Gnome)17:40
highvoltageUnity is great and has some features I'm going to discuss a little bit later17:40
highvoltagewe need Gnome Fallback for thin client setups since most of the other alternatives are very resource hungry on the network17:41
highvoltagesome older machines also don't work with Unity yet17:41
highvoltagethat actually brings me to my next point...17:41
highvoltageunity lenses - something we want to do more of17:41
highvoltageone of our goals for 12.04 is also to figure out how we can better use unity lenses17:42
highvoltageI didn't realise I'd be following a session on it :)17:42
highvoltageif you missed the previous session, check out this page:17:42
highvoltagehttp://askubuntu.com/questions/38772/what-lenses-for-unity-are-available17:42
highvoltageit gives a nice overview of what Unity lenses are and which ones are available.17:42
highvoltagewe want to get in touch with educators and find out what kind of functionality could be useful to them17:43
highvoltageand then adapt it to unity lenses17:43
highvoltagehaving quick and easy access to information and activities could work tremendously well17:43
highvoltagewe'll soon be doing a call for ideas for that on the edubuntu blog and try to reach out to educators via other means17:44
highvoltageif you'd like to get involved and even want to help work on the lenses themselves, please get in touch!17:44
ClassBotkbmonkey asked: Was there ever talk of merging Edubuntu and Skolelinux, the Debian Edu distro?17:44
highvoltageNot specifically. There are some very similar goals between the projects though.17:45
highvoltageRecently we've been collaborating more and more.17:45
highvoltageSkolelinus does some really great work on the server. They already have centralized auth.17:45
highvoltageIn Edubuntu we abandoned the server part to focus more on the desktop17:45
highvoltageRemember the authentication improvements I mentioned earlier?17:46
highvoltagesome of that also includes making Edubuntu easier to integrate in a debian-edu environment17:46
highvoltagewe're looking at more ways to collaborate, and the debian-edu people are amazing. but I don't think it's even technically possible for a merge17:47
highvoltageso I doubt that would ever happen17:47
highvoltageweblive - try edubuntu online17:47
highvoltagewe have a service called weblive, it allows you to try Edubuntu from within your browser:17:47
highvoltagehttp://edubuntu.org/weblive17:48
highvoltagerecently it gained some new features17:48
highvoltageinstead of loading a full-blown session, you can also launch specific apps to demo it17:48
highvoltageEdubuntu also has a great feature that other derivatives don't17:48
highvoltagein Software Center, when you have an apps page loaded, you can click on "try it" and it will automatically spawn a weblive session for you with that app17:49
highvoltagethe weblive feature is really popular, we also have a user that uses it every single day since we launched it!17:49
highvoltageepoptes - classroom administration17:50
highvoltageepoptes is a new tool that helps you administrate a classroom.17:50
highvoltageThat is, see what's going on on a user's desktop, blank all the screens, broadcast what's happening on the teacher desktop, etc.17:50
highvoltageit's really cool and I think it's an essential tool in any educational environment17:50
ClassBotThere are 10 minutes remaining in the current session.17:50
highvoltageIt's being integrated into Edubuntu 12.04. It's developed by alkisg,17:51
highvoltageone of the Edubuntu developers and is also used actively in schools in Greece already.17:51
highvoltagesince I'm short on time I'll just post the link to it instead of babbling about it :)17:51
highvoltageYou can read more about it at http://www.epoptes.org/17:51
highvoltageEdubuntu LTS17:52
highvoltageEdubuntu 12.04 will be the first Edubuntu with official LTS status. It will be supported for 5 years17:52
=== robi is now known as Guest14546
highvoltageWe're also updating the LTSP installer and the ltsp live script to be more user friendly and support more languages17:53
highvoltagelanguage support is really great in Edubuntu. AFAIK we're the only derivative to ship all the language packs.17:53
highvoltageOn to the future17:53
highvoltageI've covered quite a bit of our current work17:54
highvoltagebut I'd like to talk a bit about one of our goals past 12.0417:54
highvoltageEdubuntu on ARM17:54
highvoltageWe want to have an ARM release for Edubuntu. Some people suggested the pandaboard - http://pandaboard.org/17:54
highvoltageunfortunately it's not really a consumer device17:55
highvoltagePersonally, I'm more interested in targetting something like the Eee pad transformer: http://za.asus.com/Eee/17:55
highvoltageIt's a beautiful and powerful tablet machine that comes with a keyboard dock turning it into a fully fledged laptop. it also ads more battery power. It's a great educational device.17:55
ClassBotThere are 5 minutes remaining in the current session.17:55
ClassBotSaviq asked: have you thought about the raspberry pi? it's supposed to be very small and cheap17:55
highvoltagethe raspberry pi looks really nice17:55
highvoltagebut it can't really handle a fully fledged Ubuntu Desktop session17:56
highvoltageofficially Ubuntu won't even be supporting the raspberry pi (unfortunately)17:56
highvoltagebut it certainly has many possible educational uses17:56
highvoltageThe challenge with the Eee transformer is that they are all bootloader locked17:57
highvoltageand very hard to unlock17:57
highvoltageso we'd have to somehow convince the manufacturers that we'd like it to be possible for someone to install Edubuntu on it17:57
highvoltageSince we're running out of time, I'd just like to remind everyone that we have Edubuntu meetings on the last Wednesday of every month in #ubuntu-meeting17:58
highvoltageyou can check the Ubuntu website if you're unsure of the dates17:58
ClassBotburli asked: so you will bring Edubuntu to tablets?17:58
highvoltageburli_: yes. that's certainly the future goal17:59
highvoltagethe work that's going into the Ubuntu touch framework and also Unity is gradually making it easier17:59
highvoltagetablets are *huge* in schools and we don't quite want to miss that17:59
highvoltagewe'd also like to integrate what's happning on the tablet with Edubuntu Desktops18:00
highvoltagewe have no idea how yet, but it's a dream we'll persue :)18:00
=== ChanServ changed the topic of #ubuntu-classroom to: Welcome to the Ubuntu Classroom - https://wiki.ubuntu.com/Classroom || Support in #ubuntu || Upcoming Schedule: http://is.gd/8rtIi || Questions in #ubuntu-classroom-chat || Event: Ubuntu Developer Week - Current Session: Ubuntu TV - what's what - Instructors: mhall119, saviq
ClassBotLogs for this session will be available at http://irclogs.ubuntu.com/2012/01/31/%23ubuntu-classroom.html following the conclusion of the session.18:00
Saviqhello all, mhall119, here?18:01
mhall119yes18:01
mhall119hello again everybody!18:01
mhall119this session we're going to be talking about getting involved in the Ubuntu TV development18:02
mhall119there's been a lot of interest and talk going around since our demo at CES earlier in the month18:02
mhall119all of the code from the demo is available on Launchpad, but it's just that: a demo18:03
mhall119the task now is converting it from demo code into real code, and you can be involved in that18:04
ClassBotfantasti1001 asked: What's ubuntu TV ?18:04
Saviqmaybe I can chip in here for a second18:04
mhall119sure18:04
SaviqI prepared a FAQ from all the questions I could find in my history of #ubuntu-tv and ubuntu-tv@lists.launchpad.net18:05
Saviqit's available on the Ubuntu wiki: https://wiki.ubuntu.com/UbuntuTV/Contributing#FAQ18:05
Saviqand we're here to answer anything not covered in there and help you guys with getting involved18:05
Saviqmhall119, back to you18:06
mhall119you can also learn about Ubuntu TV here: http://www.ubuntu.com/tv18:06
mhall119but the short answer is: It's the goal of making Ubuntu the best platform for TV manufacturers to use on the upcoming wave of Smart TVs18:07
mhall119it has a modified Unity interface that is designed to work when you're sitting 10 feet away, using a remote control18:07
mhall119but under the hood, it will be the same Ubuntu platform, with the same Unity APIs18:08
mhall119which means everything make for the desktop will be available to you18:08
mhall119it will also tie into moving streaming services and stores to let you rent or buy movies18:09
mhall119and work with PVR hardware and software to let you watch and record broadcast and cable television18:09
ClassBotfantasti1001 asked: How remote control works?18:10
Saviqthat's my cue18:10
Saviqfantasti1001, we're not doing anything special for remotes18:10
Saviqwe're supporting all the standard media keys some keyboards have18:10
Saviqbut that also means you can easily use Bluetooth remotes18:11
Saviqor IR ones like MCE, by just plugging them in right now18:11
Saviq'cause they generate standard key events now18:11
mhall119as a platform, we should support as many viable options as the hardware manufacturers may want to ship18:12
SaviqLIRC is the "old" or "advanced" way to handle remotes, and there's no plan to support that in Ubuntu TV right now18:12
mhall119ultimately the choice of specific hardware will be up to the OEMs18:12
Saviqbut as mhall119 said - if that's what's going to be required - that's what we'll do18:12
ClassBotburli asked: so it will be posible to install any software?18:13
Saviqburli isn't here, but I'll answer anyway18:13
Saviqburli, oh yes he's here, xchat's playing games on me18:13
Saviqburli, that, again, depends on the way it's going to be deployed18:14
Saviqin theory any software can be installed as it's going to be standard Ubuntu18:14
Saviqbut most GUI applications are not suitable for a 10-foot interface18:14
ClassBotashickur-noor asked: What is difference between Ubuntu TV and Ubuntu Desktop?18:14
Saviqso it will only make sense to install those that are adapted to a TV interface18:14
Saviqashickur-noor, the demo we showed at CES was straight Ubuntu 11.10 with a variant of Unity-2D adapted for TV18:15
Saviqashickur-noor, but the target of Ubuntu TV is to be a platform, based on Ubuntu18:15
mhall119ideally there will be no difference other than the UI18:16
Saviqwhat will be the difference between a productized Ubuntu TV and Ubuntu Desktop, we'll have to wait and see18:16
ClassBotkichkasch asked: ​ what is the time line for development? When do you expect first devices ... ?18:16
Saviqkichkasch, no such decisions have been made yet18:16
mhall119so the purpose of the CES demo was to get hardware manufacturers interested18:17
mhall119now we are working on partnering with them to build actual products18:17
mhall119as with most business-to-business dealings, we won't really know until they're announced18:18
ClassBotpopey asked: What spec machine do I need to try out Ubuntu TV?18:18
Saviqwhile developing we were using an Acer Revo18:19
Saviqwhich is an Atom + ION box18:19
Saviqbut we were running happily on a Pandaboard, too18:19
Saviqas ARM is a definite target, that's very important for us18:19
Saviqhardware video acceleration is a must18:19
ClassBothszu00 asked: ​ Will Ubuntu Tv use an onscreen keyboard or one that comes with the remote?18:19
mhall119trying to get through as many of these questions as we can before our time isup18:20
Saviqhszu00, with the UI we demo'ed search was a central feature18:20
Saviqso hardware keyboard on the remote is desirable18:20
ClassBotThere are 10 minutes remaining in the current session.18:20
Saviqbut OSK is a possible alternative18:20
ClassBotCantide asked: So it would be possible to use your TV as a computer, essentially?18:21
mhall119possible, but probably not desirable18:21
SaviqCantide, using a Ubuntu Desktop on your TV would not be easy18:22
Saviqthe target is to provide a proper TV, 10-foot experience18:22
mhall119remember that even a large-screen TV isn't very big when viewed from across the room18:22
ClassBotTwoD asked: I feel the Dash is awkward to use as is, having to switch back and forth between keyboard and mouse, how will that improve if I only have a TV remote?18:22
SaviqTwoD, the whole Ubuntu TV is navigable with just 9 buttons18:23
Saviqusual directional ones, ok, back and three edge ones18:23
Saviqfor quickly accessing the sidebar, top bar and launcher18:23
ClassBotcalmpitbull asked: What is minimun requirement for Ubuntu TV to run smoothly18:23
Saviqcalmpitbull, as replied earlier - any OpenGL-enabled GPU, preferably with hardware video acceleration18:24
Saviqand something like an Atom CPU will be enough18:24
Saviqon ARM a Pandaboard seems to cope quite nicely18:24
ClassBots9iper1 asked: can you tell me the merging process when the bug got fixed and than we have to merge the branches is there any guide in ubuntu    or anything?18:24
Saviqs9iper1, it's the same as with unity-2d, add a merge request agains lp:ubuntutv18:25
ClassBotThere are 5 minutes remaining in the current session.18:25
mhall119https://wiki.ubuntu.com/UbuntuTV/Contributing has information about how to make contributions of code18:25
ClassBotpawel_st asked: ​ rather than a new release that adds new features every 6 months, like regular unity does. How does it match the development model of normal unity? Is unity for tv going to have a separate development model and provide stripped down version of unity?18:26
Saviqpawel_st, that depends on the productized version, nothing I can say right now about that18:26
ClassBotBlueCase asked: What's with DRM and HD content? Any discussion on that?18:27
SaviqBlueCase, HD content with hardware acceleration is fine, DRM will have to be discussed with content providers that come on board18:27
ClassBotsankaranarayanan asked: So are you guys considering support for gesture based control too, for the TV?18:28
=== temp1234567890 is now known as PioneerAxon
Saviqsankaranarayanan, there's definitely room for thought there, again - depends on what we will actually be delivering18:29
ClassBotpawel_st asked: ​ since smart TVs are network-capable, are you going to automatically install security updates on TVs (with all the associated risks)?18:29
Saviqpawel_st, that is a possibility, but will have to be carefully thought out18:29
Saviqand will depend on the requirements we need to fill18:29
ClassBotsirvinniei asked: How much customabily is possible with ubuntu tv?18:30
Saviqsirvinniei, it's open source, that's all the answer I can give you now18:30
Saviqwow it looks like half an hour is a very short period of time18:30
mhall119it sure is18:30
Saviqthanks you all for attending18:30
ClassBotLogs for this session will be available at http://irclogs.ubuntu.com/2012/01/31/%23ubuntu-classroom.html following the conclusion of the session.18:31
=== 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: Testability and Qt - Intro to automated UX testing for Qt apps - Instructors: greyback
greybackHey all, I'm Gerry Boland, team lead of the Unity 2D project.18:31
greybackFor something like UbuntuTV to be a success, we need Unity2D to be rock solid!18:31
greybackSo I'm here to give a short 30 minute session about something almost as exciting: automated testing for Qt apps (and Unity2D)! :D18:31
greybackFeel free to ask questions at any time, check the topic for instructions on how to do so.18:31
greybackIn Unity 2D, we have just introduced an automated User Experience test system, based on a test framework called "Testability Driver" (I'll just call it 'Testability' from now on).18:32
greybackWith this system, for every bux-fix and new feature, we:18:32
greyback1) automatically verify that all existing tests pass, so nothing is broken and18:32
greyback2) require that new tests are added to prevent regressions, thus in time developing a comprehensive test suite!18:33
greybackI want to go into more detail about "Testability" and how everyone can use it.18:33
greyback= What does Testability do? =18:33
greybackTestability is for Qt-based applications (and Unity 2D is written in Qt, yay!).18:34
greybackIts core feature is that it allows inspection of the tree of QObjects in a Qt application while it is running.18:34
greybackIt can read and write object properties, call methods and slots, verify signals are emitted, as well as faking mouse/keyboard/gesture inputs, grabbing visual outputs, and measure performance.18:34
greybackAnd best of all, Testability is open source and maintained by Nokia!18:35
greybackThat means everyone can run and contribute tests! :)18:35
ClassBotburli asked: is this built in Qt and language independend?18:36
greybackburli: yes, it's build into Qt, from version 4.6 I think18:36
=== Cantide is now known as CantideAFK
greybackIt works with C++ and QML. If it uses Qt bindings then it will work too18:37
greybackTo show it off, here is a screengrab of the Testability Visualizer application which allows you to connect to a running application, dig into the QObject tree and investigate what's going on (here, the Unity 2D Launcher):18:37
greybackhttp://i.imgur.com/psi7m.png18:37
greybackOn the left is an interactive snapshot of the UI, in the centre is the QObject tree which you can navigate, and on the right is the list of the selected QObject's properties, methods and signals you can interact with.18:38
greybackOn display in that screengrab are some of the attributes of the QDeclarativeImage object which draws the Terminal icon in the launcher (this is defined in QML!) - you can read off the source of the image, the x,y coordinates, width & height, and a whole lot more.18:38
greybackAll these properties, methods, signals, etc, are scriptable via Ruby. (I'll give a uber-simple example in a minute)18:39
greybackThus we can emulate every interaction that a user can make with the application, and determine the reaction.18:39
greybackAnd all this power comes with almost no changes* to the source code!18:39
greyback(* = just need to add object names, see later)18:39
greybackThis forms the foundation for the Unity 2D User Experience testing suite.18:40
greyback= How Testability works =18:40
ClassBotTwoD asked: Does Testability include tests for asserting the number of keystrokes/clicks required for completing user task "X" remains sane?18:41
greybackTwoD: you write a test, by providing every click and keystroke, and check the behaviour matches what you expect.18:42
greybackTwoD: you control the number of clicks18:42
greybackTestability works as follows (have a look at this image too, it might help http://tinyurl.com/7dj5jdw):18:42
greyback- *any* Qt application using Qt4.6+ can be tested by executing it with the "-testability" switch.18:42
greyback- a standalone server "qttasserver" runs in the background.18:43
greyback- With the -testability switch, the Qt library tries to load a "libtestability.so" plugin which establishes a connection between the application and qttasserver, giving qttasserver access to the root node of the QObject tree.18:43
greyback- qttasserver then climbs the QObject tree, reads all the info it can and converts it to an XML format. It also can receive commands and cause the application to react upon them (click here, type, etc..).18:43
greyback- A series of Ruby scripts connect to qttasserver, receive and parse this XML and allow us to script tests and interactions with the application.18:44
=== fenris_ is now known as Guest88852
greybackThen we use Ruby's test runner systems (Test::Unit or Cucumber) to write and run tests18:45
greyback[The Unity 2D test framework also includes an extra helper library to control the X server, to control the mouse and keyboard, and to manipulate windows on the desktop. As far as X is concerned, a human is controlling it.]18:45
greybackWith the ability to fake any form of user input, and directly read the output from the shell applications themselves, we can test almost every behaviour of the application. And as a result, the quality of the experience will only go up!18:45
=== fenris__ is now known as Guest62166
ClassBotcalmpitbull asked: What is the best way to get started with programing unity 2d, lenses and scopes18:46
greybackcalmpitbull: there's a session on Unity and lenses shortly. Lenses are compatible with both Unity and Unity2D18:46
greybackcalmpitbull: if youdd like to contribute to Unity 2D, please ping me after this presentation. We'd be delighted to have you!18:47
ClassBotashickur-noor asked: What is the best language to put on the Back-end of QT18:47
greybackashickur-noor: (you've gone?) Well I'm a fan of C++ and QML. QML makes UI design and creation really easy18:48
ClassBotpawel_st asked: ​ Testability seems to be well suited for scenarios where object attributes can be tested... Is there any way you can test if drawing errors etc. occur?18:48
greybackpawel_st: Testabiity has access to the QPainter, so whatever Qt thinks is being drawn to screen, Testability can grab. It can then perform visual comparison on images, to check for errors18:49
greyback= How to get & use Testability =18:49
greybackUnfortunately Testability is not available in Ubuntu's repos just yet, but I have it packaged in a PPA.18:49
greybackInstallation takes a few steps, so I suggest that interested people consult this wiki page: https://wiki.ubuntu.com/Unity2DTestability18:49
greybackTests are just Ruby scripts, so running tests is just a matter of running a Ruby script!18:50
greybackI think it easiest to show how to use Testability with an example ruby script: http://pastebin.com/AWWYYPN818:50
ClassBotThere are 10 minutes remaining in the current session.18:50
greybackThat test checks18:51
greyback1. the Launcher is 65 pixels wide18:51
greyback2. that the Terminal tile has the correct icon18:51
greybackThere is some boiler-plate code there, but the bits I want to point out are:18:51
greyback@app.LauncherView()['width']18:51
greybackThis causes Testability to search for an object of type "LauncherView()" in the QObject tree, and if found reads its "width" property and returns it (throws exception if not).18:51
greybackThen in Ruby, we can check this value matches what we expect (65).18:51
greybackThe second test does a similar operation, but needs a little more help.18:52
greybackAs there are many tiles, we need to help Testability to find the exact tile we want. We do this by adding some object names ("main", "Terminal",..) to the C++/QML.18:52
greybackBy consulting with http://i.imgur.com/psi7m.png, maybe you can see how Testability navigates the tree to find the icon source for the Terminal tile!18:52
greybackOnce you can track down objects uniquely, you can then start interacting with them, send mouse clicks, set properties, call methods, etc.18:52
greybackThis power gives you great flexibility in testing your application!18:52
greyback= Demo & conclusion =18:53
greybackAs a demo, here is a video of a part of the Unity 2D test suite in action. On the right is Ubuntu Oneiric running inside VirtualBox, where the Launcher will be tested. On the left is my host machine terminal running the test suite.18:53
greybackhttps://wiki.ubuntu.com/Unity2DTestability?action=AttachFile&do=get&target=testability.ogv18:53
greybackVarious hide/show tests are being performed, with windows in the way, mouse being controlled, keyboard shortcuts being pressed etc.18:53
greybackThere's something very strange about watching a desktop doing things when nobody is controlling it!! :)18:54
ClassBotAtlantic777 asked: any documentation on how to write good test cases?18:54
greybackAtlantic777: there is some at Nokia's website on Testability(https://projects.developer.nokia.com/Testabilitydriver/wiki), and I plan to write my own shortly.18:54
ClassBotSaviq asked: there seems to be a split between the application and the tester, can this work across the network?18:55
greybackSaviq: yes. In that video above, all the communication between the application and the test machine is via TCP/IP18:55
ClassBotThere are 5 minutes remaining in the current session.18:56
ClassBotCeno asked: I see there's no support for 10.04 in the PPA.  Can this be arranged, or since the default 10.04 qt version is bellow 4.6 it doesn't even matter?18:56
greybackCeno: it's my PPA, so if you need it, I can try. Version less than 4.6 can be tested too, they need a few extra lines of code in the application only.18:56
ClassBotbjhaid asked: can you please post link to sample test18:57
greybackbjhaid: http://pastebin.com/AWWYYPN8 for super-simple test18:57
greybackbjhaid: otherwise, check http://bazaar.launchpad.net/~unity-2d-team/unity-2d/trunk/files/head:/tests/18:58
greybackOur policy is that every new feature and bug fix in Unity 2D will have a test attached, to ensure no regressions.18:58
greybackThis will ensure Unity 2D remains reliable, consistent and fast. Thanks to Testability!18:58
greybackThanks for your attention everybody!18:58
greybackI've a minute for questions18:59
ClassBotpawel_st asked: ​ Can it run headless, e.g. for automated integration testing?18:59
greybackpawel_st: yes. It should run in Xvfb18:59
ClassBotbjhaid asked: any gem required to run the test or it runs on standard ruby modules?18:59
greybackbjhaid: just "gem require" is needed for some reason I'm unsure of19:00
greybackOk I'm done. Thanks everyone19: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: Unity Lenses! - Instructors: davidcalle, mhr3
ClassBotLogs for this session will be available at http://irclogs.ubuntu.com/2012/01/31/%23ubuntu-classroom.html following the conclusion of the session.19:00
davidcalleHello everyone, I'm David Callé19:01
mhr3Hi there, i'm Michal Hruby19:01
davidcalleWe are going to introduce you to Unity lenses, how they work, what they do.19:02
davidcalleAnd... most importantly, how to make them.19:02
mhr3so let's get to it19:02
davidcalleA lens is basically a plugin for the Dash. To display data to the user.19:03
davidcalleAnd scopes are search engines for the lens, to bring the data.19:04
ClassBotcalmpitbull asked: What is the best way to get started with programing unity lenses and scopes19:04
mhr3calmpitbull, you're just about to learn that :)19:05
davidcalleA lens is mostly an architecture19:06
davidcalleCategories and filters, used to guide the user through the data19:07
ClassBotpawel_st asked: ​ I've asked this on one of the previous session, but maybe you can give a more detailed answer here... Why did you choose to have daemons for all lenses? Seems to lead to more and more resources usage as new lenses are added? Why not spawn lenses on demand, or do something similar to be more resource-friendly?19:07
=== PsyberS__ is now known as PsyberS_
mhr3pawel_st, the reason is to be able to easily add and remove lenses19:08
mhr3pawel_st, this way one can easily replace the default apps lens with something they like19:09
mhr3or any other of course19:09
mhr3and the default daemons are very light, so it shouldn't be an issue atm19:09
ClassBotgaberlunzie asked: ​ are there any obstacles to lens displaying online data? My askubuntu lens turns up empty except for the "Ask a question" action ...19:10
davidcalleThere shouldn't be any obstacles. It just uses http calls.19:10
mhr3gaberlunzie, perhaps a bug in the lens :)19:11
mhr3feel free to file it19:11
ClassBotpawel_st asked: ​ There is a nice initiative for simplifying lens/scopes development - Singlet project. Are there plans to make it available by default in Ubuntu? Or anything similar?19:11
mhr3ok, so let's continue with the session19:12
davidcalleSinglet is currently being turned into a Quickly template19:12
mhr3once we have a lens that displays data in particular categories and provides filters, we implement scope(s) which provide data19:13
mhr3a couple of guidelines about when to implement lenses vs scopes can be found at https://wiki.ubuntu.com/Unity/Lenses/Guidelines19:14
mhr3but let's make this more fun and actually look at a sample lens and scope19:14
mhr3the unity-lens-sample project on Launchpad has a couple of these available (https://code.launchpad.net/unity-lens-sample/)19:14
mhr3so I suppose everyone likes python, so let's take a look at that one19:15
mhr3if you want to get it, run `bzr branch lp:~unity-team/unity-lens-sample/python-5.0`19:15
mhr3the 5.0 indicates that this lens is for libunity-5.0 (which is in precise)19:16
mhr3if you're on oneiric and dont have unity ppas enabled, 4.0 is for you19:16
mhr3so, http://bazaar.launchpad.net/~unity-team/unity-lens-sample/python-5.0/view/head:/unity-lens-sample is the lens code19:17
mhr3and david as the author will explain details :)19:17
davidcalleAs you can see, the lens code is quite small.19:18
ClassBotfantasti1001 asked: what programming language do i need to know to make lenses?19:18
davidcalleThe first important thing is to declare your lens:19:18
davidcalleBUS_NAME = "net.launchpad.lens.sample"19:18
mhr3fantasti1001, you can pick python / c / vala (or javascript experimentally)19:19
davidcalleThe name is rather arbitrary, but it illustrates the purpose of the lens19:19
davidcallefantasti1001, Python, C, Vala, and even Javascript now (which is rather experimental)19:19
davidcalleThen, we define a few constants for the lens:19:20
ClassBotAlanBell asked: will there be an "accounts" dialog or something for lenses that require authentication credentials to be entered (a bit like Empathy or Gwibber has)19:20
davidcalleIt's dbus path : self._lens = Unity.Lens.new ("/net/launchpad/lens/sample", "sample")19:20
davidcalleWe also want to define the search hint (the text in the empty search bar)19:21
davidcalleself._lens.props.search_hint = "Search"19:21
mhr3AlanBell, that's up to the individual apps right now, ideally they'd integrate with the system's "online account"19:21
davidcalleWe can also choose to have the lens icon visible in the search bar. If not, it will still be available via its shortcut.19:22
davidcalleself._lens.props.visible = True;19:22
davidcalleThen, one of the most important thing is to have the lens visible in the Home Dash.19:22
davidcalleOr not.19:22
davidcalleself._lens.props.search_in_global = True;19:22
davidcalleIf you are looking at the code right now (http://bazaar.launchpad.net/~unity-team/unity-lens-sample/python-5.0/view/head:/unity-lens-sample)19:23
davidcalleYou can see, that we also define the categories, which have a name, an icon, and a renderer.19:23
davidcalleThe renderer is the way the Dash will display the results.19:24
mhr3you can see all the properties here http://developer.ubuntu.com/api/ubuntu-12.04/python/Unity-5.0.html#Unity.Lens19:24
davidcalleTwo renderers are currently available : the "vertical" and the "horizontal", they both display an icon, and a text for each result. But the horizontal can also dsiaply a second text called the comment.19:25
davidcalleHere, I've defined two categories, using a different renderer.19:26
davidcalleThe filters are next on our list of things to define. You can find a list in the code.19:26
davidcallehttp://imagebin.org/index.php?mode=image&id=19657319:27
mhr3there you can see the various renderers in action ^^19:27
davidcalleHere is a screenshot of our sample lens, using the two renderers (the second one is hidden at the bottom)19:27
davidcalleNow that we have a lens. We need a scope to provide the data.19:29
mhr3right, but before that, please notice some of the system necessities for getting lens running19:29
mhr3at the bottom of the lens sample you can see requesting DBus name19:30
mhr3you need to do this, so unity can talk to the lens19:30
mhr3and the name need to be equal to what you .lens file says19:30
mhr3more details on that can be found at https://wiki.ubuntu.com/Unity/Lenses19:30
mhr3or https://wiki.ubuntu.com/mhr3/Lenses (for the latest 5.0 version)19:30
mhr3and now, let's take a look at the scope19:31
mhr3so here we have it > http://bazaar.launchpad.net/~unity-team/unity-lens-sample/python-5.0/view/head:/unity-scope-wikipedia19:31
mhr3this is an example of remote scope, that doesn't live directly inside the lens, but is an external process19:32
mhr3you can create scope for any existing lens by just adding your .scope file into the lens directory19:32
mhr3more on that again at the wiki mentioned earlier19:32
mhr3but let's look at the code19:32
mhr3commonality is again the requesting of dbus name, which is necessary for remote scopes19:33
mhr3but doesn't need to be there for internal lens scopes19:33
mhr3and then you just create a Scope instance ->19:34
mhr3self.scope = Unity.Scope.new ("/net/launchpad/scope/information/wikipedia")19:34
mhr3you specify a few properties again19:34
mhr3like the search-in-global etc19:34
mhr3(full list http://developer.ubuntu.com/api/ubuntu-12.04/python/Unity-5.0.html#Unity.Scope)19:34
mhr3and most importantly you connect to the search-changed signal19:35
mhr3self.scope.connect ("search-changed", self.on_search_changed)19:35
mhr3this mean that everytime the user changes the search string this method will be invoked19:35
mhr3and it's where you should do the actual search19:35
mhr3the signal has a couple of parameters:19:36
mhr3def on_search_changed (self, scope, search, search_type, cancellable):19:36
mhr3important is the search, which is a LensSearch instance19:36
mhr3http://developer.ubuntu.com/api/ubuntu-12.04/python/Unity-5.0.html#Unity.LensSearch19:36
mhr3and this holds the data about the search19:37
mhr3like the actual search_string19:37
mhr3the scopes have a two results models which you need to update during the search19:37
mhr3the correct results model is always stored in search.results_model19:38
mhr3as you can see in http://bazaar.launchpad.net/~unity-team/unity-lens-sample/python-5.0/view/head:/unity-scope-wikipedia#L3319:38
ClassBotpawel_st asked: ​ Is caching results of lens search possible via the framework, or is this something one needs to implement for his lens?19:38
mhr3depends what you want to do19:39
mhr3results from previous search are always available in the model19:39
mhr3that's why you see model.clear() call here http://bazaar.launchpad.net/~unity-team/unity-lens-sample/python-5.0/view/head:/unity-scope-wikipedia#L3519:40
mhr3so it's up to you how are you going to use that19:40
=== Atlantic877 is now known as Atlantic777
mhr3so once we get results for the query the user wants, we append those to the model19:41
mhr3as you can see in http://bazaar.launchpad.net/~unity-team/unity-lens-sample/python-5.0/view/head:/unity-scope-wikipedia#L8119:41
mhr3the models we are talking about are part of the Dee library (see it's reference @ http://developer.ubuntu.com/api/ubuntu-12.04/python/Dee-1.0.html )19:42
mhr3and there's a specific data the model expects19:42
mhr3for results it's uri, icon, category id, mimetype, display name, comment and dnd_uri19:42
mhr3so you add results to the model and once you're done, you just call search.finished() on the LensSearch instance19:43
mhr3the user can then click on any of results19:44
mhr3and if you picked some standard uri (like http://...) unity can just launch it in the browser for example19:44
mhr3but if your lens is doing something special19:44
mhr3you can use your own uris, and if you connect to the activate_uri signal of the scope you'll be notified when the user activated them, so you can do whatever you want19:45
mhr3and that's the basics19:45
mhr3questions?19:45
ClassBotkanliot asked: do lenses require unity and ubuntu?19:46
davidcalleThey do.19:46
davidcalleNot Ubuntu, but at least Unity.19:46
mhr3well unity is what controls them19:46
mhr3you could implement your own ui19:46
mhr3but there's nothing in existence that would do that19:46
mhr3not that i know of anyway :)19:47
davidcalleIf you want to look at various code examples19:47
davidcallehttps://code.launchpad.net/onehundredscopes19:48
davidcalleIt's a lot of scopes and lenses branches, doing very different things, from talking to web API, to looking into user folders.19:48
mhr3if you're wondering about the changes that were made in latest Unity-5.0 (and therefore really advanced stuff) feel free to look at http://www.grillbar.org/wordpress/?p=58519:48
ClassBotCeno asked: is there any difference in performance between the various languages we can program lens/scopes in?19:49
ClassBotThere are 10 minutes remaining in the current session.19:50
mhr3Ceno, good question19:51
mhr3we dont really have any scientific data to suggest one way or the other19:51
mhr3of course theoretically languages that don't need garbage collector and such things ought to be faster :)19:52
mhr3but mostly the slowest part of lens is talking to a webservice which is slow anyway :)19:52
mhr3if they are talking to a webservice of course :)19:52
ClassBotmfisch asked: is there a recommended IRC channel where lens-writers can discuss things?19:52
davidcalle#ubuntu-unity is the place for that19:53
mhr3mfisch, ^^ thats the place19:53
ClassBotCeno asked: I might have missed something, and if I did I apologize, but how do you go from these 2 pieces of code, one for lens one for scope, to actually testing the thing live in Unity?19:53
mhr3there's a README file in the directory ;)19:54
mhr3basically you copy the .lens and .scope files to specific directories and restart unity19:54
mhr3http://bazaar.launchpad.net/~unity-team/unity-lens-sample/python-5.0/view/head:/README19:55
davidcalleA lens daemon comes with a .lens files, the scope daemon with a .scope file. Their content is pretty much self explicit.19:55
davidcalles/files/file19:55
ClassBotThere are 5 minutes remaining in the current session.19:55
davidcalleThey both need to go in /usr/share/unity/lenses/<lens name>19:56
davidcalleThe daemons can be anywhere.19:56
davidcalleAn important thing :19:56
davidcalleTo start a new lens. You need to restart unity (unity --restart or setsid unity)19:57
davidcalleJust once, to make it learn about the new lens.19:57
ClassBotmhall119 asked: once I have a lens or scope, how do I get it into Software Center?19:58
davidcalleBut for the scopes, you just need to restart the lens daemon.19:58
=== max is now known as Guest41606
mhr3i'm afraid we won't cover software center in this session19:59
ClassBotjincreator asked: Is it possible to extract and use lens at user's home directory, not /usr/share/... ?19:59
davidcallemhall119, you package your lens, then submit the package to https://myapps.developer.ubuntu.com19:59
mhr3jincreator, unfortunately not, unity only checks /usr/share/unity/lenses directory20:00
mhr3Ok, seems like we're out of time, thanks everyone for attending!20: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: QA: Automated Testing and Jenkins - Instructors: hggdh
ClassBotLogs for this session will be available at http://irclogs.ubuntu.com/2012/01/31/%23ubuntu-classroom.html following the conclusion of the session.20:00
davidcalleThank you! And come see us if you have any questions20:00
hggdhhello. My name is Carlos de-Avillez, and I am a member of the Ubuntu QA team. You can reach me either on IRC (nick: hggdh) or via email to hggdh2@ubuntu.com.20:01
hggdhSince beginning of 2010 we have been working on test automation. This meant we had to create our own lab, and prepare it for all we need.20:02
hggdhthis is, still a Work In Progress ;-)20:02
hggdhtoday I will talk about our usage of Jenkins20:02
hggdhhttp://jenkins-ci.org/20:02
hggdhwe implemented (er, *are* implementing) Jenkins on two places: an internal one, where the tests are actually executed (in our lab),20:03
hggdhand an external one, where results of the tests are visible for all20:03
hggdhthe internal Jenkins is access-controlled, and out of scope right now20:04
hggdhthe external one can be reached at https://jenkins.qa.ubuntu.com/20:04
hggdhthis is, pretty much, what we see internally, but read-only.20:04
hggdhWe are adding tests as we go, and all Ubuntu development teams are collaborating in making the tests more (and more) inclusive20:05
=== dduffey is now known as dduffey_afk
hggdhJenkins can be seen as a scheduler (it is not only a scheduler, but simpler to get acquainted to)20:06
hggdhif you look at the public instance, you will see it has a not-so-big-yet-but-growing list of tabs20:07
hggdhin each tab you will see the tests -- in Jenkins parlance, the *jobs* that we currently publish20:07
hggdhthe very first tab -- "all" -- shows ALL the tests; each other tab gives us a view restricted to an area of interest20:08
hggdhso, for example, https://jenkins.qa.ubuntu.com/view/Precise/ shows all tests currently being run for the Precise Pangolin Ubuntu version20:09
=== med__ is now known as Guest23901
hggdh(BTW, we will be relying on https://wiki.ubuntu.com/QATeam/AutomatedTesting, https://wiki.ubuntu.com/QATeam/AutomatedTesting/UnderstandingJenkins,20:10
hggdhand https://wiki.ubuntu.com/QATeam/AutomatedTesting/UnderstandingJenkinsResults for this talk)20:10
hggdheach Jenkins job can have one of four possible final states:20:11
hggdh1 - successful -- represented by a green ball20:11
hggdh2. failed -- represented by a red ball20:11
hggdh3. unstable -- represented by an yellow ball20:12
hggdh4. not-yet-run (or no record surviving in Jenkins) -- represented by a gray ball20:12
hggdhapologies for those of you that are -- as I am -- colour-confused20:13
hggdhtests are written in a mix of code (usually Python, or shell scripts) and Jenkins setup20:13
hggdhPretty much all the code we use for the tests can be found at https://launchpad.net/ubuntu-server-iso-testing20:14
hggdhthis is a bazaar branch; commit access to it is, as usual, restricted to members of the Ubuntu Server Iso Testing Developers, a team on Launchpad20:15
hggdhhttps://launchpad.net/~ubuntu-server-iso-testing-dev20:15
hggdhplease do contribute. You can tweak the current code, and propose changes, via a bazaar merge request20:16
hggdhanyway20:17
hggdhif we look at the precise-desktop-amd64_default job (https://jenkins.qa.ubuntu.com/view/Precise/job/precise-desktop-amd64_default/)20:17
hggdhwe will see that it failed20:17
hggdhon the Build History (at the left) we can see the last runs, about 30 of them; we can also see that the last two runs failed20:18
hggdhrun 223 was successful, and 222 was... unstable20:19
hggdhif we click on the last run -- 225, url https://jenkins.qa.ubuntu.com/view/Precise/job/precise-desktop-amd64_default/225/20:19
hggdhwe will be able to see some more links to data. The most important, usually, is the rawe console output (link at the left). This will give us all output to stdout that was generated by the tests20:21
hggdhthis does not mean *all* output of the job, just what was sent to stdout20:21
hggdhlooking at it, we see that the first 130K of data was not shown, and the rest seems to be a system running and just -- pretty much -- renewing IP address via DHCP20:23
hggdhlooking at near the end, we see this message:20:24
hggdhDEBUG:root:Test e40d4cb6-bc3d-4c6d-b618-a30826e5c26e failed to execute within 120 minutes20:24
hggdhso... the test fails20:24
hggdh(going back to run 225 summary)20:25
hggdhat the middle of this screen -- again, I am at https://jenkins.qa.ubuntu.com/view/Precise/job/precise-desktop-amd64_default/225/20:25
hggdhwe see a "Build artifacts" link and, under it, a series of other links.20:26
hggdhwhat we are usually interested in is *not* these other links, but what is under the "Build artifacts"20:26
hggdhso, drilling down on it (https://jenkins.qa.ubuntu.com/view/Precise/job/precise-desktop-amd64_default/225/artifact/)20:27
hggdhwe see a 225/test-results link, and some others. It is the test-results we usually want...20:28
hggdhunder it we only see a d-i-syslog.log.gz file (er, link). This sort of tells us that the test indeed failed ;-)20:29
hggdh(an example of a successful run is at https://jenkins.qa.ubuntu.com/view/Precise/job/precise-desktop-amd64_default/223/artifact/223/test-results/ )\20:30
ClassBotdiwic asked: You asked for contributions, but assume I've made a change to the branch, how do I go ahead and test it locally before proposing it to be merged? Do I have to set up a local jenkins instance...etc?20:31
hggdhhum20:32
hggdhyes, you *might*. It would be better to, I mean. We are considering how to set up a test Jenkins, where code changes can be tested without needing the whole shebang20:33
ClassBotgang65 asked: How I could look at current job configuration? - I would like to see which scripts it is using...20:34
hggdh(sorry for the delay, was battling a login)20:38
hggdhyes, this is a good question. There is no way, right now, just tested it. You have to have access to the internal Jenkins to see the configuration. We will work on that20:39
hggdhsorry20:39
hggdhso, back to looking at errors20:40
hggdhthe only way to find out what happened on run 225...20:40
hggdhgo back to build 225 summary page (https://jenkins.qa.ubuntu.com/view/Precise/job/precise-desktop-amd64_default/225/ )20:42
hggdhand look at the 'default' link on the middle of the page, at the 'run_test' on the same page, and at the syslog output20:43
hggdhthe 'default' shows you the actual test code that is (would) be executed20:44
hggdhthe 'run_test' is the driver20:44
hggdhand the syslog is all that was sent to stdout.20:44
hggdhwe know the test did not even execute, in this case20:45
hggdhso I would start with the syslog, looking for "abnormal" messages20:45
hggdhand in the syslog, around line 978, we see a python stacktrace20:46
hggdhit may be part of the problem. We would need to review all syslog, and talk with the developers to really find out20:47
hggdhan example of a *unstable* execution is in precise-server-i386_dns-server20:48
hggdhhttps://jenkins.qa.ubuntu.com/view/Precise/job/precise-server-i386_dns-server/7620:48
hggdhdrilling down on the build artifacts, we see an interesting link:20:49
hggdh(actually two)20:49
hggdhhttps://jenkins.qa.ubuntu.com/view/Precise/job/precise-server-i386_dns-server/76/artifact/76/test-results/TEST-dns-server.xml20:49
hggdhand20:49
hggdhhttps://jenkins.qa.ubuntu.com/view/Precise/job/precise-server-i386_dns-server/76/artifact/76/test-results/dns-server.stderr20:49
hggdhthe first one, the XML file, is the results Jenkins looks for to determine final status20:50
ClassBotThere are 10 minutes remaining in the current session.20:50
hggdhlooking at it, we find that the tests *did* run, but failed20:50
hggdhfor example, <testcase classname="test.DnsServerTest" name="testResolveTcp" time="0.000">20:51
hggdh<skip>Unable to perform external DNS resolution from the QA Lab&#xA;</skip>20:51
hggdh</testcase>20:51
hggdhlooking at the stderr one, we see that a 'netstat -ltnp' showed *NO* DNS server running20:52
hggdhergo, DNS failed20:52
hggdhso we would need to look at the full syslog to try to find the error20:52
hggdh(I happen to know, it was a package install failure, already corrected)20:52
hggdhyou can also subscribe to the mailing list that announces Jenkins job results20:53
hggdhhttps://lists.ubuntu.com/mailman/listinfo/ubuntu-testing-notifications20:54
hggdhyou should receive an email of all Jenkins runs that caused a change of status *from* successful, and all failed runs20:54
hggdhthis usually runs to about 30 emails per day; a really bad day may have around 100 of them20:55
ClassBotThere are 5 minutes remaining in the current session.20:55
hggdhIf you subscribe, I suggest filtering to what you want to know only (either procmail, or local email client filtering)20:55
hggdhbut we are already out of time...20:56
hggdhso. Please go to #ubuntu-testing for any questions you may have, or email ubuntu-qa@lists.ubuntu.com. we all hang the the #ubuntu-testing channel, and we all subscribe to the ubuntu-qa ML20:57
hggdhthank you,20:57
ClassBotdiwic asked: This all seems quite complex (inspecting log files etc). What are the advantages of Jenkins compared to other testing frameworks?20:57
hggdhjenkins allows us to set up different environments, from bare-metal to EC2 and KVMs, and gives us a consolidated view of all tests20:58
hggdhalso, firing off tests can be automated -- checking a bzr branch and firing off on new code, firing off on availability of a new ISO, etc20:59
hggdhthank you all again21:00
hggdh..21: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: Packaging Do's and Don'ts - Instructors: Spamaps
ClassBotLogs for this session will be available at http://irclogs.ubuntu.com/2012/01/31/%23ubuntu-classroom.html following the conclusion of the session.21:00
SpamapSHello! And welcome aspiring, current, and potential packagers!21:01
SpamapSThe reason for this quick presentation is to disseminate some important Packaging Do's and Don'ts when working in Ubuntu, and when working things back upstream into Debian.21:02
SpamapSSome of these are just my opinion, or are the general way that things are done in Ubuntu, and may not be compatible with the policies in every package in Debian and/or Ubuntu, so please as always be courteous when carrying this message forward.21:03
SpamapSAlso, some required reading, if you want to package software for Debian and/or Ubuntu:21:03
SpamapShttp://wiki.debian.org/IntroDebianPackaging21:03
SpamapSThere's also amazing information in here about ways to iterate and develop on packages in a clean and repeatable way:21:04
SpamapShttp://wiki.debian.org/mk-sbuild21:04
SpamapSWhat not to do:21:04
SpamapS* Panic!21:04
SpamapS* Use CDBS for new things21:04
SpamapS* Use dpatch (or any other patch system other than quilt)21:04
SpamapS* Use svn for new things (bzr, git, hg, but please not svn)21:05
SpamapS* Create complicated rules files21:05
SpamapSCDBS is an old way of doing packages where you include hyper-genericised Makefile rules and then feed in variables to affect the behavior. You are much better off using debhelper.21:06
SpamapSYou'll find if you use 'dh_make' to create a new package, whatever it uses is a safe and suggested practice.21:06
SpamapSdpatch has been deprecated for quilt. quilt is a patch maintenance system meant to help keep patches to upstream source code separate so they can be managed more easily.21:07
SpamapSThere is some work being done on bzr to add the 'looms' feature so quitl wouldn't be necessary, but I don't know how far along that is.21:07
SpamapSI don't like svn, because if the server is down or you are not on the internet, you cannot do multiple changes, they end up stacking up as one giant diff.21:08
SpamapSJust recently somebody suggested that bzr-svn or git-svn can be used to talk to svn for push/pull but have a local git/bzr tree, so that may work if you must use SVN for package maintenance.21:08
SpamapSNow, WHAT TO DO:21:08
SpamapS* As little as possible21:09
SpamapS* use dh_make21:09
SpamapS* use quilt21:09
SpamapS* use VCS for packaging21:09
SpamapS* use UDD for Ubuntu specific packaging21:09
SpamapSWhat I mean by as little as possible, is that packaging shouldn't be about forcing your will on users, but rather on bringing upstream's software to users while remaining compliant with policy.21:10
SpamapSSometimes that means patching and moving things around and having default configs, and all of that is good, but the best package gets smaller as upstream gets feedback from packagers.21:11
SpamapSskipping a bit.. about VCS ..21:12
SpamapSThere are multiple ways to use VCS to maintain packaging.21:12
SpamapSin Ubuntu, all packages are (or at least should) be available via bzr by doing 'bzr branch ubuntu:packagename'21:12
SpamapSMany Debian teams prefer to keep just the debian/ directory in a VCS, be it git or svn or bzr. Check with the maintainer of the package to find out how it is maintained.21:13
SpamapSFor UDD, the source and debian/ dir are kept together.21:14
ClassBotdnewkirk asked: How ought we label the version of a package? I know that it is partly based on the version of the package itself, as well as perhaps including the .git info if other patches are needed. Is there a defined practice for this? I've looked at the wiki, but did not see a general policy for this.21:14
SpamapSPackage versions are made up of an upstream version, and a debian revision21:15
SpamapSThe upstream version is generally up to the upstream, and you should try to keep that as consistent with them as possible. Everything after the last - in the version of the package is the Debian revision.21:15
SpamapSFor Debian, it is just a montonically increasing counter.21:16
SpamapSFor Ubuntu, we add 'ubuntu#' to note that our version has superseded the debian version21:16
SpamapSso if you are packaging foo version 1.2.3 for Debian, its   1.2.3-1  .. but if you are skipping Debian and adding it right into Ubuntu, it is 1.2.3-0ubuntu121:16
SpamapSa debian revision can include many many changes, as long as they are all spelled out in debian/changelog21:17
ClassBotCeno asked: What do VCS and UDD stand for?21:17
SpamapSVersion Control System21:17
SpamapSUbuntu Distributed Development21:17
SpamapSI should have included a link to UDD .. if somebody can fish it out in chat, I'll paste it here as well.21:18
ClassBotTiMiDo asked: do you need to have your GPG Sign by any devel Face to face, so they can verify you'r ID21:18
SpamapSFor Ubuntu, no, we use Launchpad as our trust network, and in theory, you don't need your key to be signed by Ubuntu developers. They just need to trust that your launchpad account is secure and lists the GPG key that is "you"21:19
SpamapSFor Debian, you do need to have your key signed by an existing Debian Developer, and most will insist on a face to face meeting.21:19
SpamapSBut if you just do packaging casually, you can have a sponsor sign your packages and upload them for you, which can also help for learning.21:20
SpamapShttp://developer.ubuntu.com/packaging/html/udd-intro.html21:20
SpamapSnoneed4anick: yes, thanks!21:20
ClassBotThere are 10 minutes remaining in the current session.21:20
ClassBotTiMiDo asked: so if i am an ubuntu member i can contribute via launchpad, and of course using bzr so i can update the branch is that it?21:21
SpamapSBeing an Ubuntu member does not give you upload permissions or permissions to push to the bzr branches that host the packages. So no. You need to apply for those to the Developer Membership Board.21:21
SpamapSI wanted to share then, a few helpful tools that have made my life easier in packaging.21:22
SpamapSFirst is sbuild and mk-sbuild, which I mentioned earlier21:23
SpamapSthese build a working chroot filesystem on your machine that you can use to build packages in an isolated and clean environment.21:23
SpamapSmk-sbuild in precise and later has a new flag, --eatmydata, which makes these even faster to use, as it disables the nasty dpkg habit of calling 'fsync' after every filesystem operation.21:23
SpamapSI recommend editting /etc/sbuild/sbuild.conf and setting   $purge_session="successful" so that your failed builds will stay around and you can rejoin them with 'schroot -c sessionid'21:24
SpamapSyou can list the active sessions with 'schroot --all-sessions -l'21:24
SpamapSAnother one is 'licensecheck2dep5'21:25
ClassBotThere are 5 minutes remaining in the current session.21:25
SpamapSWhen you are creating a new package, or importing a new upstream version, you need to make sure the source code licensing is well documented.21:25
SpamapSyou can run 'licensecheck --copyright -r .' in the root of the source and it will tell you all the copyright and licenses it can find (its VERY good at finding them)21:26
SpamapSIn the cdbs package, there is a helper script, 'licensecheck2dep5' that will take the output of that command, and turn it into an almost-complete debian/copyright file for you.21:26
ClassBotjincreator asked: What's different between pbuilder and sbuild?21:27
SpamapSjincreator, I used to be a pbuilder user, and now I use sbuild. Their basic premise is the same.. a chroot which you build inside to make things cleaner.21:27
SpamapSjincreator: however, sbuild has a few advantages.. the biggest one being that it is what the Ubuntu buildds use, so you are closer to what Ubuntu will use to build your actual package.21:28
SpamapSjincreator: there is also the fact that sbuild can make use of btrfs and/or lvm snapshotting to make schroot cleanup faster and less of a disk hog.21:28
SpamapSThats all I have today. If you want to get started packaging, I'd suggest coming to #ubuntu-devel, finding a bug, and working on it with us. Thanks for the excellent questions everyone!!21:29
cyphermoxThanks SpamapS :)21: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: Incorporating upstream changes in Ubuntu - Instructors: cyphermox
ClassBotLogs for this session will be available at http://irclogs.ubuntu.com/2012/01/31/%23ubuntu-classroom.html following the conclusion of the session.21:30
cyphermoxHi and welcome to my session!21:31
cyphermoxMy name is Mathieu Trudel and I'm a developer in the Ubuntu Desktop team. Some of the things I'm known for touching are NetworkManager and Evolution :)21:31
cyphermoxI'll be talking about incorporating upstream changes in Ubuntu. This is something we do relatively often in order to fix bugs that are discovered.21:31
cyphermoxSince I'm part of the Ubuntu Desktop team, I'll focus on some of the ways we deal with such a task in the team. There are usually slightly different workflows depending on the teams, but most of it comes down to the same.21:32
cyphermoxI'll go relatively quick for the first part, and answers questions at the end.21:32
cyphermoxIf you miss anything, don't worry, it's all right here: http://people.ubuntu.com/~mathieu-tl/presentations/incorporating_changes_into_Ubuntu.txt21:32
cyphermoxThere are at least three ways by which you can incorporate upstream changes in Ubuntu:21:32
cyphermox1) Taking an brand new version (with a very different version number, or just a "bugfix" release)21:33
cyphermoxI'll actually let coolbhavi talk about this; he has a session tomorrow, Wednesday Feb 2nd, at 16:00 UTC where he would be covering that. (It's called "How to update a package to the latest upstream version in the repositories")21:33
cyphermoxIn reality, it's the "simplest" way, where you'd upgrade the package to a newer upstream version directly, in the case where that fixes bugs and doesn't have too high a risk of introducing new ones.21:33
cyphermox2) Taking a "snapshot" of an upstream source repository.21:34
cyphermoxThis is similar to taking a brand new version. In this case, you would use packaging tools to generate a new upstream tarball to be used as your "new upstream version". For instance, gnome-pkg-tools knows how to grab source from a git tree.21:34
cyphermoxSome packages use this often, but as a general rule of thumb, we try to avoid it: using a snapshot of upstream code has a pretty high chance of also including bugs that haven't been discovered or fixed yet. The reason why is pretty simple: if it's not released yet, it's probably still a work in progress.21:34
cyphermoxAll in all though, the process is the same as for a new upstream release, with the added step that you need to make your own tarball.21:34
cyphermoxand... Any questions so far?21:35
cyphermoxI'll just assume not and carry on21:35
cyphermox3) Cherry-picking patches from upstream.21:36
ClassBotTiMiDo asked: what's the difference between ubuntu-devel and ubuntu-motu teams?21:36
cyphermoxTiMiDo: there isn't much of a difference, really. the Ubuntu-devel channel and the Ubuntu developers team in general is a superset of all the various development teams. Everybody is interested in development. Then the ubuntu-motu team and channel have a bit more of a specialist task, where they'd look after packages in universe, or unseeded packages, which is a whole lot of things we get from Debian but for which21:38
cyphermoxthere isn't necessarily someone looking after on a day to day basis21:38
cyphermoxI guess this would be my response21:38
cyphermoxMOTU is also a great place to ask for help if you're starting to learn about packaging21:39
cyphermoxWe now get to the main subject, a demo of how one would integrate upstream changes (in the form of a patch) into Ubuntu.21:39
cyphermoxPatches can come from a variety of sources: you could write your own, get it from a bug report upstream, or from a bug report against Fedora, or from Debian. To demonstrate how we would do this, I've chosen an example task. We'll fix a small bug in Evolution, everybody's favorite mail client :)21:40
cyphermoxI'll take that opportunity to plug the Operation Cleansweep, also know as the Ubuntu Review team. They look at the quality of patches attached to bugs in Launchpad. I haven't prepared anything about this really, but you're welcome to ask me about it. That's who looks at the patch, patch-submitted-upstream, etc. tags on bugs21:41
cyphermoxback to preparing a patch...21:41
cyphermoxthere's a few key things you'll need first21:42
cyphermox- a system running Precise. sorry, I really planned my demo around this, though in reality it's really not a very different process21:42
cyphermox- the branch for Evolution (more on this in a minute)21:43
cyphermox- build-dependencies for evolution (I'll get to that as well, but if you want to get started: "sudo apt-get build-dep evolution")21:43
cyphermox- and you'll also need bazaar, and the builddeb plugin to bazaar ("sudo apt-get install bzr bzr-builddeb").21:44
cyphermoxWith a bit of luck I'm not forgetting any of the pieces :)21:44
cyphermoxFor this, you'll need to have a copy of the evolution packaging branch, which is maintained by the Ubuntu Desktop team. On a fast system, this only takes a few seconds:21:44
cyphermoxbzr branch lp:~ubuntu-desktop/evolution/ubuntu evolution21:44
cyphermoxThis command basically downloads the source for the evolution package from Launchpad.21:45
cyphermoxThe next step is to get in that directory. You'll notice it only contains a debian/ directory, which is a slightly different, but similar process from using UDD branches (full package branches, coming from lp:ubuntu/package or ubuntu:package, when it's not maintained elsewhere).21:45
cyphermoxFor full package branches (UDD branches), barry will be doing a session about this tomorrow, Wed Feb 1, at 19:00 UTC21:47
cyphermoxThe process is pretty similar, with the difference that the branch contains both the debian/ directory and the full source code for the package21:47
cyphermoxThe way to know what branch to use is generally to rely on the Vcs-Bzr field in the debian/control file. Unfortunately, that field isn't always present or pointing to the right place, and isn't obvious to see before downloading the source anyway. Fortunately, the 'debcheckout' command helps with that.21:47
cyphermoxdebcheckout evolution21:47
cyphermoxWould yield the same result as the previous command I suggested. If it's not done downloading, let it run, we'll look at other things in the meantime :)21:48
cyphermoxAs a next step, let's go see what kind of bug we could fix: https://bugs.launchpad.net/evolution/+bug/92435621:48
cyphermoxeverybody got this far?21:48
cyphermoxI've opened this one myself. There's an associated upstream bug (https://bugzilla.gnome.org/show_bug.cgi?id=651221) which was opened by somebody else, and it's actually fixed in a commit upstream. We can then go take that patch and include it in the package.21:49
cyphermoxNow, the bug report mentions two things: one is an actual patch that we could probably take immediately since it's most likely what was committed, as well as a commit ID. We can get to this commit id: http://git.gnome.org/browse/evolution/commit/?id=3dc8b0b21:49
cyphermox(I'm obviously talking about the Gnome Bug report here)21:49
cyphermoxLooking back at the bug report however, it's mentioned being for 3.3.5 and above, in git branch "master"... This won't affect us now, but sometimes patches for different versions than what we're using could take substancial amounts of rework to apply properly.21:50
ClassBotThere are 10 minutes remaining in the current session.21:50
cyphermoxSave the patch (click "(patch)" near the top of the commit page, then Save As), with a name that will make sense to you and to others. The cool thing with this particular form of patch is that it already contains tags along the top that identify its provenance, and is already in the right format to be saved directly in the debian/patches/ directory. This is possible because the evolution package uses quilt to21:50
cyphermoxmaintain patches.21:50
cyphermoxAs a general rule I try to make it clear that a patch from a git tree comes from a git tree, and where exactly it comes from. This one, I'd name something like "git_edit_new_default_email_3dc8b0b.patch". Note the reuse of the commit ID, just so that it's as clear as possible where this comes from.21:51
cyphermoxWhen comes time to update the package to a new version, it's (hopefully) easier to tell that a patch coming from git can probably be simply dropped, since it will already have been included in the new release.21:51
cyphermoxContinuing... In an ideal world there isn't much left to do, but sometimes patches don't quite apply right, or need a bit of changes to do the right thing. Let's see how it goes and add its name to the end of the file 'debian/patches/series'. (Assuming you're in the package's directory)21:52
cyphermoxecho "git_edit_new_default_email_3dc8b0b.patch" >> debian/patches/series21:52
cyphermoxBecause we're working in version control, we really also need to add the patch file to version control:21:52
cyphermoxbzr add debian/patches/git_edit_new_default_email_3dc8b0b.patch21:52
cyphermoxAnd we'll also add an entry to changelog to describe what we've been doing and to close the bug report. This is usually done using the 'dch' or 'debchange' command; and with the -i switch, which adds a new entry. If you try this now though, you'd see that it adds a new entry, however there's one under it marked UNRELEASED. This is because I had already started work on that package :)21:52
cyphermoxLet's use "dch -a" instead. A new entry will be added under mine, normally with your name in brackets just above it.21:53
cyphermoxAdd the information about what we've done. We've added a file, so let's name it, and explain what it does and close the bug, all that beside the *:21:53
cyphermoxdebian/patches/git_edit_new_default_email_3dc8b0b.patch: use an account's21:53
cyphermoxassociated email address rather than the default address when editing new21:53
cyphermoxmessages. (LP: #924356)21:53
cyphermoxTry your best to limit the lines to 80 characters and align the start with the other lines. With this done, let's try to test build the package (you need bzr-builddeb for that, and the build dependencies for evolution, so let's get all of this too)!21:53
cyphermoxsudo apt-get install bzr-builddeb21:54
cyphermoxsudo apt-get build-dep evolution21:54
cyphermoxbzr bd21:54
cyphermoxBzr-builddeb will try to build the package, starting with getting the source tarball for you from the archive. If all goes well, you'd have a .deb package at the end of this to use to test your own work.21:54
cyphermoxI'll take questions again. Don't forget to add QUESTION:  before it, it helps a lot to make sure I see it :21:55
ClassBotThere are 5 minutes remaining in the current session.21:55
cyphermoxOnce this is done, you'd go ahead and test the same build in a pbuilder or schroot after building a source package (bzr bd -S); and if that goes well too you could commit your changes, release the package, and submit a merge proposal or upload.21:56
cyphermoxdebcommit       # commit my changes21:56
cyphermoxdch -r          # release to precise (all this does is change UNRELEASED to precise and update the timestamp)21:56
cyphermoxdebcommit -r    # commit the release21:56
cyphermoxThese are the three steps condensed in commands21:56
cyphermoxWith this done, you could push the branch to your launchpad account (name it something that makes sense to you, but it should be under your launchpad ID, and in the evolution project):      bzr push lp:~yourname/evolution/lp92435621:57
cyphermoxAnd propose a merge:         bzr lp-propose lp:~ubuntu-desktop/evolution/ubuntu21:57
cyphermoxFrom there, a developer will be able to review your changes and upload them.21:57
cyphermoxI can go in more details for anyone who asks, I don't think there's another session next :)21:58
cyphermoxThanks all for attending! :)22:00
ClassBotLogs for this session will be available at http://irclogs.ubuntu.com/2012/01/31/%23ubuntu-classroom.html22: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 ||
kanliot                                                                                                                                                                                                                                                                                                                                                                                                                                                                   22:20
kanliot                                                                                                                                                                                                                                                                                                                                                                                                                                                                   22:20
kanliot                                                                                                                                                                                                                                                                                                                                                                                                                                                                   22:20
kanliot                                                                                                                                                                                                                                                                                                                                                                                                                                                                   22:20
kanliot                                                                                                                                                                                                                                                    22:20
=== hacosta__ is now known as hacosta

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