Ubuntu Development Processes (OLF2010)

2,059 views

Published on

Updated version of the CALUG presentation, presented at the UbuCon at Ohio LinuxFest 2010

Published in: Technology
2 Comments
1 Like
Statistics
Notes
No Downloads
Views
Total views
2,059
On SlideShare
0
From Embeds
0
Number of Embeds
718
Actions
Shares
0
Downloads
7
Comments
2
Likes
1
Embeds 0
No embeds

No notes for slide

Ubuntu Development Processes (OLF2010)

  1. 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. 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 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. 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 Ubuntu Desktop Groups Ubuntu Server The Release Cycle Kubuntu Making Changes Mythbuntu Bugs Kernel Mono Mozilla Per-package uploaders
  10. 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. 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 (Testing if LTS) Changes Bugs Merge remaining packages
  16. 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. 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 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. 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
  25. 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. 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. 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. 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. 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. 30. How are patches handled in Ubuntu? Ubuntu Development Processes Mackenzie Morgan Developer Groups The Release Cycle Badly. Making Changes Bugs
  31. 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. 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. 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. 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. 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. 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. 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. 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. 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
  40. 40. Questions? Ubuntu Development Processes Mackenzie Morgan Developer Groups The Release Cycle Making Changes Bugs

×