Ubuntu
Development
 Processes

 Mackenzie
  Morgan


Developer
Groups        Ubuntu Development Processes
The Release
Cycl...
Outline

  Ubuntu
Development
 Processes

 Mackenzie
  Morgan
              1   Developer Groups
Developer
Groups

The Rel...
Who are the developers?

  Ubuntu
Development
 Processes

 Mackenzie
  Morgan


Developer
Groups

The Release
Cycle

Makin...
What changed?

  Ubuntu
Development
 Processes

 Mackenzie
  Morgan


Developer
Groups

The Release
Cycle
              Ar...
What’s archive reorg?

  Ubuntu
Development
 Processes

 Mackenzie
  Morgan


Developer
Groups

The Release
Cycle         ...
Pre-Archive Reorganisation

  Ubuntu
Development
 Processes

 Mackenzie
  Morgan
              4 components:
Developer
Gro...
Post-Archive Reorganisation

  Ubuntu
Development
 Processes
              Packagesets:
 Mackenzie
  Morgan          Ubunt...
And those access controls. . . ?

  Ubuntu
Development
 Processes

 Mackenzie
  Morgan


Developer
Groups
                ...
Where are we now?

  Ubuntu
Development
 Processes

 Mackenzie
  Morgan
              Done:
Developer
Groups            Ub...
How many developers are there?

  Ubuntu
Development
 Processes

 Mackenzie
  Morgan


Developer
Groups

The Release
Cycle...
How do I find a package’s maintainer?

  Ubuntu
Development
 Processes

 Mackenzie
  Morgan


Developer
Groups

The Release...
What if you lack upload rights?

  Ubuntu
Development
 Processes

 Mackenzie
  Morgan


Developer
Groups

The Release
Cycl...
How do you get upload rights?

  Ubuntu
Development
 Processes

 Mackenzie
  Morgan


Developer
Groups          1   Do goo...
Outline

  Ubuntu
Development
 Processes

 Mackenzie
  Morgan
              1   Developer Groups
Developer
Groups

The Rel...
First things first

  Ubuntu
Development
 Processes

 Mackenzie
  Morgan


Developer
Groups

The Release       Binary-copy ...
Stages

  Ubuntu
Development
 Processes

 Mackenzie
  Morgan


Developer
                  Ubuntu Developer Summit
Groups
...
What happens during freezes?

  Ubuntu
Development
 Processes

 Mackenzie
  Morgan


Developer
Groups

The Release
Cycle  ...
Stable Release Upgrades (SRU)

  Ubuntu
Development
 Processes

 Mackenzie
  Morgan


Developer
Groups

The Release       ...
Outline

  Ubuntu
Development
 Processes

 Mackenzie
  Morgan
              1   Developer Groups
Developer
Groups

The Rel...
Packages are kept in VCS, like every other distro,
              right?
  Ubuntu
Development
 Processes

 Mackenzie
  Morg...
Why?

  Ubuntu
Development
 Processes

 Mackenzie
  Morgan


Developer
Groups

The Release
Cycle         We followed Debia...
Why change?

  Ubuntu
Development
 Processes

 Mackenzie
  Morgan


Developer
Groups

The Release
Cycle         Debian has...
How’s the change going?

  Ubuntu
Development
 Processes

 Mackenzie
  Morgan


Developer
Groups

The Release
Cycle
      ...
Why slowly?

  Ubuntu
Development
 Processes

 Mackenzie
  Morgan


Developer     We have (thanks mostly to James Westby):...
Old workflow

  Ubuntu
Development
 Processes

 Mackenzie
  Morgan


Developer        apt-get source foo
Groups

The Releas...
New workflow

  Ubuntu
Development
 Processes    (See if I get this right)
 Mackenzie
  Morgan           bzr branch lp:ubun...
Outline

  Ubuntu
Development
 Processes

 Mackenzie
  Morgan
              1   Developer Groups
Developer
Groups

The Rel...
How are patches handled in Ubuntu?

  Ubuntu
Development
 Processes

 Mackenzie
  Morgan


Developer
Groups

The Release
C...
Why?

  Ubuntu
Development
 Processes

 Mackenzie
  Morgan


Developer
Groups

The Release
Cycle
              “Not enough...
What’s being done about it?

  Ubuntu
Development
 Processes

 Mackenzie
  Morgan


Developer
Groups
              Ubuntu ...
How can I submit a patch?

  Ubuntu
Development
 Processes

 Mackenzie
  Morgan


Developer
Groups

The Release       Atta...
Can I use the bzr branches from before?

  Ubuntu
Development
 Processes

 Mackenzie    Yes!
  Morgan
              If mak...
Can I submit a debdiff like in Debian?

  Ubuntu
Development
 Processes

 Mackenzie
  Morgan


Developer
Groups

The Releas...
What’s that LP: #12345 stuff?

  Ubuntu
Development
 Processes

 Mackenzie
  Morgan


Developer
Groups

The Release
Cycle  ...
Why so many bugs in stable?

  Ubuntu
Development
 Processes

 Mackenzie
  Morgan


Developer
Groups

The Release       Te...
Questions?

  Ubuntu
Development
 Processes

 Mackenzie
  Morgan


Developer
Groups

The Release
Cycle

Making
Changes

Bu...
Upcoming SlideShare
Loading in …5
×

Ubuntu Development Processes

3,026 views

Published on

Presented at the May 2010 Columbia (MD) Area Linux User Group

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
3,026
On SlideShare
0
From Embeds
0
Number of Embeds
532
Actions
Shares
0
Downloads
28
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Ubuntu Development Processes

  1. 1. Ubuntu Development Processes Mackenzie Morgan Developer Groups Ubuntu Development Processes The Release Cycle Making Changes Mackenzie Morgan Bugs CALUG 12 May 2010
  2. 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. 3. Who are the developers? Ubuntu Development Processes Mackenzie Morgan Developer Groups The Release Cycle Making Changes Bugs But that’s outdated
  4. 4. What changed? Ubuntu Development Processes Mackenzie Morgan Developer Groups The Release Cycle Archive reorganisation (hereafter: archive reorg) Making Changes Bugs
  5. 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. 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. 7. Post-Archive Reorganisation Ubuntu Development Processes Packagesets: Mackenzie Morgan Ubuntu Desktop Developer Ubuntu Server Groups The Release Kubuntu Cycle Xubuntu Making Changes Mythbuntu Bugs Ubuntu Studio Ubuntu Education Edition Ubuntu Mobile Kernel Correspond to packages on install discs
  8. 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. 9. Where are we now? Ubuntu Development Processes Mackenzie Morgan Done: Developer Groups Ubuntu Desktop The Release Cycle Ubuntu Server Making Changes Kubuntu Bugs Mythbuntu Kernel Per-package uploaders
  10. 10. How many developers are there? Ubuntu Development Processes Mackenzie Morgan Developer Groups The Release Cycle 147 in ubuntu-dev Making Changes Unknown number of “prospective developers” Bugs
  11. 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. 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. 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. 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. 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 Changes Bugs Merge remaining packages
  16. 16. Stages Ubuntu Development Processes Mackenzie Morgan Developer Ubuntu Developer Summit Groups 4 Alphas The Release Cycle 1 Beta Making Changes 2 Release Candidates Bugs Ship it! Also, lots of freezes (Toolchain, Debian Import, String, UI, Feature. . . )
  17. 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. 18. Stable Release Upgrades (SRU) Ubuntu Development Processes Mackenzie Morgan Developer Groups The Release Bugfixes only (preferably minimal patch) Cycle Making Must document regression potential Changes Bugs Package is uploaded to -proposed for 2 weeks
  19. 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. 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. 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. 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. 23. How’s the change going? Ubuntu Development Processes Mackenzie Morgan Developer Groups The Release Cycle Slowly. Making Changes Bugs
  24. 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 Have you ever tried to convince 150 people to stop doing what seems to work and learn something new?
  25. 25. 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
  26. 26. New workflow Ubuntu Development Processes (See if I get this right) Mackenzie Morgan bzr branch lp:ubuntu/foo or bzr branch Developer lp:ubuntu/hardy/foo Groups cd foo The Release Cycle Make changes & add changelog entry Making Changes bzr-buildpackage -S Bugs Use pbuilder to test-build ../*.dsc debcommit Then it diverges. . . If the team merges many changes then releases: bzr push If not: dput ubuntu ../*.changes && bzr mark-uploaded && bzr push
  27. 27. 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
  28. 28. How are patches handled in Ubuntu? Ubuntu Development Processes Mackenzie Morgan Developer Groups The Release Cycle Badly. Making Changes Bugs
  29. 29. Why? Ubuntu Development Processes Mackenzie Morgan Developer Groups The Release Cycle “Not enough monkeys” Making – Daniel T. Chen Changes ∼2000 patches bitrotting in Launchpad Bugs
  30. 30. What’s being done about it? Ubuntu Development Processes Mackenzie Morgan Developer Groups Ubuntu Reviews team formed to: The Release Cycle review patches Making Changes upstream patches if needed Bugs run Patch Days
  31. 31. How can I submit a patch? Ubuntu Development Processes Mackenzie Morgan Developer Groups The Release Attach it to the bug report Cycle Making Mark it as a patch on upload Changes Bugs Add the “patch” tag to the bug
  32. 32. Can I use the bzr branches from before? Ubuntu Development Processes Mackenzie Yes! Morgan If making a new candidate revision: Developer Groups In debian/changelog: LP: #12345 The Release debcommit Cycle Making bzr push lp:me/foo/fixfor12345 Changes Bugs If not: bzr commit --fixes 12345 bzr push lp:me/foo/fixfor12345 Branch is automatically linked to bug report bzr lp-open to submit merge proposal
  33. 33. 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
  34. 34. 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
  35. 35. 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
  36. 36. Questions? Ubuntu Development Processes Mackenzie Morgan Developer Groups The Release Cycle Making Changes Bugs

×