#1784 Unintuitive MIN_BUILDER_VERSION requirement
Closed: MIGRATED 2 years ago by nikromen. Opened 3 years ago by frostyx.

I find MIN_BUILDER_VERSION configuration confusing every time I am looking at it. First, it has a different format than our real version, so a stable release is e.g. 0.49-1 and we configure 0.49.1.dev to override it. Furthermore, Tito produces a package with 0.49-1.git.62.fc3afd4 which is less than 0.49.1.dev.

$ rpmdev-vercmp 0.49-1 0.49.1.dev
0.49-1 < 0.49.1.dev

$ rpmdev-vercmp 0.49-1.git.62.fc3afd4 0.49.1.dev
0.49-1.git.62.fc3afd4 < 0.49.1.dev

So I don't see any way to bump the MIN_BUILDER_VERSION without requiring to immediately release a new copr-rpmbuld package. That means, that within PR I need to bump the MIN_BUILDER_VERSION, which will temporarily break the PR for me because my copr-rpmmbuild version won't be sufficient and after merging the PR, I will release its new version to get it working again. That's utterly too complicated.

Or maybe I am getting it all wrong?

I am proposing to use the same workflow that we used for versioning APIv1 a long time ago. I would like to add something like FEATURE_VERSION=123 into copr-rpmbuild and MIN_BUILDER_FEATURE_VERSION=123 variable to copr-backend. Then provide a copr-rpmbuild --feature-version command that would be called from backend instead of rpm -q copr-rpmbuild --qf \"%{VERSION}\n\".

Since those variables would be integers and in no way tied to a release process, the usage would be dead simple.

Also, please note that I am not suggesting to increment FEATURE_VERSION every time we make a change or add a feature. We don't care for that. I suggest incrementing it only when adding a new feature that backend depends on (e.g. PR#1780)


stable release is e.g. 0.49-1

Note that this is VERSION-RELEASE, not just VERSION.

So I don't see any way to bump the MIN_BUILDER_VERSION without requiring to immediately release a new copr-rpmbuld package.

No need to release a new package, just bump also the Version in copr-rpmbuild.spec file to 49.1.dev, so it matches the requirement. The next stable version will be 0.50.

I am proposing to use the same workflow that we used for versioning APIv1 a long time ago.

Ok, just that I don't see there so much benefit to iterate on this that much ..

Since those variables would be integers and in no way tied to a release process, the usage would be dead simple.

Though you still need to bump the feature version number on two places, it sounds like it is pretty equivalent approach. And since then you need to take care of two numbers (both the package version, and feature version).

That said, I have nothing against an approach you consider better ... I'll adapt
no matter what. It just doesn't seem to be a number one priority issue.

On-topic idea, I think we should document (near the MIN_BUILDER_VERSION) that
"This implies a bump in copr-rpmbuild.spec! We typically keep a '*.1.dev' version
here because it allows us to confidentally beat the Fedora-default package version
and run e.g. the integration tests against development package version from the
main branch".

Metadata Update from @nikromen:
- Issue close_status updated to: MIGRATED
- Issue status updated to: Closed (was: Open)

2 years ago

Log in to comment on this ticket.

Metadata