Skip to content

WIP: mass rebuild release counters - #18441

Draft
Thien Trung Vuong (trungams) wants to merge 9 commits into
microsoft:4.0from
trungams:tvuong/mass-rebuild-release-counters
Draft

WIP: mass rebuild release counters#18441
Thien Trung Vuong (trungams) wants to merge 9 commits into
microsoft:4.0from
trungams:tvuong/mass-rebuild-release-counters

Conversation

@trungams

Copy link
Copy Markdown
Member

No description provided.

Copilot AI balanced review requested due to automatic review settings August 14, 2026 19:00

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 wasn't able to review this pull request because it exceeds the maximum number of files (300). Try reducing the number of changed files and requesting a review from Copilot again.

@github-actions

Copy link
Copy Markdown

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 fix:, feat:, docs:, chore:, refactor:, test:, or ci: to indicate the type of change being proposed. The linked specification has more details.

Details:

Unknown release type "WIP" found in pull request title "WIP: mass rebuild release counters".

Available types:
 - feat: A new feature
 - fix: A bug fix
 - docs: Documentation only changes
 - style: Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc)
 - refactor: A code change that neither fixes a bug nor adds a feature
 - perf: A code change that improves performance
 - test: Adding missing tests or correcting existing tests
 - build: Changes that affect the build system or external dependencies (example scopes: gulp, broccoli, npm)
 - ci: Changes to our CI configuration files and scripts (example scopes: Travis, Circle, BrowserStack, SauceLabs)
 - chore: Other changes that don't modify src or test files
 - revert: Reverts a previous commit

@trungams
Thien Trung Vuong (trungams) force-pushed the tvuong/mass-rebuild-release-counters branch from cf40cf6 to ad210b3 Compare August 14, 2026 19:11
Copilot AI review requested due to automatic review settings August 14, 2026 19:11

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 wasn't able to review this pull request because it exceeds the maximum number of files (300). Try reducing the number of changed files and requesting a review from Copilot again.

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.
Copilot AI review requested due to automatic review settings August 14, 2026 20:31
@trungams
Thien Trung Vuong (trungams) force-pushed the tvuong/mass-rebuild-release-counters branch from ad210b3 to 1747d4d Compare August 14, 2026 20:31

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 wasn't able to review this pull request because it exceeds the maximum number of files (300). Try reducing the number of changed files and requesting a review from Copilot again.

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.
Copilot AI review requested due to automatic review settings August 15, 2026 01:03

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 wasn't able to review this pull request because it exceeds the maximum number of files (300). Try reducing the number of changed files and requesting a review from Copilot again.

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