Skip to content
Version 0.9.0

== Added ==
- Added the **Context** API for much easier and more flexible machine
  management.  Please read the [Context API][context-api] documentation for an
  introduction and migration guide.  **Note**: For now the old `tbot.selectable`
  API still exists and will be compatible both ways with the new API.  It will,
  however, slowly be phased out in the future.
- Warning about incorrect build-host configuration when running `uboot_testpy`
  testcase.
- Added support for SSH connection multiplexing to `SSHConnector`.  You can
  enable it by adding `use_multiplexing = True` to your host config.
  Multiplexing can drastically speed up testcases which open many connections to
  the same host (see `ControlMaster` in `sshd_config(5)` for details).
- Added two more types of machine initializers:
  - `PreConnectInitializer`: Runs before the connection is established.
  - `PostShellInitializer`: Runs after the shell is available (and thus can
    interact with it).

== Changed ==
- `LinuxShell.env()` can now be used to query `$!` (last background job PID) and
  `$$` (current shell PID) special environment  variables (using `m.env("!")`
  and `m.env("$")`).
- Added some more specific exception types and started using them where
  appropriate.  This effort is by far not over yet, though ...
- The `linux.Background` special token is now more safe to use as it prevents
  console clobbering as good as it can.  You can manually redirect command
  output to files using a new call syntax.  See `Background` documentation
  for details.
- `paramiko` is now an optional dependency.  tbot works just fine without
  paramiko, but if it is installed, the `ParamikoConnector` becomes available.
- Switched to `pytest` for tbot's selftests.

== Fixed ==
- Call `olddefconfig` before attempting to build U-Boot.  This prevents kconfig
  from attempting to interactively query new config settings.
- Fixed a rare timing-dependent bash/ash initialization deadlock.
- Fixed `selftest_tc` failing if user has no git identity set up.
- Fixed documentation silently building without version information if
  `git describe` fails.
- Fixed tbot configuring an overly narrow terminal in some cases, leading to
  weird looking output (now the minimum is 80 chars wide).
- Fixed `Path.write_text()`/`Path.write_bytes()` hanging when an error occurs
  and the channel receives data very slowly.

[context-api]: https://tbot.tools/context.html