Revision 3 as of 2010-03-01 20:58:40

Clear message

Ubuntu Opportunistic Developers Week March 2010 - Integrated development workflow with Ground Control - Martin Owens - Mar 1 2010

(03:01:02 PM) doctormo: Hello everyone
(03:01:23 PM) doctormo: We're here today to talk about Ground Control
(03:01:54 PM) doctormo: So who here doesn't know what Ground Control is?
(03:02:08 PM) doctormo: OK
(03:02:31 PM) doctormo: So traditionally to get into Ubuntu development, where you can collaborate with other members of the community
(03:02:56 PM) doctormo: You'd have to set up a launchpad account, set up your ssh keys, learn bzr and do a lot of red tape in the launchpad website
(03:03:14 PM) doctormo: The ssh keys was actually the biggest barrier in userbillity studies
(03:03:44 PM) doctormo: So what I've done is I've created a project called Ground Control that intergrates into launchpad
(03:03:54 PM) doctormo: Sorts out your ssh keys, oauth tokens
(03:04:00 PM) doctormo: Automatically
(03:04:25 PM) doctormo: Then provides an interface in nautilus for dealing with launchpad projects and bzr branches
(03:04:47 PM) doctormo: You can see a demonstration video of the version 1.0 here:
(03:05:54 PM) doctormo: In essence what we want to do is provide a way for _everyone_ to be able to use launchpad and the ubuntu desktop to create projects, get involved with existing projects and just feel more able to grab code and learn form it.
(03:06:08 PM) doctormo: Does everyone have ground control installed?
(03:06:30 PM) doctormo: <- you can get it here
(03:07:15 PM) doctormo: So the problem right now is that launchpad just changed it's login protocal to openid and groundcontrol is broken.
(03:07:48 PM) doctormo: There isn't a lot we can do about that right now and since it's the configuration part, it's fairly useless without it.
(03:08:46 PM) doctormo: For those who already had it installed and already logged in, you should be fine.
(03:09:30 PM) doctormo: But I'm going to guess that we're all new here.
(03:11:47 PM) doctormo: Right, so you can't use it right now no.
(03:12:35 PM) doctormo: What we can do though is go through the work flow
(03:15:29 PM) doctormo: OK so I've given you guys a couple of mins to finish the video off
(03:16:12 PM) doctormo: When you first install GC (ground control), you will find a new menu item in your System > Preferences
(03:16:36 PM) doctormo: This ground control configuration allows you to input your launchpad email address and password
(03:16:51 PM) doctormo: and have the service activate everything required for development
(03:17:08 PM) doctormo: It will also create a ~/Projects directory for you to hold all your projects
(03:17:21 PM) doctormo: When you navigate to the Projects directory using nautilus file browser
(03:17:47 PM) doctormo: You will see a bar at the top which says that you can [Create Project], [Fix a Bug] or [Fetch Project]
(03:17:57 PM) doctormo: This allows you to step onto threee different workflows
(03:18:22 PM) doctormo: Creating a project will create the directories locally for setting up your new project.
(03:18:31 PM) doctormo: As well as a new trunk branch
(03:19:09 PM) doctormo: This you can then start filling in files, and making your project. Once your happy with it, you can commit the code and it will automatically create the project in launchpad.
(03:19:59 PM) doctormo: You then can invite other people to download your project and see what you've written
(03:20:05 PM) doctormo: Using the Fetch Project button
(03:20:32 PM) doctormo: This create a directory for the project and allows you to then download branches of code associated with the project.
(03:21:15 PM) doctormo: Don't worry if you don't see Create Project, it's a new feature so older stable releases don't have it yet.
(03:21:59 PM) doctormo: After downloading the code they can modify files and commit them back into launchpad under a different name from your trunk branch.
(03:22:12 PM) doctormo: Then ground control will offer them a merge request button
(03:22:43 PM) doctormo: which sends off a ticket to the original developer saying that this fix or addition is finished and needs to be submitted.
(03:23:28 PM) doctormo: If it's your project, then you won't want to merge in your own changes, but instead will be merging in other peopole's
(03:24:04 PM) doctormo: For that there is a button [Merge In] which allows you to see a list of all the merge requests and select from them which should be merged in and tested locally by you.
(03:24:17 PM) doctormo: Once your happy with the modifications someone els ehas made
(03:24:34 PM) doctormo: You can commit them like you usually would using the [Commit Changes] button.
(03:25:14 PM) doctormo: The [Fix Bug] button is a special workflow
(03:25:47 PM) doctormo: It allows you to select from a list of a project's open bug reports and have it download the trunk branch in preparation for you to try and fix it.
(03:26:12 PM) doctormo: When you've fixed it, it commits the code, attaches the branch to the bug report and uploads the code with a merge request all in one action.
(03:26:51 PM) doctormo: Any questions so far?
(03:27:10 PM) doctormo: <M58> QUESTION: Does [Fix Bug] install packages required to build the project?
(03:27:23 PM) doctormo: M58: No, not yet, but there are plans afoot for that.
(03:27:37 PM) doctormo: <diplo> doctormo, I  already have a dir called ~/Projects, does this directory only have to have code for Ground Control or is it happy to co-exsist ?
(03:27:51 PM) doctormo: You can have an existing Projects directory, it won't interfere.
(03:28:24 PM) doctormo: It's based on context, so if you put the .groundcontrol file into another directory, you'll then be using that directory as your base of operations.
(03:29:36 PM) doctormo: <doliomp95> QUESTION: When I hit [Fix Bug] is there anyone informed about my try to fix this bug? I mean, what happens if I just decide to leave it alone, will someone wait for me to fix this bug?
(03:30:09 PM) doctormo: doliomp95: There is no notification in the bug report that you've downloaded the code to fix the bug. Not until you've submitted the fix will it notify anyone.
(03:31:48 PM) doctormo: <bananeweizen> QUESTION: Is there any "sandbox" project for people wanting to try ground control for the first time? I really want to change typos, missing translation markers and other things in some projects but I'm afraid of making errors in the process.
(03:32:25 PM) AndChat is now known as Guest7408
(03:32:50 PM) doctormo: bananeweizen: Don't worry! when you upload your fix it goes into it's own seperate branch, no matter how baddly you foul it up in your first fix, the developers will let you know that _your_ branch is broken in some way and how to avoid it in future.
(03:33:10 PM) doctormo: bananeweizen: You can then redownload the branch and try and fix it again, or correct the problems in your first one
(03:33:21 PM) doctormo: Because the code your submitting is your own personal copy
(03:33:29 PM) doctormo: It doesn't interfere with the originals
(03:34:13 PM) doctormo: Only once your fix is good, working etc will the developers merge in your changes to their central development branch.
(03:36:06 PM) doctormo: <M58> Is there a KDE version?
(03:36:38 PM) doctormo: M58: Not yet, KDE is very different and if the project had been made to work on both it might not have been possible.
(03:36:59 PM) doctormo: M58: I don't know if a KDE version is possible, but the project would need a dedicated kde developer to kick it off.
(03:37:08 PM) doctormo: <wilsonliam> QUESTION: How long will it be until new users are able to log in, fo you think?
(03:37:33 PM) doctormo: wilsonliam: I'm hoping to get the bug fixed today or tomorrow and then put a release out of 1.6
(03:37:50 PM) Goomba is now known as Guest64151
(03:38:09 PM) doctormo: If you can all sign up to my blog you'll get a notification when it's done.
(03:38:33 PM) doctormo: and I am sorry about that, it's a very recent change in launchpad and it just goes to show.
(03:40:01 PM) doctormo: OK so are there any other questions about workflow, bzr, launchpad or functionality?
(03:42:14 PM) doctormo: <w1nGNUtz> QUESTION: how developers merge code? Launchpad provide any tool for that you it is done via GC?
(03:43:01 PM) doctormo: w1nGNUtz: Developers can merge in code using the [Merge In] button that appears in your directory when you have commited all your changes and you own the branch (it's important thtat you own the branch)
(03:43:17 PM) doctormo: <titeuf_87> QUESTION: for more popular projects, what will happen if there are tons of branches from people messing around with it but abandon those branches? Will they just stay there?
(03:43:42 PM) doctormo: titeuf_87: All branches will stay, but most branches will get marked as abandoned and so won't appear in the listings.
(03:45:03 PM) doctormo: <M58> QUESTION: What if there is conflict during merge?
(03:45:36 PM) doctormo: M58: Currently you will have to resolve conflicts manually.
(03:46:05 PM) doctormo: But there is already an open bug report for it
(03:46:17 PM) doctormo: <w1nGNUtz> QUESTION: Is there any way to update the baseline like, svn update for svn?
(03:46:50 PM) doctormo: w1nGNUtz: There is an [Update] button that appears when you have no local changes, this allows you to re-pull to the parent.
(03:47:46 PM) doctormo: OK we got 10 more mins of questions, or I can worrble on about how great ground control is :-) ... will be when it's fixed.
(03:49:22 PM) doctormo: So what we're hopefully going to be able to do with ground control, is develop a real difference in the way we get people collborating
(03:49:52 PM) doctormo: Because we want graphics project, writing projects, all sorts of ubuntu projects that isn't just related to programming
(03:51:09 PM) doctormo: Now, one feature which I haven't explained yet, is for project managers. This allows you to specify script actions for your branches, so for isntance if you get the loco directory project code, it has a button to sync the database or run the server. These are configured in a .gcfunctions file int he code.
(03:51:31 PM) doctormo: You can see this explained here:
(03:51:47 PM) doctormo: <wilsonliam> QUESTION: Say if you and someone else are working on the same branch, and you both commit the changes at a similar time, would this cause a conflict, or would it merge the two together?
(03:52:20 PM) doctormo: wilsonliam: If you are both working on the same branch (which you shouldn't be) one of you will experence an error saying that your local copy isn't up to date
(03:53:07 PM) doctormo: wilsonliam: Then you will have to press the [Update] button to merge back in all changes just made and hopefully you won't get any conflicts. But it's the Update section is where you will experence those.
(03:53:22 PM) doctormo: Once your up to date, you can commit and push as you normally would.
(03:54:35 PM) doctormo: OK, 5 more minutes.
(03:55:34 PM) doctormo: I think we're done here then. Thank you all for coming and asking such good questions
(03:55:52 PM) doctormo: I'm sorry about the breakage, hopefully when it's fixed you'll give it a go and let me know what you think.