Development process: Difference between revisions

From Bitcoin Wiki
Jump to navigation Jump to search
Sgornick (talk | contribs)
m →‎See Also: Fix link name.
Furunodo (talk | contribs)
No edit summary
 
(15 intermediate revisions by 9 users not shown)
Line 1: Line 1:
== Bitcoin Open Source Development Process ==
== Bitcoin Core Open Source Development Process ==


The [[Original_Bitcoin_client|Bitcoin client]] project is transitioning 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 official Bitcoin application:
The [[Original_Bitcoin_client|Bitcoin Core]] project operates an open contributor model where anyone is welcome to [https://github.com/bitcoin/bitcoin/blob/master/CONTRIBUTING.md contribute] towards development in the form of peer review, testing and patches.
# 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 [https://github.com/bitcoin/bitcoin bitcoin github repository] and post a message on the [http://www.bitcoin.org/smf/index.php?board=6.0 Development and Technical Forum].
Bitcoin Core 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 with hundreds of [http://github.com/bitcoin/bitcoin/graphs/contributors contributors].  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 [https://github.com/bitcoin/bitcoin bitcoin github repository] and post a message on the [https://bitcointalk.org/index.php?board=6.0 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.
# 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 [http://sourceforge.net/projects/bitcoin/develop subversion repository] to become a "release candidate" and then the official, stable, released bitcoin.
# The master github branch is regularly built and tested, and periodically given a "release candidate" tag followed by a version tag which is then an official, stable Bitcoin Core release.
# 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 the [https://github.com/bitcoin/bitcoin/blob/master/doc/developer-notes.md Bitcoin Core Coding Standards document].
 
== How to get started ==


Please read and follow [https://github.com/bitcoin/bitcoin/blob/master/coding.txt coding.txt] for a description of the bitcoin coding style.
One of the best ways to dive into the code is to help review [[pull request]]s.
[https://jonatack.github.io/articles/how-to-review-pull-requests-in-bitcoin-core How to Review Pull Requests in Bitcoin Core] is a great place to start reading about this. And the [https://bitcoincore.reviews/ Bitcoin Core PR Review Club] is a weekly event on IRC which helps newbies with this process.


==See Also==
==See Also==


* [[Release process]]
* [[Original Bitcoin client]]
* [[Original Bitcoin client]]
* [[:Category:Open_Source|Open source]]
* [[:Category:Open_Source|Open source]]
[[es:Proceso de desarrollo]]


[[Category:Developer]]
[[Category:Developer]]

Latest revision as of 16:31, 17 June 2020

Bitcoin Core Open Source Development Process

The Bitcoin Core project operates an open contributor model where anyone is welcome to contribute towards development in the form of peer review, testing and patches.

Bitcoin Core 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 with hundreds of contributors. The Linux Kernel development process is being used as the model for how changes flow into the original Bitcoin application:

  1. 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.
  2. 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.
  3. 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.
  4. The master github branch is regularly built and tested, and periodically given a "release candidate" tag followed by a version tag which is then an official, stable Bitcoin Core release.
  5. 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 the Bitcoin Core Coding Standards document.

How to get started

One of the best ways to dive into the code is to help review pull requests. How to Review Pull Requests in Bitcoin Core is a great place to start reading about this. And the Bitcoin Core PR Review Club is a weekly event on IRC which helps newbies with this process.

See Also