feat(packaging): add Fedora COPR RPM with Packit publication - #360
Nan Liu (liunan-ms) wants to merge 1 commit into
Conversation
There was a problem hiding this comment.
Copilot review overview
🟡 Changes recommended
The SRPM can include uncommitted spec content, the new internal test file violates the repository lint convention, and an existing user-guide link was removed.
Get a fresh assessment by requesting another Copilot review.
Review effort: Lite
Findings: 1
Open (3)
What changed in this PR
Adds Fedora RPM packaging, deterministic source/SRPM generation, and Packit COPR publication integrated with release preparation.
Changes:
- Adds RPM spec, Mage targets, and Fedora 43 validation.
- Configures Packit release-triggered COPR builds.
- Synchronizes release metadata and documents installation and packaging workflows.
| File | Description |
|---|---|
| README.md | Adds COPR installation guidance. |
| packaging/azldev.spec | Defines the Fedora RPM package. |
| magefiles/magerpm/magerpm.go | Adds archive and SRPM targets. |
| magefiles/magerpm/magerpm_test.go | Tests RPM helpers. |
| magefiles/magerelease/magerelease.go | Syncs release metadata. |
| magefiles/magerelease/magerelease_internal_test.go | Tests release helpers. |
| magefiles/magefile.go | Registers RPM targets. |
| docs/user/README.md | Updates user-guide navigation. |
| docs/user/how-to/install-azldev.md | Documents COPR installation. |
| docs/developer/README.md | Links packaging guidance. |
| docs/developer/how-to/releasing.md | Documents Packit releases. |
| docs/developer/how-to/package-for-copr.md | Documents COPR packaging. |
| docs/developer/how-to/get-started.md | Updates Go prerequisite. |
| .packit.yaml | Configures COPR publication. |
| .github/workflows/rpm.yml | Validates Fedora RPM builds. |
| .github/workflows/prepare-release.yml | Syncs and verifies release metadata. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
| // Copyright (c) Microsoft Corporation. | ||
| // Licensed under the MIT License. | ||
|
|
||
| package magerelease |
| if err := sh.Run("rpmbuild", "-bs", specPath, | ||
| "--define", "_sourcedir "+outputDir, | ||
| "--define", "_srcrpmdir "+outputDir); err != nil { |
| @@ -7,7 +7,6 @@ | |||
| - [Build a Component](./how-to/build-component.md) — build RPMs from component definitions | |||
| - [Build an Image](./how-to/build-image.md) — build and boot Azure Linux images | |||
| - [Set Up AI Coding Agents](./how-to/set-up-ai-agents.md) — emit agent skill and instruction files | |||
Add deterministic vendored RPM source generation and Fedora 43 package validation. Publish each GitHub Release to COPR via Packit, and keep the RPM spec version and changelog in sync during release preparation, with 'mage release' verifying the spec matches the changelog before tagging. Include COPR publication documentation and user installation instructions.
5591ad7 to
a0092ff
Compare
There was a problem hiding this comment.
Copilot review overview
🟡 Changes recommended
The new internal test violates the repository lint convention, and documentation inconsistencies remain unresolved.
Get a fresh assessment by requesting another Copilot review.
Review effort: Lite
Findings: 1
| ## Prerequisites | ||
|
|
||
| - **go 1.25+** - Required for building and running the application | ||
| - **Go 1.26+** - Required for building the application |



Summary
Adds Fedora RPM packaging and automated COPR publication for
azldev.mage archive) and SRPM (mage srpm), always built from committedHEAD..github/workflows/rpm.yml)..packit.yaml,copr_buildon thereleasetrigger).Version/Release/%changelogfromCHANGELOG.md; both the prepare-release workflow andmage releaseverify the spec matches the changelog before tagging.Validation
mage unitandmage check allpass.mage archiveproduces a vendored archive; verifiedvendor/contents..packit.yamlvalidated with the officialpackit validate.