UbuntuDevelopment
THIS IS A WORK IN PROGRESS. I hope to incorporate and supersede DeveloperResources and [:Uploads].
Overview of Development
Ubuntu is developed by a [http://launchpad.net/~ubuntu-dev team of developers], including both [http://launchpad.net/~ubuntu-core-dev core developers] and ["MOTU"]. It is based on [http://www.debian.org/ Debian], and [wiki:TimeBasedReleases periodically released] according to a [wiki:ReleaseScheduleTemplate schedule].
Packaging and Uploading
If you're interested in packaging work, you should get in touch with [:MOTU the MOTU team], who provide mentoring for new developers.
XXX: fix overlap with ["MOTU/Documentation"].
Working with Debian-format Packages
Ubuntu uses the Debian packaging format. The following resources explain how to create and modify Debian-format packages.
If you are already familiar with Debian development, UbuntuForDebianDevelopers explains some of the differences between the projects.
All Ubuntu developers should be familiar with the [http://www.debian.org/doc/maint-guide/ Debian New Maintainer Guide], though be aware that there are many differences (technical, social and procedural) between Ubuntu and Debian of which they must also be aware.
[http://women.alioth.debian.org/wiki/English/PackagingTutorial A packaging tutorial] is available from the Debian Women project, as is [http://women.alioth.debian.org/wiki/English/MaintainerScripts an explanation of MaintainerScripts]
Many packages use tools to help manage multiple patches. [https://wiki.ubuntu.com/MOTU/School/PatchingSources Patching Ubuntu packages] (from the MOTU school) explains how to work with them.
The [https://perso.duckcorp.org/duck/cdbs-doc/cdbs-doc.xhtml CDBS Manual] explains how to work with packages using the CDBS packaging scripts, one example of a patch system (and more)
For a deeper understanding of the packaging process, you might want to have a look at this one: http://women.alioth.debian.org/wiki/English/BuildingWithoutHelper
http://people.debian.org/~calvin/unofficial/ contains information on maintaining your own archive of unofficial packages.
Tamir wrote an article on [http://ubuntuforums.org/showthread.php?t=51003&page=1&pp=10 How to make Debian-standard debs from scratch] on the Ubuntu Forums
[https://lists.ubuntu.com/archives/ubuntu-motu/2006-February/000443.html how to write watch files] for sourceforge.net hosted projects
Working with Ubuntu Packages
Set the target suite in debian/changelog to be the code name of the current development branch, e.g. "dch -D feisty"
When working with a package which originated in Debian, use a version number derived from the Debian version number with ubuntu<revision> appended. e.g. Debian 1.0-2 becomes 1.0-2ubuntu1, followed by 1.0-2ubuntu2, etc.
Packages not in debian yet should end with revision -0ubuntu1 (To Be Discussed: see [https://launchpad.net/ubuntu/+spec/package-version-conflicts] )
Building
You should always build and test your uploads locally before submitting them to Ubuntu.
You may want to build them in a [:DebootstrapChroot] or in [:PbuilderHowto:pbuilder]
Backports are explained at [:BackportsHowto]
Uploading
Make source-only uploads, i.e. use "dpkg-buildpackage -S"
- Note: when uploading to [:REVU], please include the orig tarball (use parameters -S -sa)
- Once you have created your packages, see [:Uploads] for how to upload
Archive Administration
New Packages
Autobuilders
Syncing and Merging
The Release Process
Milestones
Freezes
Stable Releases
Released versions of Ubuntu are intended to be stable. This means that users should be able to rely on their behaviour, and therefore, updates are only released under special circumstances. These criteria, and the procedure for preparing such an update, are described in StableReleaseUpdates.