== Dev Week - Hosting Code With Launchpad -- Tim Penhey -- Wed, Feb 20 == {{{ (12:00:01 PM) dholbach: ok it's 17:00 UTC (12:00:06 PM) dholbach: and thumper is already here (12:00:13 PM) thumper: I am (12:00:29 PM) thumper: dholbach: get into it now? (12:00:44 PM) dholbach: thumper is Tim Penhey, a Launchpad Hacker who among others made the goodness that http://code.launchpad.net/ is possible (12:00:57 PM) ***thumper bows (12:01:05 PM) thumper: = Hosting Code With Launchpad = (12:01:07 PM) dholbach: I hope you all enjoy the session and ask your questions in #ubuntu-classroom-chat (12:01:14 PM) dholbach: thumper: the stage is yours :) (12:01:20 PM) thumper: dholbach: thanks (12:01:31 PM) thumper: This is my first time working with dholbach and ubuntu open week (12:01:40 PM) thumper: so be gentle (12:01:56 PM) thumper: Just so I feel like I'm not just talking to myself the whole time (12:02:04 PM) thumper: who is around for this one? (12:02:14 PM) InsClusoe: 0/ (12:02:19 PM) Shiv: 1/ (12:02:24 PM) nxvl: o/ (12:02:25 PM) daishujin: +1 (12:02:29 PM) Iulian: I am (12:02:34 PM) thumper: cool (12:02:37 PM) dustinlange: +1 (12:02:42 PM) db-keen: +1 (12:03:03 PM) thumper: As dholbach said, my name is Tim and I am the team lead for the launchpad-bazaar integration (12:03:12 PM) thumper: Our job as a team is to make using Launchpad with Bazaar better than the sum of the parts (12:03:20 PM) thumper: Launchpad by itself is really nifty (12:03:29 PM) KEB1: is teh sessoin alreday running? (12:03:29 PM) thumper: Bazaar by itself rocks (12:03:34 PM) thumper: KEB1: yep (12:03:45 PM) thumper: our job is to make using Launchpad and Bazaar together really blow your socks off (12:03:52 PM) thumper: As some of you may suspect, part of this was prepared in advance :) (12:04:01 PM) thumper: == Bazaar == (12:04:07 PM) Grazieno: +1 (12:04:08 PM) thumper: A very quick intro (12:04:19 PM) thumper: Bazaar is a distributed version control system found at http://bazaar-vcs.org (12:04:29 PM) thumper: Bazaar is installed on all ubuntu machines by default, and is the command 'bzr' (12:04:39 PM) thumper: You don't need a central repository to manage your code (12:04:53 PM) thumper: and that's all I'm going to say about it right now (12:05:01 PM) thumper: == Launchpad == (12:05:10 PM) thumper: Trying to describe what Launchpad is in just a few words is really hard (12:05:32 PM) thumper: QUESTION: Sounds lame, but nevertheless - is bazaar by ubuntu and for what purpose ? (12:05:39 PM) thumper: Bazaar is a community project (12:05:53 PM) thumper: but several lead developers a canonical employees (12:06:59 PM) thumper: Bazaar was sponsored by canonical because at the time there were no DVCS available that provided the functionality that was looked for (12:07:25 PM) thumper: QUESTION: (continue) so what role does bzr play for ubuntu, or is it a standalong product ? (12:07:33 PM) thumper: bzr is a standalone product (12:07:52 PM) thumper: but it is also a tool for collaborative software development (12:08:13 PM) thumper: more will become apparent as I go on (12:08:20 PM) thumper: Launchpad aims to make it easier to collaborate in open source software development (12:08:30 PM) thumper: Launchpad is a bug tracker, feature planner, translation manager, handles questions and answers, and a source code repository (12:08:49 PM) thumper: or as kiko has mentioned in a blog post, a source code supermarket (12:08:54 PM) thumper: What we are here to talk about today is working with code and launchpad together (12:09:11 PM) thumper: (using bzr as a package management tool is a whole different session, sorry Shiv) (12:09:26 PM) thumper: As far as Launchpad is concerned, code is stuff in Bazaar branches (12:09:38 PM) thumper: Yes, you can put other stuff in branches too, but we think of it as code (12:10:02 PM) thumper: To get a quick overview of the projects that have code available, you can look at https://code.launchpad.net/+project-cloud (hopefully you don't all go there at once) (12:10:29 PM) thumper: Bazaar is a relative new-comer in the version control stakes, and as such many projects use other revision control systems (12:10:47 PM) thumper: Launchpad can import CVS and Subversion branches into bazaar branches and make these available through Launchpad (12:11:15 PM) thumper: These are considered "imported" branches, and are owned by the vcs-imports user (https://code.launchpad.net/~vcs-imports) (12:11:38 PM) thumper: If you have your code in a bazaar branch now, you can either "push" your branch to Launchpad (using `bzr push`) or get Launchpad to mirror your branch from a public, accessible location (12:12:08 PM) thumper: One of the recent improvements to the user interface to bzr (read that as command line), is to be able to use an URL scheme of lp: to reference launchpad. (12:12:20 PM) thumper: QUESTION: given all that Launchpad is, is it intended to be like SourceForge, Novell Forge, GNU Savannah, etc.? (12:12:24 PM) thumper: Yes, and then some (12:12:42 PM) thumper: So I can go `bzr branch lp:gnuhello` to get a copy of gnuhello (you can too). (12:13:04 PM) thumper: If you have a launchpad identity, you need to make sure that you have specified a SSH key in order to push to launchpad (https://launchpad.net/people/+me/+editsshkeys). (12:13:20 PM) thumper: This is how launchpad confirms that it is you (12:13:21 PM) KEB1 left the room ("Leaving."). (12:13:24 PM) ***thumper pours more coffee (12:14:02 PM) thumper: QUESTION: Why another tool (bzr) instead of adapting distributed versioning tool like hg ? (12:14:32 PM) thumper: bzr and hg both have a similar basis and both started development at around the same time (12:14:44 PM) thumper: bzr had a different set of ideals than hg (12:14:55 PM) thumper: and we believe the future is bzr (but we are biased) (12:15:14 PM) thumper: Since my username is thumper for Launchpad, I can push a copy of gnuhello that I'd just branches by using `bzr push bzr+ssh://thumper@bazaar.launchpad.net/~thumper/gnuhello/my-branch` (12:15:25 PM) thumper: I'm sure you can agree that is somewhat unwieldy (12:15:39 PM) thumper: Bazaar gets shipped with a launchpad plugin which allows some nifty additions (12:15:53 PM) thumper: You can tell bzr about your launchpad id by using `bzr launchpad-login` and your launchpad id (12:16:01 PM) thumper: so mine would be `bzr launchpad-login thumper` (12:16:17 PM) thumper: Then you can push directly to launchpad using `bzr push lp:~thumper/gnuhello/my-branch` which is somewhat shorter (12:16:31 PM) thumper: QUESTION: are there plugins for git, hg, etc. planned for LP integration? (12:17:07 PM) thumper: before we could look at integrating them, they need to be able to handle incremental imports (12:17:13 PM) thumper: but yes, we are considering them (12:17:44 PM) thumper: The push to an lp scheme url require bzr 1.1 I think (12:17:54 PM) thumper: QUESTION: by "bazaar" you mean "bazaar-ng", right? ;) (12:18:11 PM) thumper: bazaar-ng is an old term that has been superseded (12:18:13 PM) thumper: :-) (12:18:23 PM) thumper: there is quite a history with the tool (12:18:43 PM) thumper: There was an older bazaar with the command 'baz' (12:18:53 PM) thumper: which was replaced by Bazaar-NG (12:19:00 PM) thumper: which then took over the name (12:19:11 PM) thumper: so we don't call it Bazaar-NG any more, just Bazaar (12:19:31 PM) thumper: BTW if you are wanting the latest bzr, use the Bazaar developers PPA (https://launchpad.net/~bzr/+archive) (12:19:54 PM) thumper: Branches in Launchpad are identified by a tripartite name, the owner of the branch, the project, and the branch name these three parts need to be unique in Launchpad (12:20:09 PM) thumper: Branches can be owned by individuals, like you and me, or by teams, such as bzr (https://launchpad.net/~bzr) or mailman-coders (https://launchpad.net/~mailman-coders) (12:20:30 PM) thumper: When a branch is owned by a team, any active member of that team can push to that branch to update it (providing it is not mirrored from elsewhere) (12:20:54 PM) thumper: Why put branches on Launchpad I hear you say? (12:21:07 PM) ***thumper hits the end of his pre-prepared notes (12:21:25 PM) thumper: Firstly it makes you code available to others (12:21:40 PM) thumper: since bzr is a distributed version control system, your commits for your work are local (12:21:49 PM) thumper: until you make them available to other, people can't merge them (12:21:58 PM) thumper: (bundles and merge-directives aside) (12:22:25 PM) thumper: and as of Launchpad 1.2.2 you'll get karma for registering brances :) (12:22:44 PM) thumper: You are able to link branches to bugs and blueprints to show intent (12:22:56 PM) thumper: branches linked to bugs indicate that the branch will fix, or does fix the bug (12:23:10 PM) thumper: branch linked to a blueprint indicate that the branch does or will implement the feature (12:23:30 PM) thumper: QUESTION: Are branches in bzr a neat way to submit patches, a way of different people working on different chunks of project, or both, or neither? (12:23:42 PM) thumper: Picklesworth: you've hit the nail on the head with that one (12:23:48 PM) thumper: that is exactly the intent (12:24:14 PM) thumper: with traditional centralised source control systems you need commit rights to write to the central repository (12:24:20 PM) thumper: like with CVS and Subversion (12:24:26 PM) thumper: with bzr you can make your own branch (12:24:31 PM) thumper: commit with useful messages (12:24:38 PM) thumper: and there is a tracability there (12:24:48 PM) thumper: you can make the branch available for the core developers (12:24:53 PM) steffen_: cool! (12:25:02 PM) thumper: and if the like your change, they can merge your branch in (12:25:20 PM) thumper: which keeps the attribution to the original author, commit message, complete history et al (12:25:44 PM) thumper: QUESTION: given that, what's the point of bundles? (12:26:05 PM) thumper: bundles are the ability to send bzr revisions (your work) to people using email (12:26:21 PM) thumper: bundles have been superseded by bzr merge-directives which contains additional meta-data (12:26:38 PM) thumper: QUESTION: Given that a big aim of LP is to promote coordination and collaboration in FOSS, what are you doing to interoperate with the aforementioned source-forge alikes? (12:27:04 PM) thumper: Launchpad has the ability to have bug-watches on the other systems to where the primary bug tracker is elsewhere (12:27:31 PM) thumper: Launchpad can also import the code from CVS or Subversion to make it available to be used in the way mentioned above (12:27:49 PM) thumper: QUESTION: how does LP handle (write) permissions? Can you give a project member access to a portion of the branch, or is it all/nothing? (12:28:03 PM) thumper: No you cannot give access to portions of a branch (12:28:11 PM) thumper: that is limited by the bzr tool (12:28:16 PM) thumper: however there are other options (12:28:41 PM) thumper: projects like zope have recently broken up the large source tree into many small ones (12:28:55 PM) thumper: this allows them to have fine grained control over permissions (12:29:08 PM) thumper: Launchpad controls write access to branches through the owner of the branch (12:29:19 PM) thumper: if the owner is a team, then the team can write to the branch (12:29:47 PM) thumper: QUESTION: what sort of IM/voice/email/whiteboard/video capabilities does LP have? (12:29:58 PM) thumper: While this is somewhat off topic... (12:30:09 PM) thumper: Launchpad has email lists in beta test (12:30:36 PM) thumper: and many Launchpad elements have either whiteborads to leave comments on or can be commented on my any logged in user (like bugs) (12:30:46 PM) thumper: no video, im or voice right now (12:31:05 PM) thumper: QUESTION: any eclipse and emacs integration planned? (12:31:21 PM) thumper: there is an eclipse plug-in for bzr, but not launchpad at this time (12:31:48 PM) thumper: there is an api project in the works that will open up all you can do with Launchpad through the web ui to external developers (12:32:10 PM) thumper: but that is most likely still a few months off before parts start becoming available (12:32:22 PM) thumper: QUESTION: why doesn't launchpad allow getting bugs from an arbitrary gforge site since they all use the same soap interface (12:32:32 PM) thumper: db-keen: sorry, don't know the answer for that (12:32:49 PM) thumper: QUESTION: how does LP mesh with the debian system? E.g. support for dch and friends, as discussed yesterday. (12:32:56 PM) thumper: Solarion: sorry, don't know that either (12:33:29 PM) thumper: QUESTION: what would you say the biggest limitations of LP are in terms of what you would like it to do and in terms of what its competitors do? (12:33:40 PM) thumper: Solarion: not enough time in the day (12:33:55 PM) Solarion: thumper: isn't that ubuntu bug #2? ;) (12:33:56 PM) thumper: we have some really amazing things in the works (12:34:14 PM) thumper: QUESTION: how does bzr communicated with LP? (12:34:34 PM) thumper: bzr can talk to Launchpad using either SFTP or the bzr smart server (bzr+ssh) (12:35:16 PM) thumper: The SFTP is being deprecated (soon maybe) in favour of bzr+ssh due to the speed improvements that the smart server gives us (12:35:34 PM) thumper: QUESTION: what interfaces does LP provide for those wishing to integrate with it, e.g. with a gnome applet or something? (12:35:46 PM) thumper: Solarion: that'll be the afore mentioned API that's in the works (12:36:04 PM) thumper: QUESTION: so bzr's LP integration is just for dealing with branches, not bugs or whatever? (12:36:15 PM) thumper: bzr has an option on commit to say --fixes (12:36:45 PM) thumper: I think the option looks something like `bzr commit -m "Fixed foo" --fixes=lp:1234` (12:37:01 PM) thumper: when Launchpad scans this revision it creates the link between the bug and the branch (12:37:18 PM) thumper: we are considering how to determine other think like actually updating the bug task status (12:37:31 PM) R1CHARD: alo (12:37:33 PM) thumper: but you have the question of what is fix committed and what is fix released in the DVCS world (12:37:56 PM) thumper: is a bug fix committed when there is a fix on *some* branch, or is it fix committed when it is on trunk? (12:38:11 PM) thumper: for these reasons, we haven't yet hooked that bit up (12:38:39 PM) thumper: now for some new interesting developments (12:38:50 PM) thumper: QUESTION: Is it planned that project can host their websites on LP? (12:39:07 PM) thumper: yes it is planned, but I can't give an ETA right now (12:39:31 PM) thumper: another way to show intent in Launchpad is the "Propose for merging" (12:39:52 PM) thumper: when you have a branch associated with a project in Launchpad, you can say that it is to be merged into another branch (12:40:19 PM) thumper: the default option is to be merged into the development focus branch, but you can specify any branch for the project as a target (12:40:30 PM) thumper: this will create a link between the two branches (12:40:40 PM) thumper: initially this link has a "Work in progress" state (12:40:55 PM) thumper: You can update this to "Needs review" when it is ready (12:41:06 PM) thumper: here is where we are linking in the new code review feature (12:41:16 PM) thumper: this is work in development (12:41:20 PM) thumper: well the code review feature is (12:41:52 PM) thumper: a person who is in the owner team of the target branch can approve or reject the proposal to merge (12:42:04 PM) thumper: and here is were we get to more work in development... (12:42:16 PM) thumper: soon you'll be able to queue up approved proposals (12:42:38 PM) thumper: and there will be a robot (read some magic script) that'll talk to launchpad (12:42:51 PM) thumper: get the branch at the head of the queue (12:42:57 PM) thumper: merge the source into the target (12:43:03 PM) thumper: run the tests (just like PQM) (12:43:11 PM) thumper: and push the resulting branch to Launchpad (12:43:35 PM) thumper: PQM is a bzr tool (12:43:44 PM) thumper: PQM stands for "Patch Queue Manager" (12:43:50 PM) thumper: however now it deals with branches (12:44:06 PM) thumper: PQM uses email to manage the queue, so you email it to tell it to merge something (12:44:23 PM) thumper: we are going to use the same central code, but use launchpad to control the queue rather than email (12:45:09 PM) thumper: QUESTION: Is it planned to include in LP a resource for project management in the shape of Planner or MS Project? (12:45:22 PM) thumper: Mirrado: yes that is planned (12:45:32 PM) thumper: although I'm not sure exactly what is planned (12:45:45 PM) thumper: it has been mentioned that we'd like some more detail along that front (12:46:26 PM) thumper: so, any other questions now? (12:47:42 PM) thumper: QUESTION: Ohloh recently released their code analysis code http://labs.ohloh.net/ohcount/, is that sort of thing expected to be in launchpad? (12:48:05 PM) thumper: db-keen: maybe is all I can say right now (12:48:15 PM) thumper: I don't think we have any definite plans right now (12:48:58 PM) jsauer: aso (12:49:18 PM) thumper: The main thing we are trying to do is make it easier for people to collaborate on code through Launchpad (12:49:53 PM) thumper: We want Launchpad to be a place where people can get code for (almost) any project (12:50:04 PM) thumper: through the `bzr branch lp:some-project` (12:50:22 PM) thumper: QUESTION: how can LP help with dependency tracking? or autotools integration (12:50:47 PM) thumper: Solarion: I don't think we have anything there, and to be honest I don't really know how we'd model it (12:51:04 PM) thumper: QUESTION: Through LP is any way to get metrics about code hosted on bzr? (12:51:14 PM) thumper: Mirrado: what sort of metrics are you after? (12:51:24 PM) thumper: but the answer right now is no (12:51:48 PM) thumper: the only thing we show right now is how many branches there are (12:51:52 PM) thumper: not what's inside them (12:52:34 PM) thumper: QUESTION: If I want to migrate a project from Trac to Launchpad, how challenging of a task is it? (12:52:53 PM) thumper: eddyMul: I guess it depends on how much you want to take with you (12:53:10 PM) thumper: eddyMul: I think there are bug importers around but worthwhile asking on #launchpad (12:54:00 PM) thumper: FYI most of the LP bug developers are in the EU timezone (12:54:39 PM) thumper: if you have other questions you think of later, I'm always around in #launchpad (12:54:58 PM) jsauer left the room (quit: Nick collision from services.). (12:54:59 PM) thumper: so feel free to ping me, and if I'm not around, I'll get to it when I get back (12:55:12 PM) jsauer_ is now known as jsauer (12:55:34 PM) thumper: QUESTION: came in late, but are there any license restriction w.r.t. code hosted in LP? (12:55:52 PM) thumper: Whey you register a project in launchpad, you tell launchpad which licence it uses (12:56:05 PM) thumper: eddyMul: does that answer your question? (12:56:39 PM) thumper: (what source code license are "hostable"?) (12:56:41 PM) eddyMul: thumper: I've never registered a project before... but I assume I'll be presented w/ a list of licenses.... What if my license is not there? (12:56:51 PM) thumper: there is an other box (12:57:02 PM) thumper: any open source code is hostable on launchpad (12:57:30 PM) thumper: we have around 2.5 minutes left (12:57:34 PM) thumper: any last requests? (12:58:02 PM) eddyMul: thumper: does LP support multi-licensed software? (e.g. Mozilla) (12:58:25 PM) thumper: You could look to see what http://launchpad.net/firefox says (12:59:09 PM) eddyMul: thumper: Licenses: None specified. :) (12:59:14 PM) thumper: :) (12:59:43 PM) thumper: so, that's a wrap (01:00:02 PM) Picklesworth: thumper: Thank you! This was really informative (01:00:03 PM) thumper: dholbach: back to you (01:00:11 PM) Solarion: thumper: thanks (01:00:16 PM) dholbach: thanks a lot thumper for this great session! (01:00:17 PM) eddyMul: thanx, thumper (01:00:20 PM) Mirrado: code branches, bugs over time, bugs over release cycle, commits over release cycle, lines of code over project life time, etc (01:00:27 PM) barcc: thanks (01:00:33 PM) jsauer: thanks thumper (01:00:38 PM) ***nxvl dances (01:00:39 PM) nxvl: \o> \o/ (01:00:54 PM) thumper: Mirrado: some of those are there, more are planned (01:01:04 PM) Mirrado: Thanks thumper }}}