X-Git-Url: https://arthur.barton.de/gitweb/?a=blobdiff_plain;f=HACKING;h=9d2f4ff506e5716993edd41b248935bbc9147283;hb=adf51f404bb1b243a386f2e71884eab18cf8e9bf;hp=d2edcc16ab05aa895ac14290d50db50b8356f07f;hpb=c16fd3fc28fac913bb8c42560de58bf61ed04922;p=bup.git diff --git a/HACKING b/HACKING index d2edcc1..9d2f4ff 100644 --- a/HACKING +++ b/HACKING @@ -19,22 +19,25 @@ via email. Current Trajectory ================== -Now that we've finished the 0.26 release, we're working on 0.27, and -although we're not certain which new features will be included, here -are some possible candidates: - - - Support for transferring saves between repositories and rewriting - branches. +Now that we've finished the 0.31 release, we're working on 0.32, 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...). - - Incremental indexing via inotify. + - Better VFS caching. - - Support for rm/gc. + - Index improvements. + + - Incremental indexing via inotify. - Smarter (and quieter) handling of cross-filesystem metadata. + - 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.) @@ -54,13 +57,45 @@ incorporating it into master, so reviews are an important way to help. We also love a good "Tested-by:" -- the more the merrier. +Testing +======= + +Individual tests can be run via + + ./pytest 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 ================== As mentioned, all patches should be posted to the mailing list for review, and must be "signed off" by the author before official inclusion (see ./SIGNED-OFF-BY). You can create a "signed off" set of -patches in ./pending, ready for submission to the list, like this: +patches in ./patches, ready for submission to the list, like this: git format-patch -s -o patches origin/master @@ -91,7 +126,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.