NEWS for cmdtest
================

This file summarizes changes between releases of cmdtest.

Version 0.30, released 2017-04-16
----------------------------------

* Fix check for whether Python is used a shell. Previously the shell
  had to be exactly "python", not anything that contains that is
  enough. This is necessary to trigger PYTHONPATH manipulation when
  using python2 explicitly.

Version 0.29, released 2017-04-11
----------------------------------

* Add assertions and getting the next parameter match to `yarnutils`.

Version 0.28, released 2017-03-28
----------------------------------

* Output from `--timings` is now properly formatted, rather than it
  all being on one line. Daniel Silverstone reported the bug.

* Add a new Python package `yarnutils` that can be imported into
  IMPLEMENTS written in Python to simplify things. This version
  provided persistent variables.

Version 0.27, released 2016-09-21
----------------------------------

* Debian packaging now provides the name `yarn` in addition to
  `cmdtest`.

* Fixed bug in writing out error messages that are not ASCII.

Version 0.26, released 2016-07-23
----------------------------------

* Debian packaging fix to correct section. Thanks, Ben Finney.

Version 0.25, released 2016-07-18
----------------------------------

* Fixed yarn manual page examples to say `DATADIR` instead of
  `TESTDIR`. Thanks to John Kozak for reporting it.

Version 0.24, released 2016-04-18
----------------------------------

* Fixed missing import.

Version 0.23, released 2016-04-18
---------------------------------

* Yarn now has the `--stop-on-first-fail` setting, which makes it stop
  if a scenario step fails, and not continue with the next scenario.

* Yarn now adds SRCDIR to PYTHONPATH, if `--shell=python` is used.

Version 0.22, released 2016-02-04
---------------------------------

* Explicitly encode Unicode strings to the preferred locale encoding
  when writing to stdout, stderr.

Version 0.21, released 2016-01-25
---------------------------------

* Fixed another non-ASCII problem in yarns. Also found by Heikki
  Haapala. This time, environment variable values must be encoded (we
  do UTF-8).

Version 0.20, released 2016-01-25
---------------------------------

* Allow scenario and step names to have non-ASCII text. Thanks to
  Heikki Haapala for reporting the problem.

Version 0.19, released 2016-01-09
---------------------------------

* Yarn now gives an error if `--run` is given a scenario that doens't
  exist.

* Yarn now supports `--shell` to choose the shell to execute
  IMPLEMENTS scripts, and `--shell-arg` to add arguments to shell.
  This can be used to use Python instead of sh:
  `--shell=/usr/bin/python2 --shell-arg=''`.

* Yarn now supports the `--cd-datadir` setting to have each step run
  in `DATADIR` instead of `SRCDIR`. The default remains `SRCDIR`, but
  at some point in the future, the default will probably change.

Version 0.18, released 2015-11-06
---------------------------------

* Code blocks that are examples are now supported.

* Snapshot directories are now created only when `--snapshot` is used.

Version 0.17, released 2015-09-21
---------------------------------

* Yarn now flushes outputs (stdout, stderr) whenever it writes
  anything. This should avoid some problems with programs that capture
  yarn output, such as CI systems, and get the timings differently
  from what would happen on a terminal.

* The `--require-assumptions` option has been added to tell Yarn to
  treat failing ASSUMPTIONS steps as errors.

Version 0.16, released 2015-06-30
---------------------------------

* Flush terminal status output whenever a new scenario or step is
  started. This ensures the terminal isn't showing an earlier, very
  fast step, when the actual current step is slow.

Version 0.15, released 2015-06-29
---------------------------------

* Steps are indented when yarn is run in `--verbose` mode.

* Failed scenarios are listed at the end of yarn output.

Version 0.14, released 2015-03-05
---------------------------------

* Yarn now supports continuation lines: start a line with `...` and it
  continues the previous line.

* Yarn now works with UTF-8 input. No other character sets are
  supported; sorry (but patches welcome).

Version 0.12, released 2014-03-28
---------------------------------

For yarn:

* Do not fail a test suite if snapshotting `DATADIR` fails.

Version 0.11, released 2014-03-15
---------------------------------

For yarn:

* Report number of scenarios skipped due to an ASSUMING step failing.

* Fix the error message for reporting scenarios without THEN steps
  to include the names of those scenarios only, rather than all
  scenarios. Patch by Pete Fotheringham.

* Yarn now sets `$HOME` to a directory in `$DATADIR`, and creates
  that directory. This means test suites can assume `$HOME` exists,
  but don't use the user's real home directory, which is important for
  test environment hygiene.

* New option `--allow-missing-steps` to allow running a test suite
  with some steps missing. The scenarios with missing steps will be
  skipped. Suggested by Pete Fotheringham.

For cmdtest:

* The `--test` (`-t`) option should now work again. Thank you
  to Kalle Valo for prodding me.

Version 0.10, released 2013-10-05
---------------------------------

* Yarn now cleans the environment when it runs shell commands for the
  implementation steps. The PATH variable is kept from the user's
  environment, every other variable is either removed or hardcoded to
  a specific value. More variables can be added explicitly to the test
  environment with the new `--env NAME=VALUE` option. Additionally
  yarn sets the `SRCDIR` environment variable to point at the root of
  the source tree (the directory where yarn was invoked from).

* A new option, `--timings`, has been added to yarn to report how long
  each scenario and each step took.

* Yarn now reports scenarios skipped because of ASSUMING failing.

* Yarn manual page now documents DATADIR and SRCDIR environment
  variables.

Bug fixes:

* Yarn now complains if a scenario has no THEN steps. Suggested by
  Richard Maw.

* Yarn now gives an error if there are no scenarios. Suggested by
  Daniel Silverstone and others.

* Yarn now checks for duplicate scenario names.

* Yarn now always checks for IMPLEMENTS sections with case-insensitive
  matching. Reported, with test case, by Jannis Pohlmann.

Version 0.9, released 2013-07-23
--------------------------------

* Yarn now warns if an input file has no code blocks.
* There is no a yarn `--shell-library` option for the user to use, which
  includes a shell library when running any IMPLEMENTS section.
* FINALLY always worked in yarn, but has now been added to the manual
  page as well.
* The keyword ASSUMING has been added to yarn.
* New yarn option `--run` allows running selected tests only.
* New yarn option `--snapshot` makes snapshots of the test working
  directory after each step in a scenario. Combined with the, also
  new, option `--tempdir` this makes debugging failed tests easier.
* New yarn option `--verbose` (turned on automatically if there is not
  tty available, e.g., when running from cron), turns off ttystatus
  progress bar and produces a "wall of text" style output instead.

Bug fixes:

* Yarn now handles multiple input files correctly.  Reported by Daniel
  Silverstone; fix based on his patch, but rewritten.

Version 0.8.3, released 2013-06-21
--------------------------------

* Bug fix: properly install yarnlib. In other news, I hate distutils.

Version 0.8.2, released 2013-06-21
--------------------------------

* Bug fix: install the yarnlib library as well. This is embarrassing.

Version 0.8.1, released 2013-06-20
--------------------------------

* Bug fix: install the yarn binary in the package.

Version 0.8, released 2013-06-19
--------------------------------

* Switch terminology to "scenario testing" from "story testing". Thanks
  to Rob Kendrick for the suggestion. Doing a quick release so the
  old terminology doesn't have time to get any use.

Version 0.7, released 2013-06-15
--------------------------------

* Added the new tool `yarn`, for doing story testing. It is still fresh
  and raw, but I want to make it available to get feedback.

Version 0.6, released 2013-03-14
--------------------------------

* Fixed cmdtest to diff outputs correctly. Reported by Kevin Lee.

Version 0.5, released 2012-09-29
--------------------------------

* Version 0.4 may or may not have released. If it was, it should have had
  internal changes only.
* Add missing copy of GPLv3. Reported by Michel Alexandre Salim.

Version 0.3, released 2012-02-24
--------------------------------

* Add `--keep` option to keep the temporary directory for failed tests.
* Add `--timings` option to show timings for various tests. Good for when
  test suites start getting slow and you want to speed them up.

Version 0.2, released 2012-02-18
--------------------------------

* The `-t testname` option now works.

