際際滷

際際滷Share a Scribd company logo
Ubuntu
Development
 Processes

 Mackenzie
  Morgan


Developer
Groups        Ubuntu Development Processes
The Release
Cycle

Making
Changes              Mackenzie Morgan
Bugs
                          CALUG


                       12 May 2010
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
Who are the developers?

  Ubuntu
Development
 Processes

 Mackenzie
  Morgan


Developer
Groups

The Release
Cycle

Making
Changes

Bugs




                                        But thats outdated
What changed?

  Ubuntu
Development
 Processes

 Mackenzie
  Morgan


Developer
Groups

The Release
Cycle
              Archive reorganisation (hereafter: archive reorg)
Making
Changes

Bugs
Whats archive reorg?

  Ubuntu
Development
 Processes

 Mackenzie
  Morgan


Developer
Groups

The Release
Cycle         A switch away from components to a uni鍖ed archive with
Making
Changes
              鍖ner-grained RBAC for uploading
Bugs
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
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
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
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
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
How do I 鍖nd a packages maintainer?

  Ubuntu
Development
 Processes

 Mackenzie
  Morgan


Developer
Groups

The Release
Cycle
              You dont. Were not Debian.
Making
Changes

Bugs
What if you lack upload rights?

  Ubuntu
Development
 Processes

 Mackenzie
  Morgan


Developer
Groups

The Release
Cycle         Other developers can sign o鍖 on and upload your package
Making
Changes
              (sponsoring)
Bugs
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
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
First things 鍖rst

  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
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. . . )
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
Stable Release Upgrades (SRU)

  Ubuntu
Development
 Processes

 Mackenzie
  Morgan


Developer
Groups

The Release       Bug鍖xes only (preferably minimal patch)
Cycle

Making            Must document regression potential
Changes

Bugs
                  Package is uploaded to -proposed for 2 weeks
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
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 hasnt always been this way
Changes
              Ubuntu Distributed Development (UDD) is the attempt at
Bugs
              change
Why?

  Ubuntu
Development
 Processes

 Mackenzie
  Morgan


Developer
Groups

The Release
Cycle         We followed Debian on the debuild -S && dput
Making
Changes
              ../*.changes thing
Bugs
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
Hows the change going?

  Ubuntu
Development
 Processes

 Mackenzie
  Morgan


Developer
Groups

The Release
Cycle
              Slowly.
Making
Changes

Bugs
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?
Old work鍖ow

  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
New work鍖ow

  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
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
How are patches handled in Ubuntu?

  Ubuntu
Development
 Processes

 Mackenzie
  Morgan


Developer
Groups

The Release
Cycle
              Badly.
Making
Changes

Bugs
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
Whats 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
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
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
Can I submit a debdi鍖 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
Whats that LP: #12345 stu鍖?

  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
Why so many bugs in stable?

  Ubuntu
Development
 Processes

 Mackenzie
  Morgan


Developer
Groups

The Release       Testing happens too late (Beta)
Cycle

Making            Rushing to 鍖x bugs late introduces more bugs
Changes

Bugs
                  Need more developers
Questions?

  Ubuntu
Development
 Processes

 Mackenzie
  Morgan


Developer
Groups

The Release
Cycle

Making
Changes

Bugs

More Related Content

Ubuntu Development Processes

  • 1. Ubuntu Development Processes Mackenzie Morgan Developer Groups Ubuntu Development Processes The Release Cycle Making Changes Mackenzie Morgan Bugs CALUG 12 May 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 thats outdated
  • 4. What changed? Ubuntu Development Processes Mackenzie Morgan Developer Groups The Release Cycle Archive reorganisation (hereafter: archive reorg) Making Changes Bugs
  • 5. Whats archive reorg? Ubuntu Development Processes Mackenzie Morgan Developer Groups The Release Cycle A switch away from components to a uni鍖ed archive with Making Changes 鍖ner-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 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. 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 Groups Ubuntu Desktop The Release Cycle Ubuntu Server Making Changes Kubuntu Bugs Mythbuntu Kernel Per-package uploaders
  • 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. How do I 鍖nd a packages maintainer? Ubuntu Development Processes Mackenzie Morgan Developer Groups The Release Cycle You dont. Were 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 o鍖 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 鍖rst 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. 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. 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 The Release Bug鍖xes only (preferably minimal patch) Cycle Making Must document regression potential Changes Bugs Package is uploaded to -proposed for 2 weeks
  • 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 hasnt 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. Hows 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 Have you ever tried to convince 150 people to stop doing what seems to work and learn something new?
  • 25. Old work鍖ow 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. New work鍖ow 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. 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. How are patches handled in Ubuntu? Ubuntu Development Processes Mackenzie Morgan Developer Groups The Release Cycle Badly. Making Changes Bugs
  • 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. Whats 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. 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. 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. Can I submit a debdi鍖 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. Whats that LP: #12345 stu鍖? 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. Why so many bugs in stable? Ubuntu Development Processes Mackenzie Morgan Developer Groups The Release Testing happens too late (Beta) Cycle Making Rushing to 鍖x bugs late introduces more bugs Changes Bugs Need more developers
  • 36. Questions? Ubuntu Development Processes Mackenzie Morgan Developer Groups The Release Cycle Making Changes Bugs