Ubuntu Development Processes (OLF2010)

Post on 11-May-2015

1,623 views 0 download

Tags:

description

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

transcript

UbuntuDevelopmentProcesses

MackenzieMorgan

DeveloperGroups

The ReleaseCycle

MakingChanges

Bugs

Ubuntu Development Processes

Mackenzie Morgan

Ohio LinuxFest 2010 UbuCon

10 September 2010

UbuntuDevelopmentProcesses

MackenzieMorgan

DeveloperGroups

The ReleaseCycle

MakingChanges

Bugs

Outline

1 Developer Groups

2 The Release Cycle

3 Making Changes

4 Bugs

UbuntuDevelopmentProcesses

MackenzieMorgan

DeveloperGroups

The ReleaseCycle

MakingChanges

Bugs

Who are the developers?

But that’s outdated

UbuntuDevelopmentProcesses

MackenzieMorgan

DeveloperGroups

The ReleaseCycle

MakingChanges

Bugs

What changed?

Archive reorganisation (hereafter: archive reorg)

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

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

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

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

UbuntuDevelopmentProcesses

MackenzieMorgan

DeveloperGroups

The ReleaseCycle

MakingChanges

Bugs

Where are we now?

Done:

Ubuntu Desktop

Ubuntu Server

Kubuntu

Mythbuntu

Kernel

Mono

Mozilla

Per-package uploaders

UbuntuDevelopmentProcesses

MackenzieMorgan

DeveloperGroups

The ReleaseCycle

MakingChanges

Bugs

How many developers are there?

167 in ubuntu-dev

Unknown number of “prospective developers”

UbuntuDevelopmentProcesses

MackenzieMorgan

DeveloperGroups

The ReleaseCycle

MakingChanges

Bugs

How do I find a package’s maintainer?

You don’t. We’re not Debian.

UbuntuDevelopmentProcesses

MackenzieMorgan

DeveloperGroups

The ReleaseCycle

MakingChanges

Bugs

What if you lack upload rights?

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

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

UbuntuDevelopmentProcesses

MackenzieMorgan

DeveloperGroups

The ReleaseCycle

MakingChanges

Bugs

Outline

1 Developer Groups

2 The Release Cycle

3 Making Changes

4 Bugs

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

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

UbuntuDevelopmentProcesses

MackenzieMorgan

DeveloperGroups

The ReleaseCycle

MakingChanges

Bugs

What happens during freezes?

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

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

UbuntuDevelopmentProcesses

MackenzieMorgan

DeveloperGroups

The ReleaseCycle

MakingChanges

Bugs

Outline

1 Developer Groups

2 The Release Cycle

3 Making Changes

4 Bugs

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

UbuntuDevelopmentProcesses

MackenzieMorgan

DeveloperGroups

The ReleaseCycle

MakingChanges

Bugs

Why?

We followed Debian on the debuild -S && dput

../*.changes thing

UbuntuDevelopmentProcesses

MackenzieMorgan

DeveloperGroups

The ReleaseCycle

MakingChanges

Bugs

Why change?

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

UbuntuDevelopmentProcesses

MackenzieMorgan

DeveloperGroups

The ReleaseCycle

MakingChanges

Bugs

How’s the change going?

Slowly.

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?

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?

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

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

UbuntuDevelopmentProcesses

MackenzieMorgan

DeveloperGroups

The ReleaseCycle

MakingChanges

Bugs

Outline

1 Developer Groups

2 The Release Cycle

3 Making Changes

4 Bugs

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

UbuntuDevelopmentProcesses

MackenzieMorgan

DeveloperGroups

The ReleaseCycle

MakingChanges

Bugs

How are patches handled in Ubuntu?

Badly.

UbuntuDevelopmentProcesses

MackenzieMorgan

DeveloperGroups

The ReleaseCycle

MakingChanges

Bugs

Why?

“Not enough monkeys”– Daniel T. Chen

∼2000 patches bitrotting in Launchpad

UbuntuDevelopmentProcesses

MackenzieMorgan

DeveloperGroups

The ReleaseCycle

MakingChanges

Bugs

What’s being done about it?

Operation Cleansweep

Ubuntu Reviews team

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

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

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!

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

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)

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

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

UbuntuDevelopmentProcesses

MackenzieMorgan

DeveloperGroups

The ReleaseCycle

MakingChanges

Bugs

Questions?