Skip to content

Releases: teemtee/tmt

Remote playbooks in prepare; Common attributes extended; Nested root warning

06 Sep 08:18
Compare
Choose a tag to compare

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 and tier 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 and tier 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 and where 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

04 Aug 07:00
Compare
Choose a tag to compare

Main improvements and fixes:

  • Backwards compatibility for rstrnt-abort, rstrnt-report-log and rstrnt-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

02 Jul 19:18
Compare
Choose a tag to compare

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 to identifier 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...

07 Jun 12:34
Compare
Choose a tag to compare

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 and prepare step
  • Import from Makefile with missing build target

Multiarch testcloud, artemis provision, test export improvements...

02 May 17:54
Compare
Choose a tag to compare
  • 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 to execute
  • 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...

05 Apr 12:36
Compare
Choose a tag to compare

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

02 Mar 14:39
Compare
Choose a tag to compare
  • 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 separate TMT_PLUGINS paths (#1049)
  • Document framework:shell exit codes
  • Add html2text to the convert pip dependencies

Storing logs, ssh multiplexing, support r/o file systems, ...

02 Feb 08:36
Compare
Choose a tag to compare

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 of centos:8
  • Disable X11 forwarding in ssh connections
  • Fix traceback for login after last report
  • Use TMT_TEST_DATA as location for rlFileSubmit
  • 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 of on 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...

01 Dec 13:22
Compare
Choose a tag to compare

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,

30 Sep 14:23
Compare
Choose a tag to compare
  • 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