Contribute to Ubuntu Development

ubuntu-devel
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:

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! :tada:

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. :smile:

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.

Development Matrix Channels

Development Mailing Lists

4 Likes

Thanks for working on an important topic.

However…

I recently changed the “Contribute” link at https://help.ubuntu.com/ to https://ubuntu.com/community/contribute . That in turn points a visitor, who wants to improve the documentation, to Contribute. And now you wrote this one.

Is there an overall plan which would make me less confused if I knew about it?

The link you added to https://help.ubuntu.com/ is the correct one. It points to the top of the Contribute hierarchy. This current topic was created to separate Application Development and Ubuntu - The OS itself - Development into their own respective pages.

2 Likes

Thanks for clarifying. Suddenly it makes sense also to me. :wink:

2 Likes

:slight_smile: No problem and sorry for the confusion! Some shifting things around with the goal of making community resources a little more accessible. Feel free to make any changes or additions!

I looked around, and actually I have a couple of ideas for changes/additions. But that will have to wait a bit.

1 Like