WIP: mass rebuild release counters - #18441
Draft
Thien Trung Vuong (trungams) wants to merge 9 commits into
Draft
Conversation
|
Hello, and thank you for opening this pull request! 👋🏼 We appreciate the contribution. We require pull request titles to follow the Conventional Commits specification and it looks like your proposed title needs to be adjusted. Commits in this repo will typically be prefixed with Details: |
Thien Trung Vuong (trungams)
force-pushed
the
tvuong/mass-rebuild-release-counters
branch
from
August 14, 2026 19:11
cf40cf6 to
ad210b3
Compare
The release counter rewriter no longer collapses the whitespace between the Release tag and its value, so re-rendering restores each spec's upstream column alignment. Value-only change: no rendered Release differs.
Migrate 147 components off manual release calculation onto static calculation with an explicit counter, so rebuilds derive a new Release instead of silently reusing one. Counters target either the digits in the Release tag or a bare-integer macro, chosen so the incremented digit is one that actually renders. Leaving manual replays each component's recorded fingerprint history, so these take a one-time upward Release jump. Re-pin azldev to pick up the fingerprint fix that keeps an unconfigured counter out of the component hash.
These components' Release tags do not hold a bare integer directly: they either
reference a macro that resolves to a bare integer (%{baserelease}, %{rpmrelease},
%{release_number}, and chained aliases such as %{pcmk_release} and %{nss_release}),
or embed a literal integer inside an rpm arithmetic expression
(%[N + %{azl_release}]). Both shapes are already expressible with the existing
counter sources, so these can adopt managed release counters with no azldev code
change: 13 use a spec-macro counter targeting the %global/%define that holds the
integer, and 5 use a release-tag counter whose regex anchors the whole tag and
captures the leading integer. nodejs22 is not a counter at all -- its
%{nodejs_release} chain resolves to a hidden %autorelease wrapper -- so it moves
to autorelease.
The release counter only inspects the main package's Release tag, never the
subpackages'. That is safe here because every subpackage Release in these specs
is written in terms of the same shared macro, so bumping the macro once updates
them all consistently.
osbs-client, kernel, and kernel-headers stay on manual: their Release values need
tooling that does not exist yet.
kernel and kernel-headers derive their release from a macro defined in the component macros file rather than the spec, so they adopt the macros-file counter source. osbs-client stays manual: its counter macro has two definitions under %if/%else, and relaxing that guard would serve no other component in the distro.
Replace the release-counter check with 'component check --evr', which also proves that incrementing each counter raises the evaluated EVR, and pass the PR base commit so the cross-ref regression check runs. Plumb the base and source commit vars through the ADO template so it has a comparison ref.
Upstream moved %azl_pkgrelease out of the loose macros file and into kernel.spec. A spec-level define runs after the macros file is loaded and shadows it, so the macros-file counter would have bumped a value that never renders. Target the spec define instead and drop the orphaned generated macros file.
Reconcile generated output with upstream and re-pin azldev.
Thien Trung Vuong (trungams)
force-pushed
the
tvuong/mass-rebuild-release-counters
branch
from
August 14, 2026 20:31
ad210b3 to
1747d4d
Compare
Define %azl_pkgrelease in the spec via the existing release-management overlay instead of a build define, so the counter targets a spec macro like kernel does. This removes the last user of the macros-file counter source.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.