X-Git-Url: https://arthur.barton.de/gitweb/?a=blobdiff_plain;f=HACKING;h=372bc732a5188e164e0b33f2d7a8a390e7d3d6d7;hb=5f3b0e5826049499148086b91d8139b8679e1a01;hp=b2622dbc5a250cbaf618a48f949a651d52c4a03c;hpb=323867ce9fe07dd9bc2b15733170d88e153649a2;p=bup.git diff --git a/HACKING b/HACKING index b2622db..372bc73 100644 --- a/HACKING +++ b/HACKING @@ -19,24 +19,26 @@ via email. Current Trajectory ================== -Now that we've finished the 0.29.3 release, we're working on 0.30, and -although we're not certain which new features will be included, here -are likely candidates: - - - Support for transferring saves between repositories and rewriting - branches. - -and these are also under consideration: +Now that we've finished the 0.32 release, we're working on 0.33, and +although we're not certain which new features will be included, we're +considering: - 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. + + - Discontinuing Python 2 work, excepting perhaps some bugfixes. 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 +47,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 +62,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 -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" + ./pytest TEST -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" +For example: + ./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 ================== @@ -126,3 +142,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:. + +