From f43c57ca89027688f87f4070f4e66d69631478c1 Mon Sep 17 00:00:00 2001 From: Otto Liljalaakso Date: Jan 28 2025 22:03:01 +0000 Subject: Package Update Guide: Check for dependents with `fedrq` Previously, `fedrq` was only mentioned in the Utilities page. On the other hand, Package Update Guide did not have anything about checking for affected dependents. Move `fedrq` usage instructions to that page, so it is part of a document describing a full workflow, rather than just in a list of random tools. The new _Finding dependents_ section in Package Update Guide is quite short for such a complicated topic. It can be extended later. The purpose of this change is not to exhaustively cover that topic. The purpose is just to move the existing coverage of `fedrq` abd checking for affected packages. --- diff --git a/modules/ROOT/pages/Package_Update_Guide.adoc b/modules/ROOT/pages/Package_Update_Guide.adoc index 6081f00..de65dfe 100644 --- a/modules/ROOT/pages/Package_Update_Guide.adoc +++ b/modules/ROOT/pages/Package_Update_Guide.adoc @@ -34,6 +34,42 @@ but the update workflows split up as described above. There is also a difference between single-package updates and multi-package updates. +[#finding_dependents] +== Finding dependents + +It is important to include all the needed packages in the update. +Even if you initially just intend to update a single package, +ABI or API incompatibility may require updating also other packages. + +First step in determining the possible impact is to list dependencies. +This can be done using the `fedrq` tool: + +---- +$ fedrq whatrequires-src --branch rawhide --format source --exclude-subpackages python-pydantic +fawltydeps +fedrq +input-remapper +matrix-synapse +psi4 +⋮ +---- + +Some or all of listed dependents may be affected and require action. +The simplest case is where there is no breakage and nothing needs to be done. +The second case is an ABI break that can be resolved by simply rebuilding the dependent +while using the new dependency version. +In more complicated cases, +the dependents may need to be updated to compatible versions +or (hopefully temporarily) patched to work with the new dependency version. + +Only if there are no dependents (the original package to update is a "leaf package"), +or none of the dependents require any action, +the single-package workflow can be used. +In all other cases, the full tree of affected dependencies needs to be updated together. +Note that the `fedrq` invocation above is not recursive. +In case a dependent needs to be modified, +the same impact check needs to be done for that package, +and any further affected packages included in the update. [#rawhide_and_early_branched] [#single_packages] diff --git a/modules/ROOT/pages/Utilities.adoc b/modules/ROOT/pages/Utilities.adoc index 2671ecb..e3a7426 100644 --- a/modules/ROOT/pages/Utilities.adoc +++ b/modules/ROOT/pages/Utilities.adoc @@ -7,41 +7,6 @@ This page attempts to list them, but is not a complete list. See xref:Pull_Request_Guide.adoc#ci[Pull Request Guide]. -== Checking package update impact: fedrq - -Before updating their packages as per the xref:fesco::Updates_Policy.adoc[updates policy], package maintainers should check if/how the update impacts other packages. -To list what packages depend on another in each Fedora release, package maintainers can use the link:https://fedrq.gtmx.me/[fedrq] tool. -Example usage: - -[source, bash] ----- -$ sudo dnf install fedrq - -$ fedrq whatrequires-src -b f38 python-pydantic -fedrq-0.7.1-1.fc38.noarch -fedrq-0.7.1-1.fc38.src -input-remapper-2.0.0-2.fc38.noarch -input-remapper-2.0.0-2.fc38.src -matrix-synapse-1.85.2-1.fc38.src -matrix-synapse-1.85.2-1.fc38.x86_64 -psi4-1:1.3.2-19.fc38.i686 -psi4-1:1.3.2-19.fc38.src -psi4-1:1.3.2-19.fc38.x86_64 -python-aws-sam-translator-1.68.0-1.fc38.src -python-bsmschema-0.1.0-1.fc38.src -python-fastapi-0.96.0-1.fc38.src -python-pytest-toolbox-0.4-12.fc37.src -python-qcelemental-0.25.0-4.fc38.src -python-qcengine-0.26.0-1.fc38.src -python-versioningit-2.2.0-1.fc38.src -python3-aws-sam-translator-1.68.0-1.fc38.noarch -python3-bsmschema-0.1.0-1.fc38.noarch -python3-fastapi-0.96.0-1.fc38.noarch -python3-qcelemental-0.25.0-4.fc38.noarch -python3-qcengine-0.26.0-1.fc38.noarch - ----- - == Running fedora-review on review tickets using fedora-review service The link:https://github.com/FrostyX/fedora-review-service/[Fedora Review Service] automatically runs `fedora-review` on new package review tickets.