Skip to content

feat(packaging): add Fedora COPR RPM with Packit publication - #360

Draft
Nan Liu (liunan-ms) wants to merge 1 commit into
mainfrom
liunan/package-azldev-copr
Draft

Nan Liu (liunan-ms) wants to merge 1 commit into
mainfrom
liunan/package-azldev-copr

Conversation

@liunan-ms

@liunan-ms Nan Liu (liunan-ms) commented Sep 21, 2026

Copy link
Copy Markdown
Contributor

Summary

Adds Fedora RPM packaging and automated COPR publication for azldev.

  • Deterministic vendored RPM source archive (mage archive) and SRPM (mage srpm), always built from committed HEAD.
  • Fedora 43 RPM build validation workflow (.github/workflows/rpm.yml).
  • Packit publishes each GitHub Release to COPR (.packit.yaml, copr_build on the release trigger).
  • Release preparation syncs the RPM spec Version/Release/%changelog from CHANGELOG.md; both the prepare-release workflow and mage release verify the spec matches the changelog before tagging.
  • Developer docs for COPR packaging and updated release guide; user install instructions.

Validation

  • mage unit and mage check all pass.
  • mage archive produces a vendored archive; verified vendor/ contents.
  • .packit.yaml validated with the official packit validate.

Copilot AI lite review requested due to automatic review settings September 21, 2026 23:14

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

🟡 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 High severity · 1 Medium severity · 1 Low severity

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
Comment on lines +106 to +108
if err := sh.Run("rpmbuild", "-bs", specPath,
"--define", "_sourcedir "+outputDir,
"--define", "_srcrpmdir "+outputDir); err != nil {
Comment thread docs/user/README.md
@@ -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.
Copilot AI review requested due to automatic review settings September 21, 2026 23:27

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

🟡 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 High severity · 1 Medium severity · 2 Low severity

Open (4)

## Prerequisites

- **go 1.25+** - Required for building and running the application
- **Go 1.26+** - Required for building the application
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