CHANGES
=======

2.3.0
-----

* Update package metadata in setup.cfg
* Inline CONTRIBUTING.rst in README.rst and add to docs
* Add links to GitHub repo and project-urls to metadata
* Move from get\_description() to class docstrings part-2
* Switch from get\_descripition() to class docstrings
* Fix whitespace lint
* Gracefully handle the case when sys.executable is None
* Add error message for invalid concurrency value
* Use default user config in unit tests
* Turn on debug loggin by default
* Run commands through the same python used for stestr
* Improved test coverage for stestr run --subunit 0 exit status
* Update docs for exit codes with --subunit flags
* Put in quotes the top\_dir and test\_path
* Clarify group\_regex explanation
* Update MANUAL.rst for parallel\_class option
* Update doc/source/MANUAL.rst
* Update MANUAL.rst for parallel\_class option
* Introduce parallel-class option
* Tweak the README for readability

2.2.0
-----

* Change title of project in readme
* Add a better description to README Overview section
* Fix discovery import error formatting on py3
* Cleanup unused parameters in \_run\_tests
* Enable doc8
* Add all stream to repo even if some tests fail
* Extract loading case code to \_load\_case() function
* Make test running serially when just loading
* Fix time measurement for load command too
* Use reported times instead of wall time in subunit-trace
* Add support for test class and method by path on no-discover

2.1.1
-----

* Add support for python 3.7
* Fix handling of unexpected success results
* Allow stestr to be called as a module (#185)
* Make warning and error messages use stderr
* Add error handling for invalid input regexes
* Cleanup the manpage section on dealing with failed tests
* Cleanup argument help text on load command
* Fix description for the stestr run command

2.1.0
-----

* Uncap pbr
* Revert "Cap pip version in windows ci"
* Revert "Uncap pbr"
* Uncap pbr
* Clarify docs on group\_regex
* Remove Python 2.6 code
* Switch python doc reference from 2 to 3
* Cleanup manual section on configuration
* Fix abbreviate option in run subcommand
* Ignore errors on cleanup in test\_return\_codes
* Cap pip version in windows ci
* Add docs and helper script for building man page
* Add documentation for --suppress-attachments option
* Add option to suppress attachment printing on successful tests
* Add unit tests for return code from functions
* Remove windows skips for old subunit versions
* Cap PBR<4.0.0
* Fixed manual page description
* Fix manpage generation
* Add issue description in template
* Add an issue template to project
* Add usage to manual docs page
* Fix the manual docs link in README
* Add alt texts for badges in README
* Use flat-square design badges on README
* Fix typos about whitelist/blacklist option in manual
* Fix a small mistake in manual about test selection
* Update the package summary in setup.cfg metadata

2.0.0
-----

* Add functional tests for user config file
* Fix no attribute 'repo\_type' error when running w/ --slowest option
* Add support for a user config file
* Fix warning message about missing worker tags in subunit-trace
* Add badge for Appveyor status
* Remove unnecessary shebang and execution bit from subunit\_trace
* Fix typos in docs
* Fix pep8 violations
* Add --slowest option to test runs
* Handle zero and negative times in stestr slowest
* list: Deal with [] instead of 'None' for filters
* Fix docs nits
* Update doc for using cliff for CLI layer
* Use cliff for CLI layer
* Implement quiet option for run and load commands
* Deprecate the partial flag
* Allow both group\_regex and group-regex as an optional argument
* Remove pyc files before running stestr in tox
* Update travis job config

1.1.0
-----

* Pass output to output.make\_result() in stestr load
* Remove 32bit windows testing CI config
* Add functional test for analyze-isolation flag
* Fetch the data from last run earlier
* Fix the stestr run --analyze-isolation flag
* Remove contributor docs for using reno
* Fix stestr load from stdin
* Add test\_return\_codes check for valid subunit output
* Respect all selection mechanisms for discovery check
* Fix .testr.conf parsing: test path follows discover
* Fix if logic on output types in stestr load
* Add a --abbreviate flag to stestr run and load
* Add missing run command to stestr manual
* Print just error message when no stestr repo
* Fix whitelist arg usage in stestr run
* Drop reno
* Add missing home-page
* Fix: pass the top\_dir parameter to the 'list' command
* Fix: pass the test\_path parameter to the 'list' command
* Update MANUAL.rst
* Update the trove classifiers
* Use context managers for file open()
* Ensure we always close files in file repository
* Create a Code of Conduct for the project
* Fix coveralls collection

1.0.0
-----

* Handle stestr init with existing path
* Fix commands \_\_all\_\_ and its docs
* Add docs to the list of tox envs for travis
* Fix doc generation - add subunit trace to tree
* Fix return code on no matching tests
* Add stdout argument to command functions
* Allow to import commands APIs from a single module
* Fix docs warnings and treat warning as error
* Add docs for output filters
* Add subunit-trace support to stestr last
* Add support for setting colorized output
* Switch the default output filter to subunit-trace
* Add API docs for the commands
* Copy subunit-trace and colorizer from os-testr
* Fix stestr run --until-failure with subunit output
* Fix stestr --test-path argument for stestr run and list
* Remove the stats command
* Rename the test\_listing\_fixture to test\_processor
* Add a real python api for running commands
* Remove unused class in commands/load.py
* Write subunit2sql db manage output to local stdout
* Add a concurrency option to the manual scheduler
* Get coverage only one time in travis-ci

0.5.0
-----

* Add combine option to stestr run
* Close sqlite tempfile before tests run
* Add file repository skips for windows
* Add appveyor ci config
* Update requirements
* Add pypi version badge
* Remove unused output method
* Cleanup output from test listing fixture
* Cleanup error handling for missing test-path or config file
* Remove unused code for printing skips
* [Trivial] Cleanup typos and word-wrappings
* Improve coverage collection
* Add build status and coverage badges
* Add tox -e cover to .travis.yml to enable coveralls
* Enable coverage with tox

0.4.0
-----

* Add support to stestr load to append to an existing entry
* Make version string return full string with vcs
* Adds Windows support
* Use dbm.dumb rather than gdbm
* Add test\_sql.py
* Fix wrong count condition in SQL
* Add unit test for the fix of bug #35
* Fix error stestr run with bad regex
* Return help message is no command is specified
* Print nice error message when test\_path isn't set
* Move sql requirements to setuptools extras
* Fix scheduler.partition\_tests randomize option
* Enable until-failure option with no-discover option
* Add CLI option to stestr run to randomize test order
* Workaround potential backwards incompat with gnudbm usage
* Use the same dbm version across python versions

0.3.0
-----

* Remove extra dash from force-init option of load
* Add line feed to stats command output
* Add --no-discover option to stestr run
* Fix typos in docs
* Add section to README about migrating from testr

0.2.0
-----

* Add CLI options for config file variables
* Add a postive unit test for selection.filter\_tests()
* Port test selection logic from ostestr
* Update the help strings for the CLI

0.1.0
-----

* Preserve full test\_id in \_get\_test\_times for file repository
* Enable real time DB writes for sql repository
* Strip attrs from test ids in \_get\_test\_times lookup
* Add python 3.6 support to stestr
* Strip attrs from test\_ids before storing time data
* Add option to manual configure the worker balance
* Ensure that we run subprocess with the same version of python
* Add repository presence check to sql RepositoryFactory
* Fix default exception message for RepositoryNotFound
* Fix \_Subunit2SqlRun.get\_test() method
* Add subunit2sql to requirements.txt~
* Cleanup test\_listing\_fixture and add docs
* Remove LINEFEED variable
* Add serial option to CLI
* Fix temp\_dir path in TestUtil
* Add .stestr.sqlite to .gitignore
* Add unit tests for getting default repo url
* Fix typo in sql repository type for failing test list
* Change sql repository type default location to be .stestr.sqlite
* Add docs for the different repository types
* Add reno release note for repository type changes
* Workaround stestr last issue with sql repository type
* Add a warning when using the sql repository type
* Add api and cli to select repository type and url
* Add subunit2sql repository type
* Remove /.testrepository from .gitignore
* Add CONTRIBUTING.rst file
* Add install details to README
* Add docs with details about release notes
* Cleanup the overview a bit more
* Make README overview less subject

0.0.1
-----

* Use version module to get package version
* Cleanup the scheduler tests
* Make unit test attachment fixtures always enabled
* Add unit tests for scheduler
* Clean up docstring in the abstract repository module
* Cleanup the stestr manual
* Add api docs for the output module
* Add more details to the run test operations doc
* Add a note that internal modules aren't stable interfaces
* Add API docs for the scheduler module
* Add api doc page for the selection module
* Split dev guidelines from internal arch doc files
* Add api docs for the config\_file module
* Start adding developer documentation
* Add more details to the README
* Add missing apache header
* Start using reno to manage release notes
* Add tool to convert testr.conf to stestr.conf
* Add unit tests for file repository
* Cleanup the config file model
* Add missing blank newline to end of LICENSE
* Add a note about get\_id arg in CLITestResult class
* Remove extra six import
* Fix several issues with stestr failing
* Add tests to verify the return code of run command
* Remove external path from iter\_streams
* Add missing periods from license headers
* Separate out the abstract repository class
* Relicense project under just Apache 2.0
* Fix stestr run on py2
* Fix --subunit flag on run command
* Fix serialized subunit stream output from stestr run
* Fix typo to stestr
* Fix pep8 issue in utils.py
* Fix concurrency option type to int
* Add Python 3.5 to setup.cfg
* Make run command actually run tests
* Remove fixtures directory
* Add py35 to tox.ini envlist
* Fix testr list command again
* Remove unecessary testcommand module
* Add pro forma test
* Nuke the testrepository unit tests
* Fix stestr last command
* Fix issues with parallel runner handling
* Cleanup more debug prints
* Cleanup the manual section in docs a bit
* Fix stestr load from stdin
* Switch to stestr for the executable name
* Remove a stray debug print
* Fix testr list with a regex
* Fix testr list with a regex
* Fix the testr list command
* Move and fix test\_listing fixture
* Remove debug prints from iter\_streams functions
* Add a CLITestResults class and use it for load
* Add ouptut\_summary method
* Cleanup load() a bit
* Cleanup .testr.conf in repo
* Just create a repository with testr run if it doens't exist
* Add testr init call to travis yaml
* Add doc builds to gitignore
* Add pbr generated files to gitignore
* Start to cleanup docs
* Cleanup some leftove files from testrepository
* Remove TestCommand class
* Add .stestr directory to .gitignore
* Turn off travis email notifications for now
* Update test-requirements to include missing packages
* Fix spacing in travis.yml
* Add travis.yml for initial project start
* Remove bzrignore file
* Add missed files
* Fix pep8 issues (except for tests)
* Reowrk things as stestr
* Pivot repo to stestr
* Release 0.0.20
* Tests will be reliably tagged with worker-%d

0.0.19
------

* Release 0.0.19
* Fix 0 timestamps for enumerated but not run tests
* Update docs for the move to github
* Make subunit 0.0.18 be a hard dependency
* Move to subunit v2 for output of stored streams
* Make sure output\_stream can handle non-utf8 bytes
* Ignore .swp files
* Added \*.pyc to gitignore
* Fix python3 filtering support
* Ignore files in git
* Improve error rendering of listing issues
* \* When list-tests encounters an error, a much clearer response will   now be shown. (Robert Collins, #1271133)
* \* \`\`run\`\` was outputting bad MIME types - test/plain, not text/plain.   (Robert Collins)

0.0.18
------

* Release 0.0.18
* \* \`\`run\`\` now accepts \`\`--isolated\`\` as a parameter, which will cause each   selected test to be run independently. This can be useful to both workaround   isolation bugs and detect tests that can not be run independently.   (Robert Collins)
* \* \`\`capture\_ids\`\` in test\_run now returns a list of captures, permitting tests   that need to test multiple runs to do so. (Robert Collins)

0.0.17
------

* 0.0.17 ++++++

0.0.16
------

* Release 0.0.16
* \* When test listing fails, testr will now report an error rather than   incorrectly trying to run zero tests. A test listing failure is detected by   the returncode of the test listing process. (Robert Collins, #1185231)
* \* A new testr.conf option \`\`group\_regex\`\` can be used for grouping   tests so that they get run in the same backend runner. (Matthew Treinish)
* \* The scheduler can now groups tests together permitting co-dependent tests to   always be scheduled onto the same backend. Note that this does not force   co-dependent tests to be executed, so partial test runs (e.g. --failing)   may still fail.  (Matthew Treinish, Robert Collins)
* Make an assertion format check more lenient, for Python 3.3
* Fix an erroneous unicode to bytes comparison
* Make failure order stable from memory repository for testing
* Deal with Python 3 rejecting comparisons between None and None
* \* Fix Python 3.\* support for entrypoints; the initial code was Python3   incompatible. (Robert Collins, Clark Boylan, #1187192)
* Add group\_regex option to .testr.conf to leverage use of group\_regex for scheduling
* Add group regex scheduling hint to the test partitioner
* Remove unneeded test setup
* Teach load how to cause a failure in response to stdin
* \* Switch to using multiprocessing to determine CPU counts.  (Chris Jones, #1092276)
* Document the change of CPU core detection
* Switch to multiprocessing for detecting CPU core count. This is present as of Python 2.6
* Only return streams from CLI.\_iter\_stream if the type matches the first type the command declared
* Simplify load a little
* Consolidate on the StreamResult API for make\_results' return values
* Missing (C) header
* Cleanup crufty imports
* Drop unused class TestResultFilter
* Drop the ExtendedToStream wrapping around UI.make\_result
* Move tag based test filtering into the UI: many test things won't be filtered, such as slow tests and pdb debugging, so the UI has to see the tests. Moving the responsibility into the UI may lead to repetition in other UI's if not made easy to reuse, but that seems like the lesser of evils for now
* Simplify commands.failing

0.0.15
------

* Release 0.0.15, with minimal subunit v2 support
* Fix subunit v1 parallel test execution
* Add test for --subunit support - the UI was previously only loosely tested
* Change get\_test() APIs to return StreamResult rather than TestResult emitting test objects
* Migrate to new streamresult concurrent test suite API
* Split out event forwarding and summarising roles for make\_result
* More reasoning for \n in return-code injection
* Move internal get\_inserter to be StreamResult based
* Cleanup the switch to using inserter state
* Change run\_id to be read from the object rather than a local binding
* Fix test\_cli for python 2.x
* Use ConcurrentStreamResult always
* Start getting streamresult into the innards
* \* Expects subunit v2 if the local library has v2 support in the subunit   library. This should be seamless if the system under test shares the   Python libraries. If it doesn't, either arrange to use \`\`subunit-2to1\`\`   or upgrade the subunit libraries for the system under test.   (Robert Collins)

0.0.14
------

* Update releasing docs and really release 0.0.14
* 0.0.14 ++++++

0.0.13
------

* Release 0.0.13
* \* \`\`setup.py testr\`\` was not indicating test failures via it's return code.   (Monty Taylor)
* Actually return from \_run\_testr

0.0.12
------

* Release 0.0.12
* \* There is now a setuptools extension provided by \`\`testrespository\`\` making it   easy to invoke testr from setup.py driven workflows.   (Monty Taylor, Robert Collins)
* \* BSD license file incorrectly claimed copyright by subunit contributors.   (Monty Taylor)
* Correct a typo in setup.py
* \* .testr.conf is now shipped in the source distribution to aid folk wanting to   validate that testrepository works correctly on their machine.   (Robert Collins)
* Add setuptools commands for running testr and coverage

0.0.11
------

* Release 0.0.11
* Tweak docs
* \* Fix another incompatability with Mac OS X - gdbm dbm modules don't support   get. (Robert Collins, #1094330)
* ReST fixes for docs

0.0.10
------

* Release 0.0.10
* \* It's now possible to configure \`\`test\_run\_concurrency\`\` in \`\`.testr.conf\`\`   to have concurrency defined by a callout. (Robert Collins)
* Update testr help run docs for new options
* Refactor, making the test run case also spin up in advance
* Support creating test execution environments at runtime
* Implement test listing and execution with test execution instances
* Revert out a test tweak, and add test for behaviour without per-instance execution logic
* Tweak some docs
* Actually implement instance disposal
* Enforce setUp before get\_run\_command
* \* TestCommand is now a fixture. This is used to ensure cached test instances   are disposed of - if using the object to run or list tests, you will need   to adjust your calls. (Robert Collins)
* \* It's now possible to configure \`\`test\_run\_concurrency\`\` in \`\`.testr.conf\`\`   to have concurrency defined by a callout. (Robert Collins)
* Document overview

0.0.9
-----

* Release 0.0.9
* \* On OSX the \`\`anydbm\`\` module by default returns an implementation that   doesn't support update(). Workaround that by falling back to a loop.   (Robert Collins, #1091500)
* Document workaround
* Workaround Apple's OSX Python having a brain -damanged bsddb module
* Fix .testr.conf example to match what works out there in the wild
* \* \`\`testr --analyze-improvements\`\` now honours test regex filters and only   analyzes matching tests. (Robert Collins)
* Better documentation for setup of .testr.conf
* Better keywords

0.0.8
-----

* Release 0.0.8
* \* \`\`testr run --analyze-isolation\`\` will search the current failing tests for   spurious failures caused by interactions with other tests.   (Robert Collins, #684069)
* First, horribly untested, version of --analyze-failures
* Science fiction
* Make failing --subunit always output 0 and document process exit codes for last and failing
* \* \`\`testr last\`\` now supports \`\`--subunit\`\` and when passed will output   the stored subunit stream. Note that the exit code is always 0 when this   is done (unless an exception occurs reading the stream) - subunit consumers   should parse the subunit to determine success/failure. (Robert Collins)
* Slight code cleanup
* \* \`\`test failing --subunit\`\` now exits 0 if there are no failing tests.   (Robert Collins)
* Document --until-failure
* \* \`\`testr run --until-failure\`\` will repeat a test run until interrupted by   ctrl-C or until a failure occurs. (Robert Collins, #680995)
* \* \`\`testr run --failing\`\` will no longer run any tests at all if there are   no failing tests. (Robert Collins, #904400)
* Fixup last commit
* \* \`\`testr run --failing\`\` will no longer run any tests at all if there are   no failing tests. (Robert Collins, #904400)
* More accurate docs
* More accurate getting-going docs
* Remove some sci-fi
* \* \`\`testr help command\`\` now shows the docstring for commands (Robert Collins)
* \* \`\`testr help command\`\` now shows the docstring for commands (Robert Collins)
* Reference the online docs
* \* New argument type \`\`ExistingPathArgument\`\` for use when commands want to take   the name of a file. (Robert Collins)
* \* \`\`testr load\`\` now supports passing filenames to subunit streams to load.   (Robert Collins, #620386)
* \* New argument type \`\`ExistingPathArgument\`\` for use when commands want to take   the name of a file. (Robert Collins)
* \* Test tags are now shown in failures. Of particular interest for folk debgging   cross-test interactions will be the worker-N tags which indicate which   backend test process executed a given test. (Robert Collins)
* \* Sphinx has been added to tie the documentation toghether (And it is available   on testrepository.readthedocs.org). (Robert Collins)
* \* As a side effect of fixing bug #597060 additional arguments passed to testr   run or testr list are only passed to the underlying test runner if they are   preceeded by '--'. (Robert Collins, #597060)
* \* As a side effect of fixing bug #597060 additional arguments passed to testr   run or testr list are only passed to the underlying test runner if they are   preceeded by '--'. (Robert Collins, #597060)
* Pyflakes cleanup
* Add more docs and tricks, including the fact that this poking isn't actually the desired UI
* \* \`\`testr run --load-list FILENAME\`\` will limit the tests run to the test ids   supplied in the list file FILENAME. This is useful for manually specifying   the tests to run, or running testr subordinate to testr (e.g. on remote   machines). (Robert Collins, partial fix for #597060)
* \`\`testr\`\` will now show the version. (Robert Collins)
* NEWS
* Show the version in testr --version
* \`\`testr run\`\` will now fail a test run if the test process exits non-zero. As a side effect of this change, if the test program closes its stdout but does not exit, \`\`testr run\`\` will hang (waiting for the test program to exit). (Robert Collins)
* Improvements from review - better docs, avoid race condition with process exit
* \* \`\`testr run\`\` will now fail a test run if the test process exits non-zero.   (Robert Collins)
* Test that failures load detects are propogated to the exit code of run
* Ignore testrepository.egg-info
* Sketch out remote operation in manual
* IMPROVEMENTS ------------
* Release 0.0.7
* Change to using distribute
* \* stream loading will now synthesise datestamps before demultiplexing rather   than on insertion into the repository. This fixes erroneously short times   being recorded on non timestamped streams. Additionally, moving the automatic   addition of timestamp material in front of the demuxer has removed the skew   that caused test times to be reported as longer than the stream could   indicate (by the amount of time the test runner took to start outputting   subunit). This time may be something we want to track later, but the prior   mechanism was inconsistent between the current run and reporting on prior   runs, which lead to a very confusing UI. Now it is consistent, but totally   ignores that overhead.   (Robert Collins, #1048126, #980950)
* Stop test\_id\_list\_default masking test\_list\_option with some horribly convoluted code
* \* \`\`testr run\`\` now accepts a --concurrency option, allowing command line   override of the number of workers spawned. This allows conccurency on   operating systems where autodetection is not yet implemented, or just   debugging problems with concurrent test suites. (Robert Collins, #957145)
* open 0.0.7
* Release 0.0.6
* \* Various cleanups of recent structural drift
* Implement hiding of tagged tests
* Compat with subunit trunk
* Refactor, pushing the result creation into the desired shape
* Glue into the active commands a way to get a customised filter, which the next patch will parameterise with tag stripping support
* Another case of the DBM API breakage in Python2.7 fixed
* \* \`\`testr\`\` will drop into PDB from its command line UI if the environment   variable TESTR\_PDB is set. (Robert Collins)
* fix test failure when using trunk of testtools
* add worker-id tagging with fix to work with testtools trunk
* merge from trunk
* simplify test
* remove unneeded import
* add test for worker-id-tagging wrapper
* Update docstrings
* Test behaviour, not types
* Fixed description for --subunit
* Add --subunit and --full-results to load command
* Add --full-results switch to get unfiltered output
* add worker ID tagging, needs tests
* Add --subunit option to the run command to get subunit output
* Use an error object that consistently returns unicode, regardless of locale
* Changes suggested in review
* New revision
* New revision
* Fixed outpit encoding when stream has encoding set to None
* Handling non-ascii characters in output
* Add config option to set filter tags
* \* Test partitioning now handles a corner case where multiple tests have a   reported duration of 0. Previously they could all accumulate into one   partition, now they split across partitions (the length of a partition is   used as a tie breaker if two partitions have the same duration).   (Robert Collins, #914359)
* Show a delta between the last run and the run before it on 'testr load', 'testr run' and 'testr last'
* Show a plus when there are more tests
* Add a 'slowest' command that shows the slowest tests from the latest run
* Settle for what we have now
* Maybe cleaner
* Fix documentation
* Put in research findings
* Flag the autotimer extra code
* New TODO
* Already-done TODO
* Show the diff between last and the one previous run
* Include failures delta
* Include test run delta
* Time delta information
* Flakes
* Memory repository wasn't including time, which made it really confusing to get time information from previous test runs
* Pass through previous run
* Test to verify behaviour on empty repo
* Make the base UI a summary result
* Create a SummarizingResult separate from the UI
* Extend make\_result to accept previous run
* Convenience for getting the last run
* Add get\_id to TestRun interface
* Display test run time after loading
* Mark upstreaming
* Change the test filter to forward time results even for filtered tests
* Make the tests correspond closer to what they need to test
* Extract timedelta\_to\_seconds helper
* TODOs
* End with new line
* Actually use output\_summary. Update all of the tests for its new API
* No delta test for values
* Combining test to make sure
* Support other values. Change the API so that we pass in tests & time stuff explicitly
* Actually hook up output\_summary
* Handling for number of tests run and time taken
* Start of the testing structure for summary code
* Put output\_summary in the UI interface
* Flakes
* Fix a NameError in memory.py
* Push the implementation of gathering test ids in to the repo
* Add an option to show all rows
* Add another XXX
* Format the times such that the decimal places are aligned
* Limit the number of rows shown by default
* Add a header to the table
* First steps to having a "slowest" command
* Memory repository was only storing integer time. Make it store the actual given time. (Comes with test.)
* Add a test for jelmer's fix
* \* The test 'test\_outputs\_results\_to\_stdout' was sensitive to changes in   testtools and has been made more generic. (Robert Collins)
* \* A horrible thinko in the testrepository test suite came to light and has been   fixed. How the tests ever ran is a mystery. (Robert Collins, #881497)
* Fix up addUnexpectedSuccess
* Refactor the support for counting tests observed vs shown
* \* Python2.7 changed the interface for DBM.update, this has been worked around.   (Robert Collins, #775214)
* And open up 0.0.6
* Mark current version as 0.0.5
* \* \`\`testr init-repo\`\` now has a \`\`--force-init\`\` option which when provided   will cause a repository to be created just-in-time. (Jonathan Lange)
* Use assertThat
* Restore NEWS item lost in conflict
* Add a '--force-init' option and only initialize repo on load if it's passed
* Variable expansion no longer does python \ escape expansion. (Robert Collins, #694800)
* Make setup.py smoke test more specific again as requested in review
* Use str.replace not re.sub for testcommand interpolation to paper over design flaw
* Fix four of the remaining six failures here
* Add repository backend for samba buildfarm
* Use test timing data to allocate test partitions in --parallel
* Refactor to make it possible to use repository test times in parallel test partitioning
* The \`\`testrepository.repository.Repository\`\` interface now tracks test times for use in estimating test run duration and parallel test partitioning. (Robert Collins)
* Use parallel in self testing
* \* \`\`testr load\`\` and \`\`testr run\`\` now have a flag \`\`--partial\`\`. When set   this will cause existing failures to be preserved. When not set, doing a   load will reset existing failures. The \`\`testr run\`\` flag \`\`--failing\`\`   implicitly sets \`\`--partial\`\` (so that an interrupted incremental test run   does not incorrectly discard a failure record). The \`\`--partial\`\` flag exists   so that deleted or renamed tests do not persist forever in the database.   (Robert Collins)
* Improve help
* \* \`\`testr run\`\` no longer attempts to expand unknown variables. This permits   the use of environmen variables to control the test run. For instance,   ${PYTHON:-python} in the test\_command setting will run the command with   $PYTHON or python if $PYTHON is not set. (Robert Collins, #595295)
* Improve MANUAL for parallel testing
* Parallel testing implemented
* \* \`\`testr list-tests\`\` is a new command that will list the tests for a project   when \`\`.testr.conf\`\` has been configured with a \`\`test\_list\_option\`\`.   (Robert Collins)
* Refactor: move responsibility for running tests into the TestCommand fixture
* Woops, forgot the decorator.py file
* \* \`\`testr run\`\` uses an in-process load rather than reinvoking testr. This   should be faster on Windows and avoids the issue with running the wrong   testr when PYTHONPATH but not PATH is set. (Robert Collins, #613129)
* Add a decorating UI for in-process reinvocation of subcommands
* Change model UI to permit passing in file objects as input streams
* \* \`\`testr load\`\` now loads all input streams in parallel. This has no impact   on the CLI as yet, but permits API users to load from parallel processes.   (Robert Collins)
* Some workarounds for Python 2.4 and windows issues
* Fix typo in INSTALL.txt
* \* \`\`testr run\`\` now uses a unique file name rather than hard coding   failing.list - while not as clear, this permits concurrent testr invocations,   or parallel testing from within testr, to execute safely. (Robert Collins)
* Allow hyphenated command names
* Change to using load-list in the testrepository .testr.conf now that it is available for testtools/subunit
* \* \`\`testr run\`\` now resets the SIGPIPE handler to default - which is what   most Unix processes expect. (Robert Collins)
* \* \`\`testr run\`\` will now pass \`\`-q\`\` down to \`\`testr load\`\`.   (Robert Collins, #529701)
* \* \`\`testr run\`\` will now pass -d to the \`\`testr load\`\` invocation, so that   running \`\`testr run -d /some/path\`\` will work correctly.   (Robert Collins, #529698)
* Unlink temporary failing files if the update of failing is interrupted
* \* Updates to next-stream are done via a temporary file to reduce the chance   of an empty next-stream being written to disk. (Robert Collins, #531664)
* Nicer error message when reading next-stream fails
* Pull out some common test code
* \`\`setup.py\`\` will read the version number from PKG-INFO when it is running without a bzr tree : this makes it easier to snapshot without doing a release. (Jonathan Lange)
* Use PKG-INFO if it's present
* Also update INSTALL docs
* \* The testrepository test suite depends on testtools 0.9.8. (Robert Collins)
* testr load, last and failing now shows failures as they come
* Review comments
* Probably not
* Tests for results module
* Delete unused output\_run
* Oops
* Give the UI's TestResult object full responsibility for summing up the result of the test,
* Use Wildcard to make matching UI output a little nicer
* Wildcard object equal to everything
* Refactor the CLITestResult tests so they don't care so much about how results are constructed
* make\_result now takes a callable that returns the id of the test run. Not actually used yet
* Open 0.0.5
* Release 0.0.4
* Record a bugfix that was skipped
* Extend the UI interface to have support for listing tests. Use that support to list failing tests
* NEWS message
* Save some doc updates
* Add a --list option to failing to display list of failures
* Flakes
* Remove output\_results, not needed
* output\_results isn't needed
* Change 'failing' to delegate to the test result object
* output\_run doesn't need the output stream any more
* Change last to have the same structure as load, delegating to the UI's TestResult. Makes last() display output incrementally too
* Unnecessary variable
* As far as I can tell, this ought to display results incrementally
* Minor rephrasing to reduce the size of the change
* Use make\_result internally
* Add make\_result to the UI contract
* Flakes
* Display errors as soon as the ui finds out about them
* Extract out the logic for formatting errors
* Flakes
* Cleanups
* Expand tilde when initializing and opening file repositories
* Initialise the repository if we cannot find it
* Interface documentation. Because I care
* Create a RepositoryNotFound exception and raise it when we cannot open a repository
* Display values in foo=bar, baz=qux form, making it easier to match names to values
* Remove unnecessary lines
* Minor docstring improvement for Command
* Open 0.0.4 for development
* Release 0.0.3
* Add a .testr.conf - dogfooding ftw
* \`\`run\`\` can also supply test ids on the command, for test runners that want that
* \`\`run\`\` also passes arguments and options down to the child process
* New argument type \`\`StringArgument\`\` for use when a supplied argument is just a string, rather than a typed argument
* New subcommand \`\`run\`\` added which reads a .testr.conf file to figure out how to run tests with subunit output. It then runs them and pipes into testr load. This allows simpler integration and permits a programming interface so that tools like Tribunal/Eclipe etc can refresh tests in a testrepository
* \`\`failing\`\` now correctly calls \`\`repository.get\_failing\`\` and will this track all seen failures rather than just the latest observed failures
* Add a indirected subprocess.Popen to permit testing of the planned run command
* Fix last on a new repository
* Make failing track just failures properly
* Tweak MANUAL.txt docs
* Add a NEWS file and tweak MANUAL.txt
* Output errors during run
* Add error reporting facility
* First cut at failing --subunit [shows all tests so not right yet]
* Add stream output support for the UI
* Allow commands to add options
* Really add a 'failing' command
* Open 0.0.3
* 0.0.2: include all commands
* Make README.txt actual ReST
* Open 0.0.2
* Cut a 0.0.1 release
* Get a basic failing command going
* Basic last command
* Create an API for getting at inserted runs
* Add repo.latest\_id()
* Sketchy contract test for repo.count()
* Add a small stats command
* Add quickstart command
* Make the no-commands help invoke the help command
* Implement help command
* Hook arg parsing into command execution
* Add CommandArgument
* Define parsing for arguments
* Introduce an arguments package
* More dev docs
* Improve testrepository.tests.test\_suite to be more clear
* Design docs
* Add an output\_rest method to UI
* Remove unneeded import
* Add a command commands
* Add output\_table to ui
* Add commands.iter\_commands
* Separate StubPackages should use different temp dirs
* Close the loop on the test failure output from load
* Preserve timing data from loaded tests
* Show failures when loading tests
* Add ui.output\_results()
* Change ui.model to note what sort of output in preparation for output\_results
* Show skip counts too
* Show the run id too
* Report on failures
* Enforce per-stream output in load
* Output the test count from load
* Add a test that load -q doesn't output anything
* Add a very rudimentary structured output facility
* Add access to options and a global quiet option
* Make stopTestRun return a db reference
* Return stream status from load, and change make to use testr itself
* Create an explicit RepositoryFactory concept, a load command and implement opening of file based repositories
* Python2.4 does not have NamedTemporaryFile...delete=False, so use mkstemp directly
* Basic repository can-store-runs
* Teach UI about -d HERE and the concept of 'here'
* Outline streams API for ui objects, and tell ui objects about their command
* Change direct use of file.Repository to use a factory in the init command, and provide a repository\_factory to all commands
* Make repository initialisation a consistent interface on the Repository class
* Get the path to the repository from os.getcwd
* Finish minimal wiring up of Command.run
* run\_argv returns the result of command.execute()
* Command line commands are run with a CLI UI
* No commands -> some blurb
* Find commands after options
* Start on run\_argv
* Have initialise actually do something
* Start on the init command
* Switch to using Popen for test\_setup
* Add IRC channel to README.txt
* Outline the UI module and it's responsibilities
* Add command lookup logic
* Create testr executable
* Install a testr script
* Add CI link to README.txt
* Test that setup.py works
* Sync README with homepage notes
* Ignore test.xml (output from make check-xml)
* More docs, CI system info and a check-xml to permit easy CI integration
* Some more fictional docs
* Base project infrastructure
