ubuntu development processes (olf2010)

40
Ubuntu Development Processes Mackenzie Morgan Developer Groups The Release Cycle Making Changes Bugs Ubuntu Development Processes Mackenzie Morgan Ohio LinuxFest 2010 UbuCon 10 September 2010

Upload: mackenzie-morgan

Post on 11-May-2015

1.624 views

Category:

Technology


0 download

DESCRIPTION

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

TRANSCRIPT

Page 1: Ubuntu Development Processes (OLF2010)

UbuntuDevelopmentProcesses

MackenzieMorgan

DeveloperGroups

The ReleaseCycle

MakingChanges

Bugs

Ubuntu Development Processes

Mackenzie Morgan

Ohio LinuxFest 2010 UbuCon

10 September 2010

Page 2: Ubuntu Development Processes (OLF2010)

UbuntuDevelopmentProcesses

MackenzieMorgan

DeveloperGroups

The ReleaseCycle

MakingChanges

Bugs

Outline

1 Developer Groups

2 The Release Cycle

3 Making Changes

4 Bugs

Page 3: Ubuntu Development Processes (OLF2010)

UbuntuDevelopmentProcesses

MackenzieMorgan

DeveloperGroups

The ReleaseCycle

MakingChanges

Bugs

Who are the developers?

But that’s outdated

Page 4: Ubuntu Development Processes (OLF2010)

UbuntuDevelopmentProcesses

MackenzieMorgan

DeveloperGroups

The ReleaseCycle

MakingChanges

Bugs

What changed?

Archive reorganisation (hereafter: archive reorg)

Page 5: Ubuntu Development Processes (OLF2010)

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

Page 6: Ubuntu Development Processes (OLF2010)

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

Page 7: Ubuntu Development Processes (OLF2010)

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

Page 8: Ubuntu Development Processes (OLF2010)

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

Page 9: Ubuntu Development Processes (OLF2010)

UbuntuDevelopmentProcesses

MackenzieMorgan

DeveloperGroups

The ReleaseCycle

MakingChanges

Bugs

Where are we now?

Done:

Ubuntu Desktop

Ubuntu Server

Kubuntu

Mythbuntu

Kernel

Mono

Mozilla

Per-package uploaders

Page 10: Ubuntu Development Processes (OLF2010)

UbuntuDevelopmentProcesses

MackenzieMorgan

DeveloperGroups

The ReleaseCycle

MakingChanges

Bugs

How many developers are there?

167 in ubuntu-dev

Unknown number of “prospective developers”

Page 11: Ubuntu Development Processes (OLF2010)

UbuntuDevelopmentProcesses

MackenzieMorgan

DeveloperGroups

The ReleaseCycle

MakingChanges

Bugs

How do I find a package’s maintainer?

You don’t. We’re not Debian.

Page 12: Ubuntu Development Processes (OLF2010)

UbuntuDevelopmentProcesses

MackenzieMorgan

DeveloperGroups

The ReleaseCycle

MakingChanges

Bugs

What if you lack upload rights?

Other developers can sign off on and upload your package(sponsoring)

Page 13: Ubuntu Development Processes (OLF2010)

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

Page 14: Ubuntu Development Processes (OLF2010)

UbuntuDevelopmentProcesses

MackenzieMorgan

DeveloperGroups

The ReleaseCycle

MakingChanges

Bugs

Outline

1 Developer Groups

2 The Release Cycle

3 Making Changes

4 Bugs

Page 15: Ubuntu Development Processes (OLF2010)

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

Page 16: Ubuntu Development Processes (OLF2010)

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. . . )

Page 17: Ubuntu Development Processes (OLF2010)

UbuntuDevelopmentProcesses

MackenzieMorgan

DeveloperGroups

The ReleaseCycle

MakingChanges

Bugs

What happens during freezes?

Uploads are queued pending Archive Admin approvalhttp://launchpad.net/ubuntu/maverick/+queue

Page 18: Ubuntu Development Processes (OLF2010)

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

Page 19: Ubuntu Development Processes (OLF2010)

UbuntuDevelopmentProcesses

MackenzieMorgan

DeveloperGroups

The ReleaseCycle

MakingChanges

Bugs

Outline

1 Developer Groups

2 The Release Cycle

3 Making Changes

4 Bugs

Page 20: Ubuntu Development Processes (OLF2010)

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

Page 21: Ubuntu Development Processes (OLF2010)

UbuntuDevelopmentProcesses

MackenzieMorgan

DeveloperGroups

The ReleaseCycle

MakingChanges

Bugs

Why?

We followed Debian on the debuild -S && dput

../*.changes thing

Page 22: Ubuntu Development Processes (OLF2010)

UbuntuDevelopmentProcesses

MackenzieMorgan

DeveloperGroups

The ReleaseCycle

MakingChanges

Bugs

Why change?

Debian has only a few maintainers per packageWe have team maintainership, >70 developers responsible

Page 23: Ubuntu Development Processes (OLF2010)

UbuntuDevelopmentProcesses

MackenzieMorgan

DeveloperGroups

The ReleaseCycle

MakingChanges

Bugs

How’s the change going?

Slowly.

Page 24: Ubuntu Development Processes (OLF2010)

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?

Page 25: Ubuntu Development Processes (OLF2010)

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?

Page 26: Ubuntu Development Processes (OLF2010)

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

Page 27: Ubuntu Development Processes (OLF2010)

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

Page 28: Ubuntu Development Processes (OLF2010)

UbuntuDevelopmentProcesses

MackenzieMorgan

DeveloperGroups

The ReleaseCycle

MakingChanges

Bugs

Outline

1 Developer Groups

2 The Release Cycle

3 Making Changes

4 Bugs

Page 29: Ubuntu Development Processes (OLF2010)

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

Page 30: Ubuntu Development Processes (OLF2010)

UbuntuDevelopmentProcesses

MackenzieMorgan

DeveloperGroups

The ReleaseCycle

MakingChanges

Bugs

How are patches handled in Ubuntu?

Badly.

Page 31: Ubuntu Development Processes (OLF2010)

UbuntuDevelopmentProcesses

MackenzieMorgan

DeveloperGroups

The ReleaseCycle

MakingChanges

Bugs

Why?

“Not enough monkeys”– Daniel T. Chen

∼2000 patches bitrotting in Launchpad

Page 32: Ubuntu Development Processes (OLF2010)

UbuntuDevelopmentProcesses

MackenzieMorgan

DeveloperGroups

The ReleaseCycle

MakingChanges

Bugs

What’s being done about it?

Operation Cleansweep

Ubuntu Reviews team

Page 33: Ubuntu Development Processes (OLF2010)

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

Page 34: Ubuntu Development Processes (OLF2010)

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

Page 35: Ubuntu Development Processes (OLF2010)

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!

Page 36: Ubuntu Development Processes (OLF2010)

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

Page 37: Ubuntu Development Processes (OLF2010)

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)

Page 38: Ubuntu Development Processes (OLF2010)

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

Page 39: Ubuntu Development Processes (OLF2010)

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

Page 40: Ubuntu Development Processes (OLF2010)

UbuntuDevelopmentProcesses

MackenzieMorgan

DeveloperGroups

The ReleaseCycle

MakingChanges

Bugs

Questions?