https://fedoraproject.org/wiki/Packaging/Guidelines#Explicit_Requires
Packages must not contain explicit Requires on libraries except when
absolutely necessary. [...]
https://fedoraproject.org/wiki/Packaging/Guidelines#Requiring_Base_Package
Devel packages must require the base package using a fully versioned
dependency: Requires: %{name} = %{version}-%{release}. Usually,
subpackages other than -devel should also require the base package using a
fully versioned dependency.
I think these two guidelines or their wording are more or less in conflict
these days. Most -devel packages do not "absolutely necessarily" need an
explicit dependency on the base package because rpm automatically adds
soname dependencies from symlinks in -devel to the corresponding shared lib
in the main/lib package. Ditto, many cases of other non-devel subpackages
get automatic lib soname dependencies to the main/lib package.
If the intent is to still require explicit deps like in "requiring base
package" even though there are automatic ones that would usually work, just
to be sure or for other reasons (possibility of compilation options,
patchwork that affects some internal subpackages but not other -devel/lib
package consumers), I think "requiring base packages" and "explicit
requires" should be cross referenced noting that this is an exception and
those explicit deps are indeed wanted.
If not, IMO "requiring base package" should be softened so that it requires
adding those explicit deps if no automatic ones are present, or just
removed because that'd be redundant with "explicit requires" and the rest
of the general dependency guidelines.