Developers
One of the ways people participate in Ubuntu is to become developers, who can make changes to the packages that make up the distribution. This document describes the process to become an official Ubuntu developer, from your first patch and bug fix, to membership in the core developer team.
Developers
A developer is an Ubuntu member who is able to fix, upload, and release packages in the Ubuntu archive. Being a developer is orthogonal to membership. The developers are really one team out of many teams that make up the Ubuntu Project - artwork, marketing, local community, special interest or vertical market groups.
It's a matter of great pride for people to become an Ubuntu Core Developer. It takes time, dedication, and requires that one demonstrate not only skill in coding, but an understanding of the complete Ubuntu system, how the pieces fit together, and a sense of the appropriate way to make changes without creating problems for other developers immediately or in the future.
Developers must be members and, like all members, must adhere to the Code of Conduct. In the context of maintaining packages this means that:
-
New developers should have their package changes reviewed by a more experienced developer for a few months after they are appointed to make sure that their work is consistent with existing practice.
-
While developers may upload changes to any package in Ubuntu, or at least to all packages within a component, it is considered best practice to work with a team to avoid conflicts and duplication of work
In addition to following the Code of Conduct, developers who wish for their packages to be included in main need to ensure that their work meets the Ubuntu Service Level Commitment. Where packages fail to meet the service level commitment they will be withdrawn from main for the next release.
To ensure quality, many Ubuntu developers will, especially initially, be limited in their ability to upload packages. For example, many developers will be universe maintainers which will allow them to upload into universe but not into the main component of Ubuntu. So, in short, you will need to join the MOTU for a while, before being considered for the Ubuntu Core Developers team.
You do not have to be a member of the development team to contribute code to Ubuntu. The developers regularly accept patches, code and packages from non-maintainers. In addition, you can produce packages that are uploaded by a sponsor who has the appropriate rights.
There are two stages to becoming an Ubuntu developer:
-
Masters of the Universe (MOTU): membership in the team responsible for all packages in universe and multiverse.
-
Ubuntu Core Developer: membership in the team that can upload packages to "main", the packages which are often installed by default on new Ubuntu systems and which are fully supported with every release.
Qualifying for Developer Team Membership
Ubuntu maintainers should exhibit the following qualities:
-
Knowledge of Ubuntu, Linux, UNIX and the open source world, as evidenced by work done on existing packages, technical support provided to Ubuntu users, and documents written and published by the developer. The core team of Ubuntu developers is an exceptional group of people who have demonstrated the highest levels of skill and knowledge in the open source. If you are a maintainer in another distribution, such as Fedora or Debian or Gentoo, then your work there will certainly be considered as part of your selection process, though you will still need to demonstrate real participation in the Ubuntu project before qualifying as an Ubuntu developer.
-
Communication and social skills are important to ensure that the team of developers is able to work efficiently and productively as a team. We encourage debate and discussion (our conferences in particular have seen some very passionate debates) but will not allow differences of opinion to degenerate into personal attacks. The code of conduct is very clear on the standards of behaviour expected from developers, and dev team membership can be revoked if a developer consistently fails to respect the guidelines laid down in that document.
-
A strong commitment to software quality is important to maintain the high standards set by the rest of the Ubuntu team and distribution. New packages must fully comply with existing Ubuntu package standards and policies. We look to see whether a developer likes his package to "do the Right Thing" and "Just Work", and will only appoint maintainers who design their packages to work well not just for their purposes but for the common case, typical user.
-
Evidence of a high work rate and productivity. Ubuntu is a large software distribution and there is a lot of work to do! Developers need to carry their share of that work. Of course many hands make light work, and we prefer people to focus on the pieces that they themselves are passionate about, but the project can lapse if a maintainer doesn't participate regularly.
Becoming a Developer
It often takes some time to become an Ubuntu Developer. This is what the roadmap looks like if you are interested in becoming an Ubuntu developer and are not already a member. Existing members will be able to skip the second step:
-
Start contributing, on the mailing list, the bug system, the wiki, with documentation and translations and code. Update your wiki page with information and links to substantial contributions that you have made. Gather Launchpad karma from bug triage and patching. In general, come to undertand how Ubuntu functions, how we collaborate with ourselves and other distros and upstream.
-
Once your have made substantial contributions over a significant period, you should be become an Ubuntu Member. This is a necessary step for all developers. It involves getting approval from the Ubuntu Community council and agreeing to the Ubuntu Code of Conduct. See community processes for the details on how you apply and are granted Membership.
-
Ask one of the existing developers to mentor you, reviewing your changes and making suggestions for improvements to packages that you are working on. The more actual interaction you have had with the Ubuntu developers, the easier approval by the TB and CC will be. In general, the best group to hang out with are the MOTU ("Masters Of The Universe") in #ubuntu-motu. They do an amazing job polishing thousands of packages for release, so there is something of almost everything, and definitely something for everyone. Whatever your interest, the MOTU have a package that will appreciate your attention. It's a great, friendly place to start learning about Ubuntu.
-
Once you have established a track record, it's time to formalise your intent to become an Ubuntu Developer. Ask your mentor to send a recommendation that you be appointed as a developer to the Ubuntu Technical Board and Community Council. You should make sure your wiki page has as much information on your existing work and your plans, goals, or vision for Ubuntu as you can get on there. Then go and join the Ubuntu Developers team on Launchpad.net here. Your request to join will be registered in the system. Finally, you need to come to a Technical Board meeting. They are usually on a Tuesday, every alternate week. You can find details of the next meeting on the wiki, at TechnicalBoardAgenda. Bring along people who can speak about your work so far, and your teamwork too.
-
Your wiki page should include enough information about you that the Community Council and Technical Board members, who may not know anything else about you, have enough information to approve you. Your request will be reviewed and decided, usually at the Technical Board Meeting. Sometimes it takes a few attempts, but dedicated developers should have no trouble in attaining that.
-
-
If you cannot make a Technical Board meeting, for some reason, you can also become a member of the developer team if you can arrange a special meeting to consider your application. This can include Membership and Developer status approval in a single meeting. You need to have signed the Code of Conduct (through Launchpad, digitally, using your GPG key) and arrange the special meeting with two people who are either:
-
Administrators in the Ubuntu Development Team
-
Members of the Community Council
-
Members of the Technical Board
-



