Skip to content

Release v0.32.1-rc.0#5192

Closed
SoloJacobs wants to merge 5 commits intoprometheus:mainfrom
SoloJacobs:v0-32-1
Closed

Release v0.32.1-rc.0#5192
SoloJacobs wants to merge 5 commits intoprometheus:mainfrom
SoloJacobs:v0-32-1

Conversation

@SoloJacobs
Copy link
Copy Markdown
Contributor

@SoloJacobs SoloJacobs commented Apr 26, 2026

Summary by CodeRabbit

Release Notes

  • Bug Fixes

    • Fixed dispatcher handling of contended routes when allocating aggregation groups
  • Chores

    • Version updated to 0.32.1-rc.0 (release candidate)
    • Enhanced build and release pipeline for improved UI asset distribution

SoloJacobs and others added 5 commits April 26, 2026 10:44
This makes it so `make` will no longer skip targets, if files such as
`ui/app/all` exist. More importantly, it will stop this from comming up
in AI code reviews.

Signed-off-by: Solomon Jacobs <solomonjacobs@protonmail.com>
In previous commit, I replaced the dockerized `npm` builds with one that
runs locally. This was necessary to build our our `UI` via `promu`.

This commit adds back the capability to use `docker` to build our UI.
Moreover, it introduces two new capabilities:

* `podman` can be used to build `elm`.
* `CA_BUNDLE` can be used to to pass a certificate bundle into the container.

Fixes: prometheus#2848
Signed-off-by: Solomon Jacobs <solomonjacobs@protonmail.com>
In prometheus#5113 I removed the
build artifacts from our source repo. This complicated the packaging
process for downstream maintainers significantly.

We will still not check the artifacts into our repo directly, since this
is a burden to the review process and opens us up to attacks such as the
https://en.wikipedia.org/wiki/XZ_Utils_backdoor .

Instead we provide two new mechanisms to obtain the artifacts:

* alertmanager-web-ui-(file <VERSION).tar.gz will provide the `dist`
folder needed for calling `make build`.
* We will upload artifacts via actions/upload-artifact. These can then
be easily retrieved for 90 days using `gh`.

Finally, this commit also ensures that `ui/app/dist` is always available
during build steps. The reason is that caching `npm` dependencies is not
sufficient: `Elm` will download its files again anyway, since it stores
them in `~/.elm`. This causes unnecessary network calls.

Technical approach:

* By moving the validation `.build_stamp` to `dist/`, we don't have to
upload that file seperately. `embed` will exclude that file.
* Storing artifacts in `.tarballs` is our method for including files in
the release. This approach was directly taken from
`prometheus/prometheus`.

Relates-to: prometheus#5173
Fixes: prometheus#5163

Signed-off-by: Solomon Jacobs <solomonjacobs@protonmail.com>
…us#5179)

* Fix bug in dispatching to contended route
* Add metrics for dispatching to contended routes
* Add test about dispatching to contended routes
* Skip requiring retries > 0 if a single concurrent goroutine is run

Signed-off-by: Guido Trotter <ultrotter@gmail.com>
Co-authored-by: Guido Trotter <guido@hudson-trading.com>
Signed-off-by: Solomon Jacobs <solomonjacobs@protonmail.com>
Add CHANGELOG entries.

Signed-off-by: Solomon Jacobs <solomonjacobs@protonmail.com>
@SoloJacobs SoloJacobs requested a review from a team as a code owner April 26, 2026 09:05
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Apr 26, 2026

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: 4e934132-168b-488e-a31f-9c374ea6731b

📥 Commits

Reviewing files that changed from the base of the PR and between 3cbc006 and 6d7fe3f.

📒 Files selected for processing (9)
  • .github/workflows/ci.yml
  • .github/workflows/release.yml
  • .promu.yml
  • CHANGELOG.md
  • Makefile
  • VERSION
  • dispatch/dispatch.go
  • dispatch/dispatch_test.go
  • ui/app/Makefile

📝 Walkthrough

Walkthrough

This PR restructures the CI/CD pipeline to produce and reuse prebuilt UI assets across jobs, adds dispatcher metrics to track CAS retry contention in alert aggregation, updates the UI build system for containerized execution, and bumps the version to 0.32.1-rc.0 with corresponding changelog and configuration updates.

Changes

Cohort / File(s) Summary
CI/CD Pipeline & Artifact Management
.github/workflows/ci.yml, .github/workflows/release.yml, Makefile
CI workflow now produces UI distribution artifacts in test_frontend and requires subsequent build/test jobs to download and reuse them. Release workflow downloads prebuilt ui-dist artifact. New assets-tarball Make target creates gzip-compressed tarball of UI assets.
UI Build System
ui/app/Makefile
Refactors build commands to conditionally execute via Docker container or locally based on DOCKER variable. Frontend build output tracking shifted from .build_stamp to dist/.build_stamp. OpenAPI/Elm code generation rewritten to use container runtime with temporary output directory. Cleanup targets updated to remove dist and node_modules.
Dispatcher Metrics & Concurrency
dispatch/dispatch.go, dispatch/dispatch_test.go
Adds two new Prometheus counters (aggrGroupCreationRetries, aggrGroupCreationGivenUp) to DispatcherMetrics to track compare-and-swap retry contention. Updates groupAlert retry loop to record metrics on retry failures and give-up threshold (100 retries). Adds concurrency regression test validating stale reference handling and correct metric recording under contended conditions.
Build Configuration & Metadata
VERSION, CHANGELOG.md, .promu.yml
Bumps version from 0.32.0 to 0.32.1-rc.0. Adds unreleased changelog entry documenting dispatcher contention fix and UI assets pipeline improvements. Updates .promu.yml comment to reference ci.yml and ui/app/Makefile instead of deprecated CircleCI config.

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~45 minutes

Possibly related PRs

Suggested labels

component/ui

Suggested reviewers

  • siavashs
  • Spaceman1701
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
⚔️ Resolve merge conflicts
  • Resolve merge conflict in branch v0-32-1

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@SoloJacobs SoloJacobs closed this Apr 26, 2026
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