<a id="guides-for-contributors"></a>

# Guides for contributors

These guides help you with the specific tasks and processes that build Ubuntu.

## Contributing to Ubuntu Development

Contributing to Ubuntu can mean many things, from [developing new applications](https://documentation.ubuntu.com/project/community/contribute/app-development.md#contribute-to-app-development) to [reporting](https://documentation.ubuntu.com/project/contributors/qa-and-testing/report-a-bug.md#how-to-report-a-bug), [triaging](https://documentation.ubuntu.com/project/contributors/bug-triage.md#triaging-bugs), and [fixing bugs](https://documentation.ubuntu.com/project/contributors/bug-fix.md#fixing-bugs), and many more development tasks.

### Getting Started with Ubuntu Development

A great place to start working on Ubuntu is through [reporting a bug](https://documentation.ubuntu.com/project/contributors/qa-and-testing/report-a-bug.md#how-to-report-a-bug). Being active on the bug discussion after posting is important as developers and other community members may ask follow up questions or ask for additional log information.

[Triaging](https://documentation.ubuntu.com/project/contributors/bug-triage.md#triaging-bugs) and bug verification are good next steps. Bug verification is when another user reads the bug, follows steps outlined, and can “verify” the bug affects their system or a representative system, such as a virtual machine of the same Ubuntu version in the bug. Helping to triage bugs, ensuring all information required is present, and the correct package identified helps developers address the issue more quickly. Being able to help report these confirmed bugs upstream to Debian and original source (such as GitHub) are valuable contributions to Ubuntu.

[Fixing bugs](https://documentation.ubuntu.com/project/contributors/bug-fix.md#fixing-bugs) is a more advanced task that requires greater knowledge of `git` and [patching workflows](https://documentation.ubuntu.com/project/contributors/updating.md#patching). If you’re feeling more comfortable in your skills as a software developer then finding upstream fixes, applying them to existing packages, and contributing to upstream projects to fix issues is of great help to Ubuntu.

---

## Setting up for distro work

This section includes all the relevant tooling you’ll need to work on Ubuntu.

* [Getting started](https://documentation.ubuntu.com/project/contributors/setup.md)

## Bug triaging

How to ensure bugs are targeting the appropriate packages, contain the required information, and verify that the bug, as specified, is reproducible.

* [Triaging bugs](https://documentation.ubuntu.com/project/contributors/bug-triage.md)

## QA and testing

How to test packages, ISOs, and other images. Also covers more specialized testing, such as upgrade testing (upgrading from one version of Ubuntu to another) and specific hardware testing.

* [QA and testing](https://documentation.ubuntu.com/project/contributors/qa-and-testing.md)

## Debugging

Introduction to debugging, including understanding `apport` and crash reports.

* [Debugging](https://documentation.ubuntu.com/project/contributors/debugging.md)

## Bug fixing

Pages on finding fixes upstream and applying patches.

* [Fixing bugs](https://documentation.ubuntu.com/project/contributors/bug-fix.md)

## Building

How to build packages locally or in a PPA, install built packages, and run package tests.

* [Building and testing packages](https://documentation.ubuntu.com/project/contributors/building.md)

## Updating

Specific pages on working with Debian patches.

* [Updating](https://documentation.ubuntu.com/project/contributors/updating.md)

## Merging

The [Merging](https://documentation.ubuntu.com/project/contributors/merging.md#merging) article series provides instructions on how to perform package merges (i.e. how to import a new version of a Debian package into Ubuntu if the Ubuntu package carries a [delta](https://documentation.ubuntu.com/project/how-ubuntu-is-made/concepts/glossary.md#term-Delta)).

* [Merging](https://documentation.ubuntu.com/project/contributors/merging.md)

## Uploading and sponsorship

All aspects of seeking sponsorship for uploads to the Archive are covered in the [Sponsorship](https://documentation.ubuntu.com/project/how-ubuntu-is-made/processes/sponsorship.md#sponsorship) article series.

* [Uploading](https://documentation.ubuntu.com/project/contributors/uploading.md)

## New packages

Contributing a new package to Ubuntu.

* [Contribute new packages](https://documentation.ubuntu.com/project/contributors/new-package.md)

## Stable Release Updates

Guidance for contributors on how to submit requests for SRU. See

* [Stable Release Updates](https://documentation.ubuntu.com/project/SRU/howto.md)

## Language-specific features

When we develop our build pipelines, we will sometimes add new features. See

* [Language-specific features](https://documentation.ubuntu.com/project/contributors/language-specific.md)
  * [Rust](https://documentation.ubuntu.com/project/contributors/language-specific.md#rust)

## Accessibility

Basic workflow for checking accessibility, such as contrast and themes, text sizes, keyboard navigation, and screen reader usability.

* [Check accessibility](https://documentation.ubuntu.com/project/contributors/check-accessibility.md)

## Contribute documentation

*Ubuntu Project documentation* is a collaborative effort. We welcome community contributions. For guidance on how to contribute to this documentation set, see:

* [Contribute docs](https://documentation.ubuntu.com/project/contributors/contribute-docs.md)

## Setting up and using Matrix

Matrix is the instant messaging platform the Ubuntu Community uses.
This section will help you get set up with a Matrix client and show you how to use it to stay in contact with the community.

* [Using Matrix](https://documentation.ubuntu.com/project/community/contributors/matrix.md)

## Advanced tasks

Although you do not need any elevated permissions to work on the tasks in this
section, they are not suitable for beginners and require you to already have
some working familiarity with Ubuntu development.

* [Advanced tasks](https://documentation.ubuntu.com/project/contributors/advanced.md)

## Mirrors

Information on setting up an archive mirror.

* [Set up a mirror](https://documentation.ubuntu.com/project/release-team/mirrors.md)
