Downtime 01.00 UTC 20th December
Published by Matthew Revell December 18, 2007 in Notifications
On the 20th December (UTC) we’re releasing Launchpad 1.1.12. During the roll-out of the new code, Launchpad will be offline for roughly ninety minutes.
Start time: 02.00 UTC 20th December 2007.
Estimated end time: 03.30 UTC 20th December 2007.
2007-12-20 00:52 – Delayed one hour
Personal Package Archives for everyone!
Published by Matthew Revell November 25, 2007 in PPA
Over the past few months we’ve been beta-testing a new Launchpad feature that has stirred up interest right across the Ubuntu community and beyond: Personal Package Archives (PPA).
Thanks to the members of the Launchpad Beta Testers team, the beta test has been a great success and we’re now confident that Personal Package Archives are ready for everyone.
So, as of today, every Launchpad user and team can have their own Personal Package Archive!
Building and hosting Ubuntu packages
Using your PPA you can build and publish software packages for Ubuntu. They can be based on existing Ubuntu packages or you can create completely new packages of any free software project.
So, you get your own apt repository – hosted by Launchpad – that Ubuntu users can add to their sources.list
. Then, they can install packages from your repository and receive updates whenever you publish them, pretty much as they would with packages in the primary Ubuntu archive.
If you’re already comfortable with creating .deb packages for Ubuntu you can get started straight away. All you need to do is:
- Import your GPG key to your Launchpad profile.
- Sign the Ubuntu Code of Coduct.
- Click
Activate PPA
on your Launchpad profile page. - Follow our PPA quick-start guide.
To create a PPA for a team, click “Activate PPA” on your team’s overview page.
Launchpad will build your source for both i386 and AMD64 architectures against whichever currently supported Ubuntu release you choose.
Okay, but why?
So, it’s a pretty cool feature but why would you want to use it? I’ll leave it to Kiko – Launchpad Release Manager – to explain:
“Many developers want to modify existing packages, or create new packages of their software. The PPA service allows anyone to publish a package without having to ask permission or join the Ubuntu project as a developer.
“This is a tremendous innovation in the free software community. We hope that PPA will make it easier for developers and development teams who have excellent ideas to get their work into the hands of users for testing and feedback. They also get to mix with experienced packagers to improve their skills. PPA is a build system, a publishing system and a community experience. We are also really excited to add the ability to create packages aimed at the mobile environment from launch.”
Matt Zimmerman, who most in the Ubuntu community will know as Canonical’s CTO, explained how PPA will be useful for testing experimental builds:
“Adding a new feature to a package or building it against a new version of a system library requires extensive testing. A PPA allows a developer to form a community of testers who are interested in their changes. The testing community can install the packages, run them for the test period and then remove them cleanly from their system. If the developer releases an updated version, the Ubuntu Update Manager will automatically notify those testers and enable them to update to the newer versions with a single click. This creates a very efficient environment for developers and testers to improve their favorite software.
Dive in
Join us on the launchpad-users mailing list if you have questions or want to talk with other people about how they are using PPA. We’ve also got an introductory class for PPAs at 15.00 UTC on Wednesday 28th November in Freenode’s #ubuntu-classroom.
Launchpad 1.1.11 released!
Published by Matthew Revell in Releases
Welcome to Launchpad 1.1.11, the penultimate Launchpad release for 2007!
We have two big pieces of news this month!
- Personal Package Archives are now out of beta and available to all Launchpad users and teams. Find out more in our quick-start guide at help.launchpad.net/PPAQuickStart
- Launchpad Translations is now much quicker and rock-solid. Expect exports and imports in half the time and next to no timeouts.
So, what else is new in Launchpad 1.1.11?
Distribution Management and PPA (Soyuz)
- Personal Package Archives are now available to all Launchpad users who have signed the Ubuntu Code of Conduct and imported a GPG key into their Launchpad account.
- Accepting or rejecting packages from the upload queue web interface now sends appropriate emails. (Bug 152400)
Code Hosting
- Error messages generated when pushing to a branch using bzr+ssh are now much clearer. (Bug 93606)
- The branch action ‘Register merge proposal’ has been renamed to ‘Propose for merging’ as it makes more sense to the casual user. (Bug 162763)
- Launchpad’s branch mirroring system should now be more reliable. (Bug 121331)
Bug Tracker
- Several improvements to the text bug view page (e.g. edge.launchpad.net/bugs/1/+text) including the addition of: comments, tags, attachment URLs and the relevant component (for bugs reported against distribution packages). (Bugs 139327, 54333, 139398)
- Launchpad tracks how each bug affects different projects and communities. A text view is now available for each of these instances. For example: bugs.launchpad.net/ubuntu/+source/gnome-session/+bug/26419/+text (Bug 130051)
- Email addresses in bug descriptions are no longer visible to anonymous users, including search engine spiders.
- Distribution bug package pages now show the total number of bugs that are open, critical, unassigned and in progress. (Bug 107402)
- Users can now perform advanced searches within textual bug listings (pages ending in +bugs-text) in the same way as they can for graphical bug listings (pages ending in +bugs). (Bug 51836)
Answers
- Email addresses in questions are no longer visible to anonymous users, including search engine spiders.
Translations
- The speed and reliability of Launchpad Translations should now be significantly improved following a major refactoring. Translations exports and imports are expected to be twice as fast and day to day translations use will be much quicker. (Bug 30602)
Personal Package Archives class – 28th November
Published by Matthew Revell November 23, 2007 in PPA
Interested in creating your own Ubuntu packages using Launchpad’s Personal Package Archives?
Next week we’re holding the second of our Personal Package Archives 101 sessions. Launchpad developer Celso Providelo (cprov) and MOTU member Jordan Mantha (Laserjock) will take you through the basics of Personal Package Archives and, if there’s time, take questions.
When? 15.00 – 16.00 UTC 28th November 2007.
Where? #ubuntu-classroom on Freenode.
If there’s anything in particular you would like to see covered in the session send us a mail to feedback@launchpad.net.
Look forward to seeing you there!
Update: Take a look at our PPA quick-start guide to get up to speed before the session.
Launchpad downtime 03.00 UTC 25th November
Published by Matthew Revell in Notifications
As I blogged yesterday, Launchpad 1.1.11 includes major speed and reliability improvements to Launchpad Translations. Much of this is thanks to a new simplified structure for the Translations database.
With 837,333 strings across 8,112 templates in 244 languages, the patch to modify the Translations database tables affects millions of rows of data. Extensive testing gave us a benchmark of around three hours to apply the new database structure. During yesterday’s release of 1.1.11, it became clear that it would actually take much longer.
Rather than keep Launchpad offline for longer than the three and a half hour window we’d announced, we decided to delay the roll-out of Launchpad 1.1.11. Thankfully, PostgreSQL and the scripts that we use to apply the updates to our database are fully transactional so no recovery step was needed.
Following further testing, we’re now going to release Launchpad 1.1.11 on Sunday 25th November. We’re allowing an eight hour window, meaning that we expect Launchpad to be offline between 03.00 UTC and 11.00 UTC on that day.
Thanks for bearing with us while we take Launchpad offline for this time.
Translations
Published by Matthew Revell November 22, 2007 in Translations
Translating using Launchpad is now faster and you’ll see next to no timeouts.
Over the past month, Launchpad’s Translations developers – Carlos, Danilo and Jeroen – have worked exclusively on simplifying the database and code used by Launchpad Translations. Danilo told me a bit about what they’ve done:
“This is a very welcome change of data model which has enabled us to cut the code size by 30%, improve speed and keep the same set of features. Even if this doesn’t solve all the timeout problems, it provides us with the infrastructure to do so in the near future.”
If you use Launchpad Translations, you can expect exports and imports to take roughly half as long as before and everyday use of Launchpad Translations to be noticeably faster.
Inkscape moving to Launchpad!
Published by Matthew Revell November 21, 2007 in General
The community behind Inkscape – the free software vector drawing tool – have chosen Launchpad as their new bug tracker!
Bryce Harrington, one of the project’s founders, explained why:
“The Inkscape project is gearing up for our next coming release, and based on our experience doing the past release, our current bug tracking system is really not up to the task of managing a large number of bugs.
“Launchpad has all the usual advanced bug management capabilities that we need. We’re also looking forward to making good use of the external bug tracker linking for keeping a watch on key bug reports in Cairo, Gtk, and other projects we depend on.”
Launchpad developer James Henstridge is working with the Inkscape team over the next few days to import their bug history from Sourceforge. If you’re interested in switching your project’s bug tracking to Launchpad – with complete bug history – drop us a mail to feedback@launchpad.net.
Launchpad downtime 02.00 UTC 22 November
Published by Matthew Revell November 19, 2007 in Notifications
We’re releasing Launchpad 1.1.11 on Thursday 22nd November at 02.00 UTC.
When we roll out the new version, Launchpad will be offline for approximately three and a half hours (i.e. between 02.00 and 05.30 UTC). During this time, you’ll be unable to use Launchpad and also unable to log into some other services that use Launchpad to authenticate user accounts, such as the Ubuntu wiki and the Canonical store.
We’re sorry for the inconvenience this will cause. If you have questions or comments, please email us: feedback@launchpad.net.
Introducing AutoPPA!
Published by Jamu Kakar November 7, 2007 in PPA
Launchpad’s Personal Package Archives (PPA) service takes a great deal of pain out of the packaging process. The days of maintaining system images for package builds are thankfully behind us, but preparing sources to upload to PPA can still be a tedious task. I’m primarily responsible for building packages for the Landscape client. There are several factors which make handling source uploads manually problematic:
- Subtle differences between the various releases of Ubuntu we support require slightly different
debian/control
files to build packages for different releases. - The pool-based APT repository that PPA publishes requires release-specific package version numbers in
debian/changelog
. Also, the changelog needs to include the name of the Ubuntu release the build is targeted at. - I need to build packages often, weekly or bi-weekly and need to be able to roll out bug fix packages as quickly as possible.
- The process needs to be sufficiently simple that someone else can easily step in and take care of it if I’m not around.
- I need to produce packages for all officially supported Ubuntu releases. At present this includes Dapper through Gutsy. In a few weeks we’ll start building packages for hardy. As time goes on we’ll have even more releases to support.
Automation to the rescue! AutoPPA is an application that automates the process of preparing and uploading signed sources to PPA. A project using AutoPPA for automated source uploads needs to meet some criteria:
- It must be stored in a local Bazaar branch.
- It must include a debian directory with valid packaging files.
Setting up AutoPPA
The first thing we need to do is install and configure AutoPPA. Add the following deb lines to your /etc/apt/sources.list
(replace the Ubuntu release name with whatever is appropriate for your system):
deb http://ppa.launchpad.net/autoppa/ubuntu gutsy universe
deb-src http://ppa.launchpad.net/autoppa/ubuntu gutsy universe
Then, update and install autoppa.
sudo apt-get update
sudo apt-get install autoppa
Now, let’s assume we are building packages for the fictitious supertool Python application. For the sake of this example, we’ll assume that the branch to build from is stored at ~/src/supertool/trunk
and has Debian package files already in place.
Let’s start by setting up ~/.autoppa.conf
. This configuration file contains per-project configuration settings that are unlikely to change often. Here’s a sample:
[supertool]
email = Jamshed Kakar
branch = /home/jkakar/src/supertool/trunk
repository = /home/jkakar/src/supertool
ppa = supertool-ppa
releases = dapper edgy feisty gutsy
The ’email’ field specifies the e-mail address to use in the changelog. The ‘branch’ field specifies the location of the Bazaar branch that code will be built from. The ‘repository’ field specifies the location where temporary branches will be created. The ‘ppa’ field specifies the name of the PPA to upload to, as defined in ~/.dput.cf
. Finally, the ‘releases’ field is a space-separated list of Ubuntu releases to prepare packages for. The configuration file can contain as many stanzas as you have projects to build with AutoPPA. Note that the name of the stanza must be the same as the name of the source package, as specified in debian/control.
We’re not quite ready to generate and upload signed sources. There are two more things we need to deal with first. The first is dealing with subtle differences in debian/control
because of differences between Ubuntu releases. For a Python application, one of these is the reliance on python-support on dapper and python-central for edgy and newer. AutoPPA provides a simple file-template replacement mechanism to deal with this. Any files that end in .autoppa
will be specially processed with output written to a file without the .autoppa
extension. There is currently a single special directive, AUTOPPA_INCLUDE(...):
, that is handled specially when encountered. If the following lines are defined in debian/control.autoppa
:
AUTOPPA_INCLUDE(dapper):Build-Depends: debhelper, python-support,
lsb-release
AUTOPPA_INCLUDE(edgy,feisty,gutsy):Build-Depends: debhelper,
python-central, lsb-release
Then the following will be included in debian/control
for Dapper:
Build-Depends: debhelper, python-support, lsb-release
and for Edgy, Feisty and Gutsy:
Build-Depends: debhelper, python-central, lsb-release
This allows us to have a single set of sources despite requiring minor differences for different Ubuntu releases. The obvious question is, why not just use an OR in the Build-Depends list? The answer is that sbuild, used by PPA to perform package builds, doesn’t handle ORs. There are also other cases where this kind of simple processing is handy.
The second thing we may want is version replacement. Any file, not just those that end in .autoppa
, that include the special AUTOPPA_VERSION()
string will be replaced with the version generated for the build. In Python code the following idiom can be used to assign the version to a local, for example:
VERSION = "AUTOPPA_VERSION(devel)"[len("AUTOPPA_VERSION("):-1]
When AutoPPA is run it will replace the ‘devel’ portion of that magic symbol with whatever version has been generated for the build.
Finally, Seahorse and devscripts needs to be configured to handle automatic GPG signing. You’ll need to import your GPG key into Seahorse and enable password caching. In order for Debian’s devscripts to work with Seahorse you’ll also need to do the following:
cp /usr/share/devscripts/conf.default ~/.devscripts.
Edit ~/.devscripts
, find the ‘# DEBUILD_PRESERVE_ENVVARS=""
‘ line and
replace it with:
DEBUILD_PRESERVE_ENVVARS="DISPLAY"
Phew. Thankfully all that is initial setup that you’ll hopefully never have to think about it again.
Using AutoPPA
Now that everything is set up for our fictitious project, we can use AutoPPA to generate signed sources and upload them for building by PPA. It’s accomplished with a single command:
autoppa supertool-1.0.0-supertool1
The first thing that will happen is that $EDITOR
will be opened to collect changelog details. Once you’ve provided details for the changelog everything else should Just Work(tm). AutoPPA will do the following:
- Create a build branch based on the source branch you specified in
~/.autoppa.conf
- For each Ubuntu release you’ve specified to build for:
- Files will be processed such that any
.autoppa
files are processed andAUTOPPA_VERSION()
symbols are updated. The version generated, using the sample above will be,supertool-1.0.0-
. This ensure a unique per-release version string.1-supertool1 - The modifications made for the release will be committed as a revision in the temporary build branch and signed sources will be generated.
- Files will be processed such that any
- When signed sources have been generated for all the specified Ubuntu releases:
- They will all be uploaded to the specified PPA.
- The build branch will be merged back to the source branch, with the changelog as the commit message.
- The merged revision will be tagged with the version,
1.0.0-supertool1
in this case. - Signed sources and the build branch will be deleted.
Now all we need to do is wait for PPA to build our packages! If you have more than one project setup in ~/.autoppa.conf
you can specify multiple builds using a single command, such as:
autoppa supertool-1.0.0-supertool1 awesometool-1.0.0-awesometool1
That’s it! I hope AutoPPA turns out to be useful to others!
Launchpad 1.1.10 now live
Published by Matthew Revell October 25, 2007 in Releases
Today we’ve made Launchpad‘s October 2007 release, 1.1.10!
Let’s take a look at some of the highlights:
- Faster translations imports: more efficient import process to avoid queues at busy times.
- New badges in branch listings: highlight mirroring errors and branches that have blueprint links.
- Create FAQs from solved as well as open questions.
- Easier sprint admin: meeting organisers can now download a CSV file of attendee details.
- Adding a bug watch now checks for dupes: Launchpad will show all bugs that share a bug watch. Ideal for finding duplicate reports.
- File downloads: product and series owners can now add downloadable files to a project.
- PPA packages are now overridden to the main component and can be built against all Ubuntu components.
Ubuntu bug triagers will be pleased to hear that the “Source package” panel has returned to distribution package bug pages.
Also this month we’re pleased to welcome Zope 2, Exaile and the Mobile and Internet Linux project who are now using Launchpad to track their bugs!
For a detailed view of what’s new in each part of Launchpad, read the full 1.1.10 release notes.