Skip to content

Postrelease caret notation in RPM version #2878

@ppisar

Description

@ppisar

Description

DNF team moved GitHub CI to Packit and hit the following problem with Packit-computed NEVRs:

DNF5 upstream released 5.3.0.0 version and packaged it in Fedora. Then the history diverged: Upstream piled up many commits and Fedora applied a patch. Resulting NEVRs are now:

  • dnf5-0:5.3.0.0-1.20251120011143874350.main.25.gd82d5a1c.fc44.x86_64 - Packit-generated git snapshot
  • dnf5-0:5.3.0.0-2.fc44.x86_64 - latest Fedora build

As you can see, Packit's NEVR became lower than Fedora's one. That caused people and DNF CI system using the Packit builds to stop following them and switch to Fedora builds.

Trivial fix on DNF upstream side would be bumping the version immediately after a release. E.g. to 5.3.0.1. (That's what DNF is going to do.)

However, a system approach would be moving the snapshot identifier from the release suffix https://packit.dev/docs/configuration#release_suffix to a version field, utilizing RPM's caret notation for postrelease snapshots https://docs.fedoraproject.org/en-US/packaging-guidelines/Versioning/#_snapshots:

  • dnf5-0:5.3.0.0^20251120011143874350.main.25.gd82d5a1c-1.fc44.x86_64

DNF could implement it on its side using get-current-version hook, but I believe this feature could be of interest among many Packit users. Therefore I humbly propose Packit to support this caret notation natively.

Benefit

No response

Importance

No response

What is the impacted category (job)?

Copr builds

Workaround

  • There is an existing workaround that can be used until this feature is implemented.

Participation

  • I am willing to submit a pull request for this issue. (Packit team is happy to help!)

Metadata

Metadata

Assignees

Labels

complexity/single-taskRegular task; should be done within daysgain/lowDoesn't bring much value to usersimpact/lowAffects only few of the userskind/featureA request, idea, or new functionality

Type

No type

Projects

Status

in-review

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions