Changelog |
* Fri Dec 08 2023 Petr Šplíchal <psplicha@redhat.com> - 1.30.0
- 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)
* Mon Nov 06 2023 Lukáš Zachar <lzachar@redhat.com> - 1.29.0
- 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
* Wed Oct 11 2023 Petr Šplíchal <psplicha@redhat.com> - 1.28.2
- Build man page during the `release` action
* Wed Oct 11 2023 Petr Šplíchal <psplicha@redhat.com> - 1.28.1
- Remove the `.dev0` suffix from the spec `Version`
* Fri Oct 06 2023 Petr Šplíchal <psplicha@redhat.com> - 1.28.0
- 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
* Wed Sep 06 2023 Petr Šplíchal <psplicha@redhat.com> - 1.27.0-1
- 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
* Mon Jul 31 2023 Lukáš Zachar <lzachar@redhat.com> - 1.26.0
- 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`
* Mon Jul 10 2023 Lukáš Zachar <lzachar@redhat.com> - 1.25.0
- 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
* Fri Jun 09 2023 Petr Šplíchal <psplicha@redhat.com> - 1.24.1-1
- Revert the `Source0` url to the original value
- Use correct url for the release archive, fix docs
* Wed Jun 07 2023 Petr Šplíchal <psplicha@redhat.com> - 1.24.0-1
- 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.
- Rename Require* classes to Dependency* (#2099)
- 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
* Thu May 11 2023 Lukáš Zachar <lzachar@redhat.com> - 1.23.0-1
- 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
* Fri Apr 14 2023 Petr Šplíchal <psplicha@redhat.com> - 1.22.0-1
- Change help text of the `tmt --root` option
- Add support for `results.json` in custom results
- Proper support for the test `duration` format
- Prepend '/' to custom test result name if missing
- Document necessary packages for pip install on Ubuntu
- Tag cloud resources to `tmt` in Testing Farm
- Display guest multihost name even in dry run (#1982)
- Pass the `arch` option to the Beaker provider
- Use `job-id` instead of `guestname` in Beaker class
- Adjust the fix for the default branch handling
- Add support to get `ref` under the git worktree
- Fix dry mode handling when running a remote plan
- Enable the external `polarion` plugin tests
- Extract "run a command" functionality into a stand-alone helper
- Increase minimal severity of `ShellCheck` defects
- Display guest full name in `display` plugin report
- Push using `sudo rsync` when necessary
- Avoid warning from installing tmt as pre-commit
- Add test checking repeated test execution results
- Freeze the `yq` version to fix `el8` installation
- Update the `CODEOWNERS` file with more granularity
- Document current workaround for running scripts
- Install `beakerlib` before the `ShellCheck`
- Rename `Guest.full_name` to `Guest.multihost_name`
- Display guest full name in `html` plugin report
- Add test for template-based export plugin
- Add `kickstart` to the `artemis` provision plugin
- Extract just tar files in dist-git-source
- Add missing fields to custom results test
- Add shell linter `Differential ShellCheck`
- Always try to run dhclient in cloud-init in virtual provision
- Fix polarion report pruning and add or fix arguments
- Run `chcon` only if SELinux fs supported
- Require `beaker` provision in `tmt-all`
- Adjust the new `mrack` plugin spec, test and plan
- Add `beaker` provision plugin using `mrack`
- Adjust pip install to always upgrade to the latest
- Move `testcloud` url guessing logic out of `tmt`
- Hotfix Ubuntu with virtual provision
- Detect correct category when export to nitrate
- Add an entrypoint for interactive `tmt` sessions
- Fix internal handling of the `where` key
- Move logging labels to the beginning of lines
- Refactor CLI error reporting to improve readability
- Remove no longer needed cast around our custom Click context
- Display guest full name when showing its details
- Add `kickstart` section as a new specification key
- Add more controls for output colorization
- Rephrase `results.yaml` documentation and examples
- Fix `get_bootstrap_logger` name and docstring typo
- Expose guest info in results
- Enable `root` login and disable default `core` for rhcos
- Sanitize plan/test/story names before filtering
- Set default user `core` for rhcos in testcloud
- Remove no longer used "err" parameter of logging methods
- testcloud: Raise default limits
- Update log key content of results.yaml examples (#1834)
- Include guest name in execute phase data paths
- Adds "bootstrap logger" for logging before CLI options are recognized (#1839)
- Export `TMT_TEST_NAME` and `TMT_TEST_METADATA` (#1888)
- List supported operators in hardware requirement docs (#1867)
- Build tmt usable in inner guests for tests/full
- Target test-complement for tests/full
- Tag tests which are affected by how=full
- Use PROVISION_METHODS in tests
- Report individual test results in tests/full
- Use Require* classes for collection & installation of plugin requirements (#1766)
- Disable tracebacks if default branch is not found
- Assign a data path and serial number to each test in discover (#1876)
- Convert log path for results:custom
- Allow report result for itself in results:custom
- Support to import Makefile having '\\\n'
- Require `pylero` for the `polarion` subpackage
- Fix forgotten guest when Artemis provisioning times out
- Turn `tests.yaml` into a list of tests
- Simplify the `Result` class implementation
- Use `Path` instead of `os.path` in export code
- Use `Path` when working with logfile path
- Fix use of old `os.path.symlink()` in discover/shell
- Add /root/.local/bin to PATH on Centos Stream 8 in CI
- Install jq/yq for more readable tests in tmt test suite
- Fix Common class ignoring other branches of multiple inheritance tree
- Use Path instead of os.path in prepare/install plugin
- Convert path-like strings to `pathlib.Path` objects
- Change `Plugin.go()` to accept logger and extra environment
- Artemis API version may contain multiple integers
- Add logging `labels` used for prefixing messages
- Adds "full name" guest property for multihost logging
* Fri Feb 03 2023 Lukáš Zachar <lzachar@redhat.com> - 1.21.0-1
- Fix tmt-reboot without custom command
- Fix test /discover/libraries
- Add serialization callbacks to data class fields
- Use own private key for `provision.virtual`
- Adds a template-backed export plugin
- Polarion export fix component upload bug and upload id first
- Convert story ReST export to use a Jinja2 template
- Convert export-related code to plugins per format
- Do not clone the whole remote plan in dry mode
- Hardcode tmt git URL so test won't fail for PRs
- Add py.typed marker for 3rd party type annotations
- Fixes isort 5.10.1 installation issue
- Improve logging by `tmt.utils.wait()`
- Check packages are installed via debuginfo-install
- Always ignore failures for recommended packages
- Merge report plugins options into step data fields
- Dynamically find the current Fedora release
- Suggest using a pull request checklist template
- Include a simple Python code among the examples
- Apply normalization callback when updating data with CLI input
- Bump pre-commit linters - Flake8, Mypy, JSON schema, YAML lint & pygrep
- Use base implementation of provision plugin requirements
- Relay 'interactive' value for podman call
- Update Fedora versions in `upgrade` tests
- Apply `ShellScript` for the custom reboot command
- Update the `shell` discover specification
- Enable to sync git repo to SUT in `shell` discover
- Increase the default `utils.format()` indent a bit
- Define pull request Copr build job in Packit config
- Decouple logging from objects and base classes
- Enable `url` and `ref` as `shell` discover options
- Export `TMT_TREE` in other steps as well
- Add a new key `system` to the `hardware` spec
- Remove default for the dynamic `ref` evaluation
- Schema update and test for order in discover step
- Merge report plugins options into step data fields
- Add a test for hardware schema coverage
- Better type annotations of prepare/install scripts
- Move `jinja2` require to the main `tmt` package
- Define the new context dimension `initiator`
- Respect `TMT_WORKDIR_ROOT` variable in `testcloud`
- Annotate commands, command line elements and shell scripts
- Adjust the `reportportal` plugin implementation
- Implement the `reportportal` report plugin
- Require the latest `testcloud` package
- Define `srpm_build_deps` in the packit config
- Include the new web link in verbose `show` mode
- Add a clickable web link to test to polarion export
- Enhance `Links` to allow checking for any links at all
- Drop various guest `wake()` methods in favor of parent class
- Catch `SystemExit` during module discovery
* Thu Dec 08 2022 Lukáš Zachar <lzachar@redhat.com> - 1.20.0-1
- Do not prune `html` and `junit` reports
- Skip extending fmf context if cli context missing
- Connect needs is_ready property as well
- Cover setup.py with pre-commit Python checks
- Do not leak "private" fields into export
- Set guest hostname in testcloud provision
- Capture provision error when login is used
- Support `TMT_WORKDIR_ROOT` environment variable
- Support step data definitions carrying CLI options
- Adds flake8 coverage for bin/ directory
- Prune irrelevant files during the `finish` step
- Add junit plugin schema
- Support to import empty key from Makefile
- Deleting unsed and duplicite part of finish step
- Support absolute paths in HTML reports
- Capture exceptions when getting `image_url`
- Enable verbose output for `provision` & `prepare`
- Add support for Artemis v0.0.47 upcoming release
- Remove unused variables
- Initial support for passing ssh options from cli
- Update specification of the `where` multihost key
- Add a simple test demonstrating the upgrade testing
- Use custom subclass of click.Context for better annotations
- Extend the `duration` for tests using containers
- Change common class constructors to use keyword arguments only
- Make packit build with the next release.dev version
- Add basic test coverage for `tmt story export`
- Fix export of the story `priority` field
- Read source from correct directory if ref is used
* Wed Nov 09 2022 Lukáš Zachar <lzachar@redhat.com> - 1.19.0-1
- Protect args in rsync call
- Set tree root for the default plan tree as well
- Properly set the `tmt` script shebang on `rhel-8`
- Use image exists to check for container image
- Updates docs with example on `adjust` & `prepare+`
- Fix test duration enforcement
- Skip missing debuginfo packages in `recommend`
- Explicitly document extending the plan environment
- Fix ownership of a tmp directory propagated to container
- Support fetching remote repo for `shell` discover
- Fix default `framework`, remove old execution methods
- Add support for Artemis v0.0.46 upcoming release
- Handle an fmf fetch error in remote plan clone
- Do not truncate `RunError` output in verbose mode
- Warn user about data erasing after prepare step
- Formalize `data` package passed to the `Result` class
- Change order of plugin and guest classes in files
- Add `compatible` as a new hardware specification key
- Add `tpm` as a new hardware specification key
- Move the hardware specification into a separate page
- Improve fmf-id processing
- Add test for TTY state in test environment
- Login after each test using the `--test` parameter
- Mention version where important features were added
- Handle dist-git-sources for gitlab
- Fix getting CentOS via --how virtual
- Capture uncaught exceptions when using testcloud
- Update the overview of essential classes
- When following command line --how, do not iterate over step data
- Convert utils' Run unit tests to class-less tests
- Enable variable expansion for dynamic references
- Support beaker libraries as recommended packages
- Add `SpecBasedContainer.to_minimal_spec()` method (#1637)
- Enable context based plan parametrization
- Coverage for tests defined under `discover.shell`
- Fix `/tests/run/shell` access permission problem
- Add step data classes for provisioning and report
- Adjust support for the dynamic `ref` evaluation
- Add support for dynamic `ref` evaluation
- Add a test for fmf id parsing and normalization
- Fix NO_COLOR not being honored by executed command output
- Moves common command options into one place
- Log full chain of exceptions, not just the first cause
- Drop deprecated PluginIndex
- Add message to failure tags in junit report
- Update the pip installation plan
- Remove pointless reimport of tmt.base in discover steps
- Do not use f-string as a docstring
- Fix use of variable before assignment in `Plan.go`
- Fix variable redefinition in `discover/shell.py`
- Fix guest distro detection, do not throw results away
- Fix a typo in `cpu.sockets` hardware requirement
- Make links relative for report html
- Review all uses of `type: ignore` and link relevant issues
- Enhance ClickOptionDecorator type to announce identity
- Update `/tests/execute/upgrade/override` duration
- Review all uses of `Any` and link relevant issues
- Annotate all `cast()` calls with respective issues
- Move the `Result` class into a separate file
- Unblock mypy's follow-import setting
- Use set comprehension instead of list-in-set sequence
- Use `enumerate()` instead of `range(len())`
- Use dict comprehension instead of tuple-in-list-in-dict
- Replace two more list comprehensions with generators
- Replace GeneralError's "origin" with Python's "raise from"
- Fix normalization of the `Plan.context` key
- Adds a missing import to polarion plugin
- Update all linters to their most recent versions
- Define CPU HW components with more granularity
- Adjust the support for importing remote plans
- Add import plan feature and tests
- Add type annotations to `base.py`
- Fix test depending on ordering of elements in junit XML
- Adds type annotations to `tmt` itself
- Remove custom yet same implementation of step's show()
- Make sure `repo_copy` is gone before `make srpm`
* Mon Oct 10 2022 Petr Šplíchal <psplicha@redhat.com> - 1.18.0-1
- Fix recommended packages handling for rpm-ostree
- Add EFI configuration to the `tmt-reboot` script
- Fix adjust for precommit test
- Fix provision for coreos image
- Emit only non-default keys when constructing a test from `execute`
- Add flake8 config file for easier integration with IDEs
- Multiple scripts for CLI prepare -h shell
- Allow mypy to cover the whole tmt.plugins and tmt.steps
- Add typing for `steps/execute/upgrade.py`
- Fix name & default value of polarion's upload field
- Fixes enhancing of environment by local's guest implementation
- Ignore plan -n when searching for upgrade path
- Document & correct use of class conversion methods
- Print fmf tree location when schema unit test fails
- Custom results implementation
- Refactors internal link handling and storage
- Allow mypy to cover whole tmt.steps.prepare
- Add typing for `steps/execute/internal.py`
- Use workdir with safe names without special chars
- Adjust support for installing remote packages
- Support to install package from URL
- Make sure short option '-x' is covered
- Add Polarion as a source for test case import
- Print path to the used ssh identity
- Add typing for `steps/prepare/__init__.py`
- Use generator instead of list comprehension with any/all
- Fixes handling of default of --key in connect plugin
- Update test data for the debuginfo install test
- Add a helper for importing a member from a module
- Fix plan schema to allow custom context dimensions
- Allow mypy to cover whole tmt.steps.discover
- Remove support for the obsoleted `detach` executor
- Add typing for `steps/discover/fmf.py`
- Fix importing for pylero
- Allow mypy to cover whole tmt.steps.provision
- Replace blank "type: ignore" with more specific waivers
- Use the `SerializableContainer` for plugins' data
- Enhance SerializableContainer with default key value inspection
- Moves validation and normalization mixins to utils
* Mon Sep 05 2022 Lukáš Zachar <lzachar@redhat.com> - 1.17.0-1
- 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
* Wed Aug 03 2022 Lukáš Zachar <lzachar@redhat.com> - 1.16.0-1
- 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
* Sat Jul 02 2022 Lukáš Zachar <lzachar@redhat.com> - 1.15.0-1
- 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
* Mon Jun 06 2022 Petr Šplíchal <psplicha@redhat.com> - 1.14.0-1
- 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
* Mon May 02 2022 Petr Šplíchal <psplicha@redhat.com> - 1.13.0-1
- 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
* Mon Apr 04 2022 Petr Šplíchal <psplicha@redhat.com> - 1.12.0-1
- 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
* Wed Mar 02 2022 Petr Šplíchal <psplicha@redhat.com> - 1.11.0-1
- 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
* Tue Feb 01 2022 Lukáš Zachar <lzachar@redhat.com> - 1.10.0-1
- 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
|