LPHosting

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: <Shiv> 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:  <Shiv> 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: <Solarion> 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: <Shiv> 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: <Solarion> 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: <Picklesworth> 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: <Solarion> 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: <Solarion> 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: <Solarion> 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: <Solarion> 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: <db-keen> 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: <Solarion> 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: <Solarion> 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: <Solarion> 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: <Solarion> 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: <Solarion> 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: <jsauer> 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: <Mirrado> 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: <db-keen> 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: <Solarion> 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: <Mirrado> 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: <eddyMul> 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: <eddyMul> 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: <eddyMul> (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: <thumper> 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> \o/ <o/ \o>
(01:00:54 PM) thumper: Mirrado: some of those are there, more are planned
(01:01:04 PM) Mirrado: Thanks thumper

MeetingLogs/devweek0802/LPHosting (last edited 2008-08-06 16:40:39 by localhost)