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