From f3e9de2aa893c20d15bb8728af88b0df653b129f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Milo=C5=A1=20Prchl=C3=ADk?= Date: Tue, 28 May 2024 14:37:34 +0200 Subject: [PATCH] Fix some invalid links in documentation (#2940) Related to https://github.com/teemtee/tmt/pull/2489. This PR does not fix all invalid links, but the rest should be caused by incorrect handling of links in a template when rendering them; these should be resolved by the work related to https://github.com/teemtee/tmt/issues/2868. Co-authored-by: Miroslav Vadkerti --- docs/conf.py | 8 ++++++++ docs/contribute.rst | 2 +- docs/examples.rst | 2 +- docs/overview.rst | 4 ++-- docs/questions.rst | 2 +- spec/core/id.fmf | 2 +- spec/tests/path.fmf | 2 +- stories/cli/plan.fmf | 6 +++--- stories/cli/run.fmf | 2 +- stories/cli/steps.fmf | 4 ++-- stories/cli/test.fmf | 2 +- tmt/hardware.py | 2 +- tmt/steps/__init__.py | 3 ++- tmt/utils.py | 24 ++++++++++++++++-------- 14 files changed, 41 insertions(+), 24 deletions(-) diff --git a/docs/conf.py b/docs/conf.py index 94ed69b319..a106153062 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -304,6 +304,14 @@ def _load_theme( # If true, show URL addresses after external links. # man_show_urls = False +# -- Options for linkcheck builder ---------------------------------------- +linkcheck_ignore = [ + # Github "source code line" anchors are apparently too dynamic for linkcheck + # to detect correctly. The link exists, a browser can open it, but linkcheck + # reports a broken link. + r'https://github.com/packit/packit/blob/main/packit/utils/logging.py#L10' + ] + def generate_tmt_docs(app: Sphinx) -> None: """ Run `make generate` to populate the auto-generated sources """ diff --git a/docs/contribute.rst b/docs/contribute.rst index 75f995ff52..58a285e769 100644 --- a/docs/contribute.rst +++ b/docs/contribute.rst @@ -59,7 +59,7 @@ Why should I care? You can get some more context in the `stackoverflow`__ article. -__ http://stackoverflow.com/questions/2290016/ +__ https://stackoverflow.com/questions/2290016/ .. _develop: diff --git a/docs/examples.rst b/docs/examples.rst index c68dbe8e44..5d4dee6b2b 100644 --- a/docs/examples.rst +++ b/docs/examples.rst @@ -1315,7 +1315,7 @@ steps for example. This is currently used in the Testing Farm's tmt run --last login < script.sh -__ https://docs.testing-farm.io/general/0.1/test-results.html#_tmt_reproducer +__ https://docs.testing-farm.io/Testing%20Farm/0.1/test-results.html#_tmt_reproducer Have you heard already that using command abbreviation is possible as well? It might save you some typing: diff --git a/docs/overview.rst b/docs/overview.rst index 516b6185b4..296bad8c46 100644 --- a/docs/overview.rst +++ b/docs/overview.rst @@ -693,7 +693,7 @@ Git: https://github.com/teemtee/tmt Docs: -http://tmt.readthedocs.io/ +https://tmt.readthedocs.io/ Stories: https://tmt.readthedocs.io/en/stable/stories.html @@ -714,7 +714,7 @@ Metadata Specification: https://tmt.readthedocs.io/en/stable/spec.html Flexible Metadata Format: -http://fmf.readthedocs.io/ +https://fmf.readthedocs.io/ Testing Farm: https://docs.testing-farm.io/ diff --git a/docs/questions.rst b/docs/questions.rst index ce4f09c006..f4dbd7e2e6 100644 --- a/docs/questions.rst +++ b/docs/questions.rst @@ -460,4 +460,4 @@ If you were using ``provision.fmf`` with Testing Farm, check out the `Testing Farm docs`__ on this HW requirement for more details and how Testing Farm works with tmt metadata. -__ https://docs.testing-farm.io/general/0.1/test-request.html +__ https://docs.testing-farm.io/Testing%20Farm/0.1/test-request.html diff --git a/spec/core/id.fmf b/spec/core/id.fmf index 1117f58a2d..97e864ff9c 100644 --- a/spec/core/id.fmf +++ b/spec/core/id.fmf @@ -25,5 +25,5 @@ example: | id: af994876-1c68-49a7-90e8-c8d2b189189d link: - - implemented-by: /tmt/id.py + - implemented-by: /tmt/identifier.py - verified-by: /tests/unit diff --git a/spec/tests/path.fmf b/spec/tests/path.fmf index 37de4633d2..87022d8378 100644 --- a/spec/tests/path.fmf +++ b/spec/tests/path.fmf @@ -21,4 +21,4 @@ example: | link: - implemented-by: /tmt/base.py - verified-by: /tests/execute/basic - - http://fmf.readthedocs.io/en/latest/features.html#virtual + - https://fmf.readthedocs.io/en/latest/features.html#virtual diff --git a/stories/cli/plan.fmf b/stories/cli/plan.fmf index 65aaf7753d..454e729920 100644 --- a/stories/cli/plan.fmf +++ b/stories/cli/plan.fmf @@ -14,7 +14,7 @@ story: 'As a user I want to comfortably work with plans' link: - implemented-by: /tmt/cli.py - documented-by: /docs/examples.rst#explore-plans - - verified-by: /tests/plans/select + - verified-by: /tests/plan/select /filter: story: 'Filter available plans' @@ -31,7 +31,7 @@ story: 'As a user I want to comfortably work with plans' link: - implemented-by: /tmt/base.py - documented-by: /docs/examples.rst#explore-plans - - verified-by: /tests/plans/select + - verified-by: /tests/plan/select /lint: story: 'Check plan against the L2 metadata specification' @@ -42,7 +42,7 @@ story: 'As a user I want to comfortably work with plans' example: tmt plan lint link: - implemented-by: /tmt/cli.py - - verified-by: /tests/plan/lint + - verified-by: /tests/lint/plan /create: story: 'As a developer I want to easily enable CI' diff --git a/stories/cli/run.fmf b/stories/cli/run.fmf index 39f9749795..d835d8586e 100644 --- a/stories/cli/run.fmf +++ b/stories/cli/run.fmf @@ -197,7 +197,7 @@ story: 'As a user I want to execute tests easily' or investigate what happened after the test is finished. link: - - implemented-by: /tmt/step + - implemented-by: /tmt/steps - verified-by: /tests/login - documented-by: /docs/examples.rst#guest-login diff --git a/stories/cli/steps.fmf b/stories/cli/steps.fmf index 1532ef0697..f86bd17df6 100644 --- a/stories/cli/steps.fmf +++ b/stories/cli/steps.fmf @@ -34,7 +34,7 @@ story: 'Use localhost for testing' example: tmt run provision --how=local link: - - implemented-by: /tmt/steps/provision/localhost.py + - implemented-by: /tmt/steps/provision/local.py - documented-by: /docs/examples.rst#provision-options - verified-by: /tests/init/base @@ -58,7 +58,7 @@ Do not provision a new system. Instead, use provided authentication data to connect to a running machine. link: - - implemented-by: /tmt/steps/provision/vagrant.py + - implemented-by: /tmt/steps/provision/connect.py - documented-by: /docs/examples.rst#provision-options example: - tmt run provision --how=connect --guest=name-or-ip --user=login --password=secret diff --git a/stories/cli/test.fmf b/stories/cli/test.fmf index 1deb242dc2..07976ac34f 100644 --- a/stories/cli/test.fmf +++ b/stories/cli/test.fmf @@ -48,7 +48,7 @@ story: 'As a user I want to comfortably work with tests' example: tmt test import link: - implemented-by: /tmt/convert.py - - verified-by: /tests/test_convert + - verified-by: /tests/unit/test_convert.py - documented-by: /docs/examples.rst#convert-tests /export: diff --git a/tmt/hardware.py b/tmt/hardware.py index 624413e46e..571e342d24 100644 --- a/tmt/hardware.py +++ b/tmt/hardware.py @@ -23,7 +23,7 @@ Components of each constraint - dimension, operator, value, units - are decoupled from the rest, and made available for inspection. -[1] https://tmt.readthedocs.io/en/latest/spec/plans.html#hardware +[1] https://tmt.readthedocs.io/en/stable/spec/hardware.html """ import dataclasses diff --git a/tmt/steps/__init__.py b/tmt/steps/__init__.py index 7f6354b43c..135b4c6bb0 100644 --- a/tmt/steps/__init__.py +++ b/tmt/steps/__init__.py @@ -1964,7 +1964,8 @@ def to_dict(self) -> dict[str, Any]: """ Convert to a mapping. - See https://tmt.readthedocs.io/en/stable/classes.html#class-conversions for more details. + See https://tmt.readthedocs.io/en/stable/code/classes.html#class-conversions + for more details. """ data = super().to_dict() diff --git a/tmt/utils.py b/tmt/utils.py index c589991596..757b6192bc 100644 --- a/tmt/utils.py +++ b/tmt/utils.py @@ -2984,7 +2984,8 @@ def to_dict(self) -> dict[str, Any]: """ Convert to a mapping. - See https://tmt.readthedocs.io/en/stable/classes.html#class-conversions for more details. + See https://tmt.readthedocs.io/en/stable/code/classes.html#class-conversions + for more details. """ return dict(self.items()) @@ -2993,7 +2994,8 @@ def to_minimal_dict(self) -> dict[str, Any]: """ Convert to a mapping with unset keys omitted. - See https://tmt.readthedocs.io/en/stable/classes.html#class-conversions for more details. + See https://tmt.readthedocs.io/en/stable/code/classes.html#class-conversions + for more details. """ return { @@ -3101,7 +3103,8 @@ def from_spec(cls: type[SpecBasedContainerT], spec: SpecInT) -> SpecBasedContain """ Convert from a specification file or from a CLI option - See https://tmt.readthedocs.io/en/stable/classes.html#class-conversions for more details. + See https://tmt.readthedocs.io/en/stable/code/classes.html#class-conversions + for more details. See :py:meth:`to_spec` for its counterpart. """ @@ -3112,7 +3115,8 @@ def to_spec(self) -> SpecOutT: """ Convert to a form suitable for saving in a specification file - See https://tmt.readthedocs.io/en/stable/classes.html#class-conversions for more details. + See https://tmt.readthedocs.io/en/stable/code/classes.html#class-conversions + for more details. See :py:meth:`from_spec` for its counterpart. """ @@ -3123,7 +3127,8 @@ def to_minimal_spec(self) -> SpecOutT: """ Convert to specification, skip default values - See https://tmt.readthedocs.io/en/stable/classes.html#class-conversions for more details. + See https://tmt.readthedocs.io/en/stable/code/classes.html#class-conversions + for more details. See :py:meth:`from_spec` for its counterpart. """ @@ -3178,7 +3183,8 @@ def to_serialized(self) -> dict[str, Any]: """ Convert to a form suitable for saving in a file. - See https://tmt.readthedocs.io/en/stable/classes.html#class-conversions for more details. + See https://tmt.readthedocs.io/en/stable/code/classes.html#class-conversions + for more details. See :py:meth:`from_serialized` for its counterpart. """ @@ -3210,7 +3216,8 @@ def from_serialized( """ Convert from a serialized form loaded from a file. - See https://tmt.readthedocs.io/en/stable/classes.html#class-conversions for more details. + See https://tmt.readthedocs.io/en/stable/code/classes.html#class-conversions + for more details. See :py:meth:`to_serialized` for its counterpart. """ @@ -3264,7 +3271,8 @@ def unserialize( Restoring such containers requires inspection of serialized data and dynamic imports of modules as needed. - See https://tmt.readthedocs.io/en/stable/classes.html#class-conversions for more details. + See https://tmt.readthedocs.io/en/stable/code/classes.html#class-conversions + for more details. See :py:meth:`to_serialized` for its counterpart. """