Ubuntu, like other Linux distributions, relies on a vast collection of software packages created and supported by a global community of passionate developers. There are a number of ways that you can help support its ongoing development no matter what your current skill or knowledge level is.
Getting Started - Ubuntu Prospective Developers
Join the discussion
The Ubuntu Discourse acts as a central hub for community discussion. Ubuntu developers use this forum to ask for feedback, discuss changes, and explain what they’re working on. The Ubuntu Discourse provides a gateway into the community and its ongoing activities.
Join in the conversation at the Ubuntu Discourse.
Reporting Bugs
If you run into a bug while using Ubuntu, there is a high probability that someone else will too. Reporting these issues can help developers identify problems with their packages and help improve the overall quality and stability of the operating system.
Discover the keys to successful bug reporting.
Join the BugSquad
No one likes bugs (Maybe with the exception of entomologists). An excellent way to help improve Ubuntu is by verifying, identifying, classifying and prioritizing bugs in a process calling triaging. This is where the BugSquad Team helps fulfill a crucial role within the development process.
Join fellow bug hunters on the BugSquad Team.
Patch Pilot Program
If you’ve discovered a fix or patch for a particular bug and need help getting it into Ubuntu, the Patch Pilot program is a great entry point. The program is designed to make contributing to Ubuntu a welcoming and inspiring experience while fostering community knowledge and maintaining ongoing contributions.
Need help with your patch? Receive help from a Patch Pilot.
Are you a developer looking to mentor? Become a Patch Pilot!
Package Maintenance
Ubuntu software is distributed in the form of “packages”, that all work together to provide the software our users interact with on a daily basis. Helping maintain and update outdated or buggy packages is one of the best ways to sharpen your packaging skills. The best way for a newcomer to get involved with packaging is via the Masters of the Universe commonly referred to as the MOTU.
Learn about the role of the MOTU and the Ubuntu packaging process in The Ubuntu Packaging Guide.
Continue your Prospective Journey
These are just a few ways that you can contribute to the ongoing development of Ubuntu and work towards more official recognition and rights within the project. Engaging with fellow contributors, joining in on important technical discussions and providing helpful feedback will allow you to improve your standing within the community and grow your developer skills.
Ubuntu Contributing Developers
Contributors who have demonstrated significant and sustained contributions in the area of Ubuntu Development, but aren’t ready to apply for upload rights at this time, can apply for Official Ubuntu Membership. An Ubuntu Contributing Developer is a type of specialized Ubuntu Member, via the ~ubuntu-developer-members Launchpad team.
An individual may also gain eligibility for Ubuntu Contributing Developer via a variety of contributions to our core infrastructure and developer documentation, such as:
- britney2-ubuntu - operates the Proposed Migration process.
- autopkgtest-cloud - operates autopkgtest.ubuntu.com.
- Merge O’ Matic.
- Ubuntu Packaging Guide - hosted here.
Learn more about the Ubuntu Membership Process here.
Ubuntu Per-Package Uploader (PPU)
- are responsible for maintenance of some subset of packages in Ubuntu
- understand packaging concepts, having substantial experience uploading packages through a sponsor
- apply this knowledge by uploading new packages, and updating existing packages, in an area of expertise
- may also contribute to other areas in Ubuntu in cooperation with another developer
- answer questions of other developers in order to expand their understanding of packaging work
- provide guidance for prospective Ubuntu developers regarding technical issues
- are implicitly considered Ubuntu Members
- are granted a vote when the Development Membership Board or Technical Board are polling Ubuntu Developers
- are considered as Ubuntu Contributing Developers when working outside the delegated subset of packages
PPU uploaders can be specific to a flavor (or another team), such as Lubuntu, or PPU can be granted on an individual level. The uploader(s) are collectively responsible for the packages in that set. You can find the packageset list here.
Ubuntu Master Of The Universe (MOTU)
- are members of the MOTU team in Launchpad
- are collectively responsible for the maintenance of packages in the universe and multiverse components
- understand packaging concepts, having substantial experience uploading packages through a sponsor
- apply this knowledge by uploading new packages, and updating existing packages, in the universe component
- may also contribute to the main component in cooperation with a Core Developer
- answer questions of other developers in order to expand their understanding of packaging work
- provide guidance for prospective Ubuntu developers regarding technical issues
Ubuntu Core Developers
- are members of the ubuntu-core-dev team in Launchpad
- are collectively responsible for the maintenance of all packages in Ubuntu
- have a strong working knowledge of packaging concepts and techniques, refined through experience
- have a strong working knowledge of Ubuntu project procedures, especially those related to the release process and support commitments, and an understanding of the reasons why they exist; e.g. having done an SRU or security fix
- are able to apply this knowledge to a variety of packages and subsystems
- have a history of substantial direct contributions to the distribution
- take a leading role in new development projects to improve Ubuntu
- specify, develop and deploy new features for the default installation of Ubuntu
- exercise great care in their work, with the understanding that their efforts have a direct impact on others, including:
- every Ubuntu user
- the Ubuntu Release Team
- corporate partners who provide support for Ubuntu
- feel a sense of personal responsibility for the quality of Ubuntu releases and for the satisfaction of Ubuntu users
- are implicitly considered Ubuntu Members
- are granted a vote when the Development Membership Board or Technical Board are polling Ubuntu Developers
Resources for new and existing Ubuntu Developers
Quick reference
Welcome to the team!
After being accepted by the Developer Membership Board, you are now an Ubuntu Developer, congratulations!
Here are the basics for uploading to Ubuntu:
- There are many similarities compared to a PPA. Some exceptions include (but are not limited to):
- A dedicated -proposed pocket for uploads.
- Difference in version numbers (e.g. a
~ppaX
suffix is not appropriate for the archive.)
- Uploading using
dput ssh-ubuntu
is preferred, see this mailing list post for more details. - It’s always better to ask if you’re unsure before uploading, not after.
Transitions
Transitions can be an exciting experience for some and a frightening experience for others. It is important to be considerate with your uploads, so entanglement is minimized.
As an example, let’s say we are doing a transition from Python 1.1 to 1.2, which has many reverse dependencies. That transition would likely show up on the Ubuntu Transition Tracker, which is the first sign you should be careful before uploading a Python package. The next step is to check the excuses page, which will give you a wider view of the packages in the proposed pocket. If you are still in doubt, join the #ubuntu-release channel and ask there.