The Packaging and Development guide is currently undergoing a major overhaul to bring it up to date. The current state you are seeing now is a preview of this effort.
The current version is unstable (changing URLs can occur at any time) and most content is not in properly reviewed yet. Proceed with caution and be aware of technical inaccuracies.
If you are an experienced packager and would like to contribute, we would love for you to be involved! See our contribution page for details of how to join in.
Contribute to the Ubuntu Packaging Guide¶
The Ubuntu Packaging Guide is an open source project that warmly welcomes community contributions and suggestions.
This document describes how to contribute changes to the Ubuntu Packaging Guide. If you don’t already have a GitHub account, you can sign up on their website.
How to contribute¶
I want to raise an issue¶
We use GitHub issues to track things that need to be fixed. If you find a problem and want to report it to us, you can click on the “Give feedback” button at the top of any page in the Guide, and it will open an issue for you.
Alternatively, you can open an issue directly and describe the problem you’re having, or the suggestion you want to add.
I have a question about packaging¶
If you’re stuck and have a question, you can use our GitHub discussion board to ask, or start a discussion.
Note that we may not be able to respond immediately, so please be patient!
I want to submit a fix¶
If you found an issue and want to submit a fix for it, or have written a guide
you would like to add to the documentation, feel free to
open a pull request to submit your fix
main branch. If you need help, please use the discussion board
or contact one of the repository administrators.
Contribution format for the project¶
Sphinx & reStructuredText¶
The Guide is built using Sphinx. Articles should be written in reStructuredText. The following links might be helpful:
How to add a new Sphinx extension¶
In general, there are two places you will need to update to add new extensions.
docs/conf.py- add the name of the extension to the extensions configuration parameter
docs/.sphinx/requirements.txt- add the name of the extension to the bottom of the list
The documentation for most Sphinx extensions will tell you what text to add
conf.py file, as in this example:
extensions = [
We use the localisation (l10n) module for Sphinx and gettext for translating the Ubuntu Packaging Guide.
Some notes about translating the guide:
Some formatting is part of reStructuredText and should not be changed, including emphasis (which uses asterisks or underscores), paragraph ending before a code block (
::) and double backtick quotes (
The Guide uses email-style reStructuredText links. If you see a link in the text like:
`Translatable link text <Link_Reference_>`_
Then replace the “Translatable link text” with your translations, but keep the
Link_Referenceunchanged (even if it is in English). The same applies if a URL is used instead of
To test your translation, use
make BUILDER-LANGUAGE command (for example,
make html-it will build HTML docs in Italian language).