.. ubuntu-packaging-guide documentation master file, created by
   sphinx-quickstart on Wed Nov 17 14:59:57 2010.
   You can adapt this file completely to your liking, but it should at least
   contain the root `toctree` directive.

.. title:: Overview

Ubuntu Packaging Guide
==================================================

Welcome to the Ubuntu Packaging and Development Guide! This is the official
place for learning all about Ubuntu Development and packaging. After reading 
this guide you will have:

* heard about the most important players, processes and tools in
  Ubuntu development,
* your development environment set up correctly, 
* a better idea of how to join our community,
* fixed an actual Ubuntu bug as part of the tutorials.

Ubuntu is not only a free and open source operating system, its platform is 
also open and developed in a transparent fashion. The source code for every 
single component can be obtained easily and every single change to the Ubuntu 
platform can be reviewed. 

This means you can actively get involved in improving it and the community of 
Ubuntu platform developers is always interested in helping peers getting 
started.

Ubuntu is also a community of great people who believe in free software and 
that it should be accessible for everyone. Its members are welcoming and want
you to be involved as well. We want you to get involved, to ask questions, to
make Ubuntu better together with us.

If you run into problems: don't panic! Check out the :doc:`communication
article<./communication>` and you will find out how to most easily get in 
touch with other developers.

The guide is split up into two sections:

* A list of articles based on tasks, things you want to get done.
* A set of knowledge-base articles that dig deeper 
  into specific bits of our tools and workflows.

This guide focuses on the Ubuntu Distributed Development packaging method. 
This is a new way of packaging which uses Distributed Revision Control
branches.  It currently has some limitations which mean many teams in Ubuntu
use :doc:`traditional packaging<./traditional-packaging>` methods.  See the
:doc:`UDD Introduction<./udd-intro>` page for an introduction to the differences.

Articles
--------

.. toctree::
   :maxdepth: 1
   :numbered:

   introduction-to-ubuntu-development
   getting-set-up
   udd-intro
   fixing-a-bug
   fixing-a-bug-example
   packaging-new-software
   security-and-stable-release-updates
   patches-to-packages
   fixing-ftbfs
   libraries
   backports

Knowledge Base
--------------

.. toctree::
   :maxdepth: 1
   :numbered:

   communication
   debian-dir-overview
   auto-pkg-test
   udd-getting-the-source
   udd-working
   udd-sponsorship
   udd-uploading
   udd-latest
   udd-merging
   chroots
   traditional-packaging
   python-packaging
   kde

Further Reading
---------------

You can read this guide offline in different formats, if you install one of
the `binary packages <https://launchpad.net/ubuntu/+source/ubuntu-packaging-guide>`_.

If you want to learn more about building Debian packages, here are some Debian
resources you may find useful:

* `How to package for Debian <https://wiki.debian.org/HowToPackageForDebian>`_;
* `Debian Policy Manual <http://www.debian.org/doc/debian-policy/>`_;
* `Debian New Maintainers' Guide <http://www.debian.org/doc/manuals/maint-guide/>`_
  — available in many languages;
* `Packaging tutorial <http://www.debian.org/doc/manuals/packaging-tutorial/>`_ (also
  available as a `package <https://launchpad.net/ubuntu/+source/packaging-tutorial>`_).

We are always looking to improve this guide. If you find any problems or have
some suggestions, please `report a bug on Launchpad 
<https://bugs.launchpad.net/ubuntu-packaging-guide>`_. If you'd like to help
work on the guide, `grab the source
<https://code.launchpad.net/~ubuntu-packaging-guide-team/ubuntu-packaging-guide/trunk>`_
there as well.
