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