Skip to content

Releases: teemtee/tmt

1.31.0 parallel provisioning, zcrypt, reboot timeout, reduced prepare requirements,...

06 Feb 19:16
fdb16ba
Compare
Choose a tag to compare

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 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

tmt try, custom templates, container network...

11 Dec 20:17
Compare
Choose a tag to compare

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 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)

Source plan environment; become; show `check` results; dist-git-download-only; test directory pruning

06 Nov 19:51
Compare
Choose a tag to compare

Highlights

  • 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 hardware schema for GPU
  • Add device key into the hardware specification
  • Extend tmt-reboot to allow reboot from outside of the test process
  • Show check results in the html 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 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
  • 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 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

Include man page in the pypi tarbal

11 Oct 15:02
Compare
Choose a tag to compare
  • Build man page during the release action

Adjust spec file to fix packit integration

11 Oct 13:04
Compare
Choose a tag to compare
  • Remove the .dev0 suffix from the spec Version

New --update-missing option for steps, avc check, html report improvements...

10 Oct 21:05
Compare
Choose a tag to compare

Highlights

  • New --update-missing option to update phase fields only when not set by fmf
  • Add context and link to data into the html report
  • Introduce avc denials check for tests
  • Add nice & colorfull help to make targets
  • Use hatch and pyproject, refactor tmt.spec
  • Add skip as a supported custom result outcome
  • Handle all context dimension values case insensitive

Full Changelog

  • 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 & 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 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

Insert, update steps from command line, link issues when creating tests, dynamic ref for libraries...

07 Sep 09:32
Compare
Choose a tag to compare

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 to plan 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 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

1.26.1

01 Sep 18:39
Compare
Choose a tag to compare

Hotfix containing single patch:

  • Rewrite git url for discover fmf: modified-only

polarion template option; git clone credential and rewrite; rendering traceback

31 Jul 19:21
Compare
Choose a tag to compare

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 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

Beakerlib pruning and merge; dynamic ref evaluation support to plan import; Reimplement the `ReportPortal` plugin

10 Jul 13:13
Compare
Choose a tag to compare

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 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