Committer

Last updated

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).

Contents

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

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

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

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]

Related Research Articles

<span class="mw-page-title-main">Apache HTTP Server</span> Open-source web server software

The Apache HTTP Server is a free and open-source cross-platform web server software, released under the terms of Apache License 2.0. It is developed and maintained by a community of developers under the auspices of the Apache Software Foundation.

<span class="mw-page-title-main">Free software</span> Software licensed to be freely used, modified and distributed

Free software, libre software, or libreware is computer software distributed under terms that allow users to run the software for any purpose as well as to study, change, and distribute it and any adapted versions. Free software is a matter of liberty, not price; all users are legally free to do what they want with their copies of a free software regardless of how much is paid to obtain the program. Computer programs are deemed "free" if they give end-users ultimate control over the software and, subsequently, over their devices.

In software engineering, version control is a class of systems responsible for managing changes to computer programs, documents, large web sites, or other collections of information. Version control is a component of software configuration management.

<span class="mw-page-title-main">Apache Subversion</span> Free and open-source software versioning and revision control system

Apache Subversion is a software versioning and revision control system distributed as open source under the Apache License. Software developers use Subversion to maintain current and historical versions of files such as source code, web pages, and documentation. Its goal is to be a mostly compatible successor to the widely used Concurrent Versions System (CVS).

In software engineering, a project fork happens when developers take a copy of source code from one software package and start independent development on it, creating a distinct and separate piece of software. The term often implies not merely a development branch, but also a split in the developer community; as such, it is a form of schism. Grounds for forking are varying user preferences and stagnated or discontinued development of the original software.

A patch is a set of changes to a computer program or its supporting data designed to update, fix, or improve it. This includes fixing security vulnerabilities and other bugs, with such patches usually being called bugfixes or bug fixes. Patches are often written to improve the functionality, usability, or performance of a program. The majority of patches are provided by software vendors for operating system and application updates.

<span class="mw-page-title-main">Git</span> Software for version control of files

Git is a distributed version control system that tracks changes in any set of computer files, usually used for coordinating work among programmers who are collaboratively developing source code during software development. Its goals include speed, data integrity, and support for distributed, non-linear workflows.

In software development, distributed version control is a form of version control in which the complete codebase, including its full history, is mirrored on every developer's computer. Compared to centralized version control, this enables automatic management branching and merging, speeds up most operations, improves the ability to work offline, and does not rely on a single location for backups. Git, the world's most popular version control system, is a distributed version control system.

<span class="mw-page-title-main">DSpace</span> Repository software package

DSpace is an open source repository software package typically used for creating open access repositories for scholarly and/or published digital content. While DSpace shares some feature overlap with content management systems and document management systems, the DSpace repository software serves a specific need as a digital archives system, focused on the long-term storage, access and preservation of digital content. The optional DSpace registry lists almost three thousand repositories all over the world.

The Distributed Concurrent Versions System (DCVS) was a distributed revision control system that enables software developers working on locally distributed sites to efficiently collaborate on a software project. DCVS was based on the well known version control system Concurrent Versions System. The code was freely distributable under the GNU and BSD style licenses. The project was terminated sometime before late 2023.

ITK is a cross-platform, open-source application development framework widely used for the development of image segmentation and image registration programs. Segmentation is the process of identifying and classifying data found in a digitally sampled representation. Typically the sampled representation is an image acquired from such medical instrumentation as CT or MRI scanners. Registration is the task of aligning or developing correspondences between data. For example, in the medical environment, a CT scan may be aligned with an MRI scan in order to combine the information contained in both.

In software development, version control is a class of systems responsible for managing changes to computer programs or other collections of information such that revisions have a logical and consistent organization. The following tables include general and technical information on notable version control and software configuration management (SCM) software. For SCM software not suitable for source code, see Comparison of open-source configuration management software.

<span class="mw-page-title-main">FreeBSD</span> Free and open-source Unix-like operating system

FreeBSD is a free and open-source Unix-like operating system descended from the Berkeley Software Distribution (BSD). The first version of FreeBSD was released in 1993 developed from 386BSD and the current version runs on x86, ARM, PowerPC and RISC-V processors. The project is supported and promoted by the FreeBSD Foundation.

OpenJDK is a free and open-source implementation of the Java Platform, Standard Edition. It is the result of an effort Sun Microsystems began in 2006. The implementation is licensed under the GPL-2.0-only with a linking exception. Were it not for the GPL linking exception, components that linked to the Java Class Library would be subject to the terms of the GPL license. OpenJDK is the official reference implementation of Java SE since version 7.

A software repository, or repo for short, is a storage location for software packages. Often a table of contents is also stored, along with metadata. A software repository is typically managed by source or version control, or repository managers. Package managers allow automatically installing and updating repositories, sometimes called "packages".

<span class="mw-page-title-main">OpenBSD</span> Operating system

OpenBSD is a security-focused, free and open-source, Unix-like operating system based on the Berkeley Software Distribution (BSD). Theo de Raadt created OpenBSD in 1995 by forking NetBSD 1.0. The OpenBSD project emphasizes portability, standardization, correctness, proactive security, and integrated cryptography.

Apache Allura is an open-source forge software for managing source code repositories, bug reports, discussions, wiki pages, blogs and more for any number of individual projects. Allura graduated from incubation with the Apache Software Foundation in March 2013.

Perforce Software, Inc. is an American developer of software used for developing and running applications, including version control software, web-based repository management, developer collaboration, application lifecycle management, web application servers, debugging tools and agile planning software.

<span class="mw-page-title-main">Void Linux</span> Independent distribution developed entirely by volunteers

Void Linux is an independent Linux distribution that uses the X Binary Package System (XBPS) package manager, which was designed and implemented from scratch, and the runit init system. Excluding binary kernel blobs, a base install is composed entirely of free software.

References

  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. 1 2 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