Launchpad 2.1.8: Bugzilla and Trac plugins now available, plus karma for commits
Published by Matthew Revell August 21, 2008 in Releases
We in the Launchpad team are proud to announce the 21st August 2008 release of Launchpad 2.1.8!
This release brings two items of good news for anyone who commits code to branches registered in Launchpad:
- Karma for commits: Launchpad now awards karma for code commits to project branches.
- Feeds of each person’s code commits: as well as a feed that shows which branches you work on, Launchpad now gives you a feed of all the commits you’ve made to branches in Launchpad.
To subscribe to your own branch commits feed, visit your code overview page and click the feed icon in your browser’s address bar.
There’s more about karma for commits in our blog post.
Bugzilla and Trac plugin beta now open
Sharing the same bug report and comment history between communities is one of Launchpad’s most useful features.
With the beta of our new plugins for Bugzilla and Trac now open, projects who run their own external bug trackers can now also share bug comment histories with Launchpad.
Graham Binns from the Launchpad Bugs team blogs about how to take part in the beta, if you run a Bugzilla or Trac instance.
Regular updates on the Launchpad API beta
If you’re following the beta of the Launchpad API, you can now get regular updates on what’s new from Leonard Richardson, one of the Launchpad team working on the API.
Leonard’s posts are in the Launchad News blog’s API category.
Full details of Launchpad 2.1.8
Full details of the features and bug fixes that went into this release are on the Launchpad 2.1.8 milestone page.
If you come across any bugs in Launchpad, please report them.
We’ll be releasing Launchpad 2.1.9 on the 17th September.
In the mean time, join us each Thursday at 18.00 UTC in #launchpad-meeting on Freenode for the Launchpad team meeting and also any time on the launchpad-users mailing list.
Bugzilla and Trac plugins now in beta
Published by Graham Binns August 20, 2008 in Bug Tracking, Cool new stuff
A few weeks ago, Matt announced the new Launchpad plugins for Bugzilla and Trac.
The plugins allow bidirectional communication between Launchpad and the remote bug trackers that have them installed. Obviously, we need to test the plugins – and that’s where we need your help.
If you know of any Trac or Bugzilla instances whose administrators might be interested in installing the requisite Launchpad plugin – or indeed if you run such a bug tracker yourself – you can find details on how to install the plugins and what you need to do to get Launchpad to work with your bugtracker on the Launchpad Help wiki:
- For Bugzilla, see http://help.launchpad.net/Bugs/BugzillaPlugin
- For Trac, see http://help.launchpad.net/Bugs/TracPlugin
So, what will installing the plugins do? Well, initially, installing one of the plugins will mean that:
- Launchpad will be able to import comments from upstream bugs which are being watched in Launchpad. If you register a bug watch against an upstream bug you’ll be able to read the conversation about that bug on Launchpad, including the comments that are made on the upstream bug tracker.
- Launchpad will be able to push comments to upstream bugs which are linked to a Launchpad bug, so if you add a comment on Launchpad in reply to a comment which was imported from an upstream bug tracker, the comment will automatically be added to the conversation on the upstream bug tracker, too. This means that users of both Launchpad and the upstream tracker can view the whole conversation about the bug without leaving their preferred environments.
Once we’re happy that the plugins are working correctly we can use them to add some even cooler functionality to Launchpad:
- Launchpad will be able to forward bugs to upstream bug trackers that have the plugin installed. Users of those bug trackers won’t have to check Launchpad for bugs registered against their project; they’ll be forwarded straight to the upstream tracker.
- If a bug watch is created against an upstream bug, Launchpad will tell the upstream bug tracker which Launchpad bug is watching it. This means that not only is there a link in Launchpad to the upstream bug, but there’s also a link in the upstream bug tracker to the Launchpad bug.
The Bugzilla plugin is licensed under the Mozilla Public License and the Trac plugin is licensed under GPLv2.
If you’ve got any questions, don’t hesitate to contact us by email at feedback@launchpad.net.
Karma for commits!
Published by Matthew Revell in Code, Cool new stuff
While in some parts they take their pay in Warcraft gold, round here we’re karma fiends!
To feed the habit, Tim in Launchpad’s Code Hosting team has provided another way of earning karma: making commits to any Bazaar branch that’s registered to a project in Launchpad.
We’re backdating the karma for commits but, as with all karma the older the action is the less it’ll count towards your karma score; really old actions don’t count at all. Also, +junk branches don’t count towards karma at all.
Terms of Use Update
Published by Joey Stanford August 19, 2008 in Notifications
Hi,
Today we have updated the Launchpad Terms of Use. Specifically, the section on Automated Querying was updated and extended to reflect the addition of our Public APIs. Please take a moment to inspect the changes.
Thanks,
Launchpad offline 00.00 – 02.00 UTC 21st August 2008
Published by Matthew Revell in Notifications
This week we’re releasing Launchpad 2.1.8! During code roll-outs we allow a down-time window of a couple of hours. This week, we’re making the release in the early hours UTC of Thursday 21st.
Going offline: 00.00 UTC 21st August 2008
Expected back before: 02.00 UTC 21st August 2008
I’m sorry for the inconvenience this down-time will cause. I’ll post details of what’s new in 2.1.8 here after we’ve made the release.
This week in Launchpad’s web API
Published by Leonard Richardson August 15, 2008 in API, Cool new stuff, General
Now that the Launchpad web service API has entered beta, I’ll be posting an update every week about the improvements we make to it. This way you’ll always know what’s going on, and you’ll see when something you want to do becomes possible.
Web service improvements
This week I made one major change to the web service itself. There’s now a special top-level resource that’s an alias to “you” on Launchpad. This is a nice convenience when you’re writing scripts for yourself, but it’s practically essential if other people are going to be running your program.
Here’s how to get a reference to the person who’s running the script, using launchpadlib, our Python interface to the web service.
>>> me = launchpad.me
>>> print me.name
leonardr
If you’re not using launchpadlib, GET the service root at https://api.staging.launchpad.net/beta/, and you’ll see the URL to this resource as ‘me_link’. When you GET that URL you’ll be redirected to your own user account.
launchpadlib improvements
I spent most of my time working on launchpadlib. Apart from some bugfixes and performance improvements that you won’t even notice, I made three big improvements.
Introspection
Previously, to see what capabilities a launchpadlib object had, you had to check the reference documentation. (That documentation is two weeks out of date, by the way; we’ll be fixing that next week.) Now you can just call dir()
on an object, and all of its Launchpad-derived attributes and methods will show up in the list. If you only want to see the Launchpad attributes or methods and not all the internal launchpadlib stuff, you can check lp_attributes
or lp_operations
. This code shows what you can do with a launchpadlib person object:
>>> me.lp_attributes
['self_link', 'resource_type_link', 'longitude', ... 'homepage_content']
>>> me.lp_operations
['addMember', ... 'setLocation']
Slices
The second new feature is the ability to slice Launchpad collections as though they were Python lists. Here’s some code that gets the 10 most recently filed bugs in Launchpad.
>>> recent_bugs = launchpad.bugs[:10]
>>> [bug.id for bug in recent_bugs]
[258042, 258041, 258040, 258039, 258038, 258037, 258036, 258033, 258032, 258030]
Previously, the only way to do this was to iterate over launchpad.bugs and insert a break statement when you’d had enough, which was very awkward.
Loading from bookmarks
The third new feature is the ability to bookmark launchpadlib objects and go back to them later, the way you can bookmark web pages in your browser. Here’s launchpadlib code to acquire a bug.
>>> a_bug = launchpad.bugs[251497]
>>> print a_bug.title
Make it possible to instantiate a resource from a URL
I can play around with that bug all I want within a Python session, but if I exit the Python session the bug will disappear. If I want to get the bug back later, I’ll need to find it again from scratch. Unless I store the bug’s unique ID (also known as its URL).
>>> print str(a_bug)
https://api.staging.launchpad.net/beta/bugs/251497
At this point I can write that string to a file or database. Later on, a different process might come online and load the string back into memory. That process can get the bug object back by passing the bug’s URL into launchpad.load().
>>> a_bug = launchpad.load("https://api.staging.launchpad.net/beta/bugs/251497")
>>> print a_bug.title
Make it possible to instantiate a resource from a URL
Pretty simple stuff–people have been saving URLs and passing them around to each other for over fifteen years. The advantage of our web service’s design is that it gives you the same power in a scripted environment.
Upcoming work
Next week I plan to spend most of my time on behind-the-scenes performance improvements. You won’t notice anything if you use launchpadlib. If you’re writing your own client, you’ll know what I’m talking about when I say “ETag support.”
Meanwhile, Edwin Grubbs will be working to expose Launchpad’s project registry through the web service.
See you next week!
Launchpod episode 9: looking back at Launchpad 2.0 and how we do Launchpad QA
Published by Matthew Revell in Podcast
Launchpod: the Launchpad team podcast! Recorded at the Launchpad Releases team sprint in Longmont Colorado.
Hosts: Matthew Revell and Joey Stanford.
Theme: Obscurity by Barry Warsaw.
- 00.50: The value of sprints in a distributed team.
- 01.55: Looking back at the new features in Launchpad 2.0, including metrics on what went into 2.0. Plus a look ahead to the next set of Launchpad milestones.
- 10.20: A little on how we develop and test code for Launchpad.
- 12.15: Some of the Launchpad team went to OSCON. Joey talks about what they got up to.
- 15.33: What happens when a PPA package appears to be non-free software?
- 18.15: Diogo Matsubara talks about his QA work on Launchpad.
- 24.20: Introducing Ursula Junque the latest member of the Launchpad QA team!
Send us your ideas and questions to feedback@launchpad.net!
Legal Page Updates
Published by Joey Stanford August 12, 2008 in General, Notifications
Hi,
Today I’m happy to announce two changes which appear on the Launchpad Legal page.
- The Launchpad Logo, previously unlicensed, is now licensed as “Creative Commons Attribution-No Derivative Works 2.0 UK: England & Wales”. “No Derivative” was chosen to preserve our branding integrity.
- The Launchpad Help wiki documentation and the Launchpad News blog, previously unlicensed, are now licensed as “Creative Commons Attribution 2.0 UK: England & Wales”.
These changes have been made in response to our users and other commercial entities inquiring if they can display/reuse/remix these items. Previously, any non-Launchpad use required explicit permission (except as permitted by fair-use).
Please visit the Launchpad Legal page for the full details and links to the Creative Commons Licenses.
Inside the new Launchpad web service API
Published by Leonard Richardson August 9, 2008 in API, Cool new stuff
If you’ve been wanting to integrate Launchpad into your development tools, or create scripts that read and write Launchpad’s dataset, your wait is over. We’ve released the initial version of our RESTful web service API to the beta testing team. Now you can integrate with Launchpad using our Python library or by making simple HTTP requests.
No longer will you need to screen-scrape or write scripts that pretend to be a web browser; your programs will be able to communicate directly with Launchpad. Our support for OAuth means your users can delegate a subset of their Launchpad privileges to your program or website, without handing over their Launchpad pasword.
Right now, the web service provides basic access to Launchpad’s people and bugs. We’re working now to expose more of Launchpad’s data–projects, milestones, and so on–and to improve the usability of the Python client. Once we’ve stabilized the framework, we’ll open up the web service API to everyone. In the meantime, you can try it out by joining the Launchpad Beta Testers team. Once you’re on the team, you can get started by visiting the help homepage.
Our Python library, launchpadlib, works as a “web service browser”. You can use it to navigate the web service from a Python script, the way you surf the Launchpad website from your web browser. You don’t need any special knowledge of web services to use launchpadlib; you can write natural-looking code like this:
>>> me = launchpad.people['my-username']
>>> me.display_name = 'My new display name'
>>> me.lp_save()
We’ll be improving launchpadlib and the web service simultaneously; this is just the beginning.
Survey about Launchpad’s upstream bug workflow
Published by Matthew Revell in General
As we’ve spoken about before on this blog, one of the cool things about Launchpad’s bug tracker is that it can link bugs together, regardless of whether they’re tracked in Launchpad or an external bug tracker.
This is great for Ubuntu, where people report issues against an Ubuntu package of an upstream project. Jorge Castro works on Ubuntu’s community team and wants to know how we could improve this for upstream projects.
So, if you’re from an upstream project and have an opinion on how we can improve the workflow between Launchpad and your external bug tracker, take Jorge’s survey.