From 0d69ef7f3cd48725d0bcebd1d1c5bda108707f52 Mon Sep 17 00:00:00 2001 From: Cristian Le Date: Thu, 30 Apr 2026 17:26:14 +0200 Subject: [PATCH 1/4] Drop the requirement for `dist-git-merge` Signed-off-by: Cristian Le --- tests/discover/distgit.sh | 6 +++--- tmt/steps/discover/fmf.py | 7 ------- 2 files changed, 3 insertions(+), 10 deletions(-) diff --git a/tests/discover/distgit.sh b/tests/discover/distgit.sh index b0b08ae4da..93c33a669f 100755 --- a/tests/discover/distgit.sh +++ b/tests/discover/distgit.sh @@ -378,7 +378,7 @@ EOF WORKDIR=/var/tmp/tmt/XXX rlRun -s 'tmt run --keep --scratch --id $WORKDIR plans --default \ discover --how fmf --dist-git-source --dist-git-type fedora --url $CLONED_RPMS_TMT \ - --dist-git-merge tests --name tests/prepare/install$ prepare provision -h local' + tests --name tests/prepare/install$ prepare provision -h local' assert_tests $WORKDIR tests/prepare/install rlPhaseEnd @@ -387,7 +387,7 @@ EOF rlRun 'pushd tmt' WORKDIR=/var/tmp/tmt/XXX rlRun -s "tmt run --keep --scratch --id $WORKDIR plans --default discover -v --how fmf \ - --dist-git-source --dist-git-merge --ref e2d36db --dist-git-extract ${prefix}tmt-1.7.0/tests/execute/framework/data \ + --dist-git-source --ref e2d36db --dist-git-extract ${prefix}tmt-1.7.0/tests/execute/framework/data \ tests --name ^/tests/beakerlib/with-framework\$ prepare provision -h local" assert_tests $WORKDIR /tests/beakerlib/with-framework @@ -398,7 +398,7 @@ EOF rlPhaseStartTest "Specify URL and REF of DistGit repo (Fedora)" WORKDIR=/var/tmp/tmt/XXX rlRun -s 'tmt run --keep --scratch --id $WORKDIR plans --default discover -v --how fmf \ - --dist-git-source --ref e2d36db --dist-git-merge --dist-git-init \ + --dist-git-source --ref e2d36db --dist-git-init \ --url https://src.fedoraproject.org/rpms/tmt.git \ tests --name tests/prepare/install$ prepare provision -h local' assert_tests $WORKDIR "/tmt-1.7.0/tests/prepare/install" diff --git a/tmt/steps/discover/fmf.py b/tmt/steps/discover/fmf.py index 3d7ba115a5..32cfa164d5 100644 --- a/tmt/steps/discover/fmf.py +++ b/tmt/steps/discover/fmf.py @@ -650,17 +650,10 @@ def go(self, *, path: Optional[Path] = None, logger: Optional[tmt.log.Logger] = super().go(path=path, logger=logger) dist_git_source = self.get('dist-git-source', False) - dist_git_merge = self.get('dist-git-merge', False) # No tests are selected in some cases self._tests: list[tmt.Test] = [] - # Self checks - if dist_git_source and not dist_git_merge and (self.data.ref or self.data.url): - raise tmt.utils.DiscoverError( - "Cannot manipulate with dist-git without the `--dist-git-merge` option." - ) - self.log_import_plan_details() # Dist-git source processing during discover step From 53d7d58dffae0ae92a20da105585885578365e63 Mon Sep 17 00:00:00 2001 From: Cristian Le Date: Tue, 26 May 2026 10:47:28 +0200 Subject: [PATCH 2/4] Update dist-git reference to version with fmf tree Signed-off-by: Cristian Le --- tests/discover/distgit.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/discover/distgit.sh b/tests/discover/distgit.sh index 93c33a669f..d6b5b481a4 100755 --- a/tests/discover/distgit.sh +++ b/tests/discover/distgit.sh @@ -387,7 +387,7 @@ EOF rlRun 'pushd tmt' WORKDIR=/var/tmp/tmt/XXX rlRun -s "tmt run --keep --scratch --id $WORKDIR plans --default discover -v --how fmf \ - --dist-git-source --ref e2d36db --dist-git-extract ${prefix}tmt-1.7.0/tests/execute/framework/data \ + --dist-git-source --ref 518edd9 --dist-git-extract ${prefix}tmt-1.74.0/tests/execute/framework/data \ tests --name ^/tests/beakerlib/with-framework\$ prepare provision -h local" assert_tests $WORKDIR /tests/beakerlib/with-framework @@ -398,10 +398,10 @@ EOF rlPhaseStartTest "Specify URL and REF of DistGit repo (Fedora)" WORKDIR=/var/tmp/tmt/XXX rlRun -s 'tmt run --keep --scratch --id $WORKDIR plans --default discover -v --how fmf \ - --dist-git-source --ref e2d36db --dist-git-init \ + --dist-git-source --ref 518edd9 --dist-git-init \ --url https://src.fedoraproject.org/rpms/tmt.git \ tests --name tests/prepare/install$ prepare provision -h local' - assert_tests $WORKDIR "/tmt-1.7.0/tests/prepare/install" + assert_tests $WORKDIR "/tmt-1.74.0/tests/prepare/install" rlPhaseEnd rlPhaseStartTest "fmf and git root don't match" From ff8b75d1ae307c8ad0fecebc12a1ac4f9fc1a36a Mon Sep 17 00:00:00 2001 From: Cristian Le Date: Tue, 26 May 2026 12:37:03 +0200 Subject: [PATCH 3/4] Drop special handling of `distgit_dir` Signed-off-by: Cristian Le --- tmt/steps/discover/fmf.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/tmt/steps/discover/fmf.py b/tmt/steps/discover/fmf.py index 32cfa164d5..fc7c79cb4c 100644 --- a/tmt/steps/discover/fmf.py +++ b/tmt/steps/discover/fmf.py @@ -671,9 +671,7 @@ def go(self, *, path: Optional[Path] = None, logger: Optional[tmt.log.Logger] = raise tmt.utils.DiscoverError( f"Directory '{fmf_root}' is not a git repository." ) - - distgit_dir = self.test_dir if self.data.ref else git_root - self.process_distgit_source(distgit_dir) + self.process_distgit_source(git_root) return except Exception as error: raise tmt.utils.DiscoverError("Failed to process 'dist-git-source'.") from error @@ -693,7 +691,6 @@ def process_distgit_source(self, distgit_dir: Path) -> None: ) # Copy rest of files so TMT_SOURCE_DIR has patches, sources and spec file - # FIXME 'worktree' could be used as source_dir when 'url' is not set tmt.utils.filesystem.copy_tree( distgit_dir, self.source_dir, From 98133080003340721616fa2817989e8eb9b26175 Mon Sep 17 00:00:00 2001 From: Cristian Le Date: Tue, 26 May 2026 17:51:02 +0200 Subject: [PATCH 4/4] Adjust tests again Signed-off-by: Cristian Le --- tests/discover/distgit.sh | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/tests/discover/distgit.sh b/tests/discover/distgit.sh index d6b5b481a4..48660333f0 100755 --- a/tests/discover/distgit.sh +++ b/tests/discover/distgit.sh @@ -387,9 +387,9 @@ EOF rlRun 'pushd tmt' WORKDIR=/var/tmp/tmt/XXX rlRun -s "tmt run --keep --scratch --id $WORKDIR plans --default discover -v --how fmf \ - --dist-git-source --ref 518edd9 --dist-git-extract ${prefix}tmt-1.74.0/tests/execute/framework/data \ - tests --name ^/tests/beakerlib/with-framework\$ prepare provision -h local" - assert_tests $WORKDIR /tests/beakerlib/with-framework + --dist-git-source --ref 518edd9 --dist-git-extract ${prefix}tmt-1.74.0/tests/execute/basic/data \ + tests --name ^/test/shell/good\$ prepare provision -h local" + assert_tests $WORKDIR /test/shell/good rlRun 'popd' rlPhaseEnd @@ -398,10 +398,10 @@ EOF rlPhaseStartTest "Specify URL and REF of DistGit repo (Fedora)" WORKDIR=/var/tmp/tmt/XXX rlRun -s 'tmt run --keep --scratch --id $WORKDIR plans --default discover -v --how fmf \ - --dist-git-source --ref 518edd9 --dist-git-init \ + --dist-git-source --ref 518edd9 \ --url https://src.fedoraproject.org/rpms/tmt.git \ - tests --name tests/prepare/install$ prepare provision -h local' - assert_tests $WORKDIR "/tmt-1.74.0/tests/prepare/install" + tests --name ^/tests/prepare/install$ prepare provision -h local' + assert_tests $WORKDIR "/tests/prepare/install" rlPhaseEnd rlPhaseStartTest "fmf and git root don't match"