forked from teemtee/tmt
-
Notifications
You must be signed in to change notification settings - Fork 0
/
tmt.spec
2247 lines (2160 loc) · 103 KB
/
tmt.spec
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
Name: tmt
Version: 1.32.1
Release: %autorelease
Summary: Test Management Tool
License: MIT
URL: https://github.com/teemtee/tmt
Source0: %{pypi_source tmt}
BuildArch: noarch
BuildRequires: python3-devel
Requires: git-core rsync sshpass
Obsoletes: python3-tmt < %{version}-%{release}
Obsoletes: tmt-report-html < %{version}-%{release}
Obsoletes: tmt-report-junit < %{version}-%{release}
Obsoletes: tmt-report-polarion < %{version}-%{release}
Obsoletes: tmt-report-reportportal < %{version}-%{release}
Recommends: bash-completion
%define workdir_root /var/tmp/tmt
%py_provides python3-tmt
%description
The tmt Python module and command line tool implement the test
metadata specification (L1 and L2) and allows easy test execution.
%pyproject_extras_subpkg -n tmt export-polarion
%pyproject_extras_subpkg -n tmt report-junit
%pyproject_extras_subpkg -n tmt report-polarion
%package -n tmt+test-convert
Summary: Dependencies required for tmt test import and export
Obsoletes: tmt-test-convert < %{version}-%{release}
Requires: tmt == %{version}-%{release}
Requires: make
Requires: python3-bugzilla
Requires: python3-nitrate
Requires: python3-html2text
Requires: python3-markdown
%description -n tmt+test-convert
This is a metapackage bringing in extra dependencies for tmt.
It contains no code, just makes sure the dependencies are installed.
%package -n tmt+provision-container
Summary: Dependencies required for tmt container provisioner
Obsoletes: tmt-provision-container < %{version}-%{release}
Obsoletes: tmt-container < 0.17
Requires: tmt == %{version}-%{release}
Requires: podman
Requires: (ansible or ansible-collection-containers-podman)
%description -n tmt+provision-container
This is a metapackage bringing in extra dependencies for tmt.
It contains no code, just makes sure the dependencies are installed.
%package -n tmt+provision-virtual
Summary: Dependencies required for tmt virtual machine provisioner
Obsoletes: tmt-provision-virtual < %{version}-%{release}
Obsoletes: tmt-testcloud < 0.17
Requires: tmt == %{version}-%{release}
Requires: python3-testcloud >= 0.9.10
Requires: libvirt-daemon-config-network
Requires: openssh-clients
Requires: (ansible or ansible-core)
# Recommend qemu system emulators for supported arches
Recommends: qemu-kvm-core
%if 0%{?fedora}
Recommends: qemu-system-aarch64-core
Recommends: qemu-system-ppc-core
Recommends: qemu-system-s390x-core
Recommends: qemu-system-x86-core
%endif
%description -n tmt+provision-virtual
This is a metapackage bringing in extra dependencies for tmt.
It contains no code, just makes sure the dependencies are installed.
%package -n tmt+provision-beaker
Summary: Dependencies required for tmt beaker provisioner
Provides: tmt-provision-beaker == %{version}-%{release}
Obsoletes: tmt-provision-beaker < %{version}-%{release}
Requires: tmt == %{version}-%{release}
Requires: python3-mrack-beaker
%description -n tmt+provision-beaker
This is a metapackage bringing in extra dependencies for tmt.
It contains no code, just makes sure the dependencies are installed.
# Replace with pyproject_extras_subpkg at some point
%package -n tmt+all
Summary: Extra dependencies for the Test Management Tool
Provides: tmt-all == %{version}-%{release}
Obsoletes: tmt-all < %{version}-%{release}
Requires: tmt+test-convert == %{version}-%{release}
Requires: tmt+export-polarion == %{version}-%{release}
Requires: tmt+provision-container == %{version}-%{release}
Requires: tmt+provision-virtual == %{version}-%{release}
Requires: tmt+provision-beaker == %{version}-%{release}
Requires: tmt+report-junit == %{version}-%{release}
Requires: tmt+report-polarion == %{version}-%{release}
%description -n tmt+all
All extra dependencies of the Test Management Tool. Install this
package to have all available plugins ready for testing.
%prep
%autosetup -p1 -n tmt-%{version}
%generate_buildrequires
%pyproject_buildrequires
%build
export SETUPTOOLS_SCM_PRETEND_VERSION=%{version}
%pyproject_wheel
%install
%pyproject_install
%pyproject_save_files tmt
mkdir -p %{buildroot}%{_mandir}/man1
install -pm 644 tmt.1 %{buildroot}%{_mandir}/man1
mkdir -p %{buildroot}%{_datadir}/bash-completion/completions
install -pm 644 completions/bash/%{name} %{buildroot}%{_datadir}/bash-completion/completions/%{name}
mkdir -pm 1777 %{buildroot}%{workdir_root}
mkdir -p %{buildroot}/etc/%{name}/
install -pm 644 %{name}/steps/provision/mrack/mrack* %{buildroot}/etc/%{name}/
%check
%pyproject_check_import
%files -n tmt -f %{pyproject_files}
%doc README.rst examples
%{_bindir}/tmt
%{_mandir}/man1/tmt.1.gz
%dir %{workdir_root}
%{_datadir}/bash-completion/completions/%{name}
%files -n tmt+provision-container -f %{_pyproject_ghost_distinfo}
%files -n tmt+provision-virtual -f %{_pyproject_ghost_distinfo}
%files -n tmt+test-convert -f %{_pyproject_ghost_distinfo}
%files -n tmt+provision-beaker -f %{_pyproject_ghost_distinfo}
%config(noreplace) %{_sysconfdir}/%{name}/mrack*
%files -n tmt+all -f %{_pyproject_ghost_distinfo}
%changelog
* Thu Mar 28 2024 Martin Hoyer <[email protected]> - 1.32.1
- rpm .spec file version bump
- Update pytest on c9s when using site-packages
* Wed Mar 27 2024 Martin Hoyer <[email protected]> - 1.32.0
- Support Alpine Linux `apk` package manager
- Update the `reportportal` plugin
- Allow `keep-git-metadata` to be used without url
- Use `TMT_REPORT_ARTIFACTS_URL` in Polarion report plugin
- Prepare dist-git sources using `rpmbuild -bp`
- Add support for `zcrypt` to Beaker plugin
- Introduce ansible-lint to format ansible files
- Add support for linking artifacts from the report
- Document test tags and mark beakerlib integration
- Clarify that plan context is not applied to plan
- Increase the default test `duration` a bit
- Update pre-commit checks
- Fix typos in the `tmt try` help message examples
- Add new environment variable for test iteration identifier
- Select no tests if `modified-only` returns nothing (#2761)
- Debug output for `discover -h fmf --modified-only`
- Finish unit testing of HW transformations in mrack plugin
- Run `/plans/install/docs` in core `packit` jobs
- Extract "package manager" functionality into plugins (#2557)
- Allow commands whose output is not logged unless they fail
- Move `/tests/run/shell` to `/plans/provision/local`
- Include a simple config for the `polarion` plugin
- Cover `report/junit` with `pyright`
- Implement the new test check `watchdog`
- Support `disk.driver` hw requirement for `mrack`
- Cover `tmt.hardware` with `pyright` check
- Bootstrap unit tests for Beaker XML transformation of HW requirements
- Add support for emulated TPM into virtual provision plugin
- Set default formatting of Pint units to use symbols, not names (#2736)
- Disable IPv6 for /plans/provision/virtual in CI
- Add support for `disk.driver` hardware requirement
- Remove now unnecessary `NON_KVM_ADDITIONAL_WAIT` from testcloud
- Support `disk.model-name` hw requirement for `mrack`
- Include `context` in the test `metadata.yaml` file
- Pass `domain_configuration` to testcloud's `wake()`
- Document how to enable verbose/debug logging
- Disable password authentication when using keys
- Fix /plans/provision/virtual to set correct PROVISION_* variable
- Log the beaker job whiteboard
- /usr/sbin/sestatus instead of /usr/bin/sestatus (#2720)
- Set acl permissions on the `workdir` root
- Extend the `duration` for time-demanding tests
- Add support for `disk.model-name` hardware requirement
- Move deferred user stories into a separate section
- Mark test check tests with more fitting provision tags
- Add `Environment` and `FmfContext` among loggable types
- Bump supported Artemis API versions to 0.0.69
- "Show default" flag was dropped from CLI option initialization
- Convert environment handling into a dict-like class (#2612)
- Enable `additional_coverage` tests for pull requests (#2700)
- Add essential requirements to checks
- Remove mention about the full test suite from docs
- Use the `PROVISION_HOW` variable in `provision` plans (#2688)
- Properly detect if test is enabled somewhere
- Check for files in `rpm-ostree install` script
- Collect test/test check results in test invocation (#2608)
- Test the `become` key under `virtual` provision
- Introduce "topology" addresses for guests (#2670)
- Make checks smarter about environments in which they should not run (#2686)
- Cover report/display and report/html with pyright (#2682)
- Cover `tmt.templates` with `pyright`
- Allow custom boot/connect timeouts for testcloud VMs
- Underline `try` menu keys
- Drop two no longer used methods from prepare step
- Enable the full test execution using a label (#2683)
- Support URL as post-install-script for Artemis plugin
- Fix dmesg check test for recent Fedoras
* Tue Feb 06 2024 Michal Hlavinka <[email protected]> - 1.31.0
- 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
* Fri Dec 08 2023 Petr Šplíchal <[email protected]> - 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 <[email protected]> - 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 <[email protected]> - 1.28.2
- Build man page during the `release` action
* Wed Oct 11 2023 Petr Šplíchal <[email protected]> - 1.28.1
- Remove the `.dev0` suffix from the spec `Version`
* Fri Oct 06 2023 Petr Šplíchal <[email protected]> - 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 <[email protected]> - 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 <[email protected]> - 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 <[email protected]> - 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 <[email protected]> - 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 <[email protected]> - 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 <[email protected]> - 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 <[email protected]> - 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 <[email protected]> - 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 <[email protected]> - 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 <[email protected]> - 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 <[email protected]> - 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