2024-05-07 |
Fix installation of packages from files (#2914)
Simplify the documentation building (#2483)
Install dependencies of upgrade tasks
Improve fail message when library doesn't exist
Parse the `system` hardware requirement (#2795)
Define `location.lab-controller` hardware requirement (#2794)
Test restart on crash (#2870)
Add `codespell` pre-commit and fix revealed errors
Add test restart counter, similar to `TMT_REBOOT_COUNT`
Fix error message if no supported package manager found
Fix copy/paste issue for `combine_hw_disk_size()`
Slightly improve rendering of ReST for command like
Allow `duration` in the `execute` schema
Log hash of the beakerlib library repo
Fix inability of rpm-ostree to install multiple packages (#2887)
Fix Alpine Linux support (#2828)
Allow custom failure patterns in `dmesg` test check
Make `junit_xml` more visible to linters
Add support for `virtualization.hypervisor` hardware requirement (#2733)
Add a new section `Review` to contributor docs
Accept SSH options from environment variable (#2783)
Fix AVC denial detection on Fedora rawhide (#2881)
Reuse "become" image to fix sudo-related trouble in /tests/provision/user (#2892)
Polish prepare/ansible documentation
Support `cpu.cores` hardware requirement for mrack (#2728)
Allow pip install from git-archive
Add the `cpu.vendor` hardware requirement
Fix incorrect translation of `cpu.processors` to Beaker
Document custom Jinja template filters (#2769)
Update logger-name for clean
|
2024-04-19 |
Remove /var/tmp workdir from rpm packaging
Refactor package manager discovery to allow priorities
Add unit test for package manager installing a file system path
Update pre-commit checks and add a couple of new ones
Removing c9s workaround for pytest-container
Clarify the `--last` symlink creation race a bit
Remove the `.travis.yml` config file
Correctly show the `--provision-timeout` default
Refresh Beaker API client in mrack to use up-to-date Kerberos ticket
|
2024-03-28 |
rpm .spec file version bump
Update pytest on c9s when using site-packages
|
2024-03-27 |
Support Alpine Linux `apk` package manager
Update the `reportportal` plugin
Allow `keep-git-metadata` to be used without url
Use `TMT_REPORT_ARTIFACTS_URL` in Polarion report plugin
Prepare dist-git sources using `rpmbuild -bp`
Add support for `zcrypt` to Beaker plugin
Introduce ansible-lint to format ansible files
Add support for linking artifacts from the report
Document test tags and mark beakerlib integration
Clarify that plan context is not applied to plan
Increase the default test `duration` a bit
Update pre-commit checks
Fix typos in the `tmt try` help message examples
Add new environment variable for test iteration identifier
Select no tests if `modified-only` returns nothing (#2761)
Debug output for `discover -h fmf --modified-only`
Finish unit testing of HW transformations in mrack plugin
Run `/plans/install/docs` in core `packit` jobs
Extract "package manager" functionality into plugins (#2557)
Allow commands whose output is not logged unless they fail
Move `/tests/run/shell` to `/plans/provision/local`
Include a simple config for the `polarion` plugin
Cover `report/junit` with `pyright`
Implement the new test check `watchdog`
Support `disk.driver` hw requirement for `mrack`
Cover `tmt.hardware` with `pyright` check
Bootstrap unit tests for Beaker XML transformation of HW requirements
Add support for emulated TPM into virtual provision plugin
Set default formatting of Pint units to use symbols, not names (#2736)
Disable IPv6 for /plans/provision/virtual in CI
Add support for `disk.driver` hardware requirement
Remove now unnecessary `NON_KVM_ADDITIONAL_WAIT` from testcloud
Support `disk.model-name` hw requirement for `mrack`
Include `context` in the test `metadata.yaml` file
Pass `domain_configuration` to testcloud's `wake()`
Document how to enable verbose/debug logging
Disable password authentication when using keys
Log the beaker job whiteboard
/usr/sbin/sestatus instead of /usr/bin/sestatus (#2720)
Set acl permissions on the `workdir` root
Extend the `duration` for time-demanding tests
Add support for `disk.model-name` hardware requirement
Move deferred user stories into a separate section
Mark test check tests with more fitting provision tags
Add `Environment` and `FmfContext` among loggable types
Bump supported Artemis API versions to 0.0.69
"Show default" flag was dropped from CLI option initialization
Convert environment handling into a dict-like class (#2612)
Enable `additional_coverage` tests for pull requests (#2700)
Add essential requirements to checks
Remove mention about the full test suite from docs
Use the `PROVISION_HOW` variable in `provision` plans (#2688)
Properly detect if test is enabled somewhere
Check for files in `rpm-ostree install` script
Collect test/test check results in test invocation (#2608)
Test the `become` key under `virtual` provision
Introduce "topology" addresses for guests (#2670)
Make checks smarter about environments in which they should not run (#2686)
Cover report/display and report/html with pyright (#2682)
Cover `tmt.templates` with `pyright`
Allow custom boot/connect timeouts for testcloud VMs
Underline `try` menu keys
Drop two no longer used methods from prepare step
Enable the full test execution using a label (#2683)
Support URL as post-install-script for Artemis plugin
Fix dmesg check test for recent Fedoras
|
2024-02-06 |
Simple ReST renderer for CLI help texts (#2574)
Generate plugin documentation from their sources (#2549)
Fix environment from command line updated twice (#2614)
Introduce a new prepare plugin for common features (#2198)
Remove `xfail` for the `multidict` issue on `rawhide`
Prevent catching avc denials from previous tests
Remove an obsolete workaround for `centos-stream-8`
Enable the `/tests/discover/libraries` test (#2222)
Add documentation on tmt & regular expressions
Fix expansion of envvar starting with `@` in fmf nodes
Add the `zcrypt` adapter specification
Allow urllib3 2.x
Enable `/plans/provision/virtual` for pull requests (#2558)
Remove the dns failures workaround
Fix reporting of schema errors without the `$id` key
AVC check now saves a timestamp on guest instead of using runner's time
Add check to prevent `tmt try` deleting imported libraries
Reduce usage of locks in the `testcloud` plugin
Add support for envvars import and export to Polarion
Use enumeration to implement action handling
Handle the `ctrl-d` shortcut in `tmt try`
Run tests with `interactive` mode during `tmt try`
Fix `tmt import --dry` and Polarion import file name
Document that `name` is supported in `--filter` search (#2637)
Refactor running of interactive commands (#2554)
Create container images from the latest non-dev copr build
Fail `dmesg` check if it contains `Call Trace` or `segfault`
Mention the reboot timeout variable in the release notes
Bump the default reboot timeout to 10 minutes
Allow change of the default reboot timeout via environment variable
Introduce essential requirements
Allow `--update-missing` to change the default `how` value
Document the new `become` feature
Raise an error when loading pre-1.24 `tests.yaml`
Support terminating process running test via its test invocation (#2589)
Fix `egrep` warning in `/plans/install/docs`
Test framework may provide additional test requirements
Improve logging of AVC check plugin and its test
Cleanup logging in `tmt.utils.create_file()`
Drop connection closed messages from test output
Recommend `qemu-kvm-core` for `provision-virtual`
Fix `/tests/plan/import` to not use special ref (#2627)
Improve imported plan modification test to verify the order as well (#2618)
Retry the `git clone` action multiple times
Simplify the debuginfo installation test
Support `virtualization.is-virtualized` in `mrack` plugin
Support running all or selected steps `--again`
Allow hardware requirements limit acceptable operators
Fix inheritance of some keys in provision step data
Run a callback when command process starts
Add support for hard reboot to Beaker provision plugin
Make collected requires/recommends guest-aware
Copy top level `main.fmf` during testdir pruning
Add support for Artemis API v0.0.67
Add support for `cpu.flag` hardware requirement
Use a different pidfile location for the full test
Clear test invocation data path use and derived paths
Add support for disallowing plugins via command line
Use constraint classes specific for particular value type
Making rhts metric value optional.
Ignore tarballs and generated man page
Cover `tmt.libraries` with `pyright` checks
Parallelize the `provision` step
Let `click` know about the maximal output width
Cover `tmt.identifier` with `pyright` checks
Extend `duration` of `/tests/core/escaping` a bit
Move docs templates into their own directory
Drop no longer needed `tmt.utils.copytree()`
Drop no longer used `tmt.utils.listify()`
Provision plugins use `self.data` instead of `self.get()`
Prepare and finish plugins use self.data instead of self.get()
Fix tmt.utils.format to allow int and float values
Move code-related pages under new `code` directory
Warn on test case not found in Polarion during report
Bump pre-commit linters
When cloning a logger, give it its own copy of labels
Add a `Toolbelt Catalog` entry for `tmt`
Enable the `avc` check for all `tmt` tests
Fix dmesg check test on Fedora rawhide & newer
|
2023-12-08 |
Make `arch` field unsupported in the spec
Introduce `tty` test attribute to control terminal environment
Ensure the imported plan's `enabled` key is respected
Add support for user defined templates (#2519)
Update the common schema for the `check` key
Create a `checks` directory to store avc/dmesg checks
Correctly update environment from importing plan
Implement `tmt try` for interactive sessions
Use a shorter time for `podman stop` (#2480)
Add the `redis` server as a multihost sync example
Improve documentation of test checks
Adjust the format of Polarion test run title
Run all available tests only upon a user request
Rename `name` to `how` in test check specification (#2527)
Link `inheritance` and `elasticity` from the guide
Add the `fips` field for the `polarion` report
Cover `tmt.cli` with `pyright` (#2520)
Custom soft/hard reboot commands for the connect provision plugin
Add `--feeling-safe` for allowing possibly dangerous actions
Update docs for the `polarion` report plugin
Move test-requested reboot handling into test invocation class
Add `-i` to select an image in beaker and artemis
Document how to use `yaml` anchors and aliases
Simplify log decolorizers to support pickleable trees
Add description field to polarion report plugin
Make check plugin class generic over check class (#2502)
Increase verbosity of Artemis provisioning errors
Add more distros to the `mrack` config
Move the `contact` key to the `Core` class
Bump tmt in lint pre-commit check to 1.29.0
Add Python 3.12 to the test matrix
Move `mrack` configs into `tmt+provision-beaker`
Allow running upgrade from the current repository
Fix remote nested library fetch and add test
Cover tmt.options with pyright
Cover tmt.checks, tmt.frameworks and tmt.log with pyright
Cover tmt.result with pyright checks
Store fmf `context` in results for each test
Add networks to the podman provision plugin (#2419)
Add a dedicated exit code when all tests reported `skip` result
Move invocation-related fields out of `Test` class
Remove expected fail from `/tests/pip/install/full`
Convert test execution internals to use "invocation" bundle (#2469)
Introduce a separate page `Code` for code docs
Add code documentation generated from docstrings
Fix possible unbound variable after import-under-try
Add `pyright` as a `pre-commit` check
Add a helper for nonconflicting, multihost-safe filenames
Add the `whiteboard` option for `beaker` provision
Support timestamped logging even on the terminal
Enable pyupgrade `UP` ruff rule
Fix `UP035` deprecated-import violations
Fix `UP034` extraneous-parentheses violation
Fix `UP033` lru-cache-with-maxsize-none violations
Fix `UP032` f-string violations
Fix `UP013` convert-typed-dict-functional-to-class
Fix `UP009` utf8-encoding-declaration violations
Fix `UP006` non-pep585-annotation violations
Try several times to build the `become` container (#2467)
Add .py file extension to docs scripts (#2476)
Add a link to the Testing Farm documentation
Use `renku` as the default theme for building docs
Properly normalize the test `path` key
Add an `adjust` example for enabling custom repo
Drop special normalization methods
Disable `dist-git-init` in the `distgit` test (#2463)
|
2023-11-06 |
Add page `Releases` to highlight important changes
Update and polish hardware requirement docs
Refactor generating of stories and lint check docs
Add support for pruning test directories
Download all sources for `dist-git-source`
Source plan environment variables after `prepare` and `execute` steps
Framework is not consulted on results provided by tmt-report-result
Run scripts with `sudo` when `become` is on
Add `retry` for pulling images in the `podman` plugin
Add hardware schema for GPU
Change the default test pidfile directory to `/var/tmp`
Add `device` key into the `hardware` specification
Update code and test coverage for the `check` key
Document case-insensitive context dimension values
Fix use of the `-name` suffix in system HW requirement
Correct parsing when called as `rhts`
Reconcile HW requirements with virtual's own options
Move the `README` content into `docs/overview`
Make `BasePlugin` generic over step data class
Use `UpdatableMessage` for execute/internal progress bar
Drop an empty line from the pull request template
Add `runner` property to run with test runner facts
Export sources of an `fmf` node
Bump pre-commit linters to newer versions
Append the checklist template to new pull requests
Extend tmt-reboot to allow reboot from outside of the test process
Allow optional doc themes
Use consistent style for multiword test names
Show `check` results in the `html` report
Update `where` implementation, docs & test coverage (#2411)
Document difference between key, field and option
Rename multiword keys to use dashes in export and serialization
Allow Path instance to be used when constructing commands
Switch `Logger.print()` to output to stdout
Replace Generator type annotation with Iterator (#2405)
Refactor data container helpers
When merging fmf and CLI, use shared base step data
Fix installing package from the command line
Add support for checks to have their data packages
Switch `tmt.identifier` from using `fmf.log`
Hide test/plan/story internal fields from export
Fix full test suite after recent packaging changes
Update the list of code owners
Include the `fmf` root in the tarball as well
|
2023-10-11 |
Build man page during the `release` action
|
2023-10-11 |
Remove the `.dev0` suffix from the spec `Version`
|
2023-10-06 |
Update the `release` action with `hatch` changes
Fix the multihost web test to work with container
Add `skip` as a supported custom result outcome
Add docs for the new `--update-missing` option
Remove irrelevant mention of `rhel-8` in the spec
Record start/end time & duration of test checks
Add `--update-missing` to update phase fields only when not set by fmf
Add --skip-prepare-verify-ssh and --post-install-script to artemis plugin (#2347)
Force tmt-link pre-commit to use fmf 1.3.0 which brings new features (#2376)
Add logging of applied adjust rules
Handle all context dimension values case insensitive
Hide `OPTIONLESS_FIELDS` from `tmt plan show`
Add context into the `html` report
Display test check results in `display` report output
Fix creation of guest data from plugin options
Allow wider output
Beaker plugin is negating Beaker operators by default
Include link to the data directory in the html report
Teach logging methods to handle common types
Move the copr repository to the `teemtee` group
Add a new `cpu` property `stepping` to hardware
Extract beakerlib phase name to a failure log
Always show the real beaker job id
Create a production copr build for each release
AVC denials check for tests (#2331)
Add nice & colorful help to "make" targets
Include more dependencies in the dev environment
Stop using the `_version.py` file
Replace `opt()` for `--dry/--force` with properties
Update build names for copr/main and pull requests
Use `hatch` and `pyproject`, refactor `tmt.spec`
Use dataclass for log record details instead of typed dict
Refactor html report plugin to use existing template rendering
Narrow type of hardware constraint variants
Refactor parameters of `Plan._iter_steps()`
Use `format_value()` instead of `pprint()`
Use the minimal plan to test imported plan execution
Refactor exception rendering to use generators
Add the `export` callback for fields (#2288)
Update a verified-by link for the beaker provision
Multi-string help texts converted to multiline strings
Make the upload to PyPI working again
Hide command event debug logs behind a log topic (#2281)
Replace `pkg_resources` with `importlib.resources`
Wrap `click.Choice` use with `choices` parameter
Lower unnecessary verbosity of podman commands
Move check-related code into `tmt.checks`
Disable `systemd-resolved` to prevent dns failures
Adjust test coverage for deep beakerlib libraries
Document migration from provision.fmf to tmt (#2325)
Remove TBD of initiator context for Packit
Fix output indentation of imported plans
Copr repo with a group owner requires quotes
|
2023-09-06 |
Use `testcloud` domain API v2
Bootstrap before/after test checks (#2210)
Separate value formatting from key/value nature of tmt.utils.format()
Render `link` fields in tmt stories and specs
Render default friendly command for guest execution
Use consistently plural/singular forms in docs
Make file/fmf dependencies hashable
Rewrite git url for discover fmf: modified-only
Refactor Artemis and Beaker provision tests to make room for HW
Adjust imported plan to let its adjust rules make changes
Get Ansible logging on par with general command execution
Support Click versions newer than 8.1.4
Teach tmt test create to link relevant issues (#2273)
Add story describing CLI for multiple phases
When rendering exception, indetation was dropping empty lines
Expose tmt version as an environment variable
Fix handling of integers and hostname in Beaker plugin
Fix bug where polarion component is misinterpreted as list
Refactor recording of CLI subcommand invocations (#2188)
Put `--help` at the end of the CLI in the step usage
Extend the expected `pip install` fail to `f-39`
Make `tmt init` add .fmf directory into git index
Fix guest data show() and how it displays hardware requirements
Add lint check for matching guests, roles and where keys
Add -e/--environment/--environment-files to plan show/export
No more need to install `pre-commit` using `pip`
Ensure that step phases have unique names
Verbose regular expression for linter descriptions
Initial draft of hardware requirement helpers
Simplify the reportportal plugin test using `yq`
Add dynamic ref support to library type dependency
Remove `epel-8` and `python-3.6` specifics
Use the latest `sphinx-rtd-theme` for docs building
Full `pip install` expected to fail on `Rawhide`
Add missing name attribute to report plugins schema
Add missing arguments in polarion report schema
Extend sufficiently the full test suite duration
Add support for log types to Artemis plugin
Fix `tmt run --follow`, add test coverage for it
Remove the temporary hotfix for deep libraries
|
2023-07-31 |
Do not throw an exception on missing mrack.log
Allow injecting credentials for git clone
Exception in web_link() when node root is missing
Rewrite url in git_clone
Add support for rendering error tracebacks
ReST export plugin should accept --template option
Add `role` to the Beaker provision plugin schema
Fix test checking custom destination for libraries
Create plans to cover individual step features (#2216)
Add cache_property for things that are generated but not often
Simplify public git conversion with a declarative list
Spec-based container becomes generic over input/output specs
Clean up logging in `tmt.utils.create_directory()`
Move test framework code into distinct framework classes
Add template option to polarion report
Group discover/fmf options, improve wording a bit
Record tmt command line in tmt log
Add note about dynamic ref to the plan import spec
Use the `Deprecated` class for deprecated options
Remove `python3-mrack-beaker` from `BuildRequires`
Switch discover/fmf to our field() implementation
Lock the `click` version < 8.1.4
Refine examples of plans > discover > fmf
Override packit actions for `propose_downstream`
|
2023-07-10 |
Test for pruning needs VM
Internal anonymous git:// access is deprecated
Beakerlibs pruning and merge
Add dynamic ref evaluation support to plan import
Replace self.opt() when looking for debug/verbose/quiet setting
Reimplement the `ReportPortal` plugin using API
Make `Step` class own export of step data (#2040)
Make relevancy/coverage linters to not re-read fmf files
Add a single `tmpdir` fixture for all Python versions
Replace named tuples with data classes
Replace `/` in safe name, and fix prepare step to use safe names
Do not export fmf id's ref when it's the default branch
Move the sync libraries into a separate section
Allow running next plan in queue when one fails to complete
Fix a too strict check for the detected library
Convert provision plugins' step data to our field implementation
Convert execute plugins to `tmt.utils.field()` for options
Cache that beakerlib/library repo is missing
Use code-block directive for examples and code blocks
Add the `show()` method for guest data packages
Turn fmf context into a fancy dict
Enable ruff checks for mutable dataclass field defaults
Create option metavar from listed choices
Document how to modify imported plans
Recommend needs a different option for `dnf5`
Ask ruff to show what it fixed
Bumps supported Artemis API to 0.0.58
Use `--version` to gather the package_manager fact
Use f-strings where possible
Bump pre-commit hooks to latest version
Fix ruff RUF010: Use f-strings conversion flags
Fix py<38 mypy type:ignore being on wrong line
Move isort to ruff
Enable passing Pylint checks
Fix ruff RSE102: Unnecessary parentheses on exception
Fix ruff PIE: flake8-pie errors
Remove duplicates from ruff rules selection
Fix ruff SIM: flake8-simplify errors
Fix ruff RET: flake8-return errors
Fix ruff PT: flake8-pytest-style errors
Fix ruff UP: pyupgrade errors
Fix ruff N: pep8-naming errors
Fix ruff RUF005: collection-literal-concatenation
Fix ruff B: flake8-bugbear errors
Fix flake8 C405: unnecessary literal set
Fix flake8 C401: unnecessary generator set
Fix flake8 C416: unnecessary comprehension
Fix flake8 C408: unnecessary collection calls
Polarion report set to UTC timezone
Add `Organize Data` as a new tmt guide chapter
Fix emptiness check of /var/tmp/tmt in /tests/status/base
Allow modification of imported plans
Raise error if malformed test metadata is given
Ensure test with empty custom results ends as an ERROR
Fix /tests/status/base when /var/tmp/tmt is empty
Remove `pytest.ini` from the `Makefile` targets
Bad source path for local libraries file require
Remove useless loop.cycle() from the HTML report
Implement basic filtering for the HTML report
Cleanup of "logging function" types
Do not patch verbosity in discover for --fmf-id
Drop enum from HW hypervisor and boot method constraints
Fix enforcement of workdir root in full workdir root test
Narrow type of file & library dependencies
Make web-link test play nicely with custom SSH host config
Use serialization callbacks for last script fields
Save click context in click context object
Add the `envvar` argument to `utils.field()`
Improve structure of the packit config a bit
Update release instructions with simplified steps
Sync changelog when creating downstream release
|
2023-06-09 |
Revert the `Source0` url to the original value
Use correct url for the release archive, fix docs
|
2023-06-07 |
Do not display guest facts when showing a plan
Add new guide/summary for multihost testing
Define a "plugin registry" class
Hide `facts` in the `virtual` provision plugin
Cache resolved linters
Improve documentation of lint checks (#2089)
A custom wrapper for options instead of click.option()
Identify incorrect subcommand after a correct one
Remove one extra space between @ and decorator name
Assign envvars to Polarion report arguments
Expose "key address" to normalization callbacks (#1869)
Move export of special test/plan/story fields to their respective classes
Expose guest topology to tests and scripts (#2072)
Enable building downstream release using Packit
Add sections for environment variable groups
Add default envvar to plugin options
Load env TMT_WORKDIR_ROOT when running tmt status (#2087)
Opportunistically use "selectable" entry_points.
Explicitly convert tmpdir to str in test_utils.py.
Move pytest.ini contents to pyproject.toml.
Expose fmf ID of tests in results
Use the `tmt-lint` pre-commit hook
Turn finish step implementation to queue-based one (#2110)
Convert base classes to data classes (#2080)
Crashed prepare and execute steps propagate all causes
Support exceptions with multiple causes
Make "needs sudo" a guest fact (#2096)
Test data path must use safe guest/test names
Support for multi case import from Polarion and Polarion as only source (#2084)
Fix search function in docs
Make tmt test wrapper name unique to avoid race conditions
Change link-polarion argument default to false
Add export plugin for JSON (#2058)
Handle el6 as a legacy os too in virtual provision
Hint beakerlib is old when result parsing fails
Revert "Fix dry mode handling when running a remote plan"
Set a new dict instance to the Plan class
Replaces "common" object with logger in method hint logging
Parallelize prepare and execute steps
Formalizing guest "facts" storage
Support urllib3 2.x and its allowed_methods/method_whitelist
Require setuptools
|
2023-05-11 |
Add `Artemis` to the `provision` documentation
Add artemis's user defined watchdog specification
Add support for require of files and directories
Expose test serial number as an environment variable
Print only failed objects when linting in hook
Refactored metadata linting
Request newer os image and python version for docs
Explore all available plugins only once
Add test start/end timestamps into results
Implement `deprecated` for obsoleted options
Unify results examples in test and plan specification
Convert gitlab private namespace into dist-git url
Shorter Nitrate summary name
Correct the path of Ansible playbook
Refactor logging during plugin discovery, using tmt's logging
Improve names and docs around CLI context in Common classes
Fix ruamel.yaml type waivers that mypy sometimes ignores
Drop some no longer valid TODO comments
Replace '--t' by '-t' when creating a new plan with template
Add a new cpu property `flag` to the hardware spec
Fix duplicate export for Polarion hyperlinks
Option to list locally cached images for testcloud
Log out testcloud version in virtual provision
Use yq instead of grep when testing YAML content
Don't use specific addresses in virtual provision
Polish workdir pruning - pathlib transition & logging
Support for fuzzy matching subcommand
Add new link relation `test-script` definition
Remove `group` from the `multihost` specification
Move "show exception" code to utils
Add missing support for 0.0.55 and 0.0.48 API
Add type annotations to tmt.steps.STEPS/ACTIONS
Support logging "topics" to allow lower unnecessary verbosity
Add support for right-padding of logging labels
Move tools config to `pyproject.toml`, add Ruff
Example to parametrize test selection via envars
Merge run_command() and _run_command() into Command.run()
Install beakerlib into images used in test/full
Don't run `ShellCheck` on tests & decrease severity
Support multiline strings for option help texts
Fix tests run only in full testsuite
|