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]
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]
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 ]
The process to becoming a committer can vary across projects, but in general, there are three common ways to do it.
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]
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.
Free software, libre software, libreware sometimes known as freedom-respecting software 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.
Version control is the software engineering practice of controlling, organizing, and tracking different versions in history of computer files; primarily source code text files, but generally any type of file.
Revision Control System (RCS) is an early implementation of a version control system (VCS). It is a set of UNIX commands that allow multiple users to develop and maintain program code or documents. With RCS, users can make their own revisions of a document, commit changes, and merge them. RCS was originally developed for programs but is also useful for text documents or configuration files that are frequently revised.
Apache Subversion is a version 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).
BitKeeper is a discontinued software tool for distributed revision control of computer source code. Originally developed as proprietary software by BitMover Inc., a privately held company based in Los Gatos, California, it was released as open-source software under the Apache-2.0 license on 9 May 2016. BitKeeper is no longer being developed.
Open-source software (OSS) is computer software that is released under a license in which the copyright holder grants users the rights to use, study, change, and distribute the software and its source code to anyone and for any purpose. Open-source software may be developed in a collaborative, public manner. Open-source software is a prominent example of open collaboration, meaning any capable user is able to participate online in development, making the number of possible contributors indefinite. The ability to examine the code facilitates public trust in the software.
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.
The computer tool patch is a Unix program that updates text files according to instructions contained in a separate file, called a patch file. The patch file is a text file that consists of a list of differences and is produced by running the related diff program with the original and updated file as arguments. Updating files with patch is often referred to as applying the patch or simply patching the files.
Git is a distributed version control system that tracks versions of files. It is often used to control source code by programmers who are developing software collaboratively.
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.
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.
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.
The following tables describe attributes of notable version control and software configuration management (SCM) software systems that can be used to compare and contrast the various systems.
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 IA-32, x86-64, 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 GNU General Public License 2 with a linking exception, preventing components that linked to the Java Class Library becoming subject to the terms of the GPL license. OpenJDK is the official reference implementation of Java SE since version 7, and is the most popular distribution of the JDK.
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".
NetBSD is a free and open-source Unix-like operating system based on the Berkeley Software Distribution (BSD). It was the first open-source BSD descendant officially released after 386BSD was forked. It continues to be actively developed and is available for many platforms, including servers, desktops, handheld devices, and embedded systems.
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.
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.
A committer is a developer that was given write access to the code repository […]
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.
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;
The term "committer" might be used to distinguish commit access, which is a specific type of responsibility, from other forms of contribution.
An Author who is not a Committer still requires the assistance of a Committer to push changesets […]
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).
[…] 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"
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 […]
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 […]
A Contributor may become a Committer once having been nominated and voted in by other Committers.