ubuntu development processes (olf2010)
DESCRIPTION
Updated version of the CALUG presentation, presented at the UbuCon at Ohio LinuxFest 2010TRANSCRIPT
UbuntuDevelopmentProcesses
MackenzieMorgan
DeveloperGroups
The ReleaseCycle
MakingChanges
Bugs
Ubuntu Development Processes
Mackenzie Morgan
Ohio LinuxFest 2010 UbuCon
10 September 2010
UbuntuDevelopmentProcesses
MackenzieMorgan
DeveloperGroups
The ReleaseCycle
MakingChanges
Bugs
Outline
1 Developer Groups
2 The Release Cycle
3 Making Changes
4 Bugs
UbuntuDevelopmentProcesses
MackenzieMorgan
DeveloperGroups
The ReleaseCycle
MakingChanges
Bugs
Who are the developers?
But that’s outdated
UbuntuDevelopmentProcesses
MackenzieMorgan
DeveloperGroups
The ReleaseCycle
MakingChanges
Bugs
What changed?
Archive reorganisation (hereafter: archive reorg)
UbuntuDevelopmentProcesses
MackenzieMorgan
DeveloperGroups
The ReleaseCycle
MakingChanges
Bugs
What’s archive reorg?
A switch away from components to a unified archive withfiner-grained RBAC for uploading
UbuntuDevelopmentProcesses
MackenzieMorgan
DeveloperGroups
The ReleaseCycle
MakingChanges
Bugs
Pre-Archive Reorganisation
4 components:
Main
Restricted
Universe
Multiverse
Core-devs upload to all of the above.Masters of the Universe (MOTU) upload to Universe &Multiverse
UbuntuDevelopmentProcesses
MackenzieMorgan
DeveloperGroups
The ReleaseCycle
MakingChanges
Bugs
Post-Archive Reorganisation
Packagesets:
Ubuntu Desktop
Ubuntu Server
Kubuntu
Xubuntu
Mythbuntu
Ubuntu Studio
Ubuntu Education Edition
Ubuntu Mobile
Kernel
Network Manager
Sugar
Zope
Correspond to packages on install discs
UbuntuDevelopmentProcesses
MackenzieMorgan
DeveloperGroups
The ReleaseCycle
MakingChanges
Bugs
And those access controls. . . ?
Each packageset has a set of developers
Core devs still upload anything
MOTU upload anything not in a package set
New: Generalist devs upload anything not in a restrictedpackageset
New: Per-package uploaders
UbuntuDevelopmentProcesses
MackenzieMorgan
DeveloperGroups
The ReleaseCycle
MakingChanges
Bugs
Where are we now?
Done:
Ubuntu Desktop
Ubuntu Server
Kubuntu
Mythbuntu
Kernel
Mono
Mozilla
Per-package uploaders
UbuntuDevelopmentProcesses
MackenzieMorgan
DeveloperGroups
The ReleaseCycle
MakingChanges
Bugs
How many developers are there?
167 in ubuntu-dev
Unknown number of “prospective developers”
UbuntuDevelopmentProcesses
MackenzieMorgan
DeveloperGroups
The ReleaseCycle
MakingChanges
Bugs
How do I find a package’s maintainer?
You don’t. We’re not Debian.
UbuntuDevelopmentProcesses
MackenzieMorgan
DeveloperGroups
The ReleaseCycle
MakingChanges
Bugs
What if you lack upload rights?
Other developers can sign off on and upload your package(sponsoring)
UbuntuDevelopmentProcesses
MackenzieMorgan
DeveloperGroups
The ReleaseCycle
MakingChanges
Bugs
How do you get upload rights?
1 Do good work & get it sponsored
2 Create a wiki page to apply
3 Get sponsors to vouch for you on your wiki page
4 Go to a Developer Membership Board (or one of thedelegated boards) meeting and get voted in
UbuntuDevelopmentProcesses
MackenzieMorgan
DeveloperGroups
The ReleaseCycle
MakingChanges
Bugs
Outline
1 Developer Groups
2 The Release Cycle
3 Making Changes
4 Bugs
UbuntuDevelopmentProcesses
MackenzieMorgan
DeveloperGroups
The ReleaseCycle
MakingChanges
Bugs
First things first
Binary-copy packages from previous release
Automatically sync from Debian Sid (Testing if LTS)
Merge remaining packages
UbuntuDevelopmentProcesses
MackenzieMorgan
DeveloperGroups
The ReleaseCycle
MakingChanges
Bugs
Stages
Ubuntu Developer Summit
3–4 Alphas
1–2 Beta
1–2 Release Candidates
Ship it!
Also, lots of freezes (Toolchain, Debian Import, String, UI,Feature, Final. . . )
UbuntuDevelopmentProcesses
MackenzieMorgan
DeveloperGroups
The ReleaseCycle
MakingChanges
Bugs
What happens during freezes?
Uploads are queued pending Archive Admin approvalhttp://launchpad.net/ubuntu/maverick/+queue
UbuntuDevelopmentProcesses
MackenzieMorgan
DeveloperGroups
The ReleaseCycle
MakingChanges
Bugs
Stable Release Upgrades (SRU)
Bugfixes only (preferably minimal patch)
Must document regression potential
Upload to -proposed
Member of ubuntu-sru will approve the upload
Moves to -updates after 2 weeks in -proposed
UbuntuDevelopmentProcesses
MackenzieMorgan
DeveloperGroups
The ReleaseCycle
MakingChanges
Bugs
Outline
1 Developer Groups
2 The Release Cycle
3 Making Changes
4 Bugs
UbuntuDevelopmentProcesses
MackenzieMorgan
DeveloperGroups
The ReleaseCycle
MakingChanges
Bugs
Packages are kept in VCS, like every other distro,right?
Er. . . yes and no. . .Yes, all but ∼500 packages are in bzr nowNo, it hasn’t always been this wayUbuntu Distributed Development (UDD) is the attempt atchange
UbuntuDevelopmentProcesses
MackenzieMorgan
DeveloperGroups
The ReleaseCycle
MakingChanges
Bugs
Why?
We followed Debian on the debuild -S && dput
../*.changes thing
UbuntuDevelopmentProcesses
MackenzieMorgan
DeveloperGroups
The ReleaseCycle
MakingChanges
Bugs
Why change?
Debian has only a few maintainers per packageWe have team maintainership, >70 developers responsible
UbuntuDevelopmentProcesses
MackenzieMorgan
DeveloperGroups
The ReleaseCycle
MakingChanges
Bugs
How’s the change going?
Slowly.
UbuntuDevelopmentProcesses
MackenzieMorgan
DeveloperGroups
The ReleaseCycle
MakingChanges
Bugs
Why slowly?
We have (thanks mostly to James Westby):
tools (mostly)
docs (mostly)
branches (mostly)
Have you ever tried to convince 150 people to stop doing whatseems to work and learn something new?
UbuntuDevelopmentProcesses
MackenzieMorgan
DeveloperGroups
The ReleaseCycle
MakingChanges
Bugs
Why slowly?
We have (thanks mostly to James Westby):
tools (mostly)
docs (mostly)
branches (mostly)
Have you ever tried to convince 150 people to stop doing whatseems to work and learn something new?
UbuntuDevelopmentProcesses
MackenzieMorgan
DeveloperGroups
The ReleaseCycle
MakingChanges
Bugs
Old workflow
apt-get source foo
cd foo
Make changes & add changelog entry
debuild -S
Use pbuilder to test-build ../*.dsc
dput foo*.changes
UbuntuDevelopmentProcesses
MackenzieMorgan
DeveloperGroups
The ReleaseCycle
MakingChanges
Bugs
New workflow
bzr branch lp:ubuntu/foo or bzr branch
lp:ubuntu/hardy/foo
cd foo
Make changes & add changelog entry
bzr-buildpackage -S
Use pbuilder to test-build ../*.dsc
debcommit
debcommit generates changelog entryThen it diverges. . .If the team merges many changes then releases: bzr push
If not: dput ubuntu ../*.changes && bzr
mark-uploaded && bzr push
No, there’s no automated “build this branch” button yet
UbuntuDevelopmentProcesses
MackenzieMorgan
DeveloperGroups
The ReleaseCycle
MakingChanges
Bugs
Outline
1 Developer Groups
2 The Release Cycle
3 Making Changes
4 Bugs
UbuntuDevelopmentProcesses
MackenzieMorgan
DeveloperGroups
The ReleaseCycle
MakingChanges
Bugs
How do I report a bug?
apt-cache policy package
If package version shows Debian/Ubuntu changes:ubuntu-bug package
If not or if clearly not a packaging bug, report it upstream
UbuntuDevelopmentProcesses
MackenzieMorgan
DeveloperGroups
The ReleaseCycle
MakingChanges
Bugs
How are patches handled in Ubuntu?
Badly.
UbuntuDevelopmentProcesses
MackenzieMorgan
DeveloperGroups
The ReleaseCycle
MakingChanges
Bugs
Why?
“Not enough monkeys”– Daniel T. Chen
∼2000 patches bitrotting in Launchpad
UbuntuDevelopmentProcesses
MackenzieMorgan
DeveloperGroups
The ReleaseCycle
MakingChanges
Bugs
What’s being done about it?
Operation Cleansweep
Ubuntu Reviews team
UbuntuDevelopmentProcesses
MackenzieMorgan
DeveloperGroups
The ReleaseCycle
MakingChanges
Bugs
Operation Cleansweep
Try to review all patches & forward the good ones before10.10 is releasedhttps://wiki.ubuntu.com/OperationCleansweep
UbuntuDevelopmentProcesses
MackenzieMorgan
DeveloperGroups
The ReleaseCycle
MakingChanges
Bugs
Reviews Team
Ubuntu Reviews team formed to:
review patches
upstream patches if needed
run Patch Days
http://launchpad.net/∼ubuntu-reviews
UbuntuDevelopmentProcesses
MackenzieMorgan
DeveloperGroups
The ReleaseCycle
MakingChanges
Bugs
How can I submit a patch?
Attach it to the bug report
Mark it as a patch on upload
Add the “patch” tag to the bug
Submit it upstream too!
UbuntuDevelopmentProcesses
MackenzieMorgan
DeveloperGroups
The ReleaseCycle
MakingChanges
Bugs
Can I use the bzr branches from before?
Yes!If making a new candidate revision:
In debian/changelog: LP: #12345
debcommit
bzr push lp:me/foo/fixfor12345
If not:
bzr commit --fixes 12345
Fill in a changelog entry
bzr push lp:me/foo/fixfor12345
Branch is automatically linked to bug reportbzr lp-open to submit merge proposal
UbuntuDevelopmentProcesses
MackenzieMorgan
DeveloperGroups
The ReleaseCycle
MakingChanges
Bugs
Can I submit a debdiff like in Debian?
Yes!Subscribe ubuntu-sponsors to the bug report (and still includeLP: #12345 in debian/changelog)
UbuntuDevelopmentProcesses
MackenzieMorgan
DeveloperGroups
The ReleaseCycle
MakingChanges
Bugs
What’s that LP: #12345 stuff?
Bug #12345 will be automatically marked Fix Released whenthe package is uploaded
UbuntuDevelopmentProcesses
MackenzieMorgan
DeveloperGroups
The ReleaseCycle
MakingChanges
Bugs
Why so many bugs in stable?
Testing happens too late (Beta)
Rushing to fix bugs late introduces more bugs
Need more developers
UbuntuDevelopmentProcesses
MackenzieMorgan
DeveloperGroups
The ReleaseCycle
MakingChanges
Bugs
Questions?