Integrator workflow

Last updated

Integrator workflow, also known as Integration Manager Workflow, [1] is a method to handle source code contributions in work environments using distributed version control.

In software development, distributed version control is a form of version control where the complete codebase - including its full history - is mirrored on every developer's computer. This allows branching and merging to be managed automatically, increases speeds of most operations, improves the ability to work offline, and does not rely on a single location for backups.

Scenario

Frequently, in a distributed team, each developer has write access to their own public repository and they have read access to everyone else’s. There is also a dedicated repository, the blessed repository, which contains the "reference" version of the project source code. To contribute to this, developers create their own public clone of the project and push their changes to those. Then, they request one or more maintainers of the blessed repository to pull in their changes.

Implementations

Related Research Articles

Code Co-op peer-to-peer revision control system

Code Co-op is the peer-to-peer revision control system made by Reliable 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, a form of schism.

OpenCms Content-Management-System (CMS)

OpenCms is an open-source content management system written in Java. It is distributed by Alkacon Software under the LGPL license. OpenCms requires a JSP Servlet container such as Apache Tomcat.

Git free and open source revision control software

Git is a distributed version-control system for tracking changes in source code during software development. It is designed for coordinating work among programmers, but it can be used to track changes in any set of files. Its goals include speed, data integrity, and support for distributed, non-linear workflows.

Mantis Bug Tracker free and open source, web-based bug tracking system

Mantis Bug Tracker is a free and open source, web-based bug tracking system. The most common use of MantisBT is to track software defects. However, MantisBT is often configured by users to serve as a more generic issue tracking system and project management tool.

In software development, a codebase refers to a whole collection of source code that is used to build a particular software system, application, or software component. Typically, a codebase includes only human-written source code files; thus, a codebase usually does not include source code files generated by tools or binary library files, as they can be built from the human-written source code. However, it generally does include configuration and property files, as they are the data necessary for the build.

A source-code repository is a file archive and web hosting facility where a large amount of source code, for software or for web pages, is kept, either publicly or privately. They are often used by open-source software projects and other multi-developer projects to handle various versions. They help developers submit patches of code in an organized fashion. Often these web sites support version control, bug tracking, release management, mailing lists, and wiki-based documentation...

Branching, in revision control and software configuration management, is the duplication of an object under revision control so that modifications can happen in parallel along both branches.

The following is a comparison of version-control software. 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.

Team Foundation Server is a Microsoft product that provides source code management, reporting, requirements management, project management, automated builds, lab management, testing and release management capabilities. It covers the entire application lifecycle, and enables DevOps capabilities. TFS can be used as a back-end to numerous integrated development environments (IDEs) but is tailored for Microsoft Visual Studio and Eclipse on all platforms.

GitHub is a web-based hosting service for version control using Git. It is mostly used for computer code. It offers all of the distributed version control and source code management (SCM) functionality of Git as well as adding its own features.

Bitbucket is a web-based version control repository hosting service owned by Atlassian, for source code and development projects that use either Mercurial or Git revision control systems. Bitbucket offers both commercial plans and free accounts. It offers free accounts with an unlimited number of private repositories as of September 2010. Bitbucket integrates with other Atlassian software like Jira, HipChat, Confluence and Bamboo.

Gerrit (software) free web-based team code collaboration tool

Gerrit is a free, web-based team code collaboration tool. Software developers in a team can review each other's modifications on their source code using a Web browser and approve or reject those changes. It integrates closely with Git, a distributed version control system.

PyCharm Integrated development environment for Python

PyCharm is an integrated development environment (IDE) used in computer programming, specifically for the Python language. It is developed by the Czech company JetBrains. It provides code analysis, a graphical debugger, an integrated unit tester, integration with version control systems (VCSes), and supports web development with Django.

RhodeCode

RhodeCode is an open source self-hosted platform for behind-the-firewall source code management. It provides centralized control over Git, Mercurial, and Subversion repositories within an organization, with common authentication and permission management. RhodeCode allows forking, pull requests, and code reviews via a web interface.

Perforce, sometimes referred to as Perforce Software, is a Minneapolis, Minnesota-based developer of software used for application development, including version control software, web-based repository management, developer collaboration, application lifecycle management and Agile planning software. The software is sold under the Helix and Hansoft brand names.

Fork and pull model refers to a software development model mostly used on GitHub, where multiple developers working on an open shared project make their own contributions by sharing a main repository and pushing changes after granted pull request by integrator users. Followed by the appearance of distributed version control systems (DVCS), Git naturally enables the usage of a pull-based development model, in which developers can copy the project onto their own repository, and push their changes to the original repository, where the integrators will determine the validity of the pull request. Ever since its appearance, pull-based development received large popularity within the open software development community. On GitHub, about more than 400000 pull-requests emerged per month on average in 2015. It is also model shared on most collaborative coding platforms, like BitBucket, Gitorious etc. More and more functionalities are added to facilitate pull-based model.

The Collective Knowledge project is an open-source framework and repository to enable sustainable, collaborative and reproducible research and development. CK is a small, portable, customizable and decentralized infrastructure which allows researchers:

In revision control systems, a monorepo is a software development strategy where code for many projects are stored in the same repository. As of 2017 this software engineering practice was over a decade old, but had only recently been named.

References