Skip to content
Version 0.9.1

== Added ==
- Added a mechanism for "locking" connections to certain machines.  This can be
  used, for example, to ensure exlusive access to a certain board.  See
  `tbot_contrib.locking` for details.
- `Path.rmdir()` and `Path.unlink()`: Methods to conveniently delete an empty
  directory, a symlink, or a file from a host's filesystem.
- `Path.mkdir()`: Method to conveniently create a directory on the respective
  machine.
- `Path.at_host(host)`:  A method to safely convert a tbot-path into a plain
  string.  The `host` parameter is used to check that the `Path` is actually
  meant for the expected host.  Any uses of the (unofficial) `_local_str()`
  method should be replaced by `at_host()` as the former will be removed soon.
- New classes `AppendStdout`, `AppendStderr`, and `AppendBoth` in
  `machine.linux` allow to append command output to files in `exec()` and
  `exec0()` methods.
- Added a feature to the `Context` to allow reconfiguring a context temporarily
  (`Context.reconfigure()`).  This is useful to e.g. enable `keep_alive` mode
  for certain tests.

== Changed ==
- Warnings emitted due to problems when parsing the SSH config now include
  hints about the actual problem.
- `linux.Path` no longer inherits from `pathlib.PurePosixPath`.  This fixes
  a number of long standing oddities where certain methods would not function
  correctly.  All API from `PurePosixPath` has been reimplemented in
  `linux.Path` explictly, now with the proper behavior.

== Fixed ==
- Fixed the `PyserialConnector` not working properly with tbot contexts.
- Fixed `linux.Background` not properly redirecting stderr output.