From b67b9e7077e982ab1d24a5f807a38f0ad88bf961 Mon Sep 17 00:00:00 2001 From: Gavin Andresen Date: Wed, 9 Jan 2013 15:55:47 -0500 Subject: [PATCH] Update development process README to reflect current reality --- README.md | 52 ++++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 38 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index 0c475ea6c4..1ecb8c7efe 100644 --- a/README.md +++ b/README.md @@ -22,21 +22,45 @@ or are controversial. The master branch is regularly built and tested, but is not guaranteed to be completely stable. Tags are regularly created to indicate new -official, stable release versions of Bitcoin. If you would like to -help test the Bitcoin core, please contact QA@BitcoinTesting.org. +official, stable release versions of Bitcoin. -Feature branches are created when there are major new features being -worked on by several people. +Testing +======= -From time to time a pull request will become outdated. If this occurs, and -the pull is no longer automatically mergeable; a comment on the pull will -be used to issue a warning of closure. The pull will be closed 15 days -after the warning if action is not taken by the author. Pull requests closed -in this manner will have their corresponding issue labeled 'stagnant'. +Testing and code review is the bottleneck for development; we get more +pull requests than we can review and test. Please be patient and help +out, and remember this is a security-critical project where any +mistake might cost people lots of money. -Issues with no commits will be given a similar warning, and closed after -15 days from their last activity. Issues closed in this manner will be -labeled 'stale'. +Automated Testing +----------------- -Requests to reopen closed pull requests and/or issues can be submitted to -QA@BitcoinTesting.org. \ No newline at end of file +Developers are strongly encouraged to write unit tests for new code, +and to submit new unit tests for old code. + +Unit tests for the core code are in src/test/ +To compile and run them: + cd src; make -f makefile.linux test + +Unit tests for the GUI code are in src/qt/test/ +To compile and run them: + qmake BITCOIN_QT_TEST=1 -o Makefile.test bitcoin-qt.pro + make -f Makefile.test + ./Bitcoin-Qt + +Every pull request is built for both Windows and +Linux on a dedicated server, and unit and sanity +tests are automatically run. The binaries +produced may be used for manual QA testing +(a link to them will appear in a comment on the pull request +from 'BitcoinPullTester'). +See https://github.com/TheBlueMatt/test-scripts for the +build/test scripts. + +Manual Quality Assurance (QA) Testing +------------------------------------- + +Large changes should have a test plan, and should be tested +by somebody other than the developer who wrote the code. + +See https://github.com/bitcoin/QA/ for how to create a test plan.