Bitcoin Open Source Development Process
The Bitcoin client project has transitioned from what was essentially a one-person software endeavor, with Satoshi functioning as the primary developer and gatekeeper for all changes, to a more distributed, free software model of development. The Linux Kernel development process is being used as the model for how changes flow into the original Bitcoin application:
- Developers work in their own source code trees, sharing and testing patches with each other. Git, using github, is the preferred source control system for development.
- When a developer thinks a patch is ready, they submit a pull request for the bitcoin github repository and post a message on the Development and Technical Forum.
- Pull requests are discussed on the forums and if there is consensus they're safe, tested, useful, well written, match coding style, etc. then they're merged into the 'master' branch.
- The master github branch is regularly built and tested, and periodically pushed to the subversion repository to become a "release candidate" and then the official, stable, released bitcoin.
- After being accepted into the mainline master branch, bugfixes are merged or backported into the current stable branch, which periodically releases stable older versions.
Please read and follow coding.txt for a description of the bitcoin coding style.