Releases: teemtee/tmt
Releases · teemtee/tmt
Remote playbooks in prepare; Common attributes extended; Nested root warning
Main improvements and fixes:
- Error out if reboot timeout is exceeded
- Initialize workdir thread-safe
- Add support for remote playbooks in prepare
- Print escaped command suitable for manual debugging
- Less eager to disable nitrate case during export
- Move
tag
andtier
to common core attributes - Hint user if 'tmt init' creates nested root
Whole change log:
- Unify Polarion case searching
- Error out if reboot timeout is exceeded
- Initialize workdir thread-safe
- Add support for remote playbooks in prepare
- Add plan schema for errata and minute plugins
- Correct rhts command names in stories file
- Print escaped command suitable for manual debugging
- Fix report plugin not getting arguments from fmf file
- Less eager to disable nitrate case during export
- Move
tag
andtier
to common core attributes - Use
/bin/bash
instead of/bin/sh
for execute - Reorder step and their base plugin classes
- Fix prepare/multihost docs to match implementation
- Teach schema validation tests to peek into other trees
- Clarify motivation for creating
id
during export - Add link-polarion option and fix link searching bug
- Ignore race in last-run symlink creation
- Fix polarion tcmscaseid search
- Force order of clean operations
- Convert status/clean argument to option
- Report enabled plans/tests/stories via option
- Hint user if 'tmt init' creates nested root
- Require
libvirt-daemon-config-network
as well - Add type annotation for /steps/prepare/install.py
- Encapsulate created file within script's dataclass
- Adds normalization layer to base classes based on fmf
- Fixes data class used for local guest creation
- Fixes Artemis guest data class link
- Making tests/full more usable
- Add typing for tmt/steps/provision/podman.py
- Add typing for tmt/steps/provision/testcloud.py
- Add typing for tmt/steps/provision/local.py
- Remove unused keys parameter from wake() methods
- Adds types describing tmt constructs when as stored in raw fmf data
- Typing /steps/provision/connect.py
- Allow raising an exception on validation errors
- Inject logger object to base node classes inheritance
- Fixes use of SSH keys in testcloud and connect plugins
- Annotate tmt.steps.provision
- Ask mypy to show error codes in its messages
- Testcloud expects disk and memory to be int
- Do not inherit classes from object
- Use keyword-only init in base fmf-backed classes
- Use decorator to register plugin methods
- Demonstrate inheritance on a virtual test example
- Add a simple hint how to write user messages
- Add typing for
steps/finish/ansible.py
- Remove unneeded parameters for step load/save (#1428)
- Normalize step data to be always stored a list internally
- Display test/plan/story name in parametrized schema tests
- Allow numbers and booleans to be values of environment
- Give a reasonable error for old data format
- Add typing for tmt/steps/finish/init.py
- add typing for steps/discover/shell.py
- Adds a fmf node validation layer to core classes (Test/Plan/Story)
- Add missing keys
role
andwhere
to schemas - Extend plan schema with all known step plugin schemas
- Correcting rhts aliases & adding rhts opt.
- Adds a generic "wait for condition" primitive
- Disallow push/pull/execute if guest is unavailable
- Rename "default how" step attribute to enhance its visibility
- Use textwrap.dedent() to unindent docstrings
Reboot timeout and reconnect improvements; polarion report; library recursion
Main improvements and fixes:
- Backwards compatibility for
rstrnt-abort
,rstrnt-report-log
andrstrnt-report-result
. - Package installation using
rpm-ostree
. - Polarion report plugin.
- Implement reboot reconnect timeout configuration and make sure machine was rebooted before reconnect.
- Cut circular dependency of libraries.
- Print result for
execute -v
. - Fixing the directory name escaping in 'cd' command.
- Precommit hooks to call tmt * lint
Whole change log:
- Reboot has to check for boot time
- Fix path inside pre-commit test
- Cut circular dependency of libraries
- Update 'Develop' section of contribution docs
- Precommit hooks to call tmt * lint
- Schema loading helpers
- Package schemas in subdirectories too
- Implement reboot reconnect timeout configuration
- Add missing report specifications/docs
- Print result for execute -v
- Correct import assumption about script
- Ask mypy to check whole tmt.steps.report package
- Fixing the directory name escaping in 'cd' command
- Add polarion report plugin
- Add schemas for plans
- Write extra-nitrate as soon as possible
- Retry git clone without --depth=1 if it failed
- Support to lint attribute 'id'
- Do not apply test command filter in upgrade
- Fix export.py typing issues
- Refactor location and signature of Phase's go() method
- Simplify abort handling
- Backwards compatibility for rstrnt-abort
- Add type annotations for tmt/cli.py
- Add typing for tmt/export.py
- add typing for steps/discover/init.py
- Convert guest implementations to use serializable container for load/save
- Detect plugins by entry_point as well
- Add typing for
steps/execute/__init__.py
- Add typing for
tmt/convert.py
- Remove duplicated dist-git-source/dist-git-type
- Add typing for
steps/report/junit.py
- Add typing for
steps/report/html.py
- add typing for steps/report/display.py
- Add typing for steps/report/init.py
- tmt-file-submit is a bash script
- Add type annotations for tmt/options.py
- Backwards compatibility for
rstrnt-report-log
- Support conditional requires with
pip
as well - Remove duplicated short option in tmt lint
- Adjust the
rstrnt-report-result
implementation - Backwards compatibility for
rstrnt-report-result
- Set the
1777
permision for/var/tmp/tmt
- Adjust the fix for the
rpm-ostree
intallation - Fix package installation using
rpm-ostree
- Handle empty fmf file as an empty dictionary
- Fix distgit testsuite after tmt packaging change
CoreOS support, typing, result attribute, polarion export
Highlights
- Initial polarion support for test export
- Add CoreOS support to the testcloud provision
- Add support for the
rpm-ostree
package manager - Implement the test
result
attribute
Full changelog
- Require fresh testcloud with coreos support
- Bad substitution in tmt-reboot
- Ignore "certificate verify failed" error when handling retries
- Cache content of each loaded environment file
- Initial polarion support for test export
- Fixes names of Artemis API versions
- Convert FmfIdType from TypedDict to a dataclass
- Add CoreOS support to the testcloud provision
- Run containers with root user
- Retry getting environment file
- Test import --general is default now
- Add typing for steps/finish/shell.py
- Enhance tmt.utils.retry_session with timeout support
- Adjust the
rpm-ostree
install implementation - Add support for the
rpm-ostree
package manager - Add
environment-file
to possible Plan keys - Avoid Library url conflict if repo doesn't exist
- Check changes are pushed before export nitrate
- Add typing for beakerlib.py
- Unbundle template from the report.html plugin
- Rename
uuid
toidentifier
to prevent conflicts - Use
must
for all mandatory spec requirements - Fail import for packages starting with minus sign
- Adds support for newer Artemis API versions
- Disable the extra verbose progress in testcloud
- Refactor internal executor scripts
- Adds "missing" imports to help IDEs follow objects
- Add typing for steps/init.py
- Implement the test
result
attribute - Add typing for plugins/init.py
- Detect legacy relevancy during import as well
- Implement the new user story key
priority
- Implement new class
SerializableContainer
- Add schema for stories
- Add typing for steps/prepare/shell.py
- Add typing for steps/prepare/ansible.py
- Require fmf >= 1.1.0 (we need validation support)
- Package fmf root into the source tarball as well
- Add JSON Schema for tests
- Exclude namespaced backup in beakerlib
- Use --depth=1 when cloning git repos by default
- Handle missing nitrate user during export
- Removes unused GuestContainer.container_id attribute
- Every subpackage must require the main tmt package
- Introduce dataclasses as a requirement
- Avoid re-using image/instance for different values by testcloud plugin
- Add typing for multihost.py
- Except nitrate xmlrpc issues during import
- Exclude beakerlib's backup dir from guest.pull()
- Increase
duration
for the reboot-related tests - Several release-related tests and docs adjustments
Upgrade plugin, improved discover, identifiers...
Highlights
- Implement upgrade execute plugin
- Dist-git-source for Discover (fmf, shell)
- Add a new core key
id
for unique identifiers
Full Changelog
- Command 'tmt clean' should not run rsync at all
- Dist-git-source for Discover (fmf, shell)
- Adjust the new
id
key implementation - Add a new core key
id
for unique identifiers - Recommend qemu emulators for other architectures
- Copy the whole git repo only if necessary
- Reveal hidden errors during
testcloud
booting - Use time for timeout handling in Guest.reconnect()
- Split
Guest
class to separate SSH-capable guests - Explicitly set the docs language in the config
- Kill the running test when rebooting
- Extend the reboot timeout to allow system upgrades
- Allow selecting tasks directly from upgrade config
- Adjust the new
upgrade
execute plugin - Allow specifying command for reboot
- Implement upgrade execute plugin
- Buildrequire python3-docutils, append plan adjust
- Implement
tmt tests export --nitrate --link-runs
- Detect component from general plan during import
- Adjust the support for steps in standalone mode
- Add results method to ExecutePlugin
- Implement a common ancestor for Action and Plugin
- Allow abstractly excluding steps from runs
- Correctly handle tests --name '.' shortcut
- Rename WorkdirType to WorkdirArgumentType
- Fix workdir parameter type for tmt.utils.Common
- Allows importing jira issues as link-relates
- Enables mypy coverage for empty-ish Python files
- Adds type annotations to tmt.templates
- Prevent infinite recursion if --id is set
- Enable mypy check for Artemis provision plugin
- Adjust provision dry mode propagation, add a test
- Introduce new _options attribute to Common class
- Add specification for remote plans referencing
- Bootstrap type annotations
- Execute script should not be used with discover
- Add the
arch
key to the hardware specification - Fix pip install instructions
- Disable network access when building in copr
- Ignore list for dist-git-source
- Remove the obsoleted
detach
execute method - Fix login during
execute
andprepare
step - Import from Makefile with missing build target
Multiarch testcloud, artemis provision, test export improvements...
- Add multiarch support to testcloud provision
- Consistent summary for test export --nitrate
- Allow dry mode for tests export --nitrate
- Add a nice provisioning progress to Artemis plugin
- Add support for the
where
keyword toexecute
- Adjust support for export of multiple tests
- Add support for exporting multiple tests
- Basic multihost test for the httpd web server
- Update multihost specification with guest groups
- Add a provision plugin for Artemis
- Fix exclude option in fmf discover
- Reduce the number of execute calls for reboot
- Add support for reboot in interactive mode
Plan export, exclude search, import restraint metadata...
Highlights
- New feature: tmt plan export
- Add --exclude search option
- Allow import from restraint's metadata file (#1043)
- Add a command to setup shell completions
- Option to export fmf-id from run discover -h fmf
- Story.example can hold list of strings
Full changelog
- Add a command to setup shell completions
- Use /tmp instead of /run/user/ if not available
- Use separate examples in the test specification
- Add more story examples, simplify examples export
- Story.example can hold list of strings
- Fix traceback when connect plugin is used without hostname.
- Adjust disabled shell expansion in Common.run()
- Disable shell expansion in Common.run() by default
- Build
epel9
packages, update install docs - Adjust the full test wrapper and document it
- Test which compiles tmt and runs its testsuite
- Add --exclude search option
- Correct regex for require read from metadata file
- Update document for creating virtual environment
- Option to export fmf-id from run discover -h fmf
- Allow import from restraint's metadata file (#1043)
- Do not disable building for power arch on Fedora
- Update documentation for plan parametrization
- Make .vscode ignored by git
- Drops basestring and unicode built-ins from utils
- Fix timeout behaviour in testcloud plugin
- Fixes possible test of None-ish CWD when running a command
- Remove workdir only when its defined
- Adjust the new
tmt plan export
feature - New feature: tmt plan export
Order key, multihost provision & prepare, rsync handling...
- Prevent koji build failures on unsupported arches
- Check remote git URL if it is accessible
- Implement a generic
requires
for all plugins - Run commands in podman provision via bash
- Adjust implementation of the new
order
attribute - Implement the Core attribute
order
- Fix link generation in report.html
- Improve step name handling
- Enable shared volume mounts in podman provision
- Add support for multihost provision and prepare
- Adjust the dnf support for rsync install
- Add dnf support for rsync install
- Update links and refs after migration to
teemtee
- Track output for reboot purposes on per-test basis
- Fix test --name '.' used with multiple plans
- Tweak test suite (duration, centos:8, datadir)
- Use
os.pathsep
to separateTMT_PLUGINS
paths (#1049) - Document framework:shell exit codes
- Add
html2text
to theconvert
pip dependencies
Storing logs, ssh multiplexing, support r/o file systems, ...
Highlights
- Add support for ssh multiplexing
- Ignore read/only file systems reboot script errors
- Handle rsync installation on read-only distros
- Minor modification of test result specification
- Implement variables for storing logs and artifacts
Full Changelog
- Make reboot support a bit more backward compatible
- Ensure that workdir has a correct selinux context
- Use
centos:stream8
image instead ofcentos:8
- Disable X11 forwarding in ssh connections
- Fix traceback for login after last report
- Use
TMT_TEST_DATA
as location forrlFileSubmit
- Implement variables for storing logs and artifacts
- Adjust rsync installation on read-only distros
- Handle rsync installation on read-only distros
- Add hardware specification for hostname
- Correctly import multiple bugs from Makefile
- Remove dependency on the
python3-mock
package - Adjust linting of manual test files
- Check Markdown files in tmt lint if
manual=True
- Adjust pulling logs from the guest during finish
- Add guest.pull() to the finish step
- Update virtualization hints for session connection
- Improve error message for empty git repositories
- Minor modification of test result specification
- Use
where
instead ofon
in the multihost spec - Clarify that
path
is defined from the tree root - Adjust ansible requires for containers preparation
- Move the reboot scripts to a read/write directory
- Ignore read/only file systems reboot script errors
- Require either ansible or ansible-core
- Set the
TMT_TREE
variable during test execution - Clarify that 'until' means until and including
- Update test debugging examples with --force option
- Add
bios.method
to hardware spec - Improve environment variables specification a bit
- Adjust the ssh connection multiplexing
- Add support for ssh multiplexing
Discover from source, filter by link, submit files...
Highligts
- Discover tmt tests from sources
- Allow to pick objects by --link
- Add support for Beakerlib's rlFileSubmit
- Enable duplicate test names and preserve ordering
- Ansible plugin for Finish step
- Allow to specify session type (system/session)
Full Changelog
- Improve testcloud/virtual provider docs
- Disable UseDNS, GSSAPI for faster SSH in testcloud
- Use
extra-args
attr for ansible-playbook - Fix el7 provision in testcloud user session
- Adjust the instructions for migrating from STI
- Document how to migrate tests from STI to tmt
- Allow to pick objects by --link
- Generate ecdsa key in testcloud
- Simplify plugin keys handling in wake() and show()
- Add support for Beakerlib's rlFileSubmit
- Revert requiring exact beakerlib version
- Dist git source can contain multiple files
- Symlink worktree for discovered shell tests
- Read environment variables from options only once
- Correctly handle empty environment files
- Use distro values from context for dist-git type
- Make tests --name to just prune discovered tests
- Enable duplicate test names and preserve ordering
- Require beakerlib-1.28 for beakerlib tests
- Adjust the dist git source discover implementation
- Discover tmt tests from sources
- Reenable plans/install/docs
- Correct the
playbook
attribute in the spec (#948) - Ansible plugin for Finish step
- Thread processing of executed commands inside tmt
- Adjust
tmt test lint
test for old yaml format - Canonical name for centos-stream in dimension
- Remove obsoleted conditionals from the spec file
- Use a fresh sphinx when building the readthedocs
- Allow to specify session type (system/session)
- Package tmt.plugins to store arbitrary plugins
- Ignore ssh connection closed during reboot
- Improve error message for the missing step name
- Document how to integrate tests with other tools
- Use the recommended format of the copyright notice
- Update notes about the release process
- Update the hardware specification with new keys
Reboot, exit after first failure, force,
- Add support for reboot in a reused provision
- Solve the reboot race condition
- Adjust the current git remote improvement
- Use current git remote for url in fmf-id
- Implement option to exit after first failure
- Clarify and update spec for the discover step
- Adjust the multihost test specification
- Add the multihost testing specification
- Make run --force behave more expectably
- Increase duration for tests using containers
- Rename soon-to-be deprecated resultcallback
- Remove the minute.obsolete provision plugin
- Document how to create a new minor/major release
- Explicitly mention '.' as special value for names
- Add Github Action for PyPI releases
- Improve fetching remote environment files
- Adjust the check for rsync before pull and push
- Install
rsync
before guest.pull() - Second chapter of the Guide: Under The Hood
- Simplify the search for step method options
- Produce better errors for unsupported plugins
- Add more ignored files, categorize gitignore more
- Extend .gitignore with a few more common patterns
- Export fields of a case should be checked by lint
- Adjust the bugzilla support in test export
- Test export can link case to bugzilla
- Document the support for
open
key in html report - Allow html report to be opened by plan
- Require essential packages for tmt testing
- Skip the docs test until the Sphinx issue is fixed