Releases: teemtee/tmt
Releases · teemtee/tmt
1.31.0 parallel provisioning, zcrypt, reboot timeout, reduced prepare requirements,...
See the release notes for the list of interesting changes.
- 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 themultidict
issue onrawhide
- 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 intmt try
- Run tests with
interactive
mode duringtmt 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 containsCall Trace
orsegfault
- 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 defaulthow
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
forprovision-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
inmrack
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
withpyright
checks - Parallelize the
provision
step - Let
click
know about the maximal output width - Cover
tmt.identifier
withpyright
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 ofself.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 fortmt
- Enable the
avc
check for alltmt
tests - Fix dmesg check test on Fedora rawhide & newer
tmt try, custom templates, container network...
See the release notes for the list of interesting changes.
- 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
tohow
in test check specification (#2527) - Link
inheritance
andelasticity
from the guide - Add the
fips
field for thepolarion
report - Cover
tmt.cli
withpyright
(#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 theCore
class - Bump tmt in lint pre-commit check to 1.29.0
- Add Python 3.12 to the test matrix
- Move
mrack
configs intotmt+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 apre-commit
check - Add a helper for nonconflicting, multihost-safe filenames
- Add the
whiteboard
option forbeaker
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 thedistgit
test (#2463)
Source plan environment; become; show `check` results; dist-git-download-only; test directory pruning
Highlights
- Add support for pruning test directories
- Download all sources for
dist-git-source
- Source plan environment variables after
prepare
andexecute
steps - Framework is not consulted on results provided by tmt-report-result
- Run scripts with
sudo
whenbecome
is on - Add hardware schema for GPU
- Add
device
key into thehardware
specification - Extend tmt-reboot to allow reboot from outside of the test process
- Show
check
results in thehtml
report - Update
where
implementation, docs & test coverage
Full Changelog
- 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
andexecute
steps - Framework is not consulted on results provided by tmt-report-result
- Run scripts with
sudo
whenbecome
is on - Add
retry
for pulling images in thepodman
plugin - Add hardware schema for GPU
- Change the default test pidfile directory to
/var/tmp
- Add
device
key into thehardware
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 intodocs/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 thehtml
report - Update
where
implementation, docs & test coverage - 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
- 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 usingfmf.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
Include man page in the pypi tarbal
- Build man page during the
release
action
Adjust spec file to fix packit integration
- Remove the
.dev0
suffix from the specVersion
New --update-missing option for steps, avc check, html report improvements...
Highlights
- New
--update-missing
option to update phase fields only when not set by fmf - Add
context
and link todata
into thehtml
report - Introduce
avc
denials check for tests - Add nice & colorfull help to
make
targets - Use
hatch
andpyproject
, refactortmt.spec
- Add
skip
as a supported custom result outcome - Handle all context dimension values case insensitive
Full Changelog
- Update the
release
action withhatch
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
fromtmt 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
propertystepping
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 & colorfull 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
andpyproject
, refactortmt.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 ofpprint()
- 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
withimportlib.resources
- Wrap
click.Choice
use withchoices
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
Insert, update steps from command line, link issues when creating tests, dynamic ref for libraries...
Highlights
- Allow inserting and updating steps from the command line
- Support linking relevant issues in
tmt test create
- Add dynamic ref support to library type dependency
- Make
tmt init
add.fmf
directory into git index - Add
--environment
support toplan show/export
- Bootstrap before/after test checks (#2210)
Full Changelog
- 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 tof-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
usingpip
- 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
andpython-3.6
specifics - Use the latest
sphinx-rtd-theme
for docs building - Full
pip install
expected to fail onRawhide
- 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
1.26.1
Hotfix containing single patch:
- Rewrite git url for discover fmf: modified-only
polarion template option; git clone credential and rewrite; rendering traceback
Highlights
- Allow injecting credentials for git clone
- Rewrite url in git_clone
- Add support for rendering error tracebacks
- ReST export plugin should accept --template option
- Add template option to polarion report
- Refine examples of plans > discover > fmf
Full Changelog
- 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
- 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
fromBuildRequires
- 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
Beakerlib pruning and merge; dynamic ref evaluation support to plan import; Reimplement the `ReportPortal` plugin
Highlights
- Beakerlibs pruning and merge
- Add dynamic ref evaluation support to plan import
- Reimplement the
ReportPortal
plugin using API - Recommend needs a different option for
dnf5
Full Changelog
- Test for pruning needs VM
- Internal anonymous git:// access is deprecated
- Add tests and some modifications after rebases
- Clone to tmp and use fmf.Tree.find instead of looping
- Add clone_dirpath to Common
- Fix bad usage of path and name
- Fix multiple clones and inherited fmf metadata
- 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 theMakefile
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 toutils.field()
- Improve structure of the packit config a bit
- Update release instructions with simplified steps
- Sync changelog when creating downstream release