[[ch06_bitcoindev]]
== Bitcoin Software Development

This chapter will be examining bitcoin from the perspective of an open-source social-coding 
software developer. The chapter will introduce the developer to some of the basic tools of the open-source software world and outline the workflow for contribution and review of code. Developers will see the entire process of community software development (social coding) within the bitcoin project, from a feature idea or bug fix all the way through to code release and code maintenance. This chapter equips a developer with the tools, vocabulary, insight into process and community culture and etiquette to quickly join and contribute to the bitcoin 
project. As a side-effect, this chapter also serves as a primer on social coding, distributed version-control systems, project management, continuous integration and quality control as practiced by modern open-source global projects

=== git and github
=== Contributing to bitcoin
=== Issue List
=== Forking the code
=== Branching and Merging
=== Making a code change
=== Manual testing
=== Automated Testing and Continuous Integration
=== Pull request and discussion
=== Merging and maintaining features
=== Bitcoin Improvement Proposals (BIP)
=== Protocol extension
=== Script extension (SPV)
=== Client extension
=== User Interface extension
=== API development 
==== JSON/RPC client API
==== Stratum API
==== Middleware 
