summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorRobert Collins <robertc@robertcollins.net>2010-01-09 17:16:09 +1100
committerRobert Collins <robertc@robertcollins.net>2010-01-09 17:16:09 +1100
commit8a6b4858e037f2899956b2ec4fd3f64fc18c8689 (patch)
treef2a53c52dc4bfef9768a5509f5dfde3b7eb546c0 /doc
parent0e75992a7a2f2d850066a21e3d0cf958b8174e32 (diff)
downloadtestrepository-8a6b4858e037f2899956b2ec4fd3f64fc18c8689.tar.gz
Design docs.
Diffstat (limited to 'doc')
-rw-r--r--doc/DESIGN.txt29
-rw-r--r--doc/DEVELOPERS.txt3
2 files changed, 32 insertions, 0 deletions
diff --git a/doc/DESIGN.txt b/doc/DESIGN.txt
index 8b6e600..840787e 100644
--- a/doc/DESIGN.txt
+++ b/doc/DESIGN.txt
@@ -4,6 +4,35 @@ Design / Architecture of Test Repository
Values
~~~~~~
+Code reuse.
+Focus on the project.
+Do one thing well.
+
Goals
~~~~~
+Achieve a Clean UI, responsive UI, small-tools approach. Simulataneously have
+a small clean code base which is easily approachable.
+
+Data model/storage
+~~~~~~~~~~~~~~~~~~
+
+testrepository stores subunit streams as subunit streams in .testrespository
+with simple additional metadata - a format marker to allow this to be changed
+in the future, and a next-stream counter counting the id to give the next
+stream.
+
+Code layout
+~~~~~~~~~~~
+
+One conceptual thing per module, packages for anything where multiple types
+are expected (e.g. testrepository.commands, testrespository.ui).
+
+Generic driver code should not trigger lots of imports: code dependencies
+should be loaded when needed. For example, argument validation uses argument
+types that each command can import, so the core code doesn't need to know about
+all types.
+
+The tests for the code in testrepository.foo.bar is in
+testrepository.tests.foo.test_bar. Interface tests for testrepository.foo is
+in testrepository.tests.test_foo.
diff --git a/doc/DEVELOPERS.txt b/doc/DEVELOPERS.txt
index fc090b6..5995cba 100644
--- a/doc/DEVELOPERS.txt
+++ b/doc/DEVELOPERS.txt
@@ -30,3 +30,6 @@ of Test Repository, and there is no automated test-before-merge process at the
moment. The quid pro quo for committers is that they should check that the
automated job found their change acceptable after merging it, and either roll
it back or fix it immediately. A broken trunk is not acceptable!
+
+See DESIGN.txt for information about code layout which will help you find
+where to add tests (and indeed where to change things).