]> arthur.barton.de Git - bup.git/blobdiff - HACKING
Update base_version to 0.34~ for 0.34 development
[bup.git] / HACKING
diff --git a/HACKING b/HACKING
index 2cc93a4f02c1fc1ff95c3b0d7a5a2e3dd5b655ed..0c8c719cf685a2bb34e64419cdc821de6050f1f0 100644 (file)
--- a/HACKING
+++ b/HACKING
@@ -19,24 +19,35 @@ via email.
 Current Trajectory
 ==================
 
-Now that we've finished the 0.29.1 release, we're working on 0.30, and
-although we're not certain which new features will be included, here
-are likely candidates:
+Now that we've finished the 0.33 release, we're working on 0.34, and
+although we're not certain which new features will be included, we're
+considering:
 
-  - Support for transferring saves between repositories and rewriting
-    branches.
+  - Migrating hashsplitting to C.
 
-and these are also under consideration:
+  - Automatically splitting trees to avoid having to save large tree
+    objects for large directories even if only a few files have
+    changed or been added (e.g. maildirs).
+
+  - Moving all of the compoents of the index to sqlite.  Right now the
+    main index is an mmapped file, and the hard link and metadata
+    databases are pickled.  As a result the index isn't transactional
+    and suffers from bugs caused by "skew" across the components.
 
   - Better VFS performance for large repositories (i.e. fuse, ls,
     web...).
 
+  - Better VFS caching.
+
+  - Index improvements.
+
   - Incremental indexing via inotify.
 
   - Smarter (and quieter) handling of cross-filesystem metadata.
 
-  - Support for more general purpose push/pull of branches, saves, and
-    tags between repositories.  (See the bup-get patch series.)
+  - Encryption.
+
+  - Support for alternate remote storage APIs.
 
 If you have the time and inclination, please help review patches
 posted to the list, or post your own.  (See "ways to help" below.)
@@ -45,7 +56,7 @@ posted to the list, or post your own.  (See "ways to help" below.)
 More specific ways to help
 ==========================
 
-Testing -- yes please.  
+Testing -- yes please.
 
 With respect to patches, bup development is handled via the mailing
 list, and all patches should be sent to the list for review (see
@@ -60,20 +71,34 @@ We also love a good "Tested-by:" -- the more the merrier.
 Testing
 =======
 
-You can run the test suite much more quickly via "make -j test" (as
-compared to "make test"), at the expense of slightly more confusing
-output (interleaved parallel test output), and inaccurate intermediate
-success/failure counts, but the final counts displayed should be
-correct.
+Individual tests can be run via
+
+    ./pytest TEST
 
-Individual non-Python tests can be run via "./wvtest run t/TEST" and
-if you'd like to see all of the test output, you can omit the wvtest
-run wrapper: "t/TEST"
+For example:
 
-Individual Python tests can be run via "./wvtest run ./wvtest.py
-lib/bup/t/TEST", and as above, you can see all the output by omitting
-the wvtest run wrapper like this: "./wvtest.py lib/bup/t/TEST"
+    ./pytest test/int/test_git.py
+    ./pytest test/ext/test-ftp
 
+If you have the xdist module installed, then you can specify its `-n`
+option to run the tests in parallel (e.g. `./pytest -nauto ...`), or
+you can specify `-j` to make, which will be translated to xdist with
+`-j` becoming `-nauto` and `-jN` becoming `-nN`.
+
+Internal tests that test bup's code directly are located in test/int,
+and external tests that test bup from the outside, typically by
+running the executable, are located in test/ext.
+
+Currently, all pytests must be located in either test/ext or test/int.
+Internal test filenames must match test_*.py, and external tests must
+be located in text/ext and their filenames must match test-* (see
+test/ext/conftest.py for the handling of the latter).  Any paths
+matching those criteria will be automatically collected by pytest.
+
+Some aspects of the environment are automatically restored after each
+test via fixtures in conftest.py, including the state of the
+environment variables and the working directory; the latter is reset
+to the top of the source tree.
 
 Submitting patches
 ==================
@@ -112,7 +137,7 @@ Of course, unless your machine is set up to handle outgoing mail
 locally, you may need to configure git to be able to send mail.  See
 git-send-email(1) for further details.
 
-Oh, and we do have a ./CODING-STYLE, hobgoblins and all, though don't
+Oh, and we do have a ./CODINGSTYLE, hobgoblins and all, though don't
 let that scare you off.  We're not all that fierce.
 
 
@@ -126,3 +151,9 @@ ideas here aren't altogether terrible:
 
 In particular, we've been paying at least some attention to the bits
 regarding Acked-by:, Reported-by:, Tested-by: and Reviewed-by:.
+
+<!--
+Local Variables:
+mode: markdown
+End:
+-->