Versioning
We want to ensure it's easy to understand what was changed in package in Hyperscale, if anything. To this end:
- when branching a package from Fedora as-is, keep the EVR unchanged
- whenever a change is made (regardless of where the package originally comes
from), append
.N
to the release, whereN
is a monotonically increasing integer that is bumped by one for each subsequent change - when importing changes from the upstream package in Hyperscale, if EV
changed, reset
.N
to.1
Example:
- we import
foo-1.0-2.fc36
from Fedora unchanged, producingfoo-1.0-2.hs.el8
- we add a patch to it, producing
foo-1.0-2.1.hs.el8
- we make another change, producing
foo-1.0-2.2.hs.el8
- we import the new
foo-1.1-1.fc36
release from Fedora and add back our patch, producingfoo-1.1-1.1.hs.el8
Note that some packages (such as kpatch or openssh) have multiple indipendently-versioned subpackages within the same source RPM. In this case, it's not usually possible to reset .N
to .1
, as that would lead to duplicate versions and conflicts down the road. To prevent this, it is recommended to continue monotonically increasing .N
regardless of EV.