[Packaging] Fix #34131: az --version: Enable Fedora 44 RPM build and validation - #34132
Aditya Pujara (a0x1ab) wants to merge 3 commits into
Conversation
…ld and validation
|
Hi Aditya Pujara (@a0x1ab), |
|
Azure Pipelines: There may be pipelines that require an authorized user to comment /azp run to run. |
There was a problem hiding this comment.
Copilot review overview
🟡 Changes recommended
Critical Fedora build, verification, and test-contract issues remain unresolved, along with missing CI matrix integration.
Get a fresh assessment by requesting another Copilot review.
Review effort: Lite
Findings: 4
Open (5)
Install python-pip-wheel in the Fedora 44 build image · New Mount and export PIP_INDEX_URL for Fedora RPM builds · New Fix legacy branch exit-status handling or update the test · New Query only azure-cli when checking preinstalled packages · New Add Fedora 44 build and validation jobs to the pipeline · New
What changed in this PR
Enables Fedora 44 RPM packaging and adds repository verification, validation tests, and documentation.
Changes:
- Adds Fedora 44 build configuration and smoke checks.
- Adds RPM package and repository verification tests.
- Documents build, testing, and acceptance workflows.
| File | Summary | Review status |
|---|---|---|
scripts/release/rpm/verify_rpm_in_docker.sh |
Strict repository verification | Changes required |
scripts/release/rpm/tests/test_verify_rpm.py |
Verifier contract tests | Changes required |
scripts/release/rpm/tests/test_rpm_package.py |
RPM validation tests | No blocking comment |
scripts/release/rpm/test_rpm_package.py |
RPM installation validation | No blocking comment |
scripts/release/rpm/test_rpm_in_docker.sh |
Container test guidance | No blocking comment |
scripts/release/rpm/README.md |
Fedora build and acceptance documentation | Changes required |
scripts/release/rpm/fedora.dockerfile |
Fedora 44 build configuration | Changes required |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
| ARG python_cmd=${python_package} | ||
|
|
||
| RUN dnf update -y | ||
| RUN dnf install -y wget rpm-build gcc libffi-devel ${python_package}-devel openssl-devel make bash coreutils diffutils patch dos2unix perl |
| RUN dos2unix ./scripts/release/rpm/azure-cli.spec && \ | ||
| REPO_PATH=$(pwd) CLI_VERSION=$cli_version PYTHON_PACKAGE=$python_package PYTHON_CMD=python3 \ | ||
| REPO_PATH=$(pwd) CLI_VERSION=$cli_version PYTHON_PACKAGE=$python_package PYTHON_CMD=$python_cmd \ |
| _, commands = self.run_script(success=False, RPM_REPOSITORY_ID=None, STUB_CLI_VERSION=version) | ||
| self.assertEqual(commands.count(("yum", "install", "azure-cli", "-y")), attempts) | ||
| self.assertEqual(commands.count(("sleep", "300")), 4 if version == "" else 0) | ||
| self.run_script(RPM_REPOSITORY_ID=None, STUB_FAIL="legacy-install") |
| fi | ||
|
|
||
| # Unlike a failed rpm -q, an empty successful query is unambiguously absent. | ||
| preinstalled=$(rpm -qa azure-cli --queryformat '%{NAME}\n') |
| The main `azure-pipelines.yml` currently has no Fedora 44 entry in either | ||
| `BuildRpmPackages` or `TestRpmPackage`. The Dockerfile change alone does not add | ||
| those jobs. After release-owner approval, the paired entries under the existing | ||
| architecture loops must use the same image, artifact and Python selection: |
|
/azp run |
|
Azure Pipelines: Successfully started running 3 pipeline(s). |
Live test results — changed test files only⏭️ SKIPPED — this PR changes no test files ( PR head ref: Workflow run: https://github.com/Azure/issue-sentinel/actions/runs/36044156763 Posted by the X Engineering Agent live-test workflow. |
Live test results — changed test files only⏭️ SKIPPED — this PR changes no test files ( PR head ref: Workflow run: https://github.com/Azure/issue-sentinel/actions/runs/36080943196 Posted by the X Engineering Agent live-test workflow. |
Live test results — changed test files only⏭️ SKIPPED — this PR changes no test files ( PR head ref: Workflow run: https://github.com/Azure/issue-sentinel/actions/runs/36084555915 Posted by the X Engineering Agent live-test workflow. |
There was a problem hiding this comment.
Changes needed
At head 5235076962d7ac234ca9adfae5b2e205d7145d64, the local tooling is covered, but the Fedora CI integration remains documentation-only. This is not a passing review.
Summary: one confirmed scope-consistency finding; one PR-related CI task in one build group; one unrelated authorization failure while attempting maintenance; zero uncertain failures. Upstream CI reported 48 passed and two failed check records, with no pending checks. The two failed records represent the same build and format task, not two independent defects.
Scope consistency: Fedora jobs are not wired into CI
P2 — scripts/release/rpm/README.md:172-211. The new section says that Fedora 44 is absent from both BuildRpmPackages and TestRpmPackage and supplies the entries only as examples. The pinned azure-pipelines.yml:893-980 confirms that both matrices still contain UBI entries only. Therefore merging the changed Dockerfile does not produce or exercise Fedora artifacts through the repository pipeline. This leaves the build/validation portion incomplete relative to the PR's stated fix for #34131; it also cannot establish the requested production package availability.
Implementation follow-up: propose the paired Fedora 44 build/test entries under the existing architecture loops, using matching rpm-fedora44-${arch} artifacts, the Fedora image and native python3/pip3 selectors. Preserve existing trigger conditions, dependencies, UBI entries and the separate Azure Linux jobs. Add focused regression coverage for the paired matrix/artifact mapping. If the release owner intends this PR to remain preparatory, that boundary and the unresolved issue closure must instead be explicitly agreed with the owner; do not represent documentation-only jobs as active validation.
Verification: inspect the expanded matrix for both native architectures and have the release owner authorize the corresponding Fedora build/install suites. Do not configure a production feed, choose signing keys, publish packages, or claim Fedora support from local tests or pipeline artifacts. Signing/publication onboarding and production acceptance remain release-owner decisions, as the new README itself explains.
Upstream CI
Azure.azure-cli
- Result: failure
- Included checks:
Azure.azure-cli (Check the Format of Pull Request Title and Content) - Failure details:
- Check the Format of Pull Request Title and Content / Bash (PR-related)
- Evidence: [Packaging] Fix #34131:
az --version: Enable Fedora 44 RPM build and validation: missingaround --version:
Bash exited with code '1'. - Next action: For this packaging change, omit the global-option command example from the title and History Notes: use [Packaging] Fix #34131: Enable Fedora 44 RPM build and validation, and [Packaging] Enable Fedora 44 RPM build and validation. An authorized maintainer/publisher must rerun the format task; the attempted automatic retry returned HTTP 401.
- Verify: Rerun the owning build's Check the Format of Pull Request Title and Content task and confirm its exact metadata diagnostic is gone.
- Evidence: [Packaging] Fix #34131:
- Check the Format of Pull Request Title and Content / Bash (PR-related)
The automatic metadata-maintenance retry returned 401 Client Error: Unauthorized from the Azure DevOps build-stage retry endpoint for build 353519. That authorization failure is Not PR-related and is not a source-code fix request. The implementation follow-up above is for the independent missing matrix integration, not an attempt to fix credentials or spend an implementation cycle on title metadata.
Test validation
- Live test: Passed. Workflow run
- Regression coverage: Not applicable to the changed files.
The command-module coverage classifier is not applicable to these packaging files. The new scripts/release/rpm/tests/test_rpm_package.py and test_verify_rpm.py assertions cover version/distro/architecture mismatches, Python dependency selection, repository origin, ownership, exact command arguments, signature/command failures and legacy behavior. They are unit/shell-contract coverage, not native Fedora integration or publication evidence; the successful scoped workflow does not fill the missing Fedora matrices.
Metadata guidance for the maintainer/publisher
PR title & description format (required)
This repo enforces a PR format (guide). Please author the PR exactly as follows or CI's Check the Format of Pull Request Title and Content will fail.
Use this EXACT PR title (copy verbatim, do not reword):
[Packaging] Fix #34131: `az <command>`: Enable Fedora 44 RPM build and validation
Keep the backticks around the command and the Fix #34131: prefix. You may only adjust the wording after the command (the final summary) if the fix changes; the [Packaging] prefix, issue link, and backticked command must stay.
Description — follow the PR template and fill in:
- Link the issue — start the Description with a closing keyword so the PR auto-links and closes it:
Fixes #34131. - Related command — the
az ...command this affects. - Description (mandatory) — why the bug happens, what you changed, and the resulting behavior.
- Testing Guide — example command(s) showing the fix works.
- History Notes — leave the title to drive the history note, or add extra lines in the same format (component in brackets + the command in backticks), e.g.
[Packaging] `az <command>`: <note>. - Keep the template checklist and tick the items you've satisfied.
Risk assessment
0/100 · Low · Low confidence
The Low rating reflects the detected change scope with no elevated security, reliability, customer, operational, dependency, sovereign-cloud, generated-output, or cross-component signal.
- Change scope: 7 changed files, 799 changed lines (
+760/-39), including 0 production files. - Affected components: No production component was identified.
- Risk drivers: No elevated risk signal was detected.
- Regression evidence: No production-code regression-test signal applies.
- Confidence: Low because no production changed-line evidence was available.
- Required review: No additional owning-squad review signal was detected.
|
🔔 Routing this PR to @Azure/act-platform-engineering-squad. |


🤖 PR Validation — ️✔️ All clear
Related command
az --versionDescription
Fixes #34131.
Enable Fedora 44 RPM build and validation.
Testing Guide
az --version.scripts/release/rpm/tests/test_rpm_package.py,scripts/release/rpm/tests/test_verify_rpm.py.History Notes
[Packaging]
az --version: Enable Fedora 44 RPM build and validationThis checklist is used to make sure that common guidelines for a pull request are followed.
The PR title and description has followed the guideline in Submitting Pull Requests.
I adhere to the Command Guidelines.
I adhere to the Error Handling Guidelines.