Committer

A committer is an individual who is permitted to modify the source code of a software project,[1][2] that will be used in the project's official releases.[3] To contribute source code to most large software projects, one must make modifications and then "commit" those changes to a central version control system, such as Git (or CVS).

In open-source software development, the committer role may be used to distinguish commit access, a specific type of responsibility, from other forms of contribution,[4] such as triaging issues or organizing events. Typically, an author submits a software patch containing changes and a committer integrates the patch into the main code base of the project.[2][5]

Commit bit

[edit]

To have a "commit bit" on one's user account means that the user is permitted to contribute source code changes. This dates to the use of a literal binary digit to represent yes-or-no privileges in access control systems of legacy version control[6] and software systems, such as BSD.[7] The commit bit represents the permission to contribute to the shared code of a software project. It can be resigned or may be removed due to inactivity in the project, as dormant committer accounts can represent security risks.[8]

Common responsibilities

[edit]

Project committers are usually the lead developers of a project and are the ones responsible for the majority of changes.[citation needed] They are seen as trusted, responsible and reliable members of the project's community.[9] Relatedly, committers are usually responsible for the review of patches submitted by members of the community for inclusion into the software. After a successful review, usually consisting of conformance to coding standards and ensuring it does not introduce any new bugs, the committer will commit that specific patch on behalf of the patch submitter.[citation needed]

Becoming a committer

[edit]

The process to becoming a committer can vary across projects, but in general, there are three common ways to do it.

  1. Be one of the original developers
  2. Be appointed by one of the original developers
  3. Be successfully voted in by the community of committers[10]

Becoming a committer in an existing project often involves becoming active on both the mailing lists as well as with supplying patches. After enough involvement, the other committers can then vote you in as a new committer. This normally happens through an e-mail vote. The XML-SOAP project hosted at Apache.org is an example of this process.[11]

References

[edit]
  1. ^ "Community-led development "The Apache Way"". www.apache.org. The Apache Software Foundation. Archived from the original on 2004-04-23. Retrieved 2020-04-06. A committer is a developer that was given write access to the code repository […]
  2. ^ a b Riehle, Dirk; Riemer, Philipp; Kolassa, Carsten; Schmidt, Michael (2014). "Paid vs. Volunteer Work in Open Source". 2014 47th Hawaii International Conference on System Sciences. IEEE. pp. 3286–3295. doi:10.1109/HICSS.2014.407. ISBN 978-1-4799-2504-9. S2CID 19009806. A committer is a software developer who has the necessary rights to commit to a code repository. […] Typically, in a two-step process, an author submits a patch and a committer integrates the patch into the main code base.
  3. ^ Fogel, Karl (2017). Producing Open Source Software: How to Run a Successful Free Software Project (PDF) (2nd ed.). O'Reilly Media. p. 149. A committer is someone who has commit access: the right to make changes to the copy of the code that will be used for the project's next official release.This precise definition is important because, after all, anyone can set up a repository containing a copy of the project's code and allow themselves to commit to that repository;
  4. ^ "Leadership and Governance". www.opensource.guide. Open Source Guides. Archived from the original on 2017-02-14. Retrieved 2020-04-06. The term "committer" might be used to distinguish commit access, which is a specific type of responsibility, from other forms of contribution.
  5. ^ "OpenJDK Projects". openjdk.java.net. Oracle Corporation. Archived from the original on 2007-05-14. Retrieved 2020-04-06. An Author who is not a Committer still requires the assistance of a Committer to push changesets […]
  6. ^ Brasseur, VM (Vicky) (2018). Forge Your Future with Open Source. Pragmatic Bookshelf. ISBN 978-1-68050-639-6. It's simply a phrase that originates in the access control systems of legacy version control systems, where a commit access was controlled by the value of a single binary digit (a bit).
  7. ^ "The Life of a Pull Request & Where Commit Bits Come From". www.voidlinux.org. 2019-02-03. Archived from the original on 2019-04-01. Retrieved 2020-04-02. […] people who can merge changes are referred to generally as people with a commit bit. For those who are curious, this term comes from privileged users on a BSD system often having a "wheel bit"
  8. ^ "Commit Bit Expiration Policy". www.freebsd.ch. The FreeBSD Project. 2013-11-26. Archived from the original on 2020-04-06. Retrieved 2020-04-06. FreeBSD committers may […] decide […] to resign their commit bit. […] a committer may become inactive over a long period of time without explicitly resigning their bit. Over the long term, these accounts can represent a security risk […]
  9. ^ Peters, Stormy; Ruff, Nithya. "Participating in Open Source Communities". The Linux Foundation. Archived from the original on 2019-03-23. Retrieved 2020-04-06. Committers: […] people who have contributed to the project and are considered reliable and responsible enough to be allowed to commit directly to all or some parts of the project […]
  10. ^ "Committer Due Diligence Guidelines". www.eclipse.org. Eclipse Foundation. 2017-12-19. Archived from the original on 2006-02-09. Retrieved 2020-04-06. A Contributor may become a Committer once having been nominated and voted in by other Committers.
  11. ^ http://mail-archives.apache.org/mod_mbox/xml-soap-dev/200006.mbox/%3c852568F9.0079E946.00@d54mta04.raleigh.ibm.com%3e