# CHANGES

## 0.3.17

* When encoding argument is set, decode output before writing to stdout and
  stderr arguments. This changes the behaviour to match the documented
  behaviour: previously, only the output on the result object was decoded.

## 0.3.16

* Remove non-ASCII character from README.rst.

## 0.3.15

* Add encoding argument to spawn and run.

* SshShell: add load_system_host_keys argument.

* LocalShell: don't raise NoSuchCommandError when cwd does not exist.

## 0.3.14

* Raise spur.CommandInitializationError when SshShell fails to read integers
  from stdout before the command is actually run.

## 0.3.13

* Add look_for_private_keys argument to SshShell to allow searching for private
  keys to be disabled.

## 0.3.12

* Add shell_type argument to SshShell to allow better support for minimal
  shells, such as those found on embedded systems.

* Open files in text mode by default. When opening files over SSH, this means
  that files are decoded using the encoding returned by
  locale.getpreferredencoding().

## 0.3.11

* Add support for platforms that don't support the pty module, such as Windows.

## 0.3.10

* SshShell: Use "which" if "command -v" is not available. Fixes GitHub issue #15:

    https://github.com/mwilliamson/spur.py/issues/15

## 0.3.9

* Treat output as bytes rather than attempting to decode to string when
  generating RunProcessError.message. Fixes GitHub issue #13:

    https://github.com/mwilliamson/spur.py/pull/13

* Support unicode commands over SSH.

## 0.3.8

* Add full support for Python 3.

## 0.3.7

* Handle buffering more consistently across different Python versions.

## 0.3.6

* LocalShell: Add support for Python 3. Since paramiko is currently unsupported
  on Python 3, use the package "spur.local" rather than "spur".

## 0.3.5

* SshShell: Use "command -v" instead of "which" for better POSIX compliance.
* SshShell: Skip blank lines when expecting echoed return code.

## 0.3.4

* LocalShell: Use Popen.wait instead of Popen.poll to get return code of local
  process to ensure process has exited.

## 0.3.3

* Make username argument to SshShell optional. Closes GitHub issue #4.

## 0.3.2

* Include original error and original traceback on spur.ssh.ConnectionError
* Add experimental use_pty argument for run and spawn. Use at your own risk!

## 0.3.1

* spur.NoSuchCommandError is now raised if the command passed to run
  or spawn doesn't exist

## 0.3.0

* Change default behaviour to raise an error when a host key is missing.
* Allow selection of behaviour when a host key is missing by adding 
  host_key_missing argument to SshShell constructor.

## 0.2.4

* Catch EOFError and wrap it in spur.ssh.ConnectionError when opening SSH
  session
