Skip to content

fix(publish): close base channel over rpmlint and dpkg-perl deps - #18984

Open
Izan (IzanVil) wants to merge 1 commit into
microsoft:4.0from
IzanVil:fix/base-channel-closure
Open

Izan (IzanVil) wants to merge 1 commit into
microsoft:4.0from
IzanVil:fix/base-channel-closure

Conversation

@IzanVil

Copy link
Copy Markdown

Problem

rpmlint and dpkg-perl are published to rpm-base, but some of their hard runtime Requires are only built into rpm-sdk, so neither can be installed from the base repo. dnf repoclosure --newest against https://packages.microsoft.com/azurelinux/4/preview/base/x86_64 reports:

package: dpkg-perl-1.23.5-6.azl4.noarch
  unresolved deps (1):
    perl(Digest::SHA1)
package: rpmlint-2.8.0-5.azl4.noarch
  unresolved deps (3):
    devscripts-checkbashisms
    python3.14dist(pybeam)
    python3.14dist(tomli-w)

base-packages is documented as holding "the transitive closure of their runtime dependencies", so these providers belong in base. (rpmlint moved to base in #18393; its deps did not follow.)

Change

Add to base-packages:

Component Provides Needed by
perl-Digest-SHA1 perl(Digest::SHA1) dpkg-perl
python-pybeam python3-pybeam rpmlint
python-construct python3-construct python3-pybeam (construct >= 2.9, < 2.11)
python-tomli-w python3-tomli-w rpmlint
devscripts devscripts-checkbashisms rpmlint

Only the small devscripts-checkbashisms sub-package is needed from devscripts, so the devscripts main package (Debian helper scripts with a large perl / dpkg-dev dependency tree) is carved back out to sdk via exceptions-packages — the same pattern already used for ShellCheck.

The remaining deps of the moved packages are already in base (python3-six, perl-libs, perl-File-Temp, perl-Getopt-Long, perl-Test-Harness for perl-Digest-SHA1-tests).

Verification

  • azldev config dump passes.
  • azldev package list --rpm-file resolves: devscripts-checkbashisms, perl-Digest-SHA1, perl-Digest-SHA1-tests, python3-construct, python3-pybeam, python3-tomli-w → rpm-base; devscripts → rpm-sdk (exceptions-packages); the devscripts SRPM → rpm-base-srpm.
  • azldev comp update on the five components produces no lock changes (publish channel is not a render input), so no spec re-render is needed.
  • The other repoclosure finding in base (rubygem-rdoc-doc 6.4.0 requiring rubygem-rdoc = 6.4.0 while ruby provides a newer rubygem-rdoc) is inherited from Fedora 43 as-is and is left untouched here.

🤖 Generated with Claude Code

rpmlint and dpkg publish to rpm-base, but some of their hard runtime
Requires are only built into rpm-sdk, so neither package can be
installed from the base repo. `dnf repoclosure` against the 4/preview
base repo reports:

  dpkg-perl: perl(Digest::SHA1)
  rpmlint:   devscripts-checkbashisms, python3.14dist(pybeam),
             python3.14dist(tomli-w)

Move the providing components, plus python-construct (required by
python3-pybeam), into base-packages so base holds the transitive
closure of its runtime dependencies, as the group documents.

Only devscripts-checkbashisms is needed from devscripts. Carve the
devscripts main package out to sdk through exceptions-packages, the
same pattern used for ShellCheck, so its perl/dpkg-dev tree stays out
of base.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: IzanVil <soyoquienmas@outlook.com>
@IzanVil
Izan (IzanVil) requested a review from a team as a code owner September 26, 2026 14:58
Copilot AI balanced review requested due to automatic review settings September 26, 2026 14:58
@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
There may be pipelines that require an authorized user to comment /azp run to run.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🟢 Approval recommended

The channel assignments are correctly scoped, sorted, and consistent with existing package-exception conventions.

Review effort: Balanced
Findings: None

What changed in this PR

Updates publish-channel assignments so rpmlint and dpkg-perl have complete runtime dependency closure in rpm-base.

Changes:

  • Moves five required dependency components into rpm-base.
  • Keeps the unnecessary devscripts main package in rpm-sdk.
File Description
base/​comps/​components-publish-channels.toml Adds base dependencies and the devscripts package exception.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants