From 93923020cf663a047a2fd7fe20868df16157571b Mon Sep 17 00:00:00 2001
From: PrometheusBot
Date: Sun, 19 Jul 2026 13:06:14 +0200
Subject: [PATCH 001/255] chore: Synchronize common files from
prometheus/prometheus (#2313)
Propagating changes from prometheus/prometheus default branch.
*Source can be found
[here](https://github.com/prometheus/prometheus/blob/main/scripts/sync_repo_files.sh).*
To check out this branch locally and push changes back:
```
git remote add prombot https://github.com/prombot/prometheus_client_java.git
git fetch prombot repo_sync
git checkout -b repo_sync prombot/repo_sync
```
Signed-off-by: prombot
---
.github/workflows/approve-workflows.yml | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/.github/workflows/approve-workflows.yml b/.github/workflows/approve-workflows.yml
index adbcb48175..f372012f2b 100644
--- a/.github/workflows/approve-workflows.yml
+++ b/.github/workflows/approve-workflows.yml
@@ -15,13 +15,13 @@ jobs:
if: >-
github.event.issue.pull_request &&
github.event.comment.body == '/workflow-approve' &&
- github.repository_owner == 'prometheus'
+ (github.repository_owner == 'prometheus' || github.repository_owner == 'prometheus-community')
runs-on: ubuntu-latest
permissions:
actions: write
contents: read
pull-requests: write
steps:
- - uses: prometheus/promci/approve_workflows@370e8c15dcec50043cbe66f2f34633d9efc0a190
+ - uses: prometheus/promci/approve_workflows@370e8c15dcec50043cbe66f2f34633d9efc0a190 # v0.9.0
with:
github_token: ${{ github.token }}
From 852cf1b4911c53e2430a06c8a6f67b0c5b44e71a Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Mon, 20 Jul 2026 10:01:19 +0200
Subject: [PATCH 002/255] chore(deps): update dependency
grafana/docker-otel-lgtm to v0.29.1 (#2311)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This PR contains the following updates:
| Package | Update | Change |
|---|---|---|
|
[grafana/docker-otel-lgtm](https://redirect.github.com/grafana/docker-otel-lgtm)
| patch | `0.29.0` → `0.29.1` |
---
### Release Notes
grafana/docker-otel-lgtm (grafana/docker-otel-lgtm)
###
[`v0.29.1`](https://redirect.github.com/grafana/docker-otel-lgtm/releases/tag/v0.29.1)
[Compare
Source](https://redirect.github.com/grafana/docker-otel-lgtm/compare/v0.29.0...v0.29.1)
#### What's Changed
##### OpenTelemetry & LGTM
- chore(deps): update dependency pyroscope to v2.1.1 by
[@renovate-sh-app](https://redirect.github.com/renovate-sh-app)\[bot]
in
[#1580](https://redirect.github.com/grafana/docker-otel-lgtm/pull/1580)
##### Other Changes
- Avoid flaky attestation by
[@martincostello](https://redirect.github.com/martincostello) in
[#1578](https://redirect.github.com/grafana/docker-otel-lgtm/pull/1578)
- Update CONTRIBUTING by
[@martincostello](https://redirect.github.com/martincostello) in
[#1599](https://redirect.github.com/grafana/docker-otel-lgtm/pull/1599)
- fix: prevent interactive shutdown hangs by
[@ihopenre-eng](https://redirect.github.com/ihopenre-eng) in
[#1596](https://redirect.github.com/grafana/docker-otel-lgtm/pull/1596)
- Add EXPOSE directives by
[@martincostello](https://redirect.github.com/martincostello) in
[#1602](https://redirect.github.com/grafana/docker-otel-lgtm/pull/1602)
#### New Contributors
- [@ihopenre-eng](https://redirect.github.com/ihopenre-eng) made
their first contribution in
[#1596](https://redirect.github.com/grafana/docker-otel-lgtm/pull/1596)
**Full Changelog**:
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/prometheus/client_java).
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
mise.toml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/mise.toml b/mise.toml
index 5b4b30beb5..93e9a36347 100644
--- a/mise.toml
+++ b/mise.toml
@@ -26,7 +26,7 @@ zizmor = "1.26.1"
[env]
FLINT_CONFIG_DIR = ".github/config"
# renovate: datasource=github-releases depName=grafana/docker-otel-lgtm
-LGTM_VERSION = "0.29.0"
+LGTM_VERSION = "0.29.1"
# Latest JMX Exporter release; used as the default ref for the compatibility job.
# renovate: datasource=github-tags depName=prometheus/jmx_exporter versioning=semver-coerced
DEFAULT_JMX_EXPORTER_VERSION = "v1.6.0"
From f33593c80f428683a052b384cacb5010950da26c Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Mon, 20 Jul 2026 10:24:02 +0200
Subject: [PATCH 003/255] chore(deps): update actions/setup-java digest to
03ad4de (#2309)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [actions/setup-java](https://redirect.github.com/actions/setup-java)
([changelog](https://redirect.github.com/actions/setup-java/compare/0f481fcb613427c0f801b606911222b5b6f3083a..03ad4de0992f5dab5e18fcb136590ce7c4a0ac95))
| action | digest | `0f481fc` → `03ad4de` |
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/prometheus/client_java).
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
.github/workflows/codeql.yml | 2 +-
.github/workflows/multi-version-test.yml | 2 +-
.github/workflows/release.yml | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml
index b0295def69..d803abd6ca 100644
--- a/.github/workflows/codeql.yml
+++ b/.github/workflows/codeql.yml
@@ -26,7 +26,7 @@ jobs:
persist-credentials: false
- name: Set up Java
- uses: actions/setup-java@0f481fcb613427c0f801b606911222b5b6f3083a # v5
+ uses: actions/setup-java@03ad4de0992f5dab5e18fcb136590ce7c4a0ac95 # v5
with:
distribution: temurin
java-version: "25"
diff --git a/.github/workflows/multi-version-test.yml b/.github/workflows/multi-version-test.yml
index 2ae27bc02e..74f963d820 100644
--- a/.github/workflows/multi-version-test.yml
+++ b/.github/workflows/multi-version-test.yml
@@ -21,7 +21,7 @@ jobs:
- name: Set up Java ${{ matrix.java }}
id: setup-java
- uses: actions/setup-java@0f481fcb613427c0f801b606911222b5b6f3083a # v5
+ uses: actions/setup-java@03ad4de0992f5dab5e18fcb136590ce7c4a0ac95 # v5
with:
distribution: "temurin"
java-version: ${{ matrix.java }}
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index 29d0416c2e..a8661430bf 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -79,7 +79,7 @@ jobs:
run: mise run build-release
- name: Set up Apache Maven Central
- uses: actions/setup-java@0f481fcb613427c0f801b606911222b5b6f3083a # v5
+ uses: actions/setup-java@03ad4de0992f5dab5e18fcb136590ce7c4a0ac95 # v5
with:
distribution: "temurin"
java-version: "21"
From b49124b54b75792c9e33c670d9678d2981d57b8f Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Mon, 20 Jul 2026 08:51:46 +0000
Subject: [PATCH 004/255] chore(deps): update dependency
com.uber.nullaway:nullaway to v0.13.8 (#2314)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This PR contains the following updates:
| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
|
[com.uber.nullaway:nullaway](https://redirect.github.com/uber/NullAway)
| `0.13.7` → `0.13.8` |

|

|
---
### Release Notes
uber/NullAway (com.uber.nullaway:nullaway)
###
[`v0.13.8`](https://redirect.github.com/uber/NullAway/blob/HEAD/CHANGELOG.md#Version-0138)
Mostly minor bug fixes. Note that NullAway now treats `Map.remove` as
returning `@Nullable`
([#1623](https://redirect.github.com/uber/NullAway/issues/1623)),
which may lead
to newly-reported warnings.
- Quote syntax element references in error messages by
[@AryamannSingh7](https://redirect.github.com/AryamannSingh7)
([#1620](https://redirect.github.com/uber/NullAway/issues/1620))
- Fix stream nullability propagation through sorted() (Fixes
[#1538](https://redirect.github.com/uber/NullAway/issues/1538))
by [@dyrpsf](https://redirect.github.com/dyrpsf)
([#1610](https://redirect.github.com/uber/NullAway/issues/1610))
- Add support for reactor by
[@subhramit](https://redirect.github.com/subhramit)
([#1599](https://redirect.github.com/uber/NullAway/issues/1599))
- Fix issue with passing poly expression to a function parameter with
type from library model
([#1614](https://redirect.github.com/uber/NullAway/issues/1614))
- Fix crash with library model
[@Nullable](https://redirect.github.com/Nullable) being applied
to wildcard
([#1615](https://redirect.github.com/uber/NullAway/issues/1615))
- Add more modeling for Optional
([#1613](https://redirect.github.com/uber/NullAway/issues/1613))
- Update lombok section at README.md by
[@jevanlingen](https://redirect.github.com/jevanlingen)
([#1624](https://redirect.github.com/uber/NullAway/issues/1624))
- Model Map.remove as nullable by
[@codingkiddo](https://redirect.github.com/codingkiddo)
([#1623](https://redirect.github.com/uber/NullAway/issues/1623))
- Better support for conditional expressions in JSpecify mode
([#1608](https://redirect.github.com/uber/NullAway/issues/1608))
- Fix issue with reading annotations on record constructor parameters
due to javac bug
([#1636](https://redirect.github.com/uber/NullAway/issues/1636))
- Maintenance
- Update to Gradle 9.6.1 and AGP 9.3.0
([#1634](https://redirect.github.com/uber/NullAway/issues/1634))
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/prometheus/client_java).
---------
Signed-off-by: Gregor Zeitlinger
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Gregor Zeitlinger
---
.../prometheus-metrics-instrumentation-caffeine.txt | 6 +++++-
.../prometheus-metrics-instrumentation-guava.txt | 6 +++++-
pom.xml | 2 +-
.../instrumentation/caffeine/CacheMetricsCollector.java | 2 ++
.../instrumentation/guava/CacheMetricsCollector.java | 2 ++
5 files changed, 15 insertions(+), 3 deletions(-)
diff --git a/docs/apidiffs/current_vs_latest/prometheus-metrics-instrumentation-caffeine.txt b/docs/apidiffs/current_vs_latest/prometheus-metrics-instrumentation-caffeine.txt
index 731adee45b..2745dbce5c 100644
--- a/docs/apidiffs/current_vs_latest/prometheus-metrics-instrumentation-caffeine.txt
+++ b/docs/apidiffs/current_vs_latest/prometheus-metrics-instrumentation-caffeine.txt
@@ -1,2 +1,6 @@
Comparing source compatibility of prometheus-metrics-instrumentation-caffeine-1.8.1-SNAPSHOT.jar against prometheus-metrics-instrumentation-caffeine-1.8.0.jar
-No changes.
+=== UNCHANGED CLASS: PUBLIC io.prometheus.metrics.instrumentation.caffeine.CacheMetricsCollector (not serializable)
+ === CLASS FILE FORMAT VERSION: 52.0 <- 52.0
+ === UNCHANGED METHOD: PUBLIC com.github.benmanes.caffeine.cache.Cache,?>,?> removeCache(java.lang.String)
+ +++ NEW ANNOTATION: javax.annotation.Nullable
+
diff --git a/docs/apidiffs/current_vs_latest/prometheus-metrics-instrumentation-guava.txt b/docs/apidiffs/current_vs_latest/prometheus-metrics-instrumentation-guava.txt
index 7391e926c5..bb87fbec95 100644
--- a/docs/apidiffs/current_vs_latest/prometheus-metrics-instrumentation-guava.txt
+++ b/docs/apidiffs/current_vs_latest/prometheus-metrics-instrumentation-guava.txt
@@ -1,2 +1,6 @@
Comparing source compatibility of prometheus-metrics-instrumentation-guava-1.8.1-SNAPSHOT.jar against prometheus-metrics-instrumentation-guava-1.8.0.jar
-No changes.
+=== UNCHANGED CLASS: PUBLIC io.prometheus.metrics.instrumentation.guava.CacheMetricsCollector (not serializable)
+ === CLASS FILE FORMAT VERSION: 52.0 <- 52.0
+ === UNCHANGED METHOD: PUBLIC com.google.common.cache.Cache,?>,?> removeCache(java.lang.String)
+ +++ NEW ANNOTATION: javax.annotation.Nullable
+
diff --git a/pom.xml b/pom.xml
index 5752f4ce91..f9126506f5 100644
--- a/pom.xml
+++ b/pom.xml
@@ -505,7 +505,7 @@
com.uber.nullawaynullaway
- 0.13.7
+ 0.13.8
diff --git a/prometheus-metrics-instrumentation-caffeine/src/main/java/io/prometheus/metrics/instrumentation/caffeine/CacheMetricsCollector.java b/prometheus-metrics-instrumentation-caffeine/src/main/java/io/prometheus/metrics/instrumentation/caffeine/CacheMetricsCollector.java
index ba7552910f..687cd43490 100644
--- a/prometheus-metrics-instrumentation-caffeine/src/main/java/io/prometheus/metrics/instrumentation/caffeine/CacheMetricsCollector.java
+++ b/prometheus-metrics-instrumentation-caffeine/src/main/java/io/prometheus/metrics/instrumentation/caffeine/CacheMetricsCollector.java
@@ -20,6 +20,7 @@
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentMap;
import java.util.stream.Collectors;
+import javax.annotation.Nullable;
/**
* Collect metrics from Caffeine's com.github.benmanes.caffeine.cache.Cache.
@@ -149,6 +150,7 @@ public void addCache(String cacheName, AsyncCache, ?> cache) {
*
* @param cacheName cache to be removed
*/
+ @Nullable
public Cache, ?> removeCache(String cacheName) {
return children.remove(cacheName);
}
diff --git a/prometheus-metrics-instrumentation-guava/src/main/java/io/prometheus/metrics/instrumentation/guava/CacheMetricsCollector.java b/prometheus-metrics-instrumentation-guava/src/main/java/io/prometheus/metrics/instrumentation/guava/CacheMetricsCollector.java
index b807a28f03..0b6ff3d78f 100644
--- a/prometheus-metrics-instrumentation-guava/src/main/java/io/prometheus/metrics/instrumentation/guava/CacheMetricsCollector.java
+++ b/prometheus-metrics-instrumentation-guava/src/main/java/io/prometheus/metrics/instrumentation/guava/CacheMetricsCollector.java
@@ -16,6 +16,7 @@
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentMap;
+import javax.annotation.Nullable;
/**
* Collect metrics from Guava's com.google.common.cache.Cache.
@@ -100,6 +101,7 @@ public void addCache(String cacheName, Cache, ?> cache) {
*
* @param cacheName cache to be removed
*/
+ @Nullable
public Cache, ?> removeCache(String cacheName) {
return children.remove(cacheName);
}
From ae53256daebc0794336395892c13dfeaf8f003a5 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Mon, 20 Jul 2026 08:54:34 +0000
Subject: [PATCH 005/255] chore(deps): update jdx/mise-action action to v4.2.1
(#2312)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [jdx/mise-action](https://redirect.github.com/jdx/mise-action) |
action | patch | `v4.2.0` → `v4.2.1` |
---
### Release Notes
jdx/mise-action (jdx/mise-action)
###
[`v4.2.1`](https://redirect.github.com/jdx/mise-action/releases/tag/v4.2.1):
: Signed checksums and PATH export fix
[Compare
Source](https://redirect.github.com/jdx/mise-action/compare/v4.2.0...v4.2.1)
A small patch release with two user-facing fixes: mise downloads are now
verified against minisign-signed release checksums by default, and the
`env` input no longer leaks the runner's `PATH` into subsequent steps.
##### Fixed
##### Verify mise downloads with signed checksums
([#548](https://redirect.github.com/jdx/mise-action/pull/548)) by
[@jdx](https://redirect.github.com/jdx)
The action now embeds mise's minisign public key and verifies
`SHASUMS256.txt.minisig` before trusting any release checksums, then
checks the downloaded mise binary's SHA256 against the verified list.
This applies to both GitHub release archives (verified before
extraction) and the default `mise.jdx.dev` CDN path (verified against
the signed checksum for the matching release asset). If a CDN download
fails verification, the action warns and falls back to the signed GitHub
release asset instead of installing an unverified binary.
- The existing `sha256` input still works as an explicit override.
- Pinned mise versions older than `2024.12.24` (which predate minisign
checksums) get a warning and skip signed verification rather than
failing.
- Because tar installs now extract from a verified file on disk, the
previous streaming `download | tar` fast path is replaced with a
download-then-verify-then-extract flow.
Thanks to [@potiuk](https://redirect.github.com/potiuk) for the
detailed threat-model writeup in
[#547](https://redirect.github.com/jdx/mise-action/issues/547).
##### Exclude `PATH` from environment export
([#556](https://redirect.github.com/jdx/mise-action/pull/556)) by
[@jdx](https://redirect.github.com/jdx)
The `env` input has always documented that "PATH modifications are not
part of this", but since the switch to `mise env --json` in
[#252](https://redirect.github.com/jdx/mise-action/pull/252)
(needed for redaction support), the action was exporting every string
value returned by mise — including the computed `PATH` — into
`GITHUB_ENV`. That effectively snapshotted the runner's entire `PATH`
into subsequent steps and let `[env] _.path` entries in `mise.toml` leak
past the action's own PATH management.
`exportMiseEnv` now skips `PATH` (case-insensitive) when exporting JSON
env vars, restoring the documented behavior. Normal mise env vars are
still exported, and PATH continues to be managed by the action's own
setup (e.g. `add_shims_to_path`). Fixes
[#555](https://redirect.github.com/jdx/mise-action/issues/555).
**Full Changelog**:
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/prometheus/client_java).
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Gregor Zeitlinger
---
.github/workflows/acceptance-tests.yml | 2 +-
.github/workflows/api-diff.yml | 2 +-
.github/workflows/build.yml | 2 +-
.github/workflows/bump-api-diff-baseline.yml | 2 +-
.github/workflows/generate-protobuf.yml | 2 +-
.github/workflows/github-pages.yaml | 2 +-
.github/workflows/java-version-matrix-tests.yml | 2 +-
.github/workflows/jmx-exporter-compatibility.yml | 2 +-
.github/workflows/lint.yml | 2 +-
.github/workflows/micrometer-compatibility.yml | 2 +-
.github/workflows/native-tests.yml | 2 +-
.github/workflows/nightly-benchmarks.yml | 2 +-
.github/workflows/pr-benchmarks.yml | 2 +-
.github/workflows/regenerate-api-diff-otel.yml | 2 +-
.github/workflows/release.yml | 2 +-
.github/workflows/test-release-build.yml | 2 +-
16 files changed, 16 insertions(+), 16 deletions(-)
diff --git a/.github/workflows/acceptance-tests.yml b/.github/workflows/acceptance-tests.yml
index 457568672a..acee388d81 100644
--- a/.github/workflows/acceptance-tests.yml
+++ b/.github/workflows/acceptance-tests.yml
@@ -13,7 +13,7 @@ jobs:
with:
persist-credentials: false
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7
- - uses: jdx/mise-action@e6a8b3978addb5a52f2b4cd9d91eafa7f0ab959d # v4.2.0
+ - uses: jdx/mise-action@dad1bfd3df957f44999b559dd69dc1671cb4e9ea # v4.2.1
with:
version: v2026.7.5
sha256: 5f7ab76afdf0780d12edeaa67e908094e9ccf7924cfe203e415c1cfb87bbf778
diff --git a/.github/workflows/api-diff.yml b/.github/workflows/api-diff.yml
index 6d4a83f37d..0ee1cb3d13 100644
--- a/.github/workflows/api-diff.yml
+++ b/.github/workflows/api-diff.yml
@@ -32,7 +32,7 @@ jobs:
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7
with:
persist-credentials: false
- - uses: jdx/mise-action@e6a8b3978addb5a52f2b4cd9d91eafa7f0ab959d # v4.2.0
+ - uses: jdx/mise-action@dad1bfd3df957f44999b559dd69dc1671cb4e9ea # v4.2.1
with:
version: v2026.7.5
sha256: 5f7ab76afdf0780d12edeaa67e908094e9ccf7924cfe203e415c1cfb87bbf778
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index b6009e1ab1..bc883876cc 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -12,7 +12,7 @@ jobs:
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7
with:
persist-credentials: false
- - uses: jdx/mise-action@e6a8b3978addb5a52f2b4cd9d91eafa7f0ab959d # v4.2.0
+ - uses: jdx/mise-action@dad1bfd3df957f44999b559dd69dc1671cb4e9ea # v4.2.1
with:
version: v2026.7.5
sha256: 5f7ab76afdf0780d12edeaa67e908094e9ccf7924cfe203e415c1cfb87bbf778
diff --git a/.github/workflows/bump-api-diff-baseline.yml b/.github/workflows/bump-api-diff-baseline.yml
index 4df5ee582c..229f970435 100644
--- a/.github/workflows/bump-api-diff-baseline.yml
+++ b/.github/workflows/bump-api-diff-baseline.yml
@@ -33,7 +33,7 @@ jobs:
with:
ref: ${{ env.SNAPSHOT_BRANCH }}
persist-credentials: true
- - uses: jdx/mise-action@e6a8b3978addb5a52f2b4cd9d91eafa7f0ab959d # v4.2.0
+ - uses: jdx/mise-action@dad1bfd3df957f44999b559dd69dc1671cb4e9ea # v4.2.1
with:
version: v2026.7.5
sha256: 5f7ab76afdf0780d12edeaa67e908094e9ccf7924cfe203e415c1cfb87bbf778
diff --git a/.github/workflows/generate-protobuf.yml b/.github/workflows/generate-protobuf.yml
index 60483ade7c..7673047c7f 100644
--- a/.github/workflows/generate-protobuf.yml
+++ b/.github/workflows/generate-protobuf.yml
@@ -18,7 +18,7 @@ jobs:
with:
ref: ${{ github.ref }}
persist-credentials: false
- - uses: jdx/mise-action@e6a8b3978addb5a52f2b4cd9d91eafa7f0ab959d # v4.2.0
+ - uses: jdx/mise-action@dad1bfd3df957f44999b559dd69dc1671cb4e9ea # v4.2.1
with:
version: v2026.7.5
sha256: 5f7ab76afdf0780d12edeaa67e908094e9ccf7924cfe203e415c1cfb87bbf778
diff --git a/.github/workflows/github-pages.yaml b/.github/workflows/github-pages.yaml
index 310a023bf1..67ea659444 100644
--- a/.github/workflows/github-pages.yaml
+++ b/.github/workflows/github-pages.yaml
@@ -37,7 +37,7 @@ jobs:
persist-credentials: false
fetch-tags: "true"
fetch-depth: 0
- - uses: jdx/mise-action@e6a8b3978addb5a52f2b4cd9d91eafa7f0ab959d # v4.2.0
+ - uses: jdx/mise-action@dad1bfd3df957f44999b559dd69dc1671cb4e9ea # v4.2.1
with:
version: v2026.7.5
sha256: 5f7ab76afdf0780d12edeaa67e908094e9ccf7924cfe203e415c1cfb87bbf778
diff --git a/.github/workflows/java-version-matrix-tests.yml b/.github/workflows/java-version-matrix-tests.yml
index 83e13d7d4e..2aa8be06d4 100644
--- a/.github/workflows/java-version-matrix-tests.yml
+++ b/.github/workflows/java-version-matrix-tests.yml
@@ -31,7 +31,7 @@ jobs:
persist-credentials: false
- name: Set up mise
- uses: jdx/mise-action@e6a8b3978addb5a52f2b4cd9d91eafa7f0ab959d # v4.2.0
+ uses: jdx/mise-action@dad1bfd3df957f44999b559dd69dc1671cb4e9ea # v4.2.1
with:
version: v2026.7.5
sha256: 5f7ab76afdf0780d12edeaa67e908094e9ccf7924cfe203e415c1cfb87bbf778
diff --git a/.github/workflows/jmx-exporter-compatibility.yml b/.github/workflows/jmx-exporter-compatibility.yml
index 4869559277..2b5cacc6c0 100644
--- a/.github/workflows/jmx-exporter-compatibility.yml
+++ b/.github/workflows/jmx-exporter-compatibility.yml
@@ -22,7 +22,7 @@ jobs:
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7
with:
persist-credentials: false
- - uses: jdx/mise-action@e6a8b3978addb5a52f2b4cd9d91eafa7f0ab959d # v4.2.0
+ - uses: jdx/mise-action@dad1bfd3df957f44999b559dd69dc1671cb4e9ea # v4.2.1
with:
version: v2026.7.5
sha256: 5f7ab76afdf0780d12edeaa67e908094e9ccf7924cfe203e415c1cfb87bbf778
diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml
index c9b20142ea..de90c8d7b3 100644
--- a/.github/workflows/lint.yml
+++ b/.github/workflows/lint.yml
@@ -21,7 +21,7 @@ jobs:
fetch-depth: 0 # needed for git diff --merge-base in lint:links
- name: Setup mise
- uses: jdx/mise-action@e6a8b3978addb5a52f2b4cd9d91eafa7f0ab959d # v4.2.0
+ uses: jdx/mise-action@dad1bfd3df957f44999b559dd69dc1671cb4e9ea # v4.2.1
with:
version: v2026.7.5
sha256: 5f7ab76afdf0780d12edeaa67e908094e9ccf7924cfe203e415c1cfb87bbf778
diff --git a/.github/workflows/micrometer-compatibility.yml b/.github/workflows/micrometer-compatibility.yml
index e13198be4c..f089bb4db4 100644
--- a/.github/workflows/micrometer-compatibility.yml
+++ b/.github/workflows/micrometer-compatibility.yml
@@ -30,7 +30,7 @@ jobs:
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
persist-credentials: false
- - uses: jdx/mise-action@e6a8b3978addb5a52f2b4cd9d91eafa7f0ab959d # v4.2.0
+ - uses: jdx/mise-action@dad1bfd3df957f44999b559dd69dc1671cb4e9ea # v4.2.1
with:
version: v2026.7.5
sha256: 5f7ab76afdf0780d12edeaa67e908094e9ccf7924cfe203e415c1cfb87bbf778
diff --git a/.github/workflows/native-tests.yml b/.github/workflows/native-tests.yml
index 6352f57a14..88228ad1aa 100644
--- a/.github/workflows/native-tests.yml
+++ b/.github/workflows/native-tests.yml
@@ -13,7 +13,7 @@ jobs:
with:
persist-credentials: false
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7
- - uses: jdx/mise-action@e6a8b3978addb5a52f2b4cd9d91eafa7f0ab959d # v4.2.0
+ - uses: jdx/mise-action@dad1bfd3df957f44999b559dd69dc1671cb4e9ea # v4.2.1
with:
version: v2026.7.5
sha256: 5f7ab76afdf0780d12edeaa67e908094e9ccf7924cfe203e415c1cfb87bbf778
diff --git a/.github/workflows/nightly-benchmarks.yml b/.github/workflows/nightly-benchmarks.yml
index 0cde105bc6..6de4ed5e1b 100644
--- a/.github/workflows/nightly-benchmarks.yml
+++ b/.github/workflows/nightly-benchmarks.yml
@@ -34,7 +34,7 @@ jobs:
fetch-depth: 0
- name: Setup mise
- uses: jdx/mise-action@e6a8b3978addb5a52f2b4cd9d91eafa7f0ab959d # v4.2.0
+ uses: jdx/mise-action@dad1bfd3df957f44999b559dd69dc1671cb4e9ea # v4.2.1
with:
version: v2026.7.5
sha256: 5f7ab76afdf0780d12edeaa67e908094e9ccf7924cfe203e415c1cfb87bbf778
diff --git a/.github/workflows/pr-benchmarks.yml b/.github/workflows/pr-benchmarks.yml
index 0e38c28692..41621f9c77 100644
--- a/.github/workflows/pr-benchmarks.yml
+++ b/.github/workflows/pr-benchmarks.yml
@@ -46,7 +46,7 @@ jobs:
fetch-depth: 0
- name: Setup mise
- uses: jdx/mise-action@e6a8b3978addb5a52f2b4cd9d91eafa7f0ab959d # v4.2.0
+ uses: jdx/mise-action@dad1bfd3df957f44999b559dd69dc1671cb4e9ea # v4.2.1
with:
version: v2026.7.5
sha256: 5f7ab76afdf0780d12edeaa67e908094e9ccf7924cfe203e415c1cfb87bbf778
diff --git a/.github/workflows/regenerate-api-diff-otel.yml b/.github/workflows/regenerate-api-diff-otel.yml
index 9e91fcfa31..438880814d 100644
--- a/.github/workflows/regenerate-api-diff-otel.yml
+++ b/.github/workflows/regenerate-api-diff-otel.yml
@@ -18,7 +18,7 @@ jobs:
with:
ref: ${{ github.ref }}
persist-credentials: false
- - uses: jdx/mise-action@e6a8b3978addb5a52f2b4cd9d91eafa7f0ab959d # v4.2.0
+ - uses: jdx/mise-action@dad1bfd3df957f44999b559dd69dc1671cb4e9ea # v4.2.1
with:
version: v2026.7.5
sha256: 5f7ab76afdf0780d12edeaa67e908094e9ccf7924cfe203e415c1cfb87bbf778
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index a8661430bf..6664a71ca6 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -69,7 +69,7 @@ jobs:
ref: ${{ inputs.tag }}
persist-credentials: false
- - uses: jdx/mise-action@e6a8b3978addb5a52f2b4cd9d91eafa7f0ab959d # v4.2.0
+ - uses: jdx/mise-action@dad1bfd3df957f44999b559dd69dc1671cb4e9ea # v4.2.1
with:
version: v2026.7.5
sha256: 5f7ab76afdf0780d12edeaa67e908094e9ccf7924cfe203e415c1cfb87bbf778
diff --git a/.github/workflows/test-release-build.yml b/.github/workflows/test-release-build.yml
index dfb82be265..1717b77fed 100644
--- a/.github/workflows/test-release-build.yml
+++ b/.github/workflows/test-release-build.yml
@@ -18,7 +18,7 @@ jobs:
persist-credentials: false
fetch-tags: "true"
fetch-depth: 0
- - uses: jdx/mise-action@e6a8b3978addb5a52f2b4cd9d91eafa7f0ab959d # v4.2.0
+ - uses: jdx/mise-action@dad1bfd3df957f44999b559dd69dc1671cb4e9ea # v4.2.1
with:
version: v2026.7.5
sha256: 5f7ab76afdf0780d12edeaa67e908094e9ccf7924cfe203e415c1cfb87bbf778
From b27d0e76628e0b62a8618588538c7f49c415d593 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Mon, 20 Jul 2026 08:54:49 +0000
Subject: [PATCH 006/255] chore(deps): update github/codeql-action action to
v4.37.1 (#2310)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
|
[github/codeql-action](https://redirect.github.com/github/codeql-action)
| action | patch | `v4.37.0` → `v4.37.1` |
---
### Release Notes
github/codeql-action (github/codeql-action)
###
[`v4.37.1`](https://redirect.github.com/github/codeql-action/releases/tag/v4.37.1)
[Compare
Source](https://redirect.github.com/github/codeql-action/compare/v4.37.0...v4.37.1)
- *Upcoming breaking change*: Add a deprecation warning for customers
using CodeQL version 2.20.6 and earlier. These versions of CodeQL were
discontinued on 1 July 2026 alongside GitHub Enterprise Server 3.16, and
will be unsupported by the next minor release of the CodeQL Action.
[#3956](https://redirect.github.com/github/codeql-action/pull/3956)
- Update default CodeQL bundle version to
[2.26.1](https://redirect.github.com/github/codeql-action/releases/tag/codeql-bundle-v2.26.1).
[#4019](https://redirect.github.com/github/codeql-action/pull/4019)
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/prometheus/client_java).
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
.github/workflows/codeql.yml | 4 ++--
.github/workflows/scorecard.yml | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml
index d803abd6ca..2f6db5afa9 100644
--- a/.github/workflows/codeql.yml
+++ b/.github/workflows/codeql.yml
@@ -37,7 +37,7 @@ jobs:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-codeql-${{ hashFiles('**/pom.xml') }}
- name: Initialize CodeQL
- uses: github/codeql-action/init@99df26d4f13ea111d4ec1a7dddef6063f76b97e9 # v4.37.0
+ uses: github/codeql-action/init@7188fc363630916deb702c7fdcf4e481b751f97a # v4.37.1
with:
languages: java
tools: linked
@@ -56,6 +56,6 @@ jobs:
-Djavadoc.skip=true
- name: Perform CodeQL Analysis
- uses: github/codeql-action/analyze@99df26d4f13ea111d4ec1a7dddef6063f76b97e9 # v4.37.0
+ uses: github/codeql-action/analyze@7188fc363630916deb702c7fdcf4e481b751f97a # v4.37.1
with:
category: /language:java
diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml
index 184664f37f..1a1eb958d1 100644
--- a/.github/workflows/scorecard.yml
+++ b/.github/workflows/scorecard.yml
@@ -41,6 +41,6 @@ jobs:
retention-days: 5
- name: Upload to code scanning
- uses: github/codeql-action/upload-sarif@99df26d4f13ea111d4ec1a7dddef6063f76b97e9 # v4.37.0
+ uses: github/codeql-action/upload-sarif@7188fc363630916deb702c7fdcf4e481b751f97a # v4.37.1
with:
sarif_file: results.sarif
From 5e813a0a8cd488b678fcc55dca85bb8d5c84dbad Mon Sep 17 00:00:00 2001
From: Gregor Zeitlinger
Date: Mon, 20 Jul 2026 12:33:20 +0200
Subject: [PATCH 007/255] docs: document semantic PR title guidance (#2318)
## Summary
- Document the Conventional Commits-style pull request title format.
- Add examples and common title types for contributors.
## Validation
- `git diff --check`
- `mise run lint:fix`
Signed-off-by: Gregor Zeitlinger
---
CONTRIBUTING.md | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index d2a93b6769..519b98fea1 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -12,6 +12,18 @@ Prometheus uses GitHub to manage reviews of pull requests.
This will avoid unnecessary work and surely give you and us a good deal
of inspiration.
+## Pull Request Titles
+
+Use a [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/#summary)-style
+title for pull requests:
+
+```text
+[optional scope]:
+```
+
+For example: `fix(metrics): handle empty scrapes`. Common types include `feat`, `fix`,
+`docs`, `test`, `refactor`, `perf`, `build`, `ci`, `chore`, and `revert`.
+
## Signing Off Commits
Every commit must include a `Signed-off-by` line, as required by the
From 0a917717bbd9ec2112f3e85b4d8d03777a39b511 Mon Sep 17 00:00:00 2001
From: Gregor Zeitlinger
Date: Mon, 20 Jul 2026 14:31:07 +0200
Subject: [PATCH 008/255] ci: split PR benchmarks by topic (#2303)
## Summary
Replace the parallel base/head PR benchmark comparison with topic-split
benchmark jobs. Each topic compares base and head sequentially on the
same runner, while topics still run in parallel for better wall-clock
time.
## Changes
- Split PR benchmarks into topic jobs: counter, histogram, and
exposition.
- Run base and head sequentially inside each topic job so each
comparison uses the same runner.
- Merge per-topic JMH JSON results in the summary job before generating
the PR comment.
- Add a comparison note clarifying that base/head are compared on the
same runner within each topic.
- Add histogram benchmark variants for classic-only histograms:
- shared contended 4-thread benchmark remains as `prometheusClassic`
- single-thread benchmark: `prometheusClassicSingleThread`
- per-thread 4-thread benchmark: `prometheusClassicPerThread`
## Why
Running base and head in separate jobs was faster but not reliable
enough because GitHub Actions can schedule them on different CPU models.
Topic splitting keeps the reliable same-runner comparison within each
topic while still allowing unrelated benchmark topics to run in
parallel.
## Validation
- Ran `mise run lint:fix`.
- Ran `mise run build`.
- Ran `python3 -m py_compile .mise/tasks/generate_benchmark_summary.py`.
- Ran `git diff --check`.
- Verified the JMH include patterns select the intended benchmarks with
`java -jar benchmarks/target/benchmarks.jar -l ...`.
- Smoke-tested the topic result merge and summary generation using the
latest #2252 benchmark artifact.
---
.github/workflows/pr-benchmarks.yml | 104 ++++++++++++------
.mise/tasks/generate_benchmark_summary.py | 11 ++
.../benchmarks/HistogramBenchmark.java | 30 +++++
3 files changed, 111 insertions(+), 34 deletions(-)
diff --git a/.github/workflows/pr-benchmarks.yml b/.github/workflows/pr-benchmarks.yml
index 41621f9c77..b4502b0590 100644
--- a/.github/workflows/pr-benchmarks.yml
+++ b/.github/workflows/pr-benchmarks.yml
@@ -23,25 +23,24 @@ jobs:
fail-fast: false
matrix:
include:
- - name: base
- repository: ${{ github.repository }}
- ref: ${{ github.event.pull_request.base.sha }}
- sha: ${{ github.event.pull_request.base.sha }}
- - name: head
- repository: ${{ github.event.pull_request.head.repo.full_name }}
- ref: ${{ github.event.pull_request.head.sha }}
- sha: ${{ github.event.pull_request.head.sha }}
+ - topic: counter
+ pattern: CounterBenchmark
+ - topic: histogram
+ pattern: HistogramBenchmark
+ - topic: exposition
+ pattern: HistogramTextFormatBenchmark|TextFormatUtilBenchmark
permissions:
contents: read # checkout only
env:
HEAD_SHA: ${{ github.event.pull_request.head.sha }}
PR_NUMBER: ${{ github.event.pull_request.number }}
+ JMH_PATTERN: ${{ matrix.pattern }}
steps:
- - name: Checkout ${{ matrix.name }}
+ - name: Checkout PR base
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
- repository: ${{ matrix.repository }}
- ref: ${{ matrix.ref }}
+ repository: ${{ github.repository }}
+ ref: ${{ github.event.pull_request.base.sha }}
persist-credentials: false
fetch-depth: 0
@@ -55,26 +54,49 @@ jobs:
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
with:
path: ~/.m2/repository
- key: ${{ runner.os }}-pr-bench-maven-${{ matrix.name }}-${{ matrix.sha }}
+ key: ${{ runner.os }}-pr-bench-maven-${{ matrix.topic }}-${{ env.HEAD_SHA }}
restore-keys: |
+ ${{ runner.os }}-pr-bench-maven-${{ matrix.topic }}-
${{ runner.os }}-pr-bench-maven-
${{ runner.os }}-maven-
- - name: Run ${{ matrix.name }} JMH benchmarks
- run: mise run benchmark:ci-json
-
- - name: Capture ${{ matrix.name }} runner info
+ - name: Capture runner info
run: |
python3 ./.mise/tasks/generate_benchmark_summary.py \
- --write-system-info runner-info.json
+ --write-system-info /tmp/runner-info.json
+
+ - name: Run base ${{ matrix.topic }} benchmarks
+ run: mise run benchmark:ci-json
+ env:
+ JMH_ARGS: -f 3 -wi 3 -i 5 ${{ env.JMH_PATTERN }}
+
+ - name: Save base ${{ matrix.topic }} results
+ run: mv benchmark-results.json /tmp/base-results.json
- - name: Upload ${{ matrix.name }} raw benchmark results
+ - name: Checkout PR head
+ uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
+ with:
+ repository: ${{ github.event.pull_request.head.repo.full_name }}
+ ref: ${{ github.event.pull_request.head.sha }}
+ persist-credentials: false
+ fetch-depth: 0
+
+ - name: Run head ${{ matrix.topic }} benchmarks
+ run: mise run benchmark:ci-json
+ env:
+ JMH_ARGS: -f 3 -wi 3 -i 5 ${{ env.JMH_PATTERN }}
+
+ - name: Save head ${{ matrix.topic }} results
+ run: mv benchmark-results.json /tmp/head-results.json
+
+ - name: Upload ${{ matrix.topic }} benchmark results
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
- name: pr-benchmark-raw-${{ matrix.name }}-${{ env.PR_NUMBER }}-${{ env.HEAD_SHA }}
+ name: pr-benchmark-topic-${{ matrix.topic }}-${{ env.PR_NUMBER }}-${{ env.HEAD_SHA }}
path: |
- benchmark-results.json
- runner-info.json
+ /tmp/base-results.json
+ /tmp/head-results.json
+ /tmp/runner-info.json
retention-days: 5
summarize:
@@ -95,28 +117,42 @@ jobs:
persist-credentials: false
fetch-depth: 0
- - name: Download base benchmark results
+ - name: Download topic benchmark results
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with:
- name: pr-benchmark-raw-base-${{ env.PR_NUMBER }}-${{ env.HEAD_SHA }}
- path: /tmp/base-benchmark-results
+ pattern: pr-benchmark-topic-*-${{ env.PR_NUMBER }}-${{ env.HEAD_SHA }}
+ path: /tmp/topic-benchmark-results
- - name: Download head benchmark results
- uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
- with:
- name: pr-benchmark-raw-head-${{ env.PR_NUMBER }}-${{ env.HEAD_SHA }}
- path: /tmp/head-benchmark-results
+ - name: Merge topic benchmark results
+ run: |
+ python3 - <<'PY'
+ import json
+ from pathlib import Path
+
+ root = Path('/tmp/topic-benchmark-results')
+ for name in ('base', 'head'):
+ files = sorted(root.glob(f'*/{name}-results.json'))
+ if not files:
+ raise SystemExit(f'No {name} benchmark result files found')
+ merged = []
+ for file in files:
+ with open(file, 'r') as f:
+ merged.extend(json.load(f))
+ with open(f'/tmp/{name}-benchmark-results.json', 'w') as f:
+ json.dump(merged, f)
+ f.write('\n')
+ PY
- name: Generate benchmark summary
run: |
python3 ./.mise/tasks/generate_benchmark_summary.py \
- --input /tmp/head-benchmark-results/benchmark-results.json \
- --baseline /tmp/base-benchmark-results/benchmark-results.json \
- --system-info /tmp/head-benchmark-results/runner-info.json \
- --baseline-system-info /tmp/base-benchmark-results/runner-info.json \
+ --input /tmp/head-benchmark-results.json \
+ --baseline /tmp/base-benchmark-results.json \
--output-dir benchmark-results \
--commit-sha "${{ github.event.pull_request.head.sha }}" \
- --baseline-sha "${{ github.event.pull_request.base.sha }}"
+ --baseline-sha "${{ github.event.pull_request.base.sha }}" \
+ --comparison-note \
+ "Base and head are compared on the same runner within each topic."
env:
GITHUB_REPOSITORY: ${{ github.event.pull_request.head.repo.full_name }}
GITHUB_BASE_REPOSITORY: ${{ github.repository }}
diff --git a/.mise/tasks/generate_benchmark_summary.py b/.mise/tasks/generate_benchmark_summary.py
index cd51e8ac03..e37f1e09ce 100644
--- a/.mise/tasks/generate_benchmark_summary.py
+++ b/.mise/tasks/generate_benchmark_summary.py
@@ -60,6 +60,11 @@ def parse_args():
default=None,
help="Baseline GitHub repository for commit links",
)
+ parser.add_argument(
+ "--comparison-note",
+ default=None,
+ help="Optional note to include in the benchmark comparison section",
+ )
parser.add_argument(
"--system-info",
default=None,
@@ -337,6 +342,7 @@ def generate_comparison_section(
baseline_sha: str,
repo: str,
baseline_repo: str,
+ comparison_note: Optional[str] = None,
system_info: Optional[Dict[str, str]] = None,
baseline_system_info: Optional[Dict[str, str]] = None,
) -> List[str]:
@@ -353,6 +359,8 @@ def generate_comparison_section(
md.append(f"- **Head:** {format_commit_link(commit_sha, repo)}")
md.append(f"- **Base:** {format_commit_link(baseline_sha, baseline_repo)}")
md.append("- **Change:** positive means the PR is faster than base.")
+ if comparison_note:
+ md.append(f"- **Note:** {comparison_note}")
if baseline_system_info:
md.append(f"- **Head runner:** {format_system_info(system_info)}")
md.append(f"- **Base runner:** {format_system_info(baseline_system_info)}")
@@ -406,6 +414,7 @@ def generate_markdown(
baseline_results: Optional[List] = None,
baseline_sha: Optional[str] = None,
baseline_repo: Optional[str] = None,
+ comparison_note: Optional[str] = None,
system_info: Optional[Dict[str, str]] = None,
baseline_system_info: Optional[Dict[str, str]] = None,
) -> str:
@@ -461,6 +470,7 @@ def generate_markdown(
baseline_sha,
repo,
baseline_repo,
+ comparison_note=comparison_note,
system_info=sysinfo,
baseline_system_info=baseline_system_info,
)
@@ -671,6 +681,7 @@ def main():
baseline_results=baseline_results,
baseline_sha=baseline_sha,
baseline_repo=baseline_repo,
+ comparison_note=args.comparison_note,
system_info=system_info,
baseline_system_info=baseline_system_info,
)
diff --git a/benchmarks/src/main/java/io/prometheus/metrics/benchmarks/HistogramBenchmark.java b/benchmarks/src/main/java/io/prometheus/metrics/benchmarks/HistogramBenchmark.java
index 72cba0f9f6..41b7097dbc 100644
--- a/benchmarks/src/main/java/io/prometheus/metrics/benchmarks/HistogramBenchmark.java
+++ b/benchmarks/src/main/java/io/prometheus/metrics/benchmarks/HistogramBenchmark.java
@@ -47,6 +47,16 @@ public PrometheusClassicHistogram() {
}
}
+ @State(Scope.Thread)
+ public static class PrometheusClassicHistogramPerThread {
+
+ final Histogram noLabels;
+
+ public PrometheusClassicHistogramPerThread() {
+ noLabels = Histogram.builder().name("test").help("help").classicOnly().build();
+ }
+ }
+
@State(Scope.Benchmark)
public static class PrometheusNativeHistogram {
@@ -143,6 +153,26 @@ public Histogram prometheusClassic(
return histogram.noLabels;
}
+ @Benchmark
+ @Threads(1)
+ public Histogram prometheusClassicSingleThread(
+ RandomNumbers randomNumbers, PrometheusClassicHistogram histogram) {
+ for (int i = 0; i < randomNumbers.randomNumbers.length; i++) {
+ histogram.noLabels.observe(randomNumbers.randomNumbers[i]);
+ }
+ return histogram.noLabels;
+ }
+
+ @Benchmark
+ @Threads(4)
+ public Histogram prometheusClassicPerThread(
+ RandomNumbers randomNumbers, PrometheusClassicHistogramPerThread histogram) {
+ for (int i = 0; i < randomNumbers.randomNumbers.length; i++) {
+ histogram.noLabels.observe(randomNumbers.randomNumbers[i]);
+ }
+ return histogram.noLabels;
+ }
+
@Benchmark
@Threads(4)
public Histogram prometheusNative(
From baa2bbb140e9b5d600ed8f3576c059fc0b25b28b Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Tue, 21 Jul 2026 17:31:34 +0200
Subject: [PATCH 009/255] chore(deps): update actions/checkout action to v7.0.1
(#2321)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [actions/checkout](https://redirect.github.com/actions/checkout) |
action | patch | `v7.0.0` → `v7.0.1` |
---
### Release Notes
actions/checkout (actions/checkout)
###
[`v7.0.1`](https://redirect.github.com/actions/checkout/blob/HEAD/CHANGELOG.md#v701)
[Compare
Source](https://redirect.github.com/actions/checkout/compare/v7.0.0...v7.0.1)
- Bump github/codeql-action from 3 to 4 by
[@dependabot](https://redirect.github.com/dependabot)\[bot] in
[#2475](https://redirect.github.com/actions/checkout/pull/2475)
- Bump actions/setup-node from 4 to 6 by
[@dependabot](https://redirect.github.com/dependabot)\[bot] in
[#2477](https://redirect.github.com/actions/checkout/pull/2477)
- Bump docker/build-push-action from 6.5.0 to 7.2.0 by
[@dependabot](https://redirect.github.com/dependabot)\[bot] in
[#2478](https://redirect.github.com/actions/checkout/pull/2478)
- Bump docker/login-action from 3.3.0 to 4.2.0 by
[@dependabot](https://redirect.github.com/dependabot)\[bot] in
[#2479](https://redirect.github.com/actions/checkout/pull/2479)
- Bump actions/checkout from 6 to 7 by
[@dependabot](https://redirect.github.com/dependabot)\[bot] in
[#2488](https://redirect.github.com/actions/checkout/pull/2488)
- Bump actions/upload-artifact from 4 to 7 by
[@dependabot](https://redirect.github.com/dependabot)\[bot] in
[#2476](https://redirect.github.com/actions/checkout/pull/2476)
- eslint 9 by
[@dependabot](https://redirect.github.com/dependabot)\[bot] in
[#2474](https://redirect.github.com/actions/checkout/pull/2474)
- Bump the minor-actions-dependencies group with 2 updates by
[@dependabot](https://redirect.github.com/dependabot)\[bot] in
[#2499](https://redirect.github.com/actions/checkout/pull/2499)
- skip running unsafe pr check if input is default by
[@aiqiaoy](https://redirect.github.com/aiqiaoy) in
[#2518](https://redirect.github.com/actions/checkout/pull/2518)
- trim only ascii whitespace for branch by
[@aiqiaoy](https://redirect.github.com/aiqiaoy) in
[#2521](https://redirect.github.com/actions/checkout/pull/2521)
- escape values passed to --unset by
[@aiqiaoy](https://redirect.github.com/aiqiaoy) in
[#2530](https://redirect.github.com/actions/checkout/pull/2530)
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/prometheus/client_java).
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
.github/workflows/java-version-matrix-tests.yml | 2 +-
.github/workflows/lint.yml | 2 +-
.github/workflows/micrometer-compatibility.yml | 2 +-
.github/workflows/nightly-benchmarks.yml | 4 ++--
.github/workflows/pr-benchmarks.yml | 6 +++---
.github/workflows/release.yml | 2 +-
6 files changed, 9 insertions(+), 9 deletions(-)
diff --git a/.github/workflows/java-version-matrix-tests.yml b/.github/workflows/java-version-matrix-tests.yml
index 2aa8be06d4..6a78ce47ca 100644
--- a/.github/workflows/java-version-matrix-tests.yml
+++ b/.github/workflows/java-version-matrix-tests.yml
@@ -26,7 +26,7 @@ jobs:
java-version: [8, 11, 17, 21, 25]
steps:
- name: Check out
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
+ uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false
diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml
index de90c8d7b3..421a70c177 100644
--- a/.github/workflows/lint.yml
+++ b/.github/workflows/lint.yml
@@ -15,7 +15,7 @@ jobs:
steps:
- name: Checkout code
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
+ uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false
fetch-depth: 0 # needed for git diff --merge-base in lint:links
diff --git a/.github/workflows/micrometer-compatibility.yml b/.github/workflows/micrometer-compatibility.yml
index f089bb4db4..ac154b3c83 100644
--- a/.github/workflows/micrometer-compatibility.yml
+++ b/.github/workflows/micrometer-compatibility.yml
@@ -27,7 +27,7 @@ jobs:
# renovate: datasource=git-refs depName=zeitlinger/micrometer packageName=https://github.com/zeitlinger/micrometer currentValue=feat/prom-client-java-typed-family-descriptor
ref: 8f90b70807f5a063c592e3b17ef3b908be894086
steps:
- - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false
- uses: jdx/mise-action@dad1bfd3df957f44999b559dd69dc1671cb4e9ea # v4.2.1
diff --git a/.github/workflows/nightly-benchmarks.yml b/.github/workflows/nightly-benchmarks.yml
index 6de4ed5e1b..a140e55b03 100644
--- a/.github/workflows/nightly-benchmarks.yml
+++ b/.github/workflows/nightly-benchmarks.yml
@@ -28,7 +28,7 @@ jobs:
contents: read # checkout only
steps:
- name: Checkout main branch
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
+ uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false
fetch-depth: 0
@@ -75,7 +75,7 @@ jobs:
contents: write # push generated results to the benchmarks branch
steps:
- name: Checkout
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
+ uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
# zizmor: ignore[artipacked] -- needs credentials to push to benchmarks branch
persist-credentials: true
diff --git a/.github/workflows/pr-benchmarks.yml b/.github/workflows/pr-benchmarks.yml
index b4502b0590..40bd50f1d7 100644
--- a/.github/workflows/pr-benchmarks.yml
+++ b/.github/workflows/pr-benchmarks.yml
@@ -37,7 +37,7 @@ jobs:
JMH_PATTERN: ${{ matrix.pattern }}
steps:
- name: Checkout PR base
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
+ uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
repository: ${{ github.repository }}
ref: ${{ github.event.pull_request.base.sha }}
@@ -74,7 +74,7 @@ jobs:
run: mv benchmark-results.json /tmp/base-results.json
- name: Checkout PR head
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
+ uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
repository: ${{ github.event.pull_request.head.repo.full_name }}
ref: ${{ github.event.pull_request.head.sha }}
@@ -110,7 +110,7 @@ jobs:
PR_NUMBER: ${{ github.event.pull_request.number }}
steps:
- name: Checkout PR head
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
+ uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
repository: ${{ github.event.pull_request.head.repo.full_name }}
ref: ${{ github.event.pull_request.head.sha }}
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index 6664a71ca6..456173d150 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -64,7 +64,7 @@ jobs:
"If the GPG Key Expired"
fi
- name: Checkout Plugin Repository
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
+ uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
ref: ${{ inputs.tag }}
persist-credentials: false
From 243322c8b7012fc88c497d0f1a85cd7e161a6a09 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Tue, 21 Jul 2026 17:31:57 +0200
Subject: [PATCH 010/255] chore(deps): update actions/checkout digest to
3d3c42e (#2320)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [actions/checkout](https://redirect.github.com/actions/checkout)
([changelog](https://redirect.github.com/actions/checkout/compare/9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0..3d3c42e5aac5ba805825da76410c181273ba90b1))
| action | digest | `9c091bb` → `3d3c42e` |
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/prometheus/client_java).
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
.github/workflows/acceptance-tests.yml | 2 +-
.github/workflows/api-diff.yml | 2 +-
.github/workflows/build.yml | 2 +-
.github/workflows/bump-api-diff-baseline.yml | 2 +-
.github/workflows/codeql.yml | 2 +-
.github/workflows/generate-protobuf.yml | 4 ++--
.github/workflows/github-pages.yaml | 2 +-
.github/workflows/jmx-exporter-compatibility.yml | 2 +-
.github/workflows/multi-version-test.yml | 2 +-
.github/workflows/native-tests.yml | 2 +-
.github/workflows/regenerate-api-diff-otel.yml | 4 ++--
.github/workflows/scorecard.yml | 2 +-
.github/workflows/test-release-build.yml | 2 +-
13 files changed, 15 insertions(+), 15 deletions(-)
diff --git a/.github/workflows/acceptance-tests.yml b/.github/workflows/acceptance-tests.yml
index acee388d81..4e2204fdda 100644
--- a/.github/workflows/acceptance-tests.yml
+++ b/.github/workflows/acceptance-tests.yml
@@ -12,7 +12,7 @@ jobs:
- name: Check out
with:
persist-credentials: false
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7
+ uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
- uses: jdx/mise-action@dad1bfd3df957f44999b559dd69dc1671cb4e9ea # v4.2.1
with:
version: v2026.7.5
diff --git a/.github/workflows/api-diff.yml b/.github/workflows/api-diff.yml
index 0ee1cb3d13..d93f8732e9 100644
--- a/.github/workflows/api-diff.yml
+++ b/.github/workflows/api-diff.yml
@@ -29,7 +29,7 @@ jobs:
API_DIFF_BASELINE_VERSION: ${{ inputs.baseline_version }}
steps:
- - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
with:
persist-credentials: false
- uses: jdx/mise-action@dad1bfd3df957f44999b559dd69dc1671cb4e9ea # v4.2.1
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index bc883876cc..f5eb59a36e 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -9,7 +9,7 @@ jobs:
build:
runs-on: ubuntu-24.04
steps:
- - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
with:
persist-credentials: false
- uses: jdx/mise-action@dad1bfd3df957f44999b559dd69dc1671cb4e9ea # v4.2.1
diff --git a/.github/workflows/bump-api-diff-baseline.yml b/.github/workflows/bump-api-diff-baseline.yml
index 229f970435..88e276efef 100644
--- a/.github/workflows/bump-api-diff-baseline.yml
+++ b/.github/workflows/bump-api-diff-baseline.yml
@@ -29,7 +29,7 @@ jobs:
permissions:
contents: write # push to the snapshot PR branch
steps:
- - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
with:
ref: ${{ env.SNAPSHOT_BRANCH }}
persist-credentials: true
diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml
index 2f6db5afa9..22b6da2dcb 100644
--- a/.github/workflows/codeql.yml
+++ b/.github/workflows/codeql.yml
@@ -21,7 +21,7 @@ jobs:
security-events: write # required for github/codeql-action/analyze to upload SARIF
steps:
- name: Checkout repository
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7
+ uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
with:
persist-credentials: false
diff --git a/.github/workflows/generate-protobuf.yml b/.github/workflows/generate-protobuf.yml
index 7673047c7f..dbd042db9f 100644
--- a/.github/workflows/generate-protobuf.yml
+++ b/.github/workflows/generate-protobuf.yml
@@ -14,7 +14,7 @@ jobs:
permissions:
contents: read # checkout + read-only `git fetch origin main` for the verify step
steps:
- - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
with:
ref: ${{ github.ref }}
persist-credentials: false
@@ -68,7 +68,7 @@ jobs:
permissions:
contents: write # push regenerated sources back to the renovate branch
steps:
- - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
with:
ref: ${{ github.ref }}
# zizmor: ignore[artipacked] -- needs credentials to push
diff --git a/.github/workflows/github-pages.yaml b/.github/workflows/github-pages.yaml
index 67ea659444..ff7268e9a2 100644
--- a/.github/workflows/github-pages.yaml
+++ b/.github/workflows/github-pages.yaml
@@ -32,7 +32,7 @@ jobs:
if: github.repository == 'prometheus/client_java'
runs-on: ubuntu-24.04
steps:
- - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
with:
persist-credentials: false
fetch-tags: "true"
diff --git a/.github/workflows/jmx-exporter-compatibility.yml b/.github/workflows/jmx-exporter-compatibility.yml
index 2b5cacc6c0..247a8ecd3b 100644
--- a/.github/workflows/jmx-exporter-compatibility.yml
+++ b/.github/workflows/jmx-exporter-compatibility.yml
@@ -19,7 +19,7 @@ jobs:
jmx-exporter-compatibility:
runs-on: ubuntu-24.04
steps:
- - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
with:
persist-credentials: false
- uses: jdx/mise-action@dad1bfd3df957f44999b559dd69dc1671cb4e9ea # v4.2.1
diff --git a/.github/workflows/multi-version-test.yml b/.github/workflows/multi-version-test.yml
index 74f963d820..9ab3ac0e33 100644
--- a/.github/workflows/multi-version-test.yml
+++ b/.github/workflows/multi-version-test.yml
@@ -15,7 +15,7 @@ jobs:
java: [17, 21, 25]
steps:
- name: Check out
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7
+ uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
with:
persist-credentials: false
diff --git a/.github/workflows/native-tests.yml b/.github/workflows/native-tests.yml
index 88228ad1aa..1e5ad7edea 100644
--- a/.github/workflows/native-tests.yml
+++ b/.github/workflows/native-tests.yml
@@ -12,7 +12,7 @@ jobs:
- name: Check out
with:
persist-credentials: false
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7
+ uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
- uses: jdx/mise-action@dad1bfd3df957f44999b559dd69dc1671cb4e9ea # v4.2.1
with:
version: v2026.7.5
diff --git a/.github/workflows/regenerate-api-diff-otel.yml b/.github/workflows/regenerate-api-diff-otel.yml
index 438880814d..c6e38b11b2 100644
--- a/.github/workflows/regenerate-api-diff-otel.yml
+++ b/.github/workflows/regenerate-api-diff-otel.yml
@@ -14,7 +14,7 @@ jobs:
permissions:
contents: read # checkout + read-only `git fetch origin main` for the verify step
steps:
- - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
with:
ref: ${{ github.ref }}
persist-credentials: false
@@ -61,7 +61,7 @@ jobs:
permissions:
contents: write # push regenerated apidiffs back to the renovate branch
steps:
- - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
with:
ref: ${{ github.ref }}
# zizmor: ignore[artipacked] -- needs credentials to push
diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml
index 1a1eb958d1..33cad8d72b 100644
--- a/.github/workflows/scorecard.yml
+++ b/.github/workflows/scorecard.yml
@@ -22,7 +22,7 @@ jobs:
id-token: write # required by scorecard-action for OIDC token
steps:
- name: Checkout repository
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7
+ uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
with:
persist-credentials: false
diff --git a/.github/workflows/test-release-build.yml b/.github/workflows/test-release-build.yml
index 1717b77fed..702d2b2fb4 100644
--- a/.github/workflows/test-release-build.yml
+++ b/.github/workflows/test-release-build.yml
@@ -13,7 +13,7 @@ jobs:
build:
runs-on: ubuntu-24.04
steps:
- - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
with:
persist-credentials: false
fetch-tags: "true"
From eaa177514ebbab2ce9b956b3525a9db63b1ece64 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Wed, 22 Jul 2026 09:55:51 +0200
Subject: [PATCH 011/255] chore(deps): update grafana/grafana docker tag to
v13.1.1 (#2322)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This PR contains the following updates:
| Package | Update | Change |
|---|---|---|
| [grafana/grafana](https://redirect.github.com/grafana/grafana) | patch
| `13.1.0` → `13.1.1` |
---
### Release Notes
grafana/grafana (grafana/grafana)
###
[`v13.1.1`](https://redirect.github.com/grafana/grafana/compare/v13.1.0...v13.1.1)
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/prometheus/client_java).
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
examples/example-custom-buckets/docker-compose.yaml | 2 +-
examples/example-exemplars-tail-sampling/docker-compose.yaml | 2 +-
examples/example-native-histogram/docker-compose.yaml | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/examples/example-custom-buckets/docker-compose.yaml b/examples/example-custom-buckets/docker-compose.yaml
index 97d20349d6..71884779c7 100644
--- a/examples/example-custom-buckets/docker-compose.yaml
+++ b/examples/example-custom-buckets/docker-compose.yaml
@@ -18,7 +18,7 @@ services:
- --enable-feature=native-histograms
- --config.file=/prometheus.yml
grafana:
- image: grafana/grafana:13.1.0@sha256:121a7a9ece6dc10b969f1f96eed64b4f07dfac0d0b8abc070f7cb83bbde86f63
+ image: grafana/grafana:13.1.1@sha256:1c1bd67c54c5fcf6e759897852b5a584191bd6796e8d328a5ace457799801261
network_mode: host
volumes:
- ./docker-compose/grafana-datasources.yaml:/etc/grafana/provisioning/datasources/grafana-datasources.yaml
diff --git a/examples/example-exemplars-tail-sampling/docker-compose.yaml b/examples/example-exemplars-tail-sampling/docker-compose.yaml
index 4811ace29f..7cc0e1a657 100644
--- a/examples/example-exemplars-tail-sampling/docker-compose.yaml
+++ b/examples/example-exemplars-tail-sampling/docker-compose.yaml
@@ -59,7 +59,7 @@ services:
command:
- --config.file=/config.yaml
grafana:
- image: grafana/grafana:13.1.0@sha256:121a7a9ece6dc10b969f1f96eed64b4f07dfac0d0b8abc070f7cb83bbde86f63
+ image: grafana/grafana:13.1.1@sha256:1c1bd67c54c5fcf6e759897852b5a584191bd6796e8d328a5ace457799801261
network_mode: host
ports:
- "3000:3000"
diff --git a/examples/example-native-histogram/docker-compose.yaml b/examples/example-native-histogram/docker-compose.yaml
index 8cb3b73c24..a24c34aca9 100644
--- a/examples/example-native-histogram/docker-compose.yaml
+++ b/examples/example-native-histogram/docker-compose.yaml
@@ -18,7 +18,7 @@ services:
- --enable-feature=native-histograms
- --config.file=/prometheus.yml
grafana:
- image: grafana/grafana:13.1.0@sha256:121a7a9ece6dc10b969f1f96eed64b4f07dfac0d0b8abc070f7cb83bbde86f63
+ image: grafana/grafana:13.1.1@sha256:1c1bd67c54c5fcf6e759897852b5a584191bd6796e8d328a5ace457799801261
network_mode: host
volumes:
- ./docker-compose/grafana-datasources.yaml:/etc/grafana/provisioning/datasources/grafana-datasources.yaml
From e6f4b6dce2e10261b847958299611254025a3f1d Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Wed, 22 Jul 2026 09:56:07 +0200
Subject: [PATCH 012/255] chore(deps): update github/codeql-action action to
v4.37.2 (#2323)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
|
[github/codeql-action](https://redirect.github.com/github/codeql-action)
| action | patch | `v4.37.1` → `v4.37.2` |
---
### Release Notes
github/codeql-action (github/codeql-action)
###
[`v4.37.2`](https://redirect.github.com/github/codeql-action/releases/tag/v4.37.2)
[Compare
Source](https://redirect.github.com/github/codeql-action/compare/v4.37.1...v4.37.2)
- The new address format for the `config-file` input that was introduced
in CodeQL Action 4.37.0 is now enabled by default. In addition to the
format described there, the `remote=` prefix can now be used to
explicitly indicate that the input refers to a remote file. All previous
input formats continue to be accepted as well.
[#4023](https://redirect.github.com/github/codeql-action/pull/4023)
- The CodeQL Action can now make use of [configured private
registries](https://docs.github.com/en/code-security/how-tos/secure-at-scale/configure-organization-security/manage-usage-and-access/giving-org-access-private-registries)
in Default Setup to retrieve CodeQL configuration files from remote
repositories that require authentication. This will allow customers to
store their CodeQL configuration in a single repository that can then be
referenced by Default Setup workflows in other repositories. We expect
to roll this and other, related changes out to everyone in July.
[#4007](https://redirect.github.com/github/codeql-action/pull/4007)
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/prometheus/client_java).
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
.github/workflows/codeql.yml | 4 ++--
.github/workflows/scorecard.yml | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml
index 22b6da2dcb..2832d34ebc 100644
--- a/.github/workflows/codeql.yml
+++ b/.github/workflows/codeql.yml
@@ -37,7 +37,7 @@ jobs:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-codeql-${{ hashFiles('**/pom.xml') }}
- name: Initialize CodeQL
- uses: github/codeql-action/init@7188fc363630916deb702c7fdcf4e481b751f97a # v4.37.1
+ uses: github/codeql-action/init@e0647621c2984b5ed2f768cb892365bf2a616ad1 # v4.37.2
with:
languages: java
tools: linked
@@ -56,6 +56,6 @@ jobs:
-Djavadoc.skip=true
- name: Perform CodeQL Analysis
- uses: github/codeql-action/analyze@7188fc363630916deb702c7fdcf4e481b751f97a # v4.37.1
+ uses: github/codeql-action/analyze@e0647621c2984b5ed2f768cb892365bf2a616ad1 # v4.37.2
with:
category: /language:java
diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml
index 33cad8d72b..ee33452505 100644
--- a/.github/workflows/scorecard.yml
+++ b/.github/workflows/scorecard.yml
@@ -41,6 +41,6 @@ jobs:
retention-days: 5
- name: Upload to code scanning
- uses: github/codeql-action/upload-sarif@7188fc363630916deb702c7fdcf4e481b751f97a # v4.37.1
+ uses: github/codeql-action/upload-sarif@e0647621c2984b5ed2f768cb892365bf2a616ad1 # v4.37.2
with:
sarif_file: results.sarif
From f0a28a9ffcbc35e9ab34189bd40b42f078f6089a Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Wed, 22 Jul 2026 11:45:20 +0200
Subject: [PATCH 013/255] chore(deps): update grafana/grafana:13.1.1 docker
digest to 7cb8c64 (#2324)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This PR contains the following updates:
| Package | Update | Change |
|---|---|---|
| [grafana/grafana](https://redirect.github.com/grafana/grafana) |
digest | `1c1bd67` → `7cb8c64` |
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/prometheus/client_java).
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
examples/example-custom-buckets/docker-compose.yaml | 2 +-
examples/example-exemplars-tail-sampling/docker-compose.yaml | 2 +-
examples/example-native-histogram/docker-compose.yaml | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/examples/example-custom-buckets/docker-compose.yaml b/examples/example-custom-buckets/docker-compose.yaml
index 71884779c7..509ef6f3dd 100644
--- a/examples/example-custom-buckets/docker-compose.yaml
+++ b/examples/example-custom-buckets/docker-compose.yaml
@@ -18,7 +18,7 @@ services:
- --enable-feature=native-histograms
- --config.file=/prometheus.yml
grafana:
- image: grafana/grafana:13.1.1@sha256:1c1bd67c54c5fcf6e759897852b5a584191bd6796e8d328a5ace457799801261
+ image: grafana/grafana:13.1.1@sha256:7cb8c64c4d57a57e734073f3cc94620adb24a0acb929bd80ba9f14017e3a975b
network_mode: host
volumes:
- ./docker-compose/grafana-datasources.yaml:/etc/grafana/provisioning/datasources/grafana-datasources.yaml
diff --git a/examples/example-exemplars-tail-sampling/docker-compose.yaml b/examples/example-exemplars-tail-sampling/docker-compose.yaml
index 7cc0e1a657..ad5f542cf0 100644
--- a/examples/example-exemplars-tail-sampling/docker-compose.yaml
+++ b/examples/example-exemplars-tail-sampling/docker-compose.yaml
@@ -59,7 +59,7 @@ services:
command:
- --config.file=/config.yaml
grafana:
- image: grafana/grafana:13.1.1@sha256:1c1bd67c54c5fcf6e759897852b5a584191bd6796e8d328a5ace457799801261
+ image: grafana/grafana:13.1.1@sha256:7cb8c64c4d57a57e734073f3cc94620adb24a0acb929bd80ba9f14017e3a975b
network_mode: host
ports:
- "3000:3000"
diff --git a/examples/example-native-histogram/docker-compose.yaml b/examples/example-native-histogram/docker-compose.yaml
index a24c34aca9..5e2d703985 100644
--- a/examples/example-native-histogram/docker-compose.yaml
+++ b/examples/example-native-histogram/docker-compose.yaml
@@ -18,7 +18,7 @@ services:
- --enable-feature=native-histograms
- --config.file=/prometheus.yml
grafana:
- image: grafana/grafana:13.1.1@sha256:1c1bd67c54c5fcf6e759897852b5a584191bd6796e8d328a5ace457799801261
+ image: grafana/grafana:13.1.1@sha256:7cb8c64c4d57a57e734073f3cc94620adb24a0acb929bd80ba9f14017e3a975b
network_mode: host
volumes:
- ./docker-compose/grafana-datasources.yaml:/etc/grafana/provisioning/datasources/grafana-datasources.yaml
From c291ebad6a15ba7ec57622b9e2a67e9e9eb9e986 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Wed, 22 Jul 2026 11:45:37 +0200
Subject: [PATCH 014/255] chore(deps): update github/codeql-action action to
v4.37.3 (#2325)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
|
[github/codeql-action](https://redirect.github.com/github/codeql-action)
| action | patch | `v4.37.2` → `v4.37.3` |
---
### Release Notes
github/codeql-action (github/codeql-action)
###
[`v4.37.3`](https://redirect.github.com/github/codeql-action/releases/tag/v4.37.3)
[Compare
Source](https://redirect.github.com/github/codeql-action/compare/v4.37.2...v4.37.3)
No user facing changes.
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/prometheus/client_java).
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
.github/workflows/codeql.yml | 4 ++--
.github/workflows/scorecard.yml | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml
index 2832d34ebc..4d0950bedf 100644
--- a/.github/workflows/codeql.yml
+++ b/.github/workflows/codeql.yml
@@ -37,7 +37,7 @@ jobs:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-codeql-${{ hashFiles('**/pom.xml') }}
- name: Initialize CodeQL
- uses: github/codeql-action/init@e0647621c2984b5ed2f768cb892365bf2a616ad1 # v4.37.2
+ uses: github/codeql-action/init@e4fba868fa4b1b91e1fdab776edc8cfbe6e9fb81 # v4.37.3
with:
languages: java
tools: linked
@@ -56,6 +56,6 @@ jobs:
-Djavadoc.skip=true
- name: Perform CodeQL Analysis
- uses: github/codeql-action/analyze@e0647621c2984b5ed2f768cb892365bf2a616ad1 # v4.37.2
+ uses: github/codeql-action/analyze@e4fba868fa4b1b91e1fdab776edc8cfbe6e9fb81 # v4.37.3
with:
category: /language:java
diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml
index ee33452505..06b37bf4ae 100644
--- a/.github/workflows/scorecard.yml
+++ b/.github/workflows/scorecard.yml
@@ -41,6 +41,6 @@ jobs:
retention-days: 5
- name: Upload to code scanning
- uses: github/codeql-action/upload-sarif@e0647621c2984b5ed2f768cb892365bf2a616ad1 # v4.37.2
+ uses: github/codeql-action/upload-sarif@e4fba868fa4b1b91e1fdab776edc8cfbe6e9fb81 # v4.37.3
with:
sarif_file: results.sarif
From e7079662b346d30e9c1aaa3cb6381473c3278fdc Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Thu, 23 Jul 2026 09:07:25 +0200
Subject: [PATCH 015/255] chore(deps): update
otel/opentelemetry-collector-contrib docker tag to v0.157.0 (#2326)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This PR contains the following updates:
| Package | Update | Change |
|---|---|---|
|
[otel/opentelemetry-collector-contrib](https://redirect.github.com/open-telemetry/opentelemetry-collector-releases)
| minor | `0.156.0` → `0.157.0` |
---
### Release Notes
open-telemetry/opentelemetry-collector-releases
(otel/opentelemetry-collector-contrib)
###
[`v0.157.0`](https://redirect.github.com/open-telemetry/opentelemetry-collector-releases/blob/HEAD/CHANGELOG.md#v01570)
[Compare
Source](https://redirect.github.com/open-telemetry/opentelemetry-collector-releases/compare/v0.156.0...v0.157.0)
##### 🛑 Breaking changes 🛑
- `contrib`: Remove deprecated signalfx receiver from the contrib
distribution
([#1551](https://redirect.github.com/open-telemetry/opentelemetry-collector-releases/issues/1551))
- `packaging`: Prevent service being started/enabled upon install for
rpms
([#1334](https://redirect.github.com/open-telemetry/opentelemetry-collector-releases/issues/1334))
This brings behaviour inline with usual expectations for rpm packages
which usually leave this up to the system administrator.
##### 🚀 New components 🚀
- `cardinalityguardianprocessor`: Add Cardinality Guardian processor to
the OpenTelemetry Collector Contrib.
([#1549](https://redirect.github.com/open-telemetry/opentelemetry-collector-releases/issues/1549))
##### 💡 Enhancements 💡
- `ebpf-profiler`: Use a scratch image similar to the contrib image for
the ebpf-profiler image
([#930](https://redirect.github.com/open-telemetry/opentelemetry-collector-releases/issues/930))
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/prometheus/client_java).
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
examples/example-exemplars-tail-sampling/docker-compose.yaml | 2 +-
examples/example-exporter-opentelemetry/docker-compose.yaml | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/examples/example-exemplars-tail-sampling/docker-compose.yaml b/examples/example-exemplars-tail-sampling/docker-compose.yaml
index ad5f542cf0..f032048072 100644
--- a/examples/example-exemplars-tail-sampling/docker-compose.yaml
+++ b/examples/example-exemplars-tail-sampling/docker-compose.yaml
@@ -36,7 +36,7 @@ services:
- -jar
- /example-greeting-service.jar
collector:
- image: otel/opentelemetry-collector-contrib:0.156.0@sha256:125bdbeb7590cc1952c5b3430ecf14063568980c2c93d5b38676cc0446ed8108
+ image: otel/opentelemetry-collector-contrib:0.157.0@sha256:f2f01157055a9b2aab9df7118e1f1c9abf345e99b23bc7a2bc791db374a7d0f6
network_mode: host
volumes:
- ./config/otelcol-config.yaml:/config.yaml
diff --git a/examples/example-exporter-opentelemetry/docker-compose.yaml b/examples/example-exporter-opentelemetry/docker-compose.yaml
index 300bd18ef5..4e526c3fb4 100644
--- a/examples/example-exporter-opentelemetry/docker-compose.yaml
+++ b/examples/example-exporter-opentelemetry/docker-compose.yaml
@@ -13,7 +13,7 @@ services:
#- -agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=*:5005
- /example-exporter-opentelemetry.jar
collector:
- image: otel/opentelemetry-collector-contrib:0.156.0@sha256:125bdbeb7590cc1952c5b3430ecf14063568980c2c93d5b38676cc0446ed8108
+ image: otel/opentelemetry-collector-contrib:0.157.0@sha256:f2f01157055a9b2aab9df7118e1f1c9abf345e99b23bc7a2bc791db374a7d0f6
network_mode: host
volumes:
- ./config/otelcol-config.yaml:/config.yaml
From 7cdd3ad0549778dd2b2674601bba63bbd1acfff7 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Thu, 23 Jul 2026 09:19:40 +0200
Subject: [PATCH 016/255] chore(deps): update dependency
org.apache.maven.plugins:maven-jar-plugin to v3.5.1 (#2327)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This PR contains the following updates:
| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
|
[org.apache.maven.plugins:maven-jar-plugin](https://maven.apache.org/plugins/)
([source](https://redirect.github.com/apache/maven-jar-plugin)) |
`3.5.0` → `3.5.1` |

|

|
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/prometheus/client_java).
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
pom.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/pom.xml b/pom.xml
index f9126506f5..100bde3a77 100644
--- a/pom.xml
+++ b/pom.xml
@@ -129,7 +129,7 @@
maven-jar-plugin
- 3.5.0
+ 3.5.1maven-deploy-plugin
From 1ca27164b646266a10ead6ad1e2e6b5648567b2f Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Thu, 23 Jul 2026 09:19:44 +0200
Subject: [PATCH 017/255] fix(deps): update dependency
io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha to
v2.30.0-alpha (#2328)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This PR contains the following updates:
| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
|
[io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha](https://redirect.github.com/open-telemetry/opentelemetry-java-instrumentation)
| `2.29.0-alpha` → `2.30.0-alpha` |

|

|
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/prometheus/client_java).
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
examples/example-otel-jvm-runtime-metrics/pom.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/examples/example-otel-jvm-runtime-metrics/pom.xml b/examples/example-otel-jvm-runtime-metrics/pom.xml
index cd0c1ba791..fab9943131 100644
--- a/examples/example-otel-jvm-runtime-metrics/pom.xml
+++ b/examples/example-otel-jvm-runtime-metrics/pom.xml
@@ -28,7 +28,7 @@
io.opentelemetry.instrumentationopentelemetry-instrumentation-bom-alpha
- 2.29.0-alpha
+ 2.30.0-alphapomimport
From 07623c14dedfeffed3eace5b8718127add250668 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Thu, 23 Jul 2026 09:08:52 +0000
Subject: [PATCH 018/255] fix(deps): update dependency
io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha to
v2.30.0-alpha (#2330)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This PR contains the following updates:
| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
|
[io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha](https://redirect.github.com/open-telemetry/opentelemetry-java-instrumentation)
| `2.29.0-alpha` → `2.30.0-alpha` |

|

|
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/prometheus/client_java).
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
pom.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/pom.xml b/pom.xml
index 100bde3a77..d03c6cd6c9 100644
--- a/pom.xml
+++ b/pom.xml
@@ -26,7 +26,7 @@
4.3.03.13.26.1.2
- 2.29.0-alpha
+ 2.30.0-alpha825
From 61d79993fc7f854b0749c3f0635c3fa02057adce Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Fri, 24 Jul 2026 08:30:44 +0200
Subject: [PATCH 019/255] chore(deps): update ossf/scorecard-action action to
v2.4.4 (#2338)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
|
[ossf/scorecard-action](https://redirect.github.com/ossf/scorecard-action)
| action | patch | `v2.4.3` → `v2.4.4` |
---
### Release Notes
ossf/scorecard-action (ossf/scorecard-action)
###
[`v2.4.4`](https://redirect.github.com/ossf/scorecard-action/releases/tag/v2.4.4)
[Compare
Source](https://redirect.github.com/ossf/scorecard-action/compare/v2.4.3...v2.4.4)
#### What's Changed
This update bumps the Scorecard version to the v5.5.0 release. For a
complete list of changes, please refer to the [Scorecard v5.4.0 release
notes](https://redirect.github.com/ossf/scorecard/releases/tag/v5.4.0)
and the [Scorecard v5.5.0 release
notes](https://redirect.github.com/ossf/scorecard/releases/tag/v5.5.0).
- log POST failures instead of failing entire action by
[@spencerschrock](https://redirect.github.com/spencerschrock) in
[#1625](https://redirect.github.com/ossf/scorecard-action/pull/1625)
**Full Changelog**:
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/prometheus/client_java).
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
.github/workflows/scorecard.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml
index 06b37bf4ae..a2512f9570 100644
--- a/.github/workflows/scorecard.yml
+++ b/.github/workflows/scorecard.yml
@@ -27,7 +27,7 @@ jobs:
persist-credentials: false
- name: Run OSSF Scorecard analysis
- uses: ossf/scorecard-action@4eaacf0543bb3f2c246792bd56e8cdeffafb205a # v2.4.3
+ uses: ossf/scorecard-action@2d1146689b8cda280b9bc96326124645441f03bc # v2.4.4
with:
results_file: results.sarif
results_format: sarif
From e5e6053a3d989b8e3977ad8c0ccd3c33ce296845 Mon Sep 17 00:00:00 2001
From: Gregor Zeitlinger
Date: Fri, 24 Jul 2026 08:32:53 +0200
Subject: [PATCH 020/255] ci: run current OATS consumer suites (#2229)
## Summary
- replace the legacy direct OATS invocation with the current
`oats-config.yaml` and schema v3 cases
- install the released OATS v0.8.0 binary through Mise's
`aqua:grafana/oats` backend and pin gcx v0.5.0
- keep the existing example-exporter suites but run them through shared
LGTM fixtures and a gcx wrapper
- preserve the custom-check path while moving the suite onto the current
OATS runtime
## Why
This gives OATS v0.8.0 real downstream CI coverage for:
- compose-backed metric suites
- custom-check execution
- HTTP/protobuf and gRPC exporter variants
- current gcx-driven query flow
## Validation
- `mise x aqua:grafana/oats@0.8.0 -- oats version`
- `mise run lint`
- CI runs `mise run acceptance-test` with the released OATS CLI
---------
Signed-off-by: Gregor Zeitlinger
---
.github/renovate-tracked-deps.json | 3 +-
.../oats-tests/agent/oats-case.yaml | 20 +++++
.../oats-tests/agent/oats.yaml | 12 ---
.../agent/service_instance_id_check.py | 52 -----------
.../oats-tests/http/oats-case.yaml | 11 +++
.../oats-tests/http/oats.yaml | 10 ---
mise.lock | 89 ++++++++++++++++++-
mise.toml | 5 +-
oats-config.yaml | 6 ++
9 files changed, 127 insertions(+), 81 deletions(-)
create mode 100644 examples/example-exporter-opentelemetry/oats-tests/agent/oats-case.yaml
delete mode 100644 examples/example-exporter-opentelemetry/oats-tests/agent/oats.yaml
delete mode 100755 examples/example-exporter-opentelemetry/oats-tests/agent/service_instance_id_check.py
create mode 100644 examples/example-exporter-opentelemetry/oats-tests/http/oats-case.yaml
delete mode 100644 examples/example-exporter-opentelemetry/oats-tests/http/oats.yaml
create mode 100644 oats-config.yaml
diff --git a/.github/renovate-tracked-deps.json b/.github/renovate-tracked-deps.json
index 4f3f8c203e..513b437c65 100644
--- a/.github/renovate-tracked-deps.json
+++ b/.github/renovate-tracked-deps.json
@@ -158,11 +158,12 @@
"mise": [
"actionlint",
"aqua:grafana/flint",
+ "aqua:grafana/gcx",
+ "aqua:grafana/oats",
"aqua:jonwiggins/xmloxide",
"aqua:owenlamont/ryl",
"biome",
"editorconfig-checker",
- "go:github.com/grafana/oats",
"google-java-format",
"hugo",
"java",
diff --git a/examples/example-exporter-opentelemetry/oats-tests/agent/oats-case.yaml b/examples/example-exporter-opentelemetry/oats-tests/agent/oats-case.yaml
new file mode 100644
index 0000000000..a8a05d0f2c
--- /dev/null
+++ b/examples/example-exporter-opentelemetry/oats-tests/agent/oats-case.yaml
@@ -0,0 +1,20 @@
+name: java agent exporter preserves target_info identity
+fixture:
+ compose:
+ template: lgtm
+ file: docker-compose.yml
+seed:
+ type: app
+expected:
+ metrics:
+ - promql: "uptime_seconds_total{}"
+ value: ">= 0"
+ - promql: 'count(target_info{service_name!="otelcol-contrib"})'
+ value: "== 2"
+ - promql: 'count(count by (instance) (target_info{service_name!="otelcol-contrib"}))'
+ value: "== 1"
+ custom-checks:
+ - script: |
+ #!/usr/bin/env bash
+ set -euo pipefail
+ curl -fsS "${OATS_GRAFANA_URL:?}/api/health" >/dev/null
diff --git a/examples/example-exporter-opentelemetry/oats-tests/agent/oats.yaml b/examples/example-exporter-opentelemetry/oats-tests/agent/oats.yaml
deleted file mode 100644
index 899d1cd5dd..0000000000
--- a/examples/example-exporter-opentelemetry/oats-tests/agent/oats.yaml
+++ /dev/null
@@ -1,12 +0,0 @@
-# OATS is an acceptance testing framework for OpenTelemetry -
-# https://github.com/grafana/oats/tree/main/yaml
-oats-schema-version: 2
-docker-compose:
- files:
- - ./docker-compose.yml
-expected:
- custom-checks:
- - script: ./service_instance_id_check.py
- metrics:
- - promql: "uptime_seconds_total{}"
- value: ">= 0"
diff --git a/examples/example-exporter-opentelemetry/oats-tests/agent/service_instance_id_check.py b/examples/example-exporter-opentelemetry/oats-tests/agent/service_instance_id_check.py
deleted file mode 100755
index 35ff88b8db..0000000000
--- a/examples/example-exporter-opentelemetry/oats-tests/agent/service_instance_id_check.py
+++ /dev/null
@@ -1,52 +0,0 @@
-#!/usr/bin/env python3
-"""
-Check if the service instance id is present in the exported data.
-Returns 0 if the service instance id is present in the exported data.
-"""
-
-import json
-import urllib.parse
-from urllib.request import urlopen
-
-
-def get_json(url):
- with urlopen(url) as response:
- return json.loads(response.read().decode("utf-8"))
-
-
-def main():
- # Query Prometheus for target_info
- res = get_json("http://localhost:9090/api/v1/query?query=target_info")
-
- # Uncomment for local debugging
- # with open('example_target_info.json') as f:
- # res = json.load(f)
-
- instance_ids = {
- r["metric"]["instance"]
- for r in res["data"]["result"]
- if r["metric"].get("service_name") != "otelcol-contrib"
- }
- instance_ids = list(instance_ids)
-
- print(f"Instance ids found:{instance_ids}")
- if len(instance_ids) > 1:
- print("More than one instance id found")
- print(res)
-
- # Both the agent and the exporter should report the same instance id
- assert len(instance_ids) == 1, "Expected exactly one instance id"
-
- query = f'target_info{{instance="{instance_ids[0]}"}}'
- encoded_query = urllib.parse.quote_plus(query)
- res = get_json(f"http://localhost:9090/api/v1/query?query={encoded_query}")
-
- infos = res["data"]["result"]
- print(infos)
-
- # They should not have the same target info (e.g. only the agent has telemetry_distro_name)
- assert len(infos) == 2, "Expected two target info results"
-
-
-if __name__ == "__main__":
- main()
diff --git a/examples/example-exporter-opentelemetry/oats-tests/http/oats-case.yaml b/examples/example-exporter-opentelemetry/oats-tests/http/oats-case.yaml
new file mode 100644
index 0000000000..fab99dfe32
--- /dev/null
+++ b/examples/example-exporter-opentelemetry/oats-tests/http/oats-case.yaml
@@ -0,0 +1,11 @@
+name: http protobuf exporter emits uptime metric
+fixture:
+ compose:
+ template: lgtm
+ file: docker-compose.yml
+seed:
+ type: app
+expected:
+ metrics:
+ - promql: "uptime_seconds_total{}"
+ value: ">= 0"
diff --git a/examples/example-exporter-opentelemetry/oats-tests/http/oats.yaml b/examples/example-exporter-opentelemetry/oats-tests/http/oats.yaml
deleted file mode 100644
index dbcfcf84f5..0000000000
--- a/examples/example-exporter-opentelemetry/oats-tests/http/oats.yaml
+++ /dev/null
@@ -1,10 +0,0 @@
-# OATS is an acceptance testing framework for OpenTelemetry -
-# https://github.com/grafana/oats/tree/main/yaml
-oats-schema-version: 2
-docker-compose:
- files:
- - ./docker-compose.yml
-expected:
- metrics:
- - promql: "uptime_seconds_total{}"
- value: ">= 0"
diff --git a/mise.lock b/mise.lock
index 89d88d8942..fb15a188d2 100644
--- a/mise.lock
+++ b/mise.lock
@@ -86,6 +86,91 @@ url = "https://github.com/grafana/flint/releases/download/v0.22.7/flint-x86_64-p
url_api = "https://api.github.com/repos/grafana/flint/releases/assets/469229804"
provenance = "github-attestations"
+[[tools."aqua:grafana/gcx"]]
+version = "v0.5.0"
+backend = "aqua:grafana/gcx"
+
+[tools."aqua:grafana/gcx"."platforms.linux-arm64"]
+checksum = "sha256:07811e994101abf3fe51b7d9d5bbcc045830382ece80f37af29d32234cbe4731"
+url = "https://github.com/grafana/gcx/releases/download/v0.5.0/gcx_0.5.0_linux_arm64.tar.gz"
+url_api = "https://api.github.com/repos/grafana/gcx/releases/assets/484583603"
+
+[tools."aqua:grafana/gcx"."platforms.linux-arm64-musl"]
+checksum = "sha256:07811e994101abf3fe51b7d9d5bbcc045830382ece80f37af29d32234cbe4731"
+url = "https://github.com/grafana/gcx/releases/download/v0.5.0/gcx_0.5.0_linux_arm64.tar.gz"
+url_api = "https://api.github.com/repos/grafana/gcx/releases/assets/484583603"
+
+[tools."aqua:grafana/gcx"."platforms.linux-x64"]
+checksum = "sha256:5c0ce026b0625da09ee976115799cba28e6c84375f802c64f7995c0ba87a83b6"
+url = "https://github.com/grafana/gcx/releases/download/v0.5.0/gcx_0.5.0_linux_amd64.tar.gz"
+url_api = "https://api.github.com/repos/grafana/gcx/releases/assets/484583622"
+
+[tools."aqua:grafana/gcx"."platforms.linux-x64-musl"]
+checksum = "sha256:5c0ce026b0625da09ee976115799cba28e6c84375f802c64f7995c0ba87a83b6"
+url = "https://github.com/grafana/gcx/releases/download/v0.5.0/gcx_0.5.0_linux_amd64.tar.gz"
+url_api = "https://api.github.com/repos/grafana/gcx/releases/assets/484583622"
+
+[tools."aqua:grafana/gcx"."platforms.macos-arm64"]
+checksum = "sha256:3835b426490dddbf0cd3cd4a96566ebb2b2a45121c3d61c518e8c3ae54d1ac0c"
+url = "https://github.com/grafana/gcx/releases/download/v0.5.0/gcx_0.5.0_darwin_arm64.tar.gz"
+url_api = "https://api.github.com/repos/grafana/gcx/releases/assets/484583602"
+
+[tools."aqua:grafana/gcx"."platforms.macos-x64"]
+checksum = "sha256:40db287702572bc9e7c5decdd25cd054e8b076008b8f3d543eafa721441da4db"
+url = "https://github.com/grafana/gcx/releases/download/v0.5.0/gcx_0.5.0_darwin_amd64.tar.gz"
+url_api = "https://api.github.com/repos/grafana/gcx/releases/assets/484583604"
+
+[tools."aqua:grafana/gcx"."platforms.windows-x64"]
+checksum = "sha256:e71bdc867b6d13399d4aad15a667c7bc5c6fbf37a187cb87dafeb61113c48921"
+url = "https://github.com/grafana/gcx/releases/download/v0.5.0/gcx_0.5.0_windows_amd64.zip"
+url_api = "https://api.github.com/repos/grafana/gcx/releases/assets/484583601"
+
+[[tools."aqua:grafana/oats"]]
+version = "0.8.0"
+backend = "aqua:grafana/oats"
+
+[tools."aqua:grafana/oats"."platforms.linux-arm64"]
+checksum = "sha256:82eaf1e836cea916b96cef6745423efd8256ceab64bbabd1fa8f13b3883a1212"
+url = "https://github.com/grafana/oats/releases/download/v0.8.0/oats_0.8.0_linux_arm64.tar.gz"
+url_api = "https://api.github.com/repos/grafana/oats/releases/assets/487171323"
+provenance = "github-attestations"
+
+[tools."aqua:grafana/oats"."platforms.linux-arm64-musl"]
+checksum = "sha256:82eaf1e836cea916b96cef6745423efd8256ceab64bbabd1fa8f13b3883a1212"
+url = "https://github.com/grafana/oats/releases/download/v0.8.0/oats_0.8.0_linux_arm64.tar.gz"
+url_api = "https://api.github.com/repos/grafana/oats/releases/assets/487171323"
+provenance = "github-attestations"
+
+[tools."aqua:grafana/oats"."platforms.linux-x64"]
+checksum = "sha256:ea4368c6d7f62244ce959ba60512f271d46d133b50350077257e2bb81c03a5ca"
+url = "https://github.com/grafana/oats/releases/download/v0.8.0/oats_0.8.0_linux_amd64.tar.gz"
+url_api = "https://api.github.com/repos/grafana/oats/releases/assets/487171351"
+provenance = "github-attestations"
+
+[tools."aqua:grafana/oats"."platforms.linux-x64-musl"]
+checksum = "sha256:ea4368c6d7f62244ce959ba60512f271d46d133b50350077257e2bb81c03a5ca"
+url = "https://github.com/grafana/oats/releases/download/v0.8.0/oats_0.8.0_linux_amd64.tar.gz"
+url_api = "https://api.github.com/repos/grafana/oats/releases/assets/487171351"
+provenance = "github-attestations"
+
+[tools."aqua:grafana/oats"."platforms.macos-arm64"]
+checksum = "sha256:156bb14787a09093de8ad0370c95e8104b771ca0b3ede382541f9837db797f27"
+url = "https://github.com/grafana/oats/releases/download/v0.8.0/oats_0.8.0_darwin_arm64.tar.gz"
+url_api = "https://api.github.com/repos/grafana/oats/releases/assets/487171322"
+provenance = "github-attestations"
+
+[tools."aqua:grafana/oats"."platforms.macos-x64"]
+checksum = "sha256:034bc120d0d8bbf8aff05f61a6b569efec821df19bd25bb602ee77d4a6368235"
+url = "https://github.com/grafana/oats/releases/download/v0.8.0/oats_0.8.0_darwin_amd64.tar.gz"
+url_api = "https://api.github.com/repos/grafana/oats/releases/assets/487171352"
+provenance = "github-attestations"
+
+[tools."aqua:grafana/oats"."platforms.windows-x64"]
+checksum = "sha256:166a5577c66efa9e4d677856ae1780212ee27c081042c8d54db0c996019adbc0"
+url = "https://github.com/grafana/oats/releases/download/v0.8.0/oats_0.8.0_windows_amd64.zip"
+url_api = "https://api.github.com/repos/grafana/oats/releases/assets/487171324"
+provenance = "github-attestations"
+
[[tools."aqua:jonwiggins/xmloxide"]]
version = "v0.4.3"
backend = "aqua:jonwiggins/xmloxide"
@@ -250,10 +335,6 @@ checksum = "sha256:7ec31e1a6a9983aa2a4942cb66dfd35e8b61e76263460413988438ae14269
url = "https://github.com/editorconfig-checker/editorconfig-checker/releases/download/v3.8.0/ec-windows-amd64.zip"
url_api = "https://api.github.com/repos/editorconfig-checker/editorconfig-checker/releases/assets/460248513"
-[[tools."go:github.com/grafana/oats"]]
-version = "0.7.0"
-backend = "go:github.com/grafana/oats"
-
[[tools.google-java-format]]
version = "1.35.0"
backend = "aqua:google/google-java-format"
diff --git a/mise.toml b/mise.toml
index 93e9a36347..a9dbac2bc3 100644
--- a/mise.toml
+++ b/mise.toml
@@ -1,5 +1,6 @@
[tools]
-"go:github.com/grafana/oats" = "0.7.0"
+"aqua:grafana/gcx" = "v0.5.0"
+"aqua:grafana/oats" = "0.8.0"
hugo = "0.164.0"
java = "temurin-25.0.3+9.0.LTS"
node = "24.18.0"
@@ -93,7 +94,7 @@ run = "flint run --fix"
[tasks.acceptance-test]
description = "Run OATs acceptance tests"
depends = "build"
-run = "oats -lgtm-version $LGTM_VERSION -timeout 5m examples/"
+run = "oats --no-cache --lgtm-version $LGTM_VERSION --timeout 5m ."
[tasks.javadoc]
description = "Generate Javadoc"
diff --git a/oats-config.yaml b/oats-config.yaml
new file mode 100644
index 0000000000..d23490ffb5
--- /dev/null
+++ b/oats-config.yaml
@@ -0,0 +1,6 @@
+meta:
+ version: 3
+
+cases:
+ - examples/example-exporter-opentelemetry/oats-tests/http/oats-case.yaml
+ - examples/example-exporter-opentelemetry/oats-tests/agent/oats-case.yaml
From 174651dd3168ad2337dbb75377661445facb4d09 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Fri, 24 Jul 2026 16:00:40 +0200
Subject: [PATCH 021/255] chore(deps): update dependency
grafana/docker-otel-lgtm to v0.29.2 (#2339)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This PR contains the following updates:
| Package | Update | Change |
|---|---|---|
|
[grafana/docker-otel-lgtm](https://redirect.github.com/grafana/docker-otel-lgtm)
| patch | `0.29.1` → `0.29.2` |
---
### Release Notes
grafana/docker-otel-lgtm (grafana/docker-otel-lgtm)
###
[`v0.29.2`](https://redirect.github.com/grafana/docker-otel-lgtm/releases/tag/v0.29.2)
[Compare
Source](https://redirect.github.com/grafana/docker-otel-lgtm/compare/v0.29.1...v0.29.2)
#### What's Changed
##### Other Changes
- Refresh stale Grafana-managed plugins by
[@martincostello](https://redirect.github.com/martincostello) in
[#1621](https://redirect.github.com/grafana/docker-otel-lgtm/pull/1621)
**Full Changelog**:
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/prometheus/client_java).
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
mise.toml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/mise.toml b/mise.toml
index a9dbac2bc3..7d63e10db7 100644
--- a/mise.toml
+++ b/mise.toml
@@ -27,7 +27,7 @@ zizmor = "1.26.1"
[env]
FLINT_CONFIG_DIR = ".github/config"
# renovate: datasource=github-releases depName=grafana/docker-otel-lgtm
-LGTM_VERSION = "0.29.1"
+LGTM_VERSION = "0.29.2"
# Latest JMX Exporter release; used as the default ref for the compatibility job.
# renovate: datasource=github-tags depName=prometheus/jmx_exporter versioning=semver-coerced
DEFAULT_JMX_EXPORTER_VERSION = "v1.6.0"
From 7c081da30c522abb0b931d3800bbc5f3b2904ad4 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Fri, 24 Jul 2026 16:00:56 +0200
Subject: [PATCH 022/255] chore(deps): update jdx/mise-action action to v4.2.2
(#2340)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [jdx/mise-action](https://redirect.github.com/jdx/mise-action) |
action | patch | `v4.2.1` → `v4.2.2` |
---
### Release Notes
jdx/mise-action (jdx/mise-action)
###
[`v4.2.2`](https://redirect.github.com/jdx/mise-action/compare/v4.2.1...v4.2.2)
[Compare
Source](https://redirect.github.com/jdx/mise-action/compare/v4.2.1...v4.2.2)
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/prometheus/client_java).
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
.github/workflows/acceptance-tests.yml | 2 +-
.github/workflows/api-diff.yml | 2 +-
.github/workflows/build.yml | 2 +-
.github/workflows/bump-api-diff-baseline.yml | 2 +-
.github/workflows/generate-protobuf.yml | 2 +-
.github/workflows/github-pages.yaml | 2 +-
.github/workflows/java-version-matrix-tests.yml | 2 +-
.github/workflows/jmx-exporter-compatibility.yml | 2 +-
.github/workflows/lint.yml | 2 +-
.github/workflows/micrometer-compatibility.yml | 2 +-
.github/workflows/native-tests.yml | 2 +-
.github/workflows/nightly-benchmarks.yml | 2 +-
.github/workflows/pr-benchmarks.yml | 2 +-
.github/workflows/regenerate-api-diff-otel.yml | 2 +-
.github/workflows/release.yml | 2 +-
.github/workflows/test-release-build.yml | 2 +-
16 files changed, 16 insertions(+), 16 deletions(-)
diff --git a/.github/workflows/acceptance-tests.yml b/.github/workflows/acceptance-tests.yml
index 4e2204fdda..758d948a7d 100644
--- a/.github/workflows/acceptance-tests.yml
+++ b/.github/workflows/acceptance-tests.yml
@@ -13,7 +13,7 @@ jobs:
with:
persist-credentials: false
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
- - uses: jdx/mise-action@dad1bfd3df957f44999b559dd69dc1671cb4e9ea # v4.2.1
+ - uses: jdx/mise-action@f10502fc09dadecfefb962fff68ce77213930204 # v4.2.2
with:
version: v2026.7.5
sha256: 5f7ab76afdf0780d12edeaa67e908094e9ccf7924cfe203e415c1cfb87bbf778
diff --git a/.github/workflows/api-diff.yml b/.github/workflows/api-diff.yml
index d93f8732e9..eed6c41780 100644
--- a/.github/workflows/api-diff.yml
+++ b/.github/workflows/api-diff.yml
@@ -32,7 +32,7 @@ jobs:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
with:
persist-credentials: false
- - uses: jdx/mise-action@dad1bfd3df957f44999b559dd69dc1671cb4e9ea # v4.2.1
+ - uses: jdx/mise-action@f10502fc09dadecfefb962fff68ce77213930204 # v4.2.2
with:
version: v2026.7.5
sha256: 5f7ab76afdf0780d12edeaa67e908094e9ccf7924cfe203e415c1cfb87bbf778
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index f5eb59a36e..17204a05ab 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -12,7 +12,7 @@ jobs:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
with:
persist-credentials: false
- - uses: jdx/mise-action@dad1bfd3df957f44999b559dd69dc1671cb4e9ea # v4.2.1
+ - uses: jdx/mise-action@f10502fc09dadecfefb962fff68ce77213930204 # v4.2.2
with:
version: v2026.7.5
sha256: 5f7ab76afdf0780d12edeaa67e908094e9ccf7924cfe203e415c1cfb87bbf778
diff --git a/.github/workflows/bump-api-diff-baseline.yml b/.github/workflows/bump-api-diff-baseline.yml
index 88e276efef..05690d928d 100644
--- a/.github/workflows/bump-api-diff-baseline.yml
+++ b/.github/workflows/bump-api-diff-baseline.yml
@@ -33,7 +33,7 @@ jobs:
with:
ref: ${{ env.SNAPSHOT_BRANCH }}
persist-credentials: true
- - uses: jdx/mise-action@dad1bfd3df957f44999b559dd69dc1671cb4e9ea # v4.2.1
+ - uses: jdx/mise-action@f10502fc09dadecfefb962fff68ce77213930204 # v4.2.2
with:
version: v2026.7.5
sha256: 5f7ab76afdf0780d12edeaa67e908094e9ccf7924cfe203e415c1cfb87bbf778
diff --git a/.github/workflows/generate-protobuf.yml b/.github/workflows/generate-protobuf.yml
index dbd042db9f..56cb3a57b2 100644
--- a/.github/workflows/generate-protobuf.yml
+++ b/.github/workflows/generate-protobuf.yml
@@ -18,7 +18,7 @@ jobs:
with:
ref: ${{ github.ref }}
persist-credentials: false
- - uses: jdx/mise-action@dad1bfd3df957f44999b559dd69dc1671cb4e9ea # v4.2.1
+ - uses: jdx/mise-action@f10502fc09dadecfefb962fff68ce77213930204 # v4.2.2
with:
version: v2026.7.5
sha256: 5f7ab76afdf0780d12edeaa67e908094e9ccf7924cfe203e415c1cfb87bbf778
diff --git a/.github/workflows/github-pages.yaml b/.github/workflows/github-pages.yaml
index ff7268e9a2..b969838578 100644
--- a/.github/workflows/github-pages.yaml
+++ b/.github/workflows/github-pages.yaml
@@ -37,7 +37,7 @@ jobs:
persist-credentials: false
fetch-tags: "true"
fetch-depth: 0
- - uses: jdx/mise-action@dad1bfd3df957f44999b559dd69dc1671cb4e9ea # v4.2.1
+ - uses: jdx/mise-action@f10502fc09dadecfefb962fff68ce77213930204 # v4.2.2
with:
version: v2026.7.5
sha256: 5f7ab76afdf0780d12edeaa67e908094e9ccf7924cfe203e415c1cfb87bbf778
diff --git a/.github/workflows/java-version-matrix-tests.yml b/.github/workflows/java-version-matrix-tests.yml
index 6a78ce47ca..3b2adc7a61 100644
--- a/.github/workflows/java-version-matrix-tests.yml
+++ b/.github/workflows/java-version-matrix-tests.yml
@@ -31,7 +31,7 @@ jobs:
persist-credentials: false
- name: Set up mise
- uses: jdx/mise-action@dad1bfd3df957f44999b559dd69dc1671cb4e9ea # v4.2.1
+ uses: jdx/mise-action@f10502fc09dadecfefb962fff68ce77213930204 # v4.2.2
with:
version: v2026.7.5
sha256: 5f7ab76afdf0780d12edeaa67e908094e9ccf7924cfe203e415c1cfb87bbf778
diff --git a/.github/workflows/jmx-exporter-compatibility.yml b/.github/workflows/jmx-exporter-compatibility.yml
index 247a8ecd3b..361b43f633 100644
--- a/.github/workflows/jmx-exporter-compatibility.yml
+++ b/.github/workflows/jmx-exporter-compatibility.yml
@@ -22,7 +22,7 @@ jobs:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
with:
persist-credentials: false
- - uses: jdx/mise-action@dad1bfd3df957f44999b559dd69dc1671cb4e9ea # v4.2.1
+ - uses: jdx/mise-action@f10502fc09dadecfefb962fff68ce77213930204 # v4.2.2
with:
version: v2026.7.5
sha256: 5f7ab76afdf0780d12edeaa67e908094e9ccf7924cfe203e415c1cfb87bbf778
diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml
index 421a70c177..e100033165 100644
--- a/.github/workflows/lint.yml
+++ b/.github/workflows/lint.yml
@@ -21,7 +21,7 @@ jobs:
fetch-depth: 0 # needed for git diff --merge-base in lint:links
- name: Setup mise
- uses: jdx/mise-action@dad1bfd3df957f44999b559dd69dc1671cb4e9ea # v4.2.1
+ uses: jdx/mise-action@f10502fc09dadecfefb962fff68ce77213930204 # v4.2.2
with:
version: v2026.7.5
sha256: 5f7ab76afdf0780d12edeaa67e908094e9ccf7924cfe203e415c1cfb87bbf778
diff --git a/.github/workflows/micrometer-compatibility.yml b/.github/workflows/micrometer-compatibility.yml
index ac154b3c83..50d4013364 100644
--- a/.github/workflows/micrometer-compatibility.yml
+++ b/.github/workflows/micrometer-compatibility.yml
@@ -30,7 +30,7 @@ jobs:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false
- - uses: jdx/mise-action@dad1bfd3df957f44999b559dd69dc1671cb4e9ea # v4.2.1
+ - uses: jdx/mise-action@f10502fc09dadecfefb962fff68ce77213930204 # v4.2.2
with:
version: v2026.7.5
sha256: 5f7ab76afdf0780d12edeaa67e908094e9ccf7924cfe203e415c1cfb87bbf778
diff --git a/.github/workflows/native-tests.yml b/.github/workflows/native-tests.yml
index 1e5ad7edea..4726673505 100644
--- a/.github/workflows/native-tests.yml
+++ b/.github/workflows/native-tests.yml
@@ -13,7 +13,7 @@ jobs:
with:
persist-credentials: false
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
- - uses: jdx/mise-action@dad1bfd3df957f44999b559dd69dc1671cb4e9ea # v4.2.1
+ - uses: jdx/mise-action@f10502fc09dadecfefb962fff68ce77213930204 # v4.2.2
with:
version: v2026.7.5
sha256: 5f7ab76afdf0780d12edeaa67e908094e9ccf7924cfe203e415c1cfb87bbf778
diff --git a/.github/workflows/nightly-benchmarks.yml b/.github/workflows/nightly-benchmarks.yml
index a140e55b03..38b939b222 100644
--- a/.github/workflows/nightly-benchmarks.yml
+++ b/.github/workflows/nightly-benchmarks.yml
@@ -34,7 +34,7 @@ jobs:
fetch-depth: 0
- name: Setup mise
- uses: jdx/mise-action@dad1bfd3df957f44999b559dd69dc1671cb4e9ea # v4.2.1
+ uses: jdx/mise-action@f10502fc09dadecfefb962fff68ce77213930204 # v4.2.2
with:
version: v2026.7.5
sha256: 5f7ab76afdf0780d12edeaa67e908094e9ccf7924cfe203e415c1cfb87bbf778
diff --git a/.github/workflows/pr-benchmarks.yml b/.github/workflows/pr-benchmarks.yml
index 40bd50f1d7..a20e1cb289 100644
--- a/.github/workflows/pr-benchmarks.yml
+++ b/.github/workflows/pr-benchmarks.yml
@@ -45,7 +45,7 @@ jobs:
fetch-depth: 0
- name: Setup mise
- uses: jdx/mise-action@dad1bfd3df957f44999b559dd69dc1671cb4e9ea # v4.2.1
+ uses: jdx/mise-action@f10502fc09dadecfefb962fff68ce77213930204 # v4.2.2
with:
version: v2026.7.5
sha256: 5f7ab76afdf0780d12edeaa67e908094e9ccf7924cfe203e415c1cfb87bbf778
diff --git a/.github/workflows/regenerate-api-diff-otel.yml b/.github/workflows/regenerate-api-diff-otel.yml
index c6e38b11b2..54accc0ef6 100644
--- a/.github/workflows/regenerate-api-diff-otel.yml
+++ b/.github/workflows/regenerate-api-diff-otel.yml
@@ -18,7 +18,7 @@ jobs:
with:
ref: ${{ github.ref }}
persist-credentials: false
- - uses: jdx/mise-action@dad1bfd3df957f44999b559dd69dc1671cb4e9ea # v4.2.1
+ - uses: jdx/mise-action@f10502fc09dadecfefb962fff68ce77213930204 # v4.2.2
with:
version: v2026.7.5
sha256: 5f7ab76afdf0780d12edeaa67e908094e9ccf7924cfe203e415c1cfb87bbf778
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index 456173d150..5bc70732c4 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -69,7 +69,7 @@ jobs:
ref: ${{ inputs.tag }}
persist-credentials: false
- - uses: jdx/mise-action@dad1bfd3df957f44999b559dd69dc1671cb4e9ea # v4.2.1
+ - uses: jdx/mise-action@f10502fc09dadecfefb962fff68ce77213930204 # v4.2.2
with:
version: v2026.7.5
sha256: 5f7ab76afdf0780d12edeaa67e908094e9ccf7924cfe203e415c1cfb87bbf778
diff --git a/.github/workflows/test-release-build.yml b/.github/workflows/test-release-build.yml
index 702d2b2fb4..4cbe51d261 100644
--- a/.github/workflows/test-release-build.yml
+++ b/.github/workflows/test-release-build.yml
@@ -18,7 +18,7 @@ jobs:
persist-credentials: false
fetch-tags: "true"
fetch-depth: 0
- - uses: jdx/mise-action@dad1bfd3df957f44999b559dd69dc1671cb4e9ea # v4.2.1
+ - uses: jdx/mise-action@f10502fc09dadecfefb962fff68ce77213930204 # v4.2.2
with:
version: v2026.7.5
sha256: 5f7ab76afdf0780d12edeaa67e908094e9ccf7924cfe203e415c1cfb87bbf778
From 8d257bd70f1b4c7c31d70c559495fc66b9bff874 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Sat, 25 Jul 2026 10:55:56 +0200
Subject: [PATCH 023/255] chore(deps): update jdx/mise-action action to v4.2.3
(#2343)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [jdx/mise-action](https://redirect.github.com/jdx/mise-action) |
action | patch | `v4.2.2` → `v4.2.3` |
---
### Release Notes
jdx/mise-action (jdx/mise-action)
###
[`v4.2.3`](https://redirect.github.com/jdx/mise-action/compare/v4.2.2...v4.2.3)
[Compare
Source](https://redirect.github.com/jdx/mise-action/compare/v4.2.2...v4.2.3)
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/prometheus/client_java).
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
.github/workflows/acceptance-tests.yml | 2 +-
.github/workflows/api-diff.yml | 2 +-
.github/workflows/build.yml | 2 +-
.github/workflows/bump-api-diff-baseline.yml | 2 +-
.github/workflows/generate-protobuf.yml | 2 +-
.github/workflows/github-pages.yaml | 2 +-
.github/workflows/java-version-matrix-tests.yml | 2 +-
.github/workflows/jmx-exporter-compatibility.yml | 2 +-
.github/workflows/lint.yml | 2 +-
.github/workflows/micrometer-compatibility.yml | 2 +-
.github/workflows/native-tests.yml | 2 +-
.github/workflows/nightly-benchmarks.yml | 2 +-
.github/workflows/pr-benchmarks.yml | 2 +-
.github/workflows/regenerate-api-diff-otel.yml | 2 +-
.github/workflows/release.yml | 2 +-
.github/workflows/test-release-build.yml | 2 +-
16 files changed, 16 insertions(+), 16 deletions(-)
diff --git a/.github/workflows/acceptance-tests.yml b/.github/workflows/acceptance-tests.yml
index 758d948a7d..410da0c3f2 100644
--- a/.github/workflows/acceptance-tests.yml
+++ b/.github/workflows/acceptance-tests.yml
@@ -13,7 +13,7 @@ jobs:
with:
persist-credentials: false
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
- - uses: jdx/mise-action@f10502fc09dadecfefb962fff68ce77213930204 # v4.2.2
+ - uses: jdx/mise-action@9e7f7633ff6f6d6048a9418a68d48f288f50eb14 # v4.2.3
with:
version: v2026.7.5
sha256: 5f7ab76afdf0780d12edeaa67e908094e9ccf7924cfe203e415c1cfb87bbf778
diff --git a/.github/workflows/api-diff.yml b/.github/workflows/api-diff.yml
index eed6c41780..c7ad1f0654 100644
--- a/.github/workflows/api-diff.yml
+++ b/.github/workflows/api-diff.yml
@@ -32,7 +32,7 @@ jobs:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
with:
persist-credentials: false
- - uses: jdx/mise-action@f10502fc09dadecfefb962fff68ce77213930204 # v4.2.2
+ - uses: jdx/mise-action@9e7f7633ff6f6d6048a9418a68d48f288f50eb14 # v4.2.3
with:
version: v2026.7.5
sha256: 5f7ab76afdf0780d12edeaa67e908094e9ccf7924cfe203e415c1cfb87bbf778
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 17204a05ab..765b685f2f 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -12,7 +12,7 @@ jobs:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
with:
persist-credentials: false
- - uses: jdx/mise-action@f10502fc09dadecfefb962fff68ce77213930204 # v4.2.2
+ - uses: jdx/mise-action@9e7f7633ff6f6d6048a9418a68d48f288f50eb14 # v4.2.3
with:
version: v2026.7.5
sha256: 5f7ab76afdf0780d12edeaa67e908094e9ccf7924cfe203e415c1cfb87bbf778
diff --git a/.github/workflows/bump-api-diff-baseline.yml b/.github/workflows/bump-api-diff-baseline.yml
index 05690d928d..edbf002f88 100644
--- a/.github/workflows/bump-api-diff-baseline.yml
+++ b/.github/workflows/bump-api-diff-baseline.yml
@@ -33,7 +33,7 @@ jobs:
with:
ref: ${{ env.SNAPSHOT_BRANCH }}
persist-credentials: true
- - uses: jdx/mise-action@f10502fc09dadecfefb962fff68ce77213930204 # v4.2.2
+ - uses: jdx/mise-action@9e7f7633ff6f6d6048a9418a68d48f288f50eb14 # v4.2.3
with:
version: v2026.7.5
sha256: 5f7ab76afdf0780d12edeaa67e908094e9ccf7924cfe203e415c1cfb87bbf778
diff --git a/.github/workflows/generate-protobuf.yml b/.github/workflows/generate-protobuf.yml
index 56cb3a57b2..6c6e54495f 100644
--- a/.github/workflows/generate-protobuf.yml
+++ b/.github/workflows/generate-protobuf.yml
@@ -18,7 +18,7 @@ jobs:
with:
ref: ${{ github.ref }}
persist-credentials: false
- - uses: jdx/mise-action@f10502fc09dadecfefb962fff68ce77213930204 # v4.2.2
+ - uses: jdx/mise-action@9e7f7633ff6f6d6048a9418a68d48f288f50eb14 # v4.2.3
with:
version: v2026.7.5
sha256: 5f7ab76afdf0780d12edeaa67e908094e9ccf7924cfe203e415c1cfb87bbf778
diff --git a/.github/workflows/github-pages.yaml b/.github/workflows/github-pages.yaml
index b969838578..a168df077d 100644
--- a/.github/workflows/github-pages.yaml
+++ b/.github/workflows/github-pages.yaml
@@ -37,7 +37,7 @@ jobs:
persist-credentials: false
fetch-tags: "true"
fetch-depth: 0
- - uses: jdx/mise-action@f10502fc09dadecfefb962fff68ce77213930204 # v4.2.2
+ - uses: jdx/mise-action@9e7f7633ff6f6d6048a9418a68d48f288f50eb14 # v4.2.3
with:
version: v2026.7.5
sha256: 5f7ab76afdf0780d12edeaa67e908094e9ccf7924cfe203e415c1cfb87bbf778
diff --git a/.github/workflows/java-version-matrix-tests.yml b/.github/workflows/java-version-matrix-tests.yml
index 3b2adc7a61..fbe49c90fd 100644
--- a/.github/workflows/java-version-matrix-tests.yml
+++ b/.github/workflows/java-version-matrix-tests.yml
@@ -31,7 +31,7 @@ jobs:
persist-credentials: false
- name: Set up mise
- uses: jdx/mise-action@f10502fc09dadecfefb962fff68ce77213930204 # v4.2.2
+ uses: jdx/mise-action@9e7f7633ff6f6d6048a9418a68d48f288f50eb14 # v4.2.3
with:
version: v2026.7.5
sha256: 5f7ab76afdf0780d12edeaa67e908094e9ccf7924cfe203e415c1cfb87bbf778
diff --git a/.github/workflows/jmx-exporter-compatibility.yml b/.github/workflows/jmx-exporter-compatibility.yml
index 361b43f633..154c6f0a24 100644
--- a/.github/workflows/jmx-exporter-compatibility.yml
+++ b/.github/workflows/jmx-exporter-compatibility.yml
@@ -22,7 +22,7 @@ jobs:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
with:
persist-credentials: false
- - uses: jdx/mise-action@f10502fc09dadecfefb962fff68ce77213930204 # v4.2.2
+ - uses: jdx/mise-action@9e7f7633ff6f6d6048a9418a68d48f288f50eb14 # v4.2.3
with:
version: v2026.7.5
sha256: 5f7ab76afdf0780d12edeaa67e908094e9ccf7924cfe203e415c1cfb87bbf778
diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml
index e100033165..a78b590f90 100644
--- a/.github/workflows/lint.yml
+++ b/.github/workflows/lint.yml
@@ -21,7 +21,7 @@ jobs:
fetch-depth: 0 # needed for git diff --merge-base in lint:links
- name: Setup mise
- uses: jdx/mise-action@f10502fc09dadecfefb962fff68ce77213930204 # v4.2.2
+ uses: jdx/mise-action@9e7f7633ff6f6d6048a9418a68d48f288f50eb14 # v4.2.3
with:
version: v2026.7.5
sha256: 5f7ab76afdf0780d12edeaa67e908094e9ccf7924cfe203e415c1cfb87bbf778
diff --git a/.github/workflows/micrometer-compatibility.yml b/.github/workflows/micrometer-compatibility.yml
index 50d4013364..a27f75048c 100644
--- a/.github/workflows/micrometer-compatibility.yml
+++ b/.github/workflows/micrometer-compatibility.yml
@@ -30,7 +30,7 @@ jobs:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false
- - uses: jdx/mise-action@f10502fc09dadecfefb962fff68ce77213930204 # v4.2.2
+ - uses: jdx/mise-action@9e7f7633ff6f6d6048a9418a68d48f288f50eb14 # v4.2.3
with:
version: v2026.7.5
sha256: 5f7ab76afdf0780d12edeaa67e908094e9ccf7924cfe203e415c1cfb87bbf778
diff --git a/.github/workflows/native-tests.yml b/.github/workflows/native-tests.yml
index 4726673505..473a2935f8 100644
--- a/.github/workflows/native-tests.yml
+++ b/.github/workflows/native-tests.yml
@@ -13,7 +13,7 @@ jobs:
with:
persist-credentials: false
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
- - uses: jdx/mise-action@f10502fc09dadecfefb962fff68ce77213930204 # v4.2.2
+ - uses: jdx/mise-action@9e7f7633ff6f6d6048a9418a68d48f288f50eb14 # v4.2.3
with:
version: v2026.7.5
sha256: 5f7ab76afdf0780d12edeaa67e908094e9ccf7924cfe203e415c1cfb87bbf778
diff --git a/.github/workflows/nightly-benchmarks.yml b/.github/workflows/nightly-benchmarks.yml
index 38b939b222..2aa5bf1aa0 100644
--- a/.github/workflows/nightly-benchmarks.yml
+++ b/.github/workflows/nightly-benchmarks.yml
@@ -34,7 +34,7 @@ jobs:
fetch-depth: 0
- name: Setup mise
- uses: jdx/mise-action@f10502fc09dadecfefb962fff68ce77213930204 # v4.2.2
+ uses: jdx/mise-action@9e7f7633ff6f6d6048a9418a68d48f288f50eb14 # v4.2.3
with:
version: v2026.7.5
sha256: 5f7ab76afdf0780d12edeaa67e908094e9ccf7924cfe203e415c1cfb87bbf778
diff --git a/.github/workflows/pr-benchmarks.yml b/.github/workflows/pr-benchmarks.yml
index a20e1cb289..39f02cae97 100644
--- a/.github/workflows/pr-benchmarks.yml
+++ b/.github/workflows/pr-benchmarks.yml
@@ -45,7 +45,7 @@ jobs:
fetch-depth: 0
- name: Setup mise
- uses: jdx/mise-action@f10502fc09dadecfefb962fff68ce77213930204 # v4.2.2
+ uses: jdx/mise-action@9e7f7633ff6f6d6048a9418a68d48f288f50eb14 # v4.2.3
with:
version: v2026.7.5
sha256: 5f7ab76afdf0780d12edeaa67e908094e9ccf7924cfe203e415c1cfb87bbf778
diff --git a/.github/workflows/regenerate-api-diff-otel.yml b/.github/workflows/regenerate-api-diff-otel.yml
index 54accc0ef6..da1db33b25 100644
--- a/.github/workflows/regenerate-api-diff-otel.yml
+++ b/.github/workflows/regenerate-api-diff-otel.yml
@@ -18,7 +18,7 @@ jobs:
with:
ref: ${{ github.ref }}
persist-credentials: false
- - uses: jdx/mise-action@f10502fc09dadecfefb962fff68ce77213930204 # v4.2.2
+ - uses: jdx/mise-action@9e7f7633ff6f6d6048a9418a68d48f288f50eb14 # v4.2.3
with:
version: v2026.7.5
sha256: 5f7ab76afdf0780d12edeaa67e908094e9ccf7924cfe203e415c1cfb87bbf778
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index 5bc70732c4..a30db041ee 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -69,7 +69,7 @@ jobs:
ref: ${{ inputs.tag }}
persist-credentials: false
- - uses: jdx/mise-action@f10502fc09dadecfefb962fff68ce77213930204 # v4.2.2
+ - uses: jdx/mise-action@9e7f7633ff6f6d6048a9418a68d48f288f50eb14 # v4.2.3
with:
version: v2026.7.5
sha256: 5f7ab76afdf0780d12edeaa67e908094e9ccf7924cfe203e415c1cfb87bbf778
diff --git a/.github/workflows/test-release-build.yml b/.github/workflows/test-release-build.yml
index 4cbe51d261..64bc75b30d 100644
--- a/.github/workflows/test-release-build.yml
+++ b/.github/workflows/test-release-build.yml
@@ -18,7 +18,7 @@ jobs:
persist-credentials: false
fetch-tags: "true"
fetch-depth: 0
- - uses: jdx/mise-action@f10502fc09dadecfefb962fff68ce77213930204 # v4.2.2
+ - uses: jdx/mise-action@9e7f7633ff6f6d6048a9418a68d48f288f50eb14 # v4.2.3
with:
version: v2026.7.5
sha256: 5f7ab76afdf0780d12edeaa67e908094e9ccf7924cfe203e415c1cfb87bbf778
From 9432fdc1933611d34d944d4640ebca3bf91f8ee4 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Sat, 25 Jul 2026 10:56:34 +0200
Subject: [PATCH 024/255] chore(deps): update dependency aqua:grafana/gcx to
v0.6.0 (#2342)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This PR contains the following updates:
| Package | Update | Change |
|---|---|---|
| [aqua:grafana/gcx](https://redirect.github.com/grafana/gcx) | minor |
`0.5.0` → `0.6.0` |
---
### Release Notes
grafana/gcx (aqua:grafana/gcx)
###
[`v0.6.0`](https://redirect.github.com/grafana/gcx/blob/HEAD/CHANGELOG.md#v060-2026-07-24)
[Compare
Source](https://redirect.github.com/grafana/gcx/compare/v0.5.0...v0.6.0)
##### Breaking changes
- Naming convergence: verb-first subcommand renames across all providers
(e.g. `versions`→`list-versions`, `create`→`upsert`, `summary`→`stats`)
- Config split into separate stacks, cloud entries, and contexts
(auto-migrates)
- Agent output contract: one JSON document per finite command
- Profiles: `profile-types` renamed to `list-profile-types` at both
mounts
- Alert: dropped `create`/`update`/`apply` aliases from templates
`upsert`
##### Features
- Telemetry: first-run notice and default-on anonymous usage stats
- Output: list truncation contract with honest caps and agent-legible
metadata
- aio11y: experiments v2 shapes and commands, plus conversation
annotations
- kg: `--dry-run` for model-rules and prom-rules upsert
- Profiles: time-range flags for `labels` and `list-profile-types`
##### Fixes
- Cloud: stop misreporting invalid stack slugs as "slug already taken"
- appo11y: honor `--config` across the direct command tree
- aio11y: honor `--config` in direct agento11y CRUD commands
- irm: decode expanded webhook integration filters
##### Docs
- Added anonymous usage statistics page; fixed usage-stats command
examples
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/prometheus/client_java).
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
mise.lock | 44 ++++++++++++++++++++++----------------------
mise.toml | 2 +-
2 files changed, 23 insertions(+), 23 deletions(-)
diff --git a/mise.lock b/mise.lock
index fb15a188d2..25e7b70427 100644
--- a/mise.lock
+++ b/mise.lock
@@ -87,43 +87,43 @@ url_api = "https://api.github.com/repos/grafana/flint/releases/assets/469229804"
provenance = "github-attestations"
[[tools."aqua:grafana/gcx"]]
-version = "v0.5.0"
+version = "v0.6.0"
backend = "aqua:grafana/gcx"
[tools."aqua:grafana/gcx"."platforms.linux-arm64"]
-checksum = "sha256:07811e994101abf3fe51b7d9d5bbcc045830382ece80f37af29d32234cbe4731"
-url = "https://github.com/grafana/gcx/releases/download/v0.5.0/gcx_0.5.0_linux_arm64.tar.gz"
-url_api = "https://api.github.com/repos/grafana/gcx/releases/assets/484583603"
+checksum = "sha256:4678cce06fc9d6cc364c460f67be0bb06861e00e3c058e48697ae7428938efcb"
+url = "https://github.com/grafana/gcx/releases/download/v0.6.0/gcx_0.6.0_linux_arm64.tar.gz"
+url_api = "https://api.github.com/repos/grafana/gcx/releases/assets/488386380"
[tools."aqua:grafana/gcx"."platforms.linux-arm64-musl"]
-checksum = "sha256:07811e994101abf3fe51b7d9d5bbcc045830382ece80f37af29d32234cbe4731"
-url = "https://github.com/grafana/gcx/releases/download/v0.5.0/gcx_0.5.0_linux_arm64.tar.gz"
-url_api = "https://api.github.com/repos/grafana/gcx/releases/assets/484583603"
+checksum = "sha256:4678cce06fc9d6cc364c460f67be0bb06861e00e3c058e48697ae7428938efcb"
+url = "https://github.com/grafana/gcx/releases/download/v0.6.0/gcx_0.6.0_linux_arm64.tar.gz"
+url_api = "https://api.github.com/repos/grafana/gcx/releases/assets/488386380"
[tools."aqua:grafana/gcx"."platforms.linux-x64"]
-checksum = "sha256:5c0ce026b0625da09ee976115799cba28e6c84375f802c64f7995c0ba87a83b6"
-url = "https://github.com/grafana/gcx/releases/download/v0.5.0/gcx_0.5.0_linux_amd64.tar.gz"
-url_api = "https://api.github.com/repos/grafana/gcx/releases/assets/484583622"
+checksum = "sha256:5e76c064f14d9ec360cc48c46251b06a47762ab0dc755e4275e14ce2f67e8dbe"
+url = "https://github.com/grafana/gcx/releases/download/v0.6.0/gcx_0.6.0_linux_amd64.tar.gz"
+url_api = "https://api.github.com/repos/grafana/gcx/releases/assets/488386396"
[tools."aqua:grafana/gcx"."platforms.linux-x64-musl"]
-checksum = "sha256:5c0ce026b0625da09ee976115799cba28e6c84375f802c64f7995c0ba87a83b6"
-url = "https://github.com/grafana/gcx/releases/download/v0.5.0/gcx_0.5.0_linux_amd64.tar.gz"
-url_api = "https://api.github.com/repos/grafana/gcx/releases/assets/484583622"
+checksum = "sha256:5e76c064f14d9ec360cc48c46251b06a47762ab0dc755e4275e14ce2f67e8dbe"
+url = "https://github.com/grafana/gcx/releases/download/v0.6.0/gcx_0.6.0_linux_amd64.tar.gz"
+url_api = "https://api.github.com/repos/grafana/gcx/releases/assets/488386396"
[tools."aqua:grafana/gcx"."platforms.macos-arm64"]
-checksum = "sha256:3835b426490dddbf0cd3cd4a96566ebb2b2a45121c3d61c518e8c3ae54d1ac0c"
-url = "https://github.com/grafana/gcx/releases/download/v0.5.0/gcx_0.5.0_darwin_arm64.tar.gz"
-url_api = "https://api.github.com/repos/grafana/gcx/releases/assets/484583602"
+checksum = "sha256:7192ec16aef172d03031aa156c155eb351f230dae86e64e1ed337503fe45a1eb"
+url = "https://github.com/grafana/gcx/releases/download/v0.6.0/gcx_0.6.0_darwin_arm64.tar.gz"
+url_api = "https://api.github.com/repos/grafana/gcx/releases/assets/488386379"
[tools."aqua:grafana/gcx"."platforms.macos-x64"]
-checksum = "sha256:40db287702572bc9e7c5decdd25cd054e8b076008b8f3d543eafa721441da4db"
-url = "https://github.com/grafana/gcx/releases/download/v0.5.0/gcx_0.5.0_darwin_amd64.tar.gz"
-url_api = "https://api.github.com/repos/grafana/gcx/releases/assets/484583604"
+checksum = "sha256:b5174d5c47ffeaf21c1a65c83b908538cf664649199bd017d5f3addb537fc4aa"
+url = "https://github.com/grafana/gcx/releases/download/v0.6.0/gcx_0.6.0_darwin_amd64.tar.gz"
+url_api = "https://api.github.com/repos/grafana/gcx/releases/assets/488386377"
[tools."aqua:grafana/gcx"."platforms.windows-x64"]
-checksum = "sha256:e71bdc867b6d13399d4aad15a667c7bc5c6fbf37a187cb87dafeb61113c48921"
-url = "https://github.com/grafana/gcx/releases/download/v0.5.0/gcx_0.5.0_windows_amd64.zip"
-url_api = "https://api.github.com/repos/grafana/gcx/releases/assets/484583601"
+checksum = "sha256:de456400960e2405de01dc493f7659e6a2a6168ea2c26b02e08ccbd06fa22385"
+url = "https://github.com/grafana/gcx/releases/download/v0.6.0/gcx_0.6.0_windows_amd64.zip"
+url_api = "https://api.github.com/repos/grafana/gcx/releases/assets/488386381"
[[tools."aqua:grafana/oats"]]
version = "0.8.0"
diff --git a/mise.toml b/mise.toml
index 7d63e10db7..c44ba3da70 100644
--- a/mise.toml
+++ b/mise.toml
@@ -1,5 +1,5 @@
[tools]
-"aqua:grafana/gcx" = "v0.5.0"
+"aqua:grafana/gcx" = "v0.6.0"
"aqua:grafana/oats" = "0.8.0"
hugo = "0.164.0"
java = "temurin-25.0.3+9.0.LTS"
From 372423c0e54cff6206e9ba5845bd33f69f6c033c Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Mon, 27 Jul 2026 11:03:26 +0200
Subject: [PATCH 025/255] chore(deps): update flint to v0.22.9 (#2345)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This PR contains the following updates:
| Package | Update | Change |
|---|---|---|
| [aqua:grafana/flint](https://redirect.github.com/grafana/flint) |
patch | `0.22.7` → `0.22.9` |
| [grafana/flint](https://redirect.github.com/grafana/flint) | patch |
`v0.22.7` → `v0.22.9` |
---
### Release Notes
grafana/flint (aqua:grafana/flint)
###
[`v0.22.9`](https://redirect.github.com/grafana/flint/blob/HEAD/CHANGELOG.md#0229---2026-07-14)
[Compare
Source](https://redirect.github.com/grafana/flint/compare/v0.22.8...v0.22.9)
##### Fixed
- stream lychee input files through stdin
([#400](https://redirect.github.com/grafana/flint/pull/400))
- discover flint project root from parent mise files
([#401](https://redirect.github.com/grafana/flint/pull/401))
##### Other
- add local flint testing guidance
([#402](https://redirect.github.com/grafana/flint/pull/402))
- *(deps)* update taiki-e/install-action action to v2.83.1
([#399](https://redirect.github.com/grafana/flint/pull/399))
###
[`v0.22.8`](https://redirect.github.com/grafana/flint/blob/HEAD/CHANGELOG.md#0228---2026-07-13)
[Compare
Source](https://redirect.github.com/grafana/flint/compare/v0.22.7...v0.22.8)
##### Fixed
- avoid Windows arg-length limits in git check-attr and Scope::Files
checks
([#390](https://redirect.github.com/grafana/flint/pull/390))
##### Other
- *(deps)* lock file maintenance
([#397](https://redirect.github.com/grafana/flint/pull/397))
- *(deps)* update dependency mise to v2026.7.5
([#395](https://redirect.github.com/grafana/flint/pull/395))
- *(deps)* update linters
([#396](https://redirect.github.com/grafana/flint/pull/396))
- *(deps)* update taiki-e/install-action action to v2.83.0
([#394](https://redirect.github.com/grafana/flint/pull/394))
- *(deps)* update dependency rust to v1.97.0
([#392](https://redirect.github.com/grafana/flint/pull/392))
- *(deps)* update taiki-e/install-action action to v2.82.11
([#391](https://redirect.github.com/grafana/flint/pull/391))
- *(deps)* update dependency go to v1.26.5
([#389](https://redirect.github.com/grafana/flint/pull/389))
- *(deps)* update taiki-e/install-action action to v2.82.10
([#388](https://redirect.github.com/grafana/flint/pull/388))
- *(deps)* update taiki-e/install-action action to v2.82.9
([#387](https://redirect.github.com/grafana/flint/pull/387))
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- "before 4am on Monday"
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about these
updates again.
---
- [ ] If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/prometheus/client_java).
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
.github/renovate.json5 | 2 +-
mise.lock | 32 ++++++++++++++++----------------
mise.toml | 2 +-
3 files changed, 18 insertions(+), 18 deletions(-)
diff --git a/.github/renovate.json5 b/.github/renovate.json5
index e0f47d2a1f..0dc002f195 100644
--- a/.github/renovate.json5
+++ b/.github/renovate.json5
@@ -1,6 +1,6 @@
{
$schema: "https://docs.renovatebot.com/renovate-schema.json",
- extends: ["config:best-practices", "config:recommended", "github>grafana/flint#v0.22.7"],
+ extends: ["config:best-practices", "config:recommended", "github>grafana/flint#v0.22.9"],
platformCommit: "enabled",
automerge: true,
ignorePaths: [
diff --git a/mise.lock b/mise.lock
index 25e7b70427..179dfef1d8 100644
--- a/mise.lock
+++ b/mise.lock
@@ -47,43 +47,43 @@ url_api = "https://api.github.com/repos/rhysd/actionlint/releases/assets/3849249
provenance = "github-attestations"
[[tools."aqua:grafana/flint"]]
-version = "0.22.7"
+version = "0.22.9"
backend = "aqua:grafana/flint"
[tools."aqua:grafana/flint"."platforms.linux-arm64"]
-checksum = "sha256:a9dc15057dee4a896b0015c5574a330865b5f031f9b67e64a50c342f04d70de1"
-url = "https://github.com/grafana/flint/releases/download/v0.22.7/flint-aarch64-unknown-linux-gnu.tar.gz"
-url_api = "https://api.github.com/repos/grafana/flint/releases/assets/469225119"
+checksum = "sha256:aae323ea911f9a5012879b79fd3b913837d301098173684d5f9672b6d15c1193"
+url = "https://github.com/grafana/flint/releases/download/v0.22.9/flint-aarch64-unknown-linux-gnu.tar.gz"
+url_api = "https://api.github.com/repos/grafana/flint/releases/assets/476876537"
provenance = "github-attestations"
[tools."aqua:grafana/flint"."platforms.linux-arm64-musl"]
provenance = "github-attestations"
[tools."aqua:grafana/flint"."platforms.linux-x64"]
-checksum = "sha256:9a0fdec27fa1d101b139e73ba73c4837210a8659903e0a3fefb83b7fadb60048"
-url = "https://github.com/grafana/flint/releases/download/v0.22.7/flint-x86_64-unknown-linux-gnu.tar.gz"
-url_api = "https://api.github.com/repos/grafana/flint/releases/assets/469224671"
+checksum = "sha256:e7b0597d82568e441dab13091f674f15c36914b0f412c8fcc19d3ed880da320a"
+url = "https://github.com/grafana/flint/releases/download/v0.22.9/flint-x86_64-unknown-linux-gnu.tar.gz"
+url_api = "https://api.github.com/repos/grafana/flint/releases/assets/476875905"
provenance = "github-attestations"
[tools."aqua:grafana/flint"."platforms.linux-x64-musl"]
provenance = "github-attestations"
[tools."aqua:grafana/flint"."platforms.macos-arm64"]
-checksum = "sha256:e3a7df200923fc22d34df5e67caebe949a6f7fa9a4ebaf3afd51f3c92bc85f63"
-url = "https://github.com/grafana/flint/releases/download/v0.22.7/flint-aarch64-apple-darwin.tar.gz"
-url_api = "https://api.github.com/repos/grafana/flint/releases/assets/469225067"
+checksum = "sha256:0370a9f0f16b262cb2c683cc2da539d39e131a3167ac44d3471b57135508b3b2"
+url = "https://github.com/grafana/flint/releases/download/v0.22.9/flint-aarch64-apple-darwin.tar.gz"
+url_api = "https://api.github.com/repos/grafana/flint/releases/assets/476875995"
provenance = "github-attestations"
[tools."aqua:grafana/flint"."platforms.macos-x64"]
-checksum = "sha256:79c85a3abd9cbec8c1d2844cf0c5d2c2da1857278149df38d8075e48775bef34"
-url = "https://github.com/grafana/flint/releases/download/v0.22.7/flint-x86_64-apple-darwin.tar.gz"
-url_api = "https://api.github.com/repos/grafana/flint/releases/assets/469226207"
+checksum = "sha256:b14167a1e47ac34439518680ff5df16554056c5099bafd650f01a37cf29b4a3a"
+url = "https://github.com/grafana/flint/releases/download/v0.22.9/flint-x86_64-apple-darwin.tar.gz"
+url_api = "https://api.github.com/repos/grafana/flint/releases/assets/476878878"
provenance = "github-attestations"
[tools."aqua:grafana/flint"."platforms.windows-x64"]
-checksum = "sha256:a42a94ba2b7035d1d21f5ba34b64093c2e7c9c2af2b151adab113c787e6c0220"
-url = "https://github.com/grafana/flint/releases/download/v0.22.7/flint-x86_64-pc-windows-msvc.zip"
-url_api = "https://api.github.com/repos/grafana/flint/releases/assets/469229804"
+checksum = "sha256:b5b9fb31413e11600ec0f8d4c0cf56c7698b1e38f156018364b3f1a2dcfbcbd0"
+url = "https://github.com/grafana/flint/releases/download/v0.22.9/flint-x86_64-pc-windows-msvc.zip"
+url_api = "https://api.github.com/repos/grafana/flint/releases/assets/476892021"
provenance = "github-attestations"
[[tools."aqua:grafana/gcx"]]
diff --git a/mise.toml b/mise.toml
index c44ba3da70..94c3beb178 100644
--- a/mise.toml
+++ b/mise.toml
@@ -8,7 +8,7 @@ protoc = "35.1"
# Linters
actionlint = "1.7.12"
-"aqua:grafana/flint" = "0.22.7"
+"aqua:grafana/flint" = "0.22.9"
"aqua:jonwiggins/xmloxide" = "v0.4.3"
"aqua:owenlamont/ryl" = "0.21.0"
biome = "2.5.3"
From a75c5fd53509d3544a51c17c9649a05de4907eae Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Tue, 28 Jul 2026 13:20:14 +0200
Subject: [PATCH 026/255] chore(deps): update actions/stale action to v11
(#2348)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [actions/stale](https://redirect.github.com/actions/stale) | action |
major | `v10.4.0` → `v11.0.0` |
---
### Release Notes
actions/stale (actions/stale)
###
[`v11.0.0`](https://redirect.github.com/actions/stale/releases/tag/v11.0.0)
[Compare
Source](https://redirect.github.com/actions/stale/compare/v11.0.0...v11.0.0)
#### What's Changed
##### Enhancement
- Migrate to ESM and update dependencies by
[@chiranjib-swain](https://github-grid.enterprise.slack.com/team/U08CVLQ4JKE)
in [#1350](https://redirect.github.com/actions/stale/pull/1350)
##### Dependency Update
- Override brace-expansion to 5.0.8 to address 24 high-severity
dependency vulnerabilities by
[@dependabot](https://redirect.github.com/dependabot) in
[#1351](https://redirect.github.com/actions/stale/pull/1351)
**Full Changelog**:
###
[`v11`](https://redirect.github.com/actions/stale/compare/v10.4.0...v11.0.0)
[Compare
Source](https://redirect.github.com/actions/stale/compare/v10.4.0...v11.0.0)
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/prometheus/client_java).
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
.github/workflows/issue-management-stale-action.yml | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/.github/workflows/issue-management-stale-action.yml b/.github/workflows/issue-management-stale-action.yml
index e90b120a53..f0a2947452 100644
--- a/.github/workflows/issue-management-stale-action.yml
+++ b/.github/workflows/issue-management-stale-action.yml
@@ -25,7 +25,7 @@ jobs:
# Handle stale PRs
# - After 120 days inactive: Adds "stale" label + warning comment
# - After 30 more days inactive: Closes
- - uses: actions/stale@1e223db275d687790206a7acac4d1a11bd6fe629 # v10.4.0
+ - uses: actions/stale@4391f3da665fdf50b6810c1a66712fb9ba21aa93 # v11.0.0
with:
days-before-issue-stale: -1
days-before-issue-close: -1
@@ -43,7 +43,7 @@ jobs:
# Handle stale issues
# - After 360 days (12 months) inactive: Adds "stale" label + warning comment
# - After 30 more days inactive: Closes
- - uses: actions/stale@1e223db275d687790206a7acac4d1a11bd6fe629 # v10.4.0
+ - uses: actions/stale@4391f3da665fdf50b6810c1a66712fb9ba21aa93 # v11.0.0
with:
days-before-issue-stale: 360
days-before-issue-close: 30
From f6fe4934c34b7ef40a1c90af1d0b85b37ba05499 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Tue, 28 Jul 2026 15:52:28 +0200
Subject: [PATCH 027/255] chore(deps): update linters (#2346)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
> ℹ️ **Note**
>
> This PR body was truncated due to platform limits.
This PR contains the following updates:
| Package | Update | Change | Pending |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|---|---|
|
[aqua:jonwiggins/xmloxide](https://redirect.github.com/jonwiggins/xmloxide)
| patch | `0.4.3` → `0.4.4` | |

|

|
| [biome](https://redirect.github.com/biomejs/biome) | patch | `2.5.3` →
`2.5.5` | |

|

|
| [npm:renovate](https://renovatebot.com)
([source](https://redirect.github.com/renovatebot/renovate)) | minor |
[`43.257.4` →
`43.279.1`](https://octochangelog.com/compare?repo=renovatebot%2Frenovate&from=43.257.4&to=43.279.1)
| `43.283.0` (+10) |

|

|
| [ruff](https://redirect.github.com/astral-sh/ruff) | minor | `0.15.21`
→ `0.16.0` | |

|

|
| [rumdl](https://redirect.github.com/rvben/rumdl) | patch | `v0.2.31` →
`v0.2.43` | |

|

|
| [zizmor](https://redirect.github.com/zizmorcore/zizmor) | minor |
`1.26.1` → `1.28.0` | |

|

|
---
### Release Notes
jonwiggins/xmloxide (aqua:jonwiggins/xmloxide)
###
[`v0.4.4`](https://redirect.github.com/jonwiggins/xmloxide/blob/HEAD/CHANGELOG.md#044---2026-07-20)
[Compare
Source](https://redirect.github.com/jonwiggins/xmloxide/compare/v0.4.3...v0.4.4)
##### Security
- **Fix stack exhaustion when parsing deeply-nested DTD content models**
(CVE-2026-61727 / GHSA-7jmw-29gc-ffx4, thanks
[@williamareynolds](https://redirect.github.com/williamareynolds)).
The DTD
parser recursed without a depth bound when parsing an ``
content
model, so a small untrusted document with many nested `(` in a content
model
could overflow the stack and abort the process — an uncatchable denial
of
service (CWE-674). This is reachable on the default parse path because
the
internal DTD subset is parsed during ordinary parsing, and the existing
`ParseOptions::max_depth` did not cover it (it bounds element nesting,
not the
DTD content-model grammar). The content-model recursion is now bounded
at 256
levels and returns a normal `ParseError` past the limit; well-formed
DTDs are
unaffected.
biomejs/biome (biome)
###
[`v2.5.5`](https://redirect.github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.5):
Biome CLI v2.5.5
[Compare
Source](https://redirect.github.com/biomejs/biome/compare/@biomejs/biome@2.5.4...@biomejs/biome@2.5.5)
#### 2.5.5
##### Patch Changes
- [#10972](https://redirect.github.com/biomejs/biome/pull/10972)
[`ab8c21b`](https://redirect.github.com/biomejs/biome/commit/ab8c21b35e81708276e4283a4a0ff86ea815e345)
Thanks [@ematipico](https://redirect.github.com/ematipico)! -
Fixed
[`useExhaustiveSwitchCases`](https://biomejs.dev/linter/rules/use-exhaustive-switch-cases/)
for unions of bigint literals. The rule now reports missing bigint cases
and compares bigint literals by value, including binary, octal,
hexadecimal, and separator-containing spellings. For example, this
switch now reports the missing `2n` case:
```ts
declare const value: 1n | 2n;
switch (value) {
case 1n:
break;
}
```
- [#10972](https://redirect.github.com/biomejs/biome/pull/10972)
[`ab8c21b`](https://redirect.github.com/biomejs/biome/commit/ab8c21b35e81708276e4283a4a0ff86ea815e345)
Thanks [@ematipico](https://redirect.github.com/ematipico)! -
Fixed false positives in
[`noBaseToString`](https://biomejs.dev/linter/rules/no-base-to-string/)
and
[`useNullishCoalescing`](https://biomejs.dev/linter/rules/use-nullish-coalescing/)
when member, stringification, or nullish inference cannot complete.
These rules now suppress diagnostics instead of reporting from partial
type information. For example, neither expression is reported when a
recursive type cannot be fully resolved:
```ts
type Recursive = Recursive;
declare const value: Recursive;
String(value);
value || "fallback";
```
- [#10977](https://redirect.github.com/biomejs/biome/pull/10977)
[`0bf7486`](https://redirect.github.com/biomejs/biome/commit/0bf748653e488d0b959d39847641438cdb28188b)
Thanks [@ematipico](https://redirect.github.com/ematipico)! -
Fixed
[#10922](https://redirect.github.com/biomejs/biome/issues/10922):
the action
[`useSortedAttributes`](https://biomejs.dev/assist/actions/use-sorted-attributes/)
no longer triggers for HTML instructions.
- [#10957](https://redirect.github.com/biomejs/biome/pull/10957)
[`cf263c4`](https://redirect.github.com/biomejs/biome/commit/cf263c4700e9f24115e541d1f142934a9b2d878f)
Thanks [@dyc3](https://redirect.github.com/dyc3)! - Fixed
[`noThenProperty`](https://biomejs.dev/linter/rules/no-then-property/)
failing to detect `Object.fromEntries`, `Object.defineProperty`, and
`Reflect.defineProperty` calls with comments between their tokens.
- [#10983](https://redirect.github.com/biomejs/biome/pull/10983)
[`edc0ed7`](https://redirect.github.com/biomejs/biome/commit/edc0ed738ab8da3d512d527196684bd668090854)
Thanks [@ayaangazali](https://redirect.github.com/ayaangazali)! -
Fixed
[#10980](https://redirect.github.com/biomejs/biome/issues/10980):
[`useAriaPropsSupportedByRole`](https://biomejs.dev/linter/rules/use-aria-props-supported-by-role/)
no longer reports false positives when the attribute that determines an
element's implicit ARIA role is written as a shorthand attribute, such
as `` in Astro and Svelte files.
Shorthand attributes are now taken into account when computing the
implicit role, so the anchor above correctly resolves to the `link` role
instead of `generic`.
- [#10889](https://redirect.github.com/biomejs/biome/pull/10889)
[`89526e3`](https://redirect.github.com/biomejs/biome/commit/89526e3858c437408ec9ff192c35a866ad991d1b)
Thanks [@denbezrukov](https://redirect.github.com/denbezrukov)! -
Fixed CSS formatter casing for syntax-owned names while preserving
author-defined names, including scoped keyframes and container
scroll-state queries.
```diff
- A:HOVER { COLOR: INITIAL; }
+ A:hover { color: initial; }
- @KEYFRAMES :GLOBAL KeepFrames { FROM { COLOR: RED; } }
+ @keyframes :GLOBAL KeepFrames { from { color: RED; } }
- @CONTAINER scroll-state((SCROLLED: TOP) AND (STUCK)) { A:HOVER
{ COLOR: RED; } }
+ @container scroll-state((SCROLLED: TOP) AND (STUCK)) { A:hover
{ color: RED; } }
```
- [#10964](https://redirect.github.com/biomejs/biome/pull/10964)
[`794ccd0`](https://redirect.github.com/biomejs/biome/commit/794ccd0528345c4eaa87af1d86f02475277a0a22)
Thanks [@denbezrukov](https://redirect.github.com/denbezrukov)! -
Fixed CSS formatting for comments between declaration values and
`!important`.
```diff
-a { color: /* before */ /* after */ red !important; }
+a { color: /* before */ red /* after */ !important; }
```
- [#10993](https://redirect.github.com/biomejs/biome/pull/10993)
[`b7a9694`](https://redirect.github.com/biomejs/biome/commit/b7a969425d4292fc7c50440da7aea41ce5c9a9c2)
Thanks [@denbezrukov](https://redirect.github.com/denbezrukov)! -
Fixed the CSS formatter to preserve comments on the correct side of
selector combinators and before declaration blocks.
```diff
-.before > /* comment */ .after {}
+.before /* comment */ > .after {}
```
It now also keeps selectors with escaped newlines in attribute values
inline when they fit.
```diff
-div
- span[foo="bar\
+div span[foo="bar\
value"] {}
```
- [#10978](https://redirect.github.com/biomejs/biome/pull/10978)
[`8ebafe1`](https://redirect.github.com/biomejs/biome/commit/8ebafe1c7489f1f7af379b8e52b8ad063c82d28a)
Thanks [@ematipico](https://redirect.github.com/ematipico)! -
Fixed
[#10870](https://redirect.github.com/biomejs/biome/issues/10870):
[`noUnresolvedImports`](https://biomejs.dev/linter/rules/no-unresolved-imports/)
no longer reports false positives such as `import type { NextRequest }
from "next/server"`.
- [#10901](https://redirect.github.com/biomejs/biome/pull/10901)
[`68c10e6`](https://redirect.github.com/biomejs/biome/commit/68c10e672fc886b31423b18be01e873d3bf77f43)
Thanks
[@Socialpranker](https://redirect.github.com/Socialpranker)! -
Fixed
[#10622](https://redirect.github.com/biomejs/biome/issues/10622):
the HTML/Vue parser no longer panics on the argument-less `v-bind`
shorthand (`:="props"`).
This syntax is valid Vue and equivalent to `v-bind="props"`, so the
parser now accepts it (along with the longhand `v-bind:="props"`)
instead of crashing while building a diagnostic for a missing argument.
- [#10936](https://redirect.github.com/biomejs/biome/pull/10936)
[`7df46f5`](https://redirect.github.com/biomejs/biome/commit/7df46f5be0880a02cb37453f01b83c1ba59b1e44)
Thanks [@ematipico](https://redirect.github.com/ematipico)! -
Improved generic tuple inference for
[`useIncludes`](https://biomejs.dev/linter/rules/use-includes/). The
rule now recognizes specialised tuple element types returned through
generic aliases.
- [#10941](https://redirect.github.com/biomejs/biome/pull/10941)
[`f787725`](https://redirect.github.com/biomejs/biome/commit/f7877258271e20523d5c673e62912fce1d85cd56)
Thanks [@siketyan](https://redirect.github.com/siketyan)! - Fixed
[`#10855`](https://redirect.github.com/biomejs/biome/issues/10855):
Biome now supports parsing and formatting CSS custom media queries
declared with
[`@custom-media`](https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/At-rules/@custom-media).
- [#10969](https://redirect.github.com/biomejs/biome/pull/10969)
[`72d309b`](https://redirect.github.com/biomejs/biome/commit/72d309b655cee70473e20b061f5a45112139688c)
Thanks [@ematipico](https://redirect.github.com/ematipico)! -
Fixed an issue where Biome logs became too verbose, dumping information
not relevant to user's operations.
-
[`e62f6b6`](https://redirect.github.com/biomejs/biome/commit/e62f6b61461227bbfd57fdf1b50b2dc8c01ea5a0)
Thanks [@ematipico](https://redirect.github.com/ematipico)! -
Fixed
[#10963](https://redirect.github.com/biomejs/biome/issues/10963):
Biome no longer panics when a type-aware rule such as
[`noFloatingPromises`](https://biomejs.dev/linter/rules/no-floating-promises/)
checks a call to a function with multiple call signatures imported from
another module.
- [#10931](https://redirect.github.com/biomejs/biome/pull/10931)
[`899c60d`](https://redirect.github.com/biomejs/biome/commit/899c60d506115b3f62030236cbd0901bf294e6ab)
Thanks [@ematipico](https://redirect.github.com/ematipico)! -
Fixed `check --write` command. Now the command reports code frame of the
formatted code, if the formatter is enabled.
- [#10904](https://redirect.github.com/biomejs/biome/pull/10904)
[`ceee4f4`](https://redirect.github.com/biomejs/biome/commit/ceee4f43dabf88d86b87c9a4ce6051b6738869c2)
Thanks [@qzwxsaedc](https://redirect.github.com/qzwxsaedc)! -
Fixed
[#10892](https://redirect.github.com/biomejs/biome/issues/10892):
[`noUnnecessaryConditions`](https://biomejs.dev/linter/rules/no-unnecessary-conditions/)
no longer reports a false positive when checking a member of a
discriminated union that is accessed through a default type-only
namespace import. The following code is no longer flagged:
```ts
import type Types from "./types";
declare function parse(): Types.Result;
const result = parse();
if (!result.success) {
}
```
- [#10962](https://redirect.github.com/biomejs/biome/pull/10962)
[`f0a67f2`](https://redirect.github.com/biomejs/biome/commit/f0a67f2e56c0785595c5cf14a93dba5bb32acf2d)
Thanks [@ematipico](https://redirect.github.com/ematipico)! -
Biome no longer removes embedded styles and scripts in HTML files.
- [#11000](https://redirect.github.com/biomejs/biome/pull/11000)
[`5039a1e`](https://redirect.github.com/biomejs/biome/commit/5039a1ee35771d0193de65a6326781313ab77afb)
Thanks [@ematipico](https://redirect.github.com/ematipico)! -
Fixed a bug where closing one editor stopped a shared Biome daemon used
by other editors. LSP proxy processes now exit when either the editor or
daemon disconnects.
- [#10957](https://redirect.github.com/biomejs/biome/pull/10957)
[`cf263c4`](https://redirect.github.com/biomejs/biome/commit/cf263c4700e9f24115e541d1f142934a9b2d878f)
Thanks [@dyc3](https://redirect.github.com/dyc3)! - Improved the
performance of the
[`noThenProperty`](https://biomejs.dev/linter/rules/no-then-property/)
lint rule by about 50%.
- [#10992](https://redirect.github.com/biomejs/biome/pull/10992)
[`4bf9b21`](https://redirect.github.com/biomejs/biome/commit/4bf9b21319df240e2c5ef2e5a9cb2e9582a0e1d1)
Thanks [@ematipico](https://redirect.github.com/ematipico)! -
Fixed
[`noMisusedPromises`](https://biomejs.dev/linter/rules/no-misused-promises/):
The rule now reports Promise-returning callbacks where a synchronous
callback is expected when calls use tuple spreads or tuple rest
parameters, including generic and deeply nested tuples, and when
constructor signatures come from interface or object types. Recursive or
excessively nested tuple spreads use a conservative fallback so analysis
terminates.
For example, the following callback is now reported.
```ts
declare function consume(...args: [number, () => void]): void;
const prefix: [number] = [1];
consume(...prefix, async () => {});
```
- [#10915](https://redirect.github.com/biomejs/biome/pull/10915)
[`b3b12b3`](https://redirect.github.com/biomejs/biome/commit/b3b12b3fe390feabbd9ba097922d6c7e56823406)
Thanks [@Functionhx](https://redirect.github.com/Functionhx)! -
Added the rule
[`noNegationInEqualityCheck`](https://biomejs.dev/linter/rules/no-negation-in-equality-check/).
The rule flags negated expressions on the left side of strict equality
checks like `!foo === bar` — due to operator precedence this evaluates
as `(!foo) === bar` which is almost always a mistake for `foo !== bar`.
The rule provides an unsafe fix that flips the operator.
```js
// Invalid
!foo === bar;
!foo !== bar;
// Valid
foo !== bar;
foo === bar;
```
- [#10970](https://redirect.github.com/biomejs/biome/pull/10970)
[`bd1038b`](https://redirect.github.com/biomejs/biome/commit/bd1038be1ad110aae60bcdbe9a154c6a2fc85c14)
Thanks [@ematipico](https://redirect.github.com/ematipico)! -
Improved overload selection for
[`noMisusedPromises`](https://biomejs.dev/linter/rules/no-misused-promises/).
Biome now handles overloaded calls, overloaded constructors, rest
parameters, union arguments, and generic constraints without selecting
an incompatible signature. For example, `noMisusedPromises` now reports
the async callback passed to the synchronous overload:
```ts
declare function consume(kind: "async", callback: () => Promise):
void;
declare function consume(kind: "sync", callback: () => void): void;
consume("sync", async () => {});
```
- [#10933](https://redirect.github.com/biomejs/biome/pull/10933)
[`48a4abb`](https://redirect.github.com/biomejs/biome/commit/48a4abb99d41b1241b2a5812a12247b671d0dfed)
Thanks [@ematipico](https://redirect.github.com/ematipico)! -
Fixed [`useArrayFind`](https://biomejs.dev/linter/rules/use-array-find/)
to recognize bigint zero indexes.
- [#10931](https://redirect.github.com/biomejs/biome/pull/10931)
[`899c60d`](https://redirect.github.com/biomejs/biome/commit/899c60d506115b3f62030236cbd0901bf294e6ab)
Thanks [@ematipico](https://redirect.github.com/ematipico)! -
Fixed an orchestration issue that could lead to deadlocks when
type-aware rules are enabled.
- [#10969](https://redirect.github.com/biomejs/biome/pull/10969)
[`72d309b`](https://redirect.github.com/biomejs/biome/commit/72d309b655cee70473e20b061f5a45112139688c)
Thanks [@ematipico](https://redirect.github.com/ematipico)! -
Hardened the Biome Language Server by improving its synchronisation
logic.
- [#10972](https://redirect.github.com/biomejs/biome/pull/10972)
[`ab8c21b`](https://redirect.github.com/biomejs/biome/commit/ab8c21b35e81708276e4283a4a0ff86ea815e345)
Thanks [@ematipico](https://redirect.github.com/ematipico)! -
Fixed false positives in
[`noMisusedPromises`](https://biomejs.dev/linter/rules/no-misused-promises/)
and
[`useAwaitThenable`](https://biomejs.dev/linter/rules/use-await-thenable/)
when Promise or thenable inference cannot complete. These rules now
suppress diagnostics instead of treating incomplete type information as
a definite result. For example, `useAwaitThenable` no longer reports
`await value` when the value's thenability is unknown:
```ts
declare const value: unknown;
async function consume() {
await value;
}
```
#### What's Changed
- chore: add latitude to sponsors by
[@ematipico](https://redirect.github.com/ematipico) in
[#10947](https://redirect.github.com/biomejs/biome/pull/10947)
- fix(workspace): make `process_file` call stateless by
[@ematipico](https://redirect.github.com/ematipico) in
[#10931](https://redirect.github.com/biomejs/biome/pull/10931)
- feat(css): support custom media queries by
[@siketyan](https://redirect.github.com/siketyan) in
[#10941](https://redirect.github.com/biomejs/biome/pull/10941)
- fix(inference): harden Salsa type inference by
[@ematipico](https://redirect.github.com/ematipico) in
[#10932](https://redirect.github.com/biomejs/biome/pull/10932)
- feat(css\_formatter): align syntax-owned casing policy by
[@denbezrukov](https://redirect.github.com/denbezrukov) in
[#10889](https://redirect.github.com/biomejs/biome/pull/10889)
- fix(markdown): let space-indented bullets interrupt paragraphs in
block quotes by
[@jfmcdowell](https://redirect.github.com/jfmcdowell) in
[#10914](https://redirect.github.com/biomejs/biome/pull/10914)
- feat(lint): add noNegationInEqualityCheck rule by
[@Functionhx](https://redirect.github.com/Functionhx) in
[#10915](https://redirect.github.com/biomejs/biome/pull/10915)
- docs(useIterableCallbackReturn): fix list bullet for the from method
by [@dfedoryshchev](https://redirect.github.com/dfedoryshchev) in
[#10956](https://redirect.github.com/biomejs/biome/pull/10956)
- refactor(lint): port direct type-aware rules by
[@ematipico](https://redirect.github.com/ematipico) in
[#10933](https://redirect.github.com/biomejs/biome/pull/10933)
- chore: changeset and skip check deps by
[@ematipico](https://redirect.github.com/ematipico) in
[#10962](https://redirect.github.com/biomejs/biome/pull/10962)
- feat: parse angular attributes by
[@Netail](https://redirect.github.com/Netail) in
[#9242](https://redirect.github.com/biomejs/biome/pull/9242)
- fix(css\_formatter): format comments before !important by
[@denbezrukov](https://redirect.github.com/denbezrukov) in
[#10964](https://redirect.github.com/biomejs/biome/pull/10964)
- fix(parser): accept argument-less v-bind shorthand `:="props"` in
HTML/Vue by
[@Socialpranker](https://redirect.github.com/Socialpranker) in
[#10901](https://redirect.github.com/biomejs/biome/pull/10901)
- refactor(lint): port behavior-sensitive type rules by
[@ematipico](https://redirect.github.com/ematipico) in
[#10934](https://redirect.github.com/biomejs/biome/pull/10934)
- perf(noThenProperty): use typed syntax tree traversal and TokenText by
[@dyc3](https://redirect.github.com/dyc3) in
[#10957](https://redirect.github.com/biomejs/biome/pull/10957)
- fix(workspace): synchronisation and logging by
[@ematipico](https://redirect.github.com/ematipico) in
[#10969](https://redirect.github.com/biomejs/biome/pull/10969)
- fix(inference): resolve members of default namespace imports by
[@qzwxsaedc](https://redirect.github.com/qzwxsaedc) in
[#10904](https://redirect.github.com/biomejs/biome/pull/10904)
- refactor: discourage usages of `Text`, prefer `TokenText` by
[@dyc3](https://redirect.github.com/dyc3) in
[#10967](https://redirect.github.com/biomejs/biome/pull/10967)
- fix(analyzer): handle HTML processing instructions by
[@ematipico](https://redirect.github.com/ematipico) in
[#10977](https://redirect.github.com/biomejs/biome/pull/10977)
- fix(inference): improve imported and aliased types by
[@ematipico](https://redirect.github.com/ematipico) in
[#10936](https://redirect.github.com/biomejs/biome/pull/10936)
- fix(resolver): fallback to disk loading if `exports` is missing by
[@ematipico](https://redirect.github.com/ematipico) in
[#10978](https://redirect.github.com/biomejs/biome/pull/10978)
- fix(inference): improve overload selection by
[@ematipico](https://redirect.github.com/ematipico) in
[#10970](https://redirect.github.com/biomejs/biome/pull/10970)
- chore(deps): update rust crate quote to 1.0.47 by
[@renovate](https://redirect.github.com/renovate)\[bot] in
[#10726](https://redirect.github.com/biomejs/biome/pull/10726)
- chore(deps): update rust crate rustc-hash to 2.1.3 by
[@renovate](https://redirect.github.com/renovate)\[bot] in
[#10857](https://redirect.github.com/biomejs/biome/pull/10857)
- fix(inference): argument and type parameters inference by
[@ematipico](https://redirect.github.com/ematipico) in
[#10992](https://redirect.github.com/biomejs/biome/pull/10992)
- fix(inference): improve member and Promise inference by
[@ematipico](https://redirect.github.com/ematipico) in
[#10971](https://redirect.github.com/biomejs/biome/pull/10971)
- fix(css\_formatter): preserve selector boundary comments by
[@denbezrukov](https://redirect.github.com/denbezrukov) in
[#10993](https://redirect.github.com/biomejs/biome/pull/10993)
- fix: preview ci by
[@Netail](https://redirect.github.com/Netail) in
[#11001](https://redirect.github.com/biomejs/biome/pull/11001)
- fix(daemon): avoid disconnection from clients by
[@ematipico](https://redirect.github.com/ematipico) in
[#11000](https://redirect.github.com/biomejs/biome/pull/11000)
- chore(deps): update rust crate globset to 0.4.19 by
[@renovate](https://redirect.github.com/renovate)\[bot] in
[#10999](https://redirect.github.com/biomejs/biome/pull/10999)
- feat(fmt/yaml): format document markers, directives, and multi-doc
streams by [@dyc3](https://redirect.github.com/dyc3) in
[#10989](https://redirect.github.com/biomejs/biome/pull/10989)
- fix(html\_analyze): account for shorthand attributes when computing
implicit ARIA roles by
[@ayaangazali](https://redirect.github.com/ayaangazali) in
[#10983](https://redirect.github.com/biomejs/biome/pull/10983)
- fix(inference): suppress incomplete type results by
[@ematipico](https://redirect.github.com/ematipico) in
[#10972](https://redirect.github.com/biomejs/biome/pull/10972)
- chore(deps): update dependency
[@changesets/cli](https://redirect.github.com/changesets/cli) to
v2.31.1 by
[@renovate](https://redirect.github.com/renovate)\[bot] in
[#10997](https://redirect.github.com/biomejs/biome/pull/10997)
- chore(deps): update rust crate anyhow to 1.0.104 by
[@renovate](https://redirect.github.com/renovate)\[bot] in
[#10998](https://redirect.github.com/biomejs/biome/pull/10998)
- ci: release by
[@github-actions](https://redirect.github.com/github-actions)\[bot]
in [#10948](https://redirect.github.com/biomejs/biome/pull/10948)
#### New Contributors
- [@Functionhx](https://redirect.github.com/Functionhx) made
their first contribution in
[#10915](https://redirect.github.com/biomejs/biome/pull/10915)
- [@Socialpranker](https://redirect.github.com/Socialpranker)
made their first contribution in
[#10901](https://redirect.github.com/biomejs/biome/pull/10901)
- [@qzwxsaedc](https://redirect.github.com/qzwxsaedc) made their
first contribution in
[#10904](https://redirect.github.com/biomejs/biome/pull/10904)
- [@ayaangazali](https://redirect.github.com/ayaangazali) made
their first contribution in
[#10983](https://redirect.github.com/biomejs/biome/pull/10983)
**Full Changelog**:
###
[`v2.5.4`](https://redirect.github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.4):
Biome CLI v2.5.4
[Compare
Source](https://redirect.github.com/biomejs/biome/compare/@biomejs/biome@2.5.3...@biomejs/biome@2.5.4)
#### 2.5.4
##### Patch Changes
- [#10665](https://redirect.github.com/biomejs/biome/pull/10665)
[`55ff995`](https://redirect.github.com/biomejs/biome/commit/55ff995098148446b7e7fdfc19053902bb987122)
Thanks [@dyc3](https://redirect.github.com/dyc3)! - Improved the
performance of the HTML parser slightly in our synthetic benchmarks.
- [#10894](https://redirect.github.com/biomejs/biome/pull/10894)
[`f4fb10e`](https://redirect.github.com/biomejs/biome/commit/f4fb10e176e537e8ce2cac0c3fd4c38a77f91886)
Thanks [@ematipico](https://redirect.github.com/ematipico)! -
Fixed
[#6392](https://redirect.github.com/biomejs/biome/issues/6392):
On-type formatting no longer moves comments before an `if` statement
into its body.
- [#10939](https://redirect.github.com/biomejs/biome/pull/10939)
[`f2799db`](https://redirect.github.com/biomejs/biome/commit/f2799db38e3d8a644207d9b8f957abea6cb3d9fa)
Thanks [@Netail](https://redirect.github.com/Netail)! - Fixed
[#10930](https://redirect.github.com/biomejs/biome/issues/10930):
[`noLabelWithoutControl`](https://biomejs.dev/linter/rules/no-label-without-control/)
now correctly detects text interpolation in Astro, Svelte & Vue as valid
accessible content.
- [#10945](https://redirect.github.com/biomejs/biome/pull/10945)
[`ae15d98`](https://redirect.github.com/biomejs/biome/commit/ae15d98bbf2222fbb34e3e31832cba9676a6d01c)
Thanks [@Netail](https://redirect.github.com/Netail)! - Fixed
[#10942](https://redirect.github.com/biomejs/biome/issues/10942):
Svelte directives don't throw an accidental debug log anymore.
- [#10842](https://redirect.github.com/biomejs/biome/pull/10842)
[`5e1abfe`](https://redirect.github.com/biomejs/biome/commit/5e1abfee59155b5fdca8813314371ed54c06acfb)
Thanks
[@JamBalaya56562](https://redirect.github.com/JamBalaya56562)! -
Fixed
[#9196](https://redirect.github.com/biomejs/biome/issues/9196):
`biome check --write --unsafe` no longer hangs forever when applying the
[`noCommentText`](https://biomejs.dev/linter/rules/no-comment-text/)
code fix.
The rule's fix now wraps the comment in a real JSX expression container
(`{/* comment */}`) instead of re-inserting the braces as plain JSX
text, so the fixed code is no longer reported again by the same rule.
- [#10891](https://redirect.github.com/biomejs/biome/pull/10891)
[`ecca79e`](https://redirect.github.com/biomejs/biome/commit/ecca79e8ff10f40aa676212c0db0a970c6091615)
Thanks [@ematipico](https://redirect.github.com/ematipico)! -
Fixed
[`#10885`](https://redirect.github.com/biomejs/biome/issues/10885):
prevented a module-inference regression introduced by a housekeeping
change.
- [#10886](https://redirect.github.com/biomejs/biome/pull/10886)
[`60c8043`](https://redirect.github.com/biomejs/biome/commit/60c8043527f7ccc7b505471e1042f2a4324e4d31)
Thanks [@dyc3](https://redirect.github.com/dyc3)! - Fixed
[#10727](https://redirect.github.com/biomejs/biome/issues/10727):
Biome now breaks the arguments of curried `test.each`, `it.each`,
`describe.each`, and `test.for` calls when they exceed the configured
line width.
```diff
- test.each([[1, 2]])("a description that is long enough to push the
hugged opening line beyond the print width", (a, b) => {
- expect(a).toBe(b);
- });
+ test.each([[1, 2]])(
+ "a description that is long enough to push the hugged opening line
beyond the print width",
+ (a, b) => {
+ expect(a).toBe(b);
+ },
+ );
```
- [#10895](https://redirect.github.com/biomejs/biome/pull/10895)
[`01a85f0`](https://redirect.github.com/biomejs/biome/commit/01a85f04b09f0af05b16a15c137421e312ceada5)
Thanks [@ematipico](https://redirect.github.com/ematipico)! -
Biome will now remove stale Unix daemon sockets from older Biome
versions when starting a newer daemon.
#### What's Changed
- feat(yml/fmt): basic block properties by
[@ematipico](https://redirect.github.com/ematipico) in
[#10873](https://redirect.github.com/biomejs/biome/pull/10873)
- feat(useSortedClasses): sort important-suffix classes in sort\_v4 by
[@johncarmack1984](https://redirect.github.com/johncarmack1984)
in [#10880](https://redirect.github.com/biomejs/biome/pull/10880)
- fix(format/js): wrap curried test each calls by
[@dyc3](https://redirect.github.com/dyc3) in
[#10886](https://redirect.github.com/biomejs/biome/pull/10886)
- fix(markdown): parse whitespace after list markers by
[@tidefield](https://redirect.github.com/tidefield) in
[#10869](https://redirect.github.com/biomejs/biome/pull/10869)
- fix(inference): use correct function when cloning data by
[@ematipico](https://redirect.github.com/ematipico) in
[#10891](https://redirect.github.com/biomejs/biome/pull/10891)
- docs(noDuplicateProperties): note that
[@keyframes](https://redirect.github.com/keyframes) declarations
are ignored by
[@dfedoryshchev](https://redirect.github.com/dfedoryshchev) in
[#10893](https://redirect.github.com/biomejs/biome/pull/10893)
- fix(lint): prevent noCommentText fix from looping forever by
[@JamBalaya56562](https://redirect.github.com/JamBalaya56562) in
[#10842](https://redirect.github.com/biomejs/biome/pull/10842)
- fix(core): cleanup old sockets in Unix by
[@ematipico](https://redirect.github.com/ematipico) in
[#10895](https://redirect.github.com/biomejs/biome/pull/10895)
- feat(inference): inference engine via salsa by
[@ematipico](https://redirect.github.com/ematipico) in
[#10888](https://redirect.github.com/biomejs/biome/pull/10888)
- chore(deps): update dependency
[@types/node](https://redirect.github.com/types/node) to v24.13.3
by [@renovate](https://redirect.github.com/renovate)\[bot] in
[#10920](https://redirect.github.com/biomejs/biome/pull/10920)
- chore(deps): update github-actions by
[@renovate](https://redirect.github.com/renovate)\[bot] in
[#10921](https://redirect.github.com/biomejs/biome/pull/10921)
- chore(deps): update pnpm to v11.11.0 by
[@renovate](https://redirect.github.com/renovate)\[bot] in
[#10925](https://redirect.github.com/biomejs/biome/pull/10925)
- chore(deps): update rust crate jiff to 0.2.32 by
[@renovate](https://redirect.github.com/renovate)\[bot] in
[#10923](https://redirect.github.com/biomejs/biome/pull/10923)
- chore(deps): update rust crate regex to 1.13.0 by
[@renovate](https://redirect.github.com/renovate)\[bot] in
[#10926](https://redirect.github.com/biomejs/biome/pull/10926)
- fix(fmt): don't move comments inside if statement by
[@ematipico](https://redirect.github.com/ematipico) in
[#10894](https://redirect.github.com/biomejs/biome/pull/10894)
- fix(html\_analyze): noLabelWithoutControl interpolation by
[@Netail](https://redirect.github.com/Netail) in
[#10939](https://redirect.github.com/biomejs/biome/pull/10939)
- refactor(parse/html): keywords for all html/svg tags by
[@dyc3](https://redirect.github.com/dyc3) in
[#10665](https://redirect.github.com/biomejs/biome/pull/10665)
- perf(lint/html): avoid string comparisons for tag names by
[@dyc3](https://redirect.github.com/dyc3) in
[#10692](https://redirect.github.com/biomejs/biome/pull/10692)
- fix: accidental debug log by
[@Netail](https://redirect.github.com/Netail) in
[#10945](https://redirect.github.com/biomejs/biome/pull/10945)
- ci: release by
[@github-actions](https://redirect.github.com/github-actions)\[bot]
in [#10887](https://redirect.github.com/biomejs/biome/pull/10887)
**Full Changelog**:
renovatebot/renovate (npm:renovate)
###
[`v43.279.1`](https://redirect.github.com/renovatebot/renovate/releases/tag/43.279.1)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/43.279.0...43.279.1)
##### Bug Fixes
- **deps:** update ghcr.io/renovatebot/base-image docker tag to v13.77.2
(main)
([#44816](https://redirect.github.com/renovatebot/renovate/issues/44816))
([ee7285a](https://redirect.github.com/renovatebot/renovate/commit/ee7285afa72f3526efabb93083056e787b47c421))
##### Miscellaneous Chores
- **deps:** update dependency astral-sh/uv to v0.11.32 (main)
([#44813](https://redirect.github.com/renovatebot/renovate/issues/44813))
([d9f4492](https://redirect.github.com/renovatebot/renovate/commit/d9f44927b3b114098839d2861c3c0637afa533e6))
- **deps:** update dependency markdownlint-cli2 to v0.23.1 (main)
([#44814](https://redirect.github.com/renovatebot/renovate/issues/44814))
([3ecb103](https://redirect.github.com/renovatebot/renovate/commit/3ecb1037792fd0dfd429a2e1c569cd29369e7b30))
- **deps:** update dependency uv to v0.11.32 (main)
([#44815](https://redirect.github.com/renovatebot/renovate/issues/44815))
([6026442](https://redirect.github.com/renovatebot/renovate/commit/6026442bbb8ac7d6a25dce2a1ccb9b7ed2a4fbe7))
- **deps:** update ossf/scorecard-action action to v2.4.4 (main)
([#44811](https://redirect.github.com/renovatebot/renovate/issues/44811))
([9a48b68](https://redirect.github.com/renovatebot/renovate/commit/9a48b6871aab41afc40cb3f1074edff92f0b4475))
- **deps:** update zizmor (main)
([#44812](https://redirect.github.com/renovatebot/renovate/issues/44812))
([bc8843e](https://redirect.github.com/renovatebot/renovate/commit/bc8843ef2e7361879f4a87314d9978de056d0a60))
###
[`v43.279.0`](https://redirect.github.com/renovatebot/renovate/releases/tag/43.279.0)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/43.278.5...43.279.0)
##### Features
- **deps:** update ghcr.io/renovatebot/base-image docker tag to v13.77.0
(main)
([#44802](https://redirect.github.com/renovatebot/renovate/issues/44802))
([609a1be](https://redirect.github.com/renovatebot/renovate/commit/609a1bee80ca69a1423a37f6072ea17fb63de649))
##### Documentation
- **mend-hosted:** correctly note "Community (OSS)" vCPUs
([#44798](https://redirect.github.com/renovatebot/renovate/issues/44798))
([996dfbb](https://redirect.github.com/renovatebot/renovate/commit/996dfbb49a0b182257f56a9fd6935f53abce8cee))
##### Miscellaneous Chores
- **deps:** update dependency tsdown to v0.22.9 (main)
([#44801](https://redirect.github.com/renovatebot/renovate/issues/44801))
([5b5dea6](https://redirect.github.com/renovatebot/renovate/commit/5b5dea6c758060ba8075ee7ad0206b0bf3f750b6))
- **gitlab:** tidy up around gitlab codeowner role support
([#44796](https://redirect.github.com/renovatebot/renovate/issues/44796))
([e59b10a](https://redirect.github.com/renovatebot/renovate/commit/e59b10a17cb58609e7a7c411134346700d84fb8c))
##### Code Refactoring
- **linters:** add linters for Json.pipe and schema location
([#44684](https://redirect.github.com/renovatebot/renovate/issues/44684))
([ac0407b](https://redirect.github.com/renovatebot/renovate/commit/ac0407bdee07dec8010e91922caea5374b325240))
##### Tests
- exclude .claude/worktrees from vitest and prettier
([#44799](https://redirect.github.com/renovatebot/renovate/issues/44799))
([943f917](https://redirect.github.com/renovatebot/renovate/commit/943f917cb094b80947fc390d44cdc8fd095f4625))
###
[`v43.278.5`](https://redirect.github.com/renovatebot/renovate/releases/tag/43.278.5)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/43.278.4...43.278.5)
##### Bug Fixes
- **changelog:** re-add old facebook/react URL
([#44792](https://redirect.github.com/renovatebot/renovate/issues/44792))
([9c98086](https://redirect.github.com/renovatebot/renovate/commit/9c98086bcac797f410c13b66813556c0fbfe69db))
##### Miscellaneous Chores
- **deps:** update dependency vite to v8.1.5 (main)
([#44791](https://redirect.github.com/renovatebot/renovate/issues/44791))
([d4d3c55](https://redirect.github.com/renovatebot/renovate/commit/d4d3c5501cddf45e42e2b2bad7a1108a6ba1d88d))
###
[`v43.278.4`](https://redirect.github.com/renovatebot/renovate/releases/tag/43.278.4)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/43.278.3...43.278.4)
##### Bug Fixes
- **deps:** update ghcr.io/renovatebot/base-image docker tag to
v13.76.12 (main)
([#44790](https://redirect.github.com/renovatebot/renovate/issues/44790))
([5a400e2](https://redirect.github.com/renovatebot/renovate/commit/5a400e29658b77c550e13ef9dbf2d87de5f2ff7a))
##### Miscellaneous Chores
- **deps:** update dependency pnpm to v11.13.1 (main)
([#44789](https://redirect.github.com/renovatebot/renovate/issues/44789))
([e70b316](https://redirect.github.com/renovatebot/renovate/commit/e70b316553f939c36f934c592c521dd629e5fcd0))
##### Tests
- **util/exec:** remove deprecated reference to `trust level`
([#44244](https://redirect.github.com/renovatebot/renovate/issues/44244))
([a72dc7e](https://redirect.github.com/renovatebot/renovate/commit/a72dc7e8237850244bc821b512330232f0224e84))
###
[`v43.278.3`](https://redirect.github.com/renovatebot/renovate/releases/tag/43.278.3)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/43.278.2...43.278.3)
##### Miscellaneous Chores
- **deps:** update dependency vitest-mock-extended to v5 (main)
([#44786](https://redirect.github.com/renovatebot/renovate/issues/44786))
([d6f2426](https://redirect.github.com/renovatebot/renovate/commit/d6f2426599316bfb200017a6b82be63f50335123))
##### Build System
- **deps:** update dependency typescript to v7 (main)
([#44785](https://redirect.github.com/renovatebot/renovate/issues/44785))
([b01c6db](https://redirect.github.com/renovatebot/renovate/commit/b01c6db069c69b63f4df60f2330f154f5fd1db50))
###
[`v43.278.2`](https://redirect.github.com/renovatebot/renovate/releases/tag/43.278.2)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/43.278.1...43.278.2)
##### Bug Fixes
- **preset/monorepo:** re-add old facebook/react URL
([#44782](https://redirect.github.com/renovatebot/renovate/issues/44782))
([da47cb0](https://redirect.github.com/renovatebot/renovate/commit/da47cb0688fde339b27032e3c12f8ce80f557af5))
###
[`v43.278.1`](https://redirect.github.com/renovatebot/renovate/releases/tag/43.278.1)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/43.278.0...43.278.1)
##### Build System
- **deps:** update dependency
[@opentelemetry/otlp-transformer](https://redirect.github.com/opentelemetry/otlp-transformer)
to v0.220.0 (main)
([#44783](https://redirect.github.com/renovatebot/renovate/issues/44783))
([89b60af](https://redirect.github.com/renovatebot/renovate/commit/89b60afc77938539f3b6a5ac3aaa367a7366257a))
###
[`v43.278.0`](https://redirect.github.com/renovatebot/renovate/releases/tag/43.278.0)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/43.277.1...43.278.0)
##### Features
- **instrumentation:** allow exporting OTLP JSON file
([#42284](https://redirect.github.com/renovatebot/renovate/issues/42284))
([adbc20e](https://redirect.github.com/renovatebot/renovate/commit/adbc20e88eefb1f392592bb6ce6c90025bb9716f))
###
[`v43.277.1`](https://redirect.github.com/renovatebot/renovate/releases/tag/43.277.1)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/43.277.0...43.277.1)
##### Bug Fixes
- **presets/monorepo:** update react and react-native source URLs to
react/react org
([#44780](https://redirect.github.com/renovatebot/renovate/issues/44780))
([61e4c9c](https://redirect.github.com/renovatebot/renovate/commit/61e4c9c2d1901f813c0462ab28368a982556e5d2))
##### Documentation
- **manager:** make sure that Supported Datasources are de-duped and
sorted
([#44765](https://redirect.github.com/renovatebot/renovate/issues/44765))
([3888247](https://redirect.github.com/renovatebot/renovate/commit/38882472093c53d0a3a8cf1e7045055109f60e06)),
closes
[#44764](https://redirect.github.com/renovatebot/renovate/issues/44764)
###
[`v43.277.0`](https://redirect.github.com/renovatebot/renovate/releases/tag/43.277.0)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/43.276.0...43.277.0)
##### Features
- **gitlab:** add gitlab codeowners role support
([#44621](https://redirect.github.com/renovatebot/renovate/issues/44621))
([2f9735f](https://redirect.github.com/renovatebot/renovate/commit/2f9735f249ca9f518c851ac5f07f295aa85c1e20))
##### Bug Fixes
- **schedule:** match cron schedules on the edge of an hour
([#44757](https://redirect.github.com/renovatebot/renovate/issues/44757))
([54acab0](https://redirect.github.com/renovatebot/renovate/commit/54acab06ee989baba813bd418cd3b360803bed9f))
###
[`v43.276.0`](https://redirect.github.com/renovatebot/renovate/releases/tag/43.276.0)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/43.275.2...43.276.0)
##### Features
- **github-actions:** support `sigstore/cosign-installer` version input
([#44766](https://redirect.github.com/renovatebot/renovate/issues/44766))
([f01f1b5](https://redirect.github.com/renovatebot/renovate/commit/f01f1b59941017cec06730ff9c4fb8489c02d903))
- **managers:** add support for the Smithy framework
([#44737](https://redirect.github.com/renovatebot/renovate/issues/44737))
([8708834](https://redirect.github.com/renovatebot/renovate/commit/87088344a2e86058e8980d669f43bfaf9b8e0aac))
##### Bug Fixes
- **manager/npm:** don't include versions in extracted Yarn
`resolutions`' `depName`#
([#44776](https://redirect.github.com/renovatebot/renovate/issues/44776))
([476d10a](https://redirect.github.com/renovatebot/renovate/commit/476d10a8076e20ac85c6254cc281aebfaca1b342)),
closes
[#44768](https://redirect.github.com/renovatebot/renovate/issues/44768)
##### Miscellaneous Chores
- **deps:** update dependency tsdown to v0.22.8 (main)
([#44778](https://redirect.github.com/renovatebot/renovate/issues/44778))
([d2ef8e8](https://redirect.github.com/renovatebot/renovate/commit/d2ef8e8f380bee6d4fe542f04c0630948d9805e1))
- **deps:** update dependency uv to v0.11.31 (main)
([#44770](https://redirect.github.com/renovatebot/renovate/issues/44770))
([2bebe63](https://redirect.github.com/renovatebot/renovate/commit/2bebe63852f02fa201abc5b01a5d96d6f666ed07))
###
[`v43.275.2`](https://redirect.github.com/renovatebot/renovate/releases/tag/43.275.2)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/43.275.1...43.275.2)
##### Bug Fixes
- **deps:** update ghcr.io/renovatebot/base-image docker tag to
v13.76.11 (main)
([#44775](https://redirect.github.com/renovatebot/renovate/issues/44775))
([381a5b4](https://redirect.github.com/renovatebot/renovate/commit/381a5b420d2a89bbb96aa39d42d1d103b1a5782a))
##### Miscellaneous Chores
- **deps:** update dependency
[@biomejs/biome](https://redirect.github.com/biomejs/biome) to
v2.5.4 (main)
([#44773](https://redirect.github.com/renovatebot/renovate/issues/44773))
([df82d39](https://redirect.github.com/renovatebot/renovate/commit/df82d390c7d50ada96fafe7460d5e59eaceefd60))
- **deps:** update github/codeql-action action to v4.37.3 (main)
([#44774](https://redirect.github.com/renovatebot/renovate/issues/44774))
([a04cf91](https://redirect.github.com/renovatebot/renovate/commit/a04cf91bf2ea58aa58c132f1f711f6d014f6dcda))
###
[`v43.275.1`](https://redirect.github.com/renovatebot/renovate/releases/tag/43.275.1)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/43.275.0...43.275.1)
##### Bug Fixes
- **deps:** update ghcr.io/renovatebot/base-image docker tag to
v13.76.10 (main)
([#44771](https://redirect.github.com/renovatebot/renovate/issues/44771))
([5586073](https://redirect.github.com/renovatebot/renovate/commit/55860735c5ccdbe3bbf87c03747bc92a37b65ccf))
##### Miscellaneous Chores
- **deps:** update dependency
[@smithy/util-stream](https://redirect.github.com/smithy/util-stream)
to v4.7.9 (main)
([#44767](https://redirect.github.com/renovatebot/renovate/issues/44767))
([6894228](https://redirect.github.com/renovatebot/renovate/commit/68942287120befbcfee373326ee7899e8790d773))
- **deps:** update dependency astral-sh/uv to v0.11.31 (main)
([#44769](https://redirect.github.com/renovatebot/renovate/issues/44769))
([f31eedd](https://redirect.github.com/renovatebot/renovate/commit/f31eeddafea6ec3a8bc3995b908e2489494f0d19))
###
[`v43.275.0`](https://redirect.github.com/renovatebot/renovate/releases/tag/43.275.0)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/43.274.0...43.275.0)
##### Features
- **onboarding:** use summary view if hitting platform limits
([#44256](https://redirect.github.com/renovatebot/renovate/issues/44256))
([969d1a1](https://redirect.github.com/renovatebot/renovate/commit/969d1a1c49ff273218fe10a094bbd9bbf9a3ae6b)),
closes
[#41502](https://redirect.github.com/renovatebot/renovate/issues/41502)
###
[`v43.274.0`](https://redirect.github.com/renovatebot/renovate/releases/tag/43.274.0)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/43.273.0...43.274.0)
##### Features
- **datasource/docker:** Read Official Image annotations
([#44755](https://redirect.github.com/renovatebot/renovate/issues/44755))
([572554f](https://redirect.github.com/renovatebot/renovate/commit/572554f4243ada6242c7c5124d3df0fefcff854e))
##### Miscellaneous Chores
- **deps:** update github/codeql-action action to v4.37.2 (main)
([#44760](https://redirect.github.com/renovatebot/renovate/issues/44760))
([2f7284f](https://redirect.github.com/renovatebot/renovate/commit/2f7284fd153b2fa0b154039feb77e6642c6fb937))
##### Code Refactoring
- **onboarding:** add functions to summarise "What to expect"
([#43764](https://redirect.github.com/renovatebot/renovate/issues/43764))
([4fbfc60](https://redirect.github.com/renovatebot/renovate/commit/4fbfc6095a6eeffc947210d4b8aa4f6d3c09c5e4)),
closes
[#41502](https://redirect.github.com/renovatebot/renovate/issues/41502)
###
[`v43.273.0`](https://redirect.github.com/renovatebot/renovate/releases/tag/43.273.0)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/43.272.9...43.273.0)
##### Features
- **platform:** get all branch update dates in a more performant manner
([#44582](https://redirect.github.com/renovatebot/renovate/issues/44582))
([f932d52](https://redirect.github.com/renovatebot/renovate/commit/f932d52fbd5b85526999a1a21ebbc69b029658a9))
##### Code Refactoring
- **config/global:** improve type restrictions for
`GlobalConfig.OPTIONS`
([#44636](https://redirect.github.com/renovatebot/renovate/issues/44636))
([d16dc9a](https://redirect.github.com/renovatebot/renovate/commit/d16dc9a73970afd7f0f94984d9da403307b2956b))
###
[`v43.272.9`](https://redirect.github.com/renovatebot/renovate/releases/tag/43.272.9)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/43.272.8...43.272.9)
##### Bug Fixes
- **manager/dockerfile:** handle single-quoted empty ARG default value
([#44522](https://redirect.github.com/renovatebot/renovate/issues/44522))
([1f5f6da](https://redirect.github.com/renovatebot/renovate/commit/1f5f6dab2a74c982a3f5fb740d89523599184243))
###
[`v43.272.8`](https://redirect.github.com/renovatebot/renovate/releases/tag/43.272.8)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/43.272.7...43.272.8)
##### Bug Fixes
- **git-submodule:** handle ./ relative paths in URL resolution
([#44742](https://redirect.github.com/renovatebot/renovate/issues/44742))
([bad5e22](https://redirect.github.com/renovatebot/renovate/commit/bad5e2284e8cc8d52635173b83573eac0c37b7f8))
###
[`v43.272.7`](https://redirect.github.com/renovatebot/renovate/releases/tag/43.272.7)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/43.272.6...43.272.7)
##### Bug Fixes
- **gomod:** pseudo-version digest updates produce no change when module
is absent from go proxy
([#44477](https://redirect.github.com/renovatebot/renovate/issues/44477))
([e5ace74](https://redirect.github.com/renovatebot/renovate/commit/e5ace746bbba09c2f93d2930ad4d935a55b7922b))
###
[`v43.272.6`](https://redirect.github.com/renovatebot/renovate/releases/tag/43.272.6)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/43.272.5...43.272.6)
##### Bug Fixes
- **deps:** update ghcr.io/renovatebot/base-image docker tag to v13.76.8
(main)
([#44747](https://redirect.github.com/renovatebot/renovate/issues/44747))
([a00c621](https://redirect.github.com/renovatebot/renovate/commit/a00c621f8dc4212ac52687c93ae3d60e3324fc11))
- **deps:** update ghcr.io/renovatebot/base-image docker tag to v13.76.9
(main)
([#44748](https://redirect.github.com/renovatebot/renovate/issues/44748))
([d2aa7e3](https://redirect.github.com/renovatebot/renovate/commit/d2aa7e3e9465872580066db6f1fb6d842077e19a))
##### Miscellaneous Chores
- **deps:** update dependency astral-sh/uv to v0.11.30 (main)
([#44745](https://redirect.github.com/renovatebot/renovate/issues/44745))
([451ed1c](https://redirect.github.com/renovatebot/renovate/commit/451ed1ced5530d39a6f7b864730a0080276b2ead))
- **deps:** update dependency uv to v0.11.30 (main)
([#44746](https://redirect.github.com/renovatebot/renovate/issues/44746))
([984cb43](https://redirect.github.com/renovatebot/renovate/commit/984cb434c2733ff08a1cfad8407c9db07891f75e))
##### Tests
- replace deprecated Biome `recommended` with `preset`
([#44735](https://redirect.github.com/renovatebot/renovate/issues/44735))
([73d21dd](https://redirect.github.com/renovatebot/renovate/commit/73d21dd84924700be5aeea97addd53d5e3674d31))
###
[`v43.272.5`](https://redirect.github.com/renovatebot/renovate/releases/tag/43.272.5)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/43.272.4...43.272.5)
##### Bug Fixes
- **deps:** update ghcr.io/renovatebot/base-image docker tag to v13.76.7
(main)
([#44743](https://redirect.github.com/renovatebot/renovate/issues/44743))
([1e7391f](https://redirect.github.com/renovatebot/renovate/commit/1e7391f4a60bc47c93bd25ffc33498419645e0cd))
##### Miscellaneous Chores
- **deps:** update actions/checkout action to v6.1.0 (main)
([#44741](https://redirect.github.com/renovatebot/renovate/issues/44741))
([e3541c1](https://redirect.github.com/renovatebot/renovate/commit/e3541c14668c93bffccdd675af50f459a12d6dda))
- **deps:** update dependency astral-sh/uv to v0.11.29 (main)
([#44619](https://redirect.github.com/renovatebot/renovate/issues/44619))
([75d2ca1](https://redirect.github.com/renovatebot/renovate/commit/75d2ca1f78b88e66aac15c8eff33e9a266b14b81))
- **deps:** update dependency protobufjs\@8.0.1 to v8.7.1 (main)
([#44733](https://redirect.github.com/renovatebot/renovate/issues/44733))
([f3e5741](https://redirect.github.com/renovatebot/renovate/commit/f3e57410f25892b7d92303c436c67e4d97730e74))
- **deps:** update github/codeql-action action to v4.37.1 (main)
([#44647](https://redirect.github.com/renovatebot/renovate/issues/44647))
([5a06fc9](https://redirect.github.com/renovatebot/renovate/commit/5a06fc94ea3d512f6d6c43bbb1d9bdaa940023fd))
##### Code Refactoring
- **linters:** enable `node/no-sync` and migrate to async calls
([#44693](https://redirect.github.com/renovatebot/renovate/issues/44693))
([2dbfd85](https://redirect.github.com/renovatebot/renovate/commit/2dbfd85506fddd219d5a2d70cc8629a0c103d41c))
##### Tests
- **linters:** add linting rule to enforce v8 ignore reason declaration
([#44726](https://redirect.github.com/renovatebot/renovate/issues/44726))
([91e068f](https://redirect.github.com/renovatebot/renovate/commit/91e068f1fd3c6d168a67f7ec26f14404bfed3c1b))
##### Continuous Integration
- periodically check for "too many releases"
([#44734](https://redirect.github.com/renovatebot/renovate/issues/44734))
([c7be6f1](https://redirect.github.com/renovatebot/renovate/commit/c7be6f147dfcdf3ccdc976088833fcd2093df871)),
closes
[#42965](https://redirect.github.com/renovatebot/renovate/issues/42965)
###
[`v43.272.4`](https://redirect.github.com/renovatebot/renovate/releases/tag/43.272.4)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/43.272.3...43.272.4)
##### Documentation
- fix outdated statement that Docker major updates are disabled by
default
([#44524](https://redirect.github.com/renovatebot/renovate/issues/44524))
([b0bc33c](https://redirect.github.com/renovatebot/renovate/commit/b0bc33c8b7029ece15adc67050120cb46544e196))
- wrap preset names in code blocks
([#44234](https://redirect.github.com/renovatebot/renovate/issues/44234))
([6959107](https://redirect.github.com/renovatebot/renovate/commit/6959107bfbde5f365d486b447c8c3ac86190bd91))
##### Tests
- add linter for `as LongCommitSha` in test files
([#44681](https://redirect.github.com/renovatebot/renovate/issues/44681))
([1e03699](https://redirect.github.com/renovatebot/renovate/commit/1e03699cd67efc15c9bf26e39ecc9e6854d60323))
##### Build System
- **deps:** update dependency protobufjs to v8.7.1 (main)
([#44732](https://redirect.github.com/renovatebot/renovate/issues/44732))
([52907ef](https://redirect.github.com/renovatebot/renovate/commit/52907ef1665182a350a943f0a30674de5520183d))
###
[`v43.272.3`](https://redirect.github.com/renovatebot/renovate/releases/tag/43.272.3)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/43.272.2...43.272.3)
##### Bug Fixes
- **docker:** include `global` and `inherited` JSON schemas
([#44674](https://redirect.github.com/renovatebot/renovate/issues/44674))
([29ca969](https://redirect.github.com/renovatebot/renovate/commit/29ca969fe14ebb75fbbc3f10fd7f1ba8da756d31))
###
[`v43.272.2`](https://redirect.github.com/renovatebot/renovate/releases/tag/43.272.2)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/43.272.1...43.272.2)
##### Bug Fixes
- **platform/azure:** evaluate policies before attempting to merge PR
([#44631](https://redirect.github.com/renovatebot/renovate/issues/44631))
([7ac677d](https://redirect.github.com/renovatebot/renovate/commit/7ac677dc9b0c0aa818c9fd130f80a0c4cbcd591b))
##### Code Refactoring
- **types:** document `localDir` isn't a `globalOnly` option
([#44635](https://redirect.github.com/renovatebot/renovate/issues/44635))
([0e6429b](https://redirect.github.com/renovatebot/renovate/commit/0e6429b13e78221486512de7bbcbb7d11f9be5e6))
### [
> ✂ **Note**
>
> PR body was truncated to here.
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- "before 4am on Monday"
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config
help](https://redirect.github.com/renovatebot/renovate/discussions) if
that's undesired.
---
- [ ] If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/prometheus/client_java).
---------
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Gregor Zeitlinger
---
.mise/lib/jmx_exporter_compat.py | 16 +-
.mise/lib/micrometer_compat.py | 16 +-
.mise/tasks/generate_benchmark_summary.py | 80 ++++-----
.mise/tasks/jmx-exporter/prepare.py | 1 -
.mise/tasks/jmx-exporter/test.py | 1 -
.mise/tasks/lint/bom.py | 14 +-
.mise/tasks/micrometer/prepare.py | 1 -
.mise/tasks/micrometer/test.py | 1 -
.mise/tasks/test_update-benchmarks.py | 2 +-
.mise/tasks/update_benchmarks.py | 22 +--
mise.lock | 210 +++++++++++-----------
mise.toml | 12 +-
12 files changed, 188 insertions(+), 188 deletions(-)
mode change 100644 => 100755 .mise/tasks/generate_benchmark_summary.py
diff --git a/.mise/lib/jmx_exporter_compat.py b/.mise/lib/jmx_exporter_compat.py
index be29a2715d..dd364e0643 100755
--- a/.mise/lib/jmx_exporter_compat.py
+++ b/.mise/lib/jmx_exporter_compat.py
@@ -7,8 +7,6 @@
import subprocess
import xml.etree.ElementTree as ET
from pathlib import Path
-from typing import Optional
-
DEFAULT_JMX_EXPORTER_DIR = Path(
os.environ.get("JMX_EXPORTER_DIR", "/tmp/jmx-exporter-compat")
@@ -34,8 +32,8 @@
def run_cmd(
cmd: list[str],
- cwd: Optional[Path] = None,
- env: Optional[dict[str, str]] = None,
+ cwd: Path | None = None,
+ env: dict[str, str] | None = None,
) -> None:
subprocess.run(cmd, cwd=cwd, check=True, env=env)
@@ -59,10 +57,12 @@ def check_clean_worktree(jmx_exporter_dir: Path) -> None:
)
-def get_prom_version(root_dir: Path = Path.cwd()) -> str:
+def get_prom_version(root_dir: Path | None = None) -> str:
configured_version = DEFAULT_PROM_VERSION
if configured_version:
return configured_version
+ if root_dir is None:
+ root_dir = Path.cwd()
pom = ET.parse(root_dir / "pom.xml")
root = pom.getroot()
version = root.findtext("./{*}version")
@@ -96,7 +96,9 @@ def prepare_repo(
)
-def install_local_artifacts(root_dir: Path = Path.cwd()) -> None:
+def install_local_artifacts(root_dir: Path | None = None) -> None:
+ if root_dir is None:
+ root_dir = Path.cwd()
run_cmd(
[
"./mvnw",
@@ -141,7 +143,7 @@ def quick_test_images(
def run_maven_test(
jmx_exporter_dir: Path = DEFAULT_JMX_EXPORTER_DIR,
- prom_version: Optional[str] = None,
+ prom_version: str | None = None,
) -> None:
if prom_version is None:
prom_version = get_prom_version()
diff --git a/.mise/lib/micrometer_compat.py b/.mise/lib/micrometer_compat.py
index dc3b9191f2..b1c50d49f8 100755
--- a/.mise/lib/micrometer_compat.py
+++ b/.mise/lib/micrometer_compat.py
@@ -6,8 +6,6 @@
import subprocess
import xml.etree.ElementTree as ET
from pathlib import Path
-from typing import Optional
-
DEFAULT_MICROMETER_DIR = Path(
os.environ.get("MICROMETER_DIR", "/tmp/micrometer-compat")
@@ -27,7 +25,7 @@
DEFAULT_PROM_VERSION = os.environ.get("PROM_VERSION")
-def run_cmd(cmd: list[str], cwd: Optional[Path] = None) -> None:
+def run_cmd(cmd: list[str], cwd: Path | None = None) -> None:
subprocess.run(cmd, cwd=cwd, check=True)
@@ -49,10 +47,12 @@ def check_clean_worktree(micrometer_dir: Path) -> None:
)
-def get_prom_version(root_dir: Path = Path.cwd()) -> str:
+def get_prom_version(root_dir: Path | None = None) -> str:
configured_version = DEFAULT_PROM_VERSION
if configured_version:
return configured_version
+ if root_dir is None:
+ root_dir = Path.cwd()
pom = ET.parse(root_dir / "pom.xml")
root = pom.getroot()
version = root.findtext("./{*}version")
@@ -64,7 +64,7 @@ def get_prom_version(root_dir: Path = Path.cwd()) -> str:
def write_init_script(
- init_script: Path = DEFAULT_INIT_SCRIPT, prom_version: Optional[str] = None
+ init_script: Path = DEFAULT_INIT_SCRIPT, prom_version: str | None = None
) -> None:
if prom_version is None:
prom_version = get_prom_version()
@@ -120,7 +120,9 @@ def prepare_repo(
)
-def install_local_artifacts(root_dir: Path = Path.cwd()) -> None:
+def install_local_artifacts(root_dir: Path | None = None) -> None:
+ if root_dir is None:
+ root_dir = Path.cwd()
run_cmd(
[
"./mvnw",
@@ -144,7 +146,7 @@ def install_local_artifacts(root_dir: Path = Path.cwd()) -> None:
def run_gradle_test(
- test_selector: Optional[str] = None,
+ test_selector: str | None = None,
micrometer_dir: Path = DEFAULT_MICROMETER_DIR,
init_script: Path = DEFAULT_INIT_SCRIPT,
) -> None:
diff --git a/.mise/tasks/generate_benchmark_summary.py b/.mise/tasks/generate_benchmark_summary.py
old mode 100644
new mode 100755
index e37f1e09ce..3a1929b49a
--- a/.mise/tasks/generate_benchmark_summary.py
+++ b/.mise/tasks/generate_benchmark_summary.py
@@ -18,12 +18,13 @@
import argparse
import json
+import math
import os
import shutil
+import subprocess
import sys
from datetime import datetime, timezone
from pathlib import Path
-from typing import Dict, List, Optional, Tuple
def parse_args():
@@ -83,7 +84,7 @@ def parse_args():
return parser.parse_args()
-def get_system_info() -> Dict[str, str]:
+def get_system_info() -> dict[str, str]:
"""Capture system hardware information."""
import multiprocessing
import platform
@@ -92,7 +93,7 @@ def get_system_info() -> Dict[str, str]:
try:
info["cpu_cores"] = str(multiprocessing.cpu_count())
- except Exception:
+ except NotImplementedError:
pass
try:
@@ -104,17 +105,16 @@ def get_system_info() -> Dict[str, str]:
except FileNotFoundError:
# macOS
try:
- import subprocess
-
result = subprocess.run(
["sysctl", "-n", "machdep.cpu.brand_string"],
capture_output=True,
+ check=False,
text=True,
timeout=5,
)
if result.returncode == 0:
info["cpu_model"] = result.stdout.strip()
- except Exception:
+ except (OSError, subprocess.SubprocessError):
pass
try:
@@ -127,18 +127,17 @@ def get_system_info() -> Dict[str, str]:
except FileNotFoundError:
# macOS
try:
- import subprocess
-
result = subprocess.run(
["sysctl", "-n", "hw.memsize"],
capture_output=True,
+ check=False,
text=True,
timeout=5,
)
if result.returncode == 0:
bytes_mem = int(result.stdout.strip())
info["memory_gb"] = str(round(bytes_mem / 1024 / 1024 / 1024))
- except Exception:
+ except (OSError, ValueError, subprocess.SubprocessError):
pass
info["os"] = f"{platform.system()} {platform.release()}"
@@ -146,7 +145,7 @@ def get_system_info() -> Dict[str, str]:
return info
-def read_system_info(path: Optional[str]) -> Dict[str, str]:
+def read_system_info(path: str | None) -> dict[str, str]:
"""Read system info from JSON, or capture it from the current host."""
if not path:
return get_system_info()
@@ -163,7 +162,7 @@ def write_system_info(path: str) -> None:
f.write("\n")
-def format_system_info(sysinfo: Optional[Dict[str, str]]) -> str:
+def format_system_info(sysinfo: dict[str, str] | None) -> str:
"""Format captured system info for markdown."""
if not sysinfo:
return "unknown"
@@ -179,23 +178,22 @@ def format_system_info(sysinfo: Optional[Dict[str, str]]) -> str:
return ", ".join(parts) if parts else "unknown"
-def get_commit_sha(provided_sha: Optional[str]) -> str:
+def get_commit_sha(provided_sha: str | None) -> str:
"""Get commit SHA from argument, git, or return 'local'."""
if provided_sha:
return provided_sha
try:
- import subprocess
-
result = subprocess.run(
["git", "rev-parse", "HEAD"],
capture_output=True,
+ check=False,
text=True,
timeout=5,
)
if result.returncode == 0:
return result.stdout.strip()
- except Exception:
+ except (OSError, subprocess.SubprocessError):
pass
return "local"
@@ -221,7 +219,7 @@ def format_error(error) -> str:
"""Format error value, handling NaN."""
try:
error_val = float(error)
- if error_val != error_val: # NaN check
+ if math.isnan(error_val):
return ""
elif error_val >= 1_000:
return f"± {error_val / 1_000:.2f}K"
@@ -244,18 +242,18 @@ def short_benchmark_name(name: str) -> str:
return name.replace("io.prometheus.metrics.benchmarks.", "")
-def metric_score(result: Dict) -> Optional[float]:
+def metric_score(result: dict) -> float | None:
"""Extract a benchmark score as a finite float."""
try:
score = float(result.get("primaryMetric", {}).get("score"))
- if score == score:
+ if not math.isnan(score):
return score
except (ValueError, TypeError):
pass
return None
-def score_interval(result: Dict) -> Optional[Tuple[float, float]]:
+def score_interval(result: dict) -> tuple[float, float] | None:
"""Extract the JMH confidence interval for a benchmark result."""
metric = result.get("primaryMetric", {})
confidence = metric.get("scoreConfidence")
@@ -263,7 +261,7 @@ def score_interval(result: Dict) -> Optional[Tuple[float, float]]:
try:
low = float(confidence[0])
high = float(confidence[1])
- if low == low and high == high:
+ if not math.isnan(low) and not math.isnan(high):
return min(low, high), max(low, high)
except (ValueError, TypeError):
pass
@@ -273,21 +271,21 @@ def score_interval(result: Dict) -> Optional[Tuple[float, float]]:
return None
try:
error = float(metric.get("scoreError"))
- if error == error:
+ if not math.isnan(error):
return score - error, score + error
except (ValueError, TypeError):
pass
return None
-def lower_is_better(result: Dict) -> bool:
+def lower_is_better(result: dict) -> bool:
"""Return true for JMH modes where lower score is better."""
mode = str(result.get("mode", ""))
unit = str(result.get("primaryMetric", {}).get("scoreUnit", ""))
return mode in {"avgt", "sample", "ss"} or unit.endswith("/op")
-def comparison_status(head: Dict, baseline: Dict) -> str:
+def comparison_status(head: dict, baseline: dict) -> str:
"""Classify a benchmark comparison using confidence intervals."""
head_interval = score_interval(head)
baseline_interval = score_interval(baseline)
@@ -317,7 +315,7 @@ def comparison_status(head: Dict, baseline: Dict) -> str:
return "faster" if head_score > baseline_score else "slower"
-def performance_change(head: Dict, baseline: Dict) -> Optional[float]:
+def performance_change(head: dict, baseline: dict) -> float | None:
"""Return percent performance change, with positive meaning faster."""
head_score = metric_score(head)
baseline_score = metric_score(baseline)
@@ -328,7 +326,7 @@ def performance_change(head: Dict, baseline: Dict) -> Optional[float]:
return (head_score / float(baseline_score) - 1) * 100
-def format_change(change: Optional[float]) -> str:
+def format_change(change: float | None) -> str:
"""Format a percent performance change."""
if change is None:
return ""
@@ -336,16 +334,16 @@ def format_change(change: Optional[float]) -> str:
def generate_comparison_section(
- results: List,
- baseline_results: List,
+ results: list,
+ baseline_results: list,
commit_sha: str,
baseline_sha: str,
repo: str,
baseline_repo: str,
- comparison_note: Optional[str] = None,
- system_info: Optional[Dict[str, str]] = None,
- baseline_system_info: Optional[Dict[str, str]] = None,
-) -> List[str]:
+ comparison_note: str | None = None,
+ system_info: dict[str, str] | None = None,
+ baseline_system_info: dict[str, str] | None = None,
+) -> list[str]:
"""Generate a base-vs-head benchmark comparison section."""
by_name = {b.get("benchmark", ""): b for b in results if b.get("benchmark")}
baseline_by_name = {
@@ -408,15 +406,15 @@ def generate_comparison_section(
def generate_markdown(
- results: List,
+ results: list,
commit_sha: str,
repo: str,
- baseline_results: Optional[List] = None,
- baseline_sha: Optional[str] = None,
- baseline_repo: Optional[str] = None,
- comparison_note: Optional[str] = None,
- system_info: Optional[Dict[str, str]] = None,
- baseline_system_info: Optional[Dict[str, str]] = None,
+ baseline_results: list | None = None,
+ baseline_sha: str | None = None,
+ baseline_repo: str | None = None,
+ comparison_note: str | None = None,
+ system_info: dict[str, str] | None = None,
+ baseline_system_info: dict[str, str] | None = None,
) -> str:
"""Generate markdown summary from JMH results."""
datetime_str = datetime.now(timezone.utc).strftime("%Y-%m-%dT%H:%M:%SZ")
@@ -477,12 +475,12 @@ def generate_markdown(
)
# Group by benchmark class
- benchmarks_by_class: Dict[str, List] = {}
+ benchmarks_by_class: dict[str, list] = {}
for b in results:
name = b.get("benchmark", "")
parts = name.rsplit(".", 1)
if len(parts) == 2:
- class_name, method = parts
+ class_name, _method = parts
class_short = class_name.split(".")[-1]
else:
class_short = "Other"
@@ -563,7 +561,7 @@ def generate_markdown(
try:
error_val = float(error)
- if error_val != error_val: # NaN
+ if math.isnan(error_val):
error_str = ""
else:
error_str = f"± {error_val:.3f}"
diff --git a/.mise/tasks/jmx-exporter/prepare.py b/.mise/tasks/jmx-exporter/prepare.py
index 348415f7f3..845b76661a 100755
--- a/.mise/tasks/jmx-exporter/prepare.py
+++ b/.mise/tasks/jmx-exporter/prepare.py
@@ -5,7 +5,6 @@
import sys
-
sys.path.insert(0, ".mise/lib")
diff --git a/.mise/tasks/jmx-exporter/test.py b/.mise/tasks/jmx-exporter/test.py
index 3e39893004..0f7694c190 100755
--- a/.mise/tasks/jmx-exporter/test.py
+++ b/.mise/tasks/jmx-exporter/test.py
@@ -5,7 +5,6 @@
import sys
-
sys.path.insert(0, ".mise/lib")
diff --git a/.mise/tasks/lint/bom.py b/.mise/tasks/lint/bom.py
index d77b88e231..e4c70988ca 100755
--- a/.mise/tasks/lint/bom.py
+++ b/.mise/tasks/lint/bom.py
@@ -7,7 +7,6 @@
import sys
from fnmatch import fnmatch
from pathlib import Path
-from typing import List
ROOT = Path(__file__).resolve().parents[3] # repo root (.. from .mise/tasks/lint)
IGNORE_DIRS = {"prometheus-metrics-parent"}
@@ -31,7 +30,7 @@ def first_artifact_id(pom_file: Path) -> str:
return matches[1].strip()
-def add_dir(dir_path: Path, want: List[str]):
+def add_dir(dir_path: Path, want: list[str]):
if not dir_path.is_dir():
raise FileNotFoundError(f"Directory {dir_path} does not exist.")
@@ -49,8 +48,8 @@ def add_dir(dir_path: Path, want: List[str]):
want.append(artifact_id)
-def collect_want(root: Path) -> List[str]:
- want: List[str] = []
+def collect_want(root: Path) -> list[str]:
+ want: list[str] = []
# top-level prometheus-metrics*
for entry in sorted(root.iterdir()):
if entry.is_dir() and fnmatch(entry.name, f"{MODULE_PREFIX}*"):
@@ -68,14 +67,15 @@ def collect_want(root: Path) -> List[str]:
return want_unique
-def collect_have(bom_pom: Path) -> List[str]:
+def collect_have(bom_pom: Path) -> list[str]:
if not bom_pom.is_file():
raise FileNotFoundError(f"BOM file {bom_pom} does not exist.")
text = bom_pom.read_text(encoding="utf-8")
# find artifactId values that start with MODULE_PREFIX
matches = re.findall(
- r"\s*(%s[^<\s]*)\s*" % re.escape(MODULE_PREFIX), text
+ rf"\s*({re.escape(MODULE_PREFIX)}[^<\s]*)\s*",
+ text,
)
return sorted(matches)
@@ -108,7 +108,7 @@ def main() -> int:
else:
return 0
- except Exception as e:
+ except (OSError, RuntimeError) as e:
print(e, file=sys.stderr)
return 1
diff --git a/.mise/tasks/micrometer/prepare.py b/.mise/tasks/micrometer/prepare.py
index ba13acf691..c4fbf2208a 100755
--- a/.mise/tasks/micrometer/prepare.py
+++ b/.mise/tasks/micrometer/prepare.py
@@ -5,7 +5,6 @@
import sys
-
sys.path.insert(0, ".mise/lib")
diff --git a/.mise/tasks/micrometer/test.py b/.mise/tasks/micrometer/test.py
index 40316f5695..68fb3f661e 100755
--- a/.mise/tasks/micrometer/test.py
+++ b/.mise/tasks/micrometer/test.py
@@ -5,7 +5,6 @@
import sys
-
sys.path.insert(0, ".mise/lib")
diff --git a/.mise/tasks/test_update-benchmarks.py b/.mise/tasks/test_update-benchmarks.py
index 3d80b4983f..a42091ef1e 100644
--- a/.mise/tasks/test_update-benchmarks.py
+++ b/.mise/tasks/test_update-benchmarks.py
@@ -66,7 +66,7 @@ def test_update_only_inserts_matching_class_lines(self):
updated = update_pre_blocks_under_module(self.module_path, self.table)
# All three files should be updated
self.assertEqual(
- set(os.path.basename(p) for p in updated),
+ {os.path.basename(p) for p in updated},
{
os.path.basename(self.files["CounterBenchmark"]),
os.path.basename(self.files["HistogramBenchmark"]),
diff --git a/.mise/tasks/update_benchmarks.py b/.mise/tasks/update_benchmarks.py
index b6eeba53c5..6f7f788dd7 100755
--- a/.mise/tasks/update_benchmarks.py
+++ b/.mise/tasks/update_benchmarks.py
@@ -29,10 +29,9 @@
import shlex
import subprocess
import sys
-from typing import List, Optional
-def run_cmd(cmd: List[str], cwd: Optional[str] = None) -> str:
+def run_cmd(cmd: list[str], cwd: str | None = None) -> str:
"""Run a command, stream stdout/stderr to the console for progress, and return the full output.
This replaces the previous blocking subprocess.run approach so users can see build / JMH
@@ -47,7 +46,7 @@ def run_cmd(cmd: List[str], cwd: Optional[str] = None) -> str:
print(f"Command not found: {cmd[0]}")
raise
- output_lines: List[str] = []
+ output_lines: list[str] = []
try:
assert proc.stdout is not None
# Stream lines as they appear and capture them for returning
@@ -94,7 +93,7 @@ def find_benchmarks_jar(module: str) -> str:
return jar
-def run_jmh(jar: str, java_cmd: str, extra_args: Optional[str]) -> str:
+def run_jmh(jar: str, java_cmd: str, extra_args: str | None) -> str:
args = [java_cmd, "-jar", jar, "-rf", "text"]
if extra_args:
args += shlex.split(extra_args)
@@ -128,7 +127,7 @@ def extract_first_table(jmh_output: str) -> str:
return table
-def filter_table_for_class(table: str, class_name: str) -> Optional[str]:
+def filter_table_for_class(table: str, class_name: str) -> str | None:
"""
Return a table string that contains only the header and the lines belonging to `class_name`.
If no matching lines are found, return None.
@@ -157,16 +156,19 @@ def filter_table_for_class(table: str, class_name: str) -> Optional[str]:
return header + "\n" + "\n".join(matched)
-def update_pre_blocks_under_module(module: str, table: str) -> List[str]:
+def update_pre_blocks_under_module(module: str, table: str) -> list[str]:
# Find files under module and update any
...
block that contains 'thrpt'
updated_files = []
for path in glob.glob(os.path.join(module, "**"), recursive=True):
if os.path.isdir(path):
continue
+ content = None
try:
with open(path, "r", encoding="utf-8") as f:
content = f.read()
- except Exception:
+ except (OSError, UnicodeError):
+ pass
+ if content is None:
continue
# quick filter
if "
" not in content or "thrpt" not in content:
@@ -188,10 +190,10 @@ def update_pre_blocks_under_module(module: str, table: str) -> List[str]:
# This will match patterns like: " *
...
" and capture the prefix (e.g. " * ")
pattern = re.compile(r"(?m)^(?P[ \t]*\*[ \t]*)
[\s\S]*?
")
- def repl(m: re.Match) -> str:
+ def repl(m: re.Match, replacement_table: str = filtered_table) -> str:
prefix = m.group("prefix")
# Build the new block with the same prefix on each line
- lines = filtered_table.splitlines()
+ lines = replacement_table.splitlines()
replaced = prefix + "
OpenTelemetry's own Views API also supports filtering and aggregation, and may be preferable
+ * for OpenTelemetry-specific deployments; this filter is intended for users who want the same
+ * {@code io.prometheus.exporter.filter.*} config to apply regardless of which exporter they use.
+ *
+ * @return {@code null} if no filter properties are set, to avoid the overhead of testing every
+ * metric name against a filter that matches everything.
+ */
+ @Nullable
+ private static Predicate makeNameFilter(ExporterFilterProperties props) {
+ if (props.getAllowedMetricNames() == null
+ && props.getExcludedMetricNames() == null
+ && props.getAllowedMetricNamePrefixes() == null
+ && props.getExcludedMetricNamePrefixes() == null) {
+ return null;
+ }
+ return MetricNameFilter.builder()
+ .nameMustBeEqualTo(props.getAllowedMetricNames())
+ .nameMustNotBeEqualTo(props.getExcludedMetricNames())
+ .nameMustStartWith(props.getAllowedMetricNamePrefixes())
+ .nameMustNotStartWith(props.getExcludedMetricNamePrefixes())
+ .build();
}
@Override
public Collection collectAllMetrics() {
- // Note: Currently all metrics from the registry are exported. To add metric filtering
- // similar to the Servlet exporter, one could:
- // 1. Add filter properties to ExporterOpenTelemetryProperties (allowedNames, excludedNames,
- // etc.)
- // 2. Convert these properties to a Predicate using MetricNameFilter.builder()
- // 3. Call registry.scrape(filter) instead of registry.scrape()
- // OpenTelemetry also provides its own Views API for filtering and aggregation, which may be
- // preferred for OpenTelemetry-specific deployments.
- MetricSnapshots snapshots = registry.scrape();
+ MetricSnapshots snapshots =
+ nameFilter != null ? registry.scrape(nameFilter) : registry.scrape();
Resource resourceWithTargetInfo = resource.merge(resourceFromTargetInfo(snapshots));
InstrumentationScopeInfo scopeFromInfo = instrumentationScopeFromOtelScopeInfo(snapshots);
List result = new ArrayList<>(snapshots.size());
@@ -142,4 +181,37 @@ private void addUnlessNull(List result, @Nullable MetricData data) {
result.add(data);
}
}
+
+ static class Builder {
+ private final PrometheusRegistry registry;
+ private final Resource resource;
+ private final InstrumentationScopeInfo instrumentationScopeInfo;
+ private final boolean preserveNames;
+ private ExporterFilterProperties filterProperties = ExporterFilterProperties.builder().build();
+
+ private Builder(
+ PrometheusRegistry registry,
+ InstrumentationScopeInfo instrumentationScopeInfo,
+ Resource resource,
+ boolean preserveNames) {
+ this.registry = registry;
+ this.instrumentationScopeInfo = instrumentationScopeInfo;
+ this.resource = resource;
+ this.preserveNames = preserveNames;
+ }
+
+ Builder exporterFilterProperties(ExporterFilterProperties filterProperties) {
+ this.filterProperties = filterProperties;
+ return this;
+ }
+
+ PrometheusMetricProducer build() {
+ return new PrometheusMetricProducer(
+ registry,
+ instrumentationScopeInfo,
+ resource,
+ preserveNames,
+ makeNameFilter(filterProperties));
+ }
+ }
}
diff --git a/prometheus-metrics-exporter-opentelemetry/src/test/java/io/prometheus/metrics/exporter/opentelemetry/ExportTest.java b/prometheus-metrics-exporter-opentelemetry/src/test/java/io/prometheus/metrics/exporter/opentelemetry/ExportTest.java
index 0332eb5747..4329df4b8d 100644
--- a/prometheus-metrics-exporter-opentelemetry/src/test/java/io/prometheus/metrics/exporter/opentelemetry/ExportTest.java
+++ b/prometheus-metrics-exporter-opentelemetry/src/test/java/io/prometheus/metrics/exporter/opentelemetry/ExportTest.java
@@ -12,6 +12,7 @@
import io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions;
import io.opentelemetry.sdk.testing.exporter.InMemoryMetricReader;
import io.opentelemetry.sdk.testing.junit5.OpenTelemetryExtension;
+import io.prometheus.metrics.config.ExporterFilterProperties;
import io.prometheus.metrics.core.metrics.Counter;
import io.prometheus.metrics.core.metrics.Gauge;
import io.prometheus.metrics.core.metrics.Histogram;
@@ -46,11 +47,12 @@ void setUp() throws IllegalAccessException, NoSuchFieldException {
MetricReader reader = (MetricReader) field.get(testing);
PrometheusMetricProducer prometheusMetricProducer =
- new PrometheusMetricProducer(
- registry,
- InstrumentationScopeInfo.create("test"),
- Resource.create(Attributes.builder().put("staticRes", "value").build()),
- false);
+ PrometheusMetricProducer.builder(
+ registry,
+ InstrumentationScopeInfo.create("test"),
+ Resource.create(Attributes.builder().put("staticRes", "value").build()),
+ false)
+ .build();
reader.register(prometheusMetricProducer);
}
@@ -332,11 +334,12 @@ void preserveNamesWithUnit() {
InMemoryMetricReader reader = InMemoryMetricReader.create();
PrometheusRegistry preserveRegistry = new PrometheusRegistry();
reader.register(
- new PrometheusMetricProducer(
- preserveRegistry,
- InstrumentationScopeInfo.create("test"),
- Resource.create(Attributes.builder().put("staticRes", "value").build()),
- true));
+ PrometheusMetricProducer.builder(
+ preserveRegistry,
+ InstrumentationScopeInfo.create("test"),
+ Resource.create(Attributes.builder().put("staticRes", "value").build()),
+ true)
+ .build());
Counter.builder().name("req").unit(Unit.BYTES).register(preserveRegistry).inc();
@@ -350,11 +353,12 @@ void preserveNamesWithUnitAlreadyInName() {
InMemoryMetricReader reader = InMemoryMetricReader.create();
PrometheusRegistry preserveRegistry = new PrometheusRegistry();
reader.register(
- new PrometheusMetricProducer(
- preserveRegistry,
- InstrumentationScopeInfo.create("test"),
- Resource.create(Attributes.builder().put("staticRes", "value").build()),
- true));
+ PrometheusMetricProducer.builder(
+ preserveRegistry,
+ InstrumentationScopeInfo.create("test"),
+ Resource.create(Attributes.builder().put("staticRes", "value").build()),
+ true)
+ .build());
Counter.builder().name("req_bytes").unit(Unit.BYTES).register(preserveRegistry).inc();
@@ -368,11 +372,12 @@ void preserveNamesWithoutUnit() {
InMemoryMetricReader reader = InMemoryMetricReader.create();
PrometheusRegistry preserveRegistry = new PrometheusRegistry();
reader.register(
- new PrometheusMetricProducer(
- preserveRegistry,
- InstrumentationScopeInfo.create("test"),
- Resource.create(Attributes.builder().put("staticRes", "value").build()),
- true));
+ PrometheusMetricProducer.builder(
+ preserveRegistry,
+ InstrumentationScopeInfo.create("test"),
+ Resource.create(Attributes.builder().put("staticRes", "value").build()),
+ true)
+ .build());
Counter.builder().name("events_total").register(preserveRegistry).inc();
@@ -381,6 +386,50 @@ void preserveNamesWithoutUnit() {
OpenTelemetryAssertions.assertThat(metrics.get(0)).hasName("events_total");
}
+ @Test
+ void metricNameFilterExcludedNames() {
+ InMemoryMetricReader reader = InMemoryMetricReader.create();
+ PrometheusRegistry filteredRegistry = new PrometheusRegistry();
+ reader.register(
+ PrometheusMetricProducer.builder(
+ filteredRegistry,
+ InstrumentationScopeInfo.create("test"),
+ Resource.create(Attributes.builder().put("staticRes", "value").build()),
+ false)
+ .exporterFilterProperties(
+ ExporterFilterProperties.builder().excludedNames("secret_total").build())
+ .build());
+
+ Counter.builder().name("secret").register(filteredRegistry).inc();
+ Counter.builder().name("public").register(filteredRegistry).inc();
+
+ List metrics = new ArrayList<>(reader.collectAllMetrics());
+ assertThat(metrics).hasSize(1);
+ OpenTelemetryAssertions.assertThat(metrics.get(0)).hasName("public");
+ }
+
+ @Test
+ void metricNameFilterAllowedPrefixes() {
+ InMemoryMetricReader reader = InMemoryMetricReader.create();
+ PrometheusRegistry filteredRegistry = new PrometheusRegistry();
+ reader.register(
+ PrometheusMetricProducer.builder(
+ filteredRegistry,
+ InstrumentationScopeInfo.create("test"),
+ Resource.create(Attributes.builder().put("staticRes", "value").build()),
+ false)
+ .exporterFilterProperties(
+ ExporterFilterProperties.builder().allowedPrefixes("http_").build())
+ .build());
+
+ Counter.builder().name("http_requests").register(filteredRegistry).inc();
+ Counter.builder().name("jvm_threads").register(filteredRegistry).inc();
+
+ List metrics = new ArrayList<>(reader.collectAllMetrics());
+ assertThat(metrics).hasSize(1);
+ OpenTelemetryAssertions.assertThat(metrics.get(0)).hasName("http_requests");
+ }
+
private MetricAssert metricAssert() {
List metrics = testing.getMetrics();
assertThat(metrics).hasSize(1);
diff --git a/prometheus-metrics-exporter-opentelemetry/src/test/java/io/prometheus/metrics/exporter/opentelemetry/OtelAutoConfigTest.java b/prometheus-metrics-exporter-opentelemetry/src/test/java/io/prometheus/metrics/exporter/opentelemetry/OtelAutoConfigTest.java
index a81aec4408..19a737122b 100644
--- a/prometheus-metrics-exporter-opentelemetry/src/test/java/io/prometheus/metrics/exporter/opentelemetry/OtelAutoConfigTest.java
+++ b/prometheus-metrics-exporter-opentelemetry/src/test/java/io/prometheus/metrics/exporter/opentelemetry/OtelAutoConfigTest.java
@@ -7,11 +7,21 @@
import io.opentelemetry.sdk.autoconfigure.AutoConfiguredOpenTelemetrySdk;
import io.opentelemetry.sdk.autoconfigure.internal.AutoConfigureUtil;
import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties;
+import io.opentelemetry.sdk.metrics.data.MetricData;
+import io.opentelemetry.sdk.metrics.export.CollectionRegistration;
+import io.opentelemetry.sdk.metrics.export.MetricReader;
+import io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions;
+import io.prometheus.metrics.config.ExporterFilterProperties;
import io.prometheus.metrics.config.ExporterOpenTelemetryProperties;
import io.prometheus.metrics.config.PrometheusProperties;
import io.prometheus.metrics.config.PrometheusPropertiesLoader;
+import io.prometheus.metrics.core.metrics.Counter;
+import io.prometheus.metrics.model.registry.PrometheusRegistry;
+import java.lang.reflect.Field;
+import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
+import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.concurrent.atomic.AtomicReference;
@@ -67,21 +77,16 @@ public static Stream testCases() {
"values from builder",
new TestCase()
.expectedProperties(
- Map.of(
- "otel.exporter.otlp.protocol",
- Optional.of("http/protobuf"),
- "otel.exporter.otlp.endpoint",
- Optional.of("http://builder:4318"),
- "otel.exporter.otlp.headers",
- Optional.of("h=builder-v"),
- "otel.metric.export.interval",
- Optional.of("2s"),
- "otel.exporter.otlp.timeout",
- Optional.of("3s"),
- "otel.service.name",
- Optional.of("builder-service")))
+ ImmutableMap.>builder()
+ .put("otel.exporter.otlp.protocol", Optional.of("http/protobuf"))
+ .put("otel.exporter.otlp.endpoint", Optional.of("http://builder:4318"))
+ .put("otel.exporter.otlp.headers", Optional.of("h=builder-v"))
+ .put("otel.metric.export.interval", Optional.of("2s"))
+ .put("otel.exporter.otlp.timeout", Optional.of("3s"))
+ .put("otel.service.name", Optional.of("builder-service"))
+ .build())
.expectedResourceAttributes(
- Map.of(
+ ImmutableMap.of(
"key",
"builder-value",
"service.name",
@@ -316,6 +321,61 @@ void resolvePreserveNamesFromConfig() {
assertThat(OtelAutoConfig.resolvePreserveNames(builder, config)).isTrue();
}
+ @Test
+ void createReaderUsesExporterFilterProperties() throws IllegalAccessException {
+ PrometheusRegistry registry = new PrometheusRegistry();
+ PrometheusProperties config =
+ PrometheusProperties.builder()
+ .exporterFilterProperties(
+ ExporterFilterProperties.builder().excludedNames("secret_total").build())
+ .build();
+ OpenTelemetryExporter.Builder builder =
+ OpenTelemetryExporter.builder(config).registry(registry);
+ MetricReader reader = OtelAutoConfig.createReader(builder, config, registry);
+
+ try {
+ Counter.builder().name("secret").register(registry).inc();
+ Counter.builder().name("public").register(registry).inc();
+
+ PrometheusMetricProducer producer = findPrometheusMetricProducer(reader);
+ List metrics = new ArrayList<>(producer.collectAllMetrics());
+ assertThat(metrics).hasSize(1);
+ OpenTelemetryAssertions.assertThat(metrics.get(0)).hasName("public");
+ } finally {
+ reader.shutdown();
+ }
+ }
+
+ // MetricReader does not expose registered CollectionRegistrations, so this test locates the
+ // registered PrometheusMetricProducer reflectively to verify that OtelAutoConfig wires exporter
+ // filter properties through to it.
+ private static PrometheusMetricProducer findPrometheusMetricProducer(Object object)
+ throws IllegalAccessException {
+ assertThat(object).isNotNull();
+ for (Field field : object.getClass().getDeclaredFields()) {
+ field.setAccessible(true);
+ Object value = field.get(object);
+ if (value instanceof PrometheusMetricProducer) {
+ return (PrometheusMetricProducer) value;
+ }
+ if (value instanceof CollectionRegistration) {
+ return findPrometheusMetricProducer(value);
+ }
+ if (value instanceof Iterable>) {
+ for (Object element : (Iterable>) value) {
+ if (element instanceof PrometheusMetricProducer) {
+ return (PrometheusMetricProducer) element;
+ }
+ if (element instanceof CollectionRegistration) {
+ return findPrometheusMetricProducer(element);
+ }
+ }
+ }
+ }
+ throw new AssertionError(
+ "Did not find PrometheusMetricProducer in " + object.getClass().getName());
+ }
+
private static ExporterOpenTelemetryProperties getExporterOpenTelemetryProperties(
TestCase testCase) {
if (testCase.propertiesBuilder == null) {
From c78e5e147bb54f03776e52719bb796b7a0e003f7 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Tue, 28 Jul 2026 17:12:19 +0200
Subject: [PATCH 030/255] chore(deps): update dependency aqua:grafana/gcx to v1
(#2349)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This PR contains the following updates:
| Package | Update | Change |
|---|---|---|
| [aqua:grafana/gcx](https://redirect.github.com/grafana/gcx) | major |
`0.6.0` → `1.0.0` |
---
### Release Notes
grafana/gcx (aqua:grafana/gcx)
###
[`v1.0.0`](https://redirect.github.com/grafana/gcx/blob/HEAD/CHANGELOG.md#v100-2026-07-28)
[Compare
Source](https://redirect.github.com/grafana/gcx/compare/v0.6.0...v1.0.0)
##### Features
- alert: add ruler subtree for datasource-managed rule writes
- kg: add `entities correlate` to resolve entities from alert labels
- kg: add entity quality reports (`kg quality`), folded into `kg
diagnose`
##### Fixes
- alert: make GMA alert rules modifiable via the resources tier
- cloud: drop status/createdAt/updatedAt from stack regions output
- aio11y: point plugin id at renamed grafana-agento11y-app
##### Docs
- GA: remove public preview warnings, add GA notes across docs and
README
- skills: harden agento11y-instrument and agento11y-prod-setup guidance
- stop prescribing Editor/Admin for service-account tokens; installation
fixes
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/prometheus/client_java).
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
mise.lock | 44 ++++++++++++++++++++++----------------------
mise.toml | 2 +-
2 files changed, 23 insertions(+), 23 deletions(-)
diff --git a/mise.lock b/mise.lock
index 8809f7764b..f09cb34a5b 100644
--- a/mise.lock
+++ b/mise.lock
@@ -87,43 +87,43 @@ url_api = "https://api.github.com/repos/grafana/flint/releases/assets/476892021"
provenance = "github-attestations"
[[tools."aqua:grafana/gcx"]]
-version = "v0.6.0"
+version = "v1.0.0"
backend = "aqua:grafana/gcx"
[tools."aqua:grafana/gcx"."platforms.linux-arm64"]
-checksum = "sha256:4678cce06fc9d6cc364c460f67be0bb06861e00e3c058e48697ae7428938efcb"
-url = "https://github.com/grafana/gcx/releases/download/v0.6.0/gcx_0.6.0_linux_arm64.tar.gz"
-url_api = "https://api.github.com/repos/grafana/gcx/releases/assets/488386380"
+checksum = "sha256:605f6bb7406d144bd11c72ff25649ab17229699be585a253460b77396dc57585"
+url = "https://github.com/grafana/gcx/releases/download/v1.0.0/gcx_1.0.0_linux_arm64.tar.gz"
+url_api = "https://api.github.com/repos/grafana/gcx/releases/assets/492677496"
[tools."aqua:grafana/gcx"."platforms.linux-arm64-musl"]
-checksum = "sha256:4678cce06fc9d6cc364c460f67be0bb06861e00e3c058e48697ae7428938efcb"
-url = "https://github.com/grafana/gcx/releases/download/v0.6.0/gcx_0.6.0_linux_arm64.tar.gz"
-url_api = "https://api.github.com/repos/grafana/gcx/releases/assets/488386380"
+checksum = "sha256:605f6bb7406d144bd11c72ff25649ab17229699be585a253460b77396dc57585"
+url = "https://github.com/grafana/gcx/releases/download/v1.0.0/gcx_1.0.0_linux_arm64.tar.gz"
+url_api = "https://api.github.com/repos/grafana/gcx/releases/assets/492677496"
[tools."aqua:grafana/gcx"."platforms.linux-x64"]
-checksum = "sha256:5e76c064f14d9ec360cc48c46251b06a47762ab0dc755e4275e14ce2f67e8dbe"
-url = "https://github.com/grafana/gcx/releases/download/v0.6.0/gcx_0.6.0_linux_amd64.tar.gz"
-url_api = "https://api.github.com/repos/grafana/gcx/releases/assets/488386396"
+checksum = "sha256:c88c65958d19d83dc3a192a2a5037e08307a9c776019f24249b89f369c9c4d41"
+url = "https://github.com/grafana/gcx/releases/download/v1.0.0/gcx_1.0.0_linux_amd64.tar.gz"
+url_api = "https://api.github.com/repos/grafana/gcx/releases/assets/492677459"
[tools."aqua:grafana/gcx"."platforms.linux-x64-musl"]
-checksum = "sha256:5e76c064f14d9ec360cc48c46251b06a47762ab0dc755e4275e14ce2f67e8dbe"
-url = "https://github.com/grafana/gcx/releases/download/v0.6.0/gcx_0.6.0_linux_amd64.tar.gz"
-url_api = "https://api.github.com/repos/grafana/gcx/releases/assets/488386396"
+checksum = "sha256:c88c65958d19d83dc3a192a2a5037e08307a9c776019f24249b89f369c9c4d41"
+url = "https://github.com/grafana/gcx/releases/download/v1.0.0/gcx_1.0.0_linux_amd64.tar.gz"
+url_api = "https://api.github.com/repos/grafana/gcx/releases/assets/492677459"
[tools."aqua:grafana/gcx"."platforms.macos-arm64"]
-checksum = "sha256:7192ec16aef172d03031aa156c155eb351f230dae86e64e1ed337503fe45a1eb"
-url = "https://github.com/grafana/gcx/releases/download/v0.6.0/gcx_0.6.0_darwin_arm64.tar.gz"
-url_api = "https://api.github.com/repos/grafana/gcx/releases/assets/488386379"
+checksum = "sha256:5c27ac08d0d6d82a63468d75f41bfe83536e17efa89b6329076fcb2da046a672"
+url = "https://github.com/grafana/gcx/releases/download/v1.0.0/gcx_1.0.0_darwin_arm64.tar.gz"
+url_api = "https://api.github.com/repos/grafana/gcx/releases/assets/492677461"
[tools."aqua:grafana/gcx"."platforms.macos-x64"]
-checksum = "sha256:b5174d5c47ffeaf21c1a65c83b908538cf664649199bd017d5f3addb537fc4aa"
-url = "https://github.com/grafana/gcx/releases/download/v0.6.0/gcx_0.6.0_darwin_amd64.tar.gz"
-url_api = "https://api.github.com/repos/grafana/gcx/releases/assets/488386377"
+checksum = "sha256:383feee2eade5d941412b49d3c508bad2cbc5088a016c7f77bfad0eb9afe1984"
+url = "https://github.com/grafana/gcx/releases/download/v1.0.0/gcx_1.0.0_darwin_amd64.tar.gz"
+url_api = "https://api.github.com/repos/grafana/gcx/releases/assets/492677498"
[tools."aqua:grafana/gcx"."platforms.windows-x64"]
-checksum = "sha256:de456400960e2405de01dc493f7659e6a2a6168ea2c26b02e08ccbd06fa22385"
-url = "https://github.com/grafana/gcx/releases/download/v0.6.0/gcx_0.6.0_windows_amd64.zip"
-url_api = "https://api.github.com/repos/grafana/gcx/releases/assets/488386381"
+checksum = "sha256:9c8dcccbc1712463ebce92b8c9f07f05ca55d6d096b2219dcc7e0761f832fef9"
+url = "https://github.com/grafana/gcx/releases/download/v1.0.0/gcx_1.0.0_windows_amd64.zip"
+url_api = "https://api.github.com/repos/grafana/gcx/releases/assets/492677462"
[[tools."aqua:grafana/oats"]]
version = "0.8.0"
diff --git a/mise.toml b/mise.toml
index 497c10f193..569a2f3bd2 100644
--- a/mise.toml
+++ b/mise.toml
@@ -1,5 +1,5 @@
[tools]
-"aqua:grafana/gcx" = "v0.6.0"
+"aqua:grafana/gcx" = "v1.0.0"
"aqua:grafana/oats" = "0.8.0"
hugo = "0.164.0"
java = "temurin-25.0.3+9.0.LTS"
From 62d2443f639e2f643f04c0073920cb2b2c416116 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Wed, 29 Jul 2026 15:43:11 +0200
Subject: [PATCH 031/255] chore(deps): update dependency aqua:grafana/oats to
v0.9.0 (#2352)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This PR contains the following updates:
| Package | Update | Change |
|---|---|---|
| [aqua:grafana/oats](https://redirect.github.com/grafana/oats) | minor
| `0.8.0` → `0.10.0` |
---
### Release Notes
grafana/oats (aqua:grafana/oats)
###
[`v0.10.0`](https://redirect.github.com/grafana/oats/blob/HEAD/CHANGELOG.md#0100-2026-07-28)
[Compare
Source](https://redirect.github.com/grafana/oats/compare/v0.9.0...v0.10.0)
##### Features
- add opt-in HTTP input retries
([#453](https://redirect.github.com/grafana/oats/issues/453))
([82a973d](https://redirect.github.com/grafana/oats/commit/82a973d528a9dab8b8ac69091db53e41b92cf8b6))
##### Bug Fixes
- **release:** ensure gcx updates trigger releases
([#454](https://redirect.github.com/grafana/oats/issues/454))
([8e52488](https://redirect.github.com/grafana/oats/commit/8e52488956da7273f36937a8cbdfe97918e67278))
###
[`v0.9.0`](https://redirect.github.com/grafana/oats/blob/HEAD/CHANGELOG.md#090-2026-07-28)
[Compare
Source](https://redirect.github.com/grafana/oats/compare/v0.8.0...v0.9.0)
##### Features
- support one-shot Compose inputs
([#451](https://redirect.github.com/grafana/oats/issues/451))
([c43e6cb](https://redirect.github.com/grafana/oats/commit/c43e6cb6964d486c8a27df9f2d43b821f5a1ac62))
##### Bug Fixes
- **deps:** update module go.opentelemetry.io/collector/pdata to v1.63.0
([#438](https://redirect.github.com/grafana/oats/issues/438))
([6f3524a](https://redirect.github.com/grafana/oats/commit/6f3524a215886baf03e78e2493d235d1fb8ac131))
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/prometheus/client_java).
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
mise.lock | 44 ++++++++++++++++++++++----------------------
mise.toml | 2 +-
2 files changed, 23 insertions(+), 23 deletions(-)
diff --git a/mise.lock b/mise.lock
index f09cb34a5b..ba618bcbae 100644
--- a/mise.lock
+++ b/mise.lock
@@ -126,49 +126,49 @@ url = "https://github.com/grafana/gcx/releases/download/v1.0.0/gcx_1.0.0_windows
url_api = "https://api.github.com/repos/grafana/gcx/releases/assets/492677462"
[[tools."aqua:grafana/oats"]]
-version = "0.8.0"
+version = "0.10.0"
backend = "aqua:grafana/oats"
[tools."aqua:grafana/oats"."platforms.linux-arm64"]
-checksum = "sha256:82eaf1e836cea916b96cef6745423efd8256ceab64bbabd1fa8f13b3883a1212"
-url = "https://github.com/grafana/oats/releases/download/v0.8.0/oats_0.8.0_linux_arm64.tar.gz"
-url_api = "https://api.github.com/repos/grafana/oats/releases/assets/487171323"
+checksum = "sha256:be195aeeafce644c8a59438bbc8c472f5ca51df6f9570c6b646373a703d686b0"
+url = "https://github.com/grafana/oats/releases/download/v0.10.0/oats_0.10.0_linux_arm64.tar.gz"
+url_api = "https://api.github.com/repos/grafana/oats/releases/assets/493772122"
provenance = "github-attestations"
[tools."aqua:grafana/oats"."platforms.linux-arm64-musl"]
-checksum = "sha256:82eaf1e836cea916b96cef6745423efd8256ceab64bbabd1fa8f13b3883a1212"
-url = "https://github.com/grafana/oats/releases/download/v0.8.0/oats_0.8.0_linux_arm64.tar.gz"
-url_api = "https://api.github.com/repos/grafana/oats/releases/assets/487171323"
+checksum = "sha256:be195aeeafce644c8a59438bbc8c472f5ca51df6f9570c6b646373a703d686b0"
+url = "https://github.com/grafana/oats/releases/download/v0.10.0/oats_0.10.0_linux_arm64.tar.gz"
+url_api = "https://api.github.com/repos/grafana/oats/releases/assets/493772122"
provenance = "github-attestations"
[tools."aqua:grafana/oats"."platforms.linux-x64"]
-checksum = "sha256:ea4368c6d7f62244ce959ba60512f271d46d133b50350077257e2bb81c03a5ca"
-url = "https://github.com/grafana/oats/releases/download/v0.8.0/oats_0.8.0_linux_amd64.tar.gz"
-url_api = "https://api.github.com/repos/grafana/oats/releases/assets/487171351"
+checksum = "sha256:b72a7a587148d1eaa15ccea3ce1adfd67e040d1cd9f9e267c850154035ef9a18"
+url = "https://github.com/grafana/oats/releases/download/v0.10.0/oats_0.10.0_linux_amd64.tar.gz"
+url_api = "https://api.github.com/repos/grafana/oats/releases/assets/493772131"
provenance = "github-attestations"
[tools."aqua:grafana/oats"."platforms.linux-x64-musl"]
-checksum = "sha256:ea4368c6d7f62244ce959ba60512f271d46d133b50350077257e2bb81c03a5ca"
-url = "https://github.com/grafana/oats/releases/download/v0.8.0/oats_0.8.0_linux_amd64.tar.gz"
-url_api = "https://api.github.com/repos/grafana/oats/releases/assets/487171351"
+checksum = "sha256:b72a7a587148d1eaa15ccea3ce1adfd67e040d1cd9f9e267c850154035ef9a18"
+url = "https://github.com/grafana/oats/releases/download/v0.10.0/oats_0.10.0_linux_amd64.tar.gz"
+url_api = "https://api.github.com/repos/grafana/oats/releases/assets/493772131"
provenance = "github-attestations"
[tools."aqua:grafana/oats"."platforms.macos-arm64"]
-checksum = "sha256:156bb14787a09093de8ad0370c95e8104b771ca0b3ede382541f9837db797f27"
-url = "https://github.com/grafana/oats/releases/download/v0.8.0/oats_0.8.0_darwin_arm64.tar.gz"
-url_api = "https://api.github.com/repos/grafana/oats/releases/assets/487171322"
+checksum = "sha256:570d5c3b43c0cbe0d88c527d2fcecb9ee565e2f9d1a4d49fb4b6bbf5c3fa47e5"
+url = "https://github.com/grafana/oats/releases/download/v0.10.0/oats_0.10.0_darwin_arm64.tar.gz"
+url_api = "https://api.github.com/repos/grafana/oats/releases/assets/493772124"
provenance = "github-attestations"
[tools."aqua:grafana/oats"."platforms.macos-x64"]
-checksum = "sha256:034bc120d0d8bbf8aff05f61a6b569efec821df19bd25bb602ee77d4a6368235"
-url = "https://github.com/grafana/oats/releases/download/v0.8.0/oats_0.8.0_darwin_amd64.tar.gz"
-url_api = "https://api.github.com/repos/grafana/oats/releases/assets/487171352"
+checksum = "sha256:c3579f73928df56d1cf6d6bbb90d20424649ff08c228daa4810914017f8620d8"
+url = "https://github.com/grafana/oats/releases/download/v0.10.0/oats_0.10.0_darwin_amd64.tar.gz"
+url_api = "https://api.github.com/repos/grafana/oats/releases/assets/493772123"
provenance = "github-attestations"
[tools."aqua:grafana/oats"."platforms.windows-x64"]
-checksum = "sha256:166a5577c66efa9e4d677856ae1780212ee27c081042c8d54db0c996019adbc0"
-url = "https://github.com/grafana/oats/releases/download/v0.8.0/oats_0.8.0_windows_amd64.zip"
-url_api = "https://api.github.com/repos/grafana/oats/releases/assets/487171324"
+checksum = "sha256:b52112bf0932ea8dea1fb051bc04e29efa5ef138f67d09d775c4eb716d3d92f9"
+url = "https://github.com/grafana/oats/releases/download/v0.10.0/oats_0.10.0_windows_amd64.zip"
+url_api = "https://api.github.com/repos/grafana/oats/releases/assets/493772125"
provenance = "github-attestations"
[[tools."aqua:jonwiggins/xmloxide"]]
diff --git a/mise.toml b/mise.toml
index 569a2f3bd2..eb899bbe5b 100644
--- a/mise.toml
+++ b/mise.toml
@@ -1,6 +1,6 @@
[tools]
"aqua:grafana/gcx" = "v1.0.0"
-"aqua:grafana/oats" = "0.8.0"
+"aqua:grafana/oats" = "0.10.0"
hugo = "0.164.0"
java = "temurin-25.0.3+9.0.LTS"
node = "24.18.0"
From 23ae29aa71825c2a83abf249fc45cca2a46e3c8b Mon Sep 17 00:00:00 2001
From: Subhramit Basu
Date: Thu, 30 Jul 2026 05:13:15 +0530
Subject: [PATCH 032/255] docs: add API design guideline to contributing docs
(#2350)
---
AGENTS.md | 7 +++++++
CONTRIBUTING.md | 7 +++++++
2 files changed, 14 insertions(+)
diff --git a/AGENTS.md b/AGENTS.md
index 24481b8e5c..9c229117a3 100644
--- a/AGENTS.md
+++ b/AGENTS.md
@@ -125,6 +125,13 @@ commits. CI will fail if these checks fail.
- Build succeeds (tests are skipped;
run `mise run test` or `mise run test-all` for tests)
+## API Design
+
+- For internal or SDK-facing classes, prefer static factories and builders
+ over adding new public constructors.
+- Keep constructors non-public unless they are intentionally part of the
+ stable API.
+
## Testing
- JUnit 5 (Jupiter) with `@Test` annotations
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 519b98fea1..ece7e11e5f 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -73,6 +73,13 @@ This requires native lint tools,
which you can install with `mise run setup:native-lint-tools`.
These are optional but catch formatting and lint issues before CI.
+## API Design
+
+For internal or SDK-facing classes, prefer static factories and builders over
+adding new public constructors. Constructors are difficult to evolve
+compatibly, so keep them non-public unless they are intentionally part of the
+stable API.
+
## Running Tests
If you're getting errors when running tests:
From ee64917c53c0c8698a2b70ad48342f3bb2ca535d Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Wed, 29 Jul 2026 19:43:44 -0400
Subject: [PATCH 033/255] chore(deps): update dependency
org.mock-server:mockserver-netty-no-dependencies to v7.5.0 (#2354)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
> ℹ️ **Note**
>
> This PR body was truncated due to platform limits.
This PR contains the following updates:
| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
|
[org.mock-server:mockserver-netty-no-dependencies](https://www.mock-server.com)
([source](https://redirect.github.com/mock-server/mockserver-monorepo))
| `7.4.0` → `7.5.0` |

|

|
---
### Release Notes
mock-server/mockserver-monorepo
(org.mock-server:mockserver-netty-no-dependencies)
###
[`v7.5.0`](https://redirect.github.com/mock-server/mockserver-monorepo/blob/HEAD/changelog.md#750---2026-07-29)
##### Security
- **BREAKING: response templates can no longer reach arbitrary Java
classes by default, closing the
template remote-code-execution path reported as
[GHSA-7pwj-xvc2-hfpc](https://redirect.github.com/mock-server/mockserver-monorepo/security/advisories/GHSA-7pwj-xvc2-hfpc).**
A caller who can reach the management API can register an expectation,
and a response template was able
to load `java.lang.Runtime` and execute OS commands in the MockServer
process. Both engines that could
do this are now sandboxed out of the box:
- `velocityDisallowClassLoading` now defaults to **`true`** (was
`false`), installing Velocity's
`SecureUberspector` so a template cannot reach classes through
`$request.class.classLoader.loadClass(...)`.
This is the more exposed half of the issue, and the half the report did
not cover: Velocity ships in
the DEFAULT distribution, whereas the JavaScript engine does not.
- JavaScript templates now resolve **no** Java classes unless an
operator grants them. Previously an
empty `javascriptAllowedClasses` *and* empty
`javascriptDisallowedClasses` meant unrestricted
`Java.type(...)` access; that combination — the out-of-the-box state —
now denies every class.
- The GraalJS guest context no longer grants access to the members of
`java.lang.Class` or
`java.lang.ClassLoader`. Denying classes at `Java.type(...)` alone was
**not** sufficient: real host
objects are bound into the context (`faker` and the other built-in
helpers), and under the previous
`HostAccess.ALL` a template could walk from one of them to a classloader
—
`faker.getClass().getClassLoader().loadClass('java.lang.Runtime')` —
reaching `Runtime` without the
class filter ever being consulted. That walk is now closed, so
host-class lookup is the single complete
gate; a regression test drives four such walks (including through
`request`) and fails if any resolves.
Velocity's `SecureUberspector` already blocked the equivalent walk
through its own bound helpers, which
is now covered by a test too.
Both flips are fully reversible with one property and remove no
functionality: set
`mockserver.velocityDisallowClassLoading=false`, or list the classes
your templates need in
`mockserver.javascriptAllowedClasses` (the single entry `*` lets any
class resolve again). Templates that
do not touch Java classes are unaffected, which is the overwhelming
majority — JavaScript templates have
the full ES2023 standard library available regardless of this setting. A
refused class is logged once at
WARN naming the class and the property to set, because GraalJS otherwise
surfaces a refusal only as the
class being undefined ("... is not a function"); the log is bounded and
de-duplicated so a hostile
template cannot flood it. `mockserver.javascriptAllowedClasses` is now
also settable through the Spring
test listener's `@MockServerTest` properties, which it was not before —
it was a nice-to-have while the
default was unrestricted, and is the only way to grant a class now that
it is not. The insecure-mode WARN
now fires when an operator has explicitly opened the
sandbox rather than when it is closed. Proven end-to-end by a Netty
integration test that registers the
reported payload through the real management API and asserts the OS
command creates no marker file, with
a negative control on a deliberately unsandboxed server that DOES create
it — so a regression cannot pass
as an inert payload. This lands DEF-2 and DEF-3 of
`docs/plans/later/security-defaults.md` ahead of the
other default flips listed there; JavaScript went further than that plan
proposed (deny everything, not a
built-in "safe types" allow-list) because deny-by-default is the only
form that stays safe as the JDK
grows new reachable classes.
##### Fixed
- **A property file that cannot be read is now reported instead of
ignored in silence
([#2358](https://redirect.github.com/mock-server/mockserver-monorepo/issues/2358)).**
When a
`mockserver.propertyFile` an operator had explicitly configured could
not be read, MockServer applied
none of its properties and said nothing about it — at any log level. The
only symptom was that every
property in the file appeared to be at its default, which surfaces far
downstream as unexplained
behaviour: in the reported case an unreadable (but present) mounted file
meant `initializationJsonPath`
was never set, so no expectations loaded, no `loading JSON
initialization file:` line appeared, and no
error was logged either. The message existed but was unreachable in
practice — gated at DEBUG *and*
emitted during static initialisation, before any log level has been
applied, so neither
`-Dmockserver.logLevel=DEBUG` nor a `-logLevel` argument could surface
it. Such a file is now logged at
WARN, naming the path and the underlying reason verbatim; because
`FileNotFoundException` covers "not
there" and "not allowed to read it" alike, that reason is usually the
whole answer (`Permission denied`
in the reported case, typically SELinux labelling or a
rootless/user-namespace UID mismatch). A property
file that is merely absent at its default location stays quiet, as does
the Docker image's built-in
`-Dmockserver.propertyFile=/config/mockserver.properties`, which the
entrypoint always passes and which
therefore expresses no intent — otherwise every container started
without a mounted config would warn.
Inside the image, only `MOCKSERVER_PROPERTY_FILE` can express that
intent, and it does.
- **The `mockserver-node` launcher suite no longer fails intermittently
on a TLS handshake reset.** The
two tests that exercise `jvmOptions` did so over HTTPS against a server
started with
`dynamicallyCreateCertificateAuthorityCertificate=true`, and issued that
HTTPS request as soon as
`start_mockserver` resolved. `start_mockserver` only proves the HTTP
control plane is answering — it
polls `PUT /mockserver/retrieve` over plain HTTP — but with a
dynamically created certificate
authority the server still has to generate a CA key pair and a leaf
certificate before it can serve
TLS on that same (port-unified) port. A handshake arriving in that
window was closed mid-negotiation
and surfaced as `ECONNRESET` "Client network socket disconnected before
secure TLS connection was
established", failing whichever of the two tests lost the race. This
accounted for every
`mockserver-node` failure on `master` over the preceding 40 builds (5 of
40, \~12%), so it was the sole
cause of the pipeline's intermittent red. Both tests now wait for an
actual TLS handshake to complete
before asserting, which gates them on the condition they really depend
on rather than retrying the
assertions. The new `waitForTlsReady` helper is verified to reject — not
resolve — both when nothing
is listening and when a listener accepts the TCP connection then
destroys it mid-handshake, which is
exactly the failure signature it exists to absorb. The readiness budget
is deliberately generous
(120s): waiting costs nothing when the server is healthy, since a ready
server completes the
handshake on the first attempt in milliseconds, so the limit only
decides how much CI contention is
tolerated before a slow start is misreported as a fault. An earlier 30s
budget went green five builds
running and then expired on a loaded agent — the same flake wearing a
clearer error message. A start
that takes over 5s is now reported even when it passes, because
readiness creeping towards the limit
is the signal that the next run will not make it.
- **`archiver.glob()` works again in `@mockserver/testcontainers`
(Node), and CVE-2026-14257 stays
closed.** The previous remedy for the `brace-expansion` denial of
service (GHSA-mh99-v99m-4gvg,
patched only in 5.0.8) was a blanket `"brace-expansion": "^5.0.8"`
override. That resolved the whole
tree to a single hoisted 5.0.8 and `npm audit` reported zero
vulnerabilities — but 5.x changed the
CommonJS export from a callable function to an object (`{ expand,
EXPANSION_MAX, ... }`), while the
minimatch copies actually installed (3.1.5, 5.1.9, 9.0.9) all call it as
`expand(pattern)`. Every
glob containing a brace therefore threw `TypeError: expand is not a
function`, crashing
`archiver.glob()`. The blast radius is narrower than it first looks —
`testcontainers` copies files
with `archiver.directory()`/`.append()`, which pass no brace pattern and
still work — so what broke
is brace globbing for anything in this module's runtime tree that does
use it. The failure was
invisible because minimatch short-circuits patterns with no `{`, so
plain globs kept working and the
unit suite stayed green. The override is now targeted: `readdir-glob`
and `archiver-utils`' `glob`
take `minimatch@^10.2.5`, which depends on `brace-expansion@^5.0.5` and
is written against the new
API, so both runtime copies land on the patched 5.0.8 with a matching
minimatch. jest keeps its own
`minimatch@3.1.5` + `brace-expansion@1.1.16` pairing and is untouched.
`npm audit --omit=dev` still
reports 0 vulnerabilities, and a new `dependency-integrity` unit test
drives a brace pattern through
both runtime minimatch copies and through a real `archiver.glob()` tar,
plus asserts expansion stays
bounded — it fails against the blanket override, so the silent half of
this cannot return.
- **A forward `responseOverride` that replaces the body no longer
inherits the upstream response's
`Content-Length`, which truncated the response on the wire.** The
override swapped the body but left the
upstream header in place, so the client read only as many bytes as the
body it replaced — a 34-byte
override behind an upstream `Content-Length: 13` arrived as 13 bytes —
or hung waiting for bytes that
never came. The stale header is now dropped so the encoder recomputes it
from what is actually written;
a `Content-Length` set by the override itself, and
`connectionOptions.contentLengthHeaderOverride`, are
still honoured, and a header-only override (one that sets no body) is
untouched. This affects every body
override, and it was the remaining reason a `FILE` response body
returned from a `responseOverride`
still reached the client wrong after
[#2450](https://redirect.github.com/mock-server/mockserver-monorepo/issues/2450):
the file was materialised
correctly and then cut short by the stale length. Covered by a Netty
integration test that drives a real
forward-with-override through a real upstream and asserts the bytes the
client receives.
- **The JetBrains plugin's LLM tool window now sends a valid expectation
([#2455](https://redirect.github.com/mock-server/mockserver-monorepo/issues/2455)).**
"Load into Server" was
rejected with `400 incorrect expectation json format` because the
builder emitted a shape that never
existed on the server: a flat `completion` string, a top-level
`finishReason`, `stream`, and `usage`,
and a `provider` of `OPEN_AI`. The completion text, streaming flag, stop
reason, and token usage
belong INSIDE the `completion` object (`text`, `streaming`,
`stopReason`, `usage.inputTokens` /
`usage.outputTokens`), and providers are the `Provider` enum names
(`OPENAI`, `AZURE_OPENAI`, …). The
provider and field catalogues shared with the VS Code extension are
corrected the same way — they
offered `OPEN_AI`, `VERTEX_AI`, `messages`, `stream`, `finishReason` and
a top-level `usage`, none of
which the server accepts — and completion inside a `completion` object
now offers the nested fields.
The plugin has always bundled the correct schema; it simply never
validated its own output against it,
and the previous tests asserted the builder matched the same invented
shape it produced. Both editors
now validate against the bundled schema in their test suites.
- **`httpLlmResponse.provider` now accepts every provider MockServer
implements.** The JSON Schema enum
listed 9 of the 14 `org.mockserver.model.Provider` constants, so
`MISTRAL`, `XAI`, `DEEPSEEK`, `GROQ`,
and `OPENROUTER` were rejected with `400 incorrect expectation json
format` even though each has a
fully registered response codec. The five missing values are added to
the core schema, the generated
VS Code and JetBrains schemas, and both copies of the OpenAPI
specification, and a new parity test
fails if the enum and `Provider` ever diverge again in either direction.
The provider list on the
LLM response mocking documentation and in the Rust client's field docs
is updated to match.
- **The cloud blob-store, async-broker and transparent-proxy CI steps no
longer OOM-kill their own build
before any test runs.** Each ran its Docker container with
`--memory=4g`, but `mockserver/.mvn/jvm.config`
pins the Maven JVM to `-Xmx6144m` and the wrapper prepends it to
`MAVEN_OPTS`, so the `-am` dependency
build was permitted a 6 GB heap inside a 4 GB cgroup and the kernel
intermittently killed it with exit 137
— losing the very coverage those fail-closed steps exist to guarantee.
Raised each to `--memory=7g`, the
value every other `./mvnw` step already uses and which fits the
single-agent `c5.2xlarge`/`m5.2xlarge`
default-queue instances with margin.
##### Added
- **A cassette is now auto-registered when a fixture is loaded or
recorded via the MCP tools, so it
appears under `GET /mockserver/cassettes` without a separate `PUT
/mockserver/cassettes` call.**
Previously the server-side cassette registry was populated only by an
explicit
`PUT /mockserver/cassettes`, so a fixture loaded with the
`load_expectations_from_file` MCP tool, or
written with `record_llm_fixtures`, never showed up in the dashboard's
Cassettes tab unless the
caller also registered it by hand. Both MCP tool handlers now register
the fixture in
`CassetteRegistry` at the point the file is loaded/written — the file
path as the key, the loaded/
written expectation count, and an `origin` of `loaded` or `recorded`
respectively — so
`GET /mockserver/cassettes` (which serialises that registry) lists it
automatically. Re-loading or
re-recording the same path updates the existing entry in place rather
than duplicating it.
- **Clustered (Infinispan) expectation reload-on-startup is now proven
end-to-end.** A new test
(`ClusteredExpectationPersistenceReloadTest` in
`mockserver-state-infinispan`) forms an in-JVM
JGroups cluster consisting of a bare "fleet keeper"
`InfinispanStateBackend` that stays up for the
whole test plus a full MockServer node started with
`stateBackend=infinispan`,
`clusterEnabled=true` and `persistExpectations=true`. An expectation is
created on that node over
the wire, the persisted document is polled for through the *keeper's*
backend (proving it really
replicated across the REPL\_SYNC blob cache), the node is then stopped
completely, and a fresh node
is started against the same cluster and the same
`persistedExpectationsPath` — which must restore
the expectation and MATCH a real HTTP request with it. The local
persisted file is asserted to be
empty first, so the restore cannot be coming from the
filesystem-initializer route. The reload path
in `ExpectationFileSystemPersistence` was already covered at unit level
in `mockserver-core`
(`ExpectationBlobStoreRestoreTest`, against an `InMemoryBlobStore`, with
no server and no cluster)
and end-to-end only against S3/MinIO behind a Docker gate; what no test
proved is that a clustered
node's `InfinispanBlobStore` is the store `HttpState` wires into that
restore, nor that a real
restarted member of a live cluster recovers the fleet's shared
expectations. A second test sets
`blobStoreRestoreTimeoutSeconds=0` (the documented way to skip the
restore) and asserts the fresh
node does NOT serve the expectation, which permanently pins the fact
that no other mechanism —
JGroups state transfer of the expectations cache, a stray invalidation
event, or the local file —
restores expectations when a node starts. Verified by a positive
control: disabling the reload
path in production makes the restarted node answer with an empty body
and turns the test red.
- **The response-aware arm of the eviction false-green guard is now
proven end-to-end over HTTP.** A new
Netty integration test (`EvictedResponseVerificationIntegrationTest`)
boots a real server with
`maxLogEntries=2` and `failVerificationOnEvictedLog=true`, registers an
expectation so a `GET
/was-responded` exchange is recorded as a real `EXPECTATION_RESPONSE`
request-response pair, then floods
the bounded event log with further unmatched traffic so that pair is
evicted. A subsequent
`verify(request("/was-responded"), response().withStatusCode(418),
never())` through the Java client must
throw an `AssertionError` saying the **response** "could not be
verified" because entries were discarded
after reaching `maxLogEntries`. `MockServerEventLog` implements this
guard twice — once in `verifyRequest`
and once, through a completely separate counting path over recorded
pairs, in `verifyResponse` — and only
the request arm had an `*IntegrationTest`; the response arm was covered
solely by an engine-level test
against an in-process event log. The test uses `never()` because it is
the simplest shape that reaches
the guard: the guard sits on the PASS branch behind any asserted upper
bound (`getAtMost() != -1` — so
`atMost(n)`, `between(0,n)` and `exactly(0)` reach it too), whereas an
`atLeast(1)`/`once()` verification
of an evicted pair fails earlier with an ordinary "Response not found"
message and proves nothing.
`never()` is exactly the case a guard-less server would answer with a
silent false green. The assertion pins the message to `Response could
not be verified` so it cannot be
satisfied by the request-side arm. Verified by a positive control
(disabling only the response-side guard
in production makes the verification pass silently and turns the test
red).
- **The eviction false-green guard is now proven end-to-end over HTTP.**
A new Netty integration test
(`EvictedLogVerificationIntegrationTest`) boots a real server with
`maxLogEntries=2` and
`failVerificationOnEvictedLog=true`, records a `GET /was-called`
request, then floods the bounded
request-log ring with further traffic so the `/was-called` entry is
evicted. A subsequent
`verify(request("/was-called"), never())` through the Java client must
throw an `AssertionError` whose
message says the log "could not be verified" because entries were
discarded after reaching
`maxLogEntries` — proving the guard refuses to certify absence it can no
longer see, rather than
silently passing. Previously the guard was only covered by an
engine-level test against an in-process
`MockServerEventLog` and no `*IntegrationTest` exercised it across the
wire. Verified by a positive
control (disabling the guard in production makes `verify(never())` pass
silently and turns the test
red).
- **Custom gRPC response metadata and trailing metadata are now proven
against a real `grpc-java`
client.** Two new tests in `GrpcUnaryClientIntegrationTest` register an
expectation whose gRPC
response carries both custom response metadata authored with
`withHeader(...)` and custom trailing
metadata authored with `withTrailer(...)`, drive it with a live
`grpc-java` client, and read the
values back off the real `io.grpc.Metadata` objects the client receives
(via a capturing
`ClientInterceptor`, and via `StatusRuntimeException.getTrailers()` on
the error path). The
assertions are deliberately discriminating: the response metadata must
arrive in the *initial
headers* and not in the trailers, the trailing metadata must arrive in
the *trailers* and not be
folded into the initial headers, and both values must round-trip
byte-for-byte including a value
carrying `=`, `;`, `,` and spaces. Previously this behaviour was
exercised only structurally
(`EmbeddedChannel` / model-level assertions, which cannot tell a trailer
emitted as a trailer from
one folded into the headers) and by the existing `-bin` metadata tests,
which deliberately accept
the value from either side because a body-less unary response may
legitimately collapse to
Trailers-Only. Verified by positive controls: dropping the user-authored
trailers turns both tests
red, and dropping the user-authored response headers turns the header
assertion red.
- **The `maxResponseBodySize` limit is now proven behaviourally against
a real upstream.** A new
integration test (`MaxResponseBodySizeIntegrationTest`) boots a
forwarding MockServer configured with a
4KB `maxResponseBodySize`, points it at a raw upstream socket that
returns a 64KB body, and drives it
over a plain client socket: the oversized body fails the forward and the
client receives **502 Bad
Gateway** with none of the payload relayed, while a control request
whose body sits under the limit is
forwarded intact. A third case repeats the oversized body with
`Transfer-Encoding: chunked` and no
`Content-Length`, proving the cap is enforced against the bytes actually
accumulated by the forward
client's aggregator rather than merely against a declared header.
Previously this documented,
memory-protecting bound — read whenever a forward-client pipeline is
built — had no behavioural
coverage at all, so a regression that dropped the wiring (or passed an
unbounded value) would have
removed the limit silently; only the inbound analogue
`maxRequestBodySize` was verified. The new test
covers the HTTP/1.1 forward aggregator; the HTTP/2 forward path reads
the same property (for the
per-stream aggregator and to derive the client's `maxFrameSize`) and
remains uncovered.
`maxResponseBodySize` accordingly moves from `ENFORCEMENT_EXEMPT` to
`ENFORCEMENT_VERIFIED` in
`ConfigurationEnforcementClassificationTest`. Verified by a positive
control (restoring an unbounded
aggregator lets the oversized body through with a 200 and turns both
over-limit assertions red).
- **The Ruby client now proves live SSE stream consumption over the
wire.** New integration examples
(`spec/integration_spec.rb` → `SSE streaming`) register an
`httpSseResponse` expectation via the Ruby
client against a running MockServer, then open a real streaming HTTP
consumer and assert every `data:`
frame arrives in order, that the reconstructed multi-delta message
matches, and that a multi-line
`data:` payload survives the framing intact (`Content-Type:
text/event-stream`). Previously the Ruby
suite only asserted the JSON keys of a built streaming expectation
(`a2a_spec`) and never consumed a
live SSE stream, so a silent server-emission or client-parsing drop
would have gone uncaught. Verified
by a positive control (dropping events from the emitted stream turns the
received-frames assertion red).
- **The `assumeAllRequestsAreHttp` protocol-detection fallback now has
direct unit coverage.** Two
paired `EmbeddedChannel` tests in `DirectProxyUnificationHandlerTest`
drive
`PortUnificationHandler.decode()` with an HTTP request using a
non-standard method (`PURGE`, which is
not one of GET/POST/PUT/HEAD/OPTIONS/PATCH/DELETE/TRACE/CONNECT): with
`assumeAllRequestsAreHttp=true` the full HTTP pipeline is added (rather
than falling to binary request
proxying), and with the flag disabled the HTTP codec is not added —
proving the flag is the only
difference. Previously the fallback branch was exercised only by a
live-socket integration test and
the config getter's own unit test, so the `EmbeddedChannel`
protocol-detection path for the flag was
unexercised.
- **HTTP/3 streaming response bodies are now proven end-to-end through
the action pipeline with a real
QUIC client.** A new integration test
(`Http3StreamingForwardIntegrationTest`) registers a `forward`
expectation on the HTTP/3 port (with `streamingResponsesEnabled`)
pointing at an upstream Server-Sent
Events stream that serves an early event immediately and withholds the
late event for 1.5s, then drives
it with a live Netty QUIC client and asserts both events arrive as
SEPARATE DATA frames spread across
that delay — proving the streaming relay funnels through
`HttpActionHandler` ->
`ResponseWriter.writeResponse` ->
`Http3ResponseWriter.writeStreamingResponse` and emits chunks
incrementally. Previously `Http3StreamingIntegrationTest` drove
`Http3ResponseWriter` directly from a
hand-built QUIC server (bypassing expectation matching), and
`Http3MockingMatrixIntegrationTest`
exercised the real pipeline over QUIC but only with non-streaming
actions, so incremental delivery of a
streamed body through the full pipeline was untested. QUIC-gated like
the sibling HTTP/3 tests so it
skips cleanly where the native transport is unavailable.
- **The dashboard's Monaco code editor is now proven in a real browser
end-to-end.** A new Playwright
e2e test (`mockserver-ui/e2e/dashboard.spec.ts`) drives the actual
bundled Monaco editor in the
served dashboard's composer against a live MockServer: it asserts
Monaco's own DOM
(`.monaco-editor` / `.view-lines`) renders, authors a JSON response body
via real editor input,
raises and clears a live validation marker from Monaco's JSON language
web worker, then registers
the mock and confirms the Monaco-authored body round-trips to the server
(present in
`PUT /mockserver/retrieve` and served verbatim on the matching request).
Previously the 178
jsdom/vitest specs globally replaced Monaco with a bare `
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/prometheus/client_java).
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
prometheus-metrics-exporter-pushgateway/pom.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/prometheus-metrics-exporter-pushgateway/pom.xml b/prometheus-metrics-exporter-pushgateway/pom.xml
index b83119bbb8..b51d7c6228 100644
--- a/prometheus-metrics-exporter-pushgateway/pom.xml
+++ b/prometheus-metrics-exporter-pushgateway/pom.xml
@@ -35,7 +35,7 @@
org.mock-servermockserver-netty-no-dependencies
- 7.4.0
+ 7.5.0test
From ed46db842f136bac47e29bd23fbc335e81eadd53 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Wed, 29 Jul 2026 20:39:34 -0400
Subject: [PATCH 034/255] chore(deps): update node.js to v24.18.1 (#2353)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This PR contains the following updates:
| Package | Update | Change |
|---|---|---|
| [node](https://nodejs.org)
([source](https://redirect.github.com/nodejs/node)) | patch | `24.18.0`
→ `24.18.1` |
---
### Release Notes
nodejs/node (node)
###
[`v24.18.1`](https://redirect.github.com/nodejs/node/releases/tag/v24.18.1):
2026-07-29, Version 24.18.1 'Krypton' (LTS), @juanarbol
[Compare
Source](https://redirect.github.com/nodejs/node/compare/v24.18.0...v24.18.1)
This is a security release.
##### Notable Changes
- (CVE-2026-56846) http2: retain header memory in session accounting
(Matteo Collina) – High
- (CVE-2026-56848) http2: defer rst stream while in scope (Matteo
Collina) – High
- (CVE-2026-58043) permission: avoid granting radix split nodes
(RafaelGSS) – High
- (CVE-2026-56850) https: distinguish PFX object-array agent keys
(RafaelGSS) – Medium
- (CVE-2026-58040) https: bind identity checks to session reuse (Matteo
Collina) – Medium
- (CVE-2026-58041) sqlite: invalidate tag store iterators on statement
reset (Matteo Collina) – Medium
- (CVE-2026-58042) dns: handle large resolveAny address replies
(RafaelGSS) – Medium
- (CVE-2026-58045) zlib: throw on out-of-bounds write buffers
(RafaelGSS) – Medium
- (CVE-2026-56847) permission: enforce fs write permission for trace
events (RafaelGSS) – Low
- (CVE-2026-58039) permission: check final report output path
(RafaelGSS) – Low
- (CVE-2026-58044) http: reject requests exceeding max header count
(Matteo Collina) – Low
- deps: update llhttp to 9.4.3 (Paolo Insogna)
- deps: update undici to 7.29.0 (Node.js GitHub Bot)
##### Commits
-
\[[`6cb0475751`](https://redirect.github.com/nodejs/node/commit/6cb0475751)]
- **deps**: update llhttp to 9.4.3 (Paolo Insogna)
[nodejs-private/node-private#935](https://redirect.github.com/nodejs-private/node-private/pull/935)
-
\[[`bcfe21d3dc`](https://redirect.github.com/nodejs/node/commit/bcfe21d3dc)]
- **deps**: update undici to 7.29.0 (Node.js GitHub Bot)
[#64713](https://redirect.github.com/nodejs/node/pull/64713)
-
\[[`9d0d36cffd`](https://redirect.github.com/nodejs/node/commit/9d0d36cffd)]
- **(CVE-2026-58042)** **dns**: handle large resolveAny address replies
(RafaelGSS)
[nodejs-private/node-private#929](https://redirect.github.com/nodejs-private/node-private/pull/929)
-
\[[`8a008fb523`](https://redirect.github.com/nodejs/node/commit/8a008fb523)]
- **(CVE-2026-58044)** **http**: reject requests exceeding max header
count (Matteo Collina)
[nodejs-private/node-private#922](https://redirect.github.com/nodejs-private/node-private/pull/922)
-
\[[`a77c7f7354`](https://redirect.github.com/nodejs/node/commit/a77c7f7354)]
- **(CVE-2026-56848)** **http2**: defer rst stream while in scope
(Matteo Collina)
[nodejs-private/node-private#921](https://redirect.github.com/nodejs-private/node-private/pull/921)
-
\[[`34ed88a069`](https://redirect.github.com/nodejs/node/commit/34ed88a069)]
- **(CVE-2026-56846)** **http2**: retain header memory in session
accounting (Matteo Collina)
[#63752](https://redirect.github.com/nodejs/node/pull/63752)
-
\[[`95ba2cfde7`](https://redirect.github.com/nodejs/node/commit/95ba2cfde7)]
- **(CVE-2026-58040)** **https**: bind identity checks to session reuse
(Matteo Collina)
[nodejs-private/node-private#904](https://redirect.github.com/nodejs-private/node-private/pull/904)
-
\[[`fcbdbe47ea`](https://redirect.github.com/nodejs/node/commit/fcbdbe47ea)]
- **(CVE-2026-56850)** **https**: distinguish PFX object-array agent
keys (RafaelGSS)
[nodejs-private/node-private#930](https://redirect.github.com/nodejs-private/node-private/pull/930)
-
\[[`ea26c12b56`](https://redirect.github.com/nodejs/node/commit/ea26c12b56)]
- **(CVE-2026-58043)** **permission**: avoid granting radix split nodes
(RafaelGSS)
[nodejs-private/node-private#911](https://redirect.github.com/nodejs-private/node-private/pull/911)
-
\[[`9a6b7e343a`](https://redirect.github.com/nodejs/node/commit/9a6b7e343a)]
- **(CVE-2026-58039)** **permission**: check final report output path
(RafaelGSS)
[nodejs-private/node-private#926](https://redirect.github.com/nodejs-private/node-private/pull/926)
-
\[[`6c0c990880`](https://redirect.github.com/nodejs/node/commit/6c0c990880)]
- **(CVE-2026-56847)** **permission**: enforce fs write permission for
trace events (RafaelGSS)
[nodejs-private/node-private#927](https://redirect.github.com/nodejs-private/node-private/pull/927)
-
\[[`af9ff0490c`](https://redirect.github.com/nodejs/node/commit/af9ff0490c)]
- **(CVE-2026-58041)** **sqlite**: invalidate tag store iterators on
statement reset (Matteo Collina)
[nodejs-private/node-private#896](https://redirect.github.com/nodejs-private/node-private/pull/896)
-
\[[`05f541b5c0`](https://redirect.github.com/nodejs/node/commit/05f541b5c0)]
- **(CVE-2026-58045)** **zlib**: throw on out-of-bounds write buffers
(RafaelGSS)
[nodejs-private/node-private#931](https://redirect.github.com/nodejs-private/node-private/pull/931)
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/prometheus/client_java).
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
mise.lock | 28 +++++++++++++---------------
mise.toml | 2 +-
2 files changed, 14 insertions(+), 16 deletions(-)
diff --git a/mise.lock b/mise.lock
index ba618bcbae..0dff26c579 100644
--- a/mise.lock
+++ b/mise.lock
@@ -480,36 +480,34 @@ url = "https://github.com/lycheeverse/lychee/releases/download/lychee-v0.24.2/ly
url_api = "https://api.github.com/repos/lycheeverse/lychee/releases/assets/409959491"
[[tools.node]]
-version = "24.18.0"
+version = "24.18.1"
backend = "core:node"
[tools.node."platforms.linux-arm64"]
-checksum = "sha256:6b4484c2190274175df9aa8f28e2d758a819cb1c1fe6ab481e2f95b463ab8508"
-url = "https://nodejs.org/dist/v24.18.0/node-v24.18.0-linux-arm64.tar.gz"
+checksum = "sha256:df224555a083b918e46260cc969838501b9f9a87140c1195e5b9597b56d5dae2"
+url = "https://nodejs.org/dist/v24.18.1/node-v24.18.1-linux-arm64.tar.gz"
[tools.node."platforms.linux-arm64-musl"]
-checksum = "sha256:b1c6c2dc31b46dd8fb2322f4fe75b07e775c5120bc37251deeea28f529d4567b"
-url = "https://unofficial-builds.nodejs.org/download/release/v24.18.0/node-v24.18.0-linux-arm64-musl.tar.gz"
+url = "https://unofficial-builds.nodejs.org/download/release/v24.18.1/node-v24.18.1-linux-arm64-musl.tar.gz"
[tools.node."platforms.linux-x64"]
-checksum = "sha256:783130984963db7ba9cbd01089eaf2c2efb055c7c1693c943174b967b3050cb8"
-url = "https://nodejs.org/dist/v24.18.0/node-v24.18.0-linux-x64.tar.gz"
+checksum = "sha256:9f5eb6ac21845a66c493c91a253b1da32fd684e89e9b7202d4936982336be4ca"
+url = "https://nodejs.org/dist/v24.18.1/node-v24.18.1-linux-x64.tar.gz"
[tools.node."platforms.linux-x64-musl"]
-checksum = "sha256:ea58409911e141ec6b19d9178efa2d9185a13295005b1cbf5521b3157eed1d95"
-url = "https://unofficial-builds.nodejs.org/download/release/v24.18.0/node-v24.18.0-linux-x64-musl.tar.gz"
+url = "https://unofficial-builds.nodejs.org/download/release/v24.18.1/node-v24.18.1-linux-x64-musl.tar.gz"
[tools.node."platforms.macos-arm64"]
-checksum = "sha256:e1a97e14c99c803e96c7339403282ea05a499c32f8d83defe9ef5ec66f979ed1"
-url = "https://nodejs.org/dist/v24.18.0/node-v24.18.0-darwin-arm64.tar.gz"
+checksum = "sha256:eb02f7fab96d3d67de40c5ec8566096fcb4c2026728787683ae5a97eb612b941"
+url = "https://nodejs.org/dist/v24.18.1/node-v24.18.1-darwin-arm64.tar.gz"
[tools.node."platforms.macos-x64"]
-checksum = "sha256:dfd0dbd3e721503434df7b7205e719f61b3a3a31b2bcf9729b8b91fea240f080"
-url = "https://nodejs.org/dist/v24.18.0/node-v24.18.0-darwin-x64.tar.gz"
+checksum = "sha256:6fb20fceacbb157c2f95825b80df4a454a0f6d81cdcd7bb81eeae9147e0e76ec"
+url = "https://nodejs.org/dist/v24.18.1/node-v24.18.1-darwin-x64.tar.gz"
[tools.node."platforms.windows-x64"]
-checksum = "sha256:0ae68406b42d7725661da979b1403ec9926da205c6770827f33aac9d8f26e821"
-url = "https://nodejs.org/dist/v24.18.0/node-v24.18.0-win-x64.zip"
+checksum = "sha256:ec56b84a7551893ab2324ebdfdc4ab974a63b4781162600b68a1293cc3e53765"
+url = "https://nodejs.org/dist/v24.18.1/node-v24.18.1-win-x64.zip"
[[tools."npm:renovate"]]
version = "43.279.1"
diff --git a/mise.toml b/mise.toml
index eb899bbe5b..1ab071d68e 100644
--- a/mise.toml
+++ b/mise.toml
@@ -3,7 +3,7 @@
"aqua:grafana/oats" = "0.10.0"
hugo = "0.164.0"
java = "temurin-25.0.3+9.0.LTS"
-node = "24.18.0"
+node = "24.18.1"
protoc = "35.1"
# Linters
From e5198bd5f89425c63a6c627d24d5ab349b933eeb Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Thu, 30 Jul 2026 07:16:55 -0400
Subject: [PATCH 035/255] chore(deps): update github/codeql-action action to
v4.37.4 (#2355)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
|
[github/codeql-action](https://redirect.github.com/github/codeql-action)
| action | patch | `v4.37.3` → `v4.37.4` |
---
### Release Notes
github/codeql-action (github/codeql-action)
###
[`v4.37.4`](https://redirect.github.com/github/codeql-action/compare/v4.37.3...v4.37.4)
[Compare
Source](https://redirect.github.com/github/codeql-action/compare/v4.37.3...v4.37.4)
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/prometheus/client_java).
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
.github/workflows/codeql.yml | 4 ++--
.github/workflows/scorecard.yml | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml
index 4d0950bedf..db005e80c0 100644
--- a/.github/workflows/codeql.yml
+++ b/.github/workflows/codeql.yml
@@ -37,7 +37,7 @@ jobs:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-codeql-${{ hashFiles('**/pom.xml') }}
- name: Initialize CodeQL
- uses: github/codeql-action/init@e4fba868fa4b1b91e1fdab776edc8cfbe6e9fb81 # v4.37.3
+ uses: github/codeql-action/init@f205ea1c3313d32999d8d6a48b4f6530d4437b38 # v4.37.4
with:
languages: java
tools: linked
@@ -56,6 +56,6 @@ jobs:
-Djavadoc.skip=true
- name: Perform CodeQL Analysis
- uses: github/codeql-action/analyze@e4fba868fa4b1b91e1fdab776edc8cfbe6e9fb81 # v4.37.3
+ uses: github/codeql-action/analyze@f205ea1c3313d32999d8d6a48b4f6530d4437b38 # v4.37.4
with:
category: /language:java
diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml
index a2512f9570..dd43bbaf5f 100644
--- a/.github/workflows/scorecard.yml
+++ b/.github/workflows/scorecard.yml
@@ -41,6 +41,6 @@ jobs:
retention-days: 5
- name: Upload to code scanning
- uses: github/codeql-action/upload-sarif@e4fba868fa4b1b91e1fdab776edc8cfbe6e9fb81 # v4.37.3
+ uses: github/codeql-action/upload-sarif@f205ea1c3313d32999d8d6a48b4f6530d4437b38 # v4.37.4
with:
sarif_file: results.sarif
From 34045542970750463b2956e426388fdaca0d3b07 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Thu, 30 Jul 2026 07:17:11 -0400
Subject: [PATCH 036/255] chore(deps): update dependency
org.apache.felix:maven-bundle-plugin to v6.1.0 (#2356)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This PR contains the following updates:
| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
|
[org.apache.felix:maven-bundle-plugin](http://felix.apache.org/components/bundle-plugin/)
([source](https://gitbox.apache.org/repos/asf?p=felix-dev.git)) |
`6.0.2` → `6.1.0` |

|

|
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/prometheus/client_java).
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
pom.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/pom.xml b/pom.xml
index d03c6cd6c9..32e30634c1 100644
--- a/pom.xml
+++ b/pom.xml
@@ -281,7 +281,7 @@
org.apache.felixmaven-bundle-plugin
- 6.0.2
+ 6.1.0true
From 2d315426771022eb7d81e442767adb6183d98579 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Fri, 31 Jul 2026 08:42:48 -0400
Subject: [PATCH 037/255] chore(deps): update prom/prometheus docker tag to
v3.13.2 (#2357)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This PR contains the following updates:
| Package | Update | Change |
|---|---|---|
| [prom/prometheus](https://redirect.github.com/prometheus/prometheus) |
patch | `v3.13.1` → `v3.13.2` |
---
### Release Notes
prometheus/prometheus (prom/prometheus)
###
[`v3.13.2`](https://redirect.github.com/prometheus/prometheus/compare/v3.13.1...v3.13.2)
[Compare
Source](https://redirect.github.com/prometheus/prometheus/compare/v3.13.1...v3.13.2)
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/prometheus/client_java).
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
examples/example-custom-buckets/docker-compose.yaml | 2 +-
examples/example-exemplars-tail-sampling/docker-compose.yaml | 2 +-
examples/example-exporter-opentelemetry/docker-compose.yaml | 2 +-
examples/example-native-histogram/docker-compose.yaml | 2 +-
4 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/examples/example-custom-buckets/docker-compose.yaml b/examples/example-custom-buckets/docker-compose.yaml
index 509ef6f3dd..4f7bdd5e69 100644
--- a/examples/example-custom-buckets/docker-compose.yaml
+++ b/examples/example-custom-buckets/docker-compose.yaml
@@ -10,7 +10,7 @@ services:
- -jar
- /example-custom-buckets.jar
prometheus:
- image: prom/prometheus:v3.13.1@sha256:3c42b892cf723fa54d2f262c37a0e1f80aa8c8ddb1da7b9b0df9455a35a7f893
+ image: prom/prometheus:v3.13.2@sha256:508729e0e2d18e11fd742a5a5ca70e557b940a93948c3c95fd0123a6fd538b69
network_mode: host
volumes:
- ./docker-compose/prometheus.yml:/prometheus.yml
diff --git a/examples/example-exemplars-tail-sampling/docker-compose.yaml b/examples/example-exemplars-tail-sampling/docker-compose.yaml
index f032048072..780431624f 100644
--- a/examples/example-exemplars-tail-sampling/docker-compose.yaml
+++ b/examples/example-exemplars-tail-sampling/docker-compose.yaml
@@ -43,7 +43,7 @@ services:
command:
- --config=file:/config.yaml
prometheus:
- image: prom/prometheus:v3.13.1@sha256:3c42b892cf723fa54d2f262c37a0e1f80aa8c8ddb1da7b9b0df9455a35a7f893
+ image: prom/prometheus:v3.13.2@sha256:508729e0e2d18e11fd742a5a5ca70e557b940a93948c3c95fd0123a6fd538b69
network_mode: host
volumes:
- ./config/prometheus.yaml:/prometheus.yaml
diff --git a/examples/example-exporter-opentelemetry/docker-compose.yaml b/examples/example-exporter-opentelemetry/docker-compose.yaml
index 4e526c3fb4..7ab385bb3a 100644
--- a/examples/example-exporter-opentelemetry/docker-compose.yaml
+++ b/examples/example-exporter-opentelemetry/docker-compose.yaml
@@ -20,7 +20,7 @@ services:
command:
- --config=file:/config.yaml
prometheus:
- image: prom/prometheus:v3.13.1@sha256:3c42b892cf723fa54d2f262c37a0e1f80aa8c8ddb1da7b9b0df9455a35a7f893
+ image: prom/prometheus:v3.13.2@sha256:508729e0e2d18e11fd742a5a5ca70e557b940a93948c3c95fd0123a6fd538b69
network_mode: host
volumes:
- ./config/prometheus.yaml:/prometheus.yaml
diff --git a/examples/example-native-histogram/docker-compose.yaml b/examples/example-native-histogram/docker-compose.yaml
index 5e2d703985..899ff275c5 100644
--- a/examples/example-native-histogram/docker-compose.yaml
+++ b/examples/example-native-histogram/docker-compose.yaml
@@ -10,7 +10,7 @@ services:
- -jar
- /example-native-histogram.jar
prometheus:
- image: prom/prometheus:v3.13.1@sha256:3c42b892cf723fa54d2f262c37a0e1f80aa8c8ddb1da7b9b0df9455a35a7f893
+ image: prom/prometheus:v3.13.2@sha256:508729e0e2d18e11fd742a5a5ca70e557b940a93948c3c95fd0123a6fd538b69
network_mode: host
volumes:
- ./docker-compose/prometheus.yml:/prometheus.yml
From 7e7e53364496a1dd6d21d2c01c59219166d7826d Mon Sep 17 00:00:00 2001
From: Gregor Zeitlinger
Date: Fri, 31 Jul 2026 14:45:13 +0200
Subject: [PATCH 038/255] fix: redact invalid configuration values (#2335)
---
.../config/ExporterPushgatewayProperties.java | 12 +++++-------
.../config/PrometheusPropertiesLoader.java | 3 +--
.../java/io/prometheus/metrics/config/Util.java | 14 +++++++++-----
.../metrics/config/ExporterPropertiesTest.java | 9 +++------
.../ExporterPushgatewayPropertiesTest.java | 4 ++--
.../config/OpenMetrics2PropertiesTest.java | 17 +++++------------
.../config/PrometheusPropertiesLoaderTest.java | 5 ++---
.../io/prometheus/metrics/config/UtilTest.java | 14 +++++++++++++-
.../exporter/pushgateway/PushGateway.java | 4 ++--
.../exporter/pushgateway/PushGatewayTest.java | 10 ++++++++++
10 files changed, 52 insertions(+), 40 deletions(-)
diff --git a/prometheus-metrics-config/src/main/java/io/prometheus/metrics/config/ExporterPushgatewayProperties.java b/prometheus-metrics-config/src/main/java/io/prometheus/metrics/config/ExporterPushgatewayProperties.java
index 10e8c0f33f..e97ade191f 100644
--- a/prometheus-metrics-config/src/main/java/io/prometheus/metrics/config/ExporterPushgatewayProperties.java
+++ b/prometheus-metrics-config/src/main/java/io/prometheus/metrics/config/ExporterPushgatewayProperties.java
@@ -94,9 +94,8 @@ static ExporterPushgatewayProperties load(PropertySource propertySource)
if (scheme != null) {
if (!scheme.equals("http") && !scheme.equals("https")) {
throw new PrometheusPropertiesException(
- String.format(
- "%s.%s: Illegal value. Expecting 'http' or 'https'. Found: %s",
- PREFIX, SCHEME, scheme));
+ Util.invalidValueMessage(
+ PREFIX + "." + SCHEME, "Illegal value. Expecting 'http' or 'https'."));
}
}
@@ -119,10 +118,9 @@ static ExporterPushgatewayProperties load(PropertySource propertySource)
return EscapingScheme.DOTS_ESCAPING;
default:
throw new PrometheusPropertiesException(
- String.format(
- "%s.%s: Illegal value. Expecting 'allow-utf-8', 'values', 'underscores', "
- + "or 'dots'. Found: %s",
- PREFIX, ESCAPING_SCHEME, scheme));
+ Util.invalidValueMessage(
+ PREFIX + "." + ESCAPING_SCHEME,
+ "Illegal value. Expecting 'allow-utf-8', 'values', 'underscores', or 'dots'."));
}
}
diff --git a/prometheus-metrics-config/src/main/java/io/prometheus/metrics/config/PrometheusPropertiesLoader.java b/prometheus-metrics-config/src/main/java/io/prometheus/metrics/config/PrometheusPropertiesLoader.java
index 6d52b71efa..04bbfe4a53 100644
--- a/prometheus-metrics-config/src/main/java/io/prometheus/metrics/config/PrometheusPropertiesLoader.java
+++ b/prometheus-metrics-config/src/main/java/io/prometheus/metrics/config/PrometheusPropertiesLoader.java
@@ -169,8 +169,7 @@ private static Properties loadPropertiesFromFile() throws PrometheusPropertiesEx
try (InputStream stream = Files.newInputStream(Paths.get(path))) {
properties.load(stream);
} catch (IOException e) {
- throw new PrometheusPropertiesException(
- "Failed to read Prometheus properties from " + path + ": " + e.getMessage(), e);
+ throw new PrometheusPropertiesException("Failed to read Prometheus properties file.", e);
}
}
return properties;
diff --git a/prometheus-metrics-config/src/main/java/io/prometheus/metrics/config/Util.java b/prometheus-metrics-config/src/main/java/io/prometheus/metrics/config/Util.java
index 20bd756999..d90810fafb 100644
--- a/prometheus-metrics-config/src/main/java/io/prometheus/metrics/config/Util.java
+++ b/prometheus-metrics-config/src/main/java/io/prometheus/metrics/config/Util.java
@@ -24,7 +24,7 @@ static Boolean loadBoolean(String prefix, String propertyName, PropertySource pr
String fullKey = prefix.isEmpty() ? propertyName : prefix + "." + propertyName;
if (!"true".equalsIgnoreCase(property) && !"false".equalsIgnoreCase(property)) {
throw new PrometheusPropertiesException(
- String.format("%s: Expecting 'true' or 'false'. Found: %s", fullKey, property));
+ invalidValueMessage(fullKey, "Expecting 'true' or 'false'."));
}
return Boolean.parseBoolean(property);
}
@@ -88,7 +88,7 @@ static List loadDoubleList(
}
} catch (NumberFormatException e) {
throw new PrometheusPropertiesException(
- fullKey + "=" + property + ": Expecting comma separated list of double values");
+ invalidValueMessage(fullKey, "Expecting comma separated list of double values"));
}
}
return Arrays.asList(result);
@@ -130,7 +130,7 @@ static Integer loadInteger(String prefix, String propertyName, PropertySource pr
return Integer.parseInt(property);
} catch (NumberFormatException e) {
throw new PrometheusPropertiesException(
- fullKey + "=" + property + ": Expecting integer value");
+ invalidValueMessage(fullKey, "Expecting integer value"));
}
}
return null;
@@ -146,7 +146,7 @@ static Double loadDouble(String prefix, String propertyName, PropertySource prop
return Double.parseDouble(property);
} catch (NumberFormatException e) {
throw new PrometheusPropertiesException(
- fullKey + "=" + property + ": Expecting double value");
+ invalidValueMessage(fullKey, "Expecting double value"));
}
}
return null;
@@ -162,7 +162,7 @@ static Long loadLong(String prefix, String propertyName, PropertySource property
return Long.parseLong(property);
} catch (NumberFormatException e) {
throw new PrometheusPropertiesException(
- fullKey + "=" + property + ": Expecting long value");
+ invalidValueMessage(fullKey, "Expecting long value"));
}
}
return null;
@@ -197,4 +197,8 @@ static void assertValue(
throw new PrometheusPropertiesException(fullMessage);
}
}
+
+ static String invalidValueMessage(String fullKey, String message) {
+ return fullKey + ": " + message;
+ }
}
diff --git a/prometheus-metrics-config/src/test/java/io/prometheus/metrics/config/ExporterPropertiesTest.java b/prometheus-metrics-config/src/test/java/io/prometheus/metrics/config/ExporterPropertiesTest.java
index 514c5ff521..2f912ff777 100644
--- a/prometheus-metrics-config/src/test/java/io/prometheus/metrics/config/ExporterPropertiesTest.java
+++ b/prometheus-metrics-config/src/test/java/io/prometheus/metrics/config/ExporterPropertiesTest.java
@@ -27,8 +27,7 @@ void load() {
new HashMap<>(
Map.of("io.prometheus.exporter.include_created_timestamps", "invalid"))))
.withMessage(
- "io.prometheus.exporter.include_created_timestamps: Expecting 'true' or 'false'. Found:"
- + " invalid");
+ "io.prometheus.exporter.include_created_timestamps: Expecting 'true' or 'false'.");
assertThatExceptionOfType(PrometheusPropertiesException.class)
.isThrownBy(
() ->
@@ -36,8 +35,7 @@ void load() {
new HashMap<>(
Map.of("io.prometheus.exporter.exemplars_on_all_metric_types", "invalid"))))
.withMessage(
- "io.prometheus.exporter.exemplars_on_all_metric_types: Expecting 'true' or 'false'."
- + " Found: invalid");
+ "io.prometheus.exporter.exemplars_on_all_metric_types: Expecting 'true' or 'false'.");
}
private static ExporterProperties load(Map map) {
@@ -84,7 +82,6 @@ void prometheusTimestampsInMs() {
new HashMap<>(
Map.of("io.prometheus.exporter.prometheus_timestamps_in_ms", "invalid"))))
.withMessage(
- "io.prometheus.exporter.prometheus_timestamps_in_ms: Expecting 'true' or 'false'."
- + " Found: invalid");
+ "io.prometheus.exporter.prometheus_timestamps_in_ms: Expecting 'true' or 'false'.");
}
}
diff --git a/prometheus-metrics-config/src/test/java/io/prometheus/metrics/config/ExporterPushgatewayPropertiesTest.java b/prometheus-metrics-config/src/test/java/io/prometheus/metrics/config/ExporterPushgatewayPropertiesTest.java
index c92e6f2f9e..4715662f3d 100644
--- a/prometheus-metrics-config/src/test/java/io/prometheus/metrics/config/ExporterPushgatewayPropertiesTest.java
+++ b/prometheus-metrics-config/src/test/java/io/prometheus/metrics/config/ExporterPushgatewayPropertiesTest.java
@@ -27,7 +27,7 @@ void load() {
.isThrownBy(() -> load(Map.of("io.prometheus.exporter.pushgateway.scheme", "foo")))
.withMessage(
"io.prometheus.exporter.pushgateway.scheme: Illegal value. Expecting 'http' or 'https'."
- + " Found: foo");
+ + "");
}
@Test
@@ -60,7 +60,7 @@ void loadWithInvalidEscapingScheme() {
() -> load(Map.of("io.prometheus.exporter.pushgateway.escaping_scheme", "invalid")))
.withMessage(
"io.prometheus.exporter.pushgateway.escaping_scheme: Illegal value. Expecting"
- + " 'allow-utf-8', 'values', 'underscores', or 'dots'. Found: invalid");
+ + " 'allow-utf-8', 'values', 'underscores', or 'dots'.");
}
@Test
diff --git a/prometheus-metrics-config/src/test/java/io/prometheus/metrics/config/OpenMetrics2PropertiesTest.java b/prometheus-metrics-config/src/test/java/io/prometheus/metrics/config/OpenMetrics2PropertiesTest.java
index e7a2734643..0546a138fc 100644
--- a/prometheus-metrics-config/src/test/java/io/prometheus/metrics/config/OpenMetrics2PropertiesTest.java
+++ b/prometheus-metrics-config/src/test/java/io/prometheus/metrics/config/OpenMetrics2PropertiesTest.java
@@ -37,8 +37,7 @@ void loadInvalidValue() {
assertThatExceptionOfType(PrometheusPropertiesException.class)
.isThrownBy(
() -> load(new HashMap<>(Map.of("io.prometheus.openmetrics2.enabled", "invalid"))))
- .withMessage(
- "io.prometheus.openmetrics2.enabled: Expecting 'true' or 'false'. Found: invalid");
+ .withMessage("io.prometheus.openmetrics2.enabled: Expecting 'true' or 'false'.");
assertThatExceptionOfType(PrometheusPropertiesException.class)
.isThrownBy(
() ->
@@ -46,17 +45,14 @@ void loadInvalidValue() {
new HashMap<>(
Map.of("io.prometheus.openmetrics2.content_negotiation", "invalid"))))
.withMessage(
- "io.prometheus.openmetrics2.content_negotiation: Expecting 'true' or 'false'. Found:"
- + " invalid");
+ "io.prometheus.openmetrics2.content_negotiation: Expecting 'true' or 'false'.");
assertThatExceptionOfType(PrometheusPropertiesException.class)
.isThrownBy(
() ->
load(
new HashMap<>(
Map.of("io.prometheus.openmetrics2.composite_values", "invalid"))))
- .withMessage(
- "io.prometheus.openmetrics2.composite_values: Expecting 'true' or 'false'. Found:"
- + " invalid");
+ .withMessage("io.prometheus.openmetrics2.composite_values: Expecting 'true' or 'false'.");
assertThatExceptionOfType(PrometheusPropertiesException.class)
.isThrownBy(
() ->
@@ -64,17 +60,14 @@ void loadInvalidValue() {
new HashMap<>(
Map.of("io.prometheus.openmetrics2.exemplar_compliance", "invalid"))))
.withMessage(
- "io.prometheus.openmetrics2.exemplar_compliance: Expecting 'true' or 'false'. Found:"
- + " invalid");
+ "io.prometheus.openmetrics2.exemplar_compliance: Expecting 'true' or 'false'.");
assertThatExceptionOfType(PrometheusPropertiesException.class)
.isThrownBy(
() ->
load(
new HashMap<>(
Map.of("io.prometheus.openmetrics2.native_histograms", "invalid"))))
- .withMessage(
- "io.prometheus.openmetrics2.native_histograms: Expecting 'true' or 'false'. Found:"
- + " invalid");
+ .withMessage("io.prometheus.openmetrics2.native_histograms: Expecting 'true' or 'false'.");
}
private static OpenMetrics2Properties load(Map map) {
diff --git a/prometheus-metrics-config/src/test/java/io/prometheus/metrics/config/PrometheusPropertiesLoaderTest.java b/prometheus-metrics-config/src/test/java/io/prometheus/metrics/config/PrometheusPropertiesLoaderTest.java
index 532b00295b..8f910ccebd 100644
--- a/prometheus-metrics-config/src/test/java/io/prometheus/metrics/config/PrometheusPropertiesLoaderTest.java
+++ b/prometheus-metrics-config/src/test/java/io/prometheus/metrics/config/PrometheusPropertiesLoaderTest.java
@@ -31,9 +31,8 @@ void propertiesShouldBeLoadedFromPropertiesFile() {
void cantLoadPropertiesFile() {
assertThatExceptionOfType(PrometheusPropertiesException.class)
.isThrownBy(() -> PrometheusPropertiesLoader.load(new Properties()))
- .withMessage(
- "Failed to read Prometheus properties from nonexistent.properties:"
- + " nonexistent.properties");
+ .withMessage("Failed to read Prometheus properties file.")
+ .withMessageNotContaining("nonexistent.properties");
}
@Test
diff --git a/prometheus-metrics-config/src/test/java/io/prometheus/metrics/config/UtilTest.java b/prometheus-metrics-config/src/test/java/io/prometheus/metrics/config/UtilTest.java
index e4d7fa829e..c3ed65ec7b 100644
--- a/prometheus-metrics-config/src/test/java/io/prometheus/metrics/config/UtilTest.java
+++ b/prometheus-metrics-config/src/test/java/io/prometheus/metrics/config/UtilTest.java
@@ -51,6 +51,18 @@ void loadOptionalDuration_invalidNumber_throws() {
assertThatExceptionOfType(PrometheusPropertiesException.class)
.isThrownBy(() -> Util.loadOptionalDuration("", "foo", propertySource))
- .withMessage("foo=abc: Expecting long value");
+ .withMessage("foo: Expecting long value");
+ }
+
+ @Test
+ void invalidValueMessageRedactsRawValue() {
+ String secret = "bad\n\"secret-value";
+ Map
- 12.1.11
+ 12.1.1225
From 565a58396c92ddfbe1b64de37c40a0a8c165a612 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Wed, 5 Aug 2026 01:07:54 +0000
Subject: [PATCH 050/255] chore(deps): update grafana/grafana docker tag to
v13.1.2 (#2369)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This PR contains the following updates:
| Package | Update | Change |
|---|---|---|
| [grafana/grafana](https://redirect.github.com/grafana/grafana) | patch
| `13.1.1` → `13.1.2` |
---
### Release Notes
grafana/grafana (grafana/grafana)
###
[`v13.1.2`](https://redirect.github.com/grafana/grafana/blob/HEAD/CHANGELOG.md#1310-2026-06-23)
##### Features and enhancements
- **A11y:** Remove interactivity from UserIcon if onClick is not
provided
[#120284](https://redirect.github.com/grafana/grafana/pull/120284),
[@idastambuk](https://redirect.github.com/idastambuk)
- **Accessibility:** Add `aria-pressed` state to `FilterPill`
[#123069](https://redirect.github.com/grafana/grafana/pull/123069),
[@ashharrison90](https://redirect.github.com/ashharrison90)
- **Accessibility:** Colorblind-safe line style fill patterns
[#121386](https://redirect.github.com/grafana/grafana/pull/121386),
[@vijaygovindaraja](https://redirect.github.com/vijaygovindaraja)
- **Alerting:** Add Mimir Alertmanager auto-sync configuration to
settings page
[#124855](https://redirect.github.com/grafana/grafana/pull/124855),
[@rodrigopk](https://redirect.github.com/rodrigopk)
- **Alerting:** Add alerting.rulesAPIV2 feature flag
[#122606](https://redirect.github.com/grafana/grafana/pull/122606),
[@rodrigopk](https://redirect.github.com/rodrigopk)
- **Alerting:** Add common section to filter dropdown in Alerts Activity
[#124547](https://redirect.github.com/grafana/grafana/pull/124547),
[@laurenashleigh](https://redirect.github.com/laurenashleigh)
- **Alerting:** Add feature flag for notifications api migration
[#124625](https://redirect.github.com/grafana/grafana/pull/124625),
[@rodrigopk](https://redirect.github.com/rodrigopk)
- **Alerting:** Add label section to enrichment view/edit drawers
(Enterprise)
- **Alerting:** Add reusable hook to add enrichment query param to url
on drawer open
[#123584](https://redirect.github.com/grafana/grafana/pull/123584),
[@laurenashleigh](https://redirect.github.com/laurenashleigh)
- **Alerting:** Add support for label selectors in AlertRule and
RecordingRule legacy storage
[#122293](https://redirect.github.com/grafana/grafana/pull/122293),
[@moustafab](https://redirect.github.com/moustafab)
- **Alerting:** Alert activity UI improvements part 3
[#121790](https://redirect.github.com/grafana/grafana/pull/121790),
[@laurenashleigh](https://redirect.github.com/laurenashleigh)
- **Alerting:** Alert activity groupBy not filtering by environment
[#121952](https://redirect.github.com/grafana/grafana/pull/121952),
[@rodrigopk](https://redirect.github.com/rodrigopk)
- **Alerting:** Alerts Activity Instance drawer drilldown, Silence flow
[#122317](https://redirect.github.com/grafana/grafana/pull/122317),
[@laurenashleigh](https://redirect.github.com/laurenashleigh)
- **Alerting:** Allow restricting contact point integration types
[#118858](https://redirect.github.com/grafana/grafana/pull/118858),
[@chriscerie](https://redirect.github.com/chriscerie)
- **Alerting:** Block Viewers from Alert Group edit route
[#125669](https://redirect.github.com/grafana/grafana/pull/125669),
[@laurenashleigh](https://redirect.github.com/laurenashleigh)
- **Alerting:** Block editing plugin-provided and provisioned rule
groups
[#123214](https://redirect.github.com/grafana/grafana/pull/123214),
[@konrad147](https://redirect.github.com/konrad147)
- **Alerting:** Deduplicate and validate `groupBy` labels in alerts
[#122983](https://redirect.github.com/grafana/grafana/pull/122983),
[@yuri-tceretian](https://redirect.github.com/yuri-tceretian)
- **Alerting:** Export external Alertmanager sender metrics with data
source UIDs
[#121996](https://redirect.github.com/grafana/grafana/pull/121996),
[@santihernandezc](https://redirect.github.com/santihernandezc)
- **Alerting:** Include error in Loki state history when
exec\_err\_state is Alerting
[#125775](https://redirect.github.com/grafana/grafana/pull/125775),
[@imankurpatel000](https://redirect.github.com/imankurpatel000)
- **Alerting:** Mark notification provisioning endpoints deprecated
[#121995](https://redirect.github.com/grafana/grafana/pull/121995),
[@titolins](https://redirect.github.com/titolins)
- **Alerting:** Move filters to sidebar alerts activity
[#121577](https://redirect.github.com/grafana/grafana/pull/121577),
[@laurenashleigh](https://redirect.github.com/laurenashleigh)
- **Alerting:** Open new alert rule drawer from panel menu
[#125712](https://redirect.github.com/grafana/grafana/pull/125712),
[@laurenashleigh](https://redirect.github.com/laurenashleigh)
- **Alerting:** Preview notification routing in the alert instances
table
[#121699](https://redirect.github.com/grafana/grafana/pull/121699),
[@ppcano](https://redirect.github.com/ppcano)
- **Alerting:** Propagate plugin rule origin as X-Rule-Origin header
[#125206](https://redirect.github.com/grafana/grafana/pull/125206),
[@yuri-tceretian](https://redirect.github.com/yuri-tceretian)
- **Alerting:** Remove alertRuleUseFiredAtForStartsAt feature toggle
[#124677](https://redirect.github.com/grafana/grafana/pull/124677),
[@fayzal-g](https://redirect.github.com/fayzal-g)
- **Alerting:** Restrict email contact point recipients to org members
[#123173](https://redirect.github.com/grafana/grafana/pull/123173),
[@yuri-tceretian](https://redirect.github.com/yuri-tceretian)
- **Alerting:** Set enrichment uid in url for enrichment view/edit
drawer (Enterprise)
- **Alerting:** Small improvements to instance drawer drilldown silence
flow
[#123429](https://redirect.github.com/grafana/grafana/pull/123429),
[@laurenashleigh](https://redirect.github.com/laurenashleigh)
- **Alerting:** Support creating Grafana-managed rules without a group
[#120228](https://redirect.github.com/grafana/grafana/pull/120228),
[@moustafab](https://redirect.github.com/moustafab)
- **Alerting:** Surface contact point save errors in the UI
[#123211](https://redirect.github.com/grafana/grafana/pull/123211),
[@konrad147](https://redirect.github.com/konrad147)
- **Alerting:** Surface errors on contact point creation
[#124339](https://redirect.github.com/grafana/grafana/pull/124339),
[@rodrigopk](https://redirect.github.com/rodrigopk)
- **Alerting:** Surface save and bulk-delete errors to the user
[#123690](https://redirect.github.com/grafana/grafana/pull/123690),
[@rodrigopk](https://redirect.github.com/rodrigopk)
- **Alerting:** Use Rules API v2 in panel alert rule drawer
[#125787](https://redirect.github.com/grafana/grafana/pull/125787),
[@laurenashleigh](https://redirect.github.com/laurenashleigh)
- **Annotations:** Clustering GA
[#124173](https://redirect.github.com/grafana/grafana/pull/124173),
[@gtk-grafana](https://redirect.github.com/gtk-grafana)
- **Auth:** Support inline public keys for JWT authentication
[#126184](https://redirect.github.com/grafana/grafana/pull/126184),
[@cinaglia](https://redirect.github.com/cinaglia)
- **Auth:** Use GrafanaComProxyAPIToken for managed plugin API requests
(Enterprise)
- **Auth:** Use dedicated token for requests to Grafana.com
[#122269](https://redirect.github.com/grafana/grafana/pull/122269),
[@s4kh](https://redirect.github.com/s4kh)
- **Azure Monitor:** Pool gzip writers in Log Analytics deep-link
encoder
[#123555](https://redirect.github.com/grafana/grafana/pull/123555),
[@adamyeats](https://redirect.github.com/adamyeats)
- **Azure Monitor:** Refactor `fetchInitialRows` to improve async
utilisation
[#123278](https://redirect.github.com/grafana/grafana/pull/123278),
[@adamyeats](https://redirect.github.com/adamyeats)
- **Azure Monitor:** Stream-decode responses and typed structs for
portal deep link
[#123565](https://redirect.github.com/grafana/grafana/pull/123565),
[@adamyeats](https://redirect.github.com/adamyeats)
- **Browse Dashboards:** Change messaging of delete/move modal and add
counts to tabs in folder detail
[#124299](https://redirect.github.com/grafana/grafana/pull/124299),
[@aocenas](https://redirect.github.com/aocenas)
- **Browse Dashboards:** Refresh old parent folder on save dashboard
[#125323](https://redirect.github.com/grafana/grafana/pull/125323),
[@aocenas](https://redirect.github.com/aocenas)
- **CloudWatch Logs:** Remove data links from results
[#120348](https://redirect.github.com/grafana/grafana/pull/120348),
[@iwysiu](https://redirect.github.com/iwysiu)
- **Cloudwatch:** Add id to metric expression datalinks
[#120526](https://redirect.github.com/grafana/grafana/pull/120526),
[@iwysiu](https://redirect.github.com/iwysiu)
- **Combobox:** Add isOpen and onIsOpenChangeHandler
[#122992](https://redirect.github.com/grafana/grafana/pull/122992),
[@L2D2Grafana](https://redirect.github.com/L2D2Grafana)
- **ConvertFieldType:** Preserve null and empty string in
string-to-number conversion
[#120893](https://redirect.github.com/grafana/grafana/pull/120893),
[@moktamd](https://redirect.github.com/moktamd)
- **CsvExport:** Remove legacy CsvExportPage (Enterprise)
- **Dashboard variables:** Improve accessibility
[#120758](https://redirect.github.com/grafana/grafana/pull/120758),
[@idastambuk](https://redirect.github.com/idastambuk)
- **Dashboard/DTO:** Remove isStarred property
[#122118](https://redirect.github.com/grafana/grafana/pull/122118),
[@ryantxu](https://redirect.github.com/ryantxu)
- **Dashboard:** Add annotation CRUD to mutation API
[#123939](https://redirect.github.com/grafana/grafana/pull/123939),
[@ivanortegaalba](https://redirect.github.com/ivanortegaalba)
- **Dashboard:** Display variable label in outline to better match what
the users sees in the dashboard
[#123321](https://redirect.github.com/grafana/grafana/pull/123321),
[@oscarkilhed](https://redirect.github.com/oscarkilhed)
- **Dashboard:** Edit pane go back action
[#122918](https://redirect.github.com/grafana/grafana/pull/122918),
[@torkelo](https://redirect.github.com/torkelo)
- **Dashboard:** Preserve timezone user-preference when converting V1 →
V2
[#122267](https://redirect.github.com/grafana/grafana/pull/122267),
[@ivanortegaalba](https://redirect.github.com/ivanortegaalba)
- **Dashboard:** Switch tab selects tab only when pane is open (docked
or not)
[#121755](https://redirect.github.com/grafana/grafana/pull/121755),
[@torkelo](https://redirect.github.com/torkelo)
- **Dashboards:** Add panel screenshot API
[#124045](https://redirect.github.com/grafana/grafana/pull/124045),
[@dprokop](https://redirect.github.com/dprokop)
- **Dashboards:** Preserve query variable sort modes in v1->v2
conversion
[#124247](https://redirect.github.com/grafana/grafana/pull/124247),
[@oscarkilhed](https://redirect.github.com/oscarkilhed)
- **Dashboards:** Remove dashboardScene and publicDashboardsScene
feature toggles
[#121781](https://redirect.github.com/grafana/grafana/pull/121781),
[@Sergej-Vlasov](https://redirect.github.com/Sergej-Vlasov)
- **Dashboards:** Show k8s format in provisioned save
[#123033](https://redirect.github.com/grafana/grafana/pull/123033),
[@stephaniehingtgen](https://redirect.github.com/stephaniehingtgen)
- **Dashboards:** Strip BOM characters in admission mutation hook
[#122677](https://redirect.github.com/grafana/grafana/pull/122677),
[@MissingRoberto](https://redirect.github.com/MissingRoberto)
- **Data Source:** Add forward\_user\_agent option to preserve client
User-Agent
[#124244](https://redirect.github.com/grafana/grafana/pull/124244),
[@marcsanmi](https://redirect.github.com/marcsanmi)
- **DataSources:** Introduce async APIs and hooks as replacement for
datasourceSrv
[#123037](https://redirect.github.com/grafana/grafana/pull/123037),
[@mckn](https://redirect.github.com/mckn)
- **Datasources:** Add dynamodb to supported plugins list in dsauth
(Enterprise)
- **Datasources:** Allow editing data source title
[#122053](https://redirect.github.com/grafana/grafana/pull/122053),
[@MattIPv4](https://redirect.github.com/MattIPv4)
- **Datasources:** Finish decoupling mssql & postgresql - backend
[#119110](https://redirect.github.com/grafana/grafana/pull/119110),
[@njvrzm](https://redirect.github.com/njvrzm)
- **Datasources:** Finish decoupling mssql, tempo, and graphite -
frontend changes
[#119106](https://redirect.github.com/grafana/grafana/pull/119106),
[@njvrzm](https://redirect.github.com/njvrzm)
- **Docker:** Bump Alpine-based images to 3.23.4
[#122930](https://redirect.github.com/grafana/grafana/pull/122930),
[@Proximyst](https://redirect.github.com/Proximyst)
- **Docker:** Bump Alpine-based images to 3.24.1
[#126529](https://redirect.github.com/grafana/grafana/pull/126529),
[@macabu](https://redirect.github.com/macabu)
- **Dynamic dashboards:** preserve tab/row URL slugs and keep legacy tab
URLs working
[#123159](https://redirect.github.com/grafana/grafana/pull/123159),
[@idastambuk](https://redirect.github.com/idastambuk)
- **Expressions:** Add memory limit for math expression binary
operations
[#121945](https://redirect.github.com/grafana/grafana/pull/121945),
[@rwwiv](https://redirect.github.com/rwwiv)
- **Go:** Update to 1.25.9
[#122094](https://redirect.github.com/grafana/grafana/pull/122094),
[@macabu](https://redirect.github.com/macabu)
- **Google Cloud Monitoring:** Add Forward OAuth Identity authentication
(frontend)
[#124618](https://redirect.github.com/grafana/grafana/pull/124618),
[@ktw4071](https://redirect.github.com/ktw4071)
- **GrafanaUI:** Remove feature toggle for new panel padding
[#124870](https://redirect.github.com/grafana/grafana/pull/124870),
[@torkelo](https://redirect.github.com/torkelo)
- **Graphite:** Strip tagged path from `tags.name` when `aliasSub`
wrapping is detected
[#122277](https://redirect.github.com/grafana/grafana/pull/122277),
[@adamyeats](https://redirect.github.com/adamyeats)
- **Histogram:** filter NaN and Infinity from bucket size calculation
[#117698](https://redirect.github.com/grafana/grafana/pull/117698),
[@ethervoid](https://redirect.github.com/ethervoid)
- **Homepage:** Support v2 dashboards if defined by a file
[#122994](https://redirect.github.com/grafana/grafana/pull/122994),
[@stephaniehingtgen](https://redirect.github.com/stephaniehingtgen)
- **I18n:** Prevents `en-US` localization resources from loading
[#125327](https://redirect.github.com/grafana/grafana/pull/125327),
[@hugohaggmark](https://redirect.github.com/hugohaggmark)
- **Import:** Library panel missing DS when imported in v1 and classic
[#119980](https://redirect.github.com/grafana/grafana/pull/119980),
[@ivanortegaalba](https://redirect.github.com/ivanortegaalba)
- **InfluxDB:** Decouple backend
[#119167](https://redirect.github.com/grafana/grafana/pull/119167),
[@njvrzm](https://redirect.github.com/njvrzm)
- **InfluxDB:** Decouple frontend
[#119169](https://redirect.github.com/grafana/grafana/pull/119169),
[@njvrzm](https://redirect.github.com/njvrzm)
- **InteractiveTable:** Support specific column widths
[#121384](https://redirect.github.com/grafana/grafana/pull/121384),
[@vijaygovindaraja](https://redirect.github.com/vijaygovindaraja)
- **LibraryPanels:** Return 403 instead of 500 for insufficient
permissions
[#123407](https://redirect.github.com/grafana/grafana/pull/123407),
[@MissingRoberto](https://redirect.github.com/MissingRoberto)
- **Log Details:** Add support for filtering from add-hoc stats and to
include/exclude the log line
[#126782](https://redirect.github.com/grafana/grafana/pull/126782),
[@matyax](https://redirect.github.com/matyax)
- **Log Details:** Add support to expand or shrink inline Log Details
[#123156](https://redirect.github.com/grafana/grafana/pull/123156),
[@matyax](https://redirect.github.com/matyax)
- **Logs Panel:** Add support to copy a log entry with fields/labels as
JSON
[#124816](https://redirect.github.com/grafana/grafana/pull/124816),
[@matyax](https://redirect.github.com/matyax)
- **Logs:** Add emergency to supported LogLevel mapping
[#119957](https://redirect.github.com/grafana/grafana/pull/119957),
[@Kuehn-Andreas](https://redirect.github.com/Kuehn-Andreas)
- **Logs:** Add keyboard navigation support for Log Details
[#123406](https://redirect.github.com/grafana/grafana/pull/123406),
[@matyax](https://redirect.github.com/matyax)
- **Logs:** Add optional download support for dashboards
[#123256](https://redirect.github.com/grafana/grafana/pull/123256),
[@matyax](https://redirect.github.com/matyax)
- **Logs:** Highlight multi-unit durations in log syntax highlighting
[#124433](https://redirect.github.com/grafana/grafana/pull/124433),
[@o6ivp](https://redirect.github.com/o6ivp)
- **Logs:** Log line menu is now sticky
[#126572](https://redirect.github.com/grafana/grafana/pull/126572),
[@matyax](https://redirect.github.com/matyax)
- **Logs:** Removed logsPanelControls feature flag and related
components
[#122114](https://redirect.github.com/grafana/grafana/pull/122114),
[@matyax](https://redirect.github.com/matyax)
- **Logs:** introduce "unspecified" log level for missing log level and
separate from "unknown"
[#125716](https://redirect.github.com/grafana/grafana/pull/125716),
[@matyax](https://redirect.github.com/matyax)
- **Migration:** Widen team.updated to DATETIME(3) on MySQL
[#124314](https://redirect.github.com/grafana/grafana/pull/124314),
[@mgyongyosi](https://redirect.github.com/mgyongyosi)
- **PieChartPanel:** Add gradient color scheme with WCAG-aware slice
labels
[#121303](https://redirect.github.com/grafana/grafana/pull/121303),
[@fedir](https://redirect.github.com/fedir)
- **Plugins:** Add plugins.marketplaceLicensing feature toggle
[#124246](https://redirect.github.com/grafana/grafana/pull/124246),
[@xnyo](https://redirect.github.com/xnyo)
- **Plugins:** Sanitise header values to printable ASCII for gRPC
compatibility
[#122237](https://redirect.github.com/grafana/grafana/pull/122237),
[@adamyeats](https://redirect.github.com/adamyeats)
- **Prometheus:** Fetch metric metadata on code editor mount
[#121339](https://redirect.github.com/grafana/grafana/pull/121339)
- **Prometheus:** Prevent prometheus package to be released
automatically
[#122824](https://redirect.github.com/grafana/grafana/pull/122824),
[@itsmylife](https://redirect.github.com/itsmylife)
- **Prometheus:** Use
[@grafana/prometheus](https://redirect.github.com/grafana/prometheus)
v13.1.2
[#123024](https://redirect.github.com/grafana/grafana/pull/123024),
[@itsmylife](https://redirect.github.com/itsmylife)
- **Provisioning:** Add commit signing configuration UI (GPG, SSH,
S/MIME)
[#126023](https://redirect.github.com/grafana/grafana/pull/126023),
[@amalavet](https://redirect.github.com/amalavet)
- **Provisioning:** Don't mark folders pending due to \_folder.json
metadata
[#124118](https://redirect.github.com/grafana/grafana/pull/124118),
[@MissingRoberto](https://redirect.github.com/MissingRoberto)
- **Provisioning:** Enforce folder version in finalizer handler
[#123179](https://redirect.github.com/grafana/grafana/pull/123179),
[@ferruvich](https://redirect.github.com/ferruvich)
- **Provisioning:** Honor ruleset bypass for write workflow validation
[#123893](https://redirect.github.com/grafana/grafana/pull/123893),
[@MissingRoberto](https://redirect.github.com/MissingRoberto)
- **Provisioning:** Include dashboard validation errors in pull request
comments
[#122233](https://redirect.github.com/grafana/grafana/pull/122233),
[@gttrigger](https://redirect.github.com/gttrigger)
- **Provisioning:** Invalid resources should cause a warning job
[#123047](https://redirect.github.com/grafana/grafana/pull/123047),
[@gttrigger](https://redirect.github.com/gttrigger)
- **Provisioning:** List resources should return correct api version
[#122653](https://redirect.github.com/grafana/grafana/pull/122653),
[@gttrigger](https://redirect.github.com/gttrigger)
- **Provisioning:** Negotiate receive-pack capabilities for git pushes
[#124122](https://redirect.github.com/grafana/grafana/pull/124122),
[@MissingRoberto](https://redirect.github.com/MissingRoberto)
- **Provisioning:** Per-verb fallback for the files subresource
[#123867](https://redirect.github.com/grafana/grafana/pull/123867),
[@MissingRoberto](https://redirect.github.com/MissingRoberto)
- **Provisioning:** Remove GET method from webhook connector
[#125539](https://redirect.github.com/grafana/grafana/pull/125539),
[@MissingRoberto](https://redirect.github.com/MissingRoberto)
- **Provisioning:** Require new token when provisioning URL changes
[#125525](https://redirect.github.com/grafana/grafana/pull/125525),
[@ferruvich](https://redirect.github.com/ferruvich)
- **Provisioning:** Retry SQLITE\_BUSY on repository status patch
[#123873](https://redirect.github.com/grafana/grafana/pull/123873),
[@MissingRoberto](https://redirect.github.com/MissingRoberto)
- **Provisioning:** Return Bad request for repo mismatch in webhook
[#124453](https://redirect.github.com/grafana/grafana/pull/124453),
[@ferruvich](https://redirect.github.com/ferruvich)
- **Provisioning:** Return early for errors on resource creation in
Parser
[#125122](https://redirect.github.com/grafana/grafana/pull/125122),
[@ferruvich](https://redirect.github.com/ferruvich)
- **Provisioning:** Rotate webhook secret periodically
[#122797](https://redirect.github.com/grafana/grafana/pull/122797),
[@ferruvich](https://redirect.github.com/ferruvich)
- **Provisioning:** Scope repository uniqueness by (URL, branch, path)
[#123498](https://redirect.github.com/grafana/grafana/pull/123498),
[@ferruvich](https://redirect.github.com/ferruvich)
- **Provisioning:** Surface folder uid-too-long and other validation 4xx
as sync warnings
[#123797](https://redirect.github.com/grafana/grafana/pull/123797),
[@MissingRoberto](https://redirect.github.com/MissingRoberto)
- **Provisioning:** Use full sync instead of incremental if diff size
exceeds a certain amount
[#123127](https://redirect.github.com/grafana/grafana/pull/123127),
[@ferruvich](https://redirect.github.com/ferruvich)
- **Provisioning:** Write `_folder.json` when creating dashboards in new
folders
[#126042](https://redirect.github.com/grafana/grafana/pull/126042),
[@ferruvich](https://redirect.github.com/ferruvich)
- **Provisioning:** Write `_folder.json` when moving dashboards into new
folders
[#126552](https://redirect.github.com/grafana/grafana/pull/126552),
[@ferruvich](https://redirect.github.com/ferruvich)
- **Provisioning:** add PR comment if resources metadata is removed
[#122664](https://redirect.github.com/grafana/grafana/pull/122664),
[@ferruvich](https://redirect.github.com/ferruvich)
- **Provisioning:** add new check for webhook creation in repository
controller
[#122725](https://redirect.github.com/grafana/grafana/pull/122725),
[@ferruvich](https://redirect.github.com/ferruvich)
- **Provisioning:** add public\_root\_url instance setting for external
URLs
[#123613](https://redirect.github.com/grafana/grafana/pull/123613),
[@MissingRoberto](https://redirect.github.com/MissingRoberto)
- **Provisioning:** replay protection for GitHub webhooks
[#125550](https://redirect.github.com/grafana/grafana/pull/125550),
[@MissingRoberto](https://redirect.github.com/MissingRoberto)
- **Provisioning:** validate ref query parameter on files and history
endpoints
[#125551](https://redirect.github.com/grafana/grafana/pull/125551),
[@MissingRoberto](https://redirect.github.com/MissingRoberto)
- **Pyroscope:** Add support for heatmap query API
[#120995](https://redirect.github.com/grafana/grafana/pull/120995),
[@simonswine](https://redirect.github.com/simonswine)
- **Pyroscope:** Include profile ID and absolute times in assistant
context
[#122665](https://redirect.github.com/grafana/grafana/pull/122665),
[@marcsanmi](https://redirect.github.com/marcsanmi)
- **Removal:** GroupAttributeSync routes
[#126247](https://redirect.github.com/grafana/grafana/pull/126247),
[@Jguer](https://redirect.github.com/Jguer)
- **Reporting:** Add backend support for URL-based report rendering
(Enterprise)
- **Reporting:** Limit report emails to org members only (behind new
config property) (Enterprise)
- **Revert "Alerting:** Migrate notifications.alerting.grafana.app from
v0alpha1 to v1beta1"
[#121955](https://redirect.github.com/grafana/grafana/pull/121955),
[@rodrigopk](https://redirect.github.com/rodrigopk)
- **Scenes:** Upgrade to v8
[#123698](https://redirect.github.com/grafana/grafana/pull/123698),
[@torkelo](https://redirect.github.com/torkelo)
- **Search API:** Filter out k6 technical folder in unified search
[#122674](https://redirect.github.com/grafana/grafana/pull/122674),
[@aocenas](https://redirect.github.com/aocenas)
- **Secrets Keeper:** AWS create form with instruction wizard
(Enterprise)
- **Secrets Keeper:** Activate and deactivate keeper from the UI
(Enterprise)
- **Secrets Keeper:** Add delete keeper functionality (Enterprise)
- **Secrets Keeper:** Add keeper edit page with form prepopulation
(Enterprise)
- **Sidebar:** Open pane actions, dock, and go back redesign
[#123683](https://redirect.github.com/grafana/grafana/pull/123683),
[@torkelo](https://redirect.github.com/torkelo)
- **SqlExpressions:** Interpolate variables in schema queries
[#123779](https://redirect.github.com/grafana/grafana/pull/123779),
[@NWRichmond](https://redirect.github.com/NWRichmond)
- **SqlExpressions:** Migrate AI features to Grafana Assistant
[#122085](https://redirect.github.com/grafana/grafana/pull/122085),
[@NWRichmond](https://redirect.github.com/NWRichmond)
- **Stats:** Remove dashboard version metric
[#121900](https://redirect.github.com/grafana/grafana/pull/121900),
[@stephaniehingtgen](https://redirect.github.com/stephaniehingtgen)
- **Table:** GroupToNestedTable v2 UI
[#121646](https://redirect.github.com/grafana/grafana/pull/121646),
[@fastfrwrd](https://redirect.github.com/fastfrwrd)
- **Team folders:** Refresh browse dashboard cache after changes to team
folders
[#123794](https://redirect.github.com/grafana/grafana/pull/123794),
[@aocenas](https://redirect.github.com/aocenas)
- **Tempo:** Unify dynamic int/double span attributes as float64
[#121645](https://redirect.github.com/grafana/grafana/pull/121645),
[@zoltanbedi](https://redirect.github.com/zoltanbedi)
- **Tempo:** Unify nested span subframe schema across span sets
[#124885](https://redirect.github.com/grafana/grafana/pull/124885),
[@zoltanbedi](https://redirect.github.com/zoltanbedi)
- **TimeRangePicker:** Adjust accent color to be accessible
[#122040](https://redirect.github.com/grafana/grafana/pull/122040),
[@ashharrison90](https://redirect.github.com/ashharrison90)
- **Transformations:** Removes unused predicate matchers
[#124790](https://redirect.github.com/grafana/grafana/pull/124790),
[@hugohaggmark](https://redirect.github.com/hugohaggmark)
- **Unified Storage:** Pass commit message when routing managed-resource
writes
[#125556](https://redirect.github.com/grafana/grafana/pull/125556),
[@MissingRoberto](https://redirect.github.com/MissingRoberto)
- **Users:** Use SHA-256 for Gravatar email identifier
[#122319](https://redirect.github.com/grafana/grafana/pull/122319),
[@Jguer](https://redirect.github.com/Jguer)
- **Zipkin:** Remove core datasource (Enterprise)
- **patch(security):** apply May 2026 patches
[#124824](https://redirect.github.com/grafana/grafana/pull/124824),
[@github-actions\[bot\]](https://redirect.github.com/github-actions\[bot])
##### Bug fixes
- **Alerting:** Fix named policy route showing as Default when routing
toggle is off
[#125817](https://redirect.github.com/grafana/grafana/pull/125817),
[@rodrigopk](https://redirect.github.com/rodrigopk)
- **Alerting:** Add warning when editing grouped alert rule to ungrouped
[#126292](https://redirect.github.com/grafana/grafana/pull/126292),
[@rodrigopk](https://redirect.github.com/rodrigopk)
- **Alerting:** Fix AlertManagerPicker visibility to check Alertmanager
datasources
[#123137](https://redirect.github.com/grafana/grafana/pull/123137),
[@konrad147](https://redirect.github.com/konrad147)
- **Alerting:** Fix Test button not shown for provisioned contact points
[#126371](https://redirect.github.com/grafana/grafana/pull/126371),
[@gillesdemey](https://redirect.github.com/gillesdemey)
- **Alerting:** Fix crash when MultiCombobox value contains duplicates
[#122180](https://redirect.github.com/grafana/grafana/pull/122180),
[@rodrigopk](https://redirect.github.com/rodrigopk)
- **Alerting:** Fix crash when ruler returns namespace with empty groups
array
[#122704](https://redirect.github.com/grafana/grafana/pull/122704),
[@konrad147](https://redirect.github.com/konrad147)
- **Alerting:** Fix error toaster when removing last rule from group
[#126296](https://redirect.github.com/grafana/grafana/pull/126296),
[@rodrigopk](https://redirect.github.com/rodrigopk)
- **Alerting:** Fix inhibition status flickering during load of alert
rule detail
[#126288](https://redirect.github.com/grafana/grafana/pull/126288),
[@rodrigopk](https://redirect.github.com/rodrigopk)
- **Alerting:** Fix missing permission check for routing preview
[#122344](https://redirect.github.com/grafana/grafana/pull/122344),
[@rodrigopk](https://redirect.github.com/rodrigopk)
- **Alerting:** Fix notification policies tab hidden for Viewer/Editor
after managed routes migration
[#122123](https://redirect.github.com/grafana/grafana/pull/122123),
[@gillesdemey](https://redirect.github.com/gillesdemey)
- **Alerting:** Fix page title for /alerting/groups when V2 nav is
enabled without triage
[#123286](https://redirect.github.com/grafana/grafana/pull/123286),
[@firasmosbehi](https://redirect.github.com/firasmosbehi)
- **Alerting:** Fix rule matching when expressions contain inline
comments
[#126152](https://redirect.github.com/grafana/grafana/pull/126152),
[@gillesdemey](https://redirect.github.com/gillesdemey)
- **Alerting:** Fix slug in alerting nested folder URL
[#123670](https://redirect.github.com/grafana/grafana/pull/123670),
[@laurenashleigh](https://redirect.github.com/laurenashleigh)
- **Alerting:** Fix threshold value reset when changing condition type
[#122455](https://redirect.github.com/grafana/grafana/pull/122455),
[@gillesdemey](https://redirect.github.com/gillesdemey)
- **Alerting:** Fix toast spam when typing silence matcher regex
[#125643](https://redirect.github.com/grafana/grafana/pull/125643),
[@laurenashleigh](https://redirect.github.com/laurenashleigh)
- **Alerting:** Make contact point settings redaction logic case
insensitive
[#124955](https://redirect.github.com/grafana/grafana/pull/124955),
[@khalilhaji](https://redirect.github.com/khalilhaji)
- **Alerting:** Set 'ResolvedAt' when transitioning from Error to Normal
[#122329](https://redirect.github.com/grafana/grafana/pull/122329),
[@santihernandezc](https://redirect.github.com/santihernandezc)
- **Auth:** URL-encode redirectTo cookie value in OAuth login flow
[#121953](https://redirect.github.com/grafana/grafana/pull/121953),
[@jsclayton](https://redirect.github.com/jsclayton)
- **AzureMonitor:** Fix focus trapping on `ResourceField` modal
[#123072](https://redirect.github.com/grafana/grafana/pull/123072),
[@ashharrison90](https://redirect.github.com/ashharrison90)
- **Browse dashboards:** Fix delete modal affected counts
[#122747](https://redirect.github.com/grafana/grafana/pull/122747),
[@aocenas](https://redirect.github.com/aocenas)
- **Dashboads:** Fixes flickering issues
[#118567](https://redirect.github.com/grafana/grafana/pull/118567),
[@torkelo](https://redirect.github.com/torkelo)
- **Dashboard:** DashboardCodePane width refactoring and fixes
[#122700](https://redirect.github.com/grafana/grafana/pull/122700),
[@torkelo](https://redirect.github.com/torkelo)
- **Dashboard:** Fixes issue with interval variable with Auto value
[#123889](https://redirect.github.com/grafana/grafana/pull/123889),
[@torkelo](https://redirect.github.com/torkelo)
- **DashboardDS:** Fix Mixed panels not updating on time-range change
with stale upstreams
[#124665](https://redirect.github.com/grafana/grafana/pull/124665),
[@ivanortegaalba](https://redirect.github.com/ivanortegaalba)
- **DashboardDS:** Fix Mixed panels with a time override stuck in
permanent loading
[#125954](https://redirect.github.com/grafana/grafana/pull/125954),
[@oscarkilhed](https://redirect.github.com/oscarkilhed)
- **Dashboards:** Fix broken add panel button after removing last panel
[#124551](https://redirect.github.com/grafana/grafana/pull/124551),
[@ifrost](https://redirect.github.com/ifrost)
- **Datasources:** return 400 when payload UID does not match URL UID in
PUT /api/datasources/uid/:uid
[#125398](https://redirect.github.com/grafana/grafana/pull/125398),
[@papagian](https://redirect.github.com/papagian)
- **Fix:** Don't mutate shared SecureJSONData map in dsauth (Enterprise)
- **Fix:** Short-cut auth service Apply for non-handled plugin IDs
(Enterprise)
- **GrafanaUI:** Correctly close `Select`/`Combobox` menus with the
keyboard
[#122133](https://redirect.github.com/grafana/grafana/pull/122133),
[@ashharrison90](https://redirect.github.com/ashharrison90)
- **HomePage:** Fix redirect when served under a subpath
[#124557](https://redirect.github.com/grafana/grafana/pull/124557),
[@ashharrison90](https://redirect.github.com/ashharrison90)
- **Jaeger:** Fix log event timestamp unit conversion in trace view
[#123302](https://redirect.github.com/grafana/grafana/pull/123302),
[@ktw4071](https://redirect.github.com/ktw4071)
- **K8s Dashboards:** Fix folder permission check to use
dashboards:create
[#124612](https://redirect.github.com/grafana/grafana/pull/124612),
[@mihai-turdean](https://redirect.github.com/mihai-turdean)
- **Loki:** Show Step option for all query types and fix volume reload
on step change
[#122184](https://redirect.github.com/grafana/grafana/pull/122184),
[@paulojmdias](https://redirect.github.com/paulojmdias)
- **Menu:** Correctly show active state in forced colors mode
[#123633](https://redirect.github.com/grafana/grafana/pull/123633),
[@ashharrison90](https://redirect.github.com/ashharrison90)
- **Portal:** Fix nested portals to overlay correctly
[#122450](https://redirect.github.com/grafana/grafana/pull/122450),
[@ashharrison90](https://redirect.github.com/ashharrison90)
- **PostgreSQL:** Allow sql\_engine to return results for EXPLAIN
queries
[#122739](https://redirect.github.com/grafana/grafana/pull/122739),
[@sdague](https://redirect.github.com/sdague)
- **Provisioning:** Bump nanogit to v0.17.0 to fix pushes with
repositories using git modules
[#124114](https://redirect.github.com/grafana/grafana/pull/124114),
[@MissingRoberto](https://redirect.github.com/MissingRoberto)
- **Provisioning:** Fix PR comments on multi-org Grafana instances
[#126700](https://redirect.github.com/grafana/grafana/pull/126700),
[@ferruvich](https://redirect.github.com/ferruvich)
- **Provisioning:** Fix PR links when folder is renamed via UI
[#126695](https://redirect.github.com/grafana/grafana/pull/126695),
[@ferruvich](https://redirect.github.com/ferruvich)
- **Provisioning:** Fix duplicate folder cleanup during full sync
[#124256](https://redirect.github.com/grafana/grafana/pull/124256),
[@ferruvich](https://redirect.github.com/ferruvich)
- **Provisioning:** Fix race in PullStatus condition with controller
patches
[#123358](https://redirect.github.com/grafana/grafana/pull/123358),
[@MissingRoberto](https://redirect.github.com/MissingRoberto)
- **Public Dashboards:** Fix issues navigating to public dashboards from
a logged-in session
[#121017](https://redirect.github.com/grafana/grafana/pull/121017),
[@mmandrus](https://redirect.github.com/mmandrus)
- **QueryEditor:** Fix loss of query edits when switching queries
[#123001](https://redirect.github.com/grafana/grafana/pull/123001),
[@NWRichmond](https://redirect.github.com/NWRichmond)
- **Tempo Datasource:** Fix gRPC basic auth over non-TLS connections
[#123026](https://redirect.github.com/grafana/grafana/pull/123026),
[@RobertClarke64](https://redirect.github.com/RobertClarke64)
- **Tempo:** Fix Ctrl+/ comment toggle in TraceQL editor
[#121460](https://redirect.github.com/grafana/grafana/pull/121460),
[@Krishnachaitanyakc](https://redirect.github.com/Krishnachaitanyakc)
- **Tempo:** Fix trace rendering failure when span attributes contain
NaN or Infinity
[#122504](https://redirect.github.com/grafana/grafana/pull/122504),
[@Tarasusrus](https://redirect.github.com/Tarasusrus)
- **TimePicker:** Show label for fiscal-quarter relative ranges
[#122384](https://redirect.github.com/grafana/grafana/pull/122384),
[@jeanibarz](https://redirect.github.com/jeanibarz)
- **Unified storage:** Skip migrations if dualwrite state shows they
were already migrated
[#122866](https://redirect.github.com/grafana/grafana/pull/122866),
[@stephaniehingtgen](https://redirect.github.com/stephaniehingtgen)
- **alerting:** fix ORM table mapping bug causing SELECT alert\_rule
columns FROM user on PostgreSQL
[#124935](https://redirect.github.com/grafana/grafana/pull/124935),
[@dhananjay6561](https://redirect.github.com/dhananjay6561)
- **fix(provisioning):** ignore terminating repositories when validating
connection delete
[#126822](https://redirect.github.com/grafana/grafana/pull/126822),
[@MissingRoberto](https://redirect.github.com/MissingRoberto)
- **fix:** bad MySQL query in datasource\_type column migration
[#126821](https://redirect.github.com/grafana/grafana/pull/126821),
[@gassiss](https://redirect.github.com/gassiss)
##### Breaking changes
- **Prometheus:** Remove azure and sigv4 auth from core prometheus
[#123089](https://redirect.github.com/grafana/grafana/pull/123089),
[@itsmylife](https://redirect.github.com/itsmylife)
- **Prometheus:** Remove grafana-prometheus
[package#122953](https://redirect.github.com/package/grafana/issues/122953)
[#123035](https://redirect.github.com/grafana/grafana/pull/123035),
[@itsmylife](https://redirect.github.com/itsmylife)
- **Zipkin:** Remove from core plugins
[#124148](https://redirect.github.com/grafana/grafana/pull/124148),
[@itsmylife](https://redirect.github.com/itsmylife)
##### Plugin development fixes & changes
- **Card:** Improve responsiveness
[#123876](https://redirect.github.com/grafana/grafana/pull/123876),
[@ashharrison90](https://redirect.github.com/ashharrison90)
- **Combobox:** Fix caret jumping to the end of the input
[#123950](https://redirect.github.com/grafana/grafana/pull/123950),
[@joshhunt](https://redirect.github.com/joshhunt)
- **DataLinkInput:** Expose prop to properly link labels to input
[#123795](https://redirect.github.com/grafana/grafana/pull/123795),
[@ashharrison90](https://redirect.github.com/ashharrison90)
- **RadioButton:** Fix selected visibility in forced colors mode
[#123952](https://redirect.github.com/grafana/grafana/pull/123952),
[@ashharrison90](https://redirect.github.com/ashharrison90)
- **RadioButtonGroup:** Prevent RadioButtonGroup overflow with ellipsis
and hover title
[#119124](https://redirect.github.com/grafana/grafana/pull/119124),
[@Apahadi73](https://redirect.github.com/Apahadi73)
- **TimeOfDayPicker:** use Combobox
[#123777](https://redirect.github.com/grafana/grafana/pull/123777),
[@leeoniya](https://redirect.github.com/leeoniya)
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/prometheus/client_java).
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
examples/example-custom-buckets/docker-compose.yaml | 2 +-
examples/example-exemplars-tail-sampling/docker-compose.yaml | 2 +-
examples/example-native-histogram/docker-compose.yaml | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/examples/example-custom-buckets/docker-compose.yaml b/examples/example-custom-buckets/docker-compose.yaml
index 77166969c1..242161802d 100644
--- a/examples/example-custom-buckets/docker-compose.yaml
+++ b/examples/example-custom-buckets/docker-compose.yaml
@@ -18,7 +18,7 @@ services:
- --enable-feature=native-histograms
- --config.file=/prometheus.yml
grafana:
- image: grafana/grafana:13.1.1@sha256:7cb8c64c4d57a57e734073f3cc94620adb24a0acb929bd80ba9f14017e3a975b
+ image: grafana/grafana:13.1.2@sha256:d177053ab62253815f130d81504f77063baf5fd4ca93299d6048453bd31e047a
network_mode: host
volumes:
- ./docker-compose/grafana-datasources.yaml:/etc/grafana/provisioning/datasources/grafana-datasources.yaml
diff --git a/examples/example-exemplars-tail-sampling/docker-compose.yaml b/examples/example-exemplars-tail-sampling/docker-compose.yaml
index 1169fbf24f..87ddbff961 100644
--- a/examples/example-exemplars-tail-sampling/docker-compose.yaml
+++ b/examples/example-exemplars-tail-sampling/docker-compose.yaml
@@ -59,7 +59,7 @@ services:
command:
- --config.file=/config.yaml
grafana:
- image: grafana/grafana:13.1.1@sha256:7cb8c64c4d57a57e734073f3cc94620adb24a0acb929bd80ba9f14017e3a975b
+ image: grafana/grafana:13.1.2@sha256:d177053ab62253815f130d81504f77063baf5fd4ca93299d6048453bd31e047a
network_mode: host
ports:
- "3000:3000"
diff --git a/examples/example-native-histogram/docker-compose.yaml b/examples/example-native-histogram/docker-compose.yaml
index 50062aed5d..dac46e4b89 100644
--- a/examples/example-native-histogram/docker-compose.yaml
+++ b/examples/example-native-histogram/docker-compose.yaml
@@ -18,7 +18,7 @@ services:
- --enable-feature=native-histograms
- --config.file=/prometheus.yml
grafana:
- image: grafana/grafana:13.1.1@sha256:7cb8c64c4d57a57e734073f3cc94620adb24a0acb929bd80ba9f14017e3a975b
+ image: grafana/grafana:13.1.2@sha256:d177053ab62253815f130d81504f77063baf5fd4ca93299d6048453bd31e047a
network_mode: host
volumes:
- ./docker-compose/grafana-datasources.yaml:/etc/grafana/provisioning/datasources/grafana-datasources.yaml
From 76e3395295817904bb64aeb38abdf403f49d685b Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Mon, 10 Aug 2026 14:10:01 -0400
Subject: [PATCH 051/255] chore(deps): update github/codeql-action action to
v4.37.6 (#2368)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
|
[github/codeql-action](https://redirect.github.com/github/codeql-action)
| action | patch | `v4.37.5` → `v4.37.6` |
---
### Release Notes
github/codeql-action (github/codeql-action)
###
[`v4.37.6`](https://redirect.github.com/github/codeql-action/releases/tag/v4.37.6)
[Compare
Source](https://redirect.github.com/github/codeql-action/compare/v4.37.5...v4.37.6)
- Changed the default filepath for the new remote file address format
that was introduced in CodeQL Action 4.37.0 / 3.37.0 to
`.github/codeql-config.yml` to align it with the suggested path that is
used elsewhere.
[#4070](https://redirect.github.com/github/codeql-action/pull/4070)
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/prometheus/client_java).
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
.github/workflows/codeql.yml | 4 ++--
.github/workflows/scorecard.yml | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml
index 1ca3c4ac0a..0c75b31fd9 100644
--- a/.github/workflows/codeql.yml
+++ b/.github/workflows/codeql.yml
@@ -37,7 +37,7 @@ jobs:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-codeql-${{ hashFiles('**/pom.xml') }}
- name: Initialize CodeQL
- uses: github/codeql-action/init@d1ba80a13dd99fba24a470575428917156a28b43 # v4.37.5
+ uses: github/codeql-action/init@5595ccaf912efad79be6eef63a5619ff05969be3 # v4.37.6
with:
languages: java
tools: linked
@@ -56,6 +56,6 @@ jobs:
-Djavadoc.skip=true
- name: Perform CodeQL Analysis
- uses: github/codeql-action/analyze@d1ba80a13dd99fba24a470575428917156a28b43 # v4.37.5
+ uses: github/codeql-action/analyze@5595ccaf912efad79be6eef63a5619ff05969be3 # v4.37.6
with:
category: /language:java
diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml
index 604296434a..95e2597d28 100644
--- a/.github/workflows/scorecard.yml
+++ b/.github/workflows/scorecard.yml
@@ -41,6 +41,6 @@ jobs:
retention-days: 5
- name: Upload to code scanning
- uses: github/codeql-action/upload-sarif@d1ba80a13dd99fba24a470575428917156a28b43 # v4.37.5
+ uses: github/codeql-action/upload-sarif@5595ccaf912efad79be6eef63a5619ff05969be3 # v4.37.6
with:
sarif_file: results.sarif
From 82aad34da8886646cf9d791d0a0fe744774d1670 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Mon, 10 Aug 2026 14:10:14 -0400
Subject: [PATCH 052/255] chore(deps): update grafana/grafana docker tag to
v13.1.3 (#2372)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This PR contains the following updates:
| Package | Update | Change |
|---|---|---|
| [grafana/grafana](https://redirect.github.com/grafana/grafana) | patch
| `13.1.2` → `13.1.3` |
---
### Release Notes
grafana/grafana (grafana/grafana)
###
[`v13.1.3`](https://redirect.github.com/grafana/grafana/releases/tag/v13.1.3):
13.1.3
[Download page](https://grafana.com/grafana/download/13.1.3)
[What's new
highlights](https://grafana.com/docs/grafana/latest/whatsnew/)
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/prometheus/client_java).
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
examples/example-custom-buckets/docker-compose.yaml | 2 +-
examples/example-exemplars-tail-sampling/docker-compose.yaml | 2 +-
examples/example-native-histogram/docker-compose.yaml | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/examples/example-custom-buckets/docker-compose.yaml b/examples/example-custom-buckets/docker-compose.yaml
index 242161802d..3791006503 100644
--- a/examples/example-custom-buckets/docker-compose.yaml
+++ b/examples/example-custom-buckets/docker-compose.yaml
@@ -18,7 +18,7 @@ services:
- --enable-feature=native-histograms
- --config.file=/prometheus.yml
grafana:
- image: grafana/grafana:13.1.2@sha256:d177053ab62253815f130d81504f77063baf5fd4ca93299d6048453bd31e047a
+ image: grafana/grafana:13.1.3@sha256:ab5cb380e3ff3172d6c8bd2e7cfd31cce977d2881b260e1f5bc089bf0b759b43
network_mode: host
volumes:
- ./docker-compose/grafana-datasources.yaml:/etc/grafana/provisioning/datasources/grafana-datasources.yaml
diff --git a/examples/example-exemplars-tail-sampling/docker-compose.yaml b/examples/example-exemplars-tail-sampling/docker-compose.yaml
index 87ddbff961..f2ab03ee74 100644
--- a/examples/example-exemplars-tail-sampling/docker-compose.yaml
+++ b/examples/example-exemplars-tail-sampling/docker-compose.yaml
@@ -59,7 +59,7 @@ services:
command:
- --config.file=/config.yaml
grafana:
- image: grafana/grafana:13.1.2@sha256:d177053ab62253815f130d81504f77063baf5fd4ca93299d6048453bd31e047a
+ image: grafana/grafana:13.1.3@sha256:ab5cb380e3ff3172d6c8bd2e7cfd31cce977d2881b260e1f5bc089bf0b759b43
network_mode: host
ports:
- "3000:3000"
diff --git a/examples/example-native-histogram/docker-compose.yaml b/examples/example-native-histogram/docker-compose.yaml
index dac46e4b89..34eb302581 100644
--- a/examples/example-native-histogram/docker-compose.yaml
+++ b/examples/example-native-histogram/docker-compose.yaml
@@ -18,7 +18,7 @@ services:
- --enable-feature=native-histograms
- --config.file=/prometheus.yml
grafana:
- image: grafana/grafana:13.1.2@sha256:d177053ab62253815f130d81504f77063baf5fd4ca93299d6048453bd31e047a
+ image: grafana/grafana:13.1.3@sha256:ab5cb380e3ff3172d6c8bd2e7cfd31cce977d2881b260e1f5bc089bf0b759b43
network_mode: host
volumes:
- ./docker-compose/grafana-datasources.yaml:/etc/grafana/provisioning/datasources/grafana-datasources.yaml
From ee5f8e9e355c2ae01d857b28623ac45af6338cd1 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Mon, 10 Aug 2026 14:10:32 -0400
Subject: [PATCH 053/255] chore(deps): update dependency
grafana/docker-otel-lgtm to v0.30.1 (#2373)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This PR contains the following updates:
| Package | Update | Change |
|---|---|---|
|
[grafana/docker-otel-lgtm](https://redirect.github.com/grafana/docker-otel-lgtm)
| patch | `0.30.0` → `0.30.1` |
---
### Release Notes
grafana/docker-otel-lgtm (grafana/docker-otel-lgtm)
###
[`v0.30.1`](https://redirect.github.com/grafana/docker-otel-lgtm/releases/tag/v0.30.1)
[Compare
Source](https://redirect.github.com/grafana/docker-otel-lgtm/compare/v0.30.0...v0.30.1)
#### What's Changed
##### OpenTelemetry & LGTM
- chore(deps): update dependency prometheus to v3.13.2 by
[@renovate-sh-app](https://redirect.github.com/renovate-sh-app)\[bot]
in
[#1678](https://redirect.github.com/grafana/docker-otel-lgtm/pull/1678)
##### Other Changes
- Update renovate config by
[@martincostello](https://redirect.github.com/martincostello) in
[#1668](https://redirect.github.com/grafana/docker-otel-lgtm/pull/1668)
- Add renovate schedule by
[@martincostello](https://redirect.github.com/martincostello) in
[#1683](https://redirect.github.com/grafana/docker-otel-lgtm/pull/1683)
**Full Changelog**:
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/prometheus/client_java).
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
mise.toml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/mise.toml b/mise.toml
index 5993e544b6..7d4966db16 100644
--- a/mise.toml
+++ b/mise.toml
@@ -27,7 +27,7 @@ zizmor = "1.28.0"
[env]
FLINT_CONFIG_DIR = ".github/config"
# renovate: datasource=github-releases depName=grafana/docker-otel-lgtm
-LGTM_VERSION = "0.30.0"
+LGTM_VERSION = "0.30.1"
# Latest JMX Exporter release; used as the default ref for the compatibility job.
# renovate: datasource=github-tags depName=prometheus/jmx_exporter versioning=semver-coerced
DEFAULT_JMX_EXPORTER_VERSION = "v1.6.0"
From d1ade5280bdc613d3c7fc5f231ead1e2dca9882e Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Mon, 10 Aug 2026 14:10:46 -0400
Subject: [PATCH 054/255] fix(deps): update junit-framework monorepo to v6.1.3
(#2374)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This PR contains the following updates:
| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
| [org.junit:junit-bom](https://junit.org/)
([source](https://redirect.github.com/junit-team/junit-framework)) |
`6.1.2` → `6.1.3` |

|

|
| [org.junit.jupiter:junit-jupiter-params](https://junit.org/)
([source](https://redirect.github.com/junit-team/junit-framework)) |
`6.1.2` → `6.1.3` |

|

|
| [org.junit.jupiter:junit-jupiter](https://junit.org/)
([source](https://redirect.github.com/junit-team/junit-framework)) |
`6.1.2` → `6.1.3` |

|

|
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about these
updates again.
---
- [ ] If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/prometheus/client_java).
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
integration-tests/it-spring-boot-smoke-test/pom.xml | 2 +-
pom.xml | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/integration-tests/it-spring-boot-smoke-test/pom.xml b/integration-tests/it-spring-boot-smoke-test/pom.xml
index 7261a024f0..e27ae713e8 100644
--- a/integration-tests/it-spring-boot-smoke-test/pom.xml
+++ b/integration-tests/it-spring-boot-smoke-test/pom.xml
@@ -20,7 +20,7 @@
25
- 6.1.2
+ 6.1.3
diff --git a/pom.xml b/pom.xml
index 32e30634c1..2ba361bb1b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -25,7 +25,7 @@
2.3.04.3.03.13.2
- 6.1.2
+ 6.1.32.30.0-alpha825
From 90f99d635109472d8ccca304f044f93a1b0f1436 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Mon, 10 Aug 2026 14:11:11 -0400
Subject: [PATCH 055/255] chore(deps): update grafana/k6 docker digest to
5221b62 (#2377)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This PR contains the following updates:
| Package | Update | Change |
|---|---|---|
| grafana/k6 | digest | `e7eeddf` → `5221b62` |
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/prometheus/client_java).
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
examples/example-exemplars-tail-sampling/docker-compose.yaml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/examples/example-exemplars-tail-sampling/docker-compose.yaml b/examples/example-exemplars-tail-sampling/docker-compose.yaml
index f2ab03ee74..fd2b26a556 100644
--- a/examples/example-exemplars-tail-sampling/docker-compose.yaml
+++ b/examples/example-exemplars-tail-sampling/docker-compose.yaml
@@ -68,7 +68,7 @@ services:
- ./config/grafana-dashboards.yaml:/etc/grafana/provisioning/dashboards/grafana-dashboards.yaml
- ./config/grafana-example-dashboard.json:/etc/grafana/example-dashboard.json
k6:
- image: grafana/k6@sha256:e7eeddf1ce2361df6920d925297f487c0ba549c44be242c6a9c22f28d9b08efa
+ image: grafana/k6@sha256:5221b620a4f874faff6e32ba597aa667c058391fe4898b1c6f6377f062c6cdec
network_mode: host
volumes:
- ./config/k6-script.js:/k6-script.js
From 2ea6cd1bd796a87603cc3abcfff57b4dd51450ae Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Mon, 17 Aug 2026 10:55:18 +0200
Subject: [PATCH 056/255] chore(deps): update github/codeql-action action to
v4.37.7 (#2381)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
|
[github/codeql-action](https://redirect.github.com/github/codeql-action)
| action | patch | `v4.37.6` → `v4.37.7` |
---
### Release Notes
github/codeql-action (github/codeql-action)
###
[`v4.37.7`](https://redirect.github.com/github/codeql-action/releases/tag/v4.37.7)
[Compare
Source](https://redirect.github.com/github/codeql-action/compare/v4.37.6...v4.37.7)
- Update default CodeQL bundle version to
[2.26.3](https://redirect.github.com/github/codeql-action/releases/tag/codeql-bundle-v2.26.3).
[#4085](https://redirect.github.com/github/codeql-action/pull/4085)
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/prometheus/client_java).
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
.github/workflows/codeql.yml | 4 ++--
.github/workflows/scorecard.yml | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml
index 0c75b31fd9..b9ae9d3cef 100644
--- a/.github/workflows/codeql.yml
+++ b/.github/workflows/codeql.yml
@@ -37,7 +37,7 @@ jobs:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-codeql-${{ hashFiles('**/pom.xml') }}
- name: Initialize CodeQL
- uses: github/codeql-action/init@5595ccaf912efad79be6eef63a5619ff05969be3 # v4.37.6
+ uses: github/codeql-action/init@ff2f1c621b7f889edc0d3c761ac2e6a3f8cdb0dd # v4.37.7
with:
languages: java
tools: linked
@@ -56,6 +56,6 @@ jobs:
-Djavadoc.skip=true
- name: Perform CodeQL Analysis
- uses: github/codeql-action/analyze@5595ccaf912efad79be6eef63a5619ff05969be3 # v4.37.6
+ uses: github/codeql-action/analyze@ff2f1c621b7f889edc0d3c761ac2e6a3f8cdb0dd # v4.37.7
with:
category: /language:java
diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml
index 95e2597d28..290d3c9da2 100644
--- a/.github/workflows/scorecard.yml
+++ b/.github/workflows/scorecard.yml
@@ -41,6 +41,6 @@ jobs:
retention-days: 5
- name: Upload to code scanning
- uses: github/codeql-action/upload-sarif@5595ccaf912efad79be6eef63a5619ff05969be3 # v4.37.6
+ uses: github/codeql-action/upload-sarif@ff2f1c621b7f889edc0d3c761ac2e6a3f8cdb0dd # v4.37.7
with:
sarif_file: results.sarif
From 16a5599c3c75662cddc7e20276ef83a4601c9388 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Mon, 17 Aug 2026 10:55:35 +0200
Subject: [PATCH 057/255] chore(deps): update zeitlinger/micrometer digest to
00c7e14 (#2351)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This PR contains the following updates:
| Package | Update | Change |
|---|---|---|
| zeitlinger/micrometer | digest | `8f90b70` → `f240f09` |
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/prometheus/client_java).
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
.github/workflows/micrometer-compatibility.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/micrometer-compatibility.yml b/.github/workflows/micrometer-compatibility.yml
index 5937d63441..e4212cb721 100644
--- a/.github/workflows/micrometer-compatibility.yml
+++ b/.github/workflows/micrometer-compatibility.yml
@@ -25,7 +25,7 @@ jobs:
# Follow-up: https://github.com/prometheus/client_java/issues/2182
repository: zeitlinger/micrometer
# renovate: datasource=git-refs depName=zeitlinger/micrometer packageName=https://github.com/zeitlinger/micrometer currentValue=feat/prom-client-java-typed-family-descriptor
- ref: 8f90b70807f5a063c592e3b17ef3b908be894086
+ ref: f240f0978366378dae66ac005ea1d2ef65708ff3
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
From 915815fd786fc082ae1104309287262513736be8 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Mon, 17 Aug 2026 10:55:54 +0200
Subject: [PATCH 058/255] chore(deps): lock file maintenance (#2376)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This PR contains the following updates:
| Update | Change |
|---|---|
| lockFileMaintenance | All locks refreshed |
🔧 This Pull Request updates lock files to use the latest dependency
versions.
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- Between 12:00 AM and 03:59 AM, only on Monday (`* 0-3 * * 1`)
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config
help](https://redirect.github.com/renovatebot/renovate/discussions) if
that's undesired.
---
- [ ] If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/prometheus/client_java).
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
mise.lock | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/mise.lock b/mise.lock
index 8dfeeceecd..04bc998078 100644
--- a/mise.lock
+++ b/mise.lock
@@ -494,9 +494,8 @@ checksum = "sha256:d28c8a5bf0a808f0ed434a1dce8c54ae98f0371c0bd86ac58abc613f73e66
url = "https://nodejs.org/dist/v24.19.0/node-v24.19.0-linux-arm64.tar.gz"
[tools.node."platforms.linux-arm64-musl"]
-checksum = "sha256:16fe258006a6e86844fbe05b3b5e1e5623ca8d3da54e32d98d9e83234bf25b01"
-url = "https://nodejs.org/dist/v24.19.0/node-v24.19.0.tar.gz"
-install = "source"
+checksum = "sha256:20824e4d35948fae5b337dccef47813b04d8995312f59df7386f2256d9f9ab7e"
+url = "https://unofficial-builds.nodejs.org/download/release/v24.19.0/node-v24.19.0-linux-arm64-musl.tar.gz"
[tools.node."platforms.linux-x64"]
checksum = "sha256:f625d97cd707df4ff96254916fbc5ff014f09c09effe5a1e0ca8f6d41a8789d4"
From c5dd9e3d12b587194a84b8115b007514a8e2c116 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Mon, 17 Aug 2026 10:56:12 +0200
Subject: [PATCH 059/255] chore(deps): update dependency
grafana/docker-otel-lgtm to v0.30.2 (#2383)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This PR contains the following updates:
| Package | Update | Change |
|---|---|---|
|
[grafana/docker-otel-lgtm](https://redirect.github.com/grafana/docker-otel-lgtm)
| patch | `0.30.1` → `0.30.2` |
---
### Release Notes
grafana/docker-otel-lgtm (grafana/docker-otel-lgtm)
###
[`v0.30.2`](https://redirect.github.com/grafana/docker-otel-lgtm/releases/tag/v0.30.2)
[Compare
Source](https://redirect.github.com/grafana/docker-otel-lgtm/compare/v0.30.1...v0.30.2)
#### What's Changed
##### OpenTelemetry & LGTM
- chore(deps): update dependency grafana to v13.1.2 by
[@renovate-sh-app](https://redirect.github.com/renovate-sh-app)\[bot]
in
[#1706](https://redirect.github.com/grafana/docker-otel-lgtm/pull/1706)
- chore(deps): update dependency grafana to v13.1.3 by
[@renovate-sh-app](https://redirect.github.com/renovate-sh-app)\[bot]
in
[#1717](https://redirect.github.com/grafana/docker-otel-lgtm/pull/1717)
- chore(deps): update dependency pyroscope to v2.2.1 by
[@renovate-sh-app](https://redirect.github.com/renovate-sh-app)\[bot]
in
[#1719](https://redirect.github.com/grafana/docker-otel-lgtm/pull/1719)
- chore(deps): update dependency loki to v3.7.6 by
[@renovate-sh-app](https://redirect.github.com/renovate-sh-app)\[bot]
in
[#1718](https://redirect.github.com/grafana/docker-otel-lgtm/pull/1718)
**Full Changelog**:
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/prometheus/client_java).
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
mise.toml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/mise.toml b/mise.toml
index 7d4966db16..bbe142c3ee 100644
--- a/mise.toml
+++ b/mise.toml
@@ -27,7 +27,7 @@ zizmor = "1.28.0"
[env]
FLINT_CONFIG_DIR = ".github/config"
# renovate: datasource=github-releases depName=grafana/docker-otel-lgtm
-LGTM_VERSION = "0.30.1"
+LGTM_VERSION = "0.30.2"
# Latest JMX Exporter release; used as the default ref for the compatibility job.
# renovate: datasource=github-tags depName=prometheus/jmx_exporter versioning=semver-coerced
DEFAULT_JMX_EXPORTER_VERSION = "v1.6.0"
From c1fb8c739f4a1aefff6ea0a23da6b89486e58293 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Mon, 17 Aug 2026 10:56:20 +0200
Subject: [PATCH 060/255] chore(deps): update eclipse-temurin:25.0.3_9-jre
docker digest to a214efa (#2379)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [eclipse-temurin](https://hub.docker.com/_/eclipse-temurin)
([source](https://redirect.github.com/adoptium/containers)) | final |
digest | `f19dbf0` → `a214efa` |
| [eclipse-temurin](https://hub.docker.com/_/eclipse-temurin)
([source](https://redirect.github.com/adoptium/containers)) | | digest |
`f19dbf0` → `a214efa` |
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about these
updates again.
---
- [ ] If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/prometheus/client_java).
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
examples/example-custom-buckets/docker-compose.yaml | 2 +-
.../example-exporter-opentelemetry/oats-tests/agent/Dockerfile | 2 +-
.../example-exporter-opentelemetry/oats-tests/http/Dockerfile | 2 +-
examples/example-native-histogram/docker-compose.yaml | 2 +-
4 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/examples/example-custom-buckets/docker-compose.yaml b/examples/example-custom-buckets/docker-compose.yaml
index 3791006503..0d105b2a1f 100644
--- a/examples/example-custom-buckets/docker-compose.yaml
+++ b/examples/example-custom-buckets/docker-compose.yaml
@@ -1,7 +1,7 @@
version: "3"
services:
example-application:
- image: eclipse-temurin:25.0.3_9-jre@sha256:f19dbf0a22d0b3658fda48ce7d7181df05ad14bda151dd5ad12cc09d1451c70e
+ image: eclipse-temurin:25.0.3_9-jre@sha256:a214efa3200af4b657e41935799aa12d7aee3336fdb42eb505a0948f6ecdd983
network_mode: host
volumes:
- ./target/example-custom-buckets.jar:/example-custom-buckets.jar
diff --git a/examples/example-exporter-opentelemetry/oats-tests/agent/Dockerfile b/examples/example-exporter-opentelemetry/oats-tests/agent/Dockerfile
index 4fdc0e09cf..352c5914bd 100644
--- a/examples/example-exporter-opentelemetry/oats-tests/agent/Dockerfile
+++ b/examples/example-exporter-opentelemetry/oats-tests/agent/Dockerfile
@@ -1,4 +1,4 @@
-FROM eclipse-temurin:25.0.3_9-jre@sha256:f19dbf0a22d0b3658fda48ce7d7181df05ad14bda151dd5ad12cc09d1451c70e
+FROM eclipse-temurin:25.0.3_9-jre@sha256:a214efa3200af4b657e41935799aa12d7aee3336fdb42eb505a0948f6ecdd983
COPY target/example-exporter-opentelemetry.jar ./app.jar
# check that the resource attributes from the agent are used, epsecially the service.instance.id should be the same
diff --git a/examples/example-exporter-opentelemetry/oats-tests/http/Dockerfile b/examples/example-exporter-opentelemetry/oats-tests/http/Dockerfile
index 26ab27cf81..9a9419fa0a 100644
--- a/examples/example-exporter-opentelemetry/oats-tests/http/Dockerfile
+++ b/examples/example-exporter-opentelemetry/oats-tests/http/Dockerfile
@@ -1,4 +1,4 @@
-FROM eclipse-temurin:25.0.3_9-jre@sha256:f19dbf0a22d0b3658fda48ce7d7181df05ad14bda151dd5ad12cc09d1451c70e
+FROM eclipse-temurin:25.0.3_9-jre@sha256:a214efa3200af4b657e41935799aa12d7aee3336fdb42eb505a0948f6ecdd983
COPY target/example-exporter-opentelemetry.jar ./app.jar
diff --git a/examples/example-native-histogram/docker-compose.yaml b/examples/example-native-histogram/docker-compose.yaml
index 34eb302581..1847fe75f7 100644
--- a/examples/example-native-histogram/docker-compose.yaml
+++ b/examples/example-native-histogram/docker-compose.yaml
@@ -1,7 +1,7 @@
version: "3"
services:
example-application:
- image: eclipse-temurin:25.0.3_9-jre@sha256:f19dbf0a22d0b3658fda48ce7d7181df05ad14bda151dd5ad12cc09d1451c70e
+ image: eclipse-temurin:25.0.3_9-jre@sha256:a214efa3200af4b657e41935799aa12d7aee3336fdb42eb505a0948f6ecdd983
network_mode: host
volumes:
- ./target/example-native-histogram.jar:/example-native-histogram.jar
From 715c293a91a4bdce8fe03c78ae5e8773779aef1f Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Mon, 17 Aug 2026 10:56:32 +0200
Subject: [PATCH 061/255] chore(deps): update jdx/mise-action action to v4.2.5
(#2380)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [jdx/mise-action](https://redirect.github.com/jdx/mise-action) |
action | patch | `v4.2.4` → `v4.2.5` |
---
### Release Notes
jdx/mise-action (jdx/mise-action)
###
[`v4.2.5`](https://redirect.github.com/jdx/mise-action/releases/tag/v4.2.5):
: Resilient mise downloads with automatic retries
[Compare
Source](https://redirect.github.com/jdx/mise-action/compare/v4.2.4...v4.2.5)
A small patch release that makes setup more resilient to transient
network failures when downloading mise.
##### Fixed
##### Retry mise downloads after transient failures
([#597](https://redirect.github.com/jdx/mise-action/pull/597) by
[@jdx](https://redirect.github.com/jdx))
The download helpers previously made a single `curl` or `wget` attempt,
so a transient GitHub release-asset HTTP or TLS failure would abort
setup before mise or any user command could run (see
[#596](https://redirect.github.com/jdx/mise-action/issues/596)).
Downloads now run through a retry wrapper that makes up to five attempts
with a 2s pause between failures, logging a warning on each retry. This
applies consistently to binary, checksum, signature, and version
fetches. Checksum and minisign verification still run only after a
successful download — never inside the retry loop — so integrity
guarantees are unchanged.
**Full Changelog**:
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/prometheus/client_java).
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
.github/workflows/acceptance-tests.yml | 2 +-
.github/workflows/api-diff.yml | 2 +-
.github/workflows/build.yml | 2 +-
.github/workflows/bump-api-diff-baseline.yml | 2 +-
.github/workflows/generate-protobuf.yml | 2 +-
.github/workflows/github-pages.yaml | 2 +-
.github/workflows/java-version-matrix-tests.yml | 2 +-
.github/workflows/jmx-exporter-compatibility.yml | 2 +-
.github/workflows/lint.yml | 2 +-
.github/workflows/micrometer-compatibility.yml | 2 +-
.github/workflows/native-tests.yml | 2 +-
.github/workflows/nightly-benchmarks.yml | 2 +-
.github/workflows/pr-benchmarks.yml | 2 +-
.github/workflows/regenerate-api-diff-otel.yml | 2 +-
.github/workflows/release.yml | 2 +-
.github/workflows/test-release-build.yml | 2 +-
16 files changed, 16 insertions(+), 16 deletions(-)
diff --git a/.github/workflows/acceptance-tests.yml b/.github/workflows/acceptance-tests.yml
index 420d8fba91..a953bc4e14 100644
--- a/.github/workflows/acceptance-tests.yml
+++ b/.github/workflows/acceptance-tests.yml
@@ -13,7 +13,7 @@ jobs:
with:
persist-credentials: false
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
- - uses: jdx/mise-action@7e36c90d9ab29c415a2384db3006f3ec8a8cc654 # v4.2.4
+ - uses: jdx/mise-action@3c2e0cf82a5b2e5249f0d3635a4d83d0ae861518 # v4.2.5
with:
version: v2026.7.5
sha256: 5f7ab76afdf0780d12edeaa67e908094e9ccf7924cfe203e415c1cfb87bbf778
diff --git a/.github/workflows/api-diff.yml b/.github/workflows/api-diff.yml
index 97171dd80c..f500b10de9 100644
--- a/.github/workflows/api-diff.yml
+++ b/.github/workflows/api-diff.yml
@@ -32,7 +32,7 @@ jobs:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
with:
persist-credentials: false
- - uses: jdx/mise-action@7e36c90d9ab29c415a2384db3006f3ec8a8cc654 # v4.2.4
+ - uses: jdx/mise-action@3c2e0cf82a5b2e5249f0d3635a4d83d0ae861518 # v4.2.5
with:
version: v2026.7.5
sha256: 5f7ab76afdf0780d12edeaa67e908094e9ccf7924cfe203e415c1cfb87bbf778
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 7877d56d39..8d1095b921 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -12,7 +12,7 @@ jobs:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
with:
persist-credentials: false
- - uses: jdx/mise-action@7e36c90d9ab29c415a2384db3006f3ec8a8cc654 # v4.2.4
+ - uses: jdx/mise-action@3c2e0cf82a5b2e5249f0d3635a4d83d0ae861518 # v4.2.5
with:
version: v2026.7.5
sha256: 5f7ab76afdf0780d12edeaa67e908094e9ccf7924cfe203e415c1cfb87bbf778
diff --git a/.github/workflows/bump-api-diff-baseline.yml b/.github/workflows/bump-api-diff-baseline.yml
index 20623b920b..e2ef4a5ce2 100644
--- a/.github/workflows/bump-api-diff-baseline.yml
+++ b/.github/workflows/bump-api-diff-baseline.yml
@@ -33,7 +33,7 @@ jobs:
with:
ref: ${{ env.SNAPSHOT_BRANCH }}
persist-credentials: true
- - uses: jdx/mise-action@7e36c90d9ab29c415a2384db3006f3ec8a8cc654 # v4.2.4
+ - uses: jdx/mise-action@3c2e0cf82a5b2e5249f0d3635a4d83d0ae861518 # v4.2.5
with:
version: v2026.7.5
sha256: 5f7ab76afdf0780d12edeaa67e908094e9ccf7924cfe203e415c1cfb87bbf778
diff --git a/.github/workflows/generate-protobuf.yml b/.github/workflows/generate-protobuf.yml
index dc9d2f1338..454c8fb8b7 100644
--- a/.github/workflows/generate-protobuf.yml
+++ b/.github/workflows/generate-protobuf.yml
@@ -18,7 +18,7 @@ jobs:
with:
ref: ${{ github.ref }}
persist-credentials: false
- - uses: jdx/mise-action@7e36c90d9ab29c415a2384db3006f3ec8a8cc654 # v4.2.4
+ - uses: jdx/mise-action@3c2e0cf82a5b2e5249f0d3635a4d83d0ae861518 # v4.2.5
with:
version: v2026.7.5
sha256: 5f7ab76afdf0780d12edeaa67e908094e9ccf7924cfe203e415c1cfb87bbf778
diff --git a/.github/workflows/github-pages.yaml b/.github/workflows/github-pages.yaml
index a03b031333..7ec9d887cb 100644
--- a/.github/workflows/github-pages.yaml
+++ b/.github/workflows/github-pages.yaml
@@ -37,7 +37,7 @@ jobs:
persist-credentials: false
fetch-tags: "true"
fetch-depth: 0
- - uses: jdx/mise-action@7e36c90d9ab29c415a2384db3006f3ec8a8cc654 # v4.2.4
+ - uses: jdx/mise-action@3c2e0cf82a5b2e5249f0d3635a4d83d0ae861518 # v4.2.5
with:
version: v2026.7.5
sha256: 5f7ab76afdf0780d12edeaa67e908094e9ccf7924cfe203e415c1cfb87bbf778
diff --git a/.github/workflows/java-version-matrix-tests.yml b/.github/workflows/java-version-matrix-tests.yml
index f3ea4a47d7..03a9c8a256 100644
--- a/.github/workflows/java-version-matrix-tests.yml
+++ b/.github/workflows/java-version-matrix-tests.yml
@@ -31,7 +31,7 @@ jobs:
persist-credentials: false
- name: Set up mise
- uses: jdx/mise-action@7e36c90d9ab29c415a2384db3006f3ec8a8cc654 # v4.2.4
+ uses: jdx/mise-action@3c2e0cf82a5b2e5249f0d3635a4d83d0ae861518 # v4.2.5
with:
version: v2026.7.5
sha256: 5f7ab76afdf0780d12edeaa67e908094e9ccf7924cfe203e415c1cfb87bbf778
diff --git a/.github/workflows/jmx-exporter-compatibility.yml b/.github/workflows/jmx-exporter-compatibility.yml
index 3f165a0a60..68b429e5b0 100644
--- a/.github/workflows/jmx-exporter-compatibility.yml
+++ b/.github/workflows/jmx-exporter-compatibility.yml
@@ -22,7 +22,7 @@ jobs:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
with:
persist-credentials: false
- - uses: jdx/mise-action@7e36c90d9ab29c415a2384db3006f3ec8a8cc654 # v4.2.4
+ - uses: jdx/mise-action@3c2e0cf82a5b2e5249f0d3635a4d83d0ae861518 # v4.2.5
with:
version: v2026.7.5
sha256: 5f7ab76afdf0780d12edeaa67e908094e9ccf7924cfe203e415c1cfb87bbf778
diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml
index 1d5a8e1d8b..ae22d56b5e 100644
--- a/.github/workflows/lint.yml
+++ b/.github/workflows/lint.yml
@@ -21,7 +21,7 @@ jobs:
fetch-depth: 0 # needed for git diff --merge-base in lint:links
- name: Setup mise
- uses: jdx/mise-action@7e36c90d9ab29c415a2384db3006f3ec8a8cc654 # v4.2.4
+ uses: jdx/mise-action@3c2e0cf82a5b2e5249f0d3635a4d83d0ae861518 # v4.2.5
with:
version: v2026.7.5
sha256: 5f7ab76afdf0780d12edeaa67e908094e9ccf7924cfe203e415c1cfb87bbf778
diff --git a/.github/workflows/micrometer-compatibility.yml b/.github/workflows/micrometer-compatibility.yml
index e4212cb721..53a3ec1afa 100644
--- a/.github/workflows/micrometer-compatibility.yml
+++ b/.github/workflows/micrometer-compatibility.yml
@@ -30,7 +30,7 @@ jobs:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false
- - uses: jdx/mise-action@7e36c90d9ab29c415a2384db3006f3ec8a8cc654 # v4.2.4
+ - uses: jdx/mise-action@3c2e0cf82a5b2e5249f0d3635a4d83d0ae861518 # v4.2.5
with:
version: v2026.7.5
sha256: 5f7ab76afdf0780d12edeaa67e908094e9ccf7924cfe203e415c1cfb87bbf778
diff --git a/.github/workflows/native-tests.yml b/.github/workflows/native-tests.yml
index 47b646358f..689d1affbd 100644
--- a/.github/workflows/native-tests.yml
+++ b/.github/workflows/native-tests.yml
@@ -13,7 +13,7 @@ jobs:
with:
persist-credentials: false
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
- - uses: jdx/mise-action@7e36c90d9ab29c415a2384db3006f3ec8a8cc654 # v4.2.4
+ - uses: jdx/mise-action@3c2e0cf82a5b2e5249f0d3635a4d83d0ae861518 # v4.2.5
with:
version: v2026.7.5
sha256: 5f7ab76afdf0780d12edeaa67e908094e9ccf7924cfe203e415c1cfb87bbf778
diff --git a/.github/workflows/nightly-benchmarks.yml b/.github/workflows/nightly-benchmarks.yml
index f5b9493d8d..87ddcddef6 100644
--- a/.github/workflows/nightly-benchmarks.yml
+++ b/.github/workflows/nightly-benchmarks.yml
@@ -34,7 +34,7 @@ jobs:
fetch-depth: 0
- name: Setup mise
- uses: jdx/mise-action@7e36c90d9ab29c415a2384db3006f3ec8a8cc654 # v4.2.4
+ uses: jdx/mise-action@3c2e0cf82a5b2e5249f0d3635a4d83d0ae861518 # v4.2.5
with:
version: v2026.7.5
sha256: 5f7ab76afdf0780d12edeaa67e908094e9ccf7924cfe203e415c1cfb87bbf778
diff --git a/.github/workflows/pr-benchmarks.yml b/.github/workflows/pr-benchmarks.yml
index ad89cc3584..baabd784de 100644
--- a/.github/workflows/pr-benchmarks.yml
+++ b/.github/workflows/pr-benchmarks.yml
@@ -45,7 +45,7 @@ jobs:
fetch-depth: 0
- name: Setup mise
- uses: jdx/mise-action@7e36c90d9ab29c415a2384db3006f3ec8a8cc654 # v4.2.4
+ uses: jdx/mise-action@3c2e0cf82a5b2e5249f0d3635a4d83d0ae861518 # v4.2.5
with:
version: v2026.7.5
sha256: 5f7ab76afdf0780d12edeaa67e908094e9ccf7924cfe203e415c1cfb87bbf778
diff --git a/.github/workflows/regenerate-api-diff-otel.yml b/.github/workflows/regenerate-api-diff-otel.yml
index 0d5abef268..8fe5408c75 100644
--- a/.github/workflows/regenerate-api-diff-otel.yml
+++ b/.github/workflows/regenerate-api-diff-otel.yml
@@ -18,7 +18,7 @@ jobs:
with:
ref: ${{ github.ref }}
persist-credentials: false
- - uses: jdx/mise-action@7e36c90d9ab29c415a2384db3006f3ec8a8cc654 # v4.2.4
+ - uses: jdx/mise-action@3c2e0cf82a5b2e5249f0d3635a4d83d0ae861518 # v4.2.5
with:
version: v2026.7.5
sha256: 5f7ab76afdf0780d12edeaa67e908094e9ccf7924cfe203e415c1cfb87bbf778
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index 9dbf33cd17..87f620f541 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -72,7 +72,7 @@ jobs:
ref: ${{ inputs.tag }}
persist-credentials: false
- - uses: jdx/mise-action@7e36c90d9ab29c415a2384db3006f3ec8a8cc654 # v4.2.4
+ - uses: jdx/mise-action@3c2e0cf82a5b2e5249f0d3635a4d83d0ae861518 # v4.2.5
with:
version: v2026.7.5
sha256: 5f7ab76afdf0780d12edeaa67e908094e9ccf7924cfe203e415c1cfb87bbf778
diff --git a/.github/workflows/test-release-build.yml b/.github/workflows/test-release-build.yml
index 09bae5b4d9..2181fbb81c 100644
--- a/.github/workflows/test-release-build.yml
+++ b/.github/workflows/test-release-build.yml
@@ -18,7 +18,7 @@ jobs:
persist-credentials: false
fetch-tags: "true"
fetch-depth: 0
- - uses: jdx/mise-action@7e36c90d9ab29c415a2384db3006f3ec8a8cc654 # v4.2.4
+ - uses: jdx/mise-action@3c2e0cf82a5b2e5249f0d3635a4d83d0ae861518 # v4.2.5
with:
version: v2026.7.5
sha256: 5f7ab76afdf0780d12edeaa67e908094e9ccf7924cfe203e415c1cfb87bbf778
From cc04b6e64b136e6ff39d906f99beed10ba961194 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Mon, 17 Aug 2026 10:56:50 +0200
Subject: [PATCH 062/255] chore(deps): update grafana/tempo docker tag to
v3.0.3 (#2382)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This PR contains the following updates:
| Package | Update | Change |
|---|---|---|
| grafana/tempo | patch | `3.0.2` → `3.0.3` |
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/prometheus/client_java).
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
examples/example-exemplars-tail-sampling/docker-compose.yaml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/examples/example-exemplars-tail-sampling/docker-compose.yaml b/examples/example-exemplars-tail-sampling/docker-compose.yaml
index fd2b26a556..eadc30f655 100644
--- a/examples/example-exemplars-tail-sampling/docker-compose.yaml
+++ b/examples/example-exemplars-tail-sampling/docker-compose.yaml
@@ -52,7 +52,7 @@ services:
- --enable-feature=native-histograms
- --config.file=/prometheus.yaml
tempo:
- image: grafana/tempo:3.0.2@sha256:cda87c212d8c584dc0b89e337e7ed648a5100feb657e5d528480ee4fa03dbbe3
+ image: grafana/tempo:3.0.3@sha256:0296560ac66f8a3600d7fb3014a52c189d4d9c3549ad6ff441bf2409855d68d5
network_mode: host
volumes:
- ./config/tempo-config.yaml:/config.yaml
From 57eaf5a2d577453e511df576d365928463c127de Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Mon, 17 Aug 2026 10:56:57 +0200
Subject: [PATCH 063/255] chore(deps): update linters (#2375)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
> ℹ️ **Note**
>
> This PR body was truncated due to platform limits.
This PR contains the following updates:
| Package | Type | Update | Change | Pending |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|---|---|---|
|
[aqua:jonwiggins/xmloxide](https://redirect.github.com/jonwiggins/xmloxide)
| tools | minor | `0.4.4` → `0.5.0` | |

|

|
| [biome](https://redirect.github.com/biomejs/biome) | tools | patch |
`2.5.5` → `2.5.8` | |

|

|
|
[editorconfig-checker](https://redirect.github.com/editorconfig-checker/editorconfig-checker)
| tools | minor | `3.8.0` → `3.11.1` | |

|

|
|
[google-java-format](https://redirect.github.com/google/google-java-format)
| tools | minor | `1.35.0` → `1.36.1` | |

|

|
| [npm:renovate](https://renovatebot.com)
([source](https://redirect.github.com/renovatebot/renovate)) | tools |
major | [`43.279.1` →
`44.29.4`](https://octochangelog.com/compare?repo=renovatebot%2Frenovate&from=43.279.1&to=44.29.4)
| `44.31.0` (+6) |

|

|
| [ruff](https://redirect.github.com/astral-sh/ruff) | tools | patch |
`0.16.0` → `0.16.3` | |

|

|
| [rumdl](https://redirect.github.com/rvben/rumdl) | tools | patch |
`v0.2.43` → `v0.2.55` | |

|

|
| [typos](https://redirect.github.com/crate-ci/typos) | tools | minor |
`1.48.0` → `1.49.0` | |

|

|
| [zizmor](https://redirect.github.com/zizmorcore/zizmor) | tools |
minor | `1.28.0` → `1.29.0` | |

|

|
---
### Release Notes
jonwiggins/xmloxide (aqua:jonwiggins/xmloxide)
###
[`v0.5.0`](https://redirect.github.com/jonwiggins/xmloxide/blob/HEAD/CHANGELOG.md#050---2026-08-08)
[Compare
Source](https://redirect.github.com/jonwiggins/xmloxide/compare/v0.4.4...v0.5.0)
##### Changed
- **XPath attribute results are first-class attribute nodes**
([#47](https://redirect.github.com/jonwiggins/xmloxide/issues/47)).
Node-sets (`XPathValue::NodeSet`) now hold `XPathNode` entries — either
a
tree node or an attribute identified by owner element and index —
instead
of bare `NodeId`s. This fixes a family of wrong-answer bugs rooted in
the
old one-value-per-element override map: `//a/@x != //a/@y` comparisons
no
longer clobber each other's values, `@*` yields one node per attribute
(previously only the first per element), `count((//a)[1]/@href)` returns
a
number instead of a type error,
`name()`/`local-name()`/`namespace-uri()`
work on attribute nodes, `@attr/..` navigates to the owner element,
predicates evaluate with the attribute as context node, and namespace
declarations (`xmlns`, `xmlns:*`) are no longer visible as attributes
per
the XPath 1.0 data model. Mixed node-sets (`//a | //a/@x`) sort in
document order with attributes directly after their owner element.
**Breaking:** code matching `XPathValue::NodeSet` must handle
`XPathNode`; use `.anchor()` for the owning tree node or
`.as_tree_node()` to filter attributes out. The single-match collapse
(attribute paths returning `XPathValue::String`) is gone — convert with
`string()` where a string is wanted. `xmllint --xpath` prints attribute
results as `name="value"` lines, matching libxml2. The C API keeps
`xmloxide_xpath_nodeset_item()` (returns the owner element id for
attributes) and adds `xmloxide_xpath_nodeset_item_is_attribute()`,
`..._attr_name()`, and `..._attr_value()`.
- **XPath step predicates apply per context node** per XPath 1.0 §2.4:
`//a/b[1]` now selects the first `b` of *every* `a` (previously the
first
of the merged set), and `position()`/`last()` in step predicates are
relative to each context node's own node-set, matching libxml2. The
parenthesized form `(//a/b)[1]` keeps global-position semantics.
- **Schematron rules with attribute contexts** (`context="//@id"`) now
fire
with the attribute itself as the context node — `.` is the attribute
value and `` reads it, per ISO Schematron.
Previously such rules either never fired (single match) or misfired
against the owner element.
##### Security
- **Fix exponential-time entity recursion check**
([#42](https://redirect.github.com/jonwiggins/xmloxide/issues/42),
thanks [@hey-jj](https://redirect.github.com/hey-jj)). The
WFC: No Recursion walks in the DTD validator re-visited entities once
per
path, so a 474-byte document with chained entity declarations took 8+
seconds to parse and a 694-byte one about 22 hours. The walks (including
parameter entities and ATTLIST-default validation) now memoize entities
proven acyclic, making the check linear in the size of the DTD. Cycle
detection is unaffected.
- **Bound element nesting across entity expansions.** Entity replacement
text
is parsed by nested sub-parsers, which now inherit the outer parser's
nesting depth so total element depth stays bounded by
`ParseOptions::max_depth` instead of `max_depth` per expansion level.
##### Fixed
- **General entity replacement text is parsed as content** per XML 1.0
§4.4
([#43](https://redirect.github.com/jonwiggins/xmloxide/issues/43),
thanks [@hey-jj](https://redirect.github.com/hey-jj)).
`EntityRef` nodes now carry their parsed expansion
as children: character references in declarations are expanded when
replacement text is built (§4.5), nested entity references are included,
and markup-bearing entities produce real element children instead of
escaped text — while serialization still emits `&name;`, keeping
round-trips lossless. Replacement text must match the content production
(§4.3.2); unbalanced or split tags are rejected. Entity expansion is
subject to the expansion counter, a nesting-depth cap, and the 5x
amplification guard, matching libxml2. DTD content-model validation sees
through entity references (§4.4.3), so entity-supplied elements are
validated too.
- **XPath `!=` uses its own existential semantics for node-sets** per
XPath
1.0 §3.4
([#44](https://redirect.github.com/jonwiggins/xmloxide/issues/44),
thanks [@hey-jj](https://redirect.github.com/hey-jj)). `!=` was
evaluated as `not(=)`, inverting
empty-node-set comparisons and breaking multi-node sets (both `=` and
`!=`
can hold at once). Node-set vs boolean keeps boolean-conversion
semantics;
scalar comparisons are unchanged. An absent attribute step now also
yields
an empty node-set (false under both `=` and `!=`) instead of an
empty-string sentinel.
- **XPath filter-path continuations navigate instead of filtering**
([#20](https://redirect.github.com/jonwiggins/xmloxide/issues/20),
thanks [@ancientcatz](https://redirect.github.com/ancientcatz)).
`(//a)[1]/@href` parsed to the same AST as
`(//a)[@href]`, so the trailing path acted as a predicate and
`string((//a)[1]/@href)` returned the anchor text. A new
`Expr::FilterPath` AST variant evaluates the continuation steps against
the filter's node-set. **Breaking:** downstream exhaustive matches on
`xpath::ast::Expr` must handle the new variant.
biomejs/biome (biome)
###
[`v2.5.8`](https://redirect.github.com/biomejs/biome/releases/tag/%40biomejs/biome%402.5.8):
Biome CLI v2.5.8
[Compare
Source](https://redirect.github.com/biomejs/biome/compare/@biomejs/biome@2.5.7...@biomejs/biome@2.5.8)
#### 2.5.8
##### Patch Changes
- [#10710](https://redirect.github.com/biomejs/biome/pull/10710)
[`0a0fbc1`](https://redirect.github.com/biomejs/biome/commit/0a0fbc15d67c410c80dfae398903f845544fcd65)
Thanks [@dyc3](https://redirect.github.com/dyc3)! - Added a new
nursery rule
[`useReactCompiler`](https://biomejs.dev/linter/rules/use-react-compiler/),
which reports diagnostics from React Compiler lint mode.
- [#11251](https://redirect.github.com/biomejs/biome/pull/11251)
[`ea9dd8a`](https://redirect.github.com/biomejs/biome/commit/ea9dd8a93e65f849840415e8e26cd668aa1af913)
Thanks [@dyc3](https://redirect.github.com/dyc3)! - Improved
performance of
[`noImportCycles`](https://biomejs.dev/linter/rules/no-import-cycles/).
- [#11247](https://redirect.github.com/biomejs/biome/pull/11247)
[`52b44d6`](https://redirect.github.com/biomejs/biome/commit/52b44d6795741d051bf703bd69c6cb447af8fd1d)
Thanks [@dyc3](https://redirect.github.com/dyc3)! - Added the
nursery rule
[`noSvelteLegacyConst`](https://biomejs.dev/linter/rules/no-svelte-legacy-const/),
which disallows legacy Svelte `{@const}` tags and recommends declaration
tags with `$derived()`.
Invalid:
```svelte
{#each boxes as box}
{@const area = box.width * box.height}
{area}
{/each}
```
Valid:
```svelte
{#each boxes as box}
{const area = $derived(box.width * box.height)}
{area}
{/each}
```
- [#11252](https://redirect.github.com/biomejs/biome/pull/11252)
[`d5f5704`](https://redirect.github.com/biomejs/biome/commit/d5f570414fdcdddf62372e35c05f6dababad9287)
Thanks [@Turtle-Hwan](https://redirect.github.com/Turtle-Hwan)! -
Fixed
[#11250](https://redirect.github.com/biomejs/biome/issues/11250):
[`useAwait`](https://biomejs.dev/linter/rules/use-await/) no longer
reports async functions that contain an `await using` declaration.
- [#11143](https://redirect.github.com/biomejs/biome/pull/11143)
[`6be7be1`](https://redirect.github.com/biomejs/biome/commit/6be7be1b147d7b4352ff5625a78bd54a48958950)
Thanks [@vznh](https://redirect.github.com/vznh)! - Fixed
[#11017](https://redirect.github.com/biomejs/biome/issues/11017):
[`noUselessUndefined`](https://biomejs.dev/linter/rules/no-useless-undefined/)
no longer reports `return undefined` when the enclosing function has a
return type annotation other than `undefined` or `void`.
- [#11234](https://redirect.github.com/biomejs/biome/pull/11234)
[`caefe39`](https://redirect.github.com/biomejs/biome/commit/caefe393c66340914c481f7ccfc82979cf76b61b)
Thanks [@subotac](https://redirect.github.com/subotac)! - Fixed
[#11228](https://redirect.github.com/biomejs/biome/issues/11228):
CSS block comments between a declaration colon and value now preserve
their source indentation.
```diff
:root {
--font-stack:
-/* comment */
+ /* comment */
system-ui;
}
```
- [#11285](https://redirect.github.com/biomejs/biome/pull/11285)
[`bca1f73`](https://redirect.github.com/biomejs/biome/commit/bca1f73d939423056337bfd0a42cbdcb66bb1e3f)
Thanks [@denbezrukov](https://redirect.github.com/denbezrukov)! -
Fixed
[#11280](https://redirect.github.com/biomejs/biome/issues/11280):
CSS formatting keeps comments inside functional pseudo-classes and
pseudo-elements instead of moving them before the function name.
```diff
-:/* comment */ where(div) {}
+:where(/* comment */ div) {}
```
- [#11080](https://redirect.github.com/biomejs/biome/pull/11080)
[`af16a0b`](https://redirect.github.com/biomejs/biome/commit/af16a0bf884c48bad2caab70e7930096e81e1c99)
Thanks [@dyc3](https://redirect.github.com/dyc3)! - HTML `style`
attribute values are now parsed as CSS. All Biome CSS lint rules are
applied to the `style` attributes.
- [#11195](https://redirect.github.com/biomejs/biome/pull/11195)
[`6a85588`](https://redirect.github.com/biomejs/biome/commit/6a85588578725195625281984a47c9a8563bf103)
Thanks [@dyc3](https://redirect.github.com/dyc3)! - Fixed Svelte
files failing to parse when an expression begins with an object literal.
Now the following snippet is correctly parsed:
```svelte
{{ a: true }}
```
- [#11173](https://redirect.github.com/biomejs/biome/pull/11173)
[`481d008`](https://redirect.github.com/biomejs/biome/commit/481d008f6e8872a78749496fbbf1f9c761d9a770)
Thanks [@Austin1serb](https://redirect.github.com/Austin1serb)! -
Fixed
[#10242](https://redirect.github.com/biomejs/biome/issues/10242):
JavaScript GritQL patterns with multiple metavariables now match
snippets consistently in WebAssembly.
- [#11187](https://redirect.github.com/biomejs/biome/pull/11187)
[`23c0369`](https://redirect.github.com/biomejs/biome/commit/23c0369c43b59284ca68c65883d6ede4228b6fb8)
Thanks [@ematipico](https://redirect.github.com/ematipico)! -
Added the nursery rule
[`noInvalidPropertyInitValue`](https://biomejs.dev/linter/rules/no-invalid-property-init-value/),
which reports an `@property` whose `initial-value` does not match its
`syntax` descriptor. For example, the following declaration triggers the
rule because `red` is not a ``:
```css
@property --size {
syntax: "";
inherits: false;
initial-value: red;
}
```
- [#11272](https://redirect.github.com/biomejs/biome/pull/11272)
[`73896e6`](https://redirect.github.com/biomejs/biome/commit/73896e6712ba4c398ba21141829f8361ace45eb2)
Thanks [@ematipico](https://redirect.github.com/ematipico)! -
Improved the diagnostic emitted by
[`noRootType`](https://biomejs.dev/linter/rules/no-root-type).
- [#11240](https://redirect.github.com/biomejs/biome/pull/11240)
[`bd0b68d`](https://redirect.github.com/biomejs/biome/commit/bd0b68d418890059930074b46273aa616fbb735a)
Thanks [@ematipico](https://redirect.github.com/ematipico)! -
Fixed
[#11223](https://redirect.github.com/biomejs/biome/issues/11223):
Improved the
performance of
[`noMisusedPromises`](https://biomejs.dev/linter/rules/no-misused-promises/)
when analyzing async class methods that call other methods through
`this`.
- [#11172](https://redirect.github.com/biomejs/biome/pull/11172)
[`4a0bc5c`](https://redirect.github.com/biomejs/biome/commit/4a0bc5c46e6dbbefd17fa133ea426aa41f0a23f8)
Thanks
[@saberoueslati](https://redirect.github.com/saberoueslati)! -
Fixed
[#10806](https://redirect.github.com/biomejs/biome/issues/10806):
[`noUselessFragments`](https://biomejs.dev/linter/rules/no-useless-fragments/)
no longer causes Biome to panic when its unsafe fix removes a fragment
used as a JSX attribute value.
- [#11227](https://redirect.github.com/biomejs/biome/pull/11227)
[`4d603b0`](https://redirect.github.com/biomejs/biome/commit/4d603b072fae45a69bd291ab92f3379232cd34df)
Thanks
[@saberoueslati](https://redirect.github.com/saberoueslati)! -
Fixed
[#11178](https://redirect.github.com/biomejs/biome/issues/11178):
[`noUndeclaredVariables`](https://biomejs.dev/linter/rules/no-undeclared-variables/)
no longer reports Vue's built-in instance properties, such as `$slots`
and `$attrs`, in template expressions or `$event` in inline
event-handler expressions. The instance properties are still reported
inside `}
```
- [#11440](https://redirect.github.com/biomejs/biome/pull/11440)
[`b88f1ea`](https://redirect.github.com/biomejs/biome/commit/b88f1ea368c727ff8ebeddcaf9448f6ddc7c4878)
Thanks [@Princesseuh](https://redirect.github.com/Princesseuh)! -
Added support for template literal attribute values inside an Astro
expression, such as ``{x && }``.
- [#11440](https://redirect.github.com/biomejs/biome/pull/11440)
[`b88f1ea`](https://redirect.github.com/biomejs/biome/commit/b88f1ea368c727ff8ebeddcaf9448f6ddc7c4878)
Thanks [@Princesseuh](https://redirect.github.com/Princesseuh)! -
Fixed unquoted attribute values being rejected inside an Astro
expression, such as `{x && go}`.
- [#11440](https://redirect.github.com/biomejs/biome/pull/11440)
[`b88f1ea`](https://redirect.github.com/biomejs/biome/commit/b88f1ea368c727ff8ebeddcaf9448f6ddc7c4878)
Thanks [@Princesseuh](https://redirect.github.com/Princesseuh)! -
Fixed a template literal nested inside `${}` breaking the rest of an
Astro file, such as ``const href = `/blog${page === 0 ? '' : `/${page +
1}`}`;``.
- [#11440](https://redirect.github.com/biomejs/biome/pull/11440)
[`b88f1ea`](https://redirect.github.com/biomejs/biome/commit/b88f1ea368c727ff8ebeddcaf9448f6ddc7c4878)
Thanks [@Princesseuh](https://redirect.github.com/Princesseuh)! -
Fixed a quote inside a regex character class breaking the rest of an
Astro file, such as `const unsafe = /[/"]/;`.
- [#11508](https://redirect.github.com/biomejs/biome/pull/11508)
[`54f3a2e`](https://redirect.github.com/biomejs/biome/commit/54f3a2ea2765c80df11d04e47cd8da0354f5f7ca)
Thanks [@dyc3](https://redirect.github.com/dyc3)! - Added the
nursery rule
[`useFlatMathMinMax`](https://biomejs.dev/linter/rules/use-flat-math-min-max/).
Because `Math.min()` and `Math.max()` accept any number of arguments,
the rule reports unnecessary nested calls to the same method:
```js
Math.max(Math.max(a, b), c);
```
The fix flattens this expression to `Math.max(a, b, c)`.
- [#11585](https://redirect.github.com/biomejs/biome/pull/11585)
[`c5c8315`](https://redirect.github.com/biomejs/biome/commit/c5c8315cc2174b52834513d4c01edd09341e46cd)
Thanks [@Netail](https://redirect.github.com/Netail)! - Fixed
[#11475](https://redirect.github.com/biomejs/biome/issues/11475):
`noUnresolvedImports` no longer reports Bun runtime built-in modules
(`bun`, `bun:bundle`, `bun:ffi`, `bun:jsc`, `bun:sqlite`, `bun:test`).
- [#11368](https://redirect.github.com/biomejs/biome/pull/11368)
[`52a57b3`](https://redirect.github.com/biomejs/biome/commit/52a57b374af947ffcba11f0dd97b3cb9676ce044)
Thanks [@Austin1serb](https://redirect.github.com/Austin1serb)! -
Fixed
[#6830](https://redirect.github.com/biomejs/biome/issues/6830):
Biome now reports a diagnostic for excessively deep syntax instead of
overflowing the native stack while releasing the parsed tree.
- [#11596](https://redirect.github.com/biomejs/biome/pull/11596)
[`1fc42ed`](https://redirect.github.com/biomejs/biome/commit/1fc42ed80a00e3ca86d44de8e1f66707061eb862)
Thanks [@dyc3](https://redirect.github.com/dyc3)! - Added the
nursery rule
[`noThisOutsideOfClass`](https://biomejs.dev/linter/rules/no-this-outside-of-class/).
The rule reports `this` outside class members and TypeScript functions
with an explicit `this` parameter.
```js
function Person(name) {
this.name = name;
}
```
- [#11555](https://redirect.github.com/biomejs/biome/pull/11555)
[`2516335`](https://redirect.github.com/biomejs/biome/commit/25163350c44aee821d3aeac5b20569cd37d1ae31)
Thanks [@dyc3](https://redirect.github.com/dyc3)! - Fixed
[#11529](https://redirect.github.com/biomejs/biome/issues/11529),
where
[`noFloatingPromises`](https://biomejs.dev/linter/rules/no-floating-promises/)
missed unhandled Promise chains when the imported function's module
belonged to an import cycle. Cyclic modules now preserve types for
exports that do not participate in recursive type dependencies.
- [#11518](https://redirect.github.com/biomejs/biome/pull/11518)
[`0fee70c`](https://redirect.github.com/biomejs/biome/commit/0fee70c6420140d62e9e9507ff3eda735077691b)
Thanks [@HarperZ9](https://redirect.github.com/HarperZ9)! - Fixed
[#11500](https://redirect.github.com/biomejs/biome/issues/11500):
the formatter now prints the `declare` modifier before accessibility
modifiers on class properties. `private declare readonly name: string`
is now formatted as `declare private readonly name: string`, matching
Prettier and TypeScript's canonical modifier order.
- [#11580](https://redirect.github.com/biomejs/biome/pull/11580)
[`1277af2`](https://redirect.github.com/biomejs/biome/commit/1277af285ff5ab2e7a4deb07b32855c9caa7b770)
Thanks [@ematipico](https://redirect.github.com/ematipico)! -
Fixed
[#5091](https://redirect.github.com/biomejs/biome/issues/5091):
Biome no longer moves comments next to the `<` of a generic, which
causes invalid TypeScript syntax:
```diff
- Generic/ a comment
+ Generic<
+ // a comment
```
- [#11577](https://redirect.github.com/biomejs/biome/pull/11577)
[`42995d2`](https://redirect.github.com/biomejs/biome/commit/42995d2d19a937c44e9abbd400901bc6ec0dcaf5)
Thanks [@ematipico](https://redirect.github.com/ematipico)! -
Fixed
[#4592](https://redirect.github.com/biomejs/biome/issues/4592).
Biome no longer crashes while parsing malformed `delete` expressions.
- [#11590](https://redirect.github.com/biomejs/biome/pull/11590)
[`67963b4`](https://redirect.github.com/biomejs/biome/commit/67963b4085558e414bc48bddb82618b7cc6d8fdf)
Thanks [@ematipico](https://redirect.github.com/ematipico)! -
Fixed
[#6427](https://redirect.github.com/biomejs/biome/issues/6427) so
Grit plugins can use `function = ...` as a node argument.
- [#11600](https://redirect.github.com/biomejs/biome/pull/11600)
[`a689cb5`](https://redirect.github.com/biomejs/biome/commit/a689cb5405885db94693e8ce39a22a53950cf2bf)
Thanks [@ematipico](https://redirect.github.com/ematipico)! -
Fixed
[#6644](https://redirect.github.com/biomejs/biome/issues/6644):
[`noUnusedVariables`](https://biomejs.dev/linter/rules/no-unused-variables/)
now recognizes all interface declarations in a TypeScript
declaration-merging group when the interface is referenced.
The following snippet no longer triggers the rule.
```ts
interface Things {
foo: string;
}
interface Things {
bar: string;
}
export type Key = keyof Things;
interface Things {
baz: string;
}
```
- [#11591](https://redirect.github.com/biomejs/biome/pull/11591)
[`d4a0716`](https://redirect.github.com/biomejs/biome/commit/d4a07167df43309f424dc906fc5d0dc80b5e208d)
Thanks [@ematipico](https://redirect.github.com/ematipico)! -
Fixed
[#6615](https://redirect.github.com/biomejs/biome/issues/6615).
[`noDuplicateProperties`](https://biomejs.dev/linter/rules/no-duplicate-properties/)
no longer reports declarations nested in block at-rules as duplicates of
declarations in their parent block.
- [#11492](https://redirect.github.com/biomejs/biome/pull/11492)
[`f2a07aa`](https://redirect.github.com/biomejs/biome/commit/f2a07aadedd47034dccffd941935c71481b4c354)
Thanks [@santichausis](https://redirect.github.com/santichausis)!
- Fixed
[#11454](https://redirect.github.com/biomejs/biome/issues/11454):
[`noMisplacedAssertion`](https://biomejs.dev/linter/rules/no-misplaced-assertion/)
now recognises `@fast-check/vitest`'s `test.prop(...)` (and
`.concurrent.prop`, `.skip.prop`, etc.) as a test function, the same way
it already recognises `test.each`. The JS formatter picks up the same
recognition, so a curried `test.prop(...)(...)` call is now formatted
with the regular breakable argument layout used for
`test.each`/`test.for`, instead of the single-line-hugging layout used
for plain `it`/`test` calls.
For example, Biome no longer reports the assertion below as misplaced:
```js
import { fc, test } from "@fast-check/vitest";
test.prop([fc.string()])("round-trips", (s) => {
expect(s).toBe(s);
});
```
- [#11589](https://redirect.github.com/biomejs/biome/pull/11589)
[`65742b3`](https://redirect.github.com/biomejs/biome/commit/65742b3658ab08aed31be6afdfbb4d8d5a737c47)
Thanks [@ematipico](https://redirect.github.com/ematipico)! -
Fixed
[#4928](https://redirect.github.com/biomejs/biome/issues/4928):
[`noUnusedVariables`](https://biomejs.dev/linter/rules/no-unused-variables/)
no longer reports a value declaration as unused when its merged
namespace is referenced.
- [#11559](https://redirect.github.com/biomejs/biome/pull/11559)
[`472dbc2`](https://redirect.github.com/biomejs/biome/commit/472dbc2c38ed1dbed6066fe26eac7ef97c79b05d)
Thanks [@levrik](https://redirect.github.com/levrik)! - Fixed a
false positive in
[`noVueDuplicateKeys`](https://biomejs.dev/linter/rules/no-vue-duplicate-keys/)
where a `
```
- [#11594](https://redirect.github.com/biomejs/biome/pull/11594)
[`6586ceb`](https://redirect.github.com/biomejs/biome/commit/6586cebec6182d37361ce42ca906ab190fd9a15b)
Thanks [@ematipico](https://redirect.github.com/ematipico)! -
Fixed
[#6640](https://redirect.github.com/biomejs/biome/issues/6640).
Biome no longer crashes when linting malformed `for...of` statements.
- [#11571](https://redirect.github.com/biomejs/biome/pull/11571)
[`85b197d`](https://redirect.github.com/biomejs/biome/commit/85b197da722fc8d07cd10b8fa7e1271652ed5e26)
Thanks [@ematipico](https://redirect.github.com/ematipico)! -
Fixed
[#10838](https://redirect.github.com/biomejs/biome/issues/10838):
[`useSortedAttributes`](https://biomejs.dev/assist/actions/use-sorted-attributes/)
no longer corrupts JSX attributes when nested JSX elements also require
sorting.
- [#11533](https://redirect.github.com/biomejs/biome/pull/11533)
[`97e76c0`](https://redirect.github.com/biomejs/biome/commit/97e76c04cf19de45e63a22a9954c5077f45d4e6c)
Thanks [@ematipico](https://redirect.github.com/ematipico)! -
Fixed
[#11520](https://redirect.github.com/biomejs/biome/issues/11520),
where the Biome scanner would start analysing dependencies multiple
times, leading to long and unresponsive sessions.
- [#11564](https://redirect.github.com/biomejs/biome/pull/11564)
[`18a0e1f`](https://redirect.github.com/biomejs/biome/commit/18a0e1f058df3c8434d98d700eef5949695cb8f6)
Thanks [@Netail](https://redirect.github.com/Netail)! - Fixed the
diagnostic range of
[`noInferrableTypes`](https://biomejs.dev/linter/rules/no-inferrable-types/)
so it now highlights only the type instead of including the leading `:`
colon, spaces and comments.
- [#11540](https://redirect.github.com/biomejs/biome/pull/11540)
[`124fdaa`](https://redirect.github.com/biomejs/biome/commit/124fdaa1dad40a1e5d485da13ca51064b0a40adb)
Thanks [@ematipico](https://redirect.github.com/ematipico)! -
Fixed
[`#11537`](https://redirect.github.com/biomejs/biome/issues/11537):
[`noShorthandPropertyOverrides`](https://biomejs.dev/linter/rules/no-shorthand-property-overrides/)
now compares declarations only within the same block. The rule no longer
reports `@supports` feature queries and correctly checks nested,
`@keyframes`, and `@page` blocks.
- [#11532](https://redirect.github.com/biomejs/biome/pull/11532)
[`7ceb0ee`](https://redirect.github.com/biomejs/biome/commit/7ceb0ee925461abd9afe17b12a09abc9c0b43c28)
Thanks [@dyc3](https://redirect.github.com/dyc3)! - Fixed
[#11528](https://redirect.github.com/biomejs/biome/issues/11528):
[`noFloatingPromises`](https://biomejs.dev/linter/rules/no-floating-promises/)
no longer reports statement-level `await` expressions that handle
Promise values, including overloaded calls returning Promise aliases.
Awaited values that resolve to arrays of Promises remain reported
because their element Promises are not handled by `await`.
- [#11474](https://redirect.github.com/biomejs/biome/pull/11474)
[`3c6412e`](https://redirect.github.com/biomejs/biome/commit/3c6412e7f44b9aaac750844f9a5f7ff7c3aa0feb)
Thanks [@dyc3](https://redirect.github.com/dyc3)! - Fixed
[#10241](https://redirect.github.com/biomejs/biome/issues/10241).
Biome no longer reports unsupported text expression diagnostics for
double-curly text in vanilla HTML, and the formatter preserves adjacent
curly-brace text.
- [#11593](https://redirect.github.com/biomejs/biome/pull/11593)
[`6c7fd27`](https://redirect.github.com/biomejs/biome/commit/6c7fd273848765547dba547e550fc319df7455a0)
Thanks [@dyc3](https://redirect.github.com/dyc3)! - Added the
nursery rule
[`noVueDeprecatedScopedSlots`](https://biomejs.dev/linter/rules/no-vue-deprecated-scoped-slots/).
It reports deprecated `$scopedSlots` references in Vue templates and
component objects, and offers an unsafe replacement with `$slots`. For
example, Biome now reports `this.$scopedSlots.default` inside a Vue
component.
- [#11440](https://redirect.github.com/biomejs/biome/pull/11440)
[`b88f1ea`](https://redirect.github.com/biomejs/biome/commit/b88f1ea368c727ff8ebeddcaf9448f6ddc7c4878)
Thanks [@Princesseuh](https://redirect.github.com/Princesseuh)! -
Fixed the formatter crashing on an Astro or Svelte expression spanning
several lines in a file with CRLF line endings, such as `
{a +\r\n
b}
`.
- [#11581](https://redirect.github.com/biomejs/biome/pull/11581)
[`f4e5ebb`](https://redirect.github.com/biomejs/biome/commit/f4e5ebb40e64d4488166bf0f2b7d8d96a6118016)
Thanks [@dyc3](https://redirect.github.com/dyc3)! - Added the
nursery rule
[`useModernMathApis`](https://biomejs.dev/linter/rules/use-modern-math-apis/).
The rule reports legacy mathematical patterns that have direct modern
`Math` equivalents.
```js
Math.sqrt(a * a + b * b);
```
- [#11597](https://redirect.github.com/biomejs/biome/pull/11597)
[`a20f44a`](https://redirect.github.com/biomejs/biome/commit/a20f44a3eb2086e65a6d8077eb89ab81f4d73130)
Thanks [@Netail](https://redirect.github.com/Netail)! - Added the
nursery rule [`noBunModules`](https://biomejs.dev/linter/rules/no-
> ❗ **Important**
>
> ✂ PR body was truncated to here.
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- "before 4am on Monday"
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config
help](https://redirect.github.com/renovatebot/renovate/discussions) if
that's undesired.
---
- [ ] If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/prometheus/client_java).
---------
Signed-off-by: Gregor Zeitlinger
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Gregor Zeitlinger
---
mise.lock | 436 ++++++++++++++++++++++++------------------------------
mise.toml | 20 +--
2 files changed, 200 insertions(+), 256 deletions(-)
diff --git a/mise.lock b/mise.lock
index 839ae79b77..2dcc46a711 100644
--- a/mise.lock
+++ b/mise.lock
@@ -47,49 +47,49 @@ url_api = "https://api.github.com/repos/rhysd/actionlint/releases/assets/3849249
provenance = "github-attestations"
[[tools."aqua:grafana/flint"]]
-version = "0.22.11"
+version = "0.22.12"
backend = "aqua:grafana/flint"
[tools."aqua:grafana/flint"."platforms.linux-arm64"]
-checksum = "sha256:a197969873591f857833f7c71ab66506a4050e0a12cf1872b09741652d20e99c"
-url = "https://github.com/grafana/flint/releases/download/v0.22.11/flint-aarch64-unknown-linux-gnu.tar.gz"
-url_api = "https://api.github.com/repos/grafana/flint/releases/assets/522530497"
+checksum = "sha256:71c0a46d95c685802ff6aee4a8816b0a1598f9a238134ee09a2109ad5d74b0eb"
+url = "https://github.com/grafana/flint/releases/download/v0.22.12/flint-aarch64-unknown-linux-gnu.tar.gz"
+url_api = "https://api.github.com/repos/grafana/flint/releases/assets/563223306"
provenance = "github-attestations"
[tools."aqua:grafana/flint"."platforms.linux-arm64-musl"]
-checksum = "sha256:1797194efc0843a0a2c001a235ca91cc09aee9a5a7dc74d25c190ae42445099b"
-url = "https://github.com/grafana/flint/releases/download/v0.22.11/flint-aarch64-unknown-linux-musl.tar.gz"
-url_api = "https://api.github.com/repos/grafana/flint/releases/assets/522530700"
+checksum = "sha256:cd6a2d56ae7cc4f2c52a9192ee3a86f965ac5c1ff7d675456dd489fe092c328c"
+url = "https://github.com/grafana/flint/releases/download/v0.22.12/flint-aarch64-unknown-linux-musl.tar.gz"
+url_api = "https://api.github.com/repos/grafana/flint/releases/assets/563223494"
provenance = "github-attestations"
[tools."aqua:grafana/flint"."platforms.linux-x64"]
-checksum = "sha256:8c2400345fee126864183b96f8ec8a0f646b2c09abcd9ff25c7a0e56caa6f822"
-url = "https://github.com/grafana/flint/releases/download/v0.22.11/flint-x86_64-unknown-linux-gnu.tar.gz"
-url_api = "https://api.github.com/repos/grafana/flint/releases/assets/522529698"
+checksum = "sha256:4c65a385b39d8d32df032195f30c72b28610800f1bf39f3c315015fd592ae707"
+url = "https://github.com/grafana/flint/releases/download/v0.22.12/flint-x86_64-unknown-linux-gnu.tar.gz"
+url_api = "https://api.github.com/repos/grafana/flint/releases/assets/563222761"
provenance = "github-attestations"
[tools."aqua:grafana/flint"."platforms.linux-x64-musl"]
-checksum = "sha256:bde67006096e2c38d4140d6362a6a83a9047cbe8bd1e4fcdeb7e7c0166b0f02c"
-url = "https://github.com/grafana/flint/releases/download/v0.22.11/flint-x86_64-unknown-linux-musl.tar.gz"
-url_api = "https://api.github.com/repos/grafana/flint/releases/assets/522530534"
+checksum = "sha256:71cf9b270de31c132e78bbc65e54b6a4176ba0a3c0709dcfde34d61fc6406d3c"
+url = "https://github.com/grafana/flint/releases/download/v0.22.12/flint-x86_64-unknown-linux-musl.tar.gz"
+url_api = "https://api.github.com/repos/grafana/flint/releases/assets/563223442"
provenance = "github-attestations"
[tools."aqua:grafana/flint"."platforms.macos-arm64"]
-checksum = "sha256:a93e428a2561af80bad79810ce23dbab13e9d39519bfdbb6625e902d2b06f8fa"
-url = "https://github.com/grafana/flint/releases/download/v0.22.11/flint-aarch64-apple-darwin.tar.gz"
-url_api = "https://api.github.com/repos/grafana/flint/releases/assets/522531026"
+checksum = "sha256:9281dfb0f1cfbf64b14e5fea743fcc223a87bf8a90b01391ed85c9ff305a4ea2"
+url = "https://github.com/grafana/flint/releases/download/v0.22.12/flint-aarch64-apple-darwin.tar.gz"
+url_api = "https://api.github.com/repos/grafana/flint/releases/assets/563223869"
provenance = "github-attestations"
[tools."aqua:grafana/flint"."platforms.macos-x64"]
-checksum = "sha256:c42ceb2cc835ec37b04f78215c243ebd24109f713757fbfffe7e4bc0c537a2ac"
-url = "https://github.com/grafana/flint/releases/download/v0.22.11/flint-x86_64-apple-darwin.tar.gz"
-url_api = "https://api.github.com/repos/grafana/flint/releases/assets/522533290"
+checksum = "sha256:07231f3e4078221c2dc0196d0f2ecd7d45a668164314af40a6e3a468af339091"
+url = "https://github.com/grafana/flint/releases/download/v0.22.12/flint-x86_64-apple-darwin.tar.gz"
+url_api = "https://api.github.com/repos/grafana/flint/releases/assets/563225757"
provenance = "github-attestations"
[tools."aqua:grafana/flint"."platforms.windows-x64"]
-checksum = "sha256:7474be1f55fc003dedf5e49da55f65b490f7783b49e6322cfabfb95930baba1a"
-url = "https://github.com/grafana/flint/releases/download/v0.22.11/flint-x86_64-pc-windows-msvc.zip"
-url_api = "https://api.github.com/repos/grafana/flint/releases/assets/522531464"
+checksum = "sha256:9a9b6edf93cb9234acdf74817e3d4a3e261019ea66a3e68ac99d60357b8bbed2"
+url = "https://github.com/grafana/flint/releases/download/v0.22.12/flint-x86_64-pc-windows-msvc.zip"
+url_api = "https://api.github.com/repos/grafana/flint/releases/assets/563224882"
provenance = "github-attestations"
[[tools."aqua:grafana/gcx"]]
@@ -217,89 +217,89 @@ url = "https://github.com/jonwiggins/xmloxide/releases/download/v0.5.0/xmllint_w
url_api = "https://api.github.com/repos/jonwiggins/xmloxide/releases/assets/506799871"
[[tools."aqua:owenlamont/ryl"]]
-version = "0.21.0"
+version = "0.22.0"
backend = "aqua:owenlamont/ryl"
[tools."aqua:owenlamont/ryl"."platforms.linux-arm64"]
-checksum = "sha256:134dfccd5dd7fd13092dbaf482e14e1e9c2b238ecf4306ac020b036212f85abc"
-url = "https://github.com/owenlamont/ryl/releases/download/v0.21.0/ryl-aarch64-unknown-linux-musl.tar.gz"
-url_api = "https://api.github.com/repos/owenlamont/ryl/releases/assets/454375977"
+checksum = "sha256:1045ea5807ae274c0812f63f73469018b58f822c8987e22b71f9995be971a6dd"
+url = "https://github.com/owenlamont/ryl/releases/download/v0.22.0/ryl-aarch64-unknown-linux-gnu.tar.gz"
+url_api = "https://api.github.com/repos/owenlamont/ryl/releases/assets/547221094"
provenance = "github-attestations"
[tools."aqua:owenlamont/ryl"."platforms.linux-arm64-musl"]
-checksum = "sha256:134dfccd5dd7fd13092dbaf482e14e1e9c2b238ecf4306ac020b036212f85abc"
-url = "https://github.com/owenlamont/ryl/releases/download/v0.21.0/ryl-aarch64-unknown-linux-musl.tar.gz"
-url_api = "https://api.github.com/repos/owenlamont/ryl/releases/assets/454375977"
+checksum = "sha256:e2756acb29fac8a1963ef6477f557d31bd9b6a1fb0d745dcb2c5c24714e20910"
+url = "https://github.com/owenlamont/ryl/releases/download/v0.22.0/ryl-aarch64-unknown-linux-musl.tar.gz"
+url_api = "https://api.github.com/repos/owenlamont/ryl/releases/assets/547221095"
provenance = "github-attestations"
[tools."aqua:owenlamont/ryl"."platforms.linux-x64"]
-checksum = "sha256:36867148c4e7415b5f8dd24a1c4e3212e8ec016a6a16d1d1e0d16d7c2f641214"
-url = "https://github.com/owenlamont/ryl/releases/download/v0.21.0/ryl-x86_64-unknown-linux-musl.tar.gz"
-url_api = "https://api.github.com/repos/owenlamont/ryl/releases/assets/454375995"
+checksum = "sha256:e51be237168ff44c8e28caca87db35c15ac5c943bba5edba0e72465b51add524"
+url = "https://github.com/owenlamont/ryl/releases/download/v0.22.0/ryl-x86_64-unknown-linux-gnu.tar.gz"
+url_api = "https://api.github.com/repos/owenlamont/ryl/releases/assets/547221116"
provenance = "github-attestations"
[tools."aqua:owenlamont/ryl"."platforms.linux-x64-musl"]
-checksum = "sha256:36867148c4e7415b5f8dd24a1c4e3212e8ec016a6a16d1d1e0d16d7c2f641214"
-url = "https://github.com/owenlamont/ryl/releases/download/v0.21.0/ryl-x86_64-unknown-linux-musl.tar.gz"
-url_api = "https://api.github.com/repos/owenlamont/ryl/releases/assets/454375995"
+checksum = "sha256:43625dd5c968b2c08e875a8121b2c441bd5059414d8d1fbe8d791cf6bfde402c"
+url = "https://github.com/owenlamont/ryl/releases/download/v0.22.0/ryl-x86_64-unknown-linux-musl.tar.gz"
+url_api = "https://api.github.com/repos/owenlamont/ryl/releases/assets/547221117"
provenance = "github-attestations"
[tools."aqua:owenlamont/ryl"."platforms.macos-arm64"]
-checksum = "sha256:ed5e23a5634f138aac5c2c15e72975f0f485f694582ef6874625e38460b0c3b4"
-url = "https://github.com/owenlamont/ryl/releases/download/v0.21.0/ryl-aarch64-apple-darwin.tar.gz"
-url_api = "https://api.github.com/repos/owenlamont/ryl/releases/assets/454375976"
+checksum = "sha256:512051556cc92b3bfcb21c434072dcb3de7088af4982439ff0cce7888819f501"
+url = "https://github.com/owenlamont/ryl/releases/download/v0.22.0/ryl-aarch64-apple-darwin.tar.gz"
+url_api = "https://api.github.com/repos/owenlamont/ryl/releases/assets/547221097"
provenance = "github-attestations"
[tools."aqua:owenlamont/ryl"."platforms.windows-x64"]
-checksum = "sha256:7522a1fde12775ad43b74e154a6abe3affb676bb52d719ac9e7eb6980bda856d"
-url = "https://github.com/owenlamont/ryl/releases/download/v0.21.0/ryl-x86_64-pc-windows-msvc.zip"
-url_api = "https://api.github.com/repos/owenlamont/ryl/releases/assets/454375990"
+checksum = "sha256:c0b3c8520b0d749d5df974e9638110a7169cde1d8febd6a4e68e802c5de7a70d"
+url = "https://github.com/owenlamont/ryl/releases/download/v0.22.0/ryl-x86_64-pc-windows-msvc.zip"
+url_api = "https://api.github.com/repos/owenlamont/ryl/releases/assets/547221108"
provenance = "github-attestations"
[[tools.biome]]
-version = "2.5.8"
+version = "2.5.13"
backend = "aqua:biomejs/biome"
[tools.biome."platforms.linux-arm64"]
-checksum = "sha256:3f2be9f1f68dca8e0b96d2a9212b408f15dc2668203b2c42cfb78a2894cc966b"
-url = "https://github.com/biomejs/biome/releases/download/%40biomejs/biome%402.5.8/biome-linux-arm64"
-url_api = "https://api.github.com/repos/biomejs/biome/releases/assets/509899232"
+checksum = "sha256:c5f0cf249b1ef1d730376ef61390341e4fdcdb2f79a7fe94a2dacd6af6241958"
+url = "https://github.com/biomejs/biome/releases/download/%40biomejs/biome%402.5.13/biome-linux-arm64"
+url_api = "https://api.github.com/repos/biomejs/biome/releases/assets/554847321"
provenance = "github-attestations"
[tools.biome."platforms.linux-arm64-musl"]
-checksum = "sha256:09d02b9839aa1bf97b65fcce39b561c5687f6521607db46e4bcffdd99a0175a5"
-url = "https://github.com/biomejs/biome/releases/download/%40biomejs/biome%402.5.8/biome-linux-arm64-musl"
-url_api = "https://api.github.com/repos/biomejs/biome/releases/assets/509899235"
+checksum = "sha256:41ea15898cb3da3fcc90388671ac88c197f80c4ff681cff56a1cdd5433266524"
+url = "https://github.com/biomejs/biome/releases/download/%40biomejs/biome%402.5.13/biome-linux-arm64-musl"
+url_api = "https://api.github.com/repos/biomejs/biome/releases/assets/554847322"
provenance = "github-attestations"
[tools.biome."platforms.linux-x64"]
-checksum = "sha256:17abac7ef72e7a1aaccd89892f7e2e62c9919d27473defe772be04ad78400ac2"
-url = "https://github.com/biomejs/biome/releases/download/%40biomejs/biome%402.5.8/biome-linux-x64"
-url_api = "https://api.github.com/repos/biomejs/biome/releases/assets/509899231"
+checksum = "sha256:2037af3d666febdb6e1a2f549938d6f0fe961bad0ac1a34c5fee3dec2db0b43e"
+url = "https://github.com/biomejs/biome/releases/download/%40biomejs/biome%402.5.13/biome-linux-x64"
+url_api = "https://api.github.com/repos/biomejs/biome/releases/assets/554847323"
provenance = "github-attestations"
[tools.biome."platforms.linux-x64-musl"]
-checksum = "sha256:365f2aac71051842d65a9d03139dc0f189628a0e8c2dc3aa2ef09a51ef94bcbd"
-url = "https://github.com/biomejs/biome/releases/download/%40biomejs/biome%402.5.8/biome-linux-x64-musl"
-url_api = "https://api.github.com/repos/biomejs/biome/releases/assets/509899233"
+checksum = "sha256:bcf687baae8fcb2e15e1dff8dc2557a98295d26debfb1e353a2cdb01f63a9e62"
+url = "https://github.com/biomejs/biome/releases/download/%40biomejs/biome%402.5.13/biome-linux-x64-musl"
+url_api = "https://api.github.com/repos/biomejs/biome/releases/assets/554847316"
provenance = "github-attestations"
[tools.biome."platforms.macos-arm64"]
-checksum = "sha256:04c2d44e61242c8bf56e2d663e5312e78639334b4a2fef84b5f59ac8bc9579fb"
-url = "https://github.com/biomejs/biome/releases/download/%40biomejs/biome%402.5.8/biome-darwin-arm64"
-url_api = "https://api.github.com/repos/biomejs/biome/releases/assets/509899230"
+checksum = "sha256:3d0cff7e4cd35a1709c1f4f9568380e08b3551ecf6e7356b3a49a40e3611894b"
+url = "https://github.com/biomejs/biome/releases/download/%40biomejs/biome%402.5.13/biome-darwin-arm64"
+url_api = "https://api.github.com/repos/biomejs/biome/releases/assets/554847319"
provenance = "github-attestations"
[tools.biome."platforms.macos-x64"]
-checksum = "sha256:6bfc751bfff3429888c527d2bb1fe632808769d2f5849579ed8cf71e5fe25c8b"
-url = "https://github.com/biomejs/biome/releases/download/%40biomejs/biome%402.5.8/biome-darwin-x64"
-url_api = "https://api.github.com/repos/biomejs/biome/releases/assets/509899236"
+checksum = "sha256:16f162b37f5bfca9d203dd8a05b20a3aaa6fee806f6ae0e1f8792331a6072238"
+url = "https://github.com/biomejs/biome/releases/download/%40biomejs/biome%402.5.13/biome-darwin-x64"
+url_api = "https://api.github.com/repos/biomejs/biome/releases/assets/554847324"
provenance = "github-attestations"
[tools.biome."platforms.windows-x64"]
-checksum = "sha256:80ac9293d359f55e5f75e1dec13c2ec9c28f01e7e8a8e409b0407a1498da006f"
-url = "https://github.com/biomejs/biome/releases/download/%40biomejs/biome%402.5.8/biome-win32-x64.exe"
-url_api = "https://api.github.com/repos/biomejs/biome/releases/assets/509899229"
+checksum = "sha256:3d7ce7840c4b47db771f258bd2258eecdae820a4bad376b9740af5bb9bb4d75d"
+url = "https://github.com/biomejs/biome/releases/download/%40biomejs/biome%402.5.13/biome-win32-x64.exe"
+url_api = "https://api.github.com/repos/biomejs/biome/releases/assets/554847315"
provenance = "github-attestations"
[[tools.checkstyle]]
@@ -342,43 +342,43 @@ url = "https://github.com/checkstyle/checkstyle/releases/download/checkstyle-13.
url_api = "https://api.github.com/repos/checkstyle/checkstyle/releases/assets/474019260"
[[tools.editorconfig-checker]]
-version = "3.11.1"
+version = "4.0.1"
backend = "aqua:editorconfig-checker/editorconfig-checker"
[tools.editorconfig-checker."platforms.linux-arm64"]
-checksum = "sha256:073d5263f0c5953f3e847df44a84403ecc284ab77419de56e280ab92bc082e8d"
-url = "https://github.com/editorconfig-checker/editorconfig-checker/releases/download/v3.11.1/ec-linux-arm64.tar.gz"
-url_api = "https://api.github.com/repos/editorconfig-checker/editorconfig-checker/releases/assets/506306098"
+checksum = "sha256:f162c749ade763ed4954de678ebb786c99431b9a615a964c284605e68dbbd3f9"
+url = "https://github.com/editorconfig-checker/editorconfig-checker/releases/download/v4.0.1/editorconfig-checker-linux-arm64.tar.gz"
+url_api = "https://api.github.com/repos/editorconfig-checker/editorconfig-checker/releases/assets/543952366"
[tools.editorconfig-checker."platforms.linux-arm64-musl"]
-checksum = "sha256:073d5263f0c5953f3e847df44a84403ecc284ab77419de56e280ab92bc082e8d"
-url = "https://github.com/editorconfig-checker/editorconfig-checker/releases/download/v3.11.1/ec-linux-arm64.tar.gz"
-url_api = "https://api.github.com/repos/editorconfig-checker/editorconfig-checker/releases/assets/506306098"
+checksum = "sha256:f162c749ade763ed4954de678ebb786c99431b9a615a964c284605e68dbbd3f9"
+url = "https://github.com/editorconfig-checker/editorconfig-checker/releases/download/v4.0.1/editorconfig-checker-linux-arm64.tar.gz"
+url_api = "https://api.github.com/repos/editorconfig-checker/editorconfig-checker/releases/assets/543952366"
[tools.editorconfig-checker."platforms.linux-x64"]
-checksum = "sha256:5a37922963248451e88149251e49f6ae08f69717a3918202a51fe9945e19691e"
-url = "https://github.com/editorconfig-checker/editorconfig-checker/releases/download/v3.11.1/ec-linux-amd64.tar.gz"
-url_api = "https://api.github.com/repos/editorconfig-checker/editorconfig-checker/releases/assets/506306099"
+checksum = "sha256:90139c6ed52373c0acfc9deb2a07aa812e5184753afd4bc8252bf44eb4909155"
+url = "https://github.com/editorconfig-checker/editorconfig-checker/releases/download/v4.0.1/editorconfig-checker-linux-amd64.tar.gz"
+url_api = "https://api.github.com/repos/editorconfig-checker/editorconfig-checker/releases/assets/543952355"
[tools.editorconfig-checker."platforms.linux-x64-musl"]
-checksum = "sha256:5a37922963248451e88149251e49f6ae08f69717a3918202a51fe9945e19691e"
-url = "https://github.com/editorconfig-checker/editorconfig-checker/releases/download/v3.11.1/ec-linux-amd64.tar.gz"
-url_api = "https://api.github.com/repos/editorconfig-checker/editorconfig-checker/releases/assets/506306099"
+checksum = "sha256:90139c6ed52373c0acfc9deb2a07aa812e5184753afd4bc8252bf44eb4909155"
+url = "https://github.com/editorconfig-checker/editorconfig-checker/releases/download/v4.0.1/editorconfig-checker-linux-amd64.tar.gz"
+url_api = "https://api.github.com/repos/editorconfig-checker/editorconfig-checker/releases/assets/543952355"
[tools.editorconfig-checker."platforms.macos-arm64"]
-checksum = "sha256:69205598fe8b26677d31194c5c9fdf7e8be321909ffb3c99efb5c9e4e648583e"
-url = "https://github.com/editorconfig-checker/editorconfig-checker/releases/download/v3.11.1/ec-darwin-arm64.tar.gz"
-url_api = "https://api.github.com/repos/editorconfig-checker/editorconfig-checker/releases/assets/506306097"
+checksum = "sha256:9ed547505176d7384e1fb861ecfdd13df8c15e37d4bbcc2bd40e52e81ab32176"
+url = "https://github.com/editorconfig-checker/editorconfig-checker/releases/download/v4.0.1/editorconfig-checker-darwin-all.tar.gz"
+url_api = "https://api.github.com/repos/editorconfig-checker/editorconfig-checker/releases/assets/543952367"
[tools.editorconfig-checker."platforms.macos-x64"]
-checksum = "sha256:a9f68961e33d1a3b3f134c403557c8b2bbafb70b21b4c32b5d9245ffc2875f4f"
-url = "https://github.com/editorconfig-checker/editorconfig-checker/releases/download/v3.11.1/ec-darwin-amd64.tar.gz"
-url_api = "https://api.github.com/repos/editorconfig-checker/editorconfig-checker/releases/assets/506306114"
+checksum = "sha256:9ed547505176d7384e1fb861ecfdd13df8c15e37d4bbcc2bd40e52e81ab32176"
+url = "https://github.com/editorconfig-checker/editorconfig-checker/releases/download/v4.0.1/editorconfig-checker-darwin-all.tar.gz"
+url_api = "https://api.github.com/repos/editorconfig-checker/editorconfig-checker/releases/assets/543952367"
[tools.editorconfig-checker."platforms.windows-x64"]
-checksum = "sha256:6f81f034bbaf77d7ea73274aa7d33995baf9e0d91bc4d4caa8eccff4645f870e"
-url = "https://github.com/editorconfig-checker/editorconfig-checker/releases/download/v3.11.1/ec-windows-amd64.zip"
-url_api = "https://api.github.com/repos/editorconfig-checker/editorconfig-checker/releases/assets/506306105"
+checksum = "sha256:a5f1eb57b62a3499b920f6ddb1561c7f8b0276289ff0c4fefc03a5225d721c11"
+url = "https://github.com/editorconfig-checker/editorconfig-checker/releases/download/v4.0.1/editorconfig-checker-windows-amd64.zip"
+url_api = "https://api.github.com/repos/editorconfig-checker/editorconfig-checker/releases/assets/543952342"
[[tools.google-java-format]]
version = "1.36.1"
@@ -485,62 +485,6 @@ url = "https://github.com/adoptium/temurin25-binaries/releases/download/jdk-25.0
checksum = "sha256:709312cd0420296d9b9de917fe6e28a5b979e875ee5ab91783fb79bcd5857235"
url = "https://github.com/adoptium/temurin25-binaries/releases/download/jdk-25.0.3%2B9/OpenJDK25U-jdk_x64_windows_hotspot_25.0.3_9.zip"
-[[tools.java]]
-version = "temurin-21.0.11+10.0.LTS"
-backend = "core:java"
-
-[tools.java."platforms.linux-arm64"]
-checksum = "sha256:8d498ec88e1c1989fab95c6784240ab92d011e29c54d20a3f9c324b13476f9ad"
-url = "https://github.com/adoptium/temurin21-binaries/releases/download/jdk-21.0.11%2B10/OpenJDK21U-jdk_aarch64_linux_hotspot_21.0.11_10.tar.gz"
-
-[tools.java."platforms.linux-arm64-musl"]
-checksum = "sha256:c8d63598d1dc0a656033515ed258bd6db37506a05407d9f65cd23b95c21027b5"
-url = "https://github.com/adoptium/temurin21-binaries/releases/download/jdk-21.0.11%2B10/OpenJDK21U-jdk_aarch64_alpine-linux_hotspot_21.0.11_10.tar.gz"
-
-[tools.java."platforms.linux-x64"]
-checksum = "sha256:4b2220e232a97997b436ca6ab15cbf70171ecff52958a46159dfa5a8c44ca4de"
-url = "https://github.com/adoptium/temurin21-binaries/releases/download/jdk-21.0.11%2B10/OpenJDK21U-jdk_x64_linux_hotspot_21.0.11_10.tar.gz"
-
-[tools.java."platforms.linux-x64-musl"]
-checksum = "sha256:38bfdcef1e4b45de2ec222047ac79c76bea75d4d7406a310e26cfa236763f05f"
-url = "https://github.com/adoptium/temurin21-binaries/releases/download/jdk-21.0.11%2B10/OpenJDK21U-jdk_x64_alpine-linux_hotspot_21.0.11_10.tar.gz"
-
-[tools.java."platforms.macos-arm64"]
-checksum = "sha256:6ebcf221c9b41507b14c098e93c6ead6440b8d9bd154f8ec666c4c73abbdb201"
-url = "https://github.com/adoptium/temurin21-binaries/releases/download/jdk-21.0.11%2B10/OpenJDK21U-jdk_aarch64_mac_hotspot_21.0.11_10.tar.gz"
-
-[tools.java."platforms.macos-x64"]
-checksum = "sha256:34180eb03e6d207c388cce3da668f6cc7cd7508c185c24782fadac2c9c0e66f9"
-url = "https://github.com/adoptium/temurin21-binaries/releases/download/jdk-21.0.11%2B10/OpenJDK21U-jdk_x64_mac_hotspot_21.0.11_10.tar.gz"
-
-[tools.java."platforms.windows-x64"]
-checksum = "sha256:d3625e7cadf23787ea540229544b6e2ab494b3b54da1801879e583e1dfee0a64"
-url = "https://github.com/adoptium/temurin21-binaries/releases/download/jdk-21.0.11%2B10/OpenJDK21U-jdk_x64_windows_hotspot_21.0.11_10.zip"
-
-[[tools.java]]
-version = "oracle-graalvm-25.0.1"
-backend = "core:java"
-
-[tools.java."platforms.linux-arm64"]
-checksum = "sha256:edd77565c76570a6df5f38e53d54524102f2c1b1cf74eebd9f51e7fc19f667cd"
-url = "https://download.oracle.com/graalvm/25/archive/graalvm-jdk-25.0.1_linux-aarch64_bin.tar.gz"
-
-[tools.java."platforms.linux-x64"]
-checksum = "sha256:d4ab02ba1029e639f03374fdf91c242e1d0d49079880e1af1932ea7b7c431837"
-url = "https://download.oracle.com/graalvm/25/archive/graalvm-jdk-25.0.1_linux-x64_bin.tar.gz"
-
-[tools.java."platforms.macos-arm64"]
-checksum = "sha256:19dfd49ad112e6e6c2bdedc507c6859bf21294fa4c164f1be670d469c65b7993"
-url = "https://download.oracle.com/graalvm/25/archive/graalvm-jdk-25.0.1_macos-aarch64_bin.tar.gz"
-
-[tools.java."platforms.macos-x64"]
-checksum = "sha256:a762ca1d9a163e32790b9286f3af4c16369729ff27999d8dbab60d7be16cff2f"
-url = "https://download.oracle.com/graalvm/25/archive/graalvm-jdk-25.0.1_macos-x64_bin.tar.gz"
-
-[tools.java."platforms.windows-x64"]
-checksum = "sha256:5398592ecdf8f47f4b481896e1e63cbfff4cb8e0ba61538526e3b3795b1a85e5"
-url = "https://download.oracle.com/graalvm/25/archive/graalvm-jdk-25.0.1_windows-x64_bin.zip"
-
[[tools.lychee]]
version = "0.24.2"
backend = "aqua:lycheeverse/lychee"
@@ -613,7 +557,7 @@ checksum = "sha256:6cac9ffbca8f6a47091e4b5c772e0606049c3871cb67d900c0cedde630e54
url = "https://nodejs.org/dist/v24.20.0/node-v24.20.0-win-x64.zip"
[[tools."npm:renovate"]]
-version = "44.29.4"
+version = "44.82.0"
backend = "npm:renovate"
[tools."npm:renovate".options]
@@ -659,95 +603,95 @@ url = "https://github.com/protocolbuffers/protobuf/releases/download/v36.1/proto
url_api = "https://api.github.com/repos/protocolbuffers/protobuf/releases/assets/538583199"
[[tools.ruff]]
-version = "0.16.3"
+version = "0.16.7"
backend = "aqua:astral-sh/ruff"
[tools.ruff."platforms.linux-arm64"]
-checksum = "sha256:8319ba22f655e6efc086103486d7165bf0de73f71ff1c5f25ba580153ad05feb"
-url = "https://github.com/astral-sh/ruff/releases/download/0.16.3/ruff-aarch64-unknown-linux-musl.tar.gz"
-url_api = "https://api.github.com/repos/astral-sh/ruff/releases/assets/513140238"
+checksum = "sha256:1e06b11127c28387c8066da4ce6a617a84a359591be09dbf581fbb0c3e006239"
+url = "https://github.com/astral-sh/ruff/releases/download/0.16.7/ruff-aarch64-unknown-linux-gnu.tar.gz"
+url_api = "https://api.github.com/repos/astral-sh/ruff/releases/assets/555530686"
provenance = "github-attestations"
[tools.ruff."platforms.linux-arm64-musl"]
-checksum = "sha256:8319ba22f655e6efc086103486d7165bf0de73f71ff1c5f25ba580153ad05feb"
-url = "https://github.com/astral-sh/ruff/releases/download/0.16.3/ruff-aarch64-unknown-linux-musl.tar.gz"
-url_api = "https://api.github.com/repos/astral-sh/ruff/releases/assets/513140238"
+checksum = "sha256:dd669efe4ac74ffd5842b26147c36cdd6c93b9cf0d10d5e53c12ec5b44f540bd"
+url = "https://github.com/astral-sh/ruff/releases/download/0.16.7/ruff-aarch64-unknown-linux-musl.tar.gz"
+url_api = "https://api.github.com/repos/astral-sh/ruff/releases/assets/555530691"
provenance = "github-attestations"
[tools.ruff."platforms.linux-x64"]
-checksum = "sha256:d67c9b5949981698c48915abf65e0b3406ba9184ad73521cdf20a926bc889c73"
-url = "https://github.com/astral-sh/ruff/releases/download/0.16.3/ruff-x86_64-unknown-linux-musl.tar.gz"
-url_api = "https://api.github.com/repos/astral-sh/ruff/releases/assets/513140356"
+checksum = "sha256:73894c7b7c9a53fd66ed715eb3a1ec65077f316328e377057a98bdb7fcba0326"
+url = "https://github.com/astral-sh/ruff/releases/download/0.16.7/ruff-x86_64-unknown-linux-gnu.tar.gz"
+url_api = "https://api.github.com/repos/astral-sh/ruff/releases/assets/555530800"
provenance = "github-attestations"
[tools.ruff."platforms.linux-x64-musl"]
-checksum = "sha256:d67c9b5949981698c48915abf65e0b3406ba9184ad73521cdf20a926bc889c73"
-url = "https://github.com/astral-sh/ruff/releases/download/0.16.3/ruff-x86_64-unknown-linux-musl.tar.gz"
-url_api = "https://api.github.com/repos/astral-sh/ruff/releases/assets/513140356"
+checksum = "sha256:8d28939cf5cabe54a2f8f7cbfab52c643436d1bc70474198181db9e48f504411"
+url = "https://github.com/astral-sh/ruff/releases/download/0.16.7/ruff-x86_64-unknown-linux-musl.tar.gz"
+url_api = "https://api.github.com/repos/astral-sh/ruff/releases/assets/555530803"
provenance = "github-attestations"
[tools.ruff."platforms.macos-arm64"]
-checksum = "sha256:136a4db6512d9b16dda56ac8604696ed65c3b1a914a142de029e7f8d5006f1d9"
-url = "https://github.com/astral-sh/ruff/releases/download/0.16.3/ruff-aarch64-apple-darwin.tar.gz"
-url_api = "https://api.github.com/repos/astral-sh/ruff/releases/assets/513140218"
+checksum = "sha256:80221a5e0b1ae29262a74496f2ad1380c1ab52b3edd8cee13ec76d8acff406ca"
+url = "https://github.com/astral-sh/ruff/releases/download/0.16.7/ruff-aarch64-apple-darwin.tar.gz"
+url_api = "https://api.github.com/repos/astral-sh/ruff/releases/assets/555530669"
provenance = "github-attestations"
[tools.ruff."platforms.macos-x64"]
-checksum = "sha256:05c2a6705e7c0c056d6d93ff538978583f0c47b4c28d334ab9d58d2e8daf4c24"
-url = "https://github.com/astral-sh/ruff/releases/download/0.16.3/ruff-x86_64-apple-darwin.tar.gz"
-url_api = "https://api.github.com/repos/astral-sh/ruff/releases/assets/513140338"
+checksum = "sha256:6f3b98ec349f470b7efde5294d44e5171613ddaac3c251a918a7946b303d3ec2"
+url = "https://github.com/astral-sh/ruff/releases/download/0.16.7/ruff-x86_64-apple-darwin.tar.gz"
+url_api = "https://api.github.com/repos/astral-sh/ruff/releases/assets/555530779"
provenance = "github-attestations"
[tools.ruff."platforms.windows-x64"]
-checksum = "sha256:f10c709755b393fd9821506b21070bcca969b9966504edd1e490efd08e3662ba"
-url = "https://github.com/astral-sh/ruff/releases/download/0.16.3/ruff-x86_64-pc-windows-msvc.zip"
-url_api = "https://api.github.com/repos/astral-sh/ruff/releases/assets/513140346"
+checksum = "sha256:a099e761fb841fc33d44031aa37e16a3d154922fd3da284396e58ae687973e45"
+url = "https://github.com/astral-sh/ruff/releases/download/0.16.7/ruff-x86_64-pc-windows-msvc.zip"
+url_api = "https://api.github.com/repos/astral-sh/ruff/releases/assets/555530794"
provenance = "github-attestations"
[[tools.rumdl]]
-version = "v0.2.55"
+version = "v0.2.73"
backend = "aqua:rvben/rumdl"
[tools.rumdl."platforms.linux-arm64"]
-checksum = "sha256:baed03dac3bf50565f4e1e461fb8162fcff58742034c6d643a1977d9025dfdb6"
-url = "https://github.com/rvben/rumdl/releases/download/v0.2.55/rumdl-v0.2.55-aarch64-unknown-linux-musl.tar.gz"
-url_api = "https://api.github.com/repos/rvben/rumdl/releases/assets/512169605"
+checksum = "sha256:83fb9a5899d192b828625f21cb26f8971dc5e6c280a947594db1f0932cb9e7df"
+url = "https://github.com/rvben/rumdl/releases/download/v0.2.73/rumdl-v0.2.73-aarch64-unknown-linux-gnu.tar.gz"
+url_api = "https://api.github.com/repos/rvben/rumdl/releases/assets/557839622"
provenance = "github-attestations"
[tools.rumdl."platforms.linux-arm64-musl"]
-checksum = "sha256:baed03dac3bf50565f4e1e461fb8162fcff58742034c6d643a1977d9025dfdb6"
-url = "https://github.com/rvben/rumdl/releases/download/v0.2.55/rumdl-v0.2.55-aarch64-unknown-linux-musl.tar.gz"
-url_api = "https://api.github.com/repos/rvben/rumdl/releases/assets/512169605"
+checksum = "sha256:f51548adfc71c4982cb5cc239d847bcd4c884e6ac8dc67efd68efd3eea9753a4"
+url = "https://github.com/rvben/rumdl/releases/download/v0.2.73/rumdl-v0.2.73-aarch64-unknown-linux-musl.tar.gz"
+url_api = "https://api.github.com/repos/rvben/rumdl/releases/assets/557839618"
provenance = "github-attestations"
[tools.rumdl."platforms.linux-x64"]
-checksum = "sha256:09c8f72cb57f1ff646d68b5ec2ef6a7b296e6d9f945093db2698c260e81d9f90"
-url = "https://github.com/rvben/rumdl/releases/download/v0.2.55/rumdl-v0.2.55-x86_64-unknown-linux-musl.tar.gz"
-url_api = "https://api.github.com/repos/rvben/rumdl/releases/assets/512169600"
+checksum = "sha256:d56a8e40471af32fe3229e845f3e299e3691665b15cd4ca28f2deb502c487666"
+url = "https://github.com/rvben/rumdl/releases/download/v0.2.73/rumdl-v0.2.73-x86_64-unknown-linux-gnu.tar.gz"
+url_api = "https://api.github.com/repos/rvben/rumdl/releases/assets/557839623"
provenance = "github-attestations"
[tools.rumdl."platforms.linux-x64-musl"]
-checksum = "sha256:09c8f72cb57f1ff646d68b5ec2ef6a7b296e6d9f945093db2698c260e81d9f90"
-url = "https://github.com/rvben/rumdl/releases/download/v0.2.55/rumdl-v0.2.55-x86_64-unknown-linux-musl.tar.gz"
-url_api = "https://api.github.com/repos/rvben/rumdl/releases/assets/512169600"
+checksum = "sha256:dc4aa9bf98f936f667039224a34fc2e26ddf6be3589bf59d63e4d6b038be4f5c"
+url = "https://github.com/rvben/rumdl/releases/download/v0.2.73/rumdl-v0.2.73-x86_64-unknown-linux-musl.tar.gz"
+url_api = "https://api.github.com/repos/rvben/rumdl/releases/assets/557839615"
provenance = "github-attestations"
[tools.rumdl."platforms.macos-arm64"]
-checksum = "sha256:98dd5620e7eb8ba8fd77830fe1f313530ae2a6368ae867149f7de13dbebde6e3"
-url = "https://github.com/rvben/rumdl/releases/download/v0.2.55/rumdl-v0.2.55-aarch64-apple-darwin.tar.gz"
-url_api = "https://api.github.com/repos/rvben/rumdl/releases/assets/512169607"
+checksum = "sha256:54e0e7c3031b8bfa37e3c57104cc0c93988e02f5b7023c1804749fd180822f9e"
+url = "https://github.com/rvben/rumdl/releases/download/v0.2.73/rumdl-v0.2.73-aarch64-apple-darwin.tar.gz"
+url_api = "https://api.github.com/repos/rvben/rumdl/releases/assets/557839617"
provenance = "github-attestations"
[tools.rumdl."platforms.macos-x64"]
-checksum = "sha256:8dadf1b9aeda17f8a41ab4fcdd2a7f7dfb6eda8981ddce3ebf61b72e3d1d3f89"
-url = "https://github.com/rvben/rumdl/releases/download/v0.2.55/rumdl-v0.2.55-x86_64-apple-darwin.tar.gz"
-url_api = "https://api.github.com/repos/rvben/rumdl/releases/assets/512169601"
+checksum = "sha256:ad181073e75df52e982025d1f5a9508ef6588f895ef5f78227301499325ea132"
+url = "https://github.com/rvben/rumdl/releases/download/v0.2.73/rumdl-v0.2.73-x86_64-apple-darwin.tar.gz"
+url_api = "https://api.github.com/repos/rvben/rumdl/releases/assets/557839628"
provenance = "github-attestations"
[tools.rumdl."platforms.windows-x64"]
-checksum = "sha256:47c04176f960e2d196b1e465564869363469ec00714c2970e1f441deff7f679d"
-url = "https://github.com/rvben/rumdl/releases/download/v0.2.55/rumdl-v0.2.55-x86_64-pc-windows-msvc.zip"
-url_api = "https://api.github.com/repos/rvben/rumdl/releases/assets/512169608"
+checksum = "sha256:bc6c86d61588e9c92ec9927903ed4973986d30b94d042732ddf62424755dd3c8"
+url = "https://github.com/rvben/rumdl/releases/download/v0.2.73/rumdl-v0.2.73-x86_64-pc-windows-msvc.zip"
+url_api = "https://api.github.com/repos/rvben/rumdl/releases/assets/557839616"
provenance = "github-attestations"
[[tools.shellcheck]]
@@ -790,43 +734,43 @@ url = "https://github.com/koalaman/shellcheck/releases/download/v0.11.0/shellche
url_api = "https://api.github.com/repos/koalaman/shellcheck/releases/assets/279056944"
[[tools.shfmt]]
-version = "3.13.1"
+version = "3.14.1"
backend = "aqua:mvdan/sh"
[tools.shfmt."platforms.linux-arm64"]
-checksum = "sha256:32d92acaa5cd8abb29fc49dac123dc412442d5713967819d8af2c29f1b3857c7"
-url = "https://github.com/mvdan/sh/releases/download/v3.13.1/shfmt_v3.13.1_linux_arm64"
-url_api = "https://api.github.com/repos/mvdan/sh/releases/assets/390322859"
+checksum = "sha256:5f2db09dae91fca848f7adbdd014632e921a383863a2ad7e0450ad3aba0c6489"
+url = "https://github.com/mvdan/sh/releases/download/v3.14.1/shfmt_v3.14.1_linux_arm64"
+url_api = "https://api.github.com/repos/mvdan/sh/releases/assets/547320869"
[tools.shfmt."platforms.linux-arm64-musl"]
-checksum = "sha256:32d92acaa5cd8abb29fc49dac123dc412442d5713967819d8af2c29f1b3857c7"
-url = "https://github.com/mvdan/sh/releases/download/v3.13.1/shfmt_v3.13.1_linux_arm64"
-url_api = "https://api.github.com/repos/mvdan/sh/releases/assets/390322859"
+checksum = "sha256:5f2db09dae91fca848f7adbdd014632e921a383863a2ad7e0450ad3aba0c6489"
+url = "https://github.com/mvdan/sh/releases/download/v3.14.1/shfmt_v3.14.1_linux_arm64"
+url_api = "https://api.github.com/repos/mvdan/sh/releases/assets/547320869"
[tools.shfmt."platforms.linux-x64"]
-checksum = "sha256:fb096c5d1ac6beabbdbaa2874d025badb03ee07929f0c9ff67563ce8c75398b1"
-url = "https://github.com/mvdan/sh/releases/download/v3.13.1/shfmt_v3.13.1_linux_amd64"
-url_api = "https://api.github.com/repos/mvdan/sh/releases/assets/390322866"
+checksum = "sha256:76e77641faa025814b77f153b29796b8e6fa2fca03e0c76a691608b86c7ea7bf"
+url = "https://github.com/mvdan/sh/releases/download/v3.14.1/shfmt_v3.14.1_linux_amd64"
+url_api = "https://api.github.com/repos/mvdan/sh/releases/assets/547320883"
[tools.shfmt."platforms.linux-x64-musl"]
-checksum = "sha256:fb096c5d1ac6beabbdbaa2874d025badb03ee07929f0c9ff67563ce8c75398b1"
-url = "https://github.com/mvdan/sh/releases/download/v3.13.1/shfmt_v3.13.1_linux_amd64"
-url_api = "https://api.github.com/repos/mvdan/sh/releases/assets/390322866"
+checksum = "sha256:76e77641faa025814b77f153b29796b8e6fa2fca03e0c76a691608b86c7ea7bf"
+url = "https://github.com/mvdan/sh/releases/download/v3.14.1/shfmt_v3.14.1_linux_amd64"
+url_api = "https://api.github.com/repos/mvdan/sh/releases/assets/547320883"
[tools.shfmt."platforms.macos-arm64"]
-checksum = "sha256:9680526be4a66ea1ffe988ed08af58e1400fe1e4f4aef5bd88b20bb9b3da33f8"
-url = "https://github.com/mvdan/sh/releases/download/v3.13.1/shfmt_v3.13.1_darwin_arm64"
-url_api = "https://api.github.com/repos/mvdan/sh/releases/assets/390322881"
+checksum = "sha256:b7c872db63553ccffc7253aba3ed7d4885a27d83f1ba567b1138c6315a5847e5"
+url = "https://github.com/mvdan/sh/releases/download/v3.14.1/shfmt_v3.14.1_darwin_arm64"
+url_api = "https://api.github.com/repos/mvdan/sh/releases/assets/547320930"
[tools.shfmt."platforms.macos-x64"]
-checksum = "sha256:6feedafc72915794163114f512348e2437d080d0047ef8b8fa2ec63b575f12af"
-url = "https://github.com/mvdan/sh/releases/download/v3.13.1/shfmt_v3.13.1_darwin_amd64"
-url_api = "https://api.github.com/repos/mvdan/sh/releases/assets/390322886"
+checksum = "sha256:d33eee0da0f92835b3562e9767a05cee7e4eaeef47daa03bfd09da17b4b590a6"
+url = "https://github.com/mvdan/sh/releases/download/v3.14.1/shfmt_v3.14.1_darwin_amd64"
+url_api = "https://api.github.com/repos/mvdan/sh/releases/assets/547320946"
[tools.shfmt."platforms.windows-x64"]
-checksum = "sha256:60cd368533d0ad73fa86d93d5bbf95ef40587245ce684ed138c1b31557b5fe97"
-url = "https://github.com/mvdan/sh/releases/download/v3.13.1/shfmt_v3.13.1_windows_amd64.exe"
-url_api = "https://api.github.com/repos/mvdan/sh/releases/assets/390322844"
+checksum = "sha256:13629ce28442ca80b6b5a819f7574ab39e1c28c6e26734ca816c9714e04851df"
+url = "https://github.com/mvdan/sh/releases/download/v3.14.1/shfmt_v3.14.1_windows_amd64.exe"
+url_api = "https://api.github.com/repos/mvdan/sh/releases/assets/547320827"
[[tools.taplo]]
version = "0.10.0"
@@ -861,80 +805,80 @@ url = "https://github.com/tamasfe/taplo/releases/download/0.10.0/taplo-windows-x
url_api = "https://api.github.com/repos/tamasfe/taplo/releases/assets/257323062"
[[tools.typos]]
-version = "1.49.0"
+version = "1.50.1"
backend = "aqua:crate-ci/typos"
[tools.typos."platforms.linux-arm64"]
-checksum = "sha256:85c8b87b22a0fb1da130cd4d495e0beba7f1225eb580933184509e146ec4c509"
-url = "https://github.com/crate-ci/typos/releases/download/v1.49.0/typos-v1.49.0-aarch64-unknown-linux-musl.tar.gz"
-url_api = "https://api.github.com/repos/crate-ci/typos/releases/assets/500258983"
+checksum = "sha256:a48feb58c517977ca953e634507c72819d64df8717c33ced3e43868d174fd39e"
+url = "https://github.com/crate-ci/typos/releases/download/v1.50.1/typos-v1.50.1-aarch64-unknown-linux-musl.tar.gz"
+url_api = "https://api.github.com/repos/crate-ci/typos/releases/assets/539857357"
[tools.typos."platforms.linux-arm64-musl"]
-checksum = "sha256:85c8b87b22a0fb1da130cd4d495e0beba7f1225eb580933184509e146ec4c509"
-url = "https://github.com/crate-ci/typos/releases/download/v1.49.0/typos-v1.49.0-aarch64-unknown-linux-musl.tar.gz"
-url_api = "https://api.github.com/repos/crate-ci/typos/releases/assets/500258983"
+checksum = "sha256:a48feb58c517977ca953e634507c72819d64df8717c33ced3e43868d174fd39e"
+url = "https://github.com/crate-ci/typos/releases/download/v1.50.1/typos-v1.50.1-aarch64-unknown-linux-musl.tar.gz"
+url_api = "https://api.github.com/repos/crate-ci/typos/releases/assets/539857357"
[tools.typos."platforms.linux-x64"]
-checksum = "sha256:48bd2d58e02ce713b8c0f1aa239e68ee4f7d8c551013135806e6aed3938d9e10"
-url = "https://github.com/crate-ci/typos/releases/download/v1.49.0/typos-v1.49.0-x86_64-unknown-linux-musl.tar.gz"
-url_api = "https://api.github.com/repos/crate-ci/typos/releases/assets/500261019"
+checksum = "sha256:edf0545109aee6a22751d04ddecb97c45be47d3aa0409564fb895eeeace91b1e"
+url = "https://github.com/crate-ci/typos/releases/download/v1.50.1/typos-v1.50.1-x86_64-unknown-linux-musl.tar.gz"
+url_api = "https://api.github.com/repos/crate-ci/typos/releases/assets/539858793"
[tools.typos."platforms.linux-x64-musl"]
-checksum = "sha256:48bd2d58e02ce713b8c0f1aa239e68ee4f7d8c551013135806e6aed3938d9e10"
-url = "https://github.com/crate-ci/typos/releases/download/v1.49.0/typos-v1.49.0-x86_64-unknown-linux-musl.tar.gz"
-url_api = "https://api.github.com/repos/crate-ci/typos/releases/assets/500261019"
+checksum = "sha256:edf0545109aee6a22751d04ddecb97c45be47d3aa0409564fb895eeeace91b1e"
+url = "https://github.com/crate-ci/typos/releases/download/v1.50.1/typos-v1.50.1-x86_64-unknown-linux-musl.tar.gz"
+url_api = "https://api.github.com/repos/crate-ci/typos/releases/assets/539858793"
[tools.typos."platforms.macos-arm64"]
-checksum = "sha256:8c0e7bd40b2b60c0b0cfe9f74dd814b4d4385c956ce86860f7da9e62d91fdc73"
-url = "https://github.com/crate-ci/typos/releases/download/v1.49.0/typos-v1.49.0-aarch64-apple-darwin.tar.gz"
-url_api = "https://api.github.com/repos/crate-ci/typos/releases/assets/500262463"
+checksum = "sha256:2c940734b44b6e199e165278b662b7e17c68f068471a2a8a5e491ce635414ae6"
+url = "https://github.com/crate-ci/typos/releases/download/v1.50.1/typos-v1.50.1-aarch64-apple-darwin.tar.gz"
+url_api = "https://api.github.com/repos/crate-ci/typos/releases/assets/539861019"
[tools.typos."platforms.macos-x64"]
-checksum = "sha256:4cecbf653a9fc45f023abf57f4e2e2f6b138c2d2387b09289beacdd3f0ea7bfd"
-url = "https://github.com/crate-ci/typos/releases/download/v1.49.0/typos-v1.49.0-x86_64-apple-darwin.tar.gz"
-url_api = "https://api.github.com/repos/crate-ci/typos/releases/assets/500259181"
+checksum = "sha256:b31ccf2f21154b2bc8d2a84f395f746106edda0feec4817fbecdb12216df53bd"
+url = "https://github.com/crate-ci/typos/releases/download/v1.50.1/typos-v1.50.1-x86_64-apple-darwin.tar.gz"
+url_api = "https://api.github.com/repos/crate-ci/typos/releases/assets/539861041"
[tools.typos."platforms.windows-x64"]
-checksum = "sha256:06d3a1b71c282e021671070696a72696d5c60ea485b47dc4f8f1fbcf90144d02"
-url = "https://github.com/crate-ci/typos/releases/download/v1.49.0/typos-v1.49.0-x86_64-pc-windows-msvc.zip"
-url_api = "https://api.github.com/repos/crate-ci/typos/releases/assets/500264256"
+checksum = "sha256:8740867a0d9e44a62f0803e37a669ec3c6cd17ab63cd49d00e14a96d3e03ccc3"
+url = "https://github.com/crate-ci/typos/releases/download/v1.50.1/typos-v1.50.1-x86_64-pc-windows-msvc.zip"
+url_api = "https://api.github.com/repos/crate-ci/typos/releases/assets/539862554"
[[tools.zizmor]]
-version = "1.29.0"
+version = "1.30.1"
backend = "aqua:zizmorcore/zizmor"
[tools.zizmor."platforms.linux-arm64"]
-checksum = "sha256:415eaa7c0a06479a701b8e44a3e812c1047decc848ec4bede7bd6bbf49f22d20"
-url = "https://github.com/zizmorcore/zizmor/releases/download/v1.29.0/zizmor-aarch64-unknown-linux-gnu.tar.gz"
-url_api = "https://api.github.com/repos/zizmorcore/zizmor/releases/assets/498263143"
+checksum = "sha256:7ff1dce33bdd18fd2a4affe63bdd47efcccca97b2cec1c1863ec26e9e2647540"
+url = "https://github.com/zizmorcore/zizmor/releases/download/v1.30.1/zizmor-aarch64-unknown-linux-gnu.tar.gz"
+url_api = "https://api.github.com/repos/zizmorcore/zizmor/releases/assets/552067643"
provenance = "github-attestations"
[tools.zizmor."platforms.linux-arm64-musl"]
provenance = "github-attestations"
[tools.zizmor."platforms.linux-x64"]
-checksum = "sha256:dd96df044a6e8538d5f423790f453bdd03d49e5b2bcc38214acc41a2f1297839"
-url = "https://github.com/zizmorcore/zizmor/releases/download/v1.29.0/zizmor-x86_64-unknown-linux-gnu.tar.gz"
-url_api = "https://api.github.com/repos/zizmorcore/zizmor/releases/assets/498263145"
+checksum = "sha256:e65324f4430c2717591937edcec90ccbefaf14c174f8ec9415e03ca875b46e1a"
+url = "https://github.com/zizmorcore/zizmor/releases/download/v1.30.1/zizmor-x86_64-unknown-linux-gnu.tar.gz"
+url_api = "https://api.github.com/repos/zizmorcore/zizmor/releases/assets/552067642"
provenance = "github-attestations"
[tools.zizmor."platforms.linux-x64-musl"]
provenance = "github-attestations"
[tools.zizmor."platforms.macos-arm64"]
-checksum = "sha256:720322fade9e83a9c7953944c438f2ba942636b86b96a8f0e6b15ce94c8a6b6f"
-url = "https://github.com/zizmorcore/zizmor/releases/download/v1.29.0/zizmor-aarch64-apple-darwin.tar.gz"
-url_api = "https://api.github.com/repos/zizmorcore/zizmor/releases/assets/498263141"
+checksum = "sha256:e28d22b087f9ebb8d99da6e740d348c930f559961c7c3f12badda54f882195a2"
+url = "https://github.com/zizmorcore/zizmor/releases/download/v1.30.1/zizmor-aarch64-apple-darwin.tar.gz"
+url_api = "https://api.github.com/repos/zizmorcore/zizmor/releases/assets/552067640"
provenance = "github-attestations"
[tools.zizmor."platforms.macos-x64"]
-checksum = "sha256:648b72ab9941a7f2a8d65d7b68a8e76cef789538c8df3a3950384d38423375b0"
-url = "https://github.com/zizmorcore/zizmor/releases/download/v1.29.0/zizmor-x86_64-apple-darwin.tar.gz"
-url_api = "https://api.github.com/repos/zizmorcore/zizmor/releases/assets/498263144"
+checksum = "sha256:10e6b18b11ea07e515a16f0f0518c7b07527bc9977c1fd5698181ce7f3554202"
+url = "https://github.com/zizmorcore/zizmor/releases/download/v1.30.1/zizmor-x86_64-apple-darwin.tar.gz"
+url_api = "https://api.github.com/repos/zizmorcore/zizmor/releases/assets/552067641"
provenance = "github-attestations"
[tools.zizmor."platforms.windows-x64"]
-checksum = "sha256:68a6bc6888f10bf0d53658c75885e7c1b7a0588d4c1fbc3f0ca280ad7324bf06"
-url = "https://github.com/zizmorcore/zizmor/releases/download/v1.29.0/zizmor-x86_64-pc-windows-msvc.zip"
-url_api = "https://api.github.com/repos/zizmorcore/zizmor/releases/assets/498263142"
+checksum = "sha256:b183b1e996eddfab9659f1e9b46e059f1ef1cf984a1f14e5da09f7876a4b3a1c"
+url = "https://github.com/zizmorcore/zizmor/releases/download/v1.30.1/zizmor-x86_64-pc-windows-msvc.zip"
+url_api = "https://api.github.com/repos/zizmorcore/zizmor/releases/assets/552067645"
provenance = "github-attestations"
diff --git a/mise.toml b/mise.toml
index 1a69581af1..5ee321a9a3 100644
--- a/mise.toml
+++ b/mise.toml
@@ -8,24 +8,24 @@ protoc = "36.1"
# Linters
actionlint = "1.7.12"
-"aqua:grafana/flint" = "0.22.11"
+"aqua:grafana/flint" = "0.22.12"
"aqua:jonwiggins/xmloxide" = "v0.5.0"
-"aqua:owenlamont/ryl" = "0.21.0"
-biome = "2.5.8"
+"aqua:owenlamont/ryl" = "0.22.0"
+biome = "2.5.13"
checkstyle = "13.8.0"
-editorconfig-checker = "3.11.1"
+editorconfig-checker = "4.0.1"
google-java-format = "1.36.1"
lychee = "0.24.2"
# @yarnpkg/libzip 3.2.2 is npm-signed and matches Yarn's release commit, but
# was published without provenance; mise's no-downgrade policy otherwise rejects Renovate.
-"npm:renovate" = { version = "44.29.4", trust_policy_excludes = ["@yarnpkg/libzip@3.2.2"] }
-ruff = "0.16.3"
-rumdl = "v0.2.55"
+"npm:renovate" = { version = "44.82.0", trust_policy_excludes = ["@yarnpkg/libzip@3.2.2"] }
+ruff = "0.16.7"
+rumdl = "v0.2.73"
shellcheck = "v0.11.0"
-shfmt = "3.13.1"
+shfmt = "3.14.1"
taplo = "0.10.0"
-typos = "1.49.0"
-zizmor = "1.29.0"
+typos = "1.50.1"
+zizmor = "1.30.1"
[env]
FLINT_CONFIG_DIR = ".github/config"
From f71915fba5e7681839d31931e3d4eaa4b9fa9851 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Mon, 14 Sep 2026 14:41:49 +0200
Subject: [PATCH 144/255] chore(deps): update node.js to v24.21.0 (#2466)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [node](https://nodejs.org)
([source](https://redirect.github.com/nodejs/node)) | tools | minor |
`24.20.0` → `24.21.0` |
---
### Release Notes
nodejs/node (node)
###
[`v24.21.0`](https://redirect.github.com/nodejs/node/releases/tag/v24.21.0):
2026-09-08, Version 24.21.0 'Krypton' (LTS), @aduh95
[Compare
Source](https://redirect.github.com/nodejs/node/compare/v24.20.0...v24.21.0)
##### Notable Changes
-
\[[`71106e1f17`](https://redirect.github.com/nodejs/node/commit/71106e1f17)]
- **crypto**: update root certificates to NSS 3.126 (Node.js GitHub Bot)
[#65495](https://redirect.github.com/nodejs/node/pull/65495)
-
\[[`afca0a912d`](https://redirect.github.com/nodejs/node/commit/afca0a912d)]
- **(SEMVER-MINOR)** **crypto**: support loading private keys through
STORE loaders (Filip Skokan)
[#63949](https://redirect.github.com/nodejs/node/pull/63949)
-
\[[`6274fccbd9`](https://redirect.github.com/nodejs/node/commit/6274fccbd9)]
- **deps**: update OpenSSL to 3.5.8 (Node.js GitHub Bot)
[#65542](https://redirect.github.com/nodejs/node/pull/65542)
-
\[[`53cba013c7`](https://redirect.github.com/nodejs/node/commit/53cba013c7)]
- **deps**: update Undici to 7.29.1 (Node.js GitHub Bot)
[#65789](https://redirect.github.com/nodejs/node/pull/65789)
-
\[[`0529772798`](https://redirect.github.com/nodejs/node/commit/0529772798)]
- **(SEMVER-MINOR)** **lib,src**: improve histogram implementation
(James M Snell)
[#65024](https://redirect.github.com/nodejs/node/pull/65024)
-
\[[`41c7062b81`](https://redirect.github.com/nodejs/node/commit/41c7062b81)]
- **(SEMVER-MINOR)** **net**: improve performance of `net.BlockList`
(James M Snell)
[#64974](https://redirect.github.com/nodejs/node/pull/64974)
-
\[[`5197b5a3c5`](https://redirect.github.com/nodejs/node/commit/5197b5a3c5)]
- **(SEMVER-MINOR)** **perf\_hooks**: add statistical hypothesis testing
to histogram (James M Snell)
[#65416](https://redirect.github.com/nodejs/node/pull/65416)
-
\[[`35c635b032`](https://redirect.github.com/nodejs/node/commit/35c635b032)]
- **(SEMVER-MINOR)** **util**: add non-throwing `MIMEType.parse` (James
M Snell)
[#64965](https://redirect.github.com/nodejs/node/pull/64965)
##### Commits
-
\[[`84d706cb9b`](https://redirect.github.com/nodejs/node/commit/84d706cb9b)]
- **assert**: improve documentation wording (Kamal Rawal)
[#64953](https://redirect.github.com/nodejs/node/pull/64953)
-
\[[`90d127db33`](https://redirect.github.com/nodejs/node/commit/90d127db33)]
- **(SEMVER-MINOR)** **benchmark**: add --analyze mode to compare.js
(James M Snell)
[#65416](https://redirect.github.com/nodejs/node/pull/65416)
-
\[[`ad1d7884c3`](https://redirect.github.com/nodejs/node/commit/ad1d7884c3)]
- **benchmark**: add test-only and mock timers cases (Luan Muniz)
[#64097](https://redirect.github.com/nodejs/node/pull/64097)
-
\[[`1d8f045914`](https://redirect.github.com/nodejs/node/commit/1d8f045914)]
- **benchmark**: apply `highWaterMark` in webstreams `pipe-to` (Matteo
Collina)
[#65138](https://redirect.github.com/nodejs/node/pull/65138)
-
\[[`ed7ba3c993`](https://redirect.github.com/nodejs/node/commit/ed7ba3c993)]
- **benchmark**: complete the sqlite is-transaction fix (Edy Silva)
[#65218](https://redirect.github.com/nodejs/node/pull/65218)
-
\[[`c8837e1aa3`](https://redirect.github.com/nodejs/node/commit/c8837e1aa3)]
- **benchmark**: add test runner hooks and options (Luan Muniz)
[#63754](https://redirect.github.com/nodejs/node/pull/63754)
-
\[[`2ba8661e23`](https://redirect.github.com/nodejs/node/commit/2ba8661e23)]
- **buffer**: prevent string write offset overflow (Matteo Collina)
[#65043](https://redirect.github.com/nodejs/node/pull/65043)
-
\[[`cc9ee6c2ae`](https://redirect.github.com/nodejs/node/commit/cc9ee6c2ae)]
- **buffer**: treat detached ArrayBuffers as empty (Archkon)
[#64504](https://redirect.github.com/nodejs/node/pull/64504)
-
\[[`5a5d73e4c5`](https://redirect.github.com/nodejs/node/commit/5a5d73e4c5)]
- **build**: pass target architecture to small-icu genccode (ulofiai)
[#65095](https://redirect.github.com/nodejs/node/pull/65095)
-
\[[`273e72d1a5`](https://redirect.github.com/nodejs/node/commit/273e72d1a5)]
- **build**: deprecate always enabled `--enable-static` (Chengzhong Wu)
[#65103](https://redirect.github.com/nodejs/node/pull/65103)
-
\[[`89a67246e3`](https://redirect.github.com/nodejs/node/commit/89a67246e3)]
- **build**: check FIPS option value in node.gyp (Filip Skokan)
[#64982](https://redirect.github.com/nodejs/node/pull/64982)
-
\[[`2d21f41cd5`](https://redirect.github.com/nodejs/node/commit/2d21f41cd5)]
- **build**: handle malformed OpenSSL macros (Filip Skokan)
[#64982](https://redirect.github.com/nodejs/node/pull/64982)
-
\[[`f62bc0f862`](https://redirect.github.com/nodejs/node/commit/f62bc0f862)]
- **build,win**: add PGO workload scripts (Stefan Stojanovic)
[#63696](https://redirect.github.com/nodejs/node/pull/63696)
-
\[[`33d0c7dc12`](https://redirect.github.com/nodejs/node/commit/33d0c7dc12)]
- **child\_process**: keep SIGWINCH from killing on Win (Kirill Saied)
[#64510](https://redirect.github.com/nodejs/node/pull/64510)
-
\[[`71106e1f17`](https://redirect.github.com/nodejs/node/commit/71106e1f17)]
- **crypto**: update root certificates to NSS 3.126 (Node.js GitHub Bot)
[#65495](https://redirect.github.com/nodejs/node/pull/65495)
-
\[[`419af8b86d`](https://redirect.github.com/nodejs/node/commit/419af8b86d)]
- **crypto**: fix missing error checks on ASN1\_STRING\_to\_UTF8() (Nora
Dossche)
[#65200](https://redirect.github.com/nodejs/node/pull/65200)
-
\[[`8029383f3f`](https://redirect.github.com/nodejs/node/commit/8029383f3f)]
- **crypto**: use available BoringSSL APIs (Filip Skokan)
[#65423](https://redirect.github.com/nodejs/node/pull/65423)
-
\[[`a9bd780e19`](https://redirect.github.com/nodejs/node/commit/a9bd780e19)]
- **crypto**: remove obsolete BoringSSL shims (Filip Skokan)
[#65423](https://redirect.github.com/nodejs/node/pull/65423)
-
\[[`7defefad3f`](https://redirect.github.com/nodejs/node/commit/7defefad3f)]
- **crypto**: read WebCrypto inputs through primordials (Filip Skokan)
[#65115](https://redirect.github.com/nodejs/node/pull/65115)
-
\[[`6ed1e38627`](https://redirect.github.com/nodejs/node/commit/6ed1e38627)]
- **crypto**: fix disabling FIPS mode (Filip Skokan)
[#64982](https://redirect.github.com/nodejs/node/pull/64982)
-
\[[`afca0a912d`](https://redirect.github.com/nodejs/node/commit/afca0a912d)]
- **(SEMVER-MINOR)** **crypto**: support loading private keys through
STORE loaders (Filip Skokan)
[#63949](https://redirect.github.com/nodejs/node/pull/63949)
-
\[[`9b9dd6e9cf`](https://redirect.github.com/nodejs/node/commit/9b9dd6e9cf)]
- **debugger**: wait for target startup (Filip Skokan)
[#65194](https://redirect.github.com/nodejs/node/pull/65194)
-
\[[`07faaeeffd`](https://redirect.github.com/nodejs/node/commit/07faaeeffd)]
- **deps**: update corepack to 0.36.0 (Node.js GitHub Bot)
[#65653](https://redirect.github.com/nodejs/node/pull/65653)
-
\[[`53cba013c7`](https://redirect.github.com/nodejs/node/commit/53cba013c7)]
- **deps**: update undici to 7.29.1 (Node.js GitHub Bot)
[#65789](https://redirect.github.com/nodejs/node/pull/65789)
-
\[[`0268ca547c`](https://redirect.github.com/nodejs/node/commit/0268ca547c)]
- **deps**: update archs files for openssl-3.5.8 (Node.js GitHub Bot)
[#65542](https://redirect.github.com/nodejs/node/pull/65542)
-
\[[`6274fccbd9`](https://redirect.github.com/nodejs/node/commit/6274fccbd9)]
- **deps**: upgrade openssl sources to openssl-3.5.8 (Node.js GitHub
Bot) [#65542](https://redirect.github.com/nodejs/node/pull/65542)
-
\[[`6bdcd121fa`](https://redirect.github.com/nodejs/node/commit/6bdcd121fa)]
- **deps**: update zlib to 1.3.2.1-motley-8002e91 (Node.js GitHub Bot)
[#65316](https://redirect.github.com/nodejs/node/pull/65316)
-
\[[`c2aa446b6d`](https://redirect.github.com/nodejs/node/commit/c2aa446b6d)]
- **deps**: update simdjson to 4.6.7 (Node.js GitHub Bot)
[#65318](https://redirect.github.com/nodejs/node/pull/65318)
-
\[[`3e58e48ea8`](https://redirect.github.com/nodejs/node/commit/3e58e48ea8)]
- **deps**: update googletest to
[`49495ea`](https://redirect.github.com/nodejs/node/commit/49495eacfdbda3f4b6ba219923fedbb2e3f99376)
(Node.js GitHub Bot)
[#65317](https://redirect.github.com/nodejs/node/pull/65317)
-
\[[`670b3665c0`](https://redirect.github.com/nodejs/node/commit/670b3665c0)]
- **deps**: cherry-pick
[libuv/libuv@`e640dc9`](https://redirect.github.com/libuv/libuv/commit/e640dc9)
(ulofiai)
[#65118](https://redirect.github.com/nodejs/node/pull/65118)
-
\[[`ca1c67b021`](https://redirect.github.com/nodejs/node/commit/ca1c67b021)]
- **deps**: float ICU-23262 patch for icu78 (René)
[#64678](https://redirect.github.com/nodejs/node/pull/64678)
-
\[[`4ad043b0aa`](https://redirect.github.com/nodejs/node/commit/4ad043b0aa)]
- **deps**: enable AVX-512 OpenSSL asm with clang (Daniel Lemire)
[#65136](https://redirect.github.com/nodejs/node/pull/65136)
-
\[[`96b4af109b`](https://redirect.github.com/nodejs/node/commit/96b4af109b)]
- **deps**: update googletest to
[`d89aac5`](https://redirect.github.com/nodejs/node/commit/d89aac5f0dd4021198d903d39de16f896726de21)
(Node.js GitHub Bot)
[#65153](https://redirect.github.com/nodejs/node/pull/65153)
-
\[[`774f663c56`](https://redirect.github.com/nodejs/node/commit/774f663c56)]
- **dgram**: don't swallow bind errors when callback is provided
(armanmikoyan)
[#62602](https://redirect.github.com/nodejs/node/pull/62602)
-
\[[`94b118d62e`](https://redirect.github.com/nodejs/node/commit/94b118d62e)]
- **diagnostics\_channel**: validate before channel activation
(Trivikram Kamat)
[#65313](https://redirect.github.com/nodejs/node/pull/65313)
-
\[[`09788665bd`](https://redirect.github.com/nodejs/node/commit/09788665bd)]
- **dns**: validate address type in lookupService (Lazizbek Ergashev)
[#64878](https://redirect.github.com/nodejs/node/pull/64878)
-
\[[`15f95fc0e2`](https://redirect.github.com/nodejs/node/commit/15f95fc0e2)]
- **dns**: validate port range in `setServers()` (René)
[#65021](https://redirect.github.com/nodejs/node/pull/65021)
-
\[[`37b9e9a154`](https://redirect.github.com/nodejs/node/commit/37b9e9a154)]
- **dns**: fix crash on setServers with port 0 (Lazizbek Ergashev)
[#65009](https://redirect.github.com/nodejs/node/pull/65009)
-
\[[`cd6205fa0d`](https://redirect.github.com/nodejs/node/commit/cd6205fa0d)]
- **doc**: update AHAFS reference link (Taeuk Ha)
[#65481](https://redirect.github.com/nodejs/node/pull/65481)
-
\[[`0e6f9ae42e`](https://redirect.github.com/nodejs/node/commit/0e6f9ae42e)]
- **doc**: fix property names in os.networkInterfaces() example (Jihwan)
[#65469](https://redirect.github.com/nodejs/node/pull/65469)
-
\[[`034a827b41`](https://redirect.github.com/nodejs/node/commit/034a827b41)]
- **doc**: fix broken links in cli.md (Donghoon Kang)
[#65412](https://redirect.github.com/nodejs/node/pull/65412)
-
\[[`eb364621d4`](https://redirect.github.com/nodejs/node/commit/eb364621d4)]
- **doc**: remove outdated WASI version fallback (이혜미)
[#65303](https://redirect.github.com/nodejs/node/pull/65303)
-
\[[`b13f425bf8`](https://redirect.github.com/nodejs/node/commit/b13f425bf8)]
- **doc**: fix broken GYP link in n-api.md (Donghoon Kang)
[#65413](https://redirect.github.com/nodejs/node/pull/65413)
-
\[[`45c4011067`](https://redirect.github.com/nodejs/node/commit/45c4011067)]
- **doc**: document that an empty OPENSSL\_CONF skips config loading
(Orgad Shaneh)
[#64949](https://redirect.github.com/nodejs/node/pull/64949)
-
\[[`fde6776c5f`](https://redirect.github.com/nodejs/node/commit/fde6776c5f)]
- **doc**: fix broken TLS security level example (soreavis)
[#65391](https://redirect.github.com/nodejs/node/pull/65391)
-
\[[`290c1fec04`](https://redirect.github.com/nodejs/node/commit/290c1fec04)]
- **doc**: clarify socket destroyed behavior (Dayun)
[#65395](https://redirect.github.com/nodejs/node/pull/65395)
-
\[[`a7e8269947`](https://redirect.github.com/nodejs/node/commit/a7e8269947)]
- **doc**: update outdated nodejs.org guide links (Donghoon Kang)
[#65394](https://redirect.github.com/nodejs/node/pull/65394)
-
\[[`7809f11249`](https://redirect.github.com/nodejs/node/commit/7809f11249)]
- **doc**: clarify that ipv4 mapped to ipv6 are classified as ipv6
(Vedant Kulkarni)
[#62117](https://redirect.github.com/nodejs/node/pull/62117)
-
\[[`64cd3a6e95`](https://redirect.github.com/nodejs/node/commit/64cd3a6e95)]
- **doc**: clarify how fs.Dirent file types are determined (soreavis)
[#64532](https://redirect.github.com/nodejs/node/pull/64532)
-
\[[`9b92fdce14`](https://redirect.github.com/nodejs/node/commit/9b92fdce14)]
- **doc**: update security release prepare command (Rafael Gonzaga)
[#64699](https://redirect.github.com/nodejs/node/pull/64699)
-
\[[`6f9b9df3c1`](https://redirect.github.com/nodejs/node/commit/6f9b9df3c1)]
- **doc**: clarify copyFile symlink behavior (T)
[#62941](https://redirect.github.com/nodejs/node/pull/62941)
-
\[[`2480acb550`](https://redirect.github.com/nodejs/node/commit/2480acb550)]
- **doc**: document setRawMode write access on Windows (Erik Demaine)
[#63856](https://redirect.github.com/nodejs/node/pull/63856)
-
\[[`a1e9c3a5db`](https://redirect.github.com/nodejs/node/commit/a1e9c3a5db)]
- **doc**: add missing return types in fs.md (Chaseton Collins)
[#65307](https://redirect.github.com/nodejs/node/pull/65307)
-
\[[`4533572040`](https://redirect.github.com/nodejs/node/commit/4533572040)]
- **doc**: add missing return types in buffer.md (Yuya Inoue)
[#65308](https://redirect.github.com/nodejs/node/pull/65308)
-
\[[`39ecedbbd2`](https://redirect.github.com/nodejs/node/commit/39ecedbbd2)]
- **doc**: fix lint clean command (greenhead)
[#65274](https://redirect.github.com/nodejs/node/pull/65274)
-
\[[`0b1fb8fcd8`](https://redirect.github.com/nodejs/node/commit/0b1fb8fcd8)]
- **doc**: fix typo in onboarding.md (서울민트초코)
[#65295](https://redirect.github.com/nodejs/node/pull/65295)
-
\[[`3165b5d38a`](https://redirect.github.com/nodejs/node/commit/3165b5d38a)]
- **doc**: add missing `added:` tags to `fs.lchmod` (Lazizbek Ergashev)
[#65283](https://redirect.github.com/nodejs/node/pull/65283)
-
\[[`113b808e59`](https://redirect.github.com/nodejs/node/commit/113b808e59)]
- **doc**: fix SQLite changeset constant descriptions (greenhead)
[#65265](https://redirect.github.com/nodejs/node/pull/65265)
-
\[[`c3eb51d5a1`](https://redirect.github.com/nodejs/node/commit/c3eb51d5a1)]
- **doc**: document open pull request limit (Matteo Collina)
[#65250](https://redirect.github.com/nodejs/node/pull/65250)
-
\[[`d7accdcd52`](https://redirect.github.com/nodejs/node/commit/d7accdcd52)]
- **doc**: document http2 header constants (Harjoth Khara)
[#64548](https://redirect.github.com/nodejs/node/pull/64548)
-
\[[`f47111416f`](https://redirect.github.com/nodejs/node/commit/f47111416f)]
- **doc**: create ai-guidelines and include to CONTRIBUTING (Rafael
Gonzaga)
[#62105](https://redirect.github.com/nodejs/node/pull/62105)
-
\[[`c3b120e737`](https://redirect.github.com/nodejs/node/commit/c3b120e737)]
- **doc**: update synopsis (Augustin Mauroy)
[#65171](https://redirect.github.com/nodejs/node/pull/65171)
-
\[[`39f4c831fd`](https://redirect.github.com/nodejs/node/commit/39f4c831fd)]
- **doc**: fix broken internal links (greenhead)
[#64901](https://redirect.github.com/nodejs/node/pull/64901)
-
\[[`be25cdd69e`](https://redirect.github.com/nodejs/node/commit/be25cdd69e)]
- **doc**: report proper return type on urlPattern.test (Brian
Muenzenmeyer)
[#64831](https://redirect.github.com/nodejs/node/pull/64831)
-
\[[`1bf7737810`](https://redirect.github.com/nodejs/node/commit/1bf7737810)]
- **doc**: fix permission documentation examples (greenhead)
[#64897](https://redirect.github.com/nodejs/node/pull/64897)
-
\[[`b7932e68a1`](https://redirect.github.com/nodejs/node/commit/b7932e68a1)]
- **doc**: document sqlite parameter binding (Guilherme Araújo)
[#65089](https://redirect.github.com/nodejs/node/pull/65089)
-
\[[`5234a5169c`](https://redirect.github.com/nodejs/node/commit/5234a5169c)]
- **doc**: finalize statements in sqlite examples (Guilherme Araújo)
[#65088](https://redirect.github.com/nodejs/node/pull/65088)
-
\[[`39ea929da7`](https://redirect.github.com/nodejs/node/commit/39ea929da7)]
- **doc**: document quic stopSending() and resetStream() (Issac)
[#64888](https://redirect.github.com/nodejs/node/pull/64888)
-
\[[`2ba198db73`](https://redirect.github.com/nodejs/node/commit/2ba198db73)]
- **doc**: clarify sqlite bare parameter default (Sumit Kumar Das)
[#62009](https://redirect.github.com/nodejs/node/pull/62009)
-
\[[`314f9b200f`](https://redirect.github.com/nodejs/node/commit/314f9b200f)]
- **doc**: remove usage of `util.inherits` (Augustin Mauroy)
[#60817](https://redirect.github.com/nodejs/node/pull/60817)
-
\[[`d82a61662c`](https://redirect.github.com/nodejs/node/commit/d82a61662c)]
- **doc**: fix grammar in worker\_threads.md (이혜미)
[#64913](https://redirect.github.com/nodejs/node/pull/64913)
-
\[[`44c0c8ff5b`](https://redirect.github.com/nodejs/node/commit/44c0c8ff5b)]
- **doc**: clarify OpenSSL FIPS configuration (Filip Skokan)
[#64982](https://redirect.github.com/nodejs/node/pull/64982)
-
\[[`9b2ca70e0d`](https://redirect.github.com/nodejs/node/commit/9b2ca70e0d)]
- **doc**: remove `--expose-gc` flag from CLI documentation (Dario
Piotrowicz)
[#58909](https://redirect.github.com/nodejs/node/pull/58909)
-
\[[`a0a12397b9`](https://redirect.github.com/nodejs/node/commit/a0a12397b9)]
- **doc**: document ArrayBuffer support in pbkd2Sync (kyungrae2002)
[#64976](https://redirect.github.com/nodejs/node/pull/64976)
-
\[[`b48699e077`](https://redirect.github.com/nodejs/node/commit/b48699e077)]
- **doc**: correct default highWaterMark values (Yilong Li)
[#64617](https://redirect.github.com/nodejs/node/pull/64617)
-
\[[`0312ee133c`](https://redirect.github.com/nodejs/node/commit/0312ee133c)]
- **esm**: avoid super-linear data URL MIME regex (Sumit Kumar Das)
[#61951](https://redirect.github.com/nodejs/node/pull/61951)
-
\[[`cd84d55c81`](https://redirect.github.com/nodejs/node/commit/cd84d55c81)]
- **esm**: only register text format when enabled (Efe Karasakal)
[#64992](https://redirect.github.com/nodejs/node/pull/64992)
-
\[[`c0a8ef611e`](https://redirect.github.com/nodejs/node/commit/c0a8ef611e)]
- **esm**: fix wasm import name in error message (이혜미)
[#64950](https://redirect.github.com/nodejs/node/pull/64950)
-
\[[`e6c34f90c2`](https://redirect.github.com/nodejs/node/commit/e6c34f90c2)]
- **events**: inline iterationCondition hybrid dispatch closure (Szymon
Łągiewka)
[#64473](https://redirect.github.com/nodejs/node/pull/64473)
-
\[[`6ee4b40c91`](https://redirect.github.com/nodejs/node/commit/6ee4b40c91)]
- **events**: inline createEvent hybrid dispatch closure (Szymon
Łągiewka)
[#64473](https://redirect.github.com/nodejs/node/pull/64473)
-
\[[`367549eed5`](https://redirect.github.com/nodejs/node/commit/367549eed5)]
- **fs**: use sized reads for large files in readFileUtf8 (Shelley Vohr)
[#65328](https://redirect.github.com/nodejs/node/pull/65328)
-
\[[`8a5b1ae4c2`](https://redirect.github.com/nodejs/node/commit/8a5b1ae4c2)]
- **fs**: fix realpath of namespaced drive paths (Jason Zhang)
[#65378](https://redirect.github.com/nodejs/node/pull/65378)
-
\[[`c9233b950d`](https://redirect.github.com/nodejs/node/commit/c9233b950d)]
- **fs**: fix glob early return skipping sibling entries (Srinu desetti)
[#64895](https://redirect.github.com/nodejs/node/pull/64895)
-
\[[`bc54dd8905`](https://redirect.github.com/nodejs/node/commit/bc54dd8905)]
- **fs**: pass symlink type in cp when filter is provided (Jerry Zhao)
[#62654](https://redirect.github.com/nodejs/node/pull/62654)
-
\[[`fcb4333aca`](https://redirect.github.com/nodejs/node/commit/fcb4333aca)]
- **fs**: allocate FSReqPromise stat arrays lazily (Samuel Attard)
[#63886](https://redirect.github.com/nodejs/node/pull/63886)
-
\[[`c35876154e`](https://redirect.github.com/nodejs/node/commit/c35876154e)]
- **fs**: fix out-of-bounds write in mkdtemp for long prefixes
(Hierax\_Umbra)
[#64770](https://redirect.github.com/nodejs/node/pull/64770)
-
\[[`b269616936`](https://redirect.github.com/nodejs/node/commit/b269616936)]
- **fs**: treat `std::errc::permission_denied` as `EPERM` error (Kirill
Saied)
[#64698](https://redirect.github.com/nodejs/node/pull/64698)
-
\[[`212fe77e76`](https://redirect.github.com/nodejs/node/commit/212fe77e76)]
- **fs**: add windowsHandle option to file streams (Kirill Saied)
[#63851](https://redirect.github.com/nodejs/node/pull/63851)
-
\[[`75df6cb435`](https://redirect.github.com/nodejs/node/commit/75df6cb435)]
- **http**: improve performance with known-length calls to end() (Tim
Perry)
[#65466](https://redirect.github.com/nodejs/node/pull/65466)
-
\[[`48d9cd4a28`](https://redirect.github.com/nodejs/node/commit/48d9cd4a28)]
- **http**: cache maxHeaderPairs per header section (GetThatCookie)
[#64988](https://redirect.github.com/nodejs/node/pull/64988)
-
\[[`04785c8f43`](https://redirect.github.com/nodejs/node/commit/04785c8f43)]
- **http**: fix keylog listener setup on existing agent sockets (Shani
Singh)
[#65066](https://redirect.github.com/nodejs/node/pull/65066)
-
\[[`4b90031534`](https://redirect.github.com/nodejs/node/commit/4b90031534)]
- **http**: emit drain on socket takeover and avoid stale HWM reuse
(Naman Trivedi)
[#64991](https://redirect.github.com/nodejs/node/pull/64991)
-
\[[`83a27559cd`](https://redirect.github.com/nodejs/node/commit/83a27559cd)]
- **http2**: adapt receive deferral for Node.js 24 (Matteo Collina)
[#65093](https://redirect.github.com/nodejs/node/pull/65093)
-
\[[`f43bed0ecc`](https://redirect.github.com/nodejs/node/commit/f43bed0ecc)]
- **http2**: avoid uaf while receiving and sending rst\_stream (esgor)
[#64166](https://redirect.github.com/nodejs/node/pull/64166)
-
\[[`b42d664321`](https://redirect.github.com/nodejs/node/commit/b42d664321)]
- **inspector**: avoid calling into JS from V8 interrupts (Joyee Cheung)
[#65028](https://redirect.github.com/nodejs/node/pull/65028)
-
\[[`6bf852197d`](https://redirect.github.com/nodejs/node/commit/6bf852197d)]
- **lib**: use bracket notation instead of startsWith/endsWith for
single char (Taejin Kim)
[#61500](https://redirect.github.com/nodejs/node/pull/61500)
-
\[[`151ca7e104`](https://redirect.github.com/nodejs/node/commit/151ca7e104)]
- **lib**: harden webidl dictionary member reads (Filip Skokan)
[#65115](https://redirect.github.com/nodejs/node/pull/65115)
-
\[[`7e8c2c9f44`](https://redirect.github.com/nodejs/node/commit/7e8c2c9f44)]
- **lib**: use validateArray for array arguments (greenhead)
[#64959](https://redirect.github.com/nodejs/node/pull/64959)
-
\[[`424fe2bc5a`](https://redirect.github.com/nodejs/node/commit/424fe2bc5a)]
- **lib**: add and test \[EnforceRange] in webcrypto dictionaries (Filip
Skokan)
[#65091](https://redirect.github.com/nodejs/node/pull/65091)
-
\[[`0529772798`](https://redirect.github.com/nodejs/node/commit/0529772798)]
- **(SEMVER-MINOR)** **lib,src**: improve histogram implementation
(James M Snell)
[#65024](https://redirect.github.com/nodejs/node/pull/65024)
-
\[[`186e1b76e8`](https://redirect.github.com/nodejs/node/commit/186e1b76e8)]
- **meta**: move targos to emeritus (Michaël Zasso)
[#65393](https://redirect.github.com/nodejs/node/pull/65393)
-
\[[`b41b07c72a`](https://redirect.github.com/nodejs/node/commit/b41b07c72a)]
- **meta**: add unified http api initiative (James M Snell)
[#65139](https://redirect.github.com/nodejs/node/pull/65139)
-
\[[`f85b6ecd67`](https://redirect.github.com/nodejs/node/commit/f85b6ecd67)]
- **meta**: move one or more collaborators to emeritus (Node.js GitHub
Bot) [#65182](https://redirect.github.com/nodejs/node/pull/65182)
-
\[[`8f3d01bdce`](https://redirect.github.com/nodejs/node/commit/8f3d01bdce)]
- **meta**: add Aviv Keller to `.mailmap` (Aviv Keller)
[#65048](https://redirect.github.com/nodejs/node/pull/65048)
-
\[[`cfad1d5b28`](https://redirect.github.com/nodejs/node/commit/cfad1d5b28)]
- **meta**: update sccache to 0.17.0 (René)
[#64985](https://redirect.github.com/nodejs/node/pull/64985)
-
\[[`349c53c441`](https://redirect.github.com/nodejs/node/commit/349c53c441)]
- **module**: report unreadable package.json (Paul Bouchon)
[#65223](https://redirect.github.com/nodejs/node/pull/65223)
-
\[[`bd21e6706e`](https://redirect.github.com/nodejs/node/commit/bd21e6706e)]
- **module**: cache nearest parent package.json per directory (Shelley
Vohr)
[#65326](https://redirect.github.com/nodejs/node/pull/65326)
-
\[[`961bd04370`](https://redirect.github.com/nodejs/node/commit/961bd04370)]
- **module**: fix --check on ambiguous ESM files (Paul Bouchon)
[#65203](https://redirect.github.com/nodejs/node/pull/65203)
-
\[[`f45ef73420`](https://redirect.github.com/nodejs/node/commit/f45ef73420)]
- **net**: handle undefined parent in \_unrefTimer and \_destroy
(Shivay-98)
[#64644](https://redirect.github.com/nodejs/node/pull/64644)
-
\[[`41c7062b81`](https://redirect.github.com/nodejs/node/commit/41c7062b81)]
- **(SEMVER-MINOR)** **net**: improve performance of net.BlockList
(James M Snell)
[#64974](https://redirect.github.com/nodejs/node/pull/64974)
-
\[[`5197b5a3c5`](https://redirect.github.com/nodejs/node/commit/5197b5a3c5)]
- **(SEMVER-MINOR)** **perf\_hooks**: add statistical hypothesis testing
to histogram (James M Snell)
[#65416](https://redirect.github.com/nodejs/node/pull/65416)
-
\[[`1722ddac28`](https://redirect.github.com/nodejs/node/commit/1722ddac28)]
- **permission**: enforce addon permission in GetLinkedBinding (Rafael
Gonzaga)
[#65432](https://redirect.github.com/nodejs/node/pull/65432)
-
\[[`dff2b675db`](https://redirect.github.com/nodejs/node/commit/dff2b675db)]
- **process**: validate resource stats array offsets (Archkon)
[#65098](https://redirect.github.com/nodejs/node/pull/65098)
-
\[[`f277983e7b`](https://redirect.github.com/nodejs/node/commit/f277983e7b)]
- **quic**: changes for nghttp3\_conn\_close\_stream2 (Marten Richter)
[#64574](https://redirect.github.com/nodejs/node/pull/64574)
-
\[[`a4c770c78e`](https://redirect.github.com/nodejs/node/commit/a4c770c78e)]
- **quic**: mark drain promise handled (James M Snell)
[#65319](https://redirect.github.com/nodejs/node/pull/65319)
-
\[[`2460b171c5`](https://redirect.github.com/nodejs/node/commit/2460b171c5)]
- **quic**: reset rejected HTTP/3 request streams with
H3\_REQUEST\_REJECTED (trivenay)
[#65442](https://redirect.github.com/nodejs/node/pull/65442)
-
\[[`18a7ccf302`](https://redirect.github.com/nodejs/node/commit/18a7ccf302)]
- **quic**: write desired size needs update on maxstream (Marten
Richter)
[#64768](https://redirect.github.com/nodejs/node/pull/64768)
-
\[[`9017f4a780`](https://redirect.github.com/nodejs/node/commit/9017f4a780)]
- **quic**: do not destroy incoming streams that have a consumer
(trivenay)
[#65335](https://redirect.github.com/nodejs/node/pull/65335)
-
\[[`ddc41c1ef4`](https://redirect.github.com/nodejs/node/commit/ddc41c1ef4)]
- **quic**: fix wake up blob (Marten Richter)
[#64044](https://redirect.github.com/nodejs/node/pull/64044)
-
\[[`88bee43d7c`](https://redirect.github.com/nodejs/node/commit/88bee43d7c)]
- **quic**: convert incoming :status header to number (Hallison Pereira
Melo)
[#63589](https://redirect.github.com/nodejs/node/pull/63589)
-
\[[`cd776fe97c`](https://redirect.github.com/nodejs/node/commit/cd776fe97c)]
- **quic**: fix infinite loop if STOP\_SENDING received on a buffering
stream (Tim Perry)
[#64715](https://redirect.github.com/nodejs/node/pull/64715)
-
\[[`4f6eda3c23`](https://redirect.github.com/nodejs/node/commit/4f6eda3c23)]
- **repl**: keep entries added while history file is loading (Mhayk
Whandson)
[#64513](https://redirect.github.com/nodejs/node/pull/64513)
-
\[[`cd1e6ce29b`](https://redirect.github.com/nodejs/node/commit/cd1e6ce29b)]
- **repl**: add benchmarks (Aviv Keller)
[#64590](https://redirect.github.com/nodejs/node/pull/64590)
-
\[[`2ba740669d`](https://redirect.github.com/nodejs/node/commit/2ba740669d)]
- **sea**: avoid dangling CLI option pointers (Archkon)
[#64755](https://redirect.github.com/nodejs/node/pull/64755)
-
\[[`ec5e2d6856`](https://redirect.github.com/nodejs/node/commit/ec5e2d6856)]
- **sea**: handle NUL bytes in asset keys (Archkon)
[#64773](https://redirect.github.com/nodejs/node/pull/64773)
-
\[[`703b854293`](https://redirect.github.com/nodejs/node/commit/703b854293)]
- **sea**: reject trailing content in config JSON (Archkon)
[#64774](https://redirect.github.com/nodejs/node/pull/64774)
-
\[[`a61a5fdd1c`](https://redirect.github.com/nodejs/node/commit/a61a5fdd1c)]
- **sqlite**: prevent reentrant session.close() (Trivikram Kamat)
[#65349](https://redirect.github.com/nodejs/node/pull/65349)
-
\[[`6ae81be0a3`](https://redirect.github.com/nodejs/node/commit/6ae81be0a3)]
- **sqlite**: reject statement-less SQL in prepare() (Trevor Burnham)
[#65157](https://redirect.github.com/nodejs/node/pull/65157)
-
\[[`043dfe4996`](https://redirect.github.com/nodejs/node/commit/043dfe4996)]
- **sqlite**: reject statement-less SQL in SQLTagStore (Trevor Burnham)
[#65157](https://redirect.github.com/nodejs/node/pull/65157)
-
\[[`b8faee02e1`](https://redirect.github.com/nodejs/node/commit/b8faee02e1)]
- **sqlite**: check null returns from sqlite value functions (Nora
Dossche)
[#63288](https://redirect.github.com/nodejs/node/pull/63288)
-
\[[`d6d2a71bee`](https://redirect.github.com/nodejs/node/commit/d6d2a71bee)]
- **sqlite**: validate maxSize argument in createTagStore() (Anshika
Jain)
[#63792](https://redirect.github.com/nodejs/node/pull/63792)
-
\[[`61a046309f`](https://redirect.github.com/nodejs/node/commit/61a046309f)]
- **sqlite**: reject non-positive backup rates (Trivikram Kamat)
[#64893](https://redirect.github.com/nodejs/node/pull/64893)
-
\[[`514e3f30fb`](https://redirect.github.com/nodejs/node/commit/514e3f30fb)]
- **sqlite**: clear SQLTagStore bindings (Matteo Collina)
[#65041](https://redirect.github.com/nodejs/node/pull/65041)
-
\[[`c1542255b8`](https://redirect.github.com/nodejs/node/commit/c1542255b8)]
- **sqlite**: bind Boolean (mike-git374)
[#62001](https://redirect.github.com/nodejs/node/pull/62001)
-
\[[`cdb732beb5`](https://redirect.github.com/nodejs/node/commit/cdb732beb5)]
- **sqlite**: fix undefined behaviour in `Session::Changeset()` (Nora
Dossche)
[#63637](https://redirect.github.com/nodejs/node/pull/63637)
-
\[[`fbe8861111`](https://redirect.github.com/nodejs/node/commit/fbe8861111)]
- **sqlite**: bind ArrayBuffer (mike-git374)
[#62061](https://redirect.github.com/nodejs/node/pull/62061)
-
\[[`e3c6bd6bc8`](https://redirect.github.com/nodejs/node/commit/e3c6bd6bc8)]
- **src**: add missing vector include (Filip Skokan)
[#65622](https://redirect.github.com/nodejs/node/pull/65622)
-
\[[`793cf69df8`](https://redirect.github.com/nodejs/node/commit/793cf69df8)]
- **src**: fix heap value deduplication in embedder graph (Ilyas Shabi)
[#64801](https://redirect.github.com/nodejs/node/pull/64801)
-
\[[`ea5935b04c`](https://redirect.github.com/nodejs/node/commit/ea5935b04c)]
- **src**: fix out-of-bounds write when transcoding odd-length ucs2
(nashit hayat)
[#64512](https://redirect.github.com/nodejs/node/pull/64512)
-
\[[`22e5023f4d`](https://redirect.github.com/nodejs/node/commit/22e5023f4d)]
- **src**: escape Windows environment variables in task runner (Antoine
du Hamel)
[#65217](https://redirect.github.com/nodejs/node/pull/65217)
-
\[[`a0f3c62bd9`](https://redirect.github.com/nodejs/node/commit/a0f3c62bd9)]
- **src**: simplify c++ diagnostics channel API (James M Snell)
[#65158](https://redirect.github.com/nodejs/node/pull/65158)
-
\[[`8e831a3d2e`](https://redirect.github.com/nodejs/node/commit/8e831a3d2e)]
- **src**: make minor cleanup to permission checks (James M Snell)
[#65158](https://redirect.github.com/nodejs/node/pull/65158)
-
\[[`968b2ca3a3`](https://redirect.github.com/nodejs/node/commit/968b2ca3a3)]
- **src**: use DictionaryTemplate for permission diag channel message
(James M Snell)
[#65158](https://redirect.github.com/nodejs/node/pull/65158)
-
\[[`18e16e7f8d`](https://redirect.github.com/nodejs/node/commit/18e16e7f8d)]
- **src**: cache permission strings (James M Snell)
[#65158](https://redirect.github.com/nodejs/node/pull/65158)
-
\[[`c8625a4b6f`](https://redirect.github.com/nodejs/node/commit/c8625a4b6f)]
- **src**: add SetAbortHandler (Max H Fisher)
[#64684](https://redirect.github.com/nodejs/node/pull/64684)
-
\[[`c990140d60`](https://redirect.github.com/nodejs/node/commit/c990140d60)]
- **src**: match cmd.exe case-insensitively in task runner (Archkon)
[#64907](https://redirect.github.com/nodejs/node/pull/64907)
-
\[[`d7463b9dbc`](https://redirect.github.com/nodejs/node/commit/d7463b9dbc)]
- **src**: reuse cached env strings in remaining files (Seongeun Lee)
[#65039](https://redirect.github.com/nodejs/node/pull/65039)
-
\[[`b055a43b93`](https://redirect.github.com/nodejs/node/commit/b055a43b93)]
- **src**: expose Windows-only fs open flags (Kirill Saied)
[#64775](https://redirect.github.com/nodejs/node/pull/64775)
-
\[[`7f21e37496`](https://redirect.github.com/nodejs/node/commit/7f21e37496)]
- **src**: report why --enable-fips failed (Filip Skokan)
[#64979](https://redirect.github.com/nodejs/node/pull/64979)
-
\[[`8c11beae27`](https://redirect.github.com/nodejs/node/commit/8c11beae27)]
- **src**: update repeated use strings to env (James M Snell)
[#64760](https://redirect.github.com/nodejs/node/pull/64760)
-
\[[`9e2c477e26`](https://redirect.github.com/nodejs/node/commit/9e2c477e26)]
- **stream**: normalize fused stateless transform results (Trivikram
Kamat)
[#65367](https://redirect.github.com/nodejs/node/pull/65367)
-
\[[`107e96dd41`](https://redirect.github.com/nodejs/node/commit/107e96dd41)]
- **stream**: encode whole chunks in TextEncoderStream (Matteo Collina)
[#65414](https://redirect.github.com/nodejs/node/pull/65414)
-
\[[`164068279b`](https://redirect.github.com/nodejs/node/commit/164068279b)]
- **stream**: prevent share from eagerly draining source (Trivikram
Kamat)
[#65338](https://redirect.github.com/nodejs/node/pull/65338)
-
\[[`93d822bdc1`](https://redirect.github.com/nodejs/node/commit/93d822bdc1)]
- **stream**: drain pending writes before broadcast end (Trivikram
Kamat)
[#65334](https://redirect.github.com/nodejs/node/pull/65334)
-
\[[`6b8b9c362f`](https://redirect.github.com/nodejs/node/commit/6b8b9c362f)]
- **stream**: reuse unexposed managed read buffers (GetThatCookie)
[#64990](https://redirect.github.com/nodejs/node/pull/64990)
-
\[[`4ec4fab367`](https://redirect.github.com/nodejs/node/commit/4ec4fab367)]
- **stream**: avoid duplicated endReadableNT scheduling (Matteo Collina)
[#65310](https://redirect.github.com/nodejs/node/pull/65310)
-
\[[`86d1196ebf`](https://redirect.github.com/nodejs/node/commit/86d1196ebf)]
- **stream**: decouple transform backpressure changes (Matteo Collina)
[#65143](https://redirect.github.com/nodejs/node/pull/65143)
-
\[[`b8a7a75b19`](https://redirect.github.com/nodejs/node/commit/b8a7a75b19)]
- **stream**: reject pull on signal abort during flush (Trivikram Kamat)
[#65346](https://redirect.github.com/nodejs/node/pull/65346)
-
\[[`386ed6a06d`](https://redirect.github.com/nodejs/node/commit/386ed6a06d)]
- **stream**: avoid leaking consumers on signal failure (Trivikram
Kamat)
[#65299](https://redirect.github.com/nodejs/node/pull/65299)
-
\[[`74d53bd73b`](https://redirect.github.com/nodejs/node/commit/74d53bd73b)]
- **stream**: use validateObject for zlib/iter params (greenhead)
[#65015](https://redirect.github.com/nodejs/node/pull/65015)
-
\[[`3a174ce16b`](https://redirect.github.com/nodejs/node/commit/3a174ce16b)]
- **stream**: use validateNumber for BYOB reader options.min (greenhead)
[#65014](https://redirect.github.com/nodejs/node/pull/65014)
-
\[[`859ea01cb2`](https://redirect.github.com/nodejs/node/commit/859ea01cb2)]
- **stream**: consolidate non-op algorithm callbacks (Matteo Collina)
[#65138](https://redirect.github.com/nodejs/node/pull/65138)
-
\[[`c577669825`](https://redirect.github.com/nodejs/node/commit/c577669825)]
- **stream**: cut promise churn in webstreams hot paths (Matteo Collina)
[#65138](https://redirect.github.com/nodejs/node/pull/65138)
-
\[[`d631e910db`](https://redirect.github.com/nodejs/node/commit/d631e910db)]
- **stream**: preserve falsy cancellation reasons (Trivikram Kamat)
[#64705](https://redirect.github.com/nodejs/node/pull/64705)
-
\[[`f9c21eabbd`](https://redirect.github.com/nodejs/node/commit/f9c21eabbd)]
- **stream**: use validateBuffer for BYOB reader view (greenhead)
[#65046](https://redirect.github.com/nodejs/node/pull/65046)
-
\[[`b89c8f5d1e`](https://redirect.github.com/nodejs/node/commit/b89c8f5d1e)]
- **stream**: fix recursive WritableStream abort (Jeong SeokChan)
[#64825](https://redirect.github.com/nodejs/node/pull/64825)
-
\[[`39e0457e86`](https://redirect.github.com/nodejs/node/commit/39e0457e86)]
- **test**: fix link-local dgram scope assertion (Filip Skokan)
[#65629](https://redirect.github.com/nodejs/node/pull/65629)
-
\[[`1433cf9d5b`](https://redirect.github.com/nodejs/node/commit/1433cf9d5b)]
- **test**: account for varied OpenSSL CCM final behaviours (Filip
Skokan)
[#65542](https://redirect.github.com/nodejs/node/pull/65542)
-
\[[`7d135d24b7`](https://redirect.github.com/nodejs/node/commit/7d135d24b7)]
- **test**: convert forEach to for of test-messageevent-brandcheck file
(Nachiketa Pathak)
[#65279](https://redirect.github.com/nodejs/node/pull/65279)
-
\[[`421ee11715`](https://redirect.github.com/nodejs/node/commit/421ee11715)]
- **test**: use spawnSyncAndAssert in windowsHide test (Junsoo Ha)
[#65351](https://redirect.github.com/nodejs/node/pull/65351)
-
\[[`929d5705bc`](https://redirect.github.com/nodejs/node/commit/929d5705bc)]
- **test**: remove test-debugger-run-after-quit-restart as flaky on
macOS (Yuya Inoue)
[#65424](https://redirect.github.com/nodejs/node/pull/65424)
-
\[[`f38f154c14`](https://redirect.github.com/nodejs/node/commit/f38f154c14)]
- **test**: simplify test-timers-interval-promisified.js (Donghoon Kang)
[#65322](https://redirect.github.com/nodejs/node/pull/65322)
-
\[[`a98e27f2a9`](https://redirect.github.com/nodejs/node/commit/a98e27f2a9)]
- **test**: add Headers coverage and benchmark (Yagiz Nizipli)
[#65365](https://redirect.github.com/nodejs/node/pull/65365)
-
\[[`38fdbb62aa`](https://redirect.github.com/nodejs/node/commit/38fdbb62aa)]
- **test**: deflake test-net-listen-ipv6only (sangwook)
[#64173](https://redirect.github.com/nodejs/node/pull/64173)
-
\[[`06c7684b01`](https://redirect.github.com/nodejs/node/commit/06c7684b01)]
- **test**: use common/child\_process spawnSync helpers (Junsoo Ha)
[#65377](https://redirect.github.com/nodejs/node/pull/65377)
-
\[[`6438c70004`](https://redirect.github.com/nodejs/node/commit/6438c70004)]
- **test**: fix Linux debug skip in SEA test guard (구현우)
[#63751](https://redirect.github.com/nodejs/node/pull/63751)
-
\[[`fe0e4f1b65`](https://redirect.github.com/nodejs/node/commit/fe0e4f1b65)]
- **test**: avoid timer race in event loop delay test (Trivikram Kamat)
[#64728](https://redirect.github.com/nodejs/node/pull/64728)
-
\[[`6ff69baea8`](https://redirect.github.com/nodejs/node/commit/6ff69baea8)]
- **test**: enforce exit code in `test-http-server-stale-close` (Antoine
du Hamel)
[#65198](https://redirect.github.com/nodejs/node/pull/65198)
-
\[[`ba87603016`](https://redirect.github.com/nodejs/node/commit/ba87603016)]
- **test**: convert test-async-local-storage-bind to async loop
(freida-code)
[#65270](https://redirect.github.com/nodejs/node/pull/65270)
-
\[[`8d6b89f454`](https://redirect.github.com/nodejs/node/commit/8d6b89f454)]
- **test**: replace `forEach()` with `for...of` in parallel tests
(Phillip Markert)
[#65272](https://redirect.github.com/nodejs/node/pull/65272)
-
\[[`a60572a7bb`](https://redirect.github.com/nodejs/node/commit/a60572a7bb)]
- **test**: convert forEach to for in test-constant.js file (NIxxy25)
[#65271](https://redirect.github.com/nodejs/node/pull/65271)
-
\[[`f82060c6ce`](https://redirect.github.com/nodejs/node/commit/f82060c6ce)]
- **test**: use for-of instead of forEach (Felix P.)
[#65268](https://redirect.github.com/nodejs/node/pull/65268)
-
\[[`5ded71f9cc`](https://redirect.github.com/nodejs/node/commit/5ded71f9cc)]
- **test**: cover `realpathSync` resolving symlinks after a FIFO stat
(Hendrik Liebau)
[#65113](https://redirect.github.com/nodejs/node/pull/65113)
-
\[[`ac9835225e`](https://redirect.github.com/nodejs/node/commit/ac9835225e)]
- **test**: account for \[EnforceRange] in
test-webcrypto-prototype-pollution (Filip Skokan)
[#65173](https://redirect.github.com/nodejs/node/pull/65173)
-
\[[`550d24277e`](https://redirect.github.com/nodejs/node/commit/550d24277e)]
- **test**: update WPT for WebCryptoAPI to
[`4c2fd05`](https://redirect.github.com/nodejs/node/commit/4c2fd05ed5)
(Node.js GitHub Bot)
[#65150](https://redirect.github.com/nodejs/node/pull/65150)
-
\[[`2aa26559f0`](https://redirect.github.com/nodejs/node/commit/2aa26559f0)]
- **test**: update WPT for urlpattern to
[`4832db4`](https://redirect.github.com/nodejs/node/commit/4832db4761)
(Node.js GitHub Bot)
[#65151](https://redirect.github.com/nodejs/node/pull/65151)
-
\[[`d45c010108`](https://redirect.github.com/nodejs/node/commit/d45c010108)]
- **test**: fix hidden error in test-http-server-stale-close.js (Meghan
Denny)
[#59357](https://redirect.github.com/nodejs/node/pull/59357)
-
\[[`881f8d092d`](https://redirect.github.com/nodejs/node/commit/881f8d092d)]
- **test**: avoid deadlock issue in pipeline http2 tests to fix
flakiness (Tim Perry)
[#65079](https://redirect.github.com/nodejs/node/pull/65079)
-
\[[`e4b1e3ee75`](https://redirect.github.com/nodejs/node/commit/e4b1e3ee75)]
- **test**: allow half-open CONNECT tunnel sockets (Trivikram Kamat)
[#64973](https://redirect.github.com/nodejs/node/pull/64973)
-
\[[`00f4240d48`](https://redirect.github.com/nodejs/node/commit/00f4240d48)]
- **test**: update passphrases to comply with the next OpenSSL FIPS mode
(Filip Skokan)
[#65077](https://redirect.github.com/nodejs/node/pull/65077)
-
\[[`cf7680efb7`](https://redirect.github.com/nodejs/node/commit/cf7680efb7)]
- **test**: use libuv clock for immediate queue test (Trivikram Kamat)
[#64889](https://redirect.github.com/nodejs/node/pull/64889)
-
\[[`b0c12772ff`](https://redirect.github.com/nodejs/node/commit/b0c12772ff)]
- **test**: increase timeout in probe-failure-hang-during-evaluate
(Joyee Cheung)
[#64719](https://redirect.github.com/nodejs/node/pull/64719)
-
\[[`7e279104b4`](https://redirect.github.com/nodejs/node/commit/7e279104b4)]
- **test**: update WPT for WebCryptoAPI to
[`82c3d90`](https://redirect.github.com/nodejs/node/commit/82c3d9069c)
(Node.js GitHub Bot)
[#64977](https://redirect.github.com/nodejs/node/pull/64977)
-
\[[`ac11f88d16`](https://redirect.github.com/nodejs/node/commit/ac11f88d16)]
- **test,doc**: cover and document multi-byte offset/size in randomFill
(kyungrae2002)
[#64834](https://redirect.github.com/nodejs/node/pull/64834)
-
\[[`67da38cada`](https://redirect.github.com/nodejs/node/commit/67da38cada)]
- **test\_runner**: match dotfiles in default coverage exclude
(semimikoh)
[#63401](https://redirect.github.com/nodejs/node/pull/63401)
-
\[[`b06c61a08f`](https://redirect.github.com/nodejs/node/commit/b06c61a08f)]
- **test\_runner**: print coverage and diagnostic info with dot reporter
(mag123c)
[#61423](https://redirect.github.com/nodejs/node/pull/61423)
-
\[[`7cb9c9c126`](https://redirect.github.com/nodejs/node/commit/7cb9c9c126)]
- **test\_runner**: use run options with isolation="none" (Sylvester
Keil)
[#62269](https://redirect.github.com/nodejs/node/pull/62269)
-
\[[`339acf4201`](https://redirect.github.com/nodejs/node/commit/339acf4201)]
- **test\_runner**: mock dual-package with conditional exports (Maruthan
G) [#62943](https://redirect.github.com/nodejs/node/pull/62943)
-
\[[`e7a68bca08`](https://redirect.github.com/nodejs/node/commit/e7a68bca08)]
- **test\_runner**: add classname hierarchy for JUnit reporter (mag123c)
[#60220](https://redirect.github.com/nodejs/node/pull/60220)
-
\[[`6a248acefe`](https://redirect.github.com/nodejs/node/commit/6a248acefe)]
- **test\_runner**: fix junit report on empty diagnostic (Lazizbek
Ergashev)
[#65357](https://redirect.github.com/nodejs/node/pull/65357)
-
\[[`d01dda79b6`](https://redirect.github.com/nodejs/node/commit/d01dda79b6)]
- **test\_runner**: do not tag-filter test file wrappers (Chemi Atlow)
[#65170](https://redirect.github.com/nodejs/node/pull/65170)
-
\[[`32ead10ddd`](https://redirect.github.com/nodejs/node/commit/32ead10ddd)]
- **test\_runner**: fix env option validation (Jihwan)
[#64865](https://redirect.github.com/nodejs/node/pull/64865)
-
\[[`b0ef155440`](https://redirect.github.com/nodejs/node/commit/b0ef155440)]
- **tls**: throw on invalid ALPNProtocols instead of aborting (Sankalp
Thakur)
[#65076](https://redirect.github.com/nodejs/node/pull/65076)
-
\[[`dcf65c50ce`](https://redirect.github.com/nodejs/node/commit/dcf65c50ce)]
- **tls**: fix authorized state on no-cert TLS1.3 client cert resumption
(Tim Perry)
[#64677](https://redirect.github.com/nodejs/node/pull/64677)
-
\[[`b0f54bda78`](https://redirect.github.com/nodejs/node/commit/b0f54bda78)]
- **tools**: improve commit queue failure comment (Filip Skokan)
[#65433](https://redirect.github.com/nodejs/node/pull/65433)
-
\[[`bc1f2718d5`](https://redirect.github.com/nodejs/node/commit/bc1f2718d5)]
- **tools**: fix max body length handler in `create-release-proposal.sh`
(Antoine du Hamel)
[#65455](https://redirect.github.com/nodejs/node/pull/65455)
-
\[[`bbe76516a9`](https://redirect.github.com/nodejs/node/commit/bbe76516a9)]
- **tools**: bump brace-expansion in `/tools/clang-format`
(dependabot\[bot])
[#64984](https://redirect.github.com/nodejs/node/pull/64984)
-
\[[`67697debdf`](https://redirect.github.com/nodejs/node/commit/67697debdf)]
- **tools**: make env variables consistent in cron jobs (Antoine du
Hamel)
[#65168](https://redirect.github.com/nodejs/node/pull/65168)
-
\[[`ac8a68ec92`](https://redirect.github.com/nodejs/node/commit/ac8a68ec92)]
- **tools**: only include fast-tracked and old enough PRs in CQ (Antoine
du Hamel)
[#65197](https://redirect.github.com/nodejs/node/pull/65197)
-
\[[`6d9999fa2e`](https://redirect.github.com/nodejs/node/commit/6d9999fa2e)]
- **tools**: remove skip logic in `commit-queue.sh` (Antoine du Hamel)
[#65162](https://redirect.github.com/nodejs/node/pull/65162)
-
\[[`60bfa1694e`](https://redirect.github.com/nodejs/node/commit/60bfa1694e)]
- **tools**: bump js-yaml from 4.2.0 to 4.3.1 in /tools/lint-md
(dependabot\[bot])
[#65129](https://redirect.github.com/nodejs/node/pull/65129)
-
\[[`782748527e`](https://redirect.github.com/nodejs/node/commit/782748527e)]
- **tools**: bump js-yaml from 4.2.0 to 4.3.1 in /tools/eslint
(dependabot\[bot])
[#65130](https://redirect.github.com/nodejs/node/pull/65130)
-
\[[`dac257340f`](https://redirect.github.com/nodejs/node/commit/dac257340f)]
- **tools**: fix GITHUB\_TOKEN permissions for CQ workflow (Antoine du
Hamel)
[#65192](https://redirect.github.com/nodejs/node/pull/65192)
-
\[[`e624785846`](https://redirect.github.com/nodejs/node/commit/e624785846)]
- **tools**: use the read-only token when filtering PRs in CQ (Antoine
du Hamel)
[#65169](https://redirect.github.com/nodejs/node/pull/65169)
-
\[[`7d9dcfaaa7`](https://redirect.github.com/nodejs/node/commit/7d9dcfaaa7)]
- **tools**: delay removal of `commit-queue` label (Antoine du Hamel)
[#65101](https://redirect.github.com/nodejs/node/pull/65101)
-
\[[`0d7c7936e7`](https://redirect.github.com/nodejs/node/commit/0d7c7936e7)]
- **tools**: move ncu config to global for commit queue (Filip Skokan)
[#65132](https://redirect.github.com/nodejs/node/pull/65132)
-
\[[`5e1db5a38a`](https://redirect.github.com/nodejs/node/commit/5e1db5a38a)]
- **tools**: prefilter commit queue metadata (Filip Skokan)
[#64343](https://redirect.github.com/nodejs/node/pull/64343)
-
\[[`f41509b91d`](https://redirect.github.com/nodejs/node/commit/f41509b91d)]
- **tools**: lazy-abort failed PR merges in CQ (Antoine du Hamel)
[#65004](https://redirect.github.com/nodejs/node/pull/65004)
-
\[[`ceb0e99acd`](https://redirect.github.com/nodejs/node/commit/ceb0e99acd)]
- **tools**: sync mk-ca-bundle.pl with curl (Archkon)
[#64753](https://redirect.github.com/nodejs/node/pull/64753)
-
\[[`600663b23f`](https://redirect.github.com/nodejs/node/commit/600663b23f)]
- **tty**: add raw-vt and io raw modes (Samuel Williams)
[#64140](https://redirect.github.com/nodejs/node/pull/64140)
-
\[[`a40bfc742e`](https://redirect.github.com/nodejs/node/commit/a40bfc742e)]
- **typings**: add signal\_wrap internal binding types (Seongeun Lee)
[#65229](https://redirect.github.com/nodejs/node/pull/65229)
-
\[[`b103a4a3b9`](https://redirect.github.com/nodejs/node/commit/b103a4a3b9)]
- **typings**: add diagnostics\_channel typings (Seongeun Lee)
[#65227](https://redirect.github.com/nodejs/node/pull/65227)
-
\[[`e64de34b89`](https://redirect.github.com/nodejs/node/commit/e64de34b89)]
- **typings**: add watchdog internal binding types (Seongeun Lee)
[#65228](https://redirect.github.com/nodejs/node/pull/65228)
-
\[[`c57c83b4d1`](https://redirect.github.com/nodejs/node/commit/c57c83b4d1)]
- **typings**: add internal\_only\_v8 binding typeis (Donghoon Kang)
[#65071](https://redirect.github.com/nodejs/node/pull/65071)
-
\[[`f15e8c9dcd`](https://redirect.github.com/nodejs/node/commit/f15e8c9dcd)]
- **typings**: add credentials internal binding types (Donghoon Kang)
[#65036](https://redirect.github.com/nodejs/node/pull/65036)
-
\[[`a500256b0b`](https://redirect.github.com/nodejs/node/commit/a500256b0b)]
- **url**: skip unused href reuse comparison (Yagiz Nizipli)
[#65361](https://redirect.github.com/nodejs/node/pull/65361)
-
\[[`58390f8bec`](https://redirect.github.com/nodejs/node/commit/58390f8bec)]
- **url**: speed up WHATWG URL parsing (Yagiz Nizipli)
[#65361](https://redirect.github.com/nodejs/node/pull/65361)
-
\[[`7d5428c812`](https://redirect.github.com/nodejs/node/commit/7d5428c812)]
- **url**: speed up URLSearchParams (Yagiz Nizipli)
[#65363](https://redirect.github.com/nodejs/node/pull/65363)
-
\[[`8e2461d819`](https://redirect.github.com/nodejs/node/commit/8e2461d819)]
- **url**: bounds-check short Windows file URL paths (Archkon)
[#64788](https://redirect.github.com/nodejs/node/pull/64788)
-
\[[`9ffc0da90c`](https://redirect.github.com/nodejs/node/commit/9ffc0da90c)]
- **url**: handle unparsable serialized URLs in setters (Matteo Collina)
[#64651](https://redirect.github.com/nodejs/node/pull/64651)
-
\[[`fa9d4e075d`](https://redirect.github.com/nodejs/node/commit/fa9d4e075d)]
- **util**: allow single-line format when break length is infinite
(Hamid Reza Ghavami)
[#64238](https://redirect.github.com/nodejs/node/pull/64238)
-
\[[`b68a7c3862`](https://redirect.github.com/nodejs/node/commit/b68a7c3862)]
- **util**: fix OSC 8 hyperlink stripping in stripVTControlCharacters
(Dushyant Singh Hada)
[#64319](https://redirect.github.com/nodejs/node/pull/64319)
-
\[[`10cbb6dc00`](https://redirect.github.com/nodejs/node/commit/10cbb6dc00)]
- **util**: fix formatting of functions returned from getters (Richard
Gibson)
[#64839](https://redirect.github.com/nodejs/node/pull/64839)
-
\[[`64c20b449e`](https://redirect.github.com/nodejs/node/commit/64c20b449e)]
- **util**: use more primordials in `comparisons.js` (Ayoub Mabrouk)
[#61198](https://redirect.github.com/nodejs/node/pull/61198)
-
\[[`cea9786de8`](https://redirect.github.com/nodejs/node/commit/cea9786de8)]
- **util**: preserve function names without source map names (Hiroki
Osame)
[#65108](https://redirect.github.com/nodejs/node/pull/65108)
-
\[[`35c635b032`](https://redirect.github.com/nodejs/node/commit/35c635b032)]
- **(SEMVER-MINOR)** **util**: add non-throwing MIMEType.parse (James M
Snell)
[#64965](https://redirect.github.com/nodejs/node/pull/64965)
-
\[[`5858c2ba9a`](https://redirect.github.com/nodejs/node/commit/5858c2ba9a)]
- **zlib**: validate pledgedSrcSize for sync zstd (Archkon)
[#64601](https://redirect.github.com/nodejs/node/pull/64601)
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/prometheus/client_java).
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
mise.lock | 30 +++++++++++++++---------------
mise.toml | 2 +-
2 files changed, 16 insertions(+), 16 deletions(-)
diff --git a/mise.lock b/mise.lock
index 2dcc46a711..3ac9c14018 100644
--- a/mise.lock
+++ b/mise.lock
@@ -525,36 +525,36 @@ url = "https://github.com/lycheeverse/lychee/releases/download/lychee-v0.24.2/ly
url_api = "https://api.github.com/repos/lycheeverse/lychee/releases/assets/409959491"
[[tools.node]]
-version = "24.20.0"
+version = "24.21.0"
backend = "core:node"
[tools.node."platforms.linux-arm64"]
-checksum = "sha256:3515603e2487879a39bc75716f1a2affd027500c64ba50e845cf72cb33219013"
-url = "https://nodejs.org/dist/v24.20.0/node-v24.20.0-linux-arm64.tar.gz"
+checksum = "sha256:724282c3b43aec998aa9527380465b45d229e021b58035f5f4f63095eabfe5d5"
+url = "https://nodejs.org/dist/v24.21.0/node-v24.21.0-linux-arm64.tar.gz"
[tools.node."platforms.linux-arm64-musl"]
-checksum = "sha256:2c8c507ccb0f20812d9526ba8ca454b1652aadef68fc8bad06f07fb1122dd1ef"
-url = "https://unofficial-builds.nodejs.org/download/release/v24.20.0/node-v24.20.0-linux-arm64-musl.tar.gz"
+checksum = "sha256:3048b0811e158ca0d8672b59c839861763e144492980d8d29b369dfee45747e4"
+url = "https://unofficial-builds.nodejs.org/download/release/v24.21.0/node-v24.21.0-linux-arm64-musl.tar.gz"
[tools.node."platforms.linux-x64"]
-checksum = "sha256:855d581f8a4eb1a8117e3426de25fe02770592febcfb31369aee1ffbfee9e8ec"
-url = "https://nodejs.org/dist/v24.20.0/node-v24.20.0-linux-x64.tar.gz"
+checksum = "sha256:6e1db87ef58b8819e5d5402eff1536491b18edd8eb7bee5ef7897876e88dc5ff"
+url = "https://nodejs.org/dist/v24.21.0/node-v24.21.0-linux-x64.tar.gz"
[tools.node."platforms.linux-x64-musl"]
-checksum = "sha256:9ae1399fef4bd8990e15773ce1327b336a20b9e97d8c7549f4f42ca73c43f562"
-url = "https://unofficial-builds.nodejs.org/download/release/v24.20.0/node-v24.20.0-linux-x64-musl.tar.gz"
+checksum = "sha256:01a713e34da98e7b4d2a3191ee7ca3f93dd0384d1a2ef23c379b2161ee6e133a"
+url = "https://unofficial-builds.nodejs.org/download/release/v24.21.0/node-v24.21.0-linux-x64-musl.tar.gz"
[tools.node."platforms.macos-arm64"]
-checksum = "sha256:40e5607e5ecb3db9192723776da2d75d966260fc74a7a9e731c1bd67dda96bc8"
-url = "https://nodejs.org/dist/v24.20.0/node-v24.20.0-darwin-arm64.tar.gz"
+checksum = "sha256:bed7eea5325e1108f32ce5228ddd6a5f0f08a499ee42aa7442aea583702f6057"
+url = "https://nodejs.org/dist/v24.21.0/node-v24.21.0-darwin-arm64.tar.gz"
[tools.node."platforms.macos-x64"]
-checksum = "sha256:9e5b2644cf107befb6aefca676b96d3296bc10138096f022ed378d6233ed81f4"
-url = "https://nodejs.org/dist/v24.20.0/node-v24.20.0-darwin-x64.tar.gz"
+checksum = "sha256:1462cb3b3046b815cf8ea436d3da450ec1a9f11dac7e5a46b0ada5305d7e8097"
+url = "https://nodejs.org/dist/v24.21.0/node-v24.21.0-darwin-x64.tar.gz"
[tools.node."platforms.windows-x64"]
-checksum = "sha256:6cac9ffbca8f6a47091e4b5c772e0606049c3871cb67d900c0cedde630e545ba"
-url = "https://nodejs.org/dist/v24.20.0/node-v24.20.0-win-x64.zip"
+checksum = "sha256:158f7685b44de51f6c0df1d153526cbcd3e1bc739a8dfc607721cef75de9e541"
+url = "https://nodejs.org/dist/v24.21.0/node-v24.21.0-win-x64.zip"
[[tools."npm:renovate"]]
version = "44.82.0"
diff --git a/mise.toml b/mise.toml
index 5ee321a9a3..ce7e5939f0 100644
--- a/mise.toml
+++ b/mise.toml
@@ -3,7 +3,7 @@
"aqua:grafana/oats" = "0.10.0"
hugo = "0.166.0"
java = "temurin-25.0.3+9.0.LTS"
-node = "24.20.0"
+node = "24.21.0"
protoc = "36.1"
# Linters
From a3bce9aafebefedd5020c81965e89c0c608ed9d8 Mon Sep 17 00:00:00 2001
From: KR Ravindra
Date: Mon, 14 Sep 2026 08:32:25 -0700
Subject: [PATCH 145/255] fix: drop +Inf bound from OpenTelemetry classic
histogram boundaries (#2458)
## Problem
Classic histograms exported through the OpenTelemetry bridge carry the
Prometheus `+Inf` upper
bound inside `HistogramPointData.getBoundaries()`, and `getCounts()` has
the same length as
`getBoundaries()`. The OpenTelemetry data model expects finite explicit
bounds with
`counts.size() == boundaries.size() + 1` (the `+Inf` bucket is
implicit).
## Root cause
`PrometheusClassicHistogram.makeBoundaries()`
(`prometheus-metrics-exporter-opentelemetry/.../otelmodel/PrometheusClassicHistogram.java:70-76`)
copies every `ClassicHistogramBuckets` upper bound, including the
trailing `+Inf`.
`makeCounts()` is already correct: `ClassicHistogramBuckets` counts are
non-cumulative and the
last entry is the `+Inf` bucket count.
## Fix
Skip the `+Inf` upper bound in `makeBoundaries()`. Counts are unchanged,
so for Prometheus
buckets `[1, 5, +Inf]` / `[c0, c1, c2]` the OTel point is now boundaries
`[1, 5]`,
counts `[c0, c1, c2]`, total `c0 + c1 + c2` (as described in #2416).
The existing `ExportTest.histogram` expectation `hasBucketBoundaries(1,
2, 3, +Inf)` encoded
the old behaviour and is updated to `hasBucketBoundaries(1, 2, 3)`; its
`hasBucketCounts(1, 0, 0, 0)` is unchanged.
## How tested
New `PrometheusClassicHistogramTest` (buckets `[1, 5, +Inf]`, counts
`[2, 3, 4]`) checks the
`HistogramPointData`, feeds it through the OTel SDK's own
`ImmutableHistogramPointData.create`
validation, and parses the OTLP payload produced by
`MetricsRequestMarshaler`.
Before the fix:
```text
Expecting actual: [1.0, 5.0, Infinity] to contain exactly: [1.0, 5.0] (point and OTLP explicit_bounds)
java.lang.IllegalArgumentException: invalid counts: size should be 4 instead of 3
at io.opentelemetry.sdk.metrics.internal.data.ImmutableHistogramPointData.create
Tests run: 4, Failures: 4
```
After the fix (`./mvnw test -pl
prometheus-metrics-exporter-opentelemetry -Dcoverage.skip=true`):
```text
Tests run: 39, Failures: 0, Errors: 0, Skipped: 0 -- BUILD SUCCESS
```
## Links
- https://github.com/prometheus/client_java/issues/2416
This change was prepared with an AI agent operated by KR-Ravindra, who
reviewed and tested it.
Signed-off-by: KR Ravindra <42912207+KR-Ravindra@users.noreply.github.com>
Co-authored-by: Gregor Zeitlinger
---
.../otelmodel/PrometheusClassicHistogram.java | 11 ++-
.../exporter/opentelemetry/ExportTest.java | 2 +-
.../PrometheusClassicHistogramTest.java | 97 +++++++++++++++++++
3 files changed, 108 insertions(+), 2 deletions(-)
create mode 100644 prometheus-metrics-exporter-opentelemetry/src/test/java/io/prometheus/metrics/exporter/opentelemetry/otelmodel/PrometheusClassicHistogramTest.java
diff --git a/prometheus-metrics-exporter-opentelemetry/src/main/java/io/prometheus/metrics/exporter/opentelemetry/otelmodel/PrometheusClassicHistogram.java b/prometheus-metrics-exporter-opentelemetry/src/main/java/io/prometheus/metrics/exporter/opentelemetry/otelmodel/PrometheusClassicHistogram.java
index 1a2152fe06..d3ac7dc5f2 100644
--- a/prometheus-metrics-exporter-opentelemetry/src/main/java/io/prometheus/metrics/exporter/opentelemetry/otelmodel/PrometheusClassicHistogram.java
+++ b/prometheus-metrics-exporter-opentelemetry/src/main/java/io/prometheus/metrics/exporter/opentelemetry/otelmodel/PrometheusClassicHistogram.java
@@ -67,10 +67,19 @@ private long calculateCount(ClassicHistogramBuckets buckets) {
return result;
}
+ /**
+ * OpenTelemetry explicit bucket boundaries are finite: the {@code +Inf} bucket is implicit, so
+ * {@code counts} has one more entry than {@code boundaries}. The count of the {@code +Inf} bucket
+ * is kept as the last element of {@link #makeCounts(ClassicHistogramBuckets)}.
+ */
private List makeBoundaries(ClassicHistogramBuckets buckets) {
List result = new ArrayList<>(buckets.size());
for (int i = 0; i < buckets.size(); i++) {
- result.add(buckets.getUpperBound(i));
+ double upperBound = buckets.getUpperBound(i);
+ if (upperBound == Double.POSITIVE_INFINITY) {
+ continue;
+ }
+ result.add(upperBound);
}
return result;
}
diff --git a/prometheus-metrics-exporter-opentelemetry/src/test/java/io/prometheus/metrics/exporter/opentelemetry/ExportTest.java b/prometheus-metrics-exporter-opentelemetry/src/test/java/io/prometheus/metrics/exporter/opentelemetry/ExportTest.java
index 4329df4b8d..467015194b 100644
--- a/prometheus-metrics-exporter-opentelemetry/src/test/java/io/prometheus/metrics/exporter/opentelemetry/ExportTest.java
+++ b/prometheus-metrics-exporter-opentelemetry/src/test/java/io/prometheus/metrics/exporter/opentelemetry/ExportTest.java
@@ -134,7 +134,7 @@ void histogram() {
assertThat(p.getEpochNanos()).isPositive();
})
.hasExemplars()
- .hasBucketBoundaries(1, 2, 3, Double.POSITIVE_INFINITY)
+ .hasBucketBoundaries(1, 2, 3)
.hasBucketCounts(1, 0, 0, 0)));
}
diff --git a/prometheus-metrics-exporter-opentelemetry/src/test/java/io/prometheus/metrics/exporter/opentelemetry/otelmodel/PrometheusClassicHistogramTest.java b/prometheus-metrics-exporter-opentelemetry/src/test/java/io/prometheus/metrics/exporter/opentelemetry/otelmodel/PrometheusClassicHistogramTest.java
new file mode 100644
index 0000000000..5ab0f3be55
--- /dev/null
+++ b/prometheus-metrics-exporter-opentelemetry/src/test/java/io/prometheus/metrics/exporter/opentelemetry/otelmodel/PrometheusClassicHistogramTest.java
@@ -0,0 +1,97 @@
+package io.prometheus.metrics.exporter.opentelemetry.otelmodel;
+
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.assertj.core.api.Assertions.assertThatCode;
+
+import io.opentelemetry.exporter.internal.otlp.metrics.MetricsRequestMarshaler;
+import io.opentelemetry.proto.collector.metrics.v1.ExportMetricsServiceRequest;
+import io.opentelemetry.proto.metrics.v1.HistogramDataPoint;
+import io.opentelemetry.sdk.common.InstrumentationScopeInfo;
+import io.opentelemetry.sdk.metrics.data.HistogramPointData;
+import io.opentelemetry.sdk.metrics.data.MetricData;
+import io.opentelemetry.sdk.metrics.internal.data.ImmutableHistogramPointData;
+import io.opentelemetry.sdk.resources.Resource;
+import io.prometheus.metrics.model.snapshots.ClassicHistogramBuckets;
+import io.prometheus.metrics.model.snapshots.HistogramSnapshot;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.util.Collections;
+import java.util.Objects;
+import org.junit.jupiter.api.Test;
+
+class PrometheusClassicHistogramTest {
+
+ // Prometheus classic buckets: le=1 -> 2, le=5 -> 3, le=+Inf -> 4 (non-cumulative counts).
+ private static final HistogramSnapshot SNAPSHOT =
+ HistogramSnapshot.builder()
+ .name("request_size_bytes")
+ .dataPoint(
+ HistogramSnapshot.HistogramDataPointSnapshot.builder()
+ .classicHistogramBuckets(
+ ClassicHistogramBuckets.of(
+ new double[] {1.0, 5.0, Double.POSITIVE_INFINITY}, new long[] {2, 3, 4}))
+ .sum(42.0)
+ .build())
+ .build();
+
+ private static HistogramPointData toOtelPoint() {
+ PrometheusClassicHistogram histogram = new PrometheusClassicHistogram(SNAPSHOT, 1_000L);
+ assertThat(histogram.getPoints()).hasSize(1);
+ return histogram.getPoints().iterator().next();
+ }
+
+ @Test
+ void infBucketIsImplicitInOtelBoundaries() {
+ HistogramPointData point = toOtelPoint();
+ // OTel explicit bounds are finite; the +Inf bucket is implicit, so counts has one more entry.
+ assertThat(point.getBoundaries()).containsExactly(1.0, 5.0);
+ assertThat(point.getBoundaries()).noneMatch(bound -> bound.isInfinite());
+ assertThat(point.getCounts()).containsExactly(2L, 3L, 4L);
+ assertThat(point.getCounts()).hasSize(point.getBoundaries().size() + 1);
+ assertThat(point.getCount()).isEqualTo(9);
+ assertThat(point.getSum()).isEqualTo(42.0);
+ }
+
+ @Test
+ void pointSatisfiesOtelSdkHistogramContract() {
+ HistogramPointData point = toOtelPoint();
+ // The OTel SDK's own histogram point implementation validates the data model contract.
+ assertThatCode(
+ () ->
+ ImmutableHistogramPointData.create(
+ point.getStartEpochNanos(),
+ point.getEpochNanos(),
+ point.getAttributes(),
+ point.getSum(),
+ point.hasMin(),
+ point.getMin(),
+ point.hasMax(),
+ point.getMax(),
+ point.getBoundaries(),
+ point.getCounts(),
+ point.getExemplars()))
+ .doesNotThrowAnyException();
+ }
+
+ @Test
+ void otlpExplicitBoundsAreFinite() throws IOException {
+ MetricDataFactory factory =
+ new MetricDataFactory(
+ Resource.empty(), InstrumentationScopeInfo.create("test"), 1_000L, false);
+ MetricData metricData = Objects.requireNonNull(factory.create(SNAPSHOT));
+
+ ByteArrayOutputStream out = new ByteArrayOutputStream();
+ MetricsRequestMarshaler.create(Collections.singletonList(metricData)).writeBinaryTo(out);
+ HistogramDataPoint dataPoint =
+ ExportMetricsServiceRequest.parseFrom(out.toByteArray())
+ .getResourceMetrics(0)
+ .getInstrumentationLibraryMetrics(0)
+ .getMetrics(0)
+ .getHistogram()
+ .getDataPoints(0);
+
+ assertThat(dataPoint.getExplicitBoundsList()).containsExactly(1.0, 5.0);
+ assertThat(dataPoint.getBucketCountsList()).containsExactly(2L, 3L, 4L);
+ assertThat(dataPoint.getCount()).isEqualTo(9);
+ }
+}
From 02622cbea68e584146500840ea59c1a0e50299f2 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Mon, 14 Sep 2026 17:17:42 -0400
Subject: [PATCH 146/255] chore(deps): update
otel/opentelemetry-collector-contrib docker tag to v0.160.0 (#2467)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This PR contains the following updates:
| Package | Update | Change |
|---|---|---|
|
[otel/opentelemetry-collector-contrib](https://redirect.github.com/open-telemetry/opentelemetry-collector-releases)
| minor | `0.159.0` → `0.160.0` |
---
### Release Notes
open-telemetry/opentelemetry-collector-releases
(otel/opentelemetry-collector-contrib)
###
[`v0.160.0`](https://redirect.github.com/open-telemetry/opentelemetry-collector-releases/blob/HEAD/CHANGELOG.md#v01600)
[Compare
Source](https://redirect.github.com/open-telemetry/opentelemetry-collector-releases/compare/v0.159.0...v0.160.0)
##### 🚀 New components 🚀
- `spanpruningprocessor`: Added missing spanpruningprocessor to
otelcol-contrib
([#1608](https://redirect.github.com/open-telemetry/opentelemetry-collector-releases/issues/1608))
##### 💡 Enhancements 💡
- `otelcol-contrib`: Upgrade go.opentelemetry.io/obi to v0.11.0.
([#1604](https://redirect.github.com/open-telemetry/opentelemetry-collector-releases/issues/1604))
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/prometheus/client_java).
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
examples/example-exemplars-tail-sampling/docker-compose.yaml | 2 +-
examples/example-exporter-opentelemetry/docker-compose.yaml | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/examples/example-exemplars-tail-sampling/docker-compose.yaml b/examples/example-exemplars-tail-sampling/docker-compose.yaml
index d3d6c615a0..985f89b56b 100644
--- a/examples/example-exemplars-tail-sampling/docker-compose.yaml
+++ b/examples/example-exemplars-tail-sampling/docker-compose.yaml
@@ -36,7 +36,7 @@ services:
- -jar
- /example-greeting-service.jar
collector:
- image: otel/opentelemetry-collector-contrib:0.159.0@sha256:1f2c54a30e713fac6b3ae77a1ec84010c2007e29ced8ec666214fc2f6739c1cc
+ image: otel/opentelemetry-collector-contrib:0.160.0@sha256:799dc6cf12c96192af37b5bdba804da8c10b3bc563b43cb90c3f3c58d9572ad6
network_mode: host
volumes:
- ./config/otelcol-config.yaml:/config.yaml
diff --git a/examples/example-exporter-opentelemetry/docker-compose.yaml b/examples/example-exporter-opentelemetry/docker-compose.yaml
index 116b574619..c1f439cc2d 100644
--- a/examples/example-exporter-opentelemetry/docker-compose.yaml
+++ b/examples/example-exporter-opentelemetry/docker-compose.yaml
@@ -13,7 +13,7 @@ services:
#- -agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=*:5005
- /example-exporter-opentelemetry.jar
collector:
- image: otel/opentelemetry-collector-contrib:0.159.0@sha256:1f2c54a30e713fac6b3ae77a1ec84010c2007e29ced8ec666214fc2f6739c1cc
+ image: otel/opentelemetry-collector-contrib:0.160.0@sha256:799dc6cf12c96192af37b5bdba804da8c10b3bc563b43cb90c3f3c58d9572ad6
network_mode: host
volumes:
- ./config/otelcol-config.yaml:/config.yaml
From 4ec1ba12905dc7690edf9cdd3ea78bed50a8b189 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Tue, 15 Sep 2026 15:10:46 +0200
Subject: [PATCH 147/255] chore(deps): update dependency
org.apache.maven.plugins:maven-install-plugin to v3.2.0 (#2473)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This PR contains the following updates:
| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
|
[org.apache.maven.plugins:maven-install-plugin](https://maven.apache.org/plugins/)
([source](https://redirect.github.com/apache/maven-install-plugin)) |
`3.1.4` → `3.2.0` |

|

|
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/prometheus/client_java).
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
pom.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/pom.xml b/pom.xml
index 66b44b4555..81c4c991c0 100644
--- a/pom.xml
+++ b/pom.xml
@@ -112,7 +112,7 @@
maven-install-plugin
- 3.1.4
+ 3.2.0maven-resources-plugin
From 05835d8ba398b534674e728632a339e91e356235 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Tue, 15 Sep 2026 15:10:59 +0200
Subject: [PATCH 148/255] chore(deps): update dependency
org.apache.maven.plugins:maven-deploy-plugin to v3.2.0 (#2472)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This PR contains the following updates:
| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
|
[org.apache.maven.plugins:maven-deploy-plugin](https://maven.apache.org/plugins/)
([source](https://redirect.github.com/apache/maven-deploy-plugin)) |
`3.1.4` → `3.2.0` |

|

|
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/prometheus/client_java).
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
pom.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/pom.xml b/pom.xml
index 81c4c991c0..2b43285c63 100644
--- a/pom.xml
+++ b/pom.xml
@@ -132,7 +132,7 @@
maven-deploy-plugin
- 3.1.4
+ 3.2.0maven-clean-plugin
From fccb5723070b0e1bf4f1f665ba013afd79b47d95 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Tue, 15 Sep 2026 15:11:09 +0200
Subject: [PATCH 149/255] chore(deps): update grafana/grafana docker tag to
v13.2.2 (#2470)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This PR contains the following updates:
| Package | Update | Change |
|---|---|---|
| [grafana/grafana](https://redirect.github.com/grafana/grafana) | patch
| `13.2.1` → `13.2.2` |
---
### Release Notes
grafana/grafana (grafana/grafana)
###
[`v13.2.2`](https://redirect.github.com/grafana/grafana/releases/tag/v13.2.2):
13.2.2
[Download page](https://grafana.com/grafana/download/13.2.2)
[What's new
highlights](https://grafana.com/docs/grafana/latest/whatsnew/)
##### Security
- Security: Fix CVE-2026-15815
- Security: Fix CVE-2026-76154
- Security: Fix CVE-2026-79656
##### Bug fixes
- **Dashboards:** Preserve query variable refresh setting on v2
dashboard import
[#132089](https://redirect.github.com/grafana/grafana/pull/132089),
[@grafana-writer\[bot\]](https://redirect.github.com/grafana-writer\[bot])
- **Provisioning:** Fix folder rename UID collision during full sync
[#132157](https://redirect.github.com/grafana/grafana/pull/132157),
[@grafana-writer\[bot\]](https://redirect.github.com/grafana-writer\[bot])
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/prometheus/client_java).
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
examples/example-custom-buckets/docker-compose.yaml | 2 +-
examples/example-exemplars-tail-sampling/docker-compose.yaml | 2 +-
examples/example-native-histogram/docker-compose.yaml | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/examples/example-custom-buckets/docker-compose.yaml b/examples/example-custom-buckets/docker-compose.yaml
index f3228715ca..d88331a353 100644
--- a/examples/example-custom-buckets/docker-compose.yaml
+++ b/examples/example-custom-buckets/docker-compose.yaml
@@ -18,7 +18,7 @@ services:
- --enable-feature=native-histograms
- --config.file=/prometheus.yml
grafana:
- image: grafana/grafana:13.2.1@sha256:f772d434e8fab0049deb2b1b30abd43342bcfca1537614aa8d36080232cf4283
+ image: grafana/grafana:13.2.2@sha256:ac461fb352abc50da10a51c7d02462e9c05488f11f53f14b3ad79a8145f638a0
network_mode: host
volumes:
- ./docker-compose/grafana-datasources.yaml:/etc/grafana/provisioning/datasources/grafana-datasources.yaml
diff --git a/examples/example-exemplars-tail-sampling/docker-compose.yaml b/examples/example-exemplars-tail-sampling/docker-compose.yaml
index 985f89b56b..c4d08a175c 100644
--- a/examples/example-exemplars-tail-sampling/docker-compose.yaml
+++ b/examples/example-exemplars-tail-sampling/docker-compose.yaml
@@ -59,7 +59,7 @@ services:
command:
- --config.file=/config.yaml
grafana:
- image: grafana/grafana:13.2.1@sha256:f772d434e8fab0049deb2b1b30abd43342bcfca1537614aa8d36080232cf4283
+ image: grafana/grafana:13.2.2@sha256:ac461fb352abc50da10a51c7d02462e9c05488f11f53f14b3ad79a8145f638a0
network_mode: host
ports:
- "3000:3000"
diff --git a/examples/example-native-histogram/docker-compose.yaml b/examples/example-native-histogram/docker-compose.yaml
index f4a3551dbb..d54ab45299 100644
--- a/examples/example-native-histogram/docker-compose.yaml
+++ b/examples/example-native-histogram/docker-compose.yaml
@@ -18,7 +18,7 @@ services:
- --enable-feature=native-histograms
- --config.file=/prometheus.yml
grafana:
- image: grafana/grafana:13.2.1@sha256:f772d434e8fab0049deb2b1b30abd43342bcfca1537614aa8d36080232cf4283
+ image: grafana/grafana:13.2.2@sha256:ac461fb352abc50da10a51c7d02462e9c05488f11f53f14b3ad79a8145f638a0
network_mode: host
volumes:
- ./docker-compose/grafana-datasources.yaml:/etc/grafana/provisioning/datasources/grafana-datasources.yaml
From 1ff0baab0aff91537caa118e2e2bf1c996b3a2af Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Tue, 15 Sep 2026 15:11:21 +0200
Subject: [PATCH 150/255] chore(deps): update dependency java-jdk to
v21.0.12+101.0.lts (#2469)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [java-jdk](https://adoptium.net) | uses-with | patch | `21` →
`21.0.12+101.0.LTS` |
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/prometheus/client_java).
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
.github/workflows/release.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index 50f6723e06..0bbafa3589 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -85,7 +85,7 @@ jobs:
uses: actions/setup-java@de7274f081f381c8f8158605e0321c36c376e2e6 # v6
with:
distribution: "temurin"
- java-version: "21"
+ java-version: "21.0.12+101.0.LTS"
server-id: ossrh
server-username: MAVEN_USERNAME
server-password: MAVEN_CENTRAL_TOKEN
From 99215988af30bea41749a8f48cde92fb3e54a995 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Tue, 15 Sep 2026 13:36:28 +0000
Subject: [PATCH 151/255] chore(deps): update dependency
org.mock-server:mockserver-netty-no-dependencies to v8 (#2475)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
> ℹ️ **Note**
>
> This PR body was truncated due to platform limits.
This PR contains the following updates:
| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
|
[org.mock-server:mockserver-netty-no-dependencies](https://www.mock-server.com)
([source](https://redirect.github.com/mock-server/mockserver-monorepo))
| `7.6.0` → `8.0.0` |

|

|
---
### Release Notes
mock-server/mockserver-monorepo
(org.mock-server:mockserver-netty-no-dependencies)
###
[`v8.0.0`](https://redirect.github.com/mock-server/mockserver-monorepo/blob/HEAD/changelog.md#800---2026-09-15)
##### Added
- Test port allocation can opt into a fixed port band instead of the OS
ephemeral range.
`org.mockserver.socket.PortFactory` normally finds a free port with
`bind(0)`, which draws from the same
ephemeral range (on macOS `net.inet.ip.portrange.hifirst`..`hilast`,
typically 49152-65535) that every other
`bind(0)` on the machine uses — including unrelated applications, IDE
helpers, and other JVMs. On a busy
developer machine that causes two kinds of test flake: a foreign process
can occupy a number a test is about to
choose, and a test can momentarily connect to that foreign listener
instead of the server under test. Setting
both `mockserver.testPortRangeStart` and `mockserver.testPortRangeEnd`
(for example
`-Dmockserver.testPortRangeStart=20000
-Dmockserver.testPortRangeEnd=40000`) makes `PortFactory` choose ports
by
explicitly binding inside that band — which the OS does not itself hand
out to `bind(0)` — retrying past any
number already in use. Both properties are unset by default, so
continuous integration and any machine that does
not set them keep the exact `bind(0)` behaviour as before. This affects
only test port selection; it does not
change how MockServer binds its own ports at runtime (starting on port
`0` and reading back the assigned port
remains the fully race-free option and is unchanged). In a
surefire/failsafe fork the two properties must reach
the fork, e.g. via
`-Dmockserver.testArgLine="-Dmockserver.testPortRangeStart=20000
-Dmockserver.testPortRangeEnd=40000"`.
##### Changed
- HTTP/2 now gives every request stream its own channel. MockServer's
HTTP/2 server — both `h2` (over TLS) and
cleartext `h2c` — now uses Netty's stream-multiplexing model for every
connection, replacing the previous
shared-connection HTTP/2 pipeline. Each HTTP/2 stream is processed on
its own isolated child channel. This
removes a class of cross-stream interference on busy connections:
concurrent streaming responses (Server-Sent
Events, NDJSON, AWS Bedrock event-stream, and therefore all streaming
LLM responses) can no longer have a later
chunk of one stream mis-routed onto another, and each stream's
end-of-stream is delivered independently, so a
slow or streaming response on one stream cannot stall another. This
model was previously used only when
`grpcBidiStreamingEnabled` was set; it is now the standard HTTP/2
pipeline and needs no configuration — so the
HTTP/2 correctness fixes listed below apply to all HTTP/2 traffic, not
only when that flag is enabled. There is
no change to the REST/Java API, to how expectations are written, or to
HTTP/1.1 and HTTP/3 traffic, and HTTP/2
clients receive the same responses. Users driving very large numbers of
concurrent streams over a single
connection may notice different memory and throughput characteristics,
since each stream now has its own
lightweight channel. (GitHub issue
[#2669](https://redirect.github.com/mock-server/mockserver-monorepo/issues/2669)).
- **Behaviour change — over HTTP/2, `closeSocket` now ends the stream,
not the connection.** A per-expectation
`ConnectionOptions.closeSocket` / `closeChannel` (and the
`slowCloseDelay` connection-lifecycle chaos) applied
to an HTTP/2 request now closes only *that* request's stream; other
requests in flight on the same connection
continue and complete normally. Previously it tore down the whole TCP
connection, killing every concurrent
stream on it — so one expectation could destroy unrelated clients'
in-flight requests. Ending a single stream
is the correct HTTP/2 semantic and is what the same expectation already
did over HTTP/1.1, where a connection
carries one request at a time. **If you rely on `closeSocket` to tear
down an HTTP/2 connection** — for example
to test how your client recovers from a dropped connection — use the
`resetMidResponse` connection-lifecycle
chaos fault instead, which still aborts the whole TCP connection (that
is its purpose, and it now does so
properly rather than degrading into a single-stream reset). HTTP/1.1 and
HTTP/3 behaviour is unchanged.
(GitHub issue
[#2669](https://redirect.github.com/mock-server/mockserver-monorepo/issues/2669)).
- **BREAKING: `mockserver-bom` now manages only MockServer's own
`org.mock-server` modules — it no longer pins
the third-party libraries MockServer uses internally.** The published
BOM previously baked in MockServer's
entire parent `dependencyManagement` (\~190 third-party entries —
Jackson, Netty, Guava, Nimbus, Velocity, and
more), four of them at `test` scope. Because a BOM's managed versions
and scopes apply to whoever imports it,
this silently overrode a consumer's **own** versions *and* scopes for
those shared libraries. For example, a
project that declared `com.nimbusds:oauth2-oidc-sdk` without a scope had
it forced onto the **test** classpath
by MockServer's internal test-scoped pin, so the dependency disappeared
from compile/runtime and the
consumer's production code failed to build against it (GitHub issue
[#2684](https://redirect.github.com/mock-server/mockserver-monorepo/issues/2684)).
The published BOM now contains
only the MockServer module entries (24, down from 221), so importing it
never changes any third-party version
or scope in your build. **What you need to do:** if you imported
`mockserver-bom` to align MockServer's
*transitive* third-party versions — for instance to satisfy the Maven
Enforcer `dependencyConvergence` rule —
those pins are gone and convergence errors may reappear; manage the
affected third-party versions yourself in
your own `dependencyManagement`, or import each upstream project's own
BOM. Aligning the MockServer modules
themselves is unchanged: keep importing the BOM and declare MockServer
artifacts without a version.
(GitHub issue
[#2684](https://redirect.github.com/mock-server/mockserver-monorepo/issues/2684)).
##### Fixed
- A **SOCKS4a** client (for example `curl -x socks4a://…`) proxying
through MockServer no longer hangs.
SOCKS4a is the SOCKS4 extension where the client sends the destination
as a **hostname** instead of an
IPv4 address. MockServer decoded the request correctly but then echoed
that hostname back into the
`DSTIP` field of the SOCKS4 grant reply, which must be an IPv4 literal;
the resulting error was thrown
while writing the reply, so the client never received one and blocked
until it timed out (curl exit 28,
0 bytes) — for cleartext HTTP as well as for TLS. The reply's
`DSTIP`/`DSTPORT` are ignored by clients,
so a SOCKS4a grant now carries `0.0.0.0:0`; a classic SOCKS4 request
(IPv4 literal) still echoes its
destination back unchanged. Plain SOCKS4 and SOCKS5 (`socks5h://`) were
unaffected.
- The command-line server now exits with a non-zero status code when it
fails to start. Previously, if
MockServer could not start — most commonly because the requested port
was already in use — the CLI logged
the error but still exited `0`, so a shell script or CI job that started
MockServer got no failure signal
and carried on as though the server was up (typically failing later with
a confusing connection error).
`mockserver run` / `-serverPort` (and the `ui`, `demo`, `proxy`, and
`openapi` subcommands, which start a
server the same way) now exit `1` on a failed start. Usage errors that
were already handled — an invalid or
missing port, an invalid host or log level — keep their existing exit
code, so only the previously-silent
startup-failure case changes.
- An HTTPS request that negotiates HTTP/2 (ALPN `h2`) through
MockServer's **SOCKS proxy** now works.
Previously, using MockServer as a SOCKS4/SOCKS5 proxy for an `https://`
request that upgraded to HTTP/2
failed completely — the client received nothing (curl reported
`CURLE_HTTP2`, 0 bytes) — because MockServer
provisioned its internal relay for HTTP/1.1 before the tunnelled TLS
connection had negotiated its protocol,
so the forwarded HTTP/2 frames were unparseable. SOCKS over HTTP/1.1,
SOCKS over cleartext, and the HTTP
`CONNECT` proxy over HTTP/2 were unaffected and continue to work.
MockServer now terminates the tunnelled TLS
in the relay and waits for its ALPN result before wiring up the
connection, exactly as the `CONNECT` proxy
already did. This works on **any port**: rather than guessing from the
destination port number (the earlier
fix inferred TLS only for ports ending in `443`, so `h2` to a TLS port
such as `993`, `465`, or `9999` was
still mis-provisioned as HTTP/1.1), MockServer now classifies the first
bytes the client sends through the
tunnel — a TLS record versus a cleartext HTTP request — and provisions
the connection to match. As a result,
HTTP/2 over TLS through a SOCKS tunnel succeeds on any port, and a
cleartext tunnel to a port that happens to
end in `443` is no longer mistaken for TLS. **Cleartext HTTP/2 with
prior knowledge (`h2c`) through a SOCKS
tunnel now works too** — the last case left as HTTP/1.1 by the earlier
fixes. The same first-bytes
classification now also recognises the HTTP/2 connection preface (`PRI *
HTTP/2.0…`) after ruling out a TLS
record, and provisions cleartext HTTP/2 on both relay legs so the mocked
response is served over `h2c`
(a curl `--http2-prior-knowledge` request through a `socks5h://` proxy,
for example); anything that is not a
preface is still provisioned as HTTP/1.1, and when HTTP/2 is disabled
(`http2Enabled=false`) the preface is
ignored and the tunnel falls back to HTTP/1.1, exactly as MockServer's
own listener does. The HTTP `CONNECT`
proxy is unchanged, so cleartext HTTP/2 with prior knowledge through
`CONNECT` is still served as HTTP/1.1 —
that was never a working case and is unaffected either way. (GitHub
issue
[#2685](https://redirect.github.com/mock-server/mockserver-monorepo/issues/2685)).
- Starting the command-line server with port `0` now reports and uses
the actual OS-assigned
ephemeral port instead of `0`. Previously `mockserver run -p 0` (or
`-serverPort 0`) bound a real
ephemeral port but recorded the requested `0`, so the port a caller
needs to reach the server was
not discoverable, and `ui -p 0` / `demo -p 0` printed a
dashboard/getting-started URL pointing at
`localhost:0`. MockServer now records the real bound port after startup
and uses it for the
dashboard and demo URLs. Starting on an explicit, non-zero port is
unaffected.
- HTTP/2 responses larger than the client's initial flow-control window
no longer hang when fetched
through MockServer's HTTPS forward proxy (HTTP `CONNECT`). On the
CONNECT-tunnel path several handlers
ahead of the HTTP/2 codec overrode Netty's `channelReadComplete` to only
flush, without propagating the
event down the pipeline. Netty's HTTP/2 connection handler relies on
`channelReadComplete` to flush
flow-control-pending writes (it is where a peer's `WINDOW_UPDATE` is
acted on), so swallowing the event
stalled any h2 response bigger than the peer's initial window (65,535
bytes by default) at exactly one
window until the client timed out. Direct HTTP/2 (`h2c` and TLS+ALPN)
and HTTP/1.1-through-`CONNECT`
were unaffected. The affected handlers now propagate the event. (GitHub
issue
[#2683](https://redirect.github.com/mock-server/mockserver-monorepo/issues/2683)).
- The S3 blob-store tests pull MinIO from quay.io instead of Docker Hub.
`minio/minio` is no longer
pullable from Docker Hub, which broke these tests — and therefore the
build — with a container-fetch
error unrelated to any code change. quay.io is MinIO's other official
registry and serves the same
image and tag. Test-only; nothing MockServer ships is affected.
- The Python client and the Python Testcontainers module now ship a PEP
561 `py.typed` marker, so type
checkers use their annotations instead of ignoring them. Both packages
are almost fully annotated, but
without the marker `mypy` reported `Skipping analyzing "mockserver":
module is installed, but missing
library stubs or py.typed marker` and treated every import as `Any`, so
no call into the client was
checked at all. Nothing about the packages' behaviour changes — `mypy`
(and any PEP 561 checker) will now
type-check your calls, which may surface genuine mistakes in existing
code that were previously
invisible. (GitHub issue
[#2680](https://redirect.github.com/mock-server/mockserver-monorepo/issues/2680)).
- With gRPC bidi-streaming enabled (`grpcBidiStreamingEnabled`),
streaming responses over HTTP/2 — Server-Sent
Events, NDJSON, AWS Bedrock event-stream, and therefore all streaming
LLM responses — now terminate correctly
instead of leaving the client hanging. Enabling that mode routes every
HTTP/2 stream (not just gRPC) through
Netty's multiplex model, where each stream is a separate child channel.
On that path MockServer's terminal
end-of-stream marker was being silently dropped by Netty's stream-frame
codec, which hard-codes streaming data
frames as "not the end of the stream". The client received every event
and then waited — receiving no
end-of-stream — until it timed out, with nothing failing or logged
server-side. MockServer now translates the
terminal frame so the codec emits it with the end-of-stream flag set,
closing the stream as expected. Streaming
over HTTP/1.1 and over the default (non-multiplex) HTTP/2 pipeline was
already correct and is unaffected. (GitHub issue
[#2669](https://redirect.github.com/mock-server/mockserver-monorepo/issues/2669)).
- With gRPC bidi-streaming enabled (`grpcBidiStreamingEnabled`), plain
HTTP requests sharing the same HTTP/2
connection are no longer mis-handled. Enabling that mode switches the
HTTP/2 pipeline to Netty's multiplex
model, giving every stream its own child channel — but those child
channels do not inherit the parent
connection's attributes, and MockServer had only been copying one of
them across. As a result, on any
non-gRPC request arriving over such a connection: it was not recognised
as HTTP/2 (so `withProtocol(HTTP_2)`
matching failed and the protocol was mis-reported in the request log and
HAR export); a request to the
dashboard or callback WebSocket endpoint tried to perform a WebSocket
handshake over the HTTP/2 stream — which
is unsupported — instead of cleanly returning `501 Not Implemented`; a
client certificate presented on the
connection was not visible to control-plane authentication for MCP
requests on that stream; and a proxied
request (SOCKS/CONNECT/transparent/port-forward) was mis-routed —
treated as a direct request, or forwarded to
its `Host` header instead of the proxy's actual remote target. The
connection-scoped state a request depends on
(negotiated protocol, TLS/client-certificate details, the proxying flag,
the proxy remote-target address, and
the local-host set) is now propagated onto each HTTP/2 stream child
channel, so these requests behave exactly as
they do on HTTP/1.1 and on the default (non-multiplex) HTTP/2 pipeline.
HTTP/1.1 traffic is unaffected. (GitHub issue
[#2669](https://redirect.github.com/mock-server/mockserver-monorepo/issues/2669)).
- With gRPC bidi-streaming enabled (`grpcBidiStreamingEnabled`), a plain
HTTP request sent over HTTP/2 with a
compressed body (`content-encoding: gzip`, `deflate`, and so on) is now
decompressed before matching. Enabling
that mode routes every HTTP/2 stream — ordinary requests included, not
just gRPC — through Netty's multiplex
model, and on that path the request body was left compressed: a
`withBody(...)` expectation then silently
failed to match (MockServer answered `404 Not Found`) and the recorded
request showed unreadable compressed
bytes. Compressed request bodies are now decompressed on this path
exactly as they are on HTTP/1.1 and on the
default (non-multiplex) HTTP/2 pipeline. gRPC's own message compression
(carried by `grpc-encoding`) is a
separate mechanism and is unaffected. (GitHub issue
[#2669](https://redirect.github.com/mock-server/mockserver-monorepo/issues/2669)).
Matching on the `content-encoding` header itself still works: the header
is preserved for matching before
decompression removes it, exactly as on HTTP/1.1. (An expectation
written against `content-encoding: gzip`
briefly stopped matching on this pipeline once decompression was added;
that is fixed here.)
- With gRPC bidi-streaming enabled (`grpcBidiStreamingEnabled`), a plain
HTTP request sent over HTTP/2 with an
unusual header value — a leading space, an embedded `DEL` (0x7F), or
another control character — is now
received and matchable instead of being silently rejected. Enabling that
mode routes every HTTP/2 stream
through Netty's multiplex model, where such a request was reset with
`RST_STREAM(PROTOCOL_ERROR)` before it
ever reached the matchers, so nothing matched and nothing was logged as
received. Because MockServer is a mock
server that users deliberately drive with malformed traffic to test
their own clients, these requests are now
accepted and recorded, matching the behaviour on HTTP/1.1 and on the
default (non-multiplex) HTTP/2 pipeline.
This leniency applies to inbound requests only: response header *names*
MockServer sends are still validated
as before, exactly as on the default HTTP/2 pipeline, so a malformed
response header name is rejected rather
than put on the wire. (GitHub issue
[#2669](https://redirect.github.com/mock-server/mockserver-monorepo/issues/2669)).
- Over HTTP/2 the two ways of ending a connection now behave distinctly
instead of collapsing into a single
stream reset (see the behaviour-change note above). Every HTTP/2 stream
is its own child of the shared TCP
connection.
A per-expectation `closeSocket` / `closeChannel` (and the
`slowCloseDelay` connection-lifecycle chaos) now
correctly ends only *that* request's stream, leaving other concurrent
requests on the same connection to
complete normally — whereas the `resetMidResponse` connection-lifecycle
chaos fault, whose purpose is to
simulate a real server socket abort, now resets the whole TCP connection
(aborting every concurrent stream on
it) rather than quietly degrading into a single-stream reset. Previously
`resetMidResponse` over multiplex
HTTP/2 emitted only an ordinary stream reset — a fault meant to simulate
a crashed socket silently became
something weaker. Behaviour over HTTP/1.1 and over the default
(non-multiplex) HTTP/2 pipeline is unchanged.
(GitHub issue
[#2669](https://redirect.github.com/mock-server/mockserver-monorepo/issues/2669)).
- The MockServer dashboard is no longer unreachable over HTTP/2 — a
browser (or any client) requesting
`/mockserver/dashboard` and its assets over HTTP/2 hung indefinitely and
never received a response. The
dashboard handler writes its response straight to the channel (it does
not go through the normal response
writer), and it never copied the request's HTTP/2 stream id onto that
response. On the shared HTTP/2
connection Netty then routed the response head onto a fresh
server-initiated stream instead of the client's
own stream, so the response was never delivered and the client waited
until it timed out. Nothing failed or
was logged server-side, which is why it went unnoticed. The handler now
stamps the request's stream id onto
every response it writes (matching the metrics endpoint, which shares
the same direct-write pattern); this is
a no-op on HTTP/1.1, where the dashboard already worked.
- `MockServerContainer` (the Testcontainers integration) now waits until
MockServer is actually *serving*
before `start()` returns, so a request issued immediately afterwards is
no longer reset. The container waited
with a listening-port strategy, which is satisfied the instant the
mapped port accepts a TCP connection — but
MockServer's Netty listener binds the port early and then
accepts-then-resets connections until initialisation
finishes. `start()` therefore returned inside that window (measured at
\~0.2–0.3s wide against the released
image, and wider on a loaded host), and the first request could fail
with `SocketConnectionException: Channel
handler removed before valid response has been received`. The wait is
now an HTTP readiness probe against
`PUT /mockserver/status` returning 200, which only happens once the
request pipeline is fully initialised, so
`start()` returning now means "ready to serve". This most affects
callers on busy/CI hosts, where CPU
contention widens the race. (`withServerPort(...)` re-targets the probe
at the chosen port.)
- A streaming `httpLlmResponse` expectation that sets
`completion.streamingPhysics.timeToFirstToken` is no
longer rejected with an HTTP 400 and a confusing error naming
`org.mockserver.model.Delay` — a type the user
never wrote. The expectation serialised cleanly on the client (a raw
`Delay` serialises to exactly the same
bytes its `DelayDTO` produces), so the invalid JSON was only rejected
server-side on deserialisation, where
Jackson tried to construct a raw `Delay` (which has no default
constructor and no creator) instead of going
through `DelayDTO`. This serialise-succeeds / deserialise-fails
asymmetry is why it was invisible in
client-side tests. `timeToFirstToken` now crosses the wire through the
DTO layer like every other `Delay`
(via new `CompletionDTO`/`StreamingPhysicsDTO` boundaries wrapping it in
`DelayDTO`); the serialised JSON is
byte-for-byte unchanged, so existing stored expectations and clients
keep working. (GitHub issue
[#2668](https://redirect.github.com/mock-server/mockserver-monorepo/issues/2668)).
- Two (or more) concurrent streaming responses (`httpSseResponse`, and
streaming `httpLlmResponse` with
`completion.streaming:true`) over a single HTTP/2 connection no longer
cause one stream to hang forever. All
non-gRPC HTTP/2 traffic is multiplexed over one shared
`HttpToHttp2ConnectionHandler`, which picked the
outbound target stream from a single mutable field updated only when a
response *head* was written; a bare
data chunk carries no stream id, so once a second stream wrote its head
every later chunk of the first
stream was mis-routed onto the second (by then often already-closed)
stream — the server logged
`IllegalArgumentException: Stream no longer exists`, the terminal frame
never reached the first stream, and
its client waited on a stream that would never end. Streaming data
frames now carry their originating stream
id out-of-band (a `StreamAddressedHttpContent` wrapper) so each frame is
written onto its own stream, and
interleaved concurrent streams each receive their full body and their
own `END_STREAM`; a streaming write
that fails for any reason now still ends its own stream so a client is
never left hanging. `httpLlmResponse` streaming, which is served through
the same handler, was
equally affected and is fixed by the same change. (GitHub issue
[#2667](https://redirect.github.com/mock-server/mockserver-monorepo/issues/2667)).
- A JSON body expectation built through a client (e.g.
`json("{\"amount\":275.0}", MatchType.ONLY_MATCHING_FIELDS)`)
no longer fails to match a byte-identical request. A whole-number double
such as `275.0` was silently corrupted
to the bare integer `275` when the expectation was serialised, before
any request even arrived: the JSON body
serializers parsed the value with `USE_BIG_DECIMAL_FOR_FLOATS` into a
`BigDecimal`, and Jackson's
`STRIP_TRAILING_BIGDECIMAL_ZEROES` (on by default since 2.15) stripped
the trailing zero at node construction,
so re-serialisation emitted an integer literal. The server then parsed
`275` as an integer while the request's
`275.0` stayed a double, and json-unit correctly reports those as
different — so the expectation never matched
the very request it was created for. The serializers now keep
`BigDecimal`s exact
(`JsonNodeFactory.withExactBigDecimals(true)`), so `275.0` survives as
`275.0` and genuine integers such as `1`
are left untouched. This also completes the original intent of the
earlier `USE_BIG_DECIMAL_FOR_FLOATS` fix
([#1740](https://redirect.github.com/mock-server/mockserver-monorepo/issues/1740)),
which was meant to preserve decimals such as `0.00` but — because the
same stripping was already active
at that time — had never actually done so. (GitHub issue
[#2658](https://redirect.github.com/mock-server/mockserver-monorepo/issues/2658)).
- Streaming responses (`httpSseResponse`, and streaming
`httpLlmResponse` with `completion.streaming:true`)
no longer wrongly close the connection at end of stream. `finishStream`
always closed by default —
`closeConnection` defaults to null and the old `null || true` test made
"unset" mean "always close" — while
the response head unconditionally advertised `Connection: keep-alive`.
So an HTTP/1.1 client that reused the
connection the response had promised it could keep got a
`RemoteDisconnected` on its next request, and on
HTTP/2 (where every non-gRPC stream is multiplexed onto one connection
channel) the `ctx.close()` emitted
GOAWAY and tore down the whole connection, killing sibling streams. The
end-of-stream decision now mirrors
the non-streaming path: an explicit `closeConnection` still wins on
HTTP/1.1, otherwise the request's
keep-alive intent decides and `alwaysCloseSocketConnections` still
forces a close; an HTTP/2 request never
closes the shared parent connection (its terminal frame ends only that
stream); and the `Connection` header
now reports the decision that is actually taken instead of always
claiming keep-alive. (GitHub issue
[#2641](https://redirect.github.com/mock-server/mockserver-monorepo/issues/2641)).
Note: fully-interleaved *concurrent* HTTP/2 streaming over the
single-connection HTTP/2 path was a separate
limitation (bare content frames were routed by a single current stream
id) and is now fixed too — see
[#2667](https://redirect.github.com/mock-server/mockserver-monorepo/issues/2667).
- Request bodies sent as `application/yaml`, `application/x-yaml` or
`application/graphql` are no longer
corrupted. None of those subtypes were in `MediaType.isString()`, so the
body was stored as a `BinaryBody`
and `getBodyAsString()` handed back **base64** — silently mangling every
YAML specification and GraphQL SDL
document sent with its natural content type, on the control plane (`PUT
/mockserver/graphql` rejected its
own documented example this way, and `PUT /mockserver/openapi` did the
same for a YAML spec) and in user
request matchers alike. `application/yaml` is the media type registered
by RFC 9512; all three are UTF-8
text with neither a `text` type nor a `+json`/`+xml` suffix to fall back
on.
- `PUT /mockserver/contractTest` no longer reports success for a run
that verified nothing. `allPassed` was
computed as `passed == results.size()`, which is vacuously true for an
empty result set, so a contract test
whose `operationId` filter was mistyped or had gone stale against a
renamed operation returned
`{"totalOperations": 0, "allPassed": true}`. An empty run is now
`allPassed: false` and carries an `error`
naming why nothing ran.
- The published OpenAPI examples for `PUT /mockserver/asyncapi/http`,
`PUT /mockserver/loadScenario/generateFromOpenAPI`
and `PUT /mockserver/contractTest` now work as published. The AsyncAPI
endpoint declared no request-body
example at all (so the generated Postman/Bruno collections sent an empty
body and the endpoint rejected it),
and the other two fetched their specification from a remote URL, so the
example failed anywhere without
egress. Both now carry an inline specification.
- With gRPC bidi-streaming enabled (`grpcBidiStreamingEnabled`), the
HTTP/2 `GOAWAY` drain signal now actually
reaches the client. Enabling that mode switches the HTTP/2 pipeline to
Netty's multiplex model, where each
stream is handled on its own child channel. The code that emits a
connection-level `GOAWAY` looked for the
HTTP/2 connection handler only on the local channel — but on a multiplex
child channel that handler lives on
the parent connection channel, so the lookup found nothing and the
`GOAWAY` was silently dropped. Two
"tell the client to drain" signals stopped working as a result: the
graceful drain `GOAWAY` sent while the
server is preempting/shutting down (so HTTP/2 clients stop opening new
streams and retry elsewhere), and the
`http2GoAway` chaos experiment. In both cases the server believed it had
signalled while the client never
learned, with nothing logged. The emitter now walks up to the parent
connection channel when needed, so the
`GOAWAY` is written on the connection where it belongs. The default
(non-multiplex) HTTP/2 path and HTTP/1.1
are unaffected. (GitHub issue
[#2669](https://redirect.github.com/mock-server/mockserver-monorepo/issues/2669)).
##### Changed
- `PUT /mockserver/loadScenario/generateFromRecording` answers **409**
rather than 400 when there is no
recorded traffic to convert; 400 now means only that the request is
malformed (missing `name`, an invalid
`mode`, or a scenario that fails validation). The body was always
well-formed in the no-traffic case — only
the state was missing — so 400 told callers their request was wrong and
gave them no way to tell that apart
from "record some traffic through the proxy first". The core throws a
dedicated
`LoadScenarioFromRecording.NoRecordedTrafficException`, which extends
`IllegalArgumentException` so existing
callers that catch it keep working. This was the last entry in the
collection gate's `KNOWN_FAILING`
ratchet, which is now empty: every example the published Postman/Bruno
collections carry is accepted by a
default container.
- `PUT /mockserver/verifySLO` answers **403** rather than 400 when SLO
tracking is disabled
(`sloTrackingEnabled=false`); 400 now means only that the criteria are
malformed. The two cases previously
shared 400, so a caller could not tell a typo in its criteria from a
server with the feature switched off —
every client library papered over it with a combined "invalid criteria
(or SLO tracking disabled)" message.
403 matches `PUT /mockserver/loadScenario/start`, which is the same
situation, and the feature-disabled
error the clients already model. All nine clients now distinguish the
two: Go returns `FeatureDisabledError`
on 403 and a criteria error on 400, PHP throws
`FeatureNotEnabledException` on 403, Java throws
`IllegalStateException` on 403 and keeps `IllegalArgumentException` for
400, and the Python, Ruby, Node,
Rust, .NET and dashboard clients give distinct messages for each.
##### Added
- **The initialization-file watch poll interval is now configurable**
via the new
`watchInitializationJsonPollPeriodMillis` property (system property
`-Dmockserver.watchInitializationJsonPollPeriodMillis`,
env var `MOCKSERVER_WATCH_INITIALIZATION_JSON_POLL_PERIOD_MILLIS`,
properties-file key, `Configuration`
instance setter, and `PUT /mockserver/configuration`). It controls how
often a watched
`initializationJsonPath` / `initializationOpenAPIPath` file (when
`watchInitializationJson=true`) is polled
for changes; default `5000` (5 seconds) — unchanged from the previously
hard-coded value — lower it for
faster live reloads or raise it to reduce polling overhead. Previously
this interval was a process-wide
mutable static with no supported configuration route, only reachable
through internal test-only setters.
Those four accessors (`FileWatcher.get/setPollPeriod` and
`get/setPollPeriodUnits`) are removed — they were
`public static` on an internal persistence class, were never a
documented configuration route, and had no
consumers outside MockServer's own tests; the property above replaces
them. The shared mutable static was
also a real defect: two test classes shortened it and restored it
concurrently, so whichever finished first
reinstated the 5-second default under the other, which is what reddened
master builds 6914/6918 and PR
[#2655](https://redirect.github.com/mock-server/mockserver-monorepo/issues/2655).
- **`ORCAROUTER` is now a supported LLM provider.** OrcaRouter
(`api.orcarouter.ai`) is an OpenAI-chat-compatible
AI gateway that fronts many upstream models with vendor-prefixed model
ids, so it is wired exactly like
`OPENROUTER`: it produces the OpenAI Chat Completions wire format, is
detected from its host on proxied
traffic, and prices vendor-prefixed model ids through the underlying
vendor's table. This completes community
contribution
[#2545](https://redirect.github.com/mock-server/mockserver-monorepo/pull/2545)
by adding `ORCAROUTER` to
the two consumer-facing published contracts the server-side change had
left out — the published OpenAPI
specification's `httpLlmResponse.provider` enum and the Node client's
`LlmProvider` type union — so the
provider is reachable from generated tooling and the TypeScript client,
and by documenting it on the LLM
response mocking page.
- `PUT /mockserver/retrieve` now accepts an expectation id (`{"id":
"..."}`) in the request body instead of a request
matcher, matching what `PUT /mockserver/clear` and `PUT
/mockserver/verify` have always accepted (GitHub issue
[#2591](https://redirect.github.com/mock-server/mockserver-monorepo/issues/2591)).
For `?type=active_expectations` this returns only the expectation with
that id — filtering on the id itself, not on
the request definition it resolves to, so it neither returns every other
expectation whose matcher matches the same
request nor misses expectations (OpenAPI, schema or regex matchers)
whose own definition does not match their own
matcher. For `requests`, `request_responses`, `recorded_expectations`
and `logs` it returns the entries matching that
expectation's request, exactly as verify by expectation id matches them.
An unknown id is rejected with
`400 No expectation found with id ...` rather than silently matching
everything. The expectation-id body and the
request-matcher body are unambiguous — both JSON schemas set
`additionalProperties: false` and only the expectation
id schema allows (and requires) an `id` property — so existing
request-matcher and empty bodies are unaffected. All
nine clients gained the corresponding calls: Java `retrieve*ById(...)`,
Node `retrieve*ById(...)`, Python/Ruby
`retrieve_*_by_id(...)`, Go `Retrieve*ByID(...)`, Rust
`retrieve_*_by_id(...)`, PHP `retrieve*ById(...)` and
.NET `Retrieve*ById(...)`.
- The LLM provider list in the two consumer-facing published contracts —
the OpenAPI specification
(`jekyll-www.mock-server.com/mockserver-openapi.yaml`, schema
`HttpLlmResponse.provider`) and the Node client's
`LlmProvider` type union (`mockserver-client-node/mockServer.d.ts`) — is
now pinned to the server's `Provider` enum
by `ProviderConsumerContractEnumParityTest`. Previously a new provider
could be added to `Provider` and every
server-side registration point while both published contracts were left
behind, and nothing failed: the existing
internal-schema parity test does not read these files, and the Node
drift test compares the `.d.ts` only against the
OpenAPI spec, so the two consumer copies could drift from the server in
lock-step yet still agree with each other.
Both consumer artefacts are now driven from the one authority (the
compiled `Provider` enum), in both directions, and
each failure message names the missing provider, the exact file, and how
to fix it.
- Pull requests from third-party forks now get an automated test signal,
via a new GitHub Actions workflow
(`.github/workflows/pr-tests.yml`). Buildkite — the primary CI —
deliberately does not build fork PRs
(`build_pull_request_forks: false`) because its EC2 agents carry the
signing key and every publish credential, so
community PRs previously got no test feedback at all. The new workflow
runs the full Maven reactor `clean install`
(Surefire unit tests and Failsafe integration tests, including the
Docker-gated Testcontainers suites, which execute
against local emulator containers on the Docker-enabled hosted runner —
no cloud credentials) plus the standalone
examples build, and uploads the failing tests' reports as an artifact so
the contributor can see which test failed
and why. It is secret-free by construction — `on: pull_request` (never
`pull_request_target`), no `secrets.*`
reference, workflow-level `permissions: {}` with the one job granted
only `contents: read`, and GitHub-owned
SHA-pinned actions only — so it is useless to an attacker who controls
the code it runs. It runs only on fork PRs
(where Buildkite adds nothing) and on manual `workflow_dispatch`;
in-repo branches keep their full Buildkite
pipeline. The three privileged transparent-proxy end-to-end suites are
excluded explicitly here — by name, via
`-Dfailsafe.excludesFile`, which preserves the POM includes and drops
only those classes — because they build
`--cap-add=NET_ADMIN`/`--privileged` sibling containers a hosted runner
cannot be relied on to support, and their
only code-level gate (`DockerCliTestSupport.isDockerAvailable()`) is
true on `ubuntu-latest` (Maven has no
`RUN_TRANSPARENT_PROXY_E2E` gate — that is a Buildkite shell-step switch
only); they, and the client-language/UI/Helm
pipelines, remain Buildkite's responsibility. The Docker-gated
Testcontainers suites that do run are paired with a
fail-closed `assert-suite-ran.sh` check, so a runner without a usable
Docker daemon reds the job rather than passing
green on skipped coverage.
- Dependabot minor/patch pull requests are now merged automatically once
**every** check that actually exists on the
PR head commit has genuinely passed, via a new GitHub Actions workflow
(`.github/workflows/dependabot-auto-merge.yml`).
It was chosen deliberately over GitHub's native auto-merge: native
auto-merge waits only on the branch-protection
*required-status-check list*, and in this repo Buildkite and both Snyk
scans are **not** required checks, so native
auto-merge would merge the instant the *required* checks were green
while the build or the vulnerability scanner was
still pending or red — and a newly-added check stays invisible to it
until someone edits the list. Instead the workflow
reads the checks that actually exist by aggregating **both** GitHub APIs
— the Check Runs API
(`/commits/{sha}/check-runs`, which on a Dependabot head carries CodeQL
and the language `Analyze` runs) **and** the
legacy Commit Status API (`/commits/{sha}/status`, which carries
`buildkite/mockserver` and both Snyk scans) — and
requires them to pass. Commit statuses must be `success` — the legacy
status API has only `error`/`failure`/`pending`/
`success`, so the security-critical contexts cannot report a
non-blocking state. Check runs may be `skipped` or
`neutral` without blocking (the fork-only test workflow is always
skipped on an in-repo PR, so requiring literal
success from every run would merge nothing), but at least one genuine
success is still required. It fails closed on
every other ambiguity: any pending, failed, cancelled or unrecognised
result, **zero** checks found (the empty-set
trap), an API error, or unknown mergeability all refuse the merge with a
logged reason. It merges only PRs authored by `dependabot[bot]` whose
head branch is in this
repository (not a fork), and only two branch classes: **minor/patch**
group updates and Docker **digest** bumps. For
the first, `.github/dependabot.yml` groups minor+patch into
`*-minor-and-patch` groups and excludes majors, so a major
arrives as an ungrouped single-dependency branch that fails the
group-branch check — a structural, spoof-resistant
signal because only Dependabot creates those in-repo branches. For the
second, a Docker image-digest bump (a new SHA
on an *unchanged* tag) carries no semver and so joins no group; it is
now accepted directly, but **only** for the
distroless runtime bases — the one image class that, being pinned on
non-semver tags, has only ever moved by digest in
this repo's entire Dependabot history — and only when **two**
independent Dependabot-generated signals agree: the
branch is a `.../distroless/-` path **and** the PR title
is Dependabot's digest-bump shape (`bump … from to
`). A version or tag bump matches neither (its branch and title
carry bare versions, not hex
shas), and the two-signal AND fails closed, so a major or tag change can
never be auto-merged. The semver-tagged
images (`alpine`, `ubuntu`, `eclipse-temurin`, `grafana/k6`) are
deliberately excluded from the digest path — safety
over completeness. `.github/dependabot.yml` is unchanged.
The workflow runs on a `schedule` sweep plus `workflow_dispatch` (never
`pull_request`/`pull_request_target`), checks
out no PR code, uses no third-party actions and no `secrets.*`, and
holds only job-level `contents: write` +
`pull-requests: write` under a workflow-level `permissions: {}`. It
ships with `dry_run` defaulting **ON** so it can be
trialled — logging each decision without merging — until the schedule
default is flipped to live.
##### Changed
- The Dependabot auto-merge workflow
(`.github/workflows/dependabot-auto-merge.yml`) is now **live on the
schedule**:
`DEFAULT_DRY_RUN` was flipped from `'true'` to `'false'`, so the
scheduled sweep actually merges eligible PRs rather
than only logging its decisions. The `workflow_dispatch` `dry_run` input
still defaults to `true`, so a manual run
stays a safe dry-run probe unless the operator explicitly sets it false.
Arming it is backed by a new standing guard
(Rule 6 in `.buildkite/scripts/steps/check-false-green-guards.sh`) that
fails the build if any of the four
load-bearing properties keeping majors and version bumps out of
auto-merge is quietly weakened: it parses the three
acceptance regexes out of the workflow and asserts the digest-branch
regex stays anchored, confined to
`dependabot/docker/`, keeps its literal `/distroless/` scope and a
trailing hex-run floor of at least 7 (without the
scope a date-tagged bump such as `bump ubuntu from 202401151200 to
202402201200`, whose date tokens are all hex, would match
the title regex); the digest-title regex requires a `[0-9a-f]{7,}` run
on both the from and to sides; path B still
cross-checks the title as a conjunct of the branch shape and fails
closed on mismatch; and every group in
`.github/dependabot.yml` whose branch name path A accepts declares
`update-types` within `{minor, patch}`, so a major
can never ride a branch literally named `*-minor-and-patch`. The guard
fails closed if the workflow is missing, a
regex cannot be extracted, path B cannot be located, or no group is
accepted by path A.
- Dependabot no longer proposes TypeScript 7.x for the Node/UI packages.
`typescript-eslint`'s peer range is
`typescript >=4.8.4 <6.1.0`, so a TypeScript 7 bump fails `npm ci` with
`ERESOLVE` before lint or typecheck can run,
and nothing else in the tree raises that ceiling — the upgrade is
unmergeable until `typescript-eslint` ships
support for the new major. The `ignore` carries the reason and an
explicit revisit condition, so it is a recorded
decision rather than silent suppression.
- Dependabot version-ceiling ignores that guard a dependency declared in
the reactor parent `mockserver/pom.xml`
are now mirrored into every Dependabot block whose module inherits that
parent — `/examples/java` and
`/mockserver/mockserver-maven-plugin`. Because those child directories
resolve *up* into the parent pom, Dependabot
scanning them could bump a parent-declared dependency and brand the PR
with the child scope, sidestepping an ignore
that existed only in the `/mockserver` block. That is exactly how the
un-passable `checkstyle 12.3.1 -> 13.10.0`
PR
[#2554](https://redirect.github.com/mock-server/mockserver-monorepo/issues/2554)
was generated from `/examples/java` (checkstyle 13 ships Java 21
bytecode; the project floor is Java 17).
The `checkstyle >= 13.0.0` and `graphql-java` ceilings are now present
in all three parent-reaching blocks;
the module-only `infinispan-core` ignore is deliberately not mirrored
because it is unreachable from those scopes.
Each block carries a `SYNC-WITH-PARENT` note so future ignores are added
in every parent-reaching block.
- Corrected a second, freshly-introduced ceiling suppression of the same
class. The `typescript >= 7.0.0` ignore
added on 2026-08-17 was placed on the npm block **shared** by
`/mockserver-ui`, `/mockserver-client-node` and
`/mockserver-node`, but its rationale (a `typescript-eslint` peer
conflict) applies only to the UI.
`mockserver-client-node` was already on typescript `~7.0.2` — above the
ceiling — and carries no
`typescript-eslint`, so the ignore silently froze every typescript
update for that published package.
`/mockserver-ui` now has its own block carrying the ignore, mirroring
how `/mockserver-vscode` was already
split for the same reason: a directory-specific constraint must not leak
onto directories it does not apply to.
- Corrected a Dependabot ceiling that had been suppressing every
`graphql-java` update, including security patches.
The ignore read `>= 25.0.0` while `mockserver/pom.xml` had already moved
to `26.0`, so the in-use version was itself
above the ceiling and no candidate could ever be proposed. This was
found while mirroring the ignore into the two
parent-reaching blocks — the mirror would have propagated the fault
rather than the control. Raised to `>= 27.0.0`
in all three blocks and documented the invariant inline: **a ceiling
must stay above the version in use**, because
one at or below it is indistinguishable from a working ceiling — no pull
requests appear either way. The stale
"22.x line" comments in `mockserver/pom.xml` and the `< 25.0.0` row in
`docs/operations/security.md` are corrected
to match the 26.x reality.
- A managed `org.jspecify:jspecify` version (`1.0.1`) is now pinned in
`mockserver/pom.xml` ``
so `maven-enforcer`'s `DependencyConvergence` stays green across Guava
and graphql-java bumps. Guava `33.7.0-jre`
pulls jspecify `1.0.1` while `graphql-java -> java-dataloader:6.0.0`
pulls `1.0.0`; with no managed version the two
transitive paths diverge the moment Guava moves, which is why Dependabot
PR
[#2555](https://redirect.github.com/mock-server/mockserver-monorepo/issues/2555)
(`guava 33.6.0 -> 33.7.0`) failed
the enforcer. jspecify is an annotation-only artifact and `1.0.1` is a
backward-compatible patch that neither
consumer rejects, so the higher line is pinned.
##### Removed
- **BREAKING BEHAVIOUR: `org.mock-server:mockserver-examples` is no
longer published to Maven Central, and the
`org.mockserver.examples` JPMS automatic module is no longer
resolvable.** This artifact was only ever sample code
demonstrating client and proxy usage — not a supported consumer
dependency — but it had been GPG-signed and deployed
to Maven Central on every release (it was a `` of the
`mockserver` reactor, and the release deploy runs
`mvn deploy -P release` over that whole reactor with no `-pl`
restriction). It has now been removed from the `mockserver`
reactor, so the release deploy no longer reaches it and no new versions
will appear on Central
(`skipPublishing=true` in its POM guards against a future re-add).
**Previously published versions (7.6.0 and earlier)
remain available and resolvable forever** — only new releases are
affected. Anyone who declared a dependency on
`mockserver-examples` or `requires org.mockserver.examples` should pin
the last published version or, preferably,
copy the sample code (`examples/java/`) into their own project. This is
marked `BREAKING BEHAVIOUR` rather than plain
`BREAKING` because it does not force a major version bump: the artifact
was never a supported dependency, no shipped
MockServer artifact depends on it, and every previously published
version stays available.
##### Fixed
- Fixed an order-dependent failure in the blob-store registrar tests,
surfaced by running the suite on hardware
with a different class ordering. `S3ExpectationPersistenceReloadTest`
starts a real server with
`blobStoreType("s3")`, which makes `StateBackendFactory` discover and
register the s3 factory in its JVM-global
registry, and its teardown stopped the server and the MinIO container
without resetting that registry. Every test
class in the module shares one reused fork under surefire's default
`filesystem` run order, which is not stable
across machines — so whenever that class happened to run first,
`S3BlobStoreRegistrarTest`'s "s3 should not be
registered before register()" precondition saw inherited state and
failed. The leak is now cleaned up on
teardown, and all three registrar tests (s3, gcs, azure) scrub the
registry on **entry** as well as exit, so the
precondition holds regardless of what ran before them. The gcs and azure
tests had the identical latent shape and
passed only because their modules contain no equivalent leaker.
Reproduced by forcing the losing order
(`-Dsurefire.runOrder=reversealphabetical`) and confirmed fixed under
it.
- The new fork-PR test workflow (`.github/workflows/pr-tests.yml`) now
reports one red per real failure instead of
three. A latent race in
`ThirdPartyStreamingClientConformanceIntegrationTest` surfaced on the
slower
`ubuntu-latest` runner:
`shouldDeliverMessageThenCloseWhenCloseConnectionIsSet` is the one case
whose server is
configured `withCloseConnection(true)` (it delivers `"bye"` and closes
immediately, by design), yet it asserted on
Java-WebSocket's `connectBlocking()` boolean, which returns
`connectLatch.await(...) && engine.isOpen()` — and that
latch is counted down by both `onWebsocketOpen` and `onWebsocketClose`,
so the deliberate close races the
`isOpen()` read and the bare assert fails in \~12 ms. It now asserts the
observable handshake outcome via the
client's `opened` latch (`onOpen` always precedes any close on a
successful handshake); the close, the `"bye"`
payload, and the orderly close code were already verified race-free and
are preserved. The product is unchanged —
`withCloseConnection(true)` did exactly what it promises. Two derivative
reds in the same workflow are gone too:
the standalone-examples step and the "assert Docker-gated suites
actually ran" step are now gated on the reactor
step succeeding (`steps.reactor.outcome == 'success'`) rather than
merely `!cancelled()`, so a reactor failure no
longer makes the examples build die with "Could not resolve dependencies
for … mockserver-examples" (the reactor's
`install` never completed) or makes the suite-ran check red on
`mockserver-blob-s3` with "the suite did not run"
(S3 was only skipped because of its test-scope reactor dependency on the
failed `mockserver-netty`, two modules
away). The suite-ran check stays fail-closed for the case it exists for:
a runner without Docker `assumeTrue`-skips
the suites, Maven still exits 0, so the reactor step succeeds, the check
runs, finds no report, and reds loudly.
- Dependabot now proposes grouped Maven updates for the core
`mockserver` reactor again. The reactor's
`mockserver/pom.xml` declared `../examples/java`, a
path that escaped Dependabot's
`directory: "/mockserver"` scope; with no repository-root `pom.xml`,
Dependabot re-parsed a scoped file subset,
found no top-level pom and aborted every grouped-update run for the
reactor with `No pom.xml!`. As a result **no**
grouped Maven PR was ever created for the core modules (broken since the
examples were unified in `d3cfa9aaf`),
while the self-contained `mockserver-maven-plugin` sibling kept working,
and `examples/java`'s own dependencies had
no coverage at all. `examples/java` is now removed from the reactor so
`/mockserver` is a self-contained Maven
directory; the examples are kept compiled and tested by a second
standalone Maven invocation in CI immediately after
the reactor `install` (`scripts/buildkite_quick_build.sh`), and their
own dependencies are covered by a new
`/examples/java` block in `.github/dependabot.yml`. (Vulnerability
*alerts* were never affected — those come from the
submitted dependency graph, not update proposal.)
- The release pipeline can no longer silently overwrite the previous
version's archived documentation site. Whether a
release creates a new versioned subdomain (`X-Y.mock-server.com`) is
fully determined by whether it is a major/minor
release, but it was a free operator dropdown (`create-versioned-site`)
defaulting to `no`. On the 7.6.0 release that
default was left in place, so terraform's `latest_version` still pointed
`main` at the previous version's bucket and
the docs publish (`aws s3 sync --delete`) destroyed the
`7-5.mock-server.com` archive. The value is now **derived**
from `RELEASE_VERSION` vs the previous tag in `require_release_inputs`
(the single input-validation chokepoint every
release script runs, before `prepare.sh` tags or pushes); the Buildkite
input defaults to `auto`, and an explicit
`yes`/`no` is honoured only as a confirmation that must agree with the
derived value or the run **fails closed**.
This makes both destructive mistakes impossible: a major/minor release
with `no` (overwrites the previous archive)
and a patch release with `yes` (spurious subdomain).
- Removed a live-internet dependency from the `mockserver-core` unit
tests. `ExpectationSerializerTest`
(`shouldAllowSingleOpenAPIObjectForArray` and
`shouldAllowMixedExpectationTypesForArray`) referenced the bundled
petstore OpenAPI spec via a `https://raw.githubusercontent.com/...` URL;
because `deserializeArray()` actually loads
the spec to generate example bodies, every ordinary build fetched that
URL over the internet. A transient HTTP 429
(rate limit) from `raw.githubusercontent.com` failed the test — and took
down the 7.6.0 release build after it had
already tagged and pushed. Both tests now resolve the byte-identical
copy from the test classpath
(`org/mockserver/openapi/openapi_petstore_example.json`, the same local
reference the sibling `HttpStateTest` and
`JsonSchemaExpectationValidatorTest` already use), so the suite no
longer depends on GitHub being reachable or
un-rate-limited. The behaviour under test (a single OpenAPI object
deserialising into an array of expectations with
the correct generated bodies) is unchanged and still fully asserted.
- The Rust client's `cargo clippy` gate no longer fails the build on an
unchanged source tree. The
`mockserver-rust` pipeline lints inside a container pulled from the
**floating** `rust:1` tag, and that tag moved to
clippy 1.98.0, whose `clippy::needless_late_init` now also flags
late-initialised `let` chains assigned across an
`if`/`else if` sequence. `resolve_platform()` in
`mockserver-client-rust/src/launcher.rs` had two such chains
(`os_name`/`ext`, and `arch`), so with `-D warnings` the lint became a
hard error and the crate stopped compiling —
on code nobody had touched. Master build
[#638](https://redirect.github.com/mock-server/mockserver-monorepo/issues/638)
passed this exact source; build
[#639](https://redirect.github.com/mock-server/mockserver-monorepo/issues/639),
fifteen hours later on a newer
`rust:1`, failed it, which also red-herring-failed an unrelated
Dependabot pull request whose only change was to a
Java dependency. Both chains are now initialising `if`/`else`
expressions (a tuple for the jointly-assigned
`os_name`/`ext` pair), exactly the rewrite clippy itself suggests; the
diverging `else` arms still `return Err(...)`
and coerce as `!`. Behaviour is byte-for-byte identical — same platform
tokens, same error messages, same `Platform`
— and was confirmed by running the fix under the real clippy 1.98.
> ❗ **Important**
>
> ✂ PR body was truncated to here.
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/prometheus/client_java).
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
prometheus-metrics-exporter-pushgateway/pom.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/prometheus-metrics-exporter-pushgateway/pom.xml b/prometheus-metrics-exporter-pushgateway/pom.xml
index e97be74799..13e9c4b8eb 100644
--- a/prometheus-metrics-exporter-pushgateway/pom.xml
+++ b/prometheus-metrics-exporter-pushgateway/pom.xml
@@ -35,7 +35,7 @@
org.mock-servermockserver-netty-no-dependencies
- 7.6.0
+ 8.0.0test
From de17496d9e99c2fbd63bf71187da0314312069bb Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Tue, 15 Sep 2026 13:36:53 +0000
Subject: [PATCH 152/255] chore(deps): update dependency java-jdk to
v25.0.4+101.0.lts (#2474)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [java-jdk](https://adoptium.net) | uses-with | major |
`21.0.12+101.0.LTS` → `25.0.4+101.0.LTS` |
| [java-jdk](https://adoptium.net) | uses-with | patch | `25` →
`25.0.4+101.0.LTS` |
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about these
updates again.
---
- [ ] If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/prometheus/client_java).
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
.github/workflows/codeql.yml | 2 +-
.github/workflows/release.yml | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml
index a7590586ba..5537cf6f25 100644
--- a/.github/workflows/codeql.yml
+++ b/.github/workflows/codeql.yml
@@ -29,7 +29,7 @@ jobs:
uses: actions/setup-java@de7274f081f381c8f8158605e0321c36c376e2e6 # v6
with:
distribution: temurin
- java-version: "25"
+ java-version: "25.0.4+101.0.LTS"
- name: Cache Maven repository
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index 0bbafa3589..b2980f50cc 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -85,7 +85,7 @@ jobs:
uses: actions/setup-java@de7274f081f381c8f8158605e0321c36c376e2e6 # v6
with:
distribution: "temurin"
- java-version: "21.0.12+101.0.LTS"
+ java-version: "25.0.4+101.0.LTS"
server-id: ossrh
server-username: MAVEN_USERNAME
server-password: MAVEN_CENTRAL_TOKEN
From fba2007409a601e939abaa99b5b338d55a205f09 Mon Sep 17 00:00:00 2001
From: Bin Fan
Date: Tue, 15 Sep 2026 06:42:42 -0700
Subject: [PATCH 153/255] test: verify buffer recovery after snapshot failures
(#2446)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
## Problem
`Buffer.run()` sets the buffer-active bit on every striped observation
counter, waits for
in-flight observations to land, calls `createResult.get()`, and then
clears the bit again.
The surrounding `finally` only releases `runLock` — the bit-clearing
block sits inside the
`try`, so when `createResult.get()` throws, the bit is left set
permanently.
https://github.com/prometheus/client_java/blob/main/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/Buffer.java#L90-L139
Two things follow from a bit that stays set:
- `append()` keeps returning `true`, so observations go into the buffer
instead of being
recorded, and are replayed at an arbitrary later point.
- The next `run()` derives `expectedCount` from counters that still
carry the sign bit, so
`complete.apply(expectedCount)` may never be satisfied. The wait loop
then spins on
`Thread.yield()` indefinitely **while holding `runLock`**, which blocks
every subsequent
scrape of that registry.
Whether the second case spins or instead produces a corrupt snapshot
depends on the number
of stripes, because `2 * Long.MIN_VALUE == 0`: the sign-bit
contributions cancel out for an
even `Runtime.getRuntime().availableProcessors()`. With an even stripe
count you get a run
whose buffer semantics are inverted (observations recorded directly
rather than buffered,
i.e. a torn snapshot) rather than a hang. With an odd count — including
the single
`AtomicLong` this code used before striping — the spin is deterministic.
Nothing clears the bit in-process, so the only recovery is a process
restart.
## Fix
Move the wait-and-create block into its own `try`, with the "signal that
the buffer is
inactive" step and the buffer drain in the matching `finally`.
The drain has to move with it rather than just the bit flip: leaving
`bufferPos` set makes
the next `run()` skip its own wait and replay stale values on top of the
new ones. The
arithmetic is unaffected on the exception path — `expectedCount` is
computed before the
throw, so `expectedBufferSize -= expectedCount` still holds.
## Test
`BufferTest.bufferIsDeactivatedWhenCreateResultThrows` asserts the
invariant rather than the
symptom: after `run()` returns *or* throws, the buffer must be inactive,
probed directly via
`append()`. Using `count -> true` for `complete` keeps the test
independent of the stripe
count, so it fails deterministically on any machine.
Verified both ways:
| | Result |
|---|---|
| With the fix, `BufferTest` | 2/2 pass |
| With the fix reverted | fails — `Expecting value to be false but was
true` |
| With the fix, full `prometheus-metrics-core` suite | 166/166 pass |
## How we hit this
Found in production in Alluxio on `prometheus-metrics-core` 1.0.0. An
`OutOfMemoryError`
raised inside `createResult.get()` — snapshot creation allocates several
arrays per data
point, so it is a likely place for an allocation to fail — left the bit
set and wedged the
`/metrics` endpoint of several workers for 4.5 days, until they were
restarted. Three
separate data points were poisoned within 12 seconds of each other,
consistent with a single
JVM-wide allocation failure rather than a race.
Note that `Buffer.run()` catches nothing, so an `Error` leaks the bit
exactly as an exception
does.
## Relation to #2287
#2287 reports two things about this class: unbounded growth of
`observationBuffer` in
`doAppend()`, and the `Thread.yield()` wait loop having no timeout. This
PR fixes neither of
those directly — it removes the error path that makes the second one
*permanent*. Without a
leaked active bit, the wait loop is a bounded spin over in-flight
observations; with one, it
never terminates. So the two changes are complementary rather than
overlapping, and I have
deliberately left the loop itself alone here to keep this diff
reviewable.
## Notes
- The unbounded `Thread.yield()` wait loop is left as-is; this change
only ensures a thrown
exception cannot turn it into an infinite spin.
- Built and tested locally with JDK 24 (`-Dtest.java.version=24`), since
`test.java.version`
defaults to 25. Main sources are unaffected (`java.version=8`). I was
not able to run
`mise run lint` locally, so please let CI arbitrate formatting.
## Update after merging main
The original production change above is now superseded by the
generation-based `Buffer`
implementation merged in #2336. This update merges the original PR with
current `main` and
retains the original production rationale for historical context; no
production code from this
PR remains in the resulting diff.
The retained regression coverage now exercises both
`IllegalStateException` and
`AssertionError` from snapshot creation. Each test appends while the
collection generation is
active, verifies the buffered observation is replayed exactly once,
verifies a later append takes
the direct path, and completes a subsequent collection successfully.
`BufferTest` passes 8/8,
`mise run lint:fix` passes, and `mise run build -- -DskipITs=true`
passes (Docker integration
services are unavailable in this environment).
Signed-off-by: Bin Fan
Co-authored-by: Claude Opus 5
Co-authored-by: Gregor Zeitlinger
---
.../metrics/core/metrics/BufferTest.java | 39 +++++++++++++++++++
1 file changed, 39 insertions(+)
diff --git a/prometheus-metrics-core/src/test/java/io/prometheus/metrics/core/metrics/BufferTest.java b/prometheus-metrics-core/src/test/java/io/prometheus/metrics/core/metrics/BufferTest.java
index 3093110d3d..38b4fca4eb 100644
--- a/prometheus-metrics-core/src/test/java/io/prometheus/metrics/core/metrics/BufferTest.java
+++ b/prometheus-metrics-core/src/test/java/io/prometheus/metrics/core/metrics/BufferTest.java
@@ -74,6 +74,45 @@ void timeoutDoesNotCreateSnapshot() {
.withMessage("Timed out while waiting for in-flight observations.");
}
+ @Test
+ void failedSnapshotReplaysBufferedObservationsAndAllowsNextCollection() {
+ assertFailedSnapshotIsRecovered(new IllegalStateException("snapshot failed"));
+ }
+
+ @Test
+ void failedSnapshotWithErrorStillDeactivatesAndReplaysBuffer() {
+ assertFailedSnapshotIsRecovered(new AssertionError("snapshot failed"));
+ }
+
+ private void assertFailedSnapshotIsRecovered(Throwable failure) {
+ Buffer buffer = new Buffer();
+ List replayedObservations = new ArrayList<>();
+
+ assertThatExceptionOfType(failure.getClass())
+ .isThrownBy(
+ () ->
+ buffer.run(
+ ignored -> true,
+ () -> {
+ assertThat(buffer.append(1.0)).isTrue();
+ if (failure instanceof Error) {
+ throw (Error) failure;
+ }
+ throw (RuntimeException) failure;
+ },
+ replayedObservations::add))
+ .isSameAs(failure);
+ assertThat(replayedObservations).containsExactly(1.0);
+ assertThat(buffer.append(2.0)).isFalse();
+ assertThat(
+ buffer.run(
+ ignored -> true,
+ () -> new CounterSnapshot.CounterDataPointSnapshot(0, Labels.EMPTY, null, 0),
+ replayedObservations::add))
+ .isNotNull();
+ assertThat(replayedObservations).containsExactly(1.0);
+ }
+
@Test
void fullBufferUnblocksAppenderWhenGenerationIsDeactivated() throws InterruptedException {
CountDownLatch runStarted = new CountDownLatch(1);
From ea8f935c2112bf511210a065d74e6e3292067e9f Mon Sep 17 00:00:00 2001
From: Harsh Srivastava <76532840+HarshDevelops@users.noreply.github.com>
Date: Tue, 15 Sep 2026 21:05:58 +0530
Subject: [PATCH 154/255] fix: include counter names in negative value errors
(#2315)
Fixes #1090
## What was wrong
When a counter scrape produced a negative value, the exception was only
the bare number and the phrase counters cannot have a negative value. In
large applications that is hard to map back to a meter.
## What changed
CounterDataPointSnapshot can carry an optional metric name used only in
the validation message. Counter and CounterWithCallback pass the name
when collecting. Labels are appended when present. Callers such as
Micrometer can set the name through the builder.
## Testing
- CounterSnapshotTest.testNegativeValueIncludesMetricNameInMessage
- CounterSnapshotTest (9 tests, 0 failures) on JDK 25
- Signed-off-by (DCO)
- Honest note: local package of prometheus-metrics-core succeeded; full
multi-module CI is expected on GitHub
---------
Signed-off-by: Harsh Srivastava
Signed-off-by: Gregor Zeitlinger
Co-authored-by: Gregor Zeitlinger
---
.../prometheus-metrics-model.txt | 2 +
.../metrics/core/metrics/Counter.java | 14 +++--
.../core/metrics/CounterWithCallback.java | 7 ++-
.../core/metrics/CounterWithCallbackTest.java | 13 +++++
.../model/snapshots/CounterSnapshot.java | 52 +++++++++++++++++--
.../model/snapshots/CounterSnapshotTest.java | 18 +++++++
6 files changed, 95 insertions(+), 11 deletions(-)
diff --git a/docs/apidiffs/current_vs_latest/prometheus-metrics-model.txt b/docs/apidiffs/current_vs_latest/prometheus-metrics-model.txt
index d298829ca6..d514400194 100644
--- a/docs/apidiffs/current_vs_latest/prometheus-metrics-model.txt
+++ b/docs/apidiffs/current_vs_latest/prometheus-metrics-model.txt
@@ -1,4 +1,6 @@
Comparing source compatibility of prometheus-metrics-model-1.8.1-SNAPSHOT.jar against prometheus-metrics-model-1.8.0.jar
+*** MODIFIED CLASS: PUBLIC STATIC io.prometheus.metrics.model.snapshots.CounterSnapshot$CounterDataPointSnapshot (not serializable)
+ === CLASS FILE FORMAT VERSION: 52.0 <- 52.0
*** MODIFIED CLASS: PUBLIC FINAL io.prometheus.metrics.model.snapshots.Labels (not serializable)
=== CLASS FILE FORMAT VERSION: 52.0 <- 52.0
diff --git a/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/Counter.java b/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/Counter.java
index 1c614bdf33..8b7905571b 100644
--- a/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/Counter.java
+++ b/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/Counter.java
@@ -92,8 +92,9 @@ public CounterSnapshot collect() {
@Override
protected CounterSnapshot collect(List labels, List metricData) {
List data = new ArrayList<>(labels.size());
+ String metricName = metadata.getName();
for (int i = 0; i < labels.size(); i++) {
- data.add(metricData.get(i).collect(labels.get(i)));
+ data.add(metricData.get(i).collect(labels.get(i), metricName));
}
return new CounterSnapshot(metadata, data);
}
@@ -199,7 +200,7 @@ private void validateAndAdd(double amount) {
doubleValue.add(amount);
}
- private CounterSnapshot.CounterDataPointSnapshot collect(Labels labels) {
+ private CounterSnapshot.CounterDataPointSnapshot collect(Labels labels, String metricName) {
// Read the exemplar first. Otherwise, there is a race condition where you might
// see an Exemplar for a value that's not counted yet.
// If there are multiple Exemplars (by default it's just one), use the newest.
@@ -212,8 +213,13 @@ private CounterSnapshot.CounterDataPointSnapshot collect(Labels labels) {
}
}
}
- return new CounterSnapshot.CounterDataPointSnapshot(
- get(), labels, latestExemplar, createdTimeMillis);
+ return CounterSnapshot.CounterDataPointSnapshot.builder()
+ .value(get())
+ .labels(labels)
+ .exemplar(latestExemplar)
+ .createdTimestampMillis(createdTimeMillis)
+ .metricName(metricName)
+ .build();
}
}
diff --git a/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/CounterWithCallback.java b/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/CounterWithCallback.java
index 514a13d268..cde6f18e1d 100644
--- a/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/CounterWithCallback.java
+++ b/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/CounterWithCallback.java
@@ -47,8 +47,11 @@ public CounterSnapshot collect() {
callback.accept(
(value, labelValues) -> {
dataPoints.add(
- new CounterSnapshot.CounterDataPointSnapshot(
- value, makeLabels(labelValues), null, 0L));
+ CounterSnapshot.CounterDataPointSnapshot.builder()
+ .value(value)
+ .labels(makeLabels(labelValues))
+ .metricName(metadata.getName())
+ .build());
});
return new CounterSnapshot(metadata, dataPoints);
}
diff --git a/prometheus-metrics-core/src/test/java/io/prometheus/metrics/core/metrics/CounterWithCallbackTest.java b/prometheus-metrics-core/src/test/java/io/prometheus/metrics/core/metrics/CounterWithCallbackTest.java
index 2907a8a027..61377c18f9 100644
--- a/prometheus-metrics-core/src/test/java/io/prometheus/metrics/core/metrics/CounterWithCallbackTest.java
+++ b/prometheus-metrics-core/src/test/java/io/prometheus/metrics/core/metrics/CounterWithCallbackTest.java
@@ -43,4 +43,17 @@ void testCounterNoCallback() {
.isThrownBy(
() -> CounterWithCallback.builder().name("counter").labelNames("l1", "l2").build());
}
+
+ @Test
+ void testNegativeValueIncludesMetricName() {
+ CounterWithCallback counter =
+ CounterWithCallback.builder()
+ .name("negative_counter")
+ .callback(callback -> callback.call(-1.0))
+ .build();
+
+ assertThatExceptionOfType(IllegalArgumentException.class)
+ .isThrownBy(counter::collect)
+ .withMessage("negative_counter=-1.0: counters cannot have a negative value");
+ }
}
diff --git a/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/CounterSnapshot.java b/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/CounterSnapshot.java
index 42a06f3bbf..d2d3dfcaac 100644
--- a/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/CounterSnapshot.java
+++ b/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/CounterSnapshot.java
@@ -49,6 +49,9 @@ public static class CounterDataPointSnapshot extends DataPointSnapshot {
private final double value;
@Nullable private final Exemplar exemplar;
+ /** Optional metric name used only in validation error messages. */
+ @Nullable private final String metricName;
+
/**
* To create a new {@link CounterDataPointSnapshot}, you can either call the constructor
* directly or use the Builder with {@link CounterDataPointSnapshot#builder()}.
@@ -62,7 +65,7 @@ public static class CounterDataPointSnapshot extends DataPointSnapshot {
*/
public CounterDataPointSnapshot(
double value, Labels labels, @Nullable Exemplar exemplar, long createdTimestampMillis) {
- this(value, labels, exemplar, createdTimestampMillis, 0);
+ this(value, labels, exemplar, createdTimestampMillis, 0, false, null);
}
/**
@@ -77,7 +80,7 @@ public CounterDataPointSnapshot(
@Nullable Exemplar exemplar,
long createdTimestampMillis,
long scrapeTimestampMillis) {
- this(value, labels, exemplar, createdTimestampMillis, scrapeTimestampMillis, false);
+ this(value, labels, exemplar, createdTimestampMillis, scrapeTimestampMillis, false, null);
}
@SuppressWarnings("this-escape")
@@ -88,9 +91,22 @@ public CounterDataPointSnapshot(
long createdTimestampMillis,
long scrapeTimestampMillis,
boolean internal) {
+ this(value, labels, exemplar, createdTimestampMillis, scrapeTimestampMillis, internal, null);
+ }
+
+ @SuppressWarnings("this-escape")
+ private CounterDataPointSnapshot(
+ double value,
+ Labels labels,
+ @Nullable Exemplar exemplar,
+ long createdTimestampMillis,
+ long scrapeTimestampMillis,
+ boolean internal,
+ @Nullable String metricName) {
super(labels, createdTimestampMillis, scrapeTimestampMillis, internal);
this.value = value;
this.exemplar = exemplar;
+ this.metricName = metricName;
if (!internal) {
validate();
}
@@ -107,7 +123,16 @@ public Exemplar getExemplar() {
protected void validate() {
if (value < 0.0) {
- throw new IllegalArgumentException(value + ": counters cannot have a negative value");
+ StringBuilder message = new StringBuilder();
+ if (metricName != null && !metricName.isEmpty()) {
+ message.append(metricName).append('=');
+ }
+ message.append(value).append(": counters cannot have a negative value");
+ Labels labels = getLabels();
+ if (labels != null && !labels.isEmpty()) {
+ message.append(" (labels=").append(labels).append(')');
+ }
+ throw new IllegalArgumentException(message.toString());
}
}
@@ -119,7 +144,8 @@ DataPointSnapshot escape(EscapingScheme escapingScheme) {
SnapshotEscaper.escapeExemplar(exemplar, escapingScheme),
getCreatedTimestampMillis(),
getScrapeTimestampMillis(),
- true);
+ true,
+ metricName);
}
public static Builder builder() {
@@ -131,6 +157,7 @@ public static class Builder extends DataPointSnapshot.Builder {
@Nullable private Exemplar exemplar = null;
@Nullable private Double value = null;
private long createdTimestampMillis = 0L;
+ @Nullable private String metricName = null;
private Builder() {}
@@ -150,12 +177,27 @@ public Builder createdTimestampMillis(long createdTimestampMillis) {
return this;
}
+ /**
+ * Optional metric name included in the exception message when {@link #value(double)} is
+ * negative. Does not change the snapshot identity.
+ */
+ public Builder metricName(@Nullable String metricName) {
+ this.metricName = metricName;
+ return this;
+ }
+
public CounterDataPointSnapshot build() {
if (value == null) {
throw new IllegalArgumentException("Missing required field: value is null.");
}
return new CounterDataPointSnapshot(
- value, labels, exemplar, createdTimestampMillis, scrapeTimestampMillis);
+ value,
+ labels,
+ exemplar,
+ createdTimestampMillis,
+ scrapeTimestampMillis,
+ false,
+ metricName);
}
@Override
diff --git a/prometheus-metrics-model/src/test/java/io/prometheus/metrics/model/snapshots/CounterSnapshotTest.java b/prometheus-metrics-model/src/test/java/io/prometheus/metrics/model/snapshots/CounterSnapshotTest.java
index af6060e65e..58f16a6b8e 100644
--- a/prometheus-metrics-model/src/test/java/io/prometheus/metrics/model/snapshots/CounterSnapshotTest.java
+++ b/prometheus-metrics-model/src/test/java/io/prometheus/metrics/model/snapshots/CounterSnapshotTest.java
@@ -130,4 +130,22 @@ void testDataImmutable() {
iterator.next();
assertThatExceptionOfType(UnsupportedOperationException.class).isThrownBy(iterator::remove);
}
+
+ @Test
+ void testNegativeValueIncludesMetricNameInMessage() {
+ assertThatExceptionOfType(IllegalArgumentException.class)
+ .isThrownBy(
+ () ->
+ CounterDataPointSnapshot.builder().metricName("http_requests").value(-2.0).build())
+ .withMessageContaining("http_requests")
+ .withMessageContaining("-2.0")
+ .withMessageContaining("counters cannot have a negative value");
+ }
+
+ @Test
+ void testNegativeValueWithoutMetricNameKeepsLegacyMessage() {
+ assertThatExceptionOfType(IllegalArgumentException.class)
+ .isThrownBy(() -> CounterDataPointSnapshot.builder().value(-1.0).build())
+ .withMessage("-1.0: counters cannot have a negative value");
+ }
}
From 87222302c46c529c8a6f0c1b84fb787a5ba6a963 Mon Sep 17 00:00:00 2001
From: david-mollitor-db
Date: Tue, 15 Sep 2026 11:37:48 -0400
Subject: [PATCH 155/255] perf: skip snapshot rebuild in mergeDuplicates when
names are unique (#2441)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
## What
`TextFormatUtil.mergeDuplicates` currently only short-circuits when
there is a single snapshot. For every scrape with two or more metric
families it unconditionally builds a `LinkedHashMap`, an `ArrayList` per
group, a `MetricSnapshots.Builder` (with its own list + set) and a
freshly sorted `MetricSnapshots` — even when there is nothing to merge,
which is the common case.
Since `MetricSnapshots` is always sorted by prometheus name (see its
constructor), any duplicate names are **adjacent**. This adds a single
allocation-free pass to detect duplicates; when there are none, the
input is returned unchanged.
```java
boolean hasDuplicates = false;
for (int i = 1; i < metricSnapshots.size(); i++) {
if (metricSnapshots.get(i).getMetadata().getPrometheusName()
.equals(metricSnapshots.get(i - 1).getMetadata().getPrometheusName())) {
hasDuplicates = true;
break;
}
}
if (!hasDuplicates) {
return metricSnapshots;
}
```
The merge path for actual duplicates is unchanged.
## Why
It removes the map / per-group list / builder / re-sort allocations on
every scrape that has no duplicate metric names. Measured on a JMH
benchmark of a histogram-heavy scrape (collect + serialize to the
Prometheus text format), allocation on the serialize path dropped by
~880 B/op, scaling with the number of metric families.
## Correctness
Output is byte-identical. The existing exposition-format tests pass,
including `DuplicateNamesExpositionTest`, which exercises the merge path
with real duplicate names.
---------
Signed-off-by: David Mollitor
Signed-off-by: Gregor Zeitlinger
Co-authored-by: Gregor Zeitlinger
---
.../metrics/core/metrics/Buffer.java | 28 ++-
.../metrics/core/metrics/BufferTest.java | 175 +++++++++++-------
.../expositionformats/TextFormatUtil.java | 18 ++
.../expositionformats/TextFormatUtilTest.java | 61 ++++++
.../model/snapshots/MetricSnapshots.java | 3 +
.../model/snapshots/MetricSnapshotsTest.java | 23 +++
6 files changed, 235 insertions(+), 73 deletions(-)
diff --git a/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/Buffer.java b/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/Buffer.java
index 6dc68f8e6b..22525840c9 100644
--- a/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/Buffer.java
+++ b/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/Buffer.java
@@ -49,6 +49,10 @@ private static final class Generation {
// available processors. This is simpler than the striping used by LongAdder, so hot spots remain
// possible when several recording threads resolve to the same stripe.
private final AtomicLong[] stripedObservationCounts;
+ // Protected by appendLock. These are absolute per-stripe observation counts at activation, not
+ // the reset-adjusted count used by complete. Reused across generations to avoid scrape
+ // allocations.
+ private final long[] generationStartCounts;
private final ReentrantLock observationLock = new ReentrantLock();
private boolean reset;
private long observationCountOffset;
@@ -76,33 +80,41 @@ private static final class Generation {
this.maxBufferSize = maxBufferSize;
this.beforeAppendLock = beforeAppendLock;
stripedObservationCounts = new AtomicLong[Runtime.getRuntime().availableProcessors()];
+ generationStartCounts = new long[stripedObservationCounts.length];
for (int i = 0; i < stripedObservationCounts.length; i++) {
stripedObservationCounts[i] = new AtomicLong();
}
}
boolean append(double value) {
- AtomicLong counter =
- stripedObservationCounts[
- stripeIndex(Thread.currentThread().getId(), stripedObservationCounts.length)];
+ int stripe = stripeIndex(Thread.currentThread().getId(), stripedObservationCounts.length);
+ AtomicLong counter = stripedObservationCounts[stripe];
long count = counter.incrementAndGet();
// The active bit is the exact handoff decision. An observation either increments its stripe
// before the collector's getAndAdd(BUFFER_ACTIVE_BIT) and takes the direct path, or sees the
- // active bit and is buffered in the current generation.
+ // active bit and may be buffered. The stripe ticket below also checks that it was not counted
+ // by a later collection that started before this thread read activeGeneration.
if ((count & BUFFER_ACTIVE_BIT) == 0) {
return false;
}
+ // Allow tests to pause between allocating an observation ticket and reading the generation.
+ beforeAppendLock.run();
Generation generation = activeGeneration;
if (generation == null) {
return false;
}
- beforeAppendLock.run();
appendLock.lock();
try {
Generation current = activeGeneration;
if (current != generation || !generation.active) {
return false;
}
+ if ((count & ~BUFFER_ACTIVE_BIT) <= generationStartCounts[stripe]) {
+ // This observation incremented its stripe in an earlier generation. The current collector
+ // already includes it in expectedCount, so buffering it here would make the collector wait
+ // for an observation that is only replayed after that same wait finishes.
+ return false;
+ }
while (generation.size >= maxBufferSize && generation.active) {
try {
bufferSpaceAvailable.await();
@@ -179,8 +191,10 @@ T run(
try {
activeGeneration = generation;
long total = 0;
- for (AtomicLong counter : stripedObservationCounts) {
- total += counter.getAndAdd(BUFFER_ACTIVE_BIT);
+ for (int i = 0; i < stripedObservationCounts.length; i++) {
+ long count = stripedObservationCounts[i].getAndAdd(BUFFER_ACTIVE_BIT);
+ generationStartCounts[i] = count;
+ total += count;
}
expectedCount = total - observationCountOffset;
} finally {
diff --git a/prometheus-metrics-core/src/test/java/io/prometheus/metrics/core/metrics/BufferTest.java b/prometheus-metrics-core/src/test/java/io/prometheus/metrics/core/metrics/BufferTest.java
index 38b4fca4eb..3fe5b2cf45 100644
--- a/prometheus-metrics-core/src/test/java/io/prometheus/metrics/core/metrics/BufferTest.java
+++ b/prometheus-metrics-core/src/test/java/io/prometheus/metrics/core/metrics/BufferTest.java
@@ -8,6 +8,9 @@
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+import java.util.concurrent.Future;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.atomic.AtomicLong;
@@ -219,83 +222,123 @@ void interruptedAppenderLeavesBoundedBufferWait() throws InterruptedException {
}
@Test
- void lateAppenderCannotBeAddedToTheNextGeneration() throws InterruptedException {
- CountDownLatch firstRunStarted = new CountDownLatch(1);
- CountDownLatch firstRunMayFinish = new CountDownLatch(1);
- CountDownLatch stalled = new CountDownLatch(1);
- CountDownLatch release = new CountDownLatch(1);
+ void lateAppenderCountedByNextGenerationMustNotBeBufferedAgain() throws Exception {
+ assertLateAppenderHandoff(false);
+ }
+
+ @Test
+ void lateAppenderHandoffUsesAbsoluteStripeCountsAfterReset() throws Exception {
+ assertLateAppenderHandoff(true);
+ }
+
+ private static void assertLateAppenderHandoff(boolean reset) throws Exception {
+ CountDownLatch firstSnapshotStarted = new CountDownLatch(1);
+ CountDownLatch finishFirstSnapshot = new CountDownLatch(1);
+ CountDownLatch observationCounted = new CountDownLatch(1);
+ CountDownLatch readGeneration = new CountDownLatch(1);
CountDownLatch secondRunStarted = new CountDownLatch(1);
- AtomicBoolean appended = new AtomicBoolean();
AtomicLong completedObservations = new AtomicLong();
+ AtomicLong secondExpectedCount = new AtomicLong();
+ AtomicBoolean pauseFirstAppender = new AtomicBoolean(true);
Buffer buffer =
new Buffer(
- TimeUnit.SECONDS.toNanos(1),
+ TimeUnit.SECONDS.toNanos(5),
16,
() -> {
- stalled.countDown();
- try {
- release.await();
- } catch (InterruptedException e) {
- Thread.currentThread().interrupt();
+ if (pauseFirstAppender.compareAndSet(true, false)) {
+ observationCounted.countDown();
+ awaitLatch(readGeneration);
}
});
- Thread firstRun =
- new Thread(
- () ->
- buffer.run(
- ignored -> {
- firstRunStarted.countDown();
- return firstRunMayFinish.getCount() == 0;
- },
- () -> new CounterSnapshot.CounterDataPointSnapshot(0, Labels.EMPTY, null, 0),
- ignored -> {}),
- "buffer-first-runner");
- firstRun.setDaemon(true);
- firstRun.start();
- assertThat(firstRunStarted.await(5, TimeUnit.SECONDS)).isTrue();
+ if (reset) {
+ assertThat(buffer.append(1.0)).isFalse();
+ buffer.observeDirect(completedObservations::incrementAndGet);
+ }
+ ExecutorService executor = Executors.newFixedThreadPool(2);
+ try {
+ Future firstRun =
+ executor.submit(
+ () ->
+ buffer.run(
+ expectedCount -> completedObservations.get() == expectedCount,
+ () -> {
+ firstSnapshotStarted.countDown();
+ awaitLatch(finishFirstSnapshot);
+ CounterSnapshot.CounterDataPointSnapshot snapshot =
+ new CounterSnapshot.CounterDataPointSnapshot(
+ completedObservations.get(), Labels.EMPTY, null, 0);
+ if (reset) {
+ completedObservations.set(0);
+ buffer.reset();
+ }
+ return snapshot;
+ },
+ ignored -> completedObservations.incrementAndGet()));
+ awaitLatch(firstSnapshotStarted);
- Thread appender =
- new Thread(
- () -> {
- appended.set(buffer.append(1.0));
- if (!appended.get()) {
- buffer.observeDirect(
- () -> {
- completedObservations.incrementAndGet();
- return null;
- });
- }
- },
- "buffer-late-appender");
- appender.setDaemon(true);
- appender.start();
- assertThat(stalled.await(5, TimeUnit.SECONDS)).isTrue();
+ // Increment while generation A is active, but do not read activeGeneration yet.
+ Future appender =
+ executor.submit(
+ () -> {
+ boolean appended = buffer.append(1.0);
+ if (!appended) {
+ buffer.observeDirect(completedObservations::incrementAndGet);
+ }
+ return appended;
+ });
+ awaitLatch(observationCounted);
+ finishFirstSnapshot.countDown();
+ assertThat(firstRun.get(10, TimeUnit.SECONDS).getValue()).isEqualTo(reset ? 1 : 0);
- firstRunMayFinish.countDown();
- firstRun.join(5_000);
- assertThat(firstRun.isAlive()).isFalse();
+ Future secondRun =
+ executor.submit(
+ () ->
+ buffer.run(
+ expectedCount -> {
+ secondExpectedCount.set(expectedCount);
+ secondRunStarted.countDown();
+ return completedObservations.get() == expectedCount;
+ },
+ () ->
+ new CounterSnapshot.CounterDataPointSnapshot(
+ completedObservations.get(), Labels.EMPTY, null, 0),
+ ignored -> completedObservations.incrementAndGet()));
+ awaitLatch(secondRunStarted);
+ assertThat(secondExpectedCount).hasValue(1);
+ // An observation arriving after B's activation still belongs in B's buffer. It must not
+ // appear in B's snapshot and must be replayed exactly once before the following collection.
+ assertThat(buffer.append(1.0)).isTrue();
- Thread secondRun =
- new Thread(
- () ->
- buffer.run(
- expectedCount -> {
- secondRunStarted.countDown();
- return completedObservations.get() == expectedCount;
- },
- () -> new CounterSnapshot.CounterDataPointSnapshot(0, Labels.EMPTY, null, 0),
- ignored -> {}),
- "buffer-second-runner");
- secondRun.setDaemon(true);
- secondRun.start();
- assertThat(secondRunStarted.await(5, TimeUnit.SECONDS)).isTrue();
- release.countDown();
- appender.join(5_000);
- secondRun.join(5_000);
+ // B includes the paused observation in expectedCount. Buffering it in B would make B wait
+ // until its own timeout/replay; it must instead complete via the direct observation path.
+ readGeneration.countDown();
+ assertThat(secondRun.get(10, TimeUnit.SECONDS).getValue()).isEqualTo(1);
+ assertThat(appender.get(10, TimeUnit.SECONDS)).isFalse();
+ assertThat(completedObservations).hasValue(2);
+ assertThat(
+ buffer
+ .run(
+ expectedCount -> completedObservations.get() == expectedCount,
+ () ->
+ new CounterSnapshot.CounterDataPointSnapshot(
+ completedObservations.get(), Labels.EMPTY, null, 0),
+ ignored -> completedObservations.incrementAndGet())
+ .getValue())
+ .isEqualTo(2);
+ } finally {
+ finishFirstSnapshot.countDown();
+ readGeneration.countDown();
+ executor.shutdownNow();
+ assertThat(executor.awaitTermination(10, TimeUnit.SECONDS)).isTrue();
+ }
+ }
- assertThat(appender.isAlive()).isFalse();
- assertThat(secondRun.isAlive()).isFalse();
- assertThat(appended).isFalse();
- assertThat(completedObservations).hasValue(1);
+ private static void awaitLatch(CountDownLatch latch) {
+ try {
+ assertThat(latch.await(10, TimeUnit.SECONDS)).isTrue();
+ } catch (InterruptedException e) {
+ Thread.currentThread().interrupt();
+ throw new RuntimeException(e);
+ }
}
}
diff --git a/prometheus-metrics-exposition-textformats/src/main/java/io/prometheus/metrics/expositionformats/TextFormatUtil.java b/prometheus-metrics-exposition-textformats/src/main/java/io/prometheus/metrics/expositionformats/TextFormatUtil.java
index 8cfed2b299..9ca373e9fd 100644
--- a/prometheus-metrics-exposition-textformats/src/main/java/io/prometheus/metrics/expositionformats/TextFormatUtil.java
+++ b/prometheus-metrics-exposition-textformats/src/main/java/io/prometheus/metrics/expositionformats/TextFormatUtil.java
@@ -41,6 +41,24 @@ public static MetricSnapshots mergeDuplicates(MetricSnapshots metricSnapshots) {
return metricSnapshots;
}
+ // MetricSnapshots is sorted by prometheus name, so any duplicates are adjacent. Detect them in
+ // a single allocation-free pass; when there are none (the common case) return the input as-is
+ // rather than rebuilding it through a map, a list per group and a new MetricSnapshots.
+ boolean hasDuplicates = false;
+ for (int i = 1; i < metricSnapshots.size(); i++) {
+ if (metricSnapshots
+ .get(i)
+ .getMetadata()
+ .getPrometheusName()
+ .equals(metricSnapshots.get(i - 1).getMetadata().getPrometheusName())) {
+ hasDuplicates = true;
+ break;
+ }
+ }
+ if (!hasDuplicates) {
+ return metricSnapshots;
+ }
+
Map> grouped = new LinkedHashMap<>();
for (MetricSnapshot snapshot : metricSnapshots) {
diff --git a/prometheus-metrics-exposition-textformats/src/test/java/io/prometheus/metrics/expositionformats/TextFormatUtilTest.java b/prometheus-metrics-exposition-textformats/src/test/java/io/prometheus/metrics/expositionformats/TextFormatUtilTest.java
index 5e1aa9766f..596d1a126c 100644
--- a/prometheus-metrics-exposition-textformats/src/test/java/io/prometheus/metrics/expositionformats/TextFormatUtilTest.java
+++ b/prometheus-metrics-exposition-textformats/src/test/java/io/prometheus/metrics/expositionformats/TextFormatUtilTest.java
@@ -178,4 +178,65 @@ void testMergeDuplicates_histogramSameGaugeFlag_preservesGaugeHistogram() {
assertThat(merged.isGaugeHistogram()).isTrue();
assertThat(merged.getDataPoints()).hasSize(2);
}
+
+ @Test
+ void testMergeDuplicates_uniqueNames_returnsSameInstance() {
+ CounterSnapshot counter1 =
+ CounterSnapshot.builder()
+ .name("api_responses")
+ .dataPoint(CounterSnapshot.CounterDataPointSnapshot.builder().value(1).build())
+ .build();
+ CounterSnapshot counter2 =
+ CounterSnapshot.builder()
+ .name("api_errors")
+ .dataPoint(CounterSnapshot.CounterDataPointSnapshot.builder().value(2).build())
+ .build();
+
+ MetricSnapshots snapshots = new MetricSnapshots(counter1, counter2);
+
+ // No duplicate prometheus names, so the fast path returns the input unchanged rather
+ // than rebuilding it. isSameAs pins that: an inverted condition would rebuild and fail here.
+ assertThat(TextFormatUtil.mergeDuplicates(snapshots)).isSameAs(snapshots);
+ }
+
+ @Test
+ void testMergeDuplicates_duplicateNotAtStart_merges() {
+ CounterSnapshot a =
+ CounterSnapshot.builder()
+ .name("a")
+ .dataPoint(CounterSnapshot.CounterDataPointSnapshot.builder().value(1).build())
+ .build();
+ CounterSnapshot m =
+ CounterSnapshot.builder()
+ .name("m")
+ .dataPoint(CounterSnapshot.CounterDataPointSnapshot.builder().value(1).build())
+ .build();
+ CounterSnapshot z1 =
+ CounterSnapshot.builder()
+ .name("z")
+ .dataPoint(
+ CounterSnapshot.CounterDataPointSnapshot.builder()
+ .labels(Labels.of("outcome", "SUCCESS"))
+ .value(1)
+ .build())
+ .build();
+ CounterSnapshot z2 =
+ CounterSnapshot.builder()
+ .name("z")
+ .dataPoint(
+ CounterSnapshot.CounterDataPointSnapshot.builder()
+ .labels(Labels.of("outcome", "FAILURE"))
+ .value(2)
+ .build())
+ .build();
+
+ // Sorted by prometheus name the duplicate "z" pair is last (indices 2 and 3), so
+ // detection must scan the whole range, not just the first pair.
+ MetricSnapshots snapshots = new MetricSnapshots(a, m, z1, z2);
+ MetricSnapshots result = TextFormatUtil.mergeDuplicates(snapshots);
+
+ assertThat(result).hasSize(3);
+ assertThat(result.get(2).getMetadata().getName()).isEqualTo("z");
+ assertThat(result.get(2).getDataPoints()).hasSize(2);
+ }
}
diff --git a/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/MetricSnapshots.java b/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/MetricSnapshots.java
index c4d7101dfe..8f55041fd4 100644
--- a/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/MetricSnapshots.java
+++ b/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/MetricSnapshots.java
@@ -36,6 +36,9 @@ public MetricSnapshots(MetricSnapshot... snapshots) {
*/
public MetricSnapshots(Collection snapshots) {
List list = new ArrayList<>(snapshots);
+ // Sort by prometheus name so snapshots that share a prometheus name (i.e. the same exposed
+ // family) are adjacent. TextFormatUtil.mergeDuplicates depends on this ordering to detect
+ // duplicates in a single linear pass; if this sort key changes, update that fast path too.
list.sort(comparing(s -> s.getMetadata().getPrometheusName()));
// Validate no conflicting metric types
diff --git a/prometheus-metrics-model/src/test/java/io/prometheus/metrics/model/snapshots/MetricSnapshotsTest.java b/prometheus-metrics-model/src/test/java/io/prometheus/metrics/model/snapshots/MetricSnapshotsTest.java
index 224ca691a7..dfc0fbb047 100644
--- a/prometheus-metrics-model/src/test/java/io/prometheus/metrics/model/snapshots/MetricSnapshotsTest.java
+++ b/prometheus-metrics-model/src/test/java/io/prometheus/metrics/model/snapshots/MetricSnapshotsTest.java
@@ -38,6 +38,29 @@ void testSort() {
assertThat(snapshots.get(2).getMetadata().getName()).isEqualTo("counter3");
}
+ @Test
+ void testSortIsByPrometheusName() {
+ // Pins the sort key to getPrometheusName(): TextFormatUtil.mergeDuplicates relies on
+ // same-family snapshots being adjacent, which only holds under that key. "foo.bar" has
+ // prometheusName "foo_bar"; "fooZbar" is already legacy-valid. In ASCII '.'(46) < 'Z'(90)
+ // < '_'(95), so sorting by prometheusName orders "fooZbar" before "foo_bar" - the opposite
+ // of sorting by name (or expositionBaseName, which equals name here). So this test fails if
+ // the sort key is changed to name or expositionBaseName, which would silently break merging.
+ GaugeSnapshot fooDotBar =
+ GaugeSnapshot.builder()
+ .name("foo.bar")
+ .dataPoint(GaugeSnapshot.GaugeDataPointSnapshot.builder().value(1.0).build())
+ .build();
+ GaugeSnapshot fooZBar =
+ GaugeSnapshot.builder()
+ .name("fooZbar")
+ .dataPoint(GaugeSnapshot.GaugeDataPointSnapshot.builder().value(1.0).build())
+ .build();
+ MetricSnapshots snapshots = new MetricSnapshots(fooDotBar, fooZBar);
+ assertThat(snapshots.get(0).getMetadata().getPrometheusName()).isEqualTo("fooZbar");
+ assertThat(snapshots.get(1).getMetadata().getPrometheusName()).isEqualTo("foo_bar");
+ }
+
@Test
void testDuplicateName() {
// Q: What if you have a counter named "foo" and a gauge named "foo"?
From 398d0872d640d879e9d7207c88ad468b4c170ba9 Mon Sep 17 00:00:00 2001
From: Gregor Zeitlinger
Date: Tue, 15 Sep 2026 18:29:27 +0200
Subject: [PATCH 156/255] fix: show uncertainty in benchmark comparisons
(#2476)
Improve benchmark comparison reporting without changing benchmark
execution or sample configuration.
- Display JMH 99.9% confidence intervals beside PR and base means.
- Distinguish overlapping intervals, below-threshold changes, and
missing/invalid uncertainty.
- Keep the verdict explicitly conservative and heuristic, not a
significance test.
- Add coverage for rendering, malformed data, thresholds, metadata
mismatch, and the supplied overlapping example.
This is separate from #2468 and does not rerun benchmarks.
Signed-off-by: Gregor Zeitlinger
---
.mise/tasks/generate_benchmark_summary.py | 56 +++++++----
.../tasks/test_generate-benchmark-summary.py | 94 ++++++++++++++++++-
2 files changed, 127 insertions(+), 23 deletions(-)
diff --git a/.mise/tasks/generate_benchmark_summary.py b/.mise/tasks/generate_benchmark_summary.py
index 0da622bcbf..ce591a3b56 100755
--- a/.mise/tasks/generate_benchmark_summary.py
+++ b/.mise/tasks/generate_benchmark_summary.py
@@ -204,7 +204,7 @@ def get_commit_sha(provided_sha: str | None) -> str:
def format_score(score) -> str:
"""Format score with appropriate precision."""
if score is None:
- return ""
+ return "—"
try:
val = float(score)
if val >= 1_000_000:
@@ -340,14 +340,18 @@ def comparison_status(head: dict, baseline: dict) -> str:
return "inconclusive"
change = performance_change(head, baseline)
- if change is None or head_interval is None or baseline_interval is None:
+ if change is None:
return "inconclusive"
+ if head_interval is None or baseline_interval is None:
+ return "inconclusive (missing or invalid confidence interval)"
head_low, head_high = head_interval
baseline_low, baseline_high = baseline_interval
intervals_overlap = head_low <= baseline_high and baseline_low <= head_high
- if intervals_overlap or abs(change) < PRACTICAL_CHANGE_THRESHOLD:
- return "within noise"
+ if intervals_overlap:
+ return "inconclusive (overlapping intervals)"
+ if abs(change) < PRACTICAL_CHANGE_THRESHOLD:
+ return f"below {PRACTICAL_CHANGE_THRESHOLD:g}% threshold"
return "meaningful improvement" if change > 0 else "meaningful regression"
@@ -375,6 +379,16 @@ def format_change(change: float | None) -> str:
return f"{change:+.1f}%"
+def format_score_with_interval(result: dict) -> str:
+ """Format a score together with its JMH confidence interval."""
+ score = metric_score(result)
+ interval = score_interval(result)
+ if score is None or interval is None:
+ return format_score(score)
+ low, high = interval
+ return f"{format_score(score)} [{format_score(low)}, {format_score(high)}]"
+
+
def metric_direction_note(results: list) -> str:
"""Describe whether scores represent throughput or latency."""
directions = {
@@ -420,6 +434,11 @@ def generate_comparison_section(
md.append(f"- **Head:** {format_commit_link(commit_sha, repo)}")
md.append(f"- **Base:** {format_commit_link(baseline_sha, baseline_repo)}")
md.append(f"- **Metric direction:** {metric_direction_note(results)}")
+ md.append(
+ "- **Uncertainty:** values include JMH 99.9% confidence intervals; verdicts use "
+ "interval overlap and a practical-change threshold as a conservative heuristic, "
+ "not as a statistical significance test."
+ )
if comparison_note:
md.append(f"- **Note:** {comparison_note}")
if baseline_system_info:
@@ -436,19 +455,19 @@ def generate_comparison_section(
md.append("")
return md
- md.append("| Benchmark | PR | Base | Head vs base | Regression verdict |")
- md.append("|:----------|---:|-----:|-------:|:-------|")
+ md.append(
+ "| Benchmark | PR (99.9% CI) | Base (99.9% CI) | Head vs base | Regression verdict |"
+ )
+ md.append("|:----------|--------------:|----------------:|-------:|:-------|")
for name in common_names:
head = by_name[name]
baseline = baseline_by_name[name]
- head_score = metric_score(head)
- baseline_score = metric_score(baseline)
md.append(
"| "
f"{short_benchmark_name(name)} | "
- f"{format_score(head_score)} | "
- f"{format_score(baseline_score)} | "
+ f"{format_score_with_interval(head)} | "
+ f"{format_score_with_interval(baseline)} | "
f"{format_change(performance_change(head, baseline))} | "
f"{comparison_status(head, baseline)} |"
)
@@ -588,8 +607,8 @@ def generate_markdown(
for b in sorted_benchmarks:
name = b.get("benchmark", "").split(".")[-1]
- score = b.get("primaryMetric", {}).get("score", 0)
- error = b.get("primaryMetric", {}).get("scoreError", 0)
+ score = b.get("primaryMetric", {}).get("score")
+ error = b.get("primaryMetric", {}).get("scoreError")
unit = b.get("primaryMetric", {}).get("scoreUnit", "ops/s")
score_fmt = format_score(score)
@@ -611,8 +630,8 @@ def generate_markdown(
md.append("|:----------|------:|------:|:------|")
for b in sorted(head_only_results, key=lambda x: x.get("benchmark", "")):
name = short_benchmark_name(b.get("benchmark", ""))
- score = b.get("primaryMetric", {}).get("score", 0)
- error = b.get("primaryMetric", {}).get("scoreError", 0)
+ score = b.get("primaryMetric", {}).get("score")
+ error = b.get("primaryMetric", {}).get("scoreError")
unit = b.get("primaryMetric", {}).get("scoreUnit", "ops/s")
md.append(
f"| {name} | {format_score(score)} | {format_error(error)} | {unit} |"
@@ -630,14 +649,14 @@ def generate_markdown(
name = short_benchmark_name(b.get("benchmark", ""))
mode = b.get("mode", "thrpt")
cnt = b.get("measurementIterations", 0) * b.get("forks", 1)
- score = b.get("primaryMetric", {}).get("score", 0)
- error = b.get("primaryMetric", {}).get("scoreError", 0)
+ score = b.get("primaryMetric", {}).get("score")
+ error = b.get("primaryMetric", {}).get("scoreError")
unit = b.get("primaryMetric", {}).get("scoreUnit", "ops/s")
try:
score_str = f"{float(score):.3f}"
except (ValueError, TypeError):
- score_str = str(score)
+ score_str = format_score(score)
try:
error_val = float(error)
@@ -667,7 +686,8 @@ def generate_markdown(
"- **Regression verdict** requires comparable benchmark metadata, "
"non-overlapping JMH confidence intervals, and a change of at least "
f"{PRACTICAL_CHANGE_THRESHOLD:.0f}%; otherwise it is marked "
- '"within noise" or "inconclusive".'
+ '"below the practical threshold" or "inconclusive". This is a '
+ "conservative heuristic, not a statistical significance test."
)
md.append(
"- Scores for different benchmark methods are not ranked against one another; "
diff --git a/.mise/tasks/test_generate-benchmark-summary.py b/.mise/tasks/test_generate-benchmark-summary.py
index 9918d0e49c..2f3d26454a 100644
--- a/.mise/tasks/test_generate-benchmark-summary.py
+++ b/.mise/tasks/test_generate-benchmark-summary.py
@@ -56,10 +56,31 @@ def test_meaningful_regression_requires_threshold_and_separation(self):
comparison_status(result(score=94), result()), "meaningful regression"
)
- def test_small_or_uncertain_change_is_within_noise(self):
+ def test_overlapping_intervals_are_inconclusive(self):
self.assertEqual(
comparison_status(result(score=102, error=5), result(error=5)),
- "within noise",
+ "inconclusive (overlapping intervals)",
+ )
+
+ def test_overlapping_intervals_are_inconclusive_even_for_large_change(self):
+ head = result(score=9946.81, error=None)
+ base = result(score=7239.716, error=None)
+ head["primaryMetric"]["scoreConfidence"] = [8459.55, 11434.08]
+ base["primaryMetric"]["scoreConfidence"] = [5298.4, 9181.03]
+ self.assertEqual(
+ comparison_status(head, base), "inconclusive (overlapping intervals)"
+ )
+
+ def test_non_overlapping_change_below_threshold_is_below_threshold(self):
+ self.assertEqual(
+ comparison_status(result(score=103, error=0.1), result(error=0.1)),
+ "below 5% threshold",
+ )
+
+ def test_non_overlapping_change_is_meaningful(self):
+ self.assertEqual(
+ comparison_status(result(score=110, error=0.1), result(error=0.1)),
+ "meaningful improvement",
)
def test_mismatched_metadata_is_inconclusive(self):
@@ -104,11 +125,27 @@ def test_invalid_fallback_uncertainty_is_inconclusive(self):
for error in (float("inf"), float("-inf"), -1.0):
head = result(error=error)
head["primaryMetric"].pop("scoreConfidence")
- self.assertEqual(comparison_status(head, result()), "inconclusive", error)
+ self.assertEqual(
+ comparison_status(head, result()),
+ "inconclusive (missing or invalid confidence interval)",
+ error,
+ )
def test_missing_confidence_interval_is_inconclusive(self):
head = result(score=106, error=None)
- self.assertEqual(comparison_status(head, result()), "inconclusive")
+ self.assertEqual(
+ comparison_status(head, result()),
+ "inconclusive (missing or invalid confidence interval)",
+ )
+
+ def test_invalid_confidence_interval_is_inconclusive(self):
+ head = result(score=106, error=1)
+ head["primaryMetric"]["scoreConfidence"] = [0, float("nan")]
+ head["primaryMetric"].pop("scoreError")
+ self.assertEqual(
+ comparison_status(head, result()),
+ "inconclusive (missing or invalid confidence interval)",
+ )
class TestBenchmarkMarkdown(unittest.TestCase):
@@ -128,7 +165,8 @@ def test_head_only_benchmarks_are_separate_and_not_ranked(self):
)
self.assertIn(
- "| Benchmark | PR | Base | Head vs base | Regression verdict |", markdown
+ "| Benchmark | PR (99.9% CI) | Base (99.9% CI) | Head vs base | Regression verdict |",
+ markdown,
)
self.assertIn("## New benchmarks in PR head", markdown)
self.assertIn("no base counterpart", markdown)
@@ -136,6 +174,52 @@ def test_head_only_benchmarks_are_separate_and_not_ranked(self):
self.assertNotIn("Within run", markdown)
self.assertNotIn("x slower", markdown)
+ def test_comparison_table_shows_confidence_intervals_and_uncertainty_note(self):
+ markdown = generate_markdown(
+ [result(score=110, error=1)],
+ "head",
+ "prometheus/client_java",
+ baseline_results=[result(score=100, error=1)],
+ baseline_sha="base",
+ baseline_repo="prometheus/client_java",
+ )
+ self.assertIn("110.00 [109.00, 111.00]", markdown)
+ self.assertIn("100.00 [99.00, 101.00]", markdown)
+ self.assertIn("not as a statistical significance test", markdown)
+
+ def test_real_overlapping_example_is_rendered_with_intervals(self):
+ head = result(score=9946.81, error=None)
+ base = result(score=7239.716, error=None)
+ head["primaryMetric"]["scoreConfidence"] = [8459.55, 11434.08]
+ base["primaryMetric"]["scoreConfidence"] = [5298.4, 9181.03]
+ markdown = generate_markdown(
+ [head],
+ "head",
+ "prometheus/client_java",
+ baseline_results=[base],
+ baseline_sha="base",
+ baseline_repo="prometheus/client_java",
+ )
+ self.assertIn("9.95K [8.46K, 11.43K]", markdown)
+ self.assertIn("7.24K [5.30K, 9.18K]", markdown)
+ self.assertIn("inconclusive (overlapping intervals)", markdown)
+
+ def test_missing_values_are_not_rendered_as_zero(self):
+ missing_interval = result(score=106, error=None)
+ missing_score = result(score=100)
+ missing_score["primaryMetric"].pop("score")
+ markdown = generate_markdown(
+ [missing_interval, missing_score],
+ "head",
+ "prometheus/client_java",
+ baseline_results=[result(), result()],
+ baseline_sha="base",
+ baseline_repo="prometheus/client_java",
+ )
+ self.assertIn("106.00 |", markdown)
+ self.assertIn("— |", markdown)
+ self.assertNotIn("| 0.00 |", markdown)
+
def test_latency_note_is_mode_aware(self):
base = result()
head = result()
From 59ca1f0de4637fe8f4c72baac6910b85c0e87f5d Mon Sep 17 00:00:00 2001
From: Gregor Zeitlinger
Date: Tue, 15 Sep 2026 18:35:10 +0200
Subject: [PATCH 157/255] test: focus PR benchmarks on client_java and measure
label lookups (#2468)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
## Summary
Benchmark-only follow-up for the release review; no production metric
changes.
- Restrict both base and head PR benchmark runs to client_java
counter/histogram methods.
OpenTelemetry, Codahale, and legacy simpleclient comparisons remain in
full/local/nightly runs.
Keep all client_java exposition benchmarks, including OpenMetrics.
- Add repeated existing-label lookup + increment benchmarks and
cached-data-point baselines,
with one-thread and four-thread variants. One invocation is one metric
update.
- Report GC profiler allocation in B/op separately from throughput,
including descriptive
base/head allocation deltas only when configurations match.
- Add selection/report regression tests and run benchmark tooling tests
in lint CI.
- Document operation units and the new benchmark workflow.
## Related PR
[Label lookup optimization
#2442](https://github.com/prometheus/client_java/pull/2442) is pending
this
benchmark infrastructure. After this lands, update that branch and rerun
the benchmarks so base and
head contain identical lookup benchmark code. The new methods in this PR
itself have head-only
results and do not establish the optimization's benefit.
## Validation
- `mise run lint:fix` — passed; formatter changes retained.
- `mise run test` — passed.
- All three benchmark tooling test scripts — 24 tests passed.
- `mise run build -- -DskipITs=true` — passed.
- Plain `mise run build` compiled the benchmark module, but
Docker-backed integration tests ran
despite `-DskipTests` and failed because no Docker environment was
available.
- JMH listing with each workflow pattern confirmed client_java-only
selection and retained
OpenMetrics/Prometheus exposition cases.
- All four new benchmarks completed with GC profiling: 1 fork, 2 x 1s
warmups, 3 x 1s measurements,
JDK 25.0.3, `-Xms128m -Xmx256m`. This was a smoke test on a shared
development host, not a
controlled base/head performance comparison. Repeated lookup reported
about 64 B/update;
cached increments were near zero.
- Generated the Markdown report from real smoke-run JSON and checked
allocation output.
- `git diff --check` — passed.
---------
Signed-off-by: Gregor Zeitlinger
Co-authored-by: Jay DeLuca
---
.github/workflows/lint.yml | 6 ++
.github/workflows/pr-benchmarks.yml | 4 +-
.mise/tasks/generate_benchmark_summary.py | 64 ++++++++++++++-
.../tasks/test_generate-benchmark-summary.py | 59 ++++++++++++++
.mise/tasks/test_pr-benchmark-selection.py | 79 +++++++++++++++++++
benchmarks/README.md | 29 +++++++
.../metrics/benchmarks/CounterBenchmark.java | 42 ++++++++++
7 files changed, 277 insertions(+), 6 deletions(-)
create mode 100644 .mise/tasks/test_pr-benchmark-selection.py
diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml
index bfb5b15172..70762dde72 100644
--- a/.github/workflows/lint.yml
+++ b/.github/workflows/lint.yml
@@ -34,3 +34,9 @@ jobs:
GITHUB_HEAD_REF: ${{ github.head_ref }}
PR_HEAD_REPO: ${{ github.event.pull_request.head.repo.full_name }}
run: mise run lint
+
+ - name: Test benchmark tooling
+ run: |
+ for test_file in .mise/tasks/test_*.py; do
+ python3 -B "$test_file"
+ done
diff --git a/.github/workflows/pr-benchmarks.yml b/.github/workflows/pr-benchmarks.yml
index f136cd4f37..d96424f76f 100644
--- a/.github/workflows/pr-benchmarks.yml
+++ b/.github/workflows/pr-benchmarks.yml
@@ -24,9 +24,9 @@ jobs:
matrix:
include:
- topic: counter
- pattern: CounterBenchmark
+ pattern: 'CounterBenchmark[.]prometheus.*'
- topic: histogram
- pattern: HistogramBenchmark
+ pattern: 'HistogramBenchmark[.]prometheus.*'
- topic: exposition
pattern: HistogramTextFormatBenchmark|TextFormatUtilBenchmark
permissions:
diff --git a/.mise/tasks/generate_benchmark_summary.py b/.mise/tasks/generate_benchmark_summary.py
index ce591a3b56..9199269fcd 100755
--- a/.mise/tasks/generate_benchmark_summary.py
+++ b/.mise/tasks/generate_benchmark_summary.py
@@ -489,6 +489,60 @@ def generate_comparison_section(
return md
+def allocation_score(result: dict) -> float | None:
+ """Read normalized GC allocation, accepting zero but not missing/invalid data."""
+ metric = result.get("secondaryMetrics", {}).get("gc.alloc.rate.norm", {})
+ if metric.get("scoreUnit") != "B/op":
+ return None
+ try:
+ score = float(metric.get("score"))
+ except (TypeError, ValueError):
+ return None
+ return score if math.isfinite(score) and score >= 0 else None
+
+
+def generate_allocation_section(results: list, baseline_results: list) -> list[str]:
+ """Show allocation separately from the throughput/latency regression verdict."""
+ baseline_by_name = {b.get("benchmark", ""): b for b in baseline_results}
+ rows = []
+ for head in sorted(results, key=lambda b: b.get("benchmark", "")):
+ name = head.get("benchmark", "")
+ baseline = baseline_by_name.get(name, {})
+ head_score = allocation_score(head)
+ base_score = allocation_score(baseline)
+ if head_score is None and base_score is None:
+ continue
+ head_text = "—" if head_score is None else f"{head_score:.3f}"
+ base_text = "—" if base_score is None else f"{base_score:.3f}"
+ change = "—"
+ if (
+ head_score is not None
+ and base_score is not None
+ and comparable_metadata(head, baseline)
+ ):
+ change = f"{head_score - base_score:+.3f}"
+ rows.append(
+ f"| {short_benchmark_name(name)} | {head_text} | {base_text} | {change} |"
+ )
+ if not rows:
+ return []
+ return [
+ "## Allocation per operation",
+ "",
+ "JMH GC profiler `gc.alloc.rate.norm`, in bytes per benchmark operation (lower is better).",
+ (
+ "Delta is PR minus base, shown only for matching benchmark configurations. "
+ "Values are descriptive, not statistical regression verdicts; "
+ "— means unavailable or not comparable. Each benchmark defines its own operation."
+ ),
+ "",
+ "| Benchmark | PR B/op | Base B/op | Delta B/op |",
+ "|:----------|--------:|----------:|-----------:|",
+ *rows,
+ "",
+ ]
+
+
def generate_markdown(
results: list,
commit_sha: str,
@@ -507,7 +561,7 @@ def generate_markdown(
first = results[0] if results else {}
jdk_version = first.get("jdkVersion", "unknown")
vm_name = first.get("vmName", "unknown")
- threads = first.get("threads", "?")
+ threads = "/".join(sorted({str(b.get("threads", "?")) for b in results})) or "?"
forks = first.get("forks", "?")
warmup_iters = first.get("warmupIterations", "?")
measure_iters = first.get("measurementIterations", "?")
@@ -638,9 +692,11 @@ def generate_markdown(
)
md.append("")
+ md.extend(generate_allocation_section(results, baseline_results or []))
+
md.append("### Raw Results")
md.append("")
- md.append("```")
+ md.append("```text")
md.append(
f"{'Benchmark':<50} {'Mode':>6} {'Cnt':>4} {'Score':>14} {'Error':>12} Units"
)
@@ -700,8 +756,8 @@ def generate_markdown(
md.append("| Benchmark | Description |")
md.append("|:----------|:------------|")
md.append(
- "| **CounterBenchmark** | Counter increment performance: "
- "Prometheus, OpenTelemetry, simpleclient, Codahale |"
+ "| **CounterBenchmark** | Counter updates and label-value lookup "
+ "(selected methods only) |"
)
md.append(
"| **HistogramBenchmark** | Histogram observation performance "
diff --git a/.mise/tasks/test_generate-benchmark-summary.py b/.mise/tasks/test_generate-benchmark-summary.py
index 2f3d26454a..82f882fa2e 100644
--- a/.mise/tasks/test_generate-benchmark-summary.py
+++ b/.mise/tasks/test_generate-benchmark-summary.py
@@ -7,7 +7,9 @@
sys.path.insert(0, here)
from generate_benchmark_summary import (
+ allocation_score,
comparison_status,
+ generate_allocation_section,
generate_markdown,
)
@@ -45,6 +47,63 @@ def result(
}
+def with_allocation(benchmark, score, unit="B/op"):
+ benchmark["secondaryMetrics"] = {
+ "gc.alloc.rate.norm": {"score": score, "scoreUnit": unit}
+ }
+ return benchmark
+
+
+class TestAllocationSummary(unittest.TestCase):
+ def test_zero_is_valid_but_missing_invalid_and_wrong_units_are_not(self):
+ self.assertEqual(allocation_score(with_allocation(result(), 0)), 0)
+ self.assertIsNone(allocation_score(result()))
+ self.assertIsNone(allocation_score(with_allocation(result(), 1, "MB/sec")))
+ for score in (None, "NaN", float("inf"), -1, "not a number"):
+ self.assertIsNone(allocation_score(with_allocation(result(), score)))
+
+ def test_allocation_delta_is_absolute_and_lower_is_better(self):
+ head = with_allocation(result(), 0)
+ base = with_allocation(result(), 16)
+ section = "\n".join(generate_allocation_section([head], [base]))
+ self.assertIn("| 0.000 | 16.000 | -16.000 |", section)
+ self.assertIn("not statistical regression verdicts", section)
+
+ def test_missing_or_incomparable_base_has_no_delta(self):
+ head = with_allocation(result(), 16)
+ for base in ([], [result()], [with_allocation(result(threads=1), 32)]):
+ section = "\n".join(generate_allocation_section([head], base))
+ self.assertTrue(section.rstrip().endswith("| — |"))
+ self.assertIn(
+ "| 16.000 | — | — |",
+ "\n".join(generate_allocation_section([head], [])),
+ )
+
+ def test_missing_head_allocation_is_not_reported_as_zero(self):
+ section = "\n".join(
+ generate_allocation_section([result()], [with_allocation(result(), 16)])
+ )
+ self.assertIn("| — | 16.000 | — |", section)
+
+ def test_no_gc_data_omits_allocation_section(self):
+ self.assertEqual(generate_allocation_section([result()], []), [])
+
+ def test_markdown_includes_head_only_allocations_and_mixed_threads(self):
+ base = result()
+ head = with_allocation(result(name="CounterBenchmark.newLookup", threads=1), 24)
+ markdown = generate_markdown(
+ [base, head],
+ "head",
+ "prometheus/client_java",
+ [base],
+ "base",
+ "prometheus/client_java",
+ )
+ self.assertIn("## Allocation per operation", markdown)
+ self.assertIn("| CounterBenchmark.newLookup | 24.000 | — | — |", markdown)
+ self.assertIn("1/4 threads", markdown)
+
+
class TestBenchmarkComparison(unittest.TestCase):
def test_meaningful_improvement_requires_threshold_and_separation(self):
self.assertEqual(
diff --git a/.mise/tasks/test_pr-benchmark-selection.py b/.mise/tasks/test_pr-benchmark-selection.py
new file mode 100644
index 0000000000..63befebf78
--- /dev/null
+++ b/.mise/tasks/test_pr-benchmark-selection.py
@@ -0,0 +1,79 @@
+import re
+import unittest
+from pathlib import Path
+
+ROOT = Path(__file__).resolve().parents[2]
+WORKFLOW = (ROOT / ".github/workflows/pr-benchmarks.yml").read_text()
+PATTERNS = {
+ topic: pattern.strip("'\"")
+ for topic, pattern in re.findall(r"- topic: (\w+)\s+pattern: ([^\n]+)", WORKFLOW)
+}
+PACKAGE = "io.prometheus.metrics.benchmarks."
+
+
+class TestPrBenchmarkSelection(unittest.TestCase):
+ def test_only_client_java_counter_and_histogram_methods_are_selected(self):
+ for topic, class_name in (
+ ("counter", "CounterBenchmark"),
+ ("histogram", "HistogramBenchmark"),
+ ):
+ source = (
+ ROOT
+ / "benchmarks/src/main/java/io/prometheus/metrics/benchmarks"
+ / f"{class_name}.java"
+ ).read_text()
+ methods = re.findall(
+ r"@Benchmark\s+@Threads\(\d+\)\s+public \S+ (\w+)\(", source
+ )
+ self.assertTrue(methods)
+ for method in methods:
+ with self.subTest(method=method):
+ selected = re.search(
+ PATTERNS[topic], PACKAGE + class_name + "." + method
+ )
+ self.assertEqual(
+ selected is not None, method.startswith("prometheus")
+ )
+
+ def test_external_systems_including_future_bound_instruments_are_excluded(self):
+ for class_name in ("CounterBenchmark", "HistogramBenchmark"):
+ for method in (
+ "openTelemetryAdd",
+ "openTelemetryBoundInc",
+ "openTelemetryBoundClassic",
+ "codahaleIncNoLabels",
+ "simpleclientAdd",
+ "simpleclient",
+ ):
+ name = PACKAGE + class_name + "." + method
+ self.assertFalse(
+ any(re.search(p, name) for p in PATTERNS.values()), name
+ )
+
+ def test_all_lookup_and_cached_variants_are_selected(self):
+ for method in (
+ "prometheusLabelValuesInc",
+ "prometheusLabelValuesIncSingleThread",
+ "prometheusCachedLabelValuesInc",
+ "prometheusCachedLabelValuesIncSingleThread",
+ ):
+ self.assertRegex(
+ PACKAGE + "CounterBenchmark." + method, PATTERNS["counter"]
+ )
+
+ def test_exposition_keeps_openmetrics_and_prometheus_formats(self):
+ for class_name in ("HistogramTextFormatBenchmark", "TextFormatUtilBenchmark"):
+ for method in ("openMetricsWriteToNull", "prometheusWriteToNull"):
+ self.assertRegex(
+ PACKAGE + class_name + "." + method, PATTERNS["exposition"]
+ )
+
+ def test_base_and_head_use_the_same_selection(self):
+ self.assertIn("JMH_PATTERN: ${{ matrix.pattern }}", WORKFLOW)
+ self.assertEqual(
+ WORKFLOW.count("JMH_ARGS: -f 3 -wi 3 -i 5 ${{ env.JMH_PATTERN }}"), 2
+ )
+
+
+if __name__ == "__main__":
+ unittest.main()
diff --git a/benchmarks/README.md b/benchmarks/README.md
index 3859eddea1..0d70149134 100644
--- a/benchmarks/README.md
+++ b/benchmarks/README.md
@@ -55,6 +55,35 @@ JMH parameter reference:
## Results
+### Pull request benchmarks
+
+The `benchmark` label runs the PR head and base on the same runner for each topic.
+PR runs select only client_java counter and histogram methods (`prometheus*`), plus
+the exposition benchmarks. OpenTelemetry, Codahale, and legacy simpleclient methods
+are excluded from PR runs, but remain available in the full/local and nightly suites.
+OpenMetrics exposition remains included: it is a client_java output format.
+
+The `CounterBenchmark.prometheusLabelValuesInc*` methods repeatedly look up an
+existing label combination and increment it. The matching
+`prometheusCachedLabelValuesInc*` methods increment a cached data point instead.
+Both have one-thread and four-thread variants sharing a counter. Each invocation
+performs one metric update, so throughput and GC profiler allocation in B/op are
+per update, unlike older benchmarks that batch updates in a loop.
+
+Run just the lookup and cached variants with allocation profiling:
+
+```shell
+./mvnw -pl benchmarks -am package -DskipTests
+java -jar benchmarks/target/benchmarks.jar \
+ 'CounterBenchmark[.]prometheus(Cached)?LabelValuesInc.*' \
+ -f 3 -wi 3 -i 5 -prof gc
+```
+
+The PR report shows allocation separately from throughput. Allocation deltas are
+descriptive, not statistical verdicts, and require matching base/head configurations.
+New benchmarks initially have head-only results. To evaluate a production change,
+run the same benchmark source and JVM configuration against both implementations.
+
See Javadoc of the benchmark classes:
- [CounterBenchmark](https://github.com/prometheus/client_java/blob/main/benchmarks/src/main/java/io/prometheus/metrics/benchmarks/CounterBenchmark.java)
diff --git a/benchmarks/src/main/java/io/prometheus/metrics/benchmarks/CounterBenchmark.java b/benchmarks/src/main/java/io/prometheus/metrics/benchmarks/CounterBenchmark.java
index d8b75e437c..06d2648f98 100644
--- a/benchmarks/src/main/java/io/prometheus/metrics/benchmarks/CounterBenchmark.java
+++ b/benchmarks/src/main/java/io/prometheus/metrics/benchmarks/CounterBenchmark.java
@@ -55,6 +55,48 @@ public PrometheusCounter() {
}
}
+ /** Pre-populated labels so lookup benchmarks measure hits, not data point creation. */
+ @State(Scope.Benchmark)
+ public static class PrometheusLabelLookup {
+ final Counter counter =
+ Counter.builder().name("lookup_test").labelNames("path", "status").build();
+ final String path = "/";
+ final String status = "200";
+ final CounterDataPoint cached = counter.labelValues(path, status);
+ }
+
+ // Each invocation performs one increment, so GC profiler B/op is per metric update. Keep the
+ // same work and shared counter in the lookup and cached variants; only label resolution differs.
+ @Benchmark
+ @Threads(1)
+ public CounterDataPoint prometheusLabelValuesIncSingleThread(PrometheusLabelLookup state) {
+ CounterDataPoint dataPoint = state.counter.labelValues(state.path, state.status);
+ dataPoint.inc();
+ return dataPoint;
+ }
+
+ @Benchmark
+ @Threads(4)
+ public CounterDataPoint prometheusLabelValuesInc(PrometheusLabelLookup state) {
+ CounterDataPoint dataPoint = state.counter.labelValues(state.path, state.status);
+ dataPoint.inc();
+ return dataPoint;
+ }
+
+ @Benchmark
+ @Threads(1)
+ public CounterDataPoint prometheusCachedLabelValuesIncSingleThread(PrometheusLabelLookup state) {
+ state.cached.inc();
+ return state.cached;
+ }
+
+ @Benchmark
+ @Threads(4)
+ public CounterDataPoint prometheusCachedLabelValuesInc(PrometheusLabelLookup state) {
+ state.cached.inc();
+ return state.cached;
+ }
+
@State(Scope.Benchmark)
public static class SimpleclientCounter {
From 05146c03858be86fcd88d5d0a90a1073d4e29ec9 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Wed, 16 Sep 2026 08:13:22 +0200
Subject: [PATCH 158/255] fix(deps): update dependency
org.apache.tomcat.embed:tomcat-embed-core to v11.0.26 (#2477)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This PR contains the following updates:
| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
|
[org.apache.tomcat.embed:tomcat-embed-core](https://tomcat.apache.org/)
| `11.0.25` → `11.0.26` |

|

|
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/prometheus/client_java).
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
.../example-greeting-service/pom.xml | 2 +-
.../example-hello-world-app/pom.xml | 2 +-
examples/example-exporter-servlet-tomcat/pom.xml | 2 +-
.../it-exporter/it-exporter-servlet-tomcat-sample/pom.xml | 2 +-
4 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/examples/example-exemplars-tail-sampling/example-greeting-service/pom.xml b/examples/example-exemplars-tail-sampling/example-greeting-service/pom.xml
index 4b7d5484bc..4b91a5d7bc 100644
--- a/examples/example-exemplars-tail-sampling/example-greeting-service/pom.xml
+++ b/examples/example-exemplars-tail-sampling/example-greeting-service/pom.xml
@@ -45,7 +45,7 @@
org.apache.tomcat.embedtomcat-embed-core
- 11.0.25
+ 11.0.26
diff --git a/examples/example-exemplars-tail-sampling/example-hello-world-app/pom.xml b/examples/example-exemplars-tail-sampling/example-hello-world-app/pom.xml
index d1f01b17fa..c2162208e4 100644
--- a/examples/example-exemplars-tail-sampling/example-hello-world-app/pom.xml
+++ b/examples/example-exemplars-tail-sampling/example-hello-world-app/pom.xml
@@ -45,7 +45,7 @@
org.apache.tomcat.embedtomcat-embed-core
- 11.0.25
+ 11.0.26
diff --git a/examples/example-exporter-servlet-tomcat/pom.xml b/examples/example-exporter-servlet-tomcat/pom.xml
index c7a2b1e4df..eb11dbf535 100644
--- a/examples/example-exporter-servlet-tomcat/pom.xml
+++ b/examples/example-exporter-servlet-tomcat/pom.xml
@@ -44,7 +44,7 @@
org.apache.tomcat.embedtomcat-embed-core
- 11.0.25
+ 11.0.26
diff --git a/integration-tests/it-exporter/it-exporter-servlet-tomcat-sample/pom.xml b/integration-tests/it-exporter/it-exporter-servlet-tomcat-sample/pom.xml
index 7e9d9ab7dc..ae823f2446 100644
--- a/integration-tests/it-exporter/it-exporter-servlet-tomcat-sample/pom.xml
+++ b/integration-tests/it-exporter/it-exporter-servlet-tomcat-sample/pom.xml
@@ -33,7 +33,7 @@
org.apache.tomcat.embedtomcat-embed-core
- 11.0.25
+ 11.0.26
From 9ec38b7f98b35995d9f795579323cf02fd952c67 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Wed, 16 Sep 2026 08:13:46 +0200
Subject: [PATCH 159/255] chore(deps): update
otel/opentelemetry-collector-contrib docker tag to v0.161.0 (#2478)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This PR contains the following updates:
| Package | Update | Change |
|---|---|---|
|
[otel/opentelemetry-collector-contrib](https://redirect.github.com/open-telemetry/opentelemetry-collector-releases)
| minor | `0.160.0` → `0.161.0` |
---
### Release Notes
open-telemetry/opentelemetry-collector-releases
(otel/opentelemetry-collector-contrib)
###
[`v0.161.0`](https://redirect.github.com/open-telemetry/opentelemetry-collector-releases/blob/HEAD/CHANGELOG.md#v01610)
[Compare
Source](https://redirect.github.com/open-telemetry/opentelemetry-collector-releases/compare/v0.160.0...v0.161.0)
##### 🛑 Breaking changes 🛑
- `all`: Remove the deprecated mezmo exporter.
([#49953](https://redirect.github.com/open-telemetry/opentelemetry-collector-releases/issues/49953))
Use the OTLP/HTTP exporter to send logs directly to Mezmo instead. See
and
for
migration guidance.
##### 💡 Enhancements 💡
- `otelcol-contrib`: Upgrade go.opentelemetry.io/obi to v0.13.0
([#1643](https://redirect.github.com/open-telemetry/opentelemetry-collector-releases/issues/1643))
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/prometheus/client_java).
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
examples/example-exemplars-tail-sampling/docker-compose.yaml | 2 +-
examples/example-exporter-opentelemetry/docker-compose.yaml | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/examples/example-exemplars-tail-sampling/docker-compose.yaml b/examples/example-exemplars-tail-sampling/docker-compose.yaml
index c4d08a175c..041a59365e 100644
--- a/examples/example-exemplars-tail-sampling/docker-compose.yaml
+++ b/examples/example-exemplars-tail-sampling/docker-compose.yaml
@@ -36,7 +36,7 @@ services:
- -jar
- /example-greeting-service.jar
collector:
- image: otel/opentelemetry-collector-contrib:0.160.0@sha256:799dc6cf12c96192af37b5bdba804da8c10b3bc563b43cb90c3f3c58d9572ad6
+ image: otel/opentelemetry-collector-contrib:0.161.0@sha256:fd328de2552466ad78385e1b1289c3f2402b1c45f265b252aab1955b42845ac1
network_mode: host
volumes:
- ./config/otelcol-config.yaml:/config.yaml
diff --git a/examples/example-exporter-opentelemetry/docker-compose.yaml b/examples/example-exporter-opentelemetry/docker-compose.yaml
index c1f439cc2d..80fffd93e2 100644
--- a/examples/example-exporter-opentelemetry/docker-compose.yaml
+++ b/examples/example-exporter-opentelemetry/docker-compose.yaml
@@ -13,7 +13,7 @@ services:
#- -agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=*:5005
- /example-exporter-opentelemetry.jar
collector:
- image: otel/opentelemetry-collector-contrib:0.160.0@sha256:799dc6cf12c96192af37b5bdba804da8c10b3bc563b43cb90c3f3c58d9572ad6
+ image: otel/opentelemetry-collector-contrib:0.161.0@sha256:fd328de2552466ad78385e1b1289c3f2402b1c45f265b252aab1955b42845ac1
network_mode: host
volumes:
- ./config/otelcol-config.yaml:/config.yaml
From 085263b14478421f0fe992701ce5f608d7c2e7cf Mon Sep 17 00:00:00 2001
From: david-mollitor-db
Date: Wed, 16 Sep 2026 02:19:51 -0400
Subject: [PATCH 160/255] perf: avoid allocating a mapping lambda on every
labelValues() call (#2442)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
## What
`StatefulMetric.labelValues(...)` — the path every
`counter.labelValues(...).inc()` /
`histogram.labelValues(...).observe(...)` goes through — called
`data.computeIfAbsent(key, l -> newDataPoint())` on every invocation.
The mapping function
captures `this` (via `metadata`/`labelNames`), so it is **not** a cached
singleton: a new lambda
instance is allocated on every call, including the overwhelmingly common
case where the data point
already exists (the lambda argument is constructed before
`computeIfAbsent` runs, even though it is
only invoked on a miss).
This adds a `data.get(key)` fast path that returns the existing data
point without constructing the
lambda:
```java
List key = Arrays.asList(labelValues);
T dataPoint = data.get(key);
if (dataPoint != null) {
return dataPoint;
}
// miss: validate the raw array outside the CHM lock, then create at-most-once
for (int i = 0; i < labelValues.length; i++) {
if (labelValues[i] == null) {
throw new IllegalArgumentException(
"null label value for metric " + metadata.getName() + " and label " + labelNames[i]);
}
}
return data.computeIfAbsent(key, l -> newDataPoint());
```
Two secondary points folded in on the miss path:
- the null-value validation now runs **before** `computeIfAbsent`, i.e.
outside the
`ConcurrentHashMap` bin lock, and operates on the raw `String[]` (no
`List.get` indirection);
- creation stays inside `computeIfAbsent` on purpose — `newDataPoint()`
has a side effect (a native
histogram may schedule a reset task via `Scheduler.schedule`), so
at-most-once creation must be
preserved; `putIfAbsent` with a pre-built value would leak the loser's
scheduled task on a race.
## Why
`labelValues(...)` is the hottest path in the library (every metric
update). In a JMH benchmark of a
histogram-heavy workload, the `get()` fast path cut record-path
allocation by ~18% — exactly the
16-byte captured lambda per observation.
## Correctness
Behavior is unchanged (a null label value still throws on first use,
since a null-containing key is
never inserted and so always reaches the miss branch). Verified by the
core tests, including
`StatefulMetricTest`.
This pull request and its description were written by Isaac.
Signed-off-by: David Mollitor
Co-authored-by: Gregor Zeitlinger
---
.../metrics/core/metrics/StatefulMetric.java | 28 +++++++++----------
1 file changed, 14 insertions(+), 14 deletions(-)
diff --git a/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/StatefulMetric.java b/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/StatefulMetric.java
index 6ad26fda32..140a5fc621 100644
--- a/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/StatefulMetric.java
+++ b/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/StatefulMetric.java
@@ -116,20 +116,20 @@ public D labelValues(String... labelValues) {
"Expected " + labelNames.length + " label values, but got " + labelValues.length + ".");
}
}
- return data.computeIfAbsent(
- Arrays.asList(labelValues),
- l -> {
- for (int i = 0; i < l.size(); i++) {
- if (l.get(i) == null) {
- throw new IllegalArgumentException(
- "null label value for metric "
- + metadata.getName()
- + " and label "
- + labelNames[i]);
- }
- }
- return newDataPoint();
- });
+ List key = Arrays.asList(labelValues);
+ // Fast path: the data point for these label values almost always already exists, since the same
+ // label combinations are reused across updates.
+ T dataPoint = data.get(key);
+ if (dataPoint != null) {
+ return dataPoint;
+ }
+ for (int i = 0; i < labelValues.length; i++) {
+ if (labelValues[i] == null) {
+ throw new IllegalArgumentException(
+ "null label value for metric " + metadata.getName() + " and label " + labelNames[i]);
+ }
+ }
+ return data.computeIfAbsent(key, l -> newDataPoint());
}
/**
From d78b149c8d25bb3ad967e41b4682f8a23423a9f2 Mon Sep 17 00:00:00 2001
From: Gregor Zeitlinger
Date: Wed, 16 Sep 2026 08:45:12 +0200
Subject: [PATCH 161/255] fix: keep late observations out of subsequent
collection buffers (#2471)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
## Problem and proof
A late appender can increment its stripe during collection A, then read
`activeGeneration` only after A has completed and collection B has
started.
B already includes that observation in `expectedCount`. If the appender
puts it into B's
buffer, B waits for an observation that will only be replayed after B's
wait ends.
This deterministically causes the five-second collection timeout.
The old late-appender test paused after reading the generation, missing
this window.
Moving the existing injected pause hook before that read, without the
fix, reproduced:
```text
BufferTest.lateAppenderCountedByNextGenerationMustNotBeBufferedAgain
Time elapsed: 5.037 s
ExecutionException: IllegalStateException:
Timed out while waiting for in-flight observations.
```
The production hook remains a no-op; the test forces a scheduling window
that real threads can hit.
This has the same failure signature as the histogram failures observed
in
[#2468](https://github.com/prometheus/client_java/pull/2468) and
[#2441](https://github.com/prometheus/client_java/pull/2441).
The reproduction proves this race exists, not which interleaving
occurred in any particular CI run.
## Fix
- Record each stripe's absolute observation count at generation
activation, under `appendLock`.
- Under that same lock, reject buffering an observation whose ticket is
already included in the
current generation's starting count. It completes through the existing
direct observation path.
- Reuse a single cutoff array per Buffer: one additional long per
stripe, plus array overhead,
with no new per-collection allocation or additional fast-path lock.
- Keep cutoffs independent of the reset-adjusted aggregate observation
count.
- Do not change the five-second timeout, buffer capacity, or public API.
## Regression coverage
Strengthen the late-appender test to force the previously untested
window and capture worker
exceptions through futures, with bounded waits and executor cleanup.
Cover both normal collection and a preceding reset. Each case also
verifies that a genuinely new
observation buffers normally, stays out of the current snapshot, replays
exactly once, and appears
in the following collection.
## Validation
- Before fix: deterministic timeout reproduced as above.
- After fix: `BufferTest`, `HistogramTest`, and `SummaryTest` — 50 tests
passed.
- Temporary local JUnit launcher: both regression cases and the original
`HistogramTest.testObserveMultithreaded`, repeated 50 times with each of
`-XX:ActiveProcessorCount=1`, `2`, and `4` — **450 successful test
executions** on JDK 25.
- `mise run lint:fix` — passed; formatter changes retained.
- `mise run build -- -DskipITs=true` — passed. Docker-backed integration
tests skipped because
Docker is unavailable locally.
- `mise run test` — full unit-test suite passed.
- `./mvnw verify -pl prometheus-metrics-core -am` — passed, including
coverage checks.
- `git diff --check` — passed.
Kept separate from the benchmark-only PR.
## Current scope after update onto main
The original production fix is already present on `main` through
[#2441](https://github.com/prometheus/client_java/pull/2441) and
[#2468](https://github.com/prometheus/client_java/pull/2468). This PR
now contains the remaining merge-update and review hardening: explicit
coverage for both generation handoff windows, fail-closed absolute
cutoffs, clearer test seams, and non-masking executor cleanup
assertions. The historical race reproduction and validation context
above are retained.
---------
Signed-off-by: Gregor Zeitlinger
---
.../metrics/core/metrics/Buffer.java | 31 ++++++++++++++-----
.../metrics/core/metrics/BufferTest.java | 29 +++++++++++------
2 files changed, 43 insertions(+), 17 deletions(-)
diff --git a/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/Buffer.java b/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/Buffer.java
index 22525840c9..9283e60fc1 100644
--- a/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/Buffer.java
+++ b/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/Buffer.java
@@ -62,23 +62,34 @@ private static final class Generation {
private final Condition bufferSpaceAvailable = appendLock.newCondition();
private final long maxSpinWaitNanos;
private final int maxBufferSize;
- private final Runnable beforeAppendLock;
+ // These hooks are test seams only; production buffers use no-op callbacks.
+ private final Runnable beforeGenerationRead;
+ private final Runnable afterGenerationRead;
Buffer() {
- this(DEFAULT_MAX_SPIN_WAIT_NANOS, DEFAULT_MAX_BUFFER_SIZE, () -> {});
+ this(DEFAULT_MAX_SPIN_WAIT_NANOS, DEFAULT_MAX_BUFFER_SIZE, () -> {}, () -> {});
}
Buffer(long maxSpinWaitNanos) {
- this(maxSpinWaitNanos, DEFAULT_MAX_BUFFER_SIZE, () -> {});
+ this(maxSpinWaitNanos, DEFAULT_MAX_BUFFER_SIZE, () -> {}, () -> {});
}
- Buffer(long maxSpinWaitNanos, int maxBufferSize, Runnable beforeAppendLock) {
+ Buffer(long maxSpinWaitNanos, int maxBufferSize, Runnable beforeGenerationRead) {
+ this(maxSpinWaitNanos, maxBufferSize, beforeGenerationRead, () -> {});
+ }
+
+ Buffer(
+ long maxSpinWaitNanos,
+ int maxBufferSize,
+ Runnable beforeGenerationRead,
+ Runnable afterGenerationRead) {
if (maxBufferSize <= 0) {
throw new IllegalArgumentException("maxBufferSize must be positive");
}
this.maxSpinWaitNanos = maxSpinWaitNanos;
this.maxBufferSize = maxBufferSize;
- this.beforeAppendLock = beforeAppendLock;
+ this.beforeGenerationRead = beforeGenerationRead;
+ this.afterGenerationRead = afterGenerationRead;
stripedObservationCounts = new AtomicLong[Runtime.getRuntime().availableProcessors()];
generationStartCounts = new long[stripedObservationCounts.length];
for (int i = 0; i < stripedObservationCounts.length; i++) {
@@ -87,6 +98,7 @@ private static final class Generation {
}
boolean append(double value) {
+ // Keep the uncontended hot path small enough for the JIT to inline into observations.
int stripe = stripeIndex(Thread.currentThread().getId(), stripedObservationCounts.length);
AtomicLong counter = stripedObservationCounts[stripe];
long count = counter.incrementAndGet();
@@ -97,9 +109,14 @@ boolean append(double value) {
if ((count & BUFFER_ACTIVE_BIT) == 0) {
return false;
}
+ return appendToActiveGeneration(value, stripe, count);
+ }
+
+ private boolean appendToActiveGeneration(double value, int stripe, long count) {
// Allow tests to pause between allocating an observation ticket and reading the generation.
- beforeAppendLock.run();
+ beforeGenerationRead.run();
Generation generation = activeGeneration;
+ afterGenerationRead.run();
if (generation == null) {
return false;
}
@@ -193,7 +210,7 @@ T run(
long total = 0;
for (int i = 0; i < stripedObservationCounts.length; i++) {
long count = stripedObservationCounts[i].getAndAdd(BUFFER_ACTIVE_BIT);
- generationStartCounts[i] = count;
+ generationStartCounts[i] = count & ~BUFFER_ACTIVE_BIT;
total += count;
}
expectedCount = total - observationCountOffset;
diff --git a/prometheus-metrics-core/src/test/java/io/prometheus/metrics/core/metrics/BufferTest.java b/prometheus-metrics-core/src/test/java/io/prometheus/metrics/core/metrics/BufferTest.java
index 3fe5b2cf45..064bb81863 100644
--- a/prometheus-metrics-core/src/test/java/io/prometheus/metrics/core/metrics/BufferTest.java
+++ b/prometheus-metrics-core/src/test/java/io/prometheus/metrics/core/metrics/BufferTest.java
@@ -223,15 +223,21 @@ void interruptedAppenderLeavesBoundedBufferWait() throws InterruptedException {
@Test
void lateAppenderCountedByNextGenerationMustNotBeBufferedAgain() throws Exception {
- assertLateAppenderHandoff(false);
+ assertLateAppenderHandoff(false, true);
}
@Test
void lateAppenderHandoffUsesAbsoluteStripeCountsAfterReset() throws Exception {
- assertLateAppenderHandoff(true);
+ assertLateAppenderHandoff(true, true);
}
- private static void assertLateAppenderHandoff(boolean reset) throws Exception {
+ @Test
+ void lateAppenderAfterGenerationReadMustNotBeBufferedAgain() throws Exception {
+ assertLateAppenderHandoff(false, false);
+ }
+
+ private static void assertLateAppenderHandoff(boolean reset, boolean pauseBeforeGenerationRead)
+ throws Exception {
CountDownLatch firstSnapshotStarted = new CountDownLatch(1);
CountDownLatch finishFirstSnapshot = new CountDownLatch(1);
CountDownLatch observationCounted = new CountDownLatch(1);
@@ -240,16 +246,19 @@ private static void assertLateAppenderHandoff(boolean reset) throws Exception {
AtomicLong completedObservations = new AtomicLong();
AtomicLong secondExpectedCount = new AtomicLong();
AtomicBoolean pauseFirstAppender = new AtomicBoolean(true);
+ Runnable pauseHook =
+ () -> {
+ if (pauseFirstAppender.compareAndSet(true, false)) {
+ observationCounted.countDown();
+ awaitLatch(readGeneration);
+ }
+ };
Buffer buffer =
new Buffer(
TimeUnit.SECONDS.toNanos(5),
16,
- () -> {
- if (pauseFirstAppender.compareAndSet(true, false)) {
- observationCounted.countDown();
- awaitLatch(readGeneration);
- }
- });
+ pauseBeforeGenerationRead ? pauseHook : () -> {},
+ pauseBeforeGenerationRead ? () -> {} : pauseHook);
if (reset) {
assertThat(buffer.append(1.0)).isFalse();
buffer.observeDirect(completedObservations::incrementAndGet);
@@ -329,8 +338,8 @@ private static void assertLateAppenderHandoff(boolean reset) throws Exception {
finishFirstSnapshot.countDown();
readGeneration.countDown();
executor.shutdownNow();
- assertThat(executor.awaitTermination(10, TimeUnit.SECONDS)).isTrue();
}
+ assertThat(executor.awaitTermination(10, TimeUnit.SECONDS)).as("executor terminated").isTrue();
}
private static void awaitLatch(CountDownLatch latch) {
From 71e821c3bcf76e47e3b36cbb5cac296af936115f Mon Sep 17 00:00:00 2001
From: "github-actions[bot]"
<41898282+github-actions[bot]@users.noreply.github.com>
Date: Wed, 16 Sep 2026 09:03:28 +0200
Subject: [PATCH 162/255] chore(main): release 1.9.0 (#2237)
:robot: I have created a release *beep* *boop*
---
##
[1.9.0](https://github.com/prometheus/client_java/compare/v1.8.0...v1.9.0)
(2026-09-16)
### Features
* support metric name filtering in OpenTelemetry exporter
([#2344](https://github.com/prometheus/client_java/issues/2344))
([9b0ede8](https://github.com/prometheus/client_java/commit/9b0ede830fcf233fb9f9c4cb08ed91ef21fbd667))
### Bug Fixes
* avoid protobuf debug reflection in native images
([#2251](https://github.com/prometheus/client_java/issues/2251))
([7f899e7](https://github.com/prometheus/client_java/commit/7f899e79ded325256bd0e444e33696b5f194700d))
* bound HTTPServer request resources
([#2333](https://github.com/prometheus/client_java/issues/2333))
([33ec556](https://github.com/prometheus/client_java/commit/33ec5565227ff60345496edf0186934fc39df25b))
* bound observation buffering during collection
([#2336](https://github.com/prometheus/client_java/issues/2336))
([43788f5](https://github.com/prometheus/client_java/commit/43788f583a9078b1be2dc81b22d8645461739523))
* bound scrape query parameters
([#2334](https://github.com/prometheus/client_java/issues/2334))
([27e1912](https://github.com/prometheus/client_java/commit/27e19125668227fac1f39599a93efa2d60cb41a5))
* **ci:** skip benchmark report for skipped runs
([#2422](https://github.com/prometheus/client_java/issues/2422))
([40eddb0](https://github.com/prometheus/client_java/commit/40eddb060f21054a439bf07961cf55473cb35507))
* clarify benchmark regression report verdicts
([#2394](https://github.com/prometheus/client_java/issues/2394))
([e5fa067](https://github.com/prometheus/client_java/commit/e5fa067fec3e07270ebd273cb6903b1f819b1bc6))
* **deps:** update dependency com.google.guava:guava to v33.7.0-jre
([#2387](https://github.com/prometheus/client_java/issues/2387))
([bf0db49](https://github.com/prometheus/client_java/commit/bf0db49a9f921d1372edbe0eab554ec50743cd77))
* **deps:** update dependency io.dropwizard.metrics:metrics-core to
v4.2.40 ([#2432](https://github.com/prometheus/client_java/issues/2432))
([dd88326](https://github.com/prometheus/client_java/commit/dd88326fa9113aadf55627856d788deda42982d8))
* **deps:** update dependency io.dropwizard.metrics5:metrics-core to
v5.0.8 ([#2433](https://github.com/prometheus/client_java/issues/2433))
([42f3c8a](https://github.com/prometheus/client_java/commit/42f3c8a0d11af4bc5afa84c79b4de7dc16d32e6e))
* **deps:** update dependency
io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha
to v2.29.0-alpha
([#2235](https://github.com/prometheus/client_java/issues/2235))
([cf9f702](https://github.com/prometheus/client_java/commit/cf9f70219e103c6004d8c315fdcfab2cfd7c447d))
* **deps:** update dependency
io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha
to v2.30.0-alpha
([#2328](https://github.com/prometheus/client_java/issues/2328))
([1ca2716](https://github.com/prometheus/client_java/commit/1ca27164b646266a10ead6ad1e2e6b5648567b2f))
* **deps:** update dependency
io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha
to v2.30.0-alpha
([#2330](https://github.com/prometheus/client_java/issues/2330))
([07623c1](https://github.com/prometheus/client_java/commit/07623c14dedfeffed3eace5b8718127add250668))
* **deps:** update dependency
io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha
to v2.31.0-alpha
([#2401](https://github.com/prometheus/client_java/issues/2401))
([6c26619](https://github.com/prometheus/client_java/commit/6c2661975277a04b6931e8063c3123ac0cf16a69))
* **deps:** update dependency
io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha
to v2.31.0-alpha
([#2402](https://github.com/prometheus/client_java/issues/2402))
([ac0d68a](https://github.com/prometheus/client_java/commit/ac0d68a62886473ac4afd736602760e97024b528))
* **deps:** update dependency
io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha
to v2.31.1-alpha
([#2409](https://github.com/prometheus/client_java/issues/2409))
([5eea652](https://github.com/prometheus/client_java/commit/5eea652d80b0c5fdfce1f7e071cdd55cc624ce01))
* **deps:** update dependency
io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha
to v2.31.1-alpha
([#2410](https://github.com/prometheus/client_java/issues/2410))
([0bcef89](https://github.com/prometheus/client_java/commit/0bcef891b2ada3d684266b6cbaf5d373ece7cd84))
* **deps:** update dependency org.apache.tomcat.embed:tomcat-embed-core
to v11.0.23
([#2241](https://github.com/prometheus/client_java/issues/2241))
([a017f80](https://github.com/prometheus/client_java/commit/a017f80980d91a5fa8ffe930c820f836c3d1b2ff))
* **deps:** update dependency org.apache.tomcat.embed:tomcat-embed-core
to v11.0.24
([#2294](https://github.com/prometheus/client_java/issues/2294))
([63967bd](https://github.com/prometheus/client_java/commit/63967bd36ebc638234742ec58ad28f6098a92b3a))
* **deps:** update dependency org.apache.tomcat.embed:tomcat-embed-core
to v11.0.25
([#2389](https://github.com/prometheus/client_java/issues/2389))
([92f8344](https://github.com/prometheus/client_java/commit/92f834476837cab3d281d4b435937e11a2ff7729))
* **deps:** update dependency org.apache.tomcat.embed:tomcat-embed-core
to v11.0.26
([#2477](https://github.com/prometheus/client_java/issues/2477))
([05146c0](https://github.com/prometheus/client_java/commit/05146c03858be86fcd88d5d0a90a1073d4e29ec9))
* **deps:** update dependency
org.springframework.boot:spring-boot-starter-parent to v4.1.1
([#2399](https://github.com/prometheus/client_java/issues/2399))
([a0b0880](https://github.com/prometheus/client_java/commit/a0b0880cecf00484d610b529a7ffbb5b2c98a65e))
* **deps:** update jetty monorepo to v12.1.11
([#2279](https://github.com/prometheus/client_java/issues/2279))
([4dc54da](https://github.com/prometheus/client_java/commit/4dc54da0c5b768fd66710bd3736b95116df445c5))
* **deps:** update jetty monorepo to v12.1.12
([#2371](https://github.com/prometheus/client_java/issues/2371))
([08967e0](https://github.com/prometheus/client_java/commit/08967e0aca1442935f2052f59f10df66c807ca0b))
* **deps:** update jetty monorepo to v12.1.13
([#2459](https://github.com/prometheus/client_java/issues/2459))
([b217f05](https://github.com/prometheus/client_java/commit/b217f0529e7c2ee11a3883684d767e3744ec7304))
* **deps:** update junit-framework monorepo to v6.1.2
([#2300](https://github.com/prometheus/client_java/issues/2300))
([5966d1d](https://github.com/prometheus/client_java/commit/5966d1d4fdfc30e3a7eb09b0a88da5b2e9dc07c5))
* **deps:** update junit-framework monorepo to v6.1.3
([#2374](https://github.com/prometheus/client_java/issues/2374))
([d1ade52](https://github.com/prometheus/client_java/commit/d1ade5280bdc613d3c7fc5f231ead1e2dca9882e))
* **deps:** update otel.instrumentation.version
([#2236](https://github.com/prometheus/client_java/issues/2236))
([158230d](https://github.com/prometheus/client_java/commit/158230d2418a0b6d1b80c590e8fc63c9e444072c))
* **deps:** update protobuf
([#2400](https://github.com/prometheus/client_java/issues/2400))
([e2db1ed](https://github.com/prometheus/client_java/commit/e2db1edadbfd87cf284ff72ab7c333d742866d9c))
* **deps:** update protobuf
([#2438](https://github.com/prometheus/client_java/issues/2438))
([8ad6fa8](https://github.com/prometheus/client_java/commit/8ad6fa846ab557a020f8805eb5515b0773f11068))
* **deps:** update protobuf to v4.35.1
([#2221](https://github.com/prometheus/client_java/issues/2221))
([cf17073](https://github.com/prometheus/client_java/commit/cf17073eebbdf67bc67dcbea2af30f27a0190079))
* disable micrometer compat build cache
([#2457](https://github.com/prometheus/client_java/issues/2457))
([6a40eda](https://github.com/prometheus/client_java/commit/6a40eda1af7dceda5b1f6e1dd9f8aabbce5a189f))
* drop +Inf bound from OpenTelemetry classic histogram boundaries
([#2458](https://github.com/prometheus/client_java/issues/2458))
([a3bce9a](https://github.com/prometheus/client_java/commit/a3bce9aafebefedd5020c81965e89c0c608ed9d8))
* **exposition:** export internal package for OSGi resolution
([#2415](https://github.com/prometheus/client_java/issues/2415))
([28b503d](https://github.com/prometheus/client_java/commit/28b503df2e9da44a4e26a09f97ed5dfcdca3b19b))
* **httpserver:** make scrape error responses secure and configurable
([f6d9df5](https://github.com/prometheus/client_java/commit/f6d9df52bc022bfabaa82fd67375f529e4371038))
* include counter names in negative value errors
([#2315](https://github.com/prometheus/client_java/issues/2315))
([ea8f935](https://github.com/prometheus/client_java/commit/ea8f935c2112bf511210a065d74e6e3292067e9f))
* include license files in release source jars
([#2250](https://github.com/prometheus/client_java/issues/2250))
([08cf925](https://github.com/prometheus/client_java/commit/08cf925b564247a497437e29e4a64ebb335cd328)),
closes [#2216](https://github.com/prometheus/client_java/issues/2216)
* keep late observations out of subsequent collection buffers
([#2471](https://github.com/prometheus/client_java/issues/2471))
([d78b149](https://github.com/prometheus/client_java/commit/d78b149c8d25bb3ad967e41b4682f8a23423a9f2))
* keep PR title check required after rebases
([#2414](https://github.com/prometheus/client_java/issues/2414))
([e3d4c3b](https://github.com/prometheus/client_java/commit/e3d4c3ba66b1e92078cd2f1c8ccc38a803ac3a07))
* prevent buffer stripe index overflow
([#2331](https://github.com/prometheus/client_java/issues/2331))
([b6cd000](https://github.com/prometheus/client_java/commit/b6cd000a39f9bbf78cf0ae1209c60910219c9cbf))
* redact invalid configuration values
([#2335](https://github.com/prometheus/client_java/issues/2335))
([7e7e533](https://github.com/prometheus/client_java/commit/7e7e53364496a1dd6d21d2c01c59219166d7826d))
* show uncertainty in benchmark comparisons
([#2476](https://github.com/prometheus/client_java/issues/2476))
([398d087](https://github.com/prometheus/client_java/commit/398d0872d640d879e9d7207c88ad468b4c170ba9))
* stabilize OpenTelemetry exporter builder API
([#2257](https://github.com/prometheus/client_java/issues/2257))
([09e6e2d](https://github.com/prometheus/client_java/commit/09e6e2de9261122b2e03620f9c6264f389f2fd25))
* Summary quantiles collapsing for targeted quantiles with 2*epsilon
>= 1-quantile
([#2396](https://github.com/prometheus/client_java/issues/2396))
([9c7479f](https://github.com/prometheus/client_java/commit/9c7479fd11beadd70a7c7ea76d40b70f1e3dcc8c))
* update component-prefixed action tags
([#2419](https://github.com/prometheus/client_java/issues/2419))
([4acf481](https://github.com/prometheus/client_java/commit/4acf48149bc5e7f1e7ade2d0dbe123a48765c7c1))
### Performance Improvements
* skip snapshot rebuild in mergeDuplicates when names are unique
([#2441](https://github.com/prometheus/client_java/issues/2441))
([8722230](https://github.com/prometheus/client_java/commit/87222302c46c529c8a6f0c1b84fb787a5ba6a963))
### Documentation
* add API design guideline to contributing docs
([#2350](https://github.com/prometheus/client_java/issues/2350))
([23ae29a](https://github.com/prometheus/client_java/commit/23ae29aa71825c2a83abf249fc45cca2a46e3c8b))
* document scrape query limits in request API
([#2391](https://github.com/prometheus/client_java/issues/2391))
([ba8f5eb](https://github.com/prometheus/client_java/commit/ba8f5eb121cd4f68574c9657bf86cf42ae5edb93))
* document semantic PR title guidance
([#2318](https://github.com/prometheus/client_java/issues/2318))
([5e813a0](https://github.com/prometheus/client_java/commit/5e813a0a8cd488b678fcc55dca85bb8d5c84dbad))
---
> [!IMPORTANT]
> Close and reopen this PR to trigger CI checks.
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
---
.github/config/.release-please-manifest.json | 2 +-
CHANGELOG.md | 67 +++++++++++++++++++
benchmarks/pom.xml | 2 +-
examples/example-custom-buckets/pom.xml | 2 +-
.../example-greeting-service/pom.xml | 2 +-
.../example-hello-world-app/pom.xml | 2 +-
.../example-exemplars-tail-sampling/pom.xml | 2 +-
examples/example-exporter-httpserver/pom.xml | 2 +-
.../example-exporter-multi-target/pom.xml | 2 +-
.../example-exporter-opentelemetry/pom.xml | 2 +-
.../example-exporter-servlet-tomcat/pom.xml | 2 +-
examples/example-native-histogram/pom.xml | 2 +-
.../example-otel-jvm-runtime-metrics/pom.xml | 2 +-
.../example-prometheus-properties/pom.xml | 2 +-
examples/example-simpleclient-bridge/pom.xml | 2 +-
examples/pom.xml | 2 +-
integration-tests/it-common/pom.xml | 2 +-
.../pom.xml | 2 +-
.../it-exporter-httpserver-sample/pom.xml | 2 +-
.../it-exporter-no-protobuf/pom.xml | 2 +-
.../it-exporter-servlet-jetty-sample/pom.xml | 2 +-
.../it-exporter-servlet-tomcat-sample/pom.xml | 2 +-
.../it-exporter/it-exporter-test/pom.xml | 2 +-
.../it-exporter/it-no-protobuf-test/pom.xml | 2 +-
integration-tests/it-exporter/pom.xml | 2 +-
integration-tests/it-pushgateway/pom.xml | 2 +-
.../it-spring-boot-smoke-test/pom.xml | 2 +-
integration-tests/pom.xml | 2 +-
pom.xml | 2 +-
prometheus-metrics-annotations/pom.xml | 2 +-
prometheus-metrics-bom/pom.xml | 2 +-
prometheus-metrics-config/pom.xml | 2 +-
prometheus-metrics-core/pom.xml | 2 +-
prometheus-metrics-exporter-common/pom.xml | 2 +-
.../pom.xml | 2 +-
.../pom.xml | 2 +-
.../pom.xml | 2 +-
.../pom.xml | 2 +-
.../pom.xml | 2 +-
.../pom.xml | 2 +-
.../pom.xml | 2 +-
.../pom.xml | 2 +-
prometheus-metrics-exposition-formats/pom.xml | 2 +-
.../pom.xml | 2 +-
.../pom.xml | 2 +-
.../pom.xml | 2 +-
.../pom.xml | 2 +-
.../pom.xml | 2 +-
.../pom.xml | 2 +-
prometheus-metrics-model/pom.xml | 2 +-
prometheus-metrics-otel-support/pom.xml | 2 +-
prometheus-metrics-parent/pom.xml | 2 +-
.../pom.xml | 2 +-
prometheus-metrics-tracer/pom.xml | 2 +-
.../prometheus-metrics-tracer-common/pom.xml | 2 +-
.../pom.xml | 2 +-
.../pom.xml | 2 +-
.../prometheus-metrics-tracer-otel/pom.xml | 2 +-
.../integration_tests/it_common/pom.xml | 2 +-
.../it_exemplars_otel_agent/pom.xml | 2 +-
.../it_exemplars_otel_sdk/pom.xml | 2 +-
.../it_java_versions/pom.xml | 2 +-
.../integration_tests/it_log4j2/pom.xml | 2 +-
.../integration_tests/it_pushgateway/pom.xml | 2 +-
.../pom.xml | 2 +-
.../integration_tests/pom.xml | 2 +-
.../simpleclient_graphite_bridge/pom.xml | 2 +-
.../simpleclient_hibernate/pom.xml | 2 +-
.../simpleclient_httpserver/pom.xml | 2 +-
.../simpleclient_jetty/pom.xml | 2 +-
.../simpleclient_jetty_jdk8/pom.xml | 2 +-
.../simpleclient_log4j/pom.xml | 2 +-
.../simpleclient_log4j2/pom.xml | 2 +-
.../simpleclient_logback/pom.xml | 2 +-
.../simpleclient_servlet/pom.xml | 2 +-
.../simpleclient_servlet_common/pom.xml | 2 +-
.../simpleclient_servlet_jakarta/pom.xml | 2 +-
.../simpleclient_spring_web/pom.xml | 2 +-
.../simpleclient_vertx/pom.xml | 2 +-
.../simpleclient_vertx4/pom.xml | 2 +-
80 files changed, 146 insertions(+), 79 deletions(-)
diff --git a/.github/config/.release-please-manifest.json b/.github/config/.release-please-manifest.json
index 099626f4fc..4fcfdf7a7c 100644
--- a/.github/config/.release-please-manifest.json
+++ b/.github/config/.release-please-manifest.json
@@ -1,3 +1,3 @@
{
- ".": "1.8.0"
+ ".": "1.9.0"
}
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 81ba1f52ac..762f58eafe 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,72 @@
# Changelog
+## [1.9.0](https://github.com/prometheus/client_java/compare/v1.8.0...v1.9.0) (2026-09-16)
+
+
+### Features
+
+* support metric name filtering in OpenTelemetry exporter ([#2344](https://github.com/prometheus/client_java/issues/2344)) ([9b0ede8](https://github.com/prometheus/client_java/commit/9b0ede830fcf233fb9f9c4cb08ed91ef21fbd667))
+
+
+### Bug Fixes
+
+* avoid protobuf debug reflection in native images ([#2251](https://github.com/prometheus/client_java/issues/2251)) ([7f899e7](https://github.com/prometheus/client_java/commit/7f899e79ded325256bd0e444e33696b5f194700d))
+* bound HTTPServer request resources ([#2333](https://github.com/prometheus/client_java/issues/2333)) ([33ec556](https://github.com/prometheus/client_java/commit/33ec5565227ff60345496edf0186934fc39df25b))
+* bound observation buffering during collection ([#2336](https://github.com/prometheus/client_java/issues/2336)) ([43788f5](https://github.com/prometheus/client_java/commit/43788f583a9078b1be2dc81b22d8645461739523))
+* bound scrape query parameters ([#2334](https://github.com/prometheus/client_java/issues/2334)) ([27e1912](https://github.com/prometheus/client_java/commit/27e19125668227fac1f39599a93efa2d60cb41a5))
+* **ci:** skip benchmark report for skipped runs ([#2422](https://github.com/prometheus/client_java/issues/2422)) ([40eddb0](https://github.com/prometheus/client_java/commit/40eddb060f21054a439bf07961cf55473cb35507))
+* clarify benchmark regression report verdicts ([#2394](https://github.com/prometheus/client_java/issues/2394)) ([e5fa067](https://github.com/prometheus/client_java/commit/e5fa067fec3e07270ebd273cb6903b1f819b1bc6))
+* **deps:** update dependency com.google.guava:guava to v33.7.0-jre ([#2387](https://github.com/prometheus/client_java/issues/2387)) ([bf0db49](https://github.com/prometheus/client_java/commit/bf0db49a9f921d1372edbe0eab554ec50743cd77))
+* **deps:** update dependency io.dropwizard.metrics:metrics-core to v4.2.40 ([#2432](https://github.com/prometheus/client_java/issues/2432)) ([dd88326](https://github.com/prometheus/client_java/commit/dd88326fa9113aadf55627856d788deda42982d8))
+* **deps:** update dependency io.dropwizard.metrics5:metrics-core to v5.0.8 ([#2433](https://github.com/prometheus/client_java/issues/2433)) ([42f3c8a](https://github.com/prometheus/client_java/commit/42f3c8a0d11af4bc5afa84c79b4de7dc16d32e6e))
+* **deps:** update dependency io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha to v2.29.0-alpha ([#2235](https://github.com/prometheus/client_java/issues/2235)) ([cf9f702](https://github.com/prometheus/client_java/commit/cf9f70219e103c6004d8c315fdcfab2cfd7c447d))
+* **deps:** update dependency io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha to v2.30.0-alpha ([#2328](https://github.com/prometheus/client_java/issues/2328)) ([1ca2716](https://github.com/prometheus/client_java/commit/1ca27164b646266a10ead6ad1e2e6b5648567b2f))
+* **deps:** update dependency io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha to v2.30.0-alpha ([#2330](https://github.com/prometheus/client_java/issues/2330)) ([07623c1](https://github.com/prometheus/client_java/commit/07623c14dedfeffed3eace5b8718127add250668))
+* **deps:** update dependency io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha to v2.31.0-alpha ([#2401](https://github.com/prometheus/client_java/issues/2401)) ([6c26619](https://github.com/prometheus/client_java/commit/6c2661975277a04b6931e8063c3123ac0cf16a69))
+* **deps:** update dependency io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha to v2.31.0-alpha ([#2402](https://github.com/prometheus/client_java/issues/2402)) ([ac0d68a](https://github.com/prometheus/client_java/commit/ac0d68a62886473ac4afd736602760e97024b528))
+* **deps:** update dependency io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha to v2.31.1-alpha ([#2409](https://github.com/prometheus/client_java/issues/2409)) ([5eea652](https://github.com/prometheus/client_java/commit/5eea652d80b0c5fdfce1f7e071cdd55cc624ce01))
+* **deps:** update dependency io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha to v2.31.1-alpha ([#2410](https://github.com/prometheus/client_java/issues/2410)) ([0bcef89](https://github.com/prometheus/client_java/commit/0bcef891b2ada3d684266b6cbaf5d373ece7cd84))
+* **deps:** update dependency org.apache.tomcat.embed:tomcat-embed-core to v11.0.23 ([#2241](https://github.com/prometheus/client_java/issues/2241)) ([a017f80](https://github.com/prometheus/client_java/commit/a017f80980d91a5fa8ffe930c820f836c3d1b2ff))
+* **deps:** update dependency org.apache.tomcat.embed:tomcat-embed-core to v11.0.24 ([#2294](https://github.com/prometheus/client_java/issues/2294)) ([63967bd](https://github.com/prometheus/client_java/commit/63967bd36ebc638234742ec58ad28f6098a92b3a))
+* **deps:** update dependency org.apache.tomcat.embed:tomcat-embed-core to v11.0.25 ([#2389](https://github.com/prometheus/client_java/issues/2389)) ([92f8344](https://github.com/prometheus/client_java/commit/92f834476837cab3d281d4b435937e11a2ff7729))
+* **deps:** update dependency org.apache.tomcat.embed:tomcat-embed-core to v11.0.26 ([#2477](https://github.com/prometheus/client_java/issues/2477)) ([05146c0](https://github.com/prometheus/client_java/commit/05146c03858be86fcd88d5d0a90a1073d4e29ec9))
+* **deps:** update dependency org.springframework.boot:spring-boot-starter-parent to v4.1.1 ([#2399](https://github.com/prometheus/client_java/issues/2399)) ([a0b0880](https://github.com/prometheus/client_java/commit/a0b0880cecf00484d610b529a7ffbb5b2c98a65e))
+* **deps:** update jetty monorepo to v12.1.11 ([#2279](https://github.com/prometheus/client_java/issues/2279)) ([4dc54da](https://github.com/prometheus/client_java/commit/4dc54da0c5b768fd66710bd3736b95116df445c5))
+* **deps:** update jetty monorepo to v12.1.12 ([#2371](https://github.com/prometheus/client_java/issues/2371)) ([08967e0](https://github.com/prometheus/client_java/commit/08967e0aca1442935f2052f59f10df66c807ca0b))
+* **deps:** update jetty monorepo to v12.1.13 ([#2459](https://github.com/prometheus/client_java/issues/2459)) ([b217f05](https://github.com/prometheus/client_java/commit/b217f0529e7c2ee11a3883684d767e3744ec7304))
+* **deps:** update junit-framework monorepo to v6.1.2 ([#2300](https://github.com/prometheus/client_java/issues/2300)) ([5966d1d](https://github.com/prometheus/client_java/commit/5966d1d4fdfc30e3a7eb09b0a88da5b2e9dc07c5))
+* **deps:** update junit-framework monorepo to v6.1.3 ([#2374](https://github.com/prometheus/client_java/issues/2374)) ([d1ade52](https://github.com/prometheus/client_java/commit/d1ade5280bdc613d3c7fc5f231ead1e2dca9882e))
+* **deps:** update otel.instrumentation.version ([#2236](https://github.com/prometheus/client_java/issues/2236)) ([158230d](https://github.com/prometheus/client_java/commit/158230d2418a0b6d1b80c590e8fc63c9e444072c))
+* **deps:** update protobuf ([#2400](https://github.com/prometheus/client_java/issues/2400)) ([e2db1ed](https://github.com/prometheus/client_java/commit/e2db1edadbfd87cf284ff72ab7c333d742866d9c))
+* **deps:** update protobuf ([#2438](https://github.com/prometheus/client_java/issues/2438)) ([8ad6fa8](https://github.com/prometheus/client_java/commit/8ad6fa846ab557a020f8805eb5515b0773f11068))
+* **deps:** update protobuf to v4.35.1 ([#2221](https://github.com/prometheus/client_java/issues/2221)) ([cf17073](https://github.com/prometheus/client_java/commit/cf17073eebbdf67bc67dcbea2af30f27a0190079))
+* disable micrometer compat build cache ([#2457](https://github.com/prometheus/client_java/issues/2457)) ([6a40eda](https://github.com/prometheus/client_java/commit/6a40eda1af7dceda5b1f6e1dd9f8aabbce5a189f))
+* drop +Inf bound from OpenTelemetry classic histogram boundaries ([#2458](https://github.com/prometheus/client_java/issues/2458)) ([a3bce9a](https://github.com/prometheus/client_java/commit/a3bce9aafebefedd5020c81965e89c0c608ed9d8))
+* **exposition:** export internal package for OSGi resolution ([#2415](https://github.com/prometheus/client_java/issues/2415)) ([28b503d](https://github.com/prometheus/client_java/commit/28b503df2e9da44a4e26a09f97ed5dfcdca3b19b))
+* **httpserver:** make scrape error responses secure and configurable ([f6d9df5](https://github.com/prometheus/client_java/commit/f6d9df52bc022bfabaa82fd67375f529e4371038))
+* include counter names in negative value errors ([#2315](https://github.com/prometheus/client_java/issues/2315)) ([ea8f935](https://github.com/prometheus/client_java/commit/ea8f935c2112bf511210a065d74e6e3292067e9f))
+* include license files in release source jars ([#2250](https://github.com/prometheus/client_java/issues/2250)) ([08cf925](https://github.com/prometheus/client_java/commit/08cf925b564247a497437e29e4a64ebb335cd328)), closes [#2216](https://github.com/prometheus/client_java/issues/2216)
+* keep late observations out of subsequent collection buffers ([#2471](https://github.com/prometheus/client_java/issues/2471)) ([d78b149](https://github.com/prometheus/client_java/commit/d78b149c8d25bb3ad967e41b4682f8a23423a9f2))
+* keep PR title check required after rebases ([#2414](https://github.com/prometheus/client_java/issues/2414)) ([e3d4c3b](https://github.com/prometheus/client_java/commit/e3d4c3ba66b1e92078cd2f1c8ccc38a803ac3a07))
+* prevent buffer stripe index overflow ([#2331](https://github.com/prometheus/client_java/issues/2331)) ([b6cd000](https://github.com/prometheus/client_java/commit/b6cd000a39f9bbf78cf0ae1209c60910219c9cbf))
+* redact invalid configuration values ([#2335](https://github.com/prometheus/client_java/issues/2335)) ([7e7e533](https://github.com/prometheus/client_java/commit/7e7e53364496a1dd6d21d2c01c59219166d7826d))
+* show uncertainty in benchmark comparisons ([#2476](https://github.com/prometheus/client_java/issues/2476)) ([398d087](https://github.com/prometheus/client_java/commit/398d0872d640d879e9d7207c88ad468b4c170ba9))
+* stabilize OpenTelemetry exporter builder API ([#2257](https://github.com/prometheus/client_java/issues/2257)) ([09e6e2d](https://github.com/prometheus/client_java/commit/09e6e2de9261122b2e03620f9c6264f389f2fd25))
+* Summary quantiles collapsing for targeted quantiles with 2*epsilon >= 1-quantile ([#2396](https://github.com/prometheus/client_java/issues/2396)) ([9c7479f](https://github.com/prometheus/client_java/commit/9c7479fd11beadd70a7c7ea76d40b70f1e3dcc8c))
+* update component-prefixed action tags ([#2419](https://github.com/prometheus/client_java/issues/2419)) ([4acf481](https://github.com/prometheus/client_java/commit/4acf48149bc5e7f1e7ade2d0dbe123a48765c7c1))
+
+
+### Performance Improvements
+
+* skip snapshot rebuild in mergeDuplicates when names are unique ([#2441](https://github.com/prometheus/client_java/issues/2441)) ([8722230](https://github.com/prometheus/client_java/commit/87222302c46c529c8a6f0c1b84fb787a5ba6a963))
+
+
+### Documentation
+
+* add API design guideline to contributing docs ([#2350](https://github.com/prometheus/client_java/issues/2350)) ([23ae29a](https://github.com/prometheus/client_java/commit/23ae29aa71825c2a83abf249fc45cca2a46e3c8b))
+* document scrape query limits in request API ([#2391](https://github.com/prometheus/client_java/issues/2391)) ([ba8f5eb](https://github.com/prometheus/client_java/commit/ba8f5eb121cd4f68574c9657bf86cf42ae5edb93))
+* document semantic PR title guidance ([#2318](https://github.com/prometheus/client_java/issues/2318)) ([5e813a0](https://github.com/prometheus/client_java/commit/5e813a0a8cd488b678fcc55dca85bb8d5c84dbad))
+
## [1.8.0](https://github.com/prometheus/client_java/compare/v1.7.0...v1.8.0) (2026-06-11)
diff --git a/benchmarks/pom.xml b/benchmarks/pom.xml
index 6d8c9c5c45..763339d7ba 100644
--- a/benchmarks/pom.xml
+++ b/benchmarks/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.8.1-SNAPSHOT
+ 1.9.0benchmarks
diff --git a/examples/example-custom-buckets/pom.xml b/examples/example-custom-buckets/pom.xml
index 2436e179fb..c6e1c6b2b2 100644
--- a/examples/example-custom-buckets/pom.xml
+++ b/examples/example-custom-buckets/pom.xml
@@ -4,7 +4,7 @@
io.prometheusexample-custom-buckets
- 1.8.1-SNAPSHOT
+ 1.9.08
diff --git a/examples/example-exemplars-tail-sampling/example-greeting-service/pom.xml b/examples/example-exemplars-tail-sampling/example-greeting-service/pom.xml
index 4b91a5d7bc..f3e8a8fceb 100644
--- a/examples/example-exemplars-tail-sampling/example-greeting-service/pom.xml
+++ b/examples/example-exemplars-tail-sampling/example-greeting-service/pom.xml
@@ -4,7 +4,7 @@
io.prometheusexample-greeting-service
- 1.8.1-SNAPSHOT
+ 1.9.017
diff --git a/examples/example-exemplars-tail-sampling/example-hello-world-app/pom.xml b/examples/example-exemplars-tail-sampling/example-hello-world-app/pom.xml
index c2162208e4..bbb750f9bd 100644
--- a/examples/example-exemplars-tail-sampling/example-hello-world-app/pom.xml
+++ b/examples/example-exemplars-tail-sampling/example-hello-world-app/pom.xml
@@ -4,7 +4,7 @@
io.prometheusexample-hello-world-app
- 1.8.1-SNAPSHOT
+ 1.9.017
diff --git a/examples/example-exemplars-tail-sampling/pom.xml b/examples/example-exemplars-tail-sampling/pom.xml
index 24df1f9e58..209dbc7135 100644
--- a/examples/example-exemplars-tail-sampling/pom.xml
+++ b/examples/example-exemplars-tail-sampling/pom.xml
@@ -4,7 +4,7 @@
io.prometheusexample-exemplars-tail-sampling
- 1.8.1-SNAPSHOT
+ 1.9.0pomExample - Exemplars with OpenTelemetry's Tail Sampling
diff --git a/examples/example-exporter-httpserver/pom.xml b/examples/example-exporter-httpserver/pom.xml
index cda7dad6e6..1550e64ed6 100644
--- a/examples/example-exporter-httpserver/pom.xml
+++ b/examples/example-exporter-httpserver/pom.xml
@@ -4,7 +4,7 @@
io.prometheusexample-exporter-httpserver
- 1.8.1-SNAPSHOT
+ 1.9.08
diff --git a/examples/example-exporter-multi-target/pom.xml b/examples/example-exporter-multi-target/pom.xml
index 0457a75919..fc3b511cee 100644
--- a/examples/example-exporter-multi-target/pom.xml
+++ b/examples/example-exporter-multi-target/pom.xml
@@ -4,7 +4,7 @@
io.prometheusexample-exporter-multi-target
- 1.8.1-SNAPSHOT
+ 1.9.08
diff --git a/examples/example-exporter-opentelemetry/pom.xml b/examples/example-exporter-opentelemetry/pom.xml
index 3bfec61437..b6dd6a4b1d 100644
--- a/examples/example-exporter-opentelemetry/pom.xml
+++ b/examples/example-exporter-opentelemetry/pom.xml
@@ -4,7 +4,7 @@
io.prometheusexample-exporter-opentelemetry
- 1.8.1-SNAPSHOT
+ 1.9.08
diff --git a/examples/example-exporter-servlet-tomcat/pom.xml b/examples/example-exporter-servlet-tomcat/pom.xml
index eb11dbf535..c111716e5b 100644
--- a/examples/example-exporter-servlet-tomcat/pom.xml
+++ b/examples/example-exporter-servlet-tomcat/pom.xml
@@ -4,7 +4,7 @@
io.prometheusexample-exporter-servlet-tomcat
- 1.8.1-SNAPSHOT
+ 1.9.017
diff --git a/examples/example-native-histogram/pom.xml b/examples/example-native-histogram/pom.xml
index ab0045e882..0006475c48 100644
--- a/examples/example-native-histogram/pom.xml
+++ b/examples/example-native-histogram/pom.xml
@@ -4,7 +4,7 @@
io.prometheusexample-native-histogram
- 1.8.1-SNAPSHOT
+ 1.9.08
diff --git a/examples/example-otel-jvm-runtime-metrics/pom.xml b/examples/example-otel-jvm-runtime-metrics/pom.xml
index 32ee97d061..46c132325e 100644
--- a/examples/example-otel-jvm-runtime-metrics/pom.xml
+++ b/examples/example-otel-jvm-runtime-metrics/pom.xml
@@ -4,7 +4,7 @@
io.prometheusexample-otel-jvm-runtime-metrics
- 1.8.1-SNAPSHOT
+ 1.9.08
diff --git a/examples/example-prometheus-properties/pom.xml b/examples/example-prometheus-properties/pom.xml
index 3bf352d163..31cf629415 100644
--- a/examples/example-prometheus-properties/pom.xml
+++ b/examples/example-prometheus-properties/pom.xml
@@ -4,7 +4,7 @@
io.prometheusexample-prometheus-properties
- 1.8.1-SNAPSHOT
+ 1.9.08
diff --git a/examples/example-simpleclient-bridge/pom.xml b/examples/example-simpleclient-bridge/pom.xml
index 0f8bf496a2..267fae239f 100644
--- a/examples/example-simpleclient-bridge/pom.xml
+++ b/examples/example-simpleclient-bridge/pom.xml
@@ -4,7 +4,7 @@
io.prometheusexample-simpleclient-bridge
- 1.8.1-SNAPSHOT
+ 1.9.08
diff --git a/examples/pom.xml b/examples/pom.xml
index 80594e550b..9af5c13569 100644
--- a/examples/pom.xml
+++ b/examples/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.8.1-SNAPSHOT
+ 1.9.0examples
diff --git a/integration-tests/it-common/pom.xml b/integration-tests/it-common/pom.xml
index 9a4895f1c4..5be4bf277a 100644
--- a/integration-tests/it-common/pom.xml
+++ b/integration-tests/it-common/pom.xml
@@ -5,7 +5,7 @@
io.prometheusintegration-tests
- 1.8.1-SNAPSHOT
+ 1.9.0it-common
diff --git a/integration-tests/it-exporter/it-exporter-duplicate-metrics-sample/pom.xml b/integration-tests/it-exporter/it-exporter-duplicate-metrics-sample/pom.xml
index e0c05f7f8f..dc140ba790 100644
--- a/integration-tests/it-exporter/it-exporter-duplicate-metrics-sample/pom.xml
+++ b/integration-tests/it-exporter/it-exporter-duplicate-metrics-sample/pom.xml
@@ -5,7 +5,7 @@
io.prometheusit-exporter
- 1.8.1-SNAPSHOT
+ 1.9.0it-exporter-duplicate-metrics-sample
diff --git a/integration-tests/it-exporter/it-exporter-httpserver-sample/pom.xml b/integration-tests/it-exporter/it-exporter-httpserver-sample/pom.xml
index 5255122dd6..b90b537b04 100644
--- a/integration-tests/it-exporter/it-exporter-httpserver-sample/pom.xml
+++ b/integration-tests/it-exporter/it-exporter-httpserver-sample/pom.xml
@@ -5,7 +5,7 @@
io.prometheusit-exporter
- 1.8.1-SNAPSHOT
+ 1.9.0it-exporter-httpserver-sample
diff --git a/integration-tests/it-exporter/it-exporter-no-protobuf/pom.xml b/integration-tests/it-exporter/it-exporter-no-protobuf/pom.xml
index 0193d414f6..abc1567223 100644
--- a/integration-tests/it-exporter/it-exporter-no-protobuf/pom.xml
+++ b/integration-tests/it-exporter/it-exporter-no-protobuf/pom.xml
@@ -5,7 +5,7 @@
io.prometheusit-exporter
- 1.8.1-SNAPSHOT
+ 1.9.0it-exporter-no-protobuf
diff --git a/integration-tests/it-exporter/it-exporter-servlet-jetty-sample/pom.xml b/integration-tests/it-exporter/it-exporter-servlet-jetty-sample/pom.xml
index 4054662f74..7e03dc1877 100644
--- a/integration-tests/it-exporter/it-exporter-servlet-jetty-sample/pom.xml
+++ b/integration-tests/it-exporter/it-exporter-servlet-jetty-sample/pom.xml
@@ -5,7 +5,7 @@
io.prometheusit-exporter
- 1.8.1-SNAPSHOT
+ 1.9.0it-exporter-servlet-jetty-sample
diff --git a/integration-tests/it-exporter/it-exporter-servlet-tomcat-sample/pom.xml b/integration-tests/it-exporter/it-exporter-servlet-tomcat-sample/pom.xml
index ae823f2446..4d85ba98e3 100644
--- a/integration-tests/it-exporter/it-exporter-servlet-tomcat-sample/pom.xml
+++ b/integration-tests/it-exporter/it-exporter-servlet-tomcat-sample/pom.xml
@@ -5,7 +5,7 @@
io.prometheusit-exporter
- 1.8.1-SNAPSHOT
+ 1.9.0it-exporter-servlet-tomcat-sample
diff --git a/integration-tests/it-exporter/it-exporter-test/pom.xml b/integration-tests/it-exporter/it-exporter-test/pom.xml
index 9620db3702..39eddae9a9 100644
--- a/integration-tests/it-exporter/it-exporter-test/pom.xml
+++ b/integration-tests/it-exporter/it-exporter-test/pom.xml
@@ -5,7 +5,7 @@
io.prometheusit-exporter
- 1.8.1-SNAPSHOT
+ 1.9.0it-exporter-test
diff --git a/integration-tests/it-exporter/it-no-protobuf-test/pom.xml b/integration-tests/it-exporter/it-no-protobuf-test/pom.xml
index 313cefe7bc..d1a0e2fda9 100644
--- a/integration-tests/it-exporter/it-no-protobuf-test/pom.xml
+++ b/integration-tests/it-exporter/it-no-protobuf-test/pom.xml
@@ -5,7 +5,7 @@
io.prometheusit-exporter
- 1.8.1-SNAPSHOT
+ 1.9.0it-no-protobuf-test
diff --git a/integration-tests/it-exporter/pom.xml b/integration-tests/it-exporter/pom.xml
index b759c4330b..23e8f5c3d6 100644
--- a/integration-tests/it-exporter/pom.xml
+++ b/integration-tests/it-exporter/pom.xml
@@ -5,7 +5,7 @@
io.prometheusintegration-tests
- 1.8.1-SNAPSHOT
+ 1.9.0it-exporter
diff --git a/integration-tests/it-pushgateway/pom.xml b/integration-tests/it-pushgateway/pom.xml
index bfc73ab10a..fcdba5a674 100644
--- a/integration-tests/it-pushgateway/pom.xml
+++ b/integration-tests/it-pushgateway/pom.xml
@@ -5,7 +5,7 @@
io.prometheusintegration-tests
- 1.8.1-SNAPSHOT
+ 1.9.0it-pushgateway
diff --git a/integration-tests/it-spring-boot-smoke-test/pom.xml b/integration-tests/it-spring-boot-smoke-test/pom.xml
index 4879b36b02..1900183fb8 100644
--- a/integration-tests/it-spring-boot-smoke-test/pom.xml
+++ b/integration-tests/it-spring-boot-smoke-test/pom.xml
@@ -12,7 +12,7 @@
io.prometheusit-spring-boot-smoke-test
- 1.8.1-SNAPSHOT
+ 1.9.0Integration Test - Spring Smoke Tests
diff --git a/integration-tests/pom.xml b/integration-tests/pom.xml
index c3f299d690..0a8aadd846 100644
--- a/integration-tests/pom.xml
+++ b/integration-tests/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.8.1-SNAPSHOT
+ 1.9.0integration-tests
diff --git a/pom.xml b/pom.xml
index 2b43285c63..91a524f7ba 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
io.prometheusclient_java_parent
- 1.8.1-SNAPSHOT
+ 1.9.0prometheus-metrics-parent/pom.xml
diff --git a/prometheus-metrics-annotations/pom.xml b/prometheus-metrics-annotations/pom.xml
index 3552a8ddb7..10f6d784ba 100644
--- a/prometheus-metrics-annotations/pom.xml
+++ b/prometheus-metrics-annotations/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.8.1-SNAPSHOT
+ 1.9.0prometheus-metrics-annotations
diff --git a/prometheus-metrics-bom/pom.xml b/prometheus-metrics-bom/pom.xml
index c2c9935f70..86fc4d52d1 100644
--- a/prometheus-metrics-bom/pom.xml
+++ b/prometheus-metrics-bom/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java_parent
- 1.8.1-SNAPSHOT
+ 1.9.0../prometheus-metrics-parent/pom.xml
diff --git a/prometheus-metrics-config/pom.xml b/prometheus-metrics-config/pom.xml
index 681f4a5578..c97c491e27 100644
--- a/prometheus-metrics-config/pom.xml
+++ b/prometheus-metrics-config/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.8.1-SNAPSHOT
+ 1.9.0prometheus-metrics-config
diff --git a/prometheus-metrics-core/pom.xml b/prometheus-metrics-core/pom.xml
index 236a3d34a8..b4c16ea617 100644
--- a/prometheus-metrics-core/pom.xml
+++ b/prometheus-metrics-core/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.8.1-SNAPSHOT
+ 1.9.0prometheus-metrics-core
diff --git a/prometheus-metrics-exporter-common/pom.xml b/prometheus-metrics-exporter-common/pom.xml
index 9fb2b96216..959e121224 100644
--- a/prometheus-metrics-exporter-common/pom.xml
+++ b/prometheus-metrics-exporter-common/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.8.1-SNAPSHOT
+ 1.9.0prometheus-metrics-exporter-common
diff --git a/prometheus-metrics-exporter-httpserver/pom.xml b/prometheus-metrics-exporter-httpserver/pom.xml
index cca3c09e29..30f9635df7 100644
--- a/prometheus-metrics-exporter-httpserver/pom.xml
+++ b/prometheus-metrics-exporter-httpserver/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.8.1-SNAPSHOT
+ 1.9.0prometheus-metrics-exporter-httpserver
diff --git a/prometheus-metrics-exporter-opentelemetry-otel-agent-resources/pom.xml b/prometheus-metrics-exporter-opentelemetry-otel-agent-resources/pom.xml
index b40b127828..959680eae1 100644
--- a/prometheus-metrics-exporter-opentelemetry-otel-agent-resources/pom.xml
+++ b/prometheus-metrics-exporter-opentelemetry-otel-agent-resources/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.8.1-SNAPSHOT
+ 1.9.0prometheus-metrics-exporter-opentelemetry-otel-agent-resources
diff --git a/prometheus-metrics-exporter-opentelemetry-shaded/pom.xml b/prometheus-metrics-exporter-opentelemetry-shaded/pom.xml
index 5f8eca6ea9..99cf03ffca 100644
--- a/prometheus-metrics-exporter-opentelemetry-shaded/pom.xml
+++ b/prometheus-metrics-exporter-opentelemetry-shaded/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.8.1-SNAPSHOT
+ 1.9.0prometheus-metrics-exporter-opentelemetry
diff --git a/prometheus-metrics-exporter-opentelemetry/pom.xml b/prometheus-metrics-exporter-opentelemetry/pom.xml
index e2845631bf..cd4fd538d8 100644
--- a/prometheus-metrics-exporter-opentelemetry/pom.xml
+++ b/prometheus-metrics-exporter-opentelemetry/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.8.1-SNAPSHOT
+ 1.9.0prometheus-metrics-exporter-opentelemetry-no-otel
diff --git a/prometheus-metrics-exporter-pushgateway/pom.xml b/prometheus-metrics-exporter-pushgateway/pom.xml
index 13e9c4b8eb..34626053fc 100644
--- a/prometheus-metrics-exporter-pushgateway/pom.xml
+++ b/prometheus-metrics-exporter-pushgateway/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.8.1-SNAPSHOT
+ 1.9.0prometheus-metrics-exporter-pushgateway
diff --git a/prometheus-metrics-exporter-servlet-jakarta/pom.xml b/prometheus-metrics-exporter-servlet-jakarta/pom.xml
index 877431e562..5631651bbc 100644
--- a/prometheus-metrics-exporter-servlet-jakarta/pom.xml
+++ b/prometheus-metrics-exporter-servlet-jakarta/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.8.1-SNAPSHOT
+ 1.9.0prometheus-metrics-exporter-servlet-jakarta
diff --git a/prometheus-metrics-exporter-servlet-javax/pom.xml b/prometheus-metrics-exporter-servlet-javax/pom.xml
index 701d178d9e..795fe00085 100644
--- a/prometheus-metrics-exporter-servlet-javax/pom.xml
+++ b/prometheus-metrics-exporter-servlet-javax/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.8.1-SNAPSHOT
+ 1.9.0prometheus-metrics-exporter-servlet-javax
diff --git a/prometheus-metrics-exposition-formats-shaded/pom.xml b/prometheus-metrics-exposition-formats-shaded/pom.xml
index 849000be6e..f2ddb5db15 100644
--- a/prometheus-metrics-exposition-formats-shaded/pom.xml
+++ b/prometheus-metrics-exposition-formats-shaded/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.8.1-SNAPSHOT
+ 1.9.0prometheus-metrics-exposition-formats
diff --git a/prometheus-metrics-exposition-formats/pom.xml b/prometheus-metrics-exposition-formats/pom.xml
index 2f93f4cc86..f5514cb9f9 100644
--- a/prometheus-metrics-exposition-formats/pom.xml
+++ b/prometheus-metrics-exposition-formats/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.8.1-SNAPSHOT
+ 1.9.0prometheus-metrics-exposition-formats-no-protobuf
diff --git a/prometheus-metrics-exposition-textformats/pom.xml b/prometheus-metrics-exposition-textformats/pom.xml
index 2a7c2f4b83..439c00664c 100644
--- a/prometheus-metrics-exposition-textformats/pom.xml
+++ b/prometheus-metrics-exposition-textformats/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.8.1-SNAPSHOT
+ 1.9.0prometheus-metrics-exposition-textformats
diff --git a/prometheus-metrics-instrumentation-caffeine/pom.xml b/prometheus-metrics-instrumentation-caffeine/pom.xml
index 9712a4a1ba..49f6abcd68 100644
--- a/prometheus-metrics-instrumentation-caffeine/pom.xml
+++ b/prometheus-metrics-instrumentation-caffeine/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.8.1-SNAPSHOT
+ 1.9.0prometheus-metrics-instrumentation-caffeine
diff --git a/prometheus-metrics-instrumentation-dropwizard/pom.xml b/prometheus-metrics-instrumentation-dropwizard/pom.xml
index acdda3424b..3dea563986 100644
--- a/prometheus-metrics-instrumentation-dropwizard/pom.xml
+++ b/prometheus-metrics-instrumentation-dropwizard/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.8.1-SNAPSHOT
+ 1.9.0prometheus-metrics-instrumentation-dropwizard
diff --git a/prometheus-metrics-instrumentation-dropwizard5/pom.xml b/prometheus-metrics-instrumentation-dropwizard5/pom.xml
index e798952be4..c24018b635 100644
--- a/prometheus-metrics-instrumentation-dropwizard5/pom.xml
+++ b/prometheus-metrics-instrumentation-dropwizard5/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.8.1-SNAPSHOT
+ 1.9.0prometheus-metrics-instrumentation-dropwizard5
diff --git a/prometheus-metrics-instrumentation-guava/pom.xml b/prometheus-metrics-instrumentation-guava/pom.xml
index fa2de2864a..c5cc13bcdd 100644
--- a/prometheus-metrics-instrumentation-guava/pom.xml
+++ b/prometheus-metrics-instrumentation-guava/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.8.1-SNAPSHOT
+ 1.9.0prometheus-metrics-instrumentation-guava
diff --git a/prometheus-metrics-instrumentation-jvm/pom.xml b/prometheus-metrics-instrumentation-jvm/pom.xml
index c9916b874e..6fca024484 100644
--- a/prometheus-metrics-instrumentation-jvm/pom.xml
+++ b/prometheus-metrics-instrumentation-jvm/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.8.1-SNAPSHOT
+ 1.9.0prometheus-metrics-instrumentation-jvm
diff --git a/prometheus-metrics-model/pom.xml b/prometheus-metrics-model/pom.xml
index 7d377c0435..2e1a22885f 100644
--- a/prometheus-metrics-model/pom.xml
+++ b/prometheus-metrics-model/pom.xml
@@ -6,7 +6,7 @@
io.prometheusclient_java
- 1.8.1-SNAPSHOT
+ 1.9.0prometheus-metrics-model
diff --git a/prometheus-metrics-otel-support/pom.xml b/prometheus-metrics-otel-support/pom.xml
index 0365c4695a..f63edc5132 100644
--- a/prometheus-metrics-otel-support/pom.xml
+++ b/prometheus-metrics-otel-support/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.8.1-SNAPSHOT
+ 1.9.0prometheus-metrics-otel-support
diff --git a/prometheus-metrics-parent/pom.xml b/prometheus-metrics-parent/pom.xml
index 2c7b8e147e..a298a8f31d 100644
--- a/prometheus-metrics-parent/pom.xml
+++ b/prometheus-metrics-parent/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java_parent
- 1.8.1-SNAPSHOT
+ 1.9.0Prometheus Metrics Library Parenthttp://github.com/prometheus/client_java
diff --git a/prometheus-metrics-simpleclient-bridge/pom.xml b/prometheus-metrics-simpleclient-bridge/pom.xml
index e40e042750..19f58e0070 100644
--- a/prometheus-metrics-simpleclient-bridge/pom.xml
+++ b/prometheus-metrics-simpleclient-bridge/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.8.1-SNAPSHOT
+ 1.9.0prometheus-metrics-simpleclient-bridge
diff --git a/prometheus-metrics-tracer/pom.xml b/prometheus-metrics-tracer/pom.xml
index 7ba9fe6f5a..81af60c252 100644
--- a/prometheus-metrics-tracer/pom.xml
+++ b/prometheus-metrics-tracer/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.8.1-SNAPSHOT
+ 1.9.0prometheus-metrics-tracer
diff --git a/prometheus-metrics-tracer/prometheus-metrics-tracer-common/pom.xml b/prometheus-metrics-tracer/prometheus-metrics-tracer-common/pom.xml
index 6087f34314..c7da445c62 100644
--- a/prometheus-metrics-tracer/prometheus-metrics-tracer-common/pom.xml
+++ b/prometheus-metrics-tracer/prometheus-metrics-tracer-common/pom.xml
@@ -5,7 +5,7 @@
io.prometheusprometheus-metrics-tracer
- 1.8.1-SNAPSHOT
+ 1.9.0prometheus-metrics-tracer-common
diff --git a/prometheus-metrics-tracer/prometheus-metrics-tracer-initializer/pom.xml b/prometheus-metrics-tracer/prometheus-metrics-tracer-initializer/pom.xml
index 7ff43b009b..4d9f9eb9ec 100644
--- a/prometheus-metrics-tracer/prometheus-metrics-tracer-initializer/pom.xml
+++ b/prometheus-metrics-tracer/prometheus-metrics-tracer-initializer/pom.xml
@@ -5,7 +5,7 @@
io.prometheusprometheus-metrics-tracer
- 1.8.1-SNAPSHOT
+ 1.9.0prometheus-metrics-tracer-initializer
diff --git a/prometheus-metrics-tracer/prometheus-metrics-tracer-otel-agent/pom.xml b/prometheus-metrics-tracer/prometheus-metrics-tracer-otel-agent/pom.xml
index f16bca4c60..fc7a8160e8 100644
--- a/prometheus-metrics-tracer/prometheus-metrics-tracer-otel-agent/pom.xml
+++ b/prometheus-metrics-tracer/prometheus-metrics-tracer-otel-agent/pom.xml
@@ -5,7 +5,7 @@
io.prometheusprometheus-metrics-tracer
- 1.8.1-SNAPSHOT
+ 1.9.0prometheus-metrics-tracer-otel-agent
diff --git a/prometheus-metrics-tracer/prometheus-metrics-tracer-otel/pom.xml b/prometheus-metrics-tracer/prometheus-metrics-tracer-otel/pom.xml
index 37f0e79b83..7804185b33 100644
--- a/prometheus-metrics-tracer/prometheus-metrics-tracer-otel/pom.xml
+++ b/prometheus-metrics-tracer/prometheus-metrics-tracer-otel/pom.xml
@@ -5,7 +5,7 @@
io.prometheusprometheus-metrics-tracer
- 1.8.1-SNAPSHOT
+ 1.9.0prometheus-metrics-tracer-otel
diff --git a/simpleclient-archive/integration_tests/it_common/pom.xml b/simpleclient-archive/integration_tests/it_common/pom.xml
index ec9d5ad1c5..8b506947a0 100644
--- a/simpleclient-archive/integration_tests/it_common/pom.xml
+++ b/simpleclient-archive/integration_tests/it_common/pom.xml
@@ -5,7 +5,7 @@
io.prometheusintegration_tests
- 1.8.1-SNAPSHOT
+ 1.9.0it_common
diff --git a/simpleclient-archive/integration_tests/it_exemplars_otel_agent/pom.xml b/simpleclient-archive/integration_tests/it_exemplars_otel_agent/pom.xml
index a56cd25d40..eabd731a9a 100644
--- a/simpleclient-archive/integration_tests/it_exemplars_otel_agent/pom.xml
+++ b/simpleclient-archive/integration_tests/it_exemplars_otel_agent/pom.xml
@@ -5,7 +5,7 @@
io.prometheusintegration_tests
- 1.8.1-SNAPSHOT
+ 1.9.0it_exemplars_otel_agent
diff --git a/simpleclient-archive/integration_tests/it_exemplars_otel_sdk/pom.xml b/simpleclient-archive/integration_tests/it_exemplars_otel_sdk/pom.xml
index fbea39601d..fd1a2ea950 100644
--- a/simpleclient-archive/integration_tests/it_exemplars_otel_sdk/pom.xml
+++ b/simpleclient-archive/integration_tests/it_exemplars_otel_sdk/pom.xml
@@ -5,7 +5,7 @@
io.prometheusintegration_tests
- 1.8.1-SNAPSHOT
+ 1.9.0it_exemplars_otel_sdk
diff --git a/simpleclient-archive/integration_tests/it_java_versions/pom.xml b/simpleclient-archive/integration_tests/it_java_versions/pom.xml
index a58611b73b..35e18b8962 100644
--- a/simpleclient-archive/integration_tests/it_java_versions/pom.xml
+++ b/simpleclient-archive/integration_tests/it_java_versions/pom.xml
@@ -5,7 +5,7 @@
io.prometheusintegration_tests
- 1.8.1-SNAPSHOT
+ 1.9.0it_java_versions
diff --git a/simpleclient-archive/integration_tests/it_log4j2/pom.xml b/simpleclient-archive/integration_tests/it_log4j2/pom.xml
index f432406b90..9591ca4dee 100644
--- a/simpleclient-archive/integration_tests/it_log4j2/pom.xml
+++ b/simpleclient-archive/integration_tests/it_log4j2/pom.xml
@@ -5,7 +5,7 @@
io.prometheusintegration_tests
- 1.8.1-SNAPSHOT
+ 1.9.0it_log4j2
diff --git a/simpleclient-archive/integration_tests/it_pushgateway/pom.xml b/simpleclient-archive/integration_tests/it_pushgateway/pom.xml
index 36b8d75a11..100d55e15f 100644
--- a/simpleclient-archive/integration_tests/it_pushgateway/pom.xml
+++ b/simpleclient-archive/integration_tests/it_pushgateway/pom.xml
@@ -5,7 +5,7 @@
io.prometheusintegration_tests
- 1.8.1-SNAPSHOT
+ 1.9.0it_pushgateway
diff --git a/simpleclient-archive/integration_tests/it_servlet_jakarta_exporter_webxml/pom.xml b/simpleclient-archive/integration_tests/it_servlet_jakarta_exporter_webxml/pom.xml
index 734695ed92..08e7bc7b11 100644
--- a/simpleclient-archive/integration_tests/it_servlet_jakarta_exporter_webxml/pom.xml
+++ b/simpleclient-archive/integration_tests/it_servlet_jakarta_exporter_webxml/pom.xml
@@ -5,7 +5,7 @@
io.prometheusintegration_tests
- 1.8.1-SNAPSHOT
+ 1.9.0it_servlet_jakarta_exporter_webxml
diff --git a/simpleclient-archive/integration_tests/pom.xml b/simpleclient-archive/integration_tests/pom.xml
index 1daa97de63..37e3184ecb 100644
--- a/simpleclient-archive/integration_tests/pom.xml
+++ b/simpleclient-archive/integration_tests/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.8.1-SNAPSHOT
+ 1.9.0integration_tests
diff --git a/simpleclient-archive/simpleclient_graphite_bridge/pom.xml b/simpleclient-archive/simpleclient_graphite_bridge/pom.xml
index c539a5e6e6..4204d27b34 100644
--- a/simpleclient-archive/simpleclient_graphite_bridge/pom.xml
+++ b/simpleclient-archive/simpleclient_graphite_bridge/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.8.1-SNAPSHOT
+ 1.9.0simpleclient_graphite_bridge
diff --git a/simpleclient-archive/simpleclient_hibernate/pom.xml b/simpleclient-archive/simpleclient_hibernate/pom.xml
index 10d2c29241..3be031c42b 100644
--- a/simpleclient-archive/simpleclient_hibernate/pom.xml
+++ b/simpleclient-archive/simpleclient_hibernate/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.8.1-SNAPSHOT
+ 1.9.0simpleclient_hibernate
diff --git a/simpleclient-archive/simpleclient_httpserver/pom.xml b/simpleclient-archive/simpleclient_httpserver/pom.xml
index 3cc821908c..fc34238ff8 100644
--- a/simpleclient-archive/simpleclient_httpserver/pom.xml
+++ b/simpleclient-archive/simpleclient_httpserver/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.8.1-SNAPSHOT
+ 1.9.0simpleclient_httpserver
diff --git a/simpleclient-archive/simpleclient_jetty/pom.xml b/simpleclient-archive/simpleclient_jetty/pom.xml
index 924decf76f..54e25a4033 100644
--- a/simpleclient-archive/simpleclient_jetty/pom.xml
+++ b/simpleclient-archive/simpleclient_jetty/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.8.1-SNAPSHOT
+ 1.9.0simpleclient_jetty
diff --git a/simpleclient-archive/simpleclient_jetty_jdk8/pom.xml b/simpleclient-archive/simpleclient_jetty_jdk8/pom.xml
index 8c8c5a82db..f08ffc8050 100644
--- a/simpleclient-archive/simpleclient_jetty_jdk8/pom.xml
+++ b/simpleclient-archive/simpleclient_jetty_jdk8/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.8.1-SNAPSHOT
+ 1.9.0simpleclient_jetty_jdk8
diff --git a/simpleclient-archive/simpleclient_log4j/pom.xml b/simpleclient-archive/simpleclient_log4j/pom.xml
index 214c5c6950..6719dd9411 100644
--- a/simpleclient-archive/simpleclient_log4j/pom.xml
+++ b/simpleclient-archive/simpleclient_log4j/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.8.1-SNAPSHOT
+ 1.9.0simpleclient_log4j
diff --git a/simpleclient-archive/simpleclient_log4j2/pom.xml b/simpleclient-archive/simpleclient_log4j2/pom.xml
index 9669eda304..7a060cffdf 100644
--- a/simpleclient-archive/simpleclient_log4j2/pom.xml
+++ b/simpleclient-archive/simpleclient_log4j2/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.8.1-SNAPSHOT
+ 1.9.0simpleclient_log4j2
diff --git a/simpleclient-archive/simpleclient_logback/pom.xml b/simpleclient-archive/simpleclient_logback/pom.xml
index e17168531b..448aa3ede0 100644
--- a/simpleclient-archive/simpleclient_logback/pom.xml
+++ b/simpleclient-archive/simpleclient_logback/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.8.1-SNAPSHOT
+ 1.9.0simpleclient_logback
diff --git a/simpleclient-archive/simpleclient_servlet/pom.xml b/simpleclient-archive/simpleclient_servlet/pom.xml
index 364b1484ad..29cb18cab7 100644
--- a/simpleclient-archive/simpleclient_servlet/pom.xml
+++ b/simpleclient-archive/simpleclient_servlet/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.8.1-SNAPSHOT
+ 1.9.0simpleclient_servlet
diff --git a/simpleclient-archive/simpleclient_servlet_common/pom.xml b/simpleclient-archive/simpleclient_servlet_common/pom.xml
index 7e7c8c0165..fe135cb0ea 100644
--- a/simpleclient-archive/simpleclient_servlet_common/pom.xml
+++ b/simpleclient-archive/simpleclient_servlet_common/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.8.1-SNAPSHOT
+ 1.9.0simpleclient_servlet_common
diff --git a/simpleclient-archive/simpleclient_servlet_jakarta/pom.xml b/simpleclient-archive/simpleclient_servlet_jakarta/pom.xml
index 0989f363b3..9aa32c6951 100644
--- a/simpleclient-archive/simpleclient_servlet_jakarta/pom.xml
+++ b/simpleclient-archive/simpleclient_servlet_jakarta/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.8.1-SNAPSHOT
+ 1.9.0simpleclient_servlet_jakarta
diff --git a/simpleclient-archive/simpleclient_spring_web/pom.xml b/simpleclient-archive/simpleclient_spring_web/pom.xml
index b6087f9f5a..93c12c4820 100644
--- a/simpleclient-archive/simpleclient_spring_web/pom.xml
+++ b/simpleclient-archive/simpleclient_spring_web/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.8.1-SNAPSHOT
+ 1.9.0simpleclient_spring_web
diff --git a/simpleclient-archive/simpleclient_vertx/pom.xml b/simpleclient-archive/simpleclient_vertx/pom.xml
index fede323e6f..258d6286b8 100644
--- a/simpleclient-archive/simpleclient_vertx/pom.xml
+++ b/simpleclient-archive/simpleclient_vertx/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.8.1-SNAPSHOT
+ 1.9.0simpleclient_vertx
diff --git a/simpleclient-archive/simpleclient_vertx4/pom.xml b/simpleclient-archive/simpleclient_vertx4/pom.xml
index 4c80b20f48..9f93f4bd58 100644
--- a/simpleclient-archive/simpleclient_vertx4/pom.xml
+++ b/simpleclient-archive/simpleclient_vertx4/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.8.1-SNAPSHOT
+ 1.9.0simpleclient_vertx4
From f27baf4196aea08304df67124e84af4d7e102bab Mon Sep 17 00:00:00 2001
From: Gregor Zeitlinger
Date: Wed, 16 Sep 2026 09:44:43 +0200
Subject: [PATCH 163/255] fix: exclude non-release modules from Maven
deployment (#2481)
## Summary
- Align deployment profiles with the release build, excluding examples,
benchmarks, and integration tests.
- Add CI regression coverage for profile consistency and use the Maven
wrapper.
- Document retrying publication from an unchanged immutable release tag.
Fixes the v1.9.0 deployment failure on example-greeting-service. After
merging, dispatch release.yml from main with tag=v1.9.0; no tag change
is needed.
## Validation
- `mise run lint:fix`
- `python3 .mise/tasks/test_release_configuration.py`
- Mutation check: restoring the broken deployment profiles fails the
regression test.
- `mise run build-release` against current main plus this fix
No publication was triggered. Coverage checks configuration consistency,
not signing credentials or Sonatype availability.
Signed-off-by: Gregor Zeitlinger
---
.github/workflows/release.yml | 4 ++-
.github/workflows/test-release-build.yml | 2 ++
.mise/tasks/build-release.sh | 2 +-
.mise/tasks/test_release_configuration.py | 34 +++++++++++++++++++++++
RELEASING.md | 30 ++++++++++++++++++++
5 files changed, 70 insertions(+), 2 deletions(-)
create mode 100644 .mise/tasks/test_release_configuration.py
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index b2980f50cc..a6f8dee9e3 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -93,7 +93,9 @@ jobs:
gpg-passphrase: MAVEN_GPG_PASSPHRASE
- name: Publish to Apache Maven Central
- run: mvn deploy -P 'release,!default' -Dmaven.test.skip=true
+ run: >-
+ ./mvnw -B deploy -P 'release,!default,!examples-and-integration-tests'
+ -Dmaven.test.skip=true
env:
MAVEN_USERNAME: ${{ secrets.SONATYPE_MAVEN_REPOSITORY_USERNAME }}
MAVEN_CENTRAL_TOKEN: ${{ secrets.SONATYPE_MAVEN_REPOSITORY_PASSWORD }}
diff --git a/.github/workflows/test-release-build.yml b/.github/workflows/test-release-build.yml
index 7edd109ab5..cbc7514324 100644
--- a/.github/workflows/test-release-build.yml
+++ b/.github/workflows/test-release-build.yml
@@ -27,6 +27,8 @@ jobs:
with:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
+ - name: Check release deployment configuration
+ run: python3 .mise/tasks/test_release_configuration.py
- name: Build GitHub Pages
run: mise run build-gh-pages
env:
diff --git a/.mise/tasks/build-release.sh b/.mise/tasks/build-release.sh
index 620dca77af..30a124fcfa 100755
--- a/.mise/tasks/build-release.sh
+++ b/.mise/tasks/build-release.sh
@@ -4,5 +4,5 @@
set -euo pipefail
-mvn -B package -P 'release,!default,!examples-and-integration-tests' \
+./mvnw -B package -P 'release,!default,!examples-and-integration-tests' \
-Dmaven.test.skip=true -Dgpg.skip=true
diff --git a/.mise/tasks/test_release_configuration.py b/.mise/tasks/test_release_configuration.py
new file mode 100644
index 0000000000..4375e6c2e0
--- /dev/null
+++ b/.mise/tasks/test_release_configuration.py
@@ -0,0 +1,34 @@
+"""Guard the release reactor configuration without credentials or publishing artifacts."""
+
+import re
+import shlex
+import unittest
+from pathlib import Path
+
+ROOT = Path(__file__).resolve().parents[2]
+
+
+def profiles(text):
+ """Read the single explicit Maven profile selection in a release command."""
+ selections = re.findall(r"\s-P\s+('[^']*'|\"[^\"]*\"|[^\s]+)", text)
+ if len(selections) != 1:
+ raise AssertionError("Expected exactly one explicit Maven -P selection")
+ return set(shlex.split(selections[0])[0].split(","))
+
+
+class ReleaseConfigurationTest(unittest.TestCase):
+ def test_build_and_deploy_use_the_same_release_reactor(self):
+ build = (ROOT / ".mise/tasks/build-release.sh").read_text()
+ deploy = (ROOT / ".github/workflows/release.yml").read_text()
+ expected = {"release", "!default", "!examples-and-integration-tests"}
+ self.assertEqual(profiles(build), expected)
+ self.assertEqual(profiles(deploy), profiles(build))
+
+ def test_regression_detects_the_failed_release_configuration(self):
+ build = (ROOT / ".mise/tasks/build-release.sh").read_text()
+ failed_command = "mvn deploy -P 'release,!default' -Dmaven.test.skip=true"
+ self.assertNotEqual(profiles(failed_command), profiles(build))
+
+
+if __name__ == "__main__":
+ unittest.main()
diff --git a/RELEASING.md b/RELEASING.md
index c5ae0ed4b8..6365ba31ae 100644
--- a/RELEASING.md
+++ b/RELEASING.md
@@ -44,6 +44,36 @@ the benchmarks before merging the release PR:
mise run update-benchmarks
```
+## Retrying a Failed Maven Central Deployment
+
+A GitHub release and a Maven Central publication are separate operations.
+An immutable GitHub release does not prevent publishing artifacts from its
+existing tag. Do not move the tag or rebuild the release from newer source.
+
+Before retrying, check the failed job's full log and the Sonatype Central
+Deployments page. Maven reactor `SUCCESS` entries can mean artifacts were
+only staged locally; look for an uploaded bundle and deployment ID. If a
+deployment is already pending, inspect it before submitting another one.
+Already published Maven Central versions cannot be overwritten.
+
+For a workflow-only fix, merge the correction to `main`, then dispatch the
+updated workflow with the original release tag:
+
+```shell
+gh workflow run release.yml --repo prometheus/client_java --ref main -f tag=v1.9.0
+```
+
+Replace `v1.9.0` with the tag being recovered. The workflow comes from `main`,
+but its checkout uses the supplied tag. Rerunning the original failed job
+instead uses its original workflow and repeats the same configuration error.
+Changes to scripts or POMs on `main` are not picked up by that tagged checkout;
+those require a separate recovery plan or a new release.
+
+Keep the deployment profile selection aligned with `mise run build-release`:
+examples, benchmarks, and integration tests must not enter the release reactor.
+The Test Build Release workflow checks this configuration before building.
+This check does not validate signing credentials or Sonatype availability.
+
## If the Sonatype Central Token is Invalid
The release workflow verifies the token before deploy. If it fails:
From 1c3f5eef443622189926e33a444046d2688c0112 Mon Sep 17 00:00:00 2001
From: "github-actions[bot]"
<41898282+github-actions[bot]@users.noreply.github.com>
Date: Wed, 16 Sep 2026 08:12:41 +0000
Subject: [PATCH 164/255] chore(main): release 1.9.1-SNAPSHOT (#2480)
:robot: I have created a release *beep* *boop*
---
### Updating meta-information for bleeding-edge SNAPSHOT release.
---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).
---------
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
---
benchmarks/pom.xml | 2 +-
.../prometheus-metrics-annotations.txt | 2 ++
.../prometheus-metrics-config.txt | 2 ++
.../prometheus-metrics-core.txt | 6 +++++
.../prometheus-metrics-exporter-common.txt | 4 ++++
...prometheus-metrics-exporter-httpserver.txt | 21 +++++++++++++++++
...ter-opentelemetry-otel-agent-resources.txt | 2 ++
...-metrics-exporter-opentelemetry-shaded.txt | 20 ++++++++++++++++
...metheus-metrics-exporter-opentelemetry.txt | 20 ++++++++++++++++
...rometheus-metrics-exporter-pushgateway.txt | 2 ++
...theus-metrics-exporter-servlet-jakarta.txt | 2 ++
...metheus-metrics-exporter-servlet-javax.txt | 2 ++
...heus-metrics-exposition-formats-shaded.txt | 2 ++
.../prometheus-metrics-exposition-formats.txt | 2 ++
...metheus-metrics-exposition-textformats.txt | 2 ++
...theus-metrics-instrumentation-caffeine.txt | 6 +++++
...eus-metrics-instrumentation-dropwizard.txt | 2 ++
...us-metrics-instrumentation-dropwizard5.txt | 2 ++
...ometheus-metrics-instrumentation-guava.txt | 6 +++++
...prometheus-metrics-instrumentation-jvm.txt | 2 ++
.../prometheus-metrics-model.txt | 6 +++++
...prometheus-metrics-simpleclient-bridge.txt | 2 ++
.../prometheus-metrics-tracer-common.txt | 2 ++
.../prometheus-metrics-tracer-initializer.txt | 2 ++
.../prometheus-metrics-tracer-otel-agent.txt | 2 ++
.../prometheus-metrics-tracer-otel.txt | 2 ++
.../prometheus-metrics-annotations.txt | 2 +-
.../prometheus-metrics-config.txt | 2 +-
.../prometheus-metrics-core.txt | 8 ++-----
.../prometheus-metrics-exporter-common.txt | 6 ++---
...prometheus-metrics-exporter-httpserver.txt | 23 ++-----------------
...ter-opentelemetry-otel-agent-resources.txt | 2 +-
...-metrics-exporter-opentelemetry-shaded.txt | 22 ++----------------
...metheus-metrics-exporter-opentelemetry.txt | 22 ++----------------
...rometheus-metrics-exporter-pushgateway.txt | 2 +-
...theus-metrics-exporter-servlet-jakarta.txt | 2 +-
...metheus-metrics-exporter-servlet-javax.txt | 2 +-
...heus-metrics-exposition-formats-shaded.txt | 2 +-
.../prometheus-metrics-exposition-formats.txt | 2 +-
...metheus-metrics-exposition-textformats.txt | 2 +-
...theus-metrics-instrumentation-caffeine.txt | 8 ++-----
...eus-metrics-instrumentation-dropwizard.txt | 2 +-
...us-metrics-instrumentation-dropwizard5.txt | 2 +-
...ometheus-metrics-instrumentation-guava.txt | 8 ++-----
...prometheus-metrics-instrumentation-jvm.txt | 2 +-
.../prometheus-metrics-model.txt | 8 ++-----
...prometheus-metrics-simpleclient-bridge.txt | 2 +-
.../prometheus-metrics-tracer-common.txt | 2 +-
.../prometheus-metrics-tracer-initializer.txt | 2 +-
.../prometheus-metrics-tracer-otel-agent.txt | 2 +-
.../prometheus-metrics-tracer-otel.txt | 2 +-
examples/example-custom-buckets/pom.xml | 2 +-
.../example-greeting-service/pom.xml | 2 +-
.../example-hello-world-app/pom.xml | 2 +-
.../example-exemplars-tail-sampling/pom.xml | 2 +-
examples/example-exporter-httpserver/pom.xml | 2 +-
.../example-exporter-multi-target/pom.xml | 2 +-
.../example-exporter-opentelemetry/pom.xml | 2 +-
.../example-exporter-servlet-tomcat/pom.xml | 2 +-
examples/example-native-histogram/pom.xml | 2 +-
.../example-otel-jvm-runtime-metrics/pom.xml | 2 +-
.../example-prometheus-properties/pom.xml | 2 +-
examples/example-simpleclient-bridge/pom.xml | 2 +-
examples/pom.xml | 2 +-
integration-tests/it-common/pom.xml | 2 +-
.../pom.xml | 2 +-
.../it-exporter-httpserver-sample/pom.xml | 2 +-
.../it-exporter-no-protobuf/pom.xml | 2 +-
.../it-exporter-servlet-jetty-sample/pom.xml | 2 +-
.../it-exporter-servlet-tomcat-sample/pom.xml | 2 +-
.../it-exporter/it-exporter-test/pom.xml | 2 +-
.../it-exporter/it-no-protobuf-test/pom.xml | 2 +-
integration-tests/it-exporter/pom.xml | 2 +-
integration-tests/it-pushgateway/pom.xml | 2 +-
.../it-spring-boot-smoke-test/pom.xml | 2 +-
integration-tests/pom.xml | 2 +-
pom.xml | 4 ++--
prometheus-metrics-annotations/pom.xml | 2 +-
prometheus-metrics-bom/pom.xml | 2 +-
prometheus-metrics-config/pom.xml | 2 +-
prometheus-metrics-core/pom.xml | 2 +-
prometheus-metrics-exporter-common/pom.xml | 2 +-
.../pom.xml | 2 +-
.../pom.xml | 2 +-
.../pom.xml | 2 +-
.../pom.xml | 2 +-
.../pom.xml | 2 +-
.../pom.xml | 2 +-
.../pom.xml | 2 +-
.../pom.xml | 2 +-
prometheus-metrics-exposition-formats/pom.xml | 2 +-
.../pom.xml | 2 +-
.../pom.xml | 2 +-
.../pom.xml | 2 +-
.../pom.xml | 2 +-
.../pom.xml | 2 +-
.../pom.xml | 2 +-
prometheus-metrics-model/pom.xml | 2 +-
prometheus-metrics-otel-support/pom.xml | 2 +-
prometheus-metrics-parent/pom.xml | 2 +-
.../pom.xml | 2 +-
prometheus-metrics-tracer/pom.xml | 2 +-
.../prometheus-metrics-tracer-common/pom.xml | 2 +-
.../pom.xml | 2 +-
.../pom.xml | 2 +-
.../prometheus-metrics-tracer-otel/pom.xml | 2 +-
.../integration_tests/it_common/pom.xml | 2 +-
.../it_exemplars_otel_agent/pom.xml | 2 +-
.../it_exemplars_otel_sdk/pom.xml | 2 +-
.../it_java_versions/pom.xml | 2 +-
.../integration_tests/it_log4j2/pom.xml | 2 +-
.../integration_tests/it_pushgateway/pom.xml | 2 +-
.../pom.xml | 2 +-
.../integration_tests/pom.xml | 2 +-
.../simpleclient_graphite_bridge/pom.xml | 2 +-
.../simpleclient_hibernate/pom.xml | 2 +-
.../simpleclient_httpserver/pom.xml | 2 +-
.../simpleclient_jetty/pom.xml | 2 +-
.../simpleclient_jetty_jdk8/pom.xml | 2 +-
.../simpleclient_log4j/pom.xml | 2 +-
.../simpleclient_log4j2/pom.xml | 2 +-
.../simpleclient_logback/pom.xml | 2 +-
.../simpleclient_servlet/pom.xml | 2 +-
.../simpleclient_servlet_common/pom.xml | 2 +-
.../simpleclient_servlet_jakarta/pom.xml | 2 +-
.../simpleclient_spring_web/pom.xml | 2 +-
.../simpleclient_vertx/pom.xml | 2 +-
.../simpleclient_vertx4/pom.xml | 2 +-
128 files changed, 235 insertions(+), 185 deletions(-)
create mode 100644 docs/apidiffs/1.9.0_vs_1.8.0/prometheus-metrics-annotations.txt
create mode 100644 docs/apidiffs/1.9.0_vs_1.8.0/prometheus-metrics-config.txt
create mode 100644 docs/apidiffs/1.9.0_vs_1.8.0/prometheus-metrics-core.txt
create mode 100644 docs/apidiffs/1.9.0_vs_1.8.0/prometheus-metrics-exporter-common.txt
create mode 100644 docs/apidiffs/1.9.0_vs_1.8.0/prometheus-metrics-exporter-httpserver.txt
create mode 100644 docs/apidiffs/1.9.0_vs_1.8.0/prometheus-metrics-exporter-opentelemetry-otel-agent-resources.txt
create mode 100644 docs/apidiffs/1.9.0_vs_1.8.0/prometheus-metrics-exporter-opentelemetry-shaded.txt
create mode 100644 docs/apidiffs/1.9.0_vs_1.8.0/prometheus-metrics-exporter-opentelemetry.txt
create mode 100644 docs/apidiffs/1.9.0_vs_1.8.0/prometheus-metrics-exporter-pushgateway.txt
create mode 100644 docs/apidiffs/1.9.0_vs_1.8.0/prometheus-metrics-exporter-servlet-jakarta.txt
create mode 100644 docs/apidiffs/1.9.0_vs_1.8.0/prometheus-metrics-exporter-servlet-javax.txt
create mode 100644 docs/apidiffs/1.9.0_vs_1.8.0/prometheus-metrics-exposition-formats-shaded.txt
create mode 100644 docs/apidiffs/1.9.0_vs_1.8.0/prometheus-metrics-exposition-formats.txt
create mode 100644 docs/apidiffs/1.9.0_vs_1.8.0/prometheus-metrics-exposition-textformats.txt
create mode 100644 docs/apidiffs/1.9.0_vs_1.8.0/prometheus-metrics-instrumentation-caffeine.txt
create mode 100644 docs/apidiffs/1.9.0_vs_1.8.0/prometheus-metrics-instrumentation-dropwizard.txt
create mode 100644 docs/apidiffs/1.9.0_vs_1.8.0/prometheus-metrics-instrumentation-dropwizard5.txt
create mode 100644 docs/apidiffs/1.9.0_vs_1.8.0/prometheus-metrics-instrumentation-guava.txt
create mode 100644 docs/apidiffs/1.9.0_vs_1.8.0/prometheus-metrics-instrumentation-jvm.txt
create mode 100644 docs/apidiffs/1.9.0_vs_1.8.0/prometheus-metrics-model.txt
create mode 100644 docs/apidiffs/1.9.0_vs_1.8.0/prometheus-metrics-simpleclient-bridge.txt
create mode 100644 docs/apidiffs/1.9.0_vs_1.8.0/prometheus-metrics-tracer-common.txt
create mode 100644 docs/apidiffs/1.9.0_vs_1.8.0/prometheus-metrics-tracer-initializer.txt
create mode 100644 docs/apidiffs/1.9.0_vs_1.8.0/prometheus-metrics-tracer-otel-agent.txt
create mode 100644 docs/apidiffs/1.9.0_vs_1.8.0/prometheus-metrics-tracer-otel.txt
diff --git a/benchmarks/pom.xml b/benchmarks/pom.xml
index 763339d7ba..5f1a1a8984 100644
--- a/benchmarks/pom.xml
+++ b/benchmarks/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.9.0
+ 1.9.1-SNAPSHOTbenchmarks
diff --git a/docs/apidiffs/1.9.0_vs_1.8.0/prometheus-metrics-annotations.txt b/docs/apidiffs/1.9.0_vs_1.8.0/prometheus-metrics-annotations.txt
new file mode 100644
index 0000000000..a7fe17c136
--- /dev/null
+++ b/docs/apidiffs/1.9.0_vs_1.8.0/prometheus-metrics-annotations.txt
@@ -0,0 +1,2 @@
+Comparing source compatibility of prometheus-metrics-annotations-1.8.1-SNAPSHOT.jar against prometheus-metrics-annotations-1.8.0.jar
+No changes.
diff --git a/docs/apidiffs/1.9.0_vs_1.8.0/prometheus-metrics-config.txt b/docs/apidiffs/1.9.0_vs_1.8.0/prometheus-metrics-config.txt
new file mode 100644
index 0000000000..60dad6c1f2
--- /dev/null
+++ b/docs/apidiffs/1.9.0_vs_1.8.0/prometheus-metrics-config.txt
@@ -0,0 +1,2 @@
+Comparing source compatibility of prometheus-metrics-config-1.8.1-SNAPSHOT.jar against prometheus-metrics-config-1.8.0.jar
+No changes.
diff --git a/docs/apidiffs/1.9.0_vs_1.8.0/prometheus-metrics-core.txt b/docs/apidiffs/1.9.0_vs_1.8.0/prometheus-metrics-core.txt
new file mode 100644
index 0000000000..136f7f6f1a
--- /dev/null
+++ b/docs/apidiffs/1.9.0_vs_1.8.0/prometheus-metrics-core.txt
@@ -0,0 +1,6 @@
+Comparing source compatibility of prometheus-metrics-core-1.8.1-SNAPSHOT.jar against prometheus-metrics-core-1.8.0.jar
+*** MODIFIED CLASS: PUBLIC io.prometheus.metrics.core.exemplars.ExemplarSampler (not serializable)
+ === CLASS FILE FORMAT VERSION: 52.0 <- 52.0
+*** MODIFIED CLASS: PUBLIC io.prometheus.metrics.core.metrics.Histogram$DataPoint (not serializable)
+ === CLASS FILE FORMAT VERSION: 52.0 <- 52.0
+
diff --git a/docs/apidiffs/1.9.0_vs_1.8.0/prometheus-metrics-exporter-common.txt b/docs/apidiffs/1.9.0_vs_1.8.0/prometheus-metrics-exporter-common.txt
new file mode 100644
index 0000000000..daa5ef822b
--- /dev/null
+++ b/docs/apidiffs/1.9.0_vs_1.8.0/prometheus-metrics-exporter-common.txt
@@ -0,0 +1,4 @@
+Comparing source compatibility of prometheus-metrics-exporter-common-1.8.1-SNAPSHOT.jar against prometheus-metrics-exporter-common-1.8.0.jar
+*** MODIFIED CLASS: PUBLIC io.prometheus.metrics.exporter.common.PrometheusScrapeHandler (not serializable)
+ === CLASS FILE FORMAT VERSION: 52.0 <- 52.0
+
diff --git a/docs/apidiffs/1.9.0_vs_1.8.0/prometheus-metrics-exporter-httpserver.txt b/docs/apidiffs/1.9.0_vs_1.8.0/prometheus-metrics-exporter-httpserver.txt
new file mode 100644
index 0000000000..55ed8d9c34
--- /dev/null
+++ b/docs/apidiffs/1.9.0_vs_1.8.0/prometheus-metrics-exporter-httpserver.txt
@@ -0,0 +1,21 @@
+Comparing source compatibility of prometheus-metrics-exporter-httpserver-1.8.1-SNAPSHOT.jar against prometheus-metrics-exporter-httpserver-1.8.0.jar
++++ NEW CLASS: PUBLIC(+) FINAL(+) io.prometheus.metrics.exporter.httpserver.HttpErrorHandlingPolicy (not serializable)
+ +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a.
+ +++ NEW SUPERCLASS: java.lang.Object
+ +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.exporter.httpserver.HttpErrorHandlingPolicy$Builder builder()
+ +++ NEW METHOD: PUBLIC(+) STATIC(+) java.util.function.Consumer julReporter()
++++ NEW CLASS: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.exporter.httpserver.HttpErrorHandlingPolicy$Builder (not serializable)
+ +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a.
+ +++ NEW SUPERCLASS: java.lang.Object
+ +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.httpserver.HttpErrorHandlingPolicy build()
+ +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.httpserver.HttpErrorHandlingPolicy$Builder errorReporter(java.util.function.Consumer super java.lang.Exception>)
+ +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.httpserver.HttpErrorHandlingPolicy$Builder unsafeDebugResponse(boolean)
+*** MODIFIED CLASS: PUBLIC io.prometheus.metrics.exporter.httpserver.HTTPServer (not serializable)
+ === CLASS FILE FORMAT VERSION: 52.0 <- 52.0
+*** MODIFIED CLASS: PUBLIC STATIC io.prometheus.metrics.exporter.httpserver.HTTPServer$Builder (not serializable)
+ === CLASS FILE FORMAT VERSION: 52.0 <- 52.0
+ +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.httpserver.HTTPServer$Builder errorHandlingPolicy(io.prometheus.metrics.exporter.httpserver.HttpErrorHandlingPolicy)
+*** MODIFIED CLASS: PUBLIC io.prometheus.metrics.exporter.httpserver.MetricsHandler (not serializable)
+ === CLASS FILE FORMAT VERSION: 52.0 <- 52.0
+ +++ NEW CONSTRUCTOR: PUBLIC(+) MetricsHandler(io.prometheus.metrics.config.PrometheusProperties, io.prometheus.metrics.model.registry.PrometheusRegistry, io.prometheus.metrics.exporter.httpserver.HttpErrorHandlingPolicy)
+
diff --git a/docs/apidiffs/1.9.0_vs_1.8.0/prometheus-metrics-exporter-opentelemetry-otel-agent-resources.txt b/docs/apidiffs/1.9.0_vs_1.8.0/prometheus-metrics-exporter-opentelemetry-otel-agent-resources.txt
new file mode 100644
index 0000000000..10f0cbe921
--- /dev/null
+++ b/docs/apidiffs/1.9.0_vs_1.8.0/prometheus-metrics-exporter-opentelemetry-otel-agent-resources.txt
@@ -0,0 +1,2 @@
+Comparing source compatibility of prometheus-metrics-exporter-opentelemetry-otel-agent-resources-1.8.1-SNAPSHOT.jar against prometheus-metrics-exporter-opentelemetry-otel-agent-resources-1.8.0.jar
+No changes.
diff --git a/docs/apidiffs/1.9.0_vs_1.8.0/prometheus-metrics-exporter-opentelemetry-shaded.txt b/docs/apidiffs/1.9.0_vs_1.8.0/prometheus-metrics-exporter-opentelemetry-shaded.txt
new file mode 100644
index 0000000000..1b6d81f728
--- /dev/null
+++ b/docs/apidiffs/1.9.0_vs_1.8.0/prometheus-metrics-exporter-opentelemetry-shaded.txt
@@ -0,0 +1,20 @@
+Comparing source compatibility of prometheus-metrics-exporter-opentelemetry-1.8.1-SNAPSHOT.jar against prometheus-metrics-exporter-opentelemetry-1.8.0.jar
+***! MODIFIED CLASS: PUBLIC io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter (not serializable)
+ === CLASS FILE FORMAT VERSION: 52.0 <- 52.0
+ ---! REMOVED CONSTRUCTOR: PUBLIC(-) OpenTelemetryExporter(io.prometheus.metrics.shaded.io_opentelemetry_2_28_1_alpha.sdk.metrics.export.MetricReader)
+*** MODIFIED CLASS: PUBLIC STATIC io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder (not serializable)
+ === CLASS FILE FORMAT VERSION: 52.0 <- 52.0
+ +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter buildAndStart()
+ +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder endpoint(java.lang.String)
+ +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder header(java.lang.String, java.lang.String)
+ +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder intervalSeconds(int)
+ +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder preserveNames(boolean)
+ +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder protocol(java.lang.String)
+ +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder registry(io.prometheus.metrics.model.registry.PrometheusRegistry)
+ +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder resourceAttribute(java.lang.String, java.lang.String)
+ +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder serviceInstanceId(java.lang.String)
+ +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder serviceName(java.lang.String)
+ +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder serviceNamespace(java.lang.String)
+ +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder serviceVersion(java.lang.String)
+ +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder timeoutSeconds(int)
+
diff --git a/docs/apidiffs/1.9.0_vs_1.8.0/prometheus-metrics-exporter-opentelemetry.txt b/docs/apidiffs/1.9.0_vs_1.8.0/prometheus-metrics-exporter-opentelemetry.txt
new file mode 100644
index 0000000000..d0177b813d
--- /dev/null
+++ b/docs/apidiffs/1.9.0_vs_1.8.0/prometheus-metrics-exporter-opentelemetry.txt
@@ -0,0 +1,20 @@
+Comparing source compatibility of prometheus-metrics-exporter-opentelemetry-no-otel-1.8.1-SNAPSHOT.jar against prometheus-metrics-exporter-opentelemetry-no-otel-1.8.0.jar
+***! MODIFIED CLASS: PUBLIC io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter (not serializable)
+ === CLASS FILE FORMAT VERSION: 52.0 <- 52.0
+ ---! REMOVED CONSTRUCTOR: PUBLIC(-) OpenTelemetryExporter(io.opentelemetry.sdk.metrics.export.MetricReader)
+*** MODIFIED CLASS: PUBLIC STATIC io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder (not serializable)
+ === CLASS FILE FORMAT VERSION: 52.0 <- 52.0
+ +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter buildAndStart()
+ +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder endpoint(java.lang.String)
+ +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder header(java.lang.String, java.lang.String)
+ +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder intervalSeconds(int)
+ +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder preserveNames(boolean)
+ +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder protocol(java.lang.String)
+ +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder registry(io.prometheus.metrics.model.registry.PrometheusRegistry)
+ +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder resourceAttribute(java.lang.String, java.lang.String)
+ +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder serviceInstanceId(java.lang.String)
+ +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder serviceName(java.lang.String)
+ +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder serviceNamespace(java.lang.String)
+ +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder serviceVersion(java.lang.String)
+ +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder timeoutSeconds(int)
+
diff --git a/docs/apidiffs/1.9.0_vs_1.8.0/prometheus-metrics-exporter-pushgateway.txt b/docs/apidiffs/1.9.0_vs_1.8.0/prometheus-metrics-exporter-pushgateway.txt
new file mode 100644
index 0000000000..9d500f9811
--- /dev/null
+++ b/docs/apidiffs/1.9.0_vs_1.8.0/prometheus-metrics-exporter-pushgateway.txt
@@ -0,0 +1,2 @@
+Comparing source compatibility of prometheus-metrics-exporter-pushgateway-1.8.1-SNAPSHOT.jar against prometheus-metrics-exporter-pushgateway-1.8.0.jar
+No changes.
diff --git a/docs/apidiffs/1.9.0_vs_1.8.0/prometheus-metrics-exporter-servlet-jakarta.txt b/docs/apidiffs/1.9.0_vs_1.8.0/prometheus-metrics-exporter-servlet-jakarta.txt
new file mode 100644
index 0000000000..324db2bc54
--- /dev/null
+++ b/docs/apidiffs/1.9.0_vs_1.8.0/prometheus-metrics-exporter-servlet-jakarta.txt
@@ -0,0 +1,2 @@
+Comparing source compatibility of prometheus-metrics-exporter-servlet-jakarta-1.8.1-SNAPSHOT.jar against prometheus-metrics-exporter-servlet-jakarta-1.8.0.jar
+No changes.
diff --git a/docs/apidiffs/1.9.0_vs_1.8.0/prometheus-metrics-exporter-servlet-javax.txt b/docs/apidiffs/1.9.0_vs_1.8.0/prometheus-metrics-exporter-servlet-javax.txt
new file mode 100644
index 0000000000..38e76eeb4c
--- /dev/null
+++ b/docs/apidiffs/1.9.0_vs_1.8.0/prometheus-metrics-exporter-servlet-javax.txt
@@ -0,0 +1,2 @@
+Comparing source compatibility of prometheus-metrics-exporter-servlet-javax-1.8.1-SNAPSHOT.jar against prometheus-metrics-exporter-servlet-javax-1.8.0.jar
+No changes.
diff --git a/docs/apidiffs/1.9.0_vs_1.8.0/prometheus-metrics-exposition-formats-shaded.txt b/docs/apidiffs/1.9.0_vs_1.8.0/prometheus-metrics-exposition-formats-shaded.txt
new file mode 100644
index 0000000000..a2c9bee8fe
--- /dev/null
+++ b/docs/apidiffs/1.9.0_vs_1.8.0/prometheus-metrics-exposition-formats-shaded.txt
@@ -0,0 +1,2 @@
+Comparing source compatibility of prometheus-metrics-exposition-formats-1.8.1-SNAPSHOT.jar against prometheus-metrics-exposition-formats-1.8.0.jar
+No changes.
diff --git a/docs/apidiffs/1.9.0_vs_1.8.0/prometheus-metrics-exposition-formats.txt b/docs/apidiffs/1.9.0_vs_1.8.0/prometheus-metrics-exposition-formats.txt
new file mode 100644
index 0000000000..8dcdc54e96
--- /dev/null
+++ b/docs/apidiffs/1.9.0_vs_1.8.0/prometheus-metrics-exposition-formats.txt
@@ -0,0 +1,2 @@
+Comparing source compatibility of prometheus-metrics-exposition-formats-no-protobuf-1.8.1-SNAPSHOT.jar against prometheus-metrics-exposition-formats-no-protobuf-1.8.0.jar
+No changes.
diff --git a/docs/apidiffs/1.9.0_vs_1.8.0/prometheus-metrics-exposition-textformats.txt b/docs/apidiffs/1.9.0_vs_1.8.0/prometheus-metrics-exposition-textformats.txt
new file mode 100644
index 0000000000..d3e0a25814
--- /dev/null
+++ b/docs/apidiffs/1.9.0_vs_1.8.0/prometheus-metrics-exposition-textformats.txt
@@ -0,0 +1,2 @@
+Comparing source compatibility of prometheus-metrics-exposition-textformats-1.8.1-SNAPSHOT.jar against prometheus-metrics-exposition-textformats-1.8.0.jar
+No changes.
diff --git a/docs/apidiffs/1.9.0_vs_1.8.0/prometheus-metrics-instrumentation-caffeine.txt b/docs/apidiffs/1.9.0_vs_1.8.0/prometheus-metrics-instrumentation-caffeine.txt
new file mode 100644
index 0000000000..2745dbce5c
--- /dev/null
+++ b/docs/apidiffs/1.9.0_vs_1.8.0/prometheus-metrics-instrumentation-caffeine.txt
@@ -0,0 +1,6 @@
+Comparing source compatibility of prometheus-metrics-instrumentation-caffeine-1.8.1-SNAPSHOT.jar against prometheus-metrics-instrumentation-caffeine-1.8.0.jar
+=== UNCHANGED CLASS: PUBLIC io.prometheus.metrics.instrumentation.caffeine.CacheMetricsCollector (not serializable)
+ === CLASS FILE FORMAT VERSION: 52.0 <- 52.0
+ === UNCHANGED METHOD: PUBLIC com.github.benmanes.caffeine.cache.Cache,?>,?> removeCache(java.lang.String)
+ +++ NEW ANNOTATION: javax.annotation.Nullable
+
diff --git a/docs/apidiffs/1.9.0_vs_1.8.0/prometheus-metrics-instrumentation-dropwizard.txt b/docs/apidiffs/1.9.0_vs_1.8.0/prometheus-metrics-instrumentation-dropwizard.txt
new file mode 100644
index 0000000000..f995c74430
--- /dev/null
+++ b/docs/apidiffs/1.9.0_vs_1.8.0/prometheus-metrics-instrumentation-dropwizard.txt
@@ -0,0 +1,2 @@
+Comparing source compatibility of prometheus-metrics-instrumentation-dropwizard-1.8.1-SNAPSHOT.jar against prometheus-metrics-instrumentation-dropwizard-1.8.0.jar
+No changes.
diff --git a/docs/apidiffs/1.9.0_vs_1.8.0/prometheus-metrics-instrumentation-dropwizard5.txt b/docs/apidiffs/1.9.0_vs_1.8.0/prometheus-metrics-instrumentation-dropwizard5.txt
new file mode 100644
index 0000000000..ebd5b7f563
--- /dev/null
+++ b/docs/apidiffs/1.9.0_vs_1.8.0/prometheus-metrics-instrumentation-dropwizard5.txt
@@ -0,0 +1,2 @@
+Comparing source compatibility of prometheus-metrics-instrumentation-dropwizard5-1.8.1-SNAPSHOT.jar against prometheus-metrics-instrumentation-dropwizard5-1.8.0.jar
+No changes.
diff --git a/docs/apidiffs/1.9.0_vs_1.8.0/prometheus-metrics-instrumentation-guava.txt b/docs/apidiffs/1.9.0_vs_1.8.0/prometheus-metrics-instrumentation-guava.txt
new file mode 100644
index 0000000000..bb87fbec95
--- /dev/null
+++ b/docs/apidiffs/1.9.0_vs_1.8.0/prometheus-metrics-instrumentation-guava.txt
@@ -0,0 +1,6 @@
+Comparing source compatibility of prometheus-metrics-instrumentation-guava-1.8.1-SNAPSHOT.jar against prometheus-metrics-instrumentation-guava-1.8.0.jar
+=== UNCHANGED CLASS: PUBLIC io.prometheus.metrics.instrumentation.guava.CacheMetricsCollector (not serializable)
+ === CLASS FILE FORMAT VERSION: 52.0 <- 52.0
+ === UNCHANGED METHOD: PUBLIC com.google.common.cache.Cache,?>,?> removeCache(java.lang.String)
+ +++ NEW ANNOTATION: javax.annotation.Nullable
+
diff --git a/docs/apidiffs/1.9.0_vs_1.8.0/prometheus-metrics-instrumentation-jvm.txt b/docs/apidiffs/1.9.0_vs_1.8.0/prometheus-metrics-instrumentation-jvm.txt
new file mode 100644
index 0000000000..9160a63125
--- /dev/null
+++ b/docs/apidiffs/1.9.0_vs_1.8.0/prometheus-metrics-instrumentation-jvm.txt
@@ -0,0 +1,2 @@
+Comparing source compatibility of prometheus-metrics-instrumentation-jvm-1.8.1-SNAPSHOT.jar against prometheus-metrics-instrumentation-jvm-1.8.0.jar
+No changes.
diff --git a/docs/apidiffs/1.9.0_vs_1.8.0/prometheus-metrics-model.txt b/docs/apidiffs/1.9.0_vs_1.8.0/prometheus-metrics-model.txt
new file mode 100644
index 0000000000..d514400194
--- /dev/null
+++ b/docs/apidiffs/1.9.0_vs_1.8.0/prometheus-metrics-model.txt
@@ -0,0 +1,6 @@
+Comparing source compatibility of prometheus-metrics-model-1.8.1-SNAPSHOT.jar against prometheus-metrics-model-1.8.0.jar
+*** MODIFIED CLASS: PUBLIC STATIC io.prometheus.metrics.model.snapshots.CounterSnapshot$CounterDataPointSnapshot (not serializable)
+ === CLASS FILE FORMAT VERSION: 52.0 <- 52.0
+*** MODIFIED CLASS: PUBLIC FINAL io.prometheus.metrics.model.snapshots.Labels (not serializable)
+ === CLASS FILE FORMAT VERSION: 52.0 <- 52.0
+
diff --git a/docs/apidiffs/1.9.0_vs_1.8.0/prometheus-metrics-simpleclient-bridge.txt b/docs/apidiffs/1.9.0_vs_1.8.0/prometheus-metrics-simpleclient-bridge.txt
new file mode 100644
index 0000000000..28f5e87ab3
--- /dev/null
+++ b/docs/apidiffs/1.9.0_vs_1.8.0/prometheus-metrics-simpleclient-bridge.txt
@@ -0,0 +1,2 @@
+Comparing source compatibility of prometheus-metrics-simpleclient-bridge-1.8.1-SNAPSHOT.jar against prometheus-metrics-simpleclient-bridge-1.8.0.jar
+No changes.
diff --git a/docs/apidiffs/1.9.0_vs_1.8.0/prometheus-metrics-tracer-common.txt b/docs/apidiffs/1.9.0_vs_1.8.0/prometheus-metrics-tracer-common.txt
new file mode 100644
index 0000000000..720c4c2c83
--- /dev/null
+++ b/docs/apidiffs/1.9.0_vs_1.8.0/prometheus-metrics-tracer-common.txt
@@ -0,0 +1,2 @@
+Comparing source compatibility of prometheus-metrics-tracer-common-1.8.1-SNAPSHOT.jar against prometheus-metrics-tracer-common-1.8.0.jar
+No changes.
diff --git a/docs/apidiffs/1.9.0_vs_1.8.0/prometheus-metrics-tracer-initializer.txt b/docs/apidiffs/1.9.0_vs_1.8.0/prometheus-metrics-tracer-initializer.txt
new file mode 100644
index 0000000000..82cd884d78
--- /dev/null
+++ b/docs/apidiffs/1.9.0_vs_1.8.0/prometheus-metrics-tracer-initializer.txt
@@ -0,0 +1,2 @@
+Comparing source compatibility of prometheus-metrics-tracer-initializer-1.8.1-SNAPSHOT.jar against prometheus-metrics-tracer-initializer-1.8.0.jar
+No changes.
diff --git a/docs/apidiffs/1.9.0_vs_1.8.0/prometheus-metrics-tracer-otel-agent.txt b/docs/apidiffs/1.9.0_vs_1.8.0/prometheus-metrics-tracer-otel-agent.txt
new file mode 100644
index 0000000000..c1ac9275d1
--- /dev/null
+++ b/docs/apidiffs/1.9.0_vs_1.8.0/prometheus-metrics-tracer-otel-agent.txt
@@ -0,0 +1,2 @@
+Comparing source compatibility of prometheus-metrics-tracer-otel-agent-1.8.1-SNAPSHOT.jar against prometheus-metrics-tracer-otel-agent-1.8.0.jar
+No changes.
diff --git a/docs/apidiffs/1.9.0_vs_1.8.0/prometheus-metrics-tracer-otel.txt b/docs/apidiffs/1.9.0_vs_1.8.0/prometheus-metrics-tracer-otel.txt
new file mode 100644
index 0000000000..a95f29ea46
--- /dev/null
+++ b/docs/apidiffs/1.9.0_vs_1.8.0/prometheus-metrics-tracer-otel.txt
@@ -0,0 +1,2 @@
+Comparing source compatibility of prometheus-metrics-tracer-otel-1.8.1-SNAPSHOT.jar against prometheus-metrics-tracer-otel-1.8.0.jar
+No changes.
diff --git a/docs/apidiffs/current_vs_latest/prometheus-metrics-annotations.txt b/docs/apidiffs/current_vs_latest/prometheus-metrics-annotations.txt
index a7fe17c136..c9d8bb58c3 100644
--- a/docs/apidiffs/current_vs_latest/prometheus-metrics-annotations.txt
+++ b/docs/apidiffs/current_vs_latest/prometheus-metrics-annotations.txt
@@ -1,2 +1,2 @@
-Comparing source compatibility of prometheus-metrics-annotations-1.8.1-SNAPSHOT.jar against prometheus-metrics-annotations-1.8.0.jar
+Comparing source compatibility of prometheus-metrics-annotations-1.9.1-SNAPSHOT.jar against prometheus-metrics-annotations-1.9.0.jar
No changes.
diff --git a/docs/apidiffs/current_vs_latest/prometheus-metrics-config.txt b/docs/apidiffs/current_vs_latest/prometheus-metrics-config.txt
index 60dad6c1f2..fd1af87181 100644
--- a/docs/apidiffs/current_vs_latest/prometheus-metrics-config.txt
+++ b/docs/apidiffs/current_vs_latest/prometheus-metrics-config.txt
@@ -1,2 +1,2 @@
-Comparing source compatibility of prometheus-metrics-config-1.8.1-SNAPSHOT.jar against prometheus-metrics-config-1.8.0.jar
+Comparing source compatibility of prometheus-metrics-config-1.9.1-SNAPSHOT.jar against prometheus-metrics-config-1.9.0.jar
No changes.
diff --git a/docs/apidiffs/current_vs_latest/prometheus-metrics-core.txt b/docs/apidiffs/current_vs_latest/prometheus-metrics-core.txt
index 136f7f6f1a..0488f6c054 100644
--- a/docs/apidiffs/current_vs_latest/prometheus-metrics-core.txt
+++ b/docs/apidiffs/current_vs_latest/prometheus-metrics-core.txt
@@ -1,6 +1,2 @@
-Comparing source compatibility of prometheus-metrics-core-1.8.1-SNAPSHOT.jar against prometheus-metrics-core-1.8.0.jar
-*** MODIFIED CLASS: PUBLIC io.prometheus.metrics.core.exemplars.ExemplarSampler (not serializable)
- === CLASS FILE FORMAT VERSION: 52.0 <- 52.0
-*** MODIFIED CLASS: PUBLIC io.prometheus.metrics.core.metrics.Histogram$DataPoint (not serializable)
- === CLASS FILE FORMAT VERSION: 52.0 <- 52.0
-
+Comparing source compatibility of prometheus-metrics-core-1.9.1-SNAPSHOT.jar against prometheus-metrics-core-1.9.0.jar
+No changes.
diff --git a/docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-common.txt b/docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-common.txt
index daa5ef822b..f2e0b9b3a9 100644
--- a/docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-common.txt
+++ b/docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-common.txt
@@ -1,4 +1,2 @@
-Comparing source compatibility of prometheus-metrics-exporter-common-1.8.1-SNAPSHOT.jar against prometheus-metrics-exporter-common-1.8.0.jar
-*** MODIFIED CLASS: PUBLIC io.prometheus.metrics.exporter.common.PrometheusScrapeHandler (not serializable)
- === CLASS FILE FORMAT VERSION: 52.0 <- 52.0
-
+Comparing source compatibility of prometheus-metrics-exporter-common-1.9.1-SNAPSHOT.jar against prometheus-metrics-exporter-common-1.9.0.jar
+No changes.
diff --git a/docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-httpserver.txt b/docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-httpserver.txt
index 55ed8d9c34..d79d86a72d 100644
--- a/docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-httpserver.txt
+++ b/docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-httpserver.txt
@@ -1,21 +1,2 @@
-Comparing source compatibility of prometheus-metrics-exporter-httpserver-1.8.1-SNAPSHOT.jar against prometheus-metrics-exporter-httpserver-1.8.0.jar
-+++ NEW CLASS: PUBLIC(+) FINAL(+) io.prometheus.metrics.exporter.httpserver.HttpErrorHandlingPolicy (not serializable)
- +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a.
- +++ NEW SUPERCLASS: java.lang.Object
- +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.exporter.httpserver.HttpErrorHandlingPolicy$Builder builder()
- +++ NEW METHOD: PUBLIC(+) STATIC(+) java.util.function.Consumer julReporter()
-+++ NEW CLASS: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.exporter.httpserver.HttpErrorHandlingPolicy$Builder (not serializable)
- +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a.
- +++ NEW SUPERCLASS: java.lang.Object
- +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.httpserver.HttpErrorHandlingPolicy build()
- +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.httpserver.HttpErrorHandlingPolicy$Builder errorReporter(java.util.function.Consumer super java.lang.Exception>)
- +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.httpserver.HttpErrorHandlingPolicy$Builder unsafeDebugResponse(boolean)
-*** MODIFIED CLASS: PUBLIC io.prometheus.metrics.exporter.httpserver.HTTPServer (not serializable)
- === CLASS FILE FORMAT VERSION: 52.0 <- 52.0
-*** MODIFIED CLASS: PUBLIC STATIC io.prometheus.metrics.exporter.httpserver.HTTPServer$Builder (not serializable)
- === CLASS FILE FORMAT VERSION: 52.0 <- 52.0
- +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.httpserver.HTTPServer$Builder errorHandlingPolicy(io.prometheus.metrics.exporter.httpserver.HttpErrorHandlingPolicy)
-*** MODIFIED CLASS: PUBLIC io.prometheus.metrics.exporter.httpserver.MetricsHandler (not serializable)
- === CLASS FILE FORMAT VERSION: 52.0 <- 52.0
- +++ NEW CONSTRUCTOR: PUBLIC(+) MetricsHandler(io.prometheus.metrics.config.PrometheusProperties, io.prometheus.metrics.model.registry.PrometheusRegistry, io.prometheus.metrics.exporter.httpserver.HttpErrorHandlingPolicy)
-
+Comparing source compatibility of prometheus-metrics-exporter-httpserver-1.9.1-SNAPSHOT.jar against prometheus-metrics-exporter-httpserver-1.9.0.jar
+No changes.
diff --git a/docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-opentelemetry-otel-agent-resources.txt b/docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-opentelemetry-otel-agent-resources.txt
index 10f0cbe921..c28061e7c6 100644
--- a/docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-opentelemetry-otel-agent-resources.txt
+++ b/docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-opentelemetry-otel-agent-resources.txt
@@ -1,2 +1,2 @@
-Comparing source compatibility of prometheus-metrics-exporter-opentelemetry-otel-agent-resources-1.8.1-SNAPSHOT.jar against prometheus-metrics-exporter-opentelemetry-otel-agent-resources-1.8.0.jar
+Comparing source compatibility of prometheus-metrics-exporter-opentelemetry-otel-agent-resources-1.9.1-SNAPSHOT.jar against prometheus-metrics-exporter-opentelemetry-otel-agent-resources-1.9.0.jar
No changes.
diff --git a/docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-opentelemetry-shaded.txt b/docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-opentelemetry-shaded.txt
index 1b6d81f728..b6df5c4795 100644
--- a/docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-opentelemetry-shaded.txt
+++ b/docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-opentelemetry-shaded.txt
@@ -1,20 +1,2 @@
-Comparing source compatibility of prometheus-metrics-exporter-opentelemetry-1.8.1-SNAPSHOT.jar against prometheus-metrics-exporter-opentelemetry-1.8.0.jar
-***! MODIFIED CLASS: PUBLIC io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter (not serializable)
- === CLASS FILE FORMAT VERSION: 52.0 <- 52.0
- ---! REMOVED CONSTRUCTOR: PUBLIC(-) OpenTelemetryExporter(io.prometheus.metrics.shaded.io_opentelemetry_2_28_1_alpha.sdk.metrics.export.MetricReader)
-*** MODIFIED CLASS: PUBLIC STATIC io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder (not serializable)
- === CLASS FILE FORMAT VERSION: 52.0 <- 52.0
- +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter buildAndStart()
- +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder endpoint(java.lang.String)
- +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder header(java.lang.String, java.lang.String)
- +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder intervalSeconds(int)
- +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder preserveNames(boolean)
- +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder protocol(java.lang.String)
- +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder registry(io.prometheus.metrics.model.registry.PrometheusRegistry)
- +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder resourceAttribute(java.lang.String, java.lang.String)
- +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder serviceInstanceId(java.lang.String)
- +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder serviceName(java.lang.String)
- +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder serviceNamespace(java.lang.String)
- +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder serviceVersion(java.lang.String)
- +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder timeoutSeconds(int)
-
+Comparing source compatibility of prometheus-metrics-exporter-opentelemetry-1.9.1-SNAPSHOT.jar against prometheus-metrics-exporter-opentelemetry-1.9.0.jar
+No changes.
diff --git a/docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-opentelemetry.txt b/docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-opentelemetry.txt
index d0177b813d..f8af7d6e94 100644
--- a/docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-opentelemetry.txt
+++ b/docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-opentelemetry.txt
@@ -1,20 +1,2 @@
-Comparing source compatibility of prometheus-metrics-exporter-opentelemetry-no-otel-1.8.1-SNAPSHOT.jar against prometheus-metrics-exporter-opentelemetry-no-otel-1.8.0.jar
-***! MODIFIED CLASS: PUBLIC io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter (not serializable)
- === CLASS FILE FORMAT VERSION: 52.0 <- 52.0
- ---! REMOVED CONSTRUCTOR: PUBLIC(-) OpenTelemetryExporter(io.opentelemetry.sdk.metrics.export.MetricReader)
-*** MODIFIED CLASS: PUBLIC STATIC io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder (not serializable)
- === CLASS FILE FORMAT VERSION: 52.0 <- 52.0
- +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter buildAndStart()
- +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder endpoint(java.lang.String)
- +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder header(java.lang.String, java.lang.String)
- +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder intervalSeconds(int)
- +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder preserveNames(boolean)
- +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder protocol(java.lang.String)
- +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder registry(io.prometheus.metrics.model.registry.PrometheusRegistry)
- +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder resourceAttribute(java.lang.String, java.lang.String)
- +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder serviceInstanceId(java.lang.String)
- +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder serviceName(java.lang.String)
- +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder serviceNamespace(java.lang.String)
- +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder serviceVersion(java.lang.String)
- +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder timeoutSeconds(int)
-
+Comparing source compatibility of prometheus-metrics-exporter-opentelemetry-no-otel-1.9.1-SNAPSHOT.jar against prometheus-metrics-exporter-opentelemetry-no-otel-1.9.0.jar
+No changes.
diff --git a/docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-pushgateway.txt b/docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-pushgateway.txt
index 9d500f9811..d38138860c 100644
--- a/docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-pushgateway.txt
+++ b/docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-pushgateway.txt
@@ -1,2 +1,2 @@
-Comparing source compatibility of prometheus-metrics-exporter-pushgateway-1.8.1-SNAPSHOT.jar against prometheus-metrics-exporter-pushgateway-1.8.0.jar
+Comparing source compatibility of prometheus-metrics-exporter-pushgateway-1.9.1-SNAPSHOT.jar against prometheus-metrics-exporter-pushgateway-1.9.0.jar
No changes.
diff --git a/docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-servlet-jakarta.txt b/docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-servlet-jakarta.txt
index 324db2bc54..37e318bf45 100644
--- a/docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-servlet-jakarta.txt
+++ b/docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-servlet-jakarta.txt
@@ -1,2 +1,2 @@
-Comparing source compatibility of prometheus-metrics-exporter-servlet-jakarta-1.8.1-SNAPSHOT.jar against prometheus-metrics-exporter-servlet-jakarta-1.8.0.jar
+Comparing source compatibility of prometheus-metrics-exporter-servlet-jakarta-1.9.1-SNAPSHOT.jar against prometheus-metrics-exporter-servlet-jakarta-1.9.0.jar
No changes.
diff --git a/docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-servlet-javax.txt b/docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-servlet-javax.txt
index 38e76eeb4c..8e0517f91f 100644
--- a/docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-servlet-javax.txt
+++ b/docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-servlet-javax.txt
@@ -1,2 +1,2 @@
-Comparing source compatibility of prometheus-metrics-exporter-servlet-javax-1.8.1-SNAPSHOT.jar against prometheus-metrics-exporter-servlet-javax-1.8.0.jar
+Comparing source compatibility of prometheus-metrics-exporter-servlet-javax-1.9.1-SNAPSHOT.jar against prometheus-metrics-exporter-servlet-javax-1.9.0.jar
No changes.
diff --git a/docs/apidiffs/current_vs_latest/prometheus-metrics-exposition-formats-shaded.txt b/docs/apidiffs/current_vs_latest/prometheus-metrics-exposition-formats-shaded.txt
index a2c9bee8fe..f834ffeff4 100644
--- a/docs/apidiffs/current_vs_latest/prometheus-metrics-exposition-formats-shaded.txt
+++ b/docs/apidiffs/current_vs_latest/prometheus-metrics-exposition-formats-shaded.txt
@@ -1,2 +1,2 @@
-Comparing source compatibility of prometheus-metrics-exposition-formats-1.8.1-SNAPSHOT.jar against prometheus-metrics-exposition-formats-1.8.0.jar
+Comparing source compatibility of prometheus-metrics-exposition-formats-1.9.1-SNAPSHOT.jar against prometheus-metrics-exposition-formats-1.9.0.jar
No changes.
diff --git a/docs/apidiffs/current_vs_latest/prometheus-metrics-exposition-formats.txt b/docs/apidiffs/current_vs_latest/prometheus-metrics-exposition-formats.txt
index 8dcdc54e96..14a4544141 100644
--- a/docs/apidiffs/current_vs_latest/prometheus-metrics-exposition-formats.txt
+++ b/docs/apidiffs/current_vs_latest/prometheus-metrics-exposition-formats.txt
@@ -1,2 +1,2 @@
-Comparing source compatibility of prometheus-metrics-exposition-formats-no-protobuf-1.8.1-SNAPSHOT.jar against prometheus-metrics-exposition-formats-no-protobuf-1.8.0.jar
+Comparing source compatibility of prometheus-metrics-exposition-formats-no-protobuf-1.9.1-SNAPSHOT.jar against prometheus-metrics-exposition-formats-no-protobuf-1.9.0.jar
No changes.
diff --git a/docs/apidiffs/current_vs_latest/prometheus-metrics-exposition-textformats.txt b/docs/apidiffs/current_vs_latest/prometheus-metrics-exposition-textformats.txt
index d3e0a25814..88d0781d26 100644
--- a/docs/apidiffs/current_vs_latest/prometheus-metrics-exposition-textformats.txt
+++ b/docs/apidiffs/current_vs_latest/prometheus-metrics-exposition-textformats.txt
@@ -1,2 +1,2 @@
-Comparing source compatibility of prometheus-metrics-exposition-textformats-1.8.1-SNAPSHOT.jar against prometheus-metrics-exposition-textformats-1.8.0.jar
+Comparing source compatibility of prometheus-metrics-exposition-textformats-1.9.1-SNAPSHOT.jar against prometheus-metrics-exposition-textformats-1.9.0.jar
No changes.
diff --git a/docs/apidiffs/current_vs_latest/prometheus-metrics-instrumentation-caffeine.txt b/docs/apidiffs/current_vs_latest/prometheus-metrics-instrumentation-caffeine.txt
index 2745dbce5c..3e82c5092c 100644
--- a/docs/apidiffs/current_vs_latest/prometheus-metrics-instrumentation-caffeine.txt
+++ b/docs/apidiffs/current_vs_latest/prometheus-metrics-instrumentation-caffeine.txt
@@ -1,6 +1,2 @@
-Comparing source compatibility of prometheus-metrics-instrumentation-caffeine-1.8.1-SNAPSHOT.jar against prometheus-metrics-instrumentation-caffeine-1.8.0.jar
-=== UNCHANGED CLASS: PUBLIC io.prometheus.metrics.instrumentation.caffeine.CacheMetricsCollector (not serializable)
- === CLASS FILE FORMAT VERSION: 52.0 <- 52.0
- === UNCHANGED METHOD: PUBLIC com.github.benmanes.caffeine.cache.Cache,?>,?> removeCache(java.lang.String)
- +++ NEW ANNOTATION: javax.annotation.Nullable
-
+Comparing source compatibility of prometheus-metrics-instrumentation-caffeine-1.9.1-SNAPSHOT.jar against prometheus-metrics-instrumentation-caffeine-1.9.0.jar
+No changes.
diff --git a/docs/apidiffs/current_vs_latest/prometheus-metrics-instrumentation-dropwizard.txt b/docs/apidiffs/current_vs_latest/prometheus-metrics-instrumentation-dropwizard.txt
index f995c74430..3eda7ebef3 100644
--- a/docs/apidiffs/current_vs_latest/prometheus-metrics-instrumentation-dropwizard.txt
+++ b/docs/apidiffs/current_vs_latest/prometheus-metrics-instrumentation-dropwizard.txt
@@ -1,2 +1,2 @@
-Comparing source compatibility of prometheus-metrics-instrumentation-dropwizard-1.8.1-SNAPSHOT.jar against prometheus-metrics-instrumentation-dropwizard-1.8.0.jar
+Comparing source compatibility of prometheus-metrics-instrumentation-dropwizard-1.9.1-SNAPSHOT.jar against prometheus-metrics-instrumentation-dropwizard-1.9.0.jar
No changes.
diff --git a/docs/apidiffs/current_vs_latest/prometheus-metrics-instrumentation-dropwizard5.txt b/docs/apidiffs/current_vs_latest/prometheus-metrics-instrumentation-dropwizard5.txt
index ebd5b7f563..a6c14684b4 100644
--- a/docs/apidiffs/current_vs_latest/prometheus-metrics-instrumentation-dropwizard5.txt
+++ b/docs/apidiffs/current_vs_latest/prometheus-metrics-instrumentation-dropwizard5.txt
@@ -1,2 +1,2 @@
-Comparing source compatibility of prometheus-metrics-instrumentation-dropwizard5-1.8.1-SNAPSHOT.jar against prometheus-metrics-instrumentation-dropwizard5-1.8.0.jar
+Comparing source compatibility of prometheus-metrics-instrumentation-dropwizard5-1.9.1-SNAPSHOT.jar against prometheus-metrics-instrumentation-dropwizard5-1.9.0.jar
No changes.
diff --git a/docs/apidiffs/current_vs_latest/prometheus-metrics-instrumentation-guava.txt b/docs/apidiffs/current_vs_latest/prometheus-metrics-instrumentation-guava.txt
index bb87fbec95..928b7650cf 100644
--- a/docs/apidiffs/current_vs_latest/prometheus-metrics-instrumentation-guava.txt
+++ b/docs/apidiffs/current_vs_latest/prometheus-metrics-instrumentation-guava.txt
@@ -1,6 +1,2 @@
-Comparing source compatibility of prometheus-metrics-instrumentation-guava-1.8.1-SNAPSHOT.jar against prometheus-metrics-instrumentation-guava-1.8.0.jar
-=== UNCHANGED CLASS: PUBLIC io.prometheus.metrics.instrumentation.guava.CacheMetricsCollector (not serializable)
- === CLASS FILE FORMAT VERSION: 52.0 <- 52.0
- === UNCHANGED METHOD: PUBLIC com.google.common.cache.Cache,?>,?> removeCache(java.lang.String)
- +++ NEW ANNOTATION: javax.annotation.Nullable
-
+Comparing source compatibility of prometheus-metrics-instrumentation-guava-1.9.1-SNAPSHOT.jar against prometheus-metrics-instrumentation-guava-1.9.0.jar
+No changes.
diff --git a/docs/apidiffs/current_vs_latest/prometheus-metrics-instrumentation-jvm.txt b/docs/apidiffs/current_vs_latest/prometheus-metrics-instrumentation-jvm.txt
index 9160a63125..4b3de2a8a8 100644
--- a/docs/apidiffs/current_vs_latest/prometheus-metrics-instrumentation-jvm.txt
+++ b/docs/apidiffs/current_vs_latest/prometheus-metrics-instrumentation-jvm.txt
@@ -1,2 +1,2 @@
-Comparing source compatibility of prometheus-metrics-instrumentation-jvm-1.8.1-SNAPSHOT.jar against prometheus-metrics-instrumentation-jvm-1.8.0.jar
+Comparing source compatibility of prometheus-metrics-instrumentation-jvm-1.9.1-SNAPSHOT.jar against prometheus-metrics-instrumentation-jvm-1.9.0.jar
No changes.
diff --git a/docs/apidiffs/current_vs_latest/prometheus-metrics-model.txt b/docs/apidiffs/current_vs_latest/prometheus-metrics-model.txt
index d514400194..531739c332 100644
--- a/docs/apidiffs/current_vs_latest/prometheus-metrics-model.txt
+++ b/docs/apidiffs/current_vs_latest/prometheus-metrics-model.txt
@@ -1,6 +1,2 @@
-Comparing source compatibility of prometheus-metrics-model-1.8.1-SNAPSHOT.jar against prometheus-metrics-model-1.8.0.jar
-*** MODIFIED CLASS: PUBLIC STATIC io.prometheus.metrics.model.snapshots.CounterSnapshot$CounterDataPointSnapshot (not serializable)
- === CLASS FILE FORMAT VERSION: 52.0 <- 52.0
-*** MODIFIED CLASS: PUBLIC FINAL io.prometheus.metrics.model.snapshots.Labels (not serializable)
- === CLASS FILE FORMAT VERSION: 52.0 <- 52.0
-
+Comparing source compatibility of prometheus-metrics-model-1.9.1-SNAPSHOT.jar against prometheus-metrics-model-1.9.0.jar
+No changes.
diff --git a/docs/apidiffs/current_vs_latest/prometheus-metrics-simpleclient-bridge.txt b/docs/apidiffs/current_vs_latest/prometheus-metrics-simpleclient-bridge.txt
index 28f5e87ab3..c4b1db09c1 100644
--- a/docs/apidiffs/current_vs_latest/prometheus-metrics-simpleclient-bridge.txt
+++ b/docs/apidiffs/current_vs_latest/prometheus-metrics-simpleclient-bridge.txt
@@ -1,2 +1,2 @@
-Comparing source compatibility of prometheus-metrics-simpleclient-bridge-1.8.1-SNAPSHOT.jar against prometheus-metrics-simpleclient-bridge-1.8.0.jar
+Comparing source compatibility of prometheus-metrics-simpleclient-bridge-1.9.1-SNAPSHOT.jar against prometheus-metrics-simpleclient-bridge-1.9.0.jar
No changes.
diff --git a/docs/apidiffs/current_vs_latest/prometheus-metrics-tracer-common.txt b/docs/apidiffs/current_vs_latest/prometheus-metrics-tracer-common.txt
index 720c4c2c83..cc215a28e7 100644
--- a/docs/apidiffs/current_vs_latest/prometheus-metrics-tracer-common.txt
+++ b/docs/apidiffs/current_vs_latest/prometheus-metrics-tracer-common.txt
@@ -1,2 +1,2 @@
-Comparing source compatibility of prometheus-metrics-tracer-common-1.8.1-SNAPSHOT.jar against prometheus-metrics-tracer-common-1.8.0.jar
+Comparing source compatibility of prometheus-metrics-tracer-common-1.9.1-SNAPSHOT.jar against prometheus-metrics-tracer-common-1.9.0.jar
No changes.
diff --git a/docs/apidiffs/current_vs_latest/prometheus-metrics-tracer-initializer.txt b/docs/apidiffs/current_vs_latest/prometheus-metrics-tracer-initializer.txt
index 82cd884d78..bc16ce85f0 100644
--- a/docs/apidiffs/current_vs_latest/prometheus-metrics-tracer-initializer.txt
+++ b/docs/apidiffs/current_vs_latest/prometheus-metrics-tracer-initializer.txt
@@ -1,2 +1,2 @@
-Comparing source compatibility of prometheus-metrics-tracer-initializer-1.8.1-SNAPSHOT.jar against prometheus-metrics-tracer-initializer-1.8.0.jar
+Comparing source compatibility of prometheus-metrics-tracer-initializer-1.9.1-SNAPSHOT.jar against prometheus-metrics-tracer-initializer-1.9.0.jar
No changes.
diff --git a/docs/apidiffs/current_vs_latest/prometheus-metrics-tracer-otel-agent.txt b/docs/apidiffs/current_vs_latest/prometheus-metrics-tracer-otel-agent.txt
index c1ac9275d1..9bb39a0b7f 100644
--- a/docs/apidiffs/current_vs_latest/prometheus-metrics-tracer-otel-agent.txt
+++ b/docs/apidiffs/current_vs_latest/prometheus-metrics-tracer-otel-agent.txt
@@ -1,2 +1,2 @@
-Comparing source compatibility of prometheus-metrics-tracer-otel-agent-1.8.1-SNAPSHOT.jar against prometheus-metrics-tracer-otel-agent-1.8.0.jar
+Comparing source compatibility of prometheus-metrics-tracer-otel-agent-1.9.1-SNAPSHOT.jar against prometheus-metrics-tracer-otel-agent-1.9.0.jar
No changes.
diff --git a/docs/apidiffs/current_vs_latest/prometheus-metrics-tracer-otel.txt b/docs/apidiffs/current_vs_latest/prometheus-metrics-tracer-otel.txt
index a95f29ea46..c6e812fa5f 100644
--- a/docs/apidiffs/current_vs_latest/prometheus-metrics-tracer-otel.txt
+++ b/docs/apidiffs/current_vs_latest/prometheus-metrics-tracer-otel.txt
@@ -1,2 +1,2 @@
-Comparing source compatibility of prometheus-metrics-tracer-otel-1.8.1-SNAPSHOT.jar against prometheus-metrics-tracer-otel-1.8.0.jar
+Comparing source compatibility of prometheus-metrics-tracer-otel-1.9.1-SNAPSHOT.jar against prometheus-metrics-tracer-otel-1.9.0.jar
No changes.
diff --git a/examples/example-custom-buckets/pom.xml b/examples/example-custom-buckets/pom.xml
index c6e1c6b2b2..4784f6548f 100644
--- a/examples/example-custom-buckets/pom.xml
+++ b/examples/example-custom-buckets/pom.xml
@@ -4,7 +4,7 @@
io.prometheusexample-custom-buckets
- 1.9.0
+ 1.9.1-SNAPSHOT8
diff --git a/examples/example-exemplars-tail-sampling/example-greeting-service/pom.xml b/examples/example-exemplars-tail-sampling/example-greeting-service/pom.xml
index f3e8a8fceb..0608bbb7a3 100644
--- a/examples/example-exemplars-tail-sampling/example-greeting-service/pom.xml
+++ b/examples/example-exemplars-tail-sampling/example-greeting-service/pom.xml
@@ -4,7 +4,7 @@
io.prometheusexample-greeting-service
- 1.9.0
+ 1.9.1-SNAPSHOT17
diff --git a/examples/example-exemplars-tail-sampling/example-hello-world-app/pom.xml b/examples/example-exemplars-tail-sampling/example-hello-world-app/pom.xml
index bbb750f9bd..2e52afd897 100644
--- a/examples/example-exemplars-tail-sampling/example-hello-world-app/pom.xml
+++ b/examples/example-exemplars-tail-sampling/example-hello-world-app/pom.xml
@@ -4,7 +4,7 @@
io.prometheusexample-hello-world-app
- 1.9.0
+ 1.9.1-SNAPSHOT17
diff --git a/examples/example-exemplars-tail-sampling/pom.xml b/examples/example-exemplars-tail-sampling/pom.xml
index 209dbc7135..7b63d43dba 100644
--- a/examples/example-exemplars-tail-sampling/pom.xml
+++ b/examples/example-exemplars-tail-sampling/pom.xml
@@ -4,7 +4,7 @@
io.prometheusexample-exemplars-tail-sampling
- 1.9.0
+ 1.9.1-SNAPSHOTpomExample - Exemplars with OpenTelemetry's Tail Sampling
diff --git a/examples/example-exporter-httpserver/pom.xml b/examples/example-exporter-httpserver/pom.xml
index 1550e64ed6..cfbc62558c 100644
--- a/examples/example-exporter-httpserver/pom.xml
+++ b/examples/example-exporter-httpserver/pom.xml
@@ -4,7 +4,7 @@
io.prometheusexample-exporter-httpserver
- 1.9.0
+ 1.9.1-SNAPSHOT8
diff --git a/examples/example-exporter-multi-target/pom.xml b/examples/example-exporter-multi-target/pom.xml
index fc3b511cee..4b4878d91e 100644
--- a/examples/example-exporter-multi-target/pom.xml
+++ b/examples/example-exporter-multi-target/pom.xml
@@ -4,7 +4,7 @@
io.prometheusexample-exporter-multi-target
- 1.9.0
+ 1.9.1-SNAPSHOT8
diff --git a/examples/example-exporter-opentelemetry/pom.xml b/examples/example-exporter-opentelemetry/pom.xml
index b6dd6a4b1d..6c55f942f8 100644
--- a/examples/example-exporter-opentelemetry/pom.xml
+++ b/examples/example-exporter-opentelemetry/pom.xml
@@ -4,7 +4,7 @@
io.prometheusexample-exporter-opentelemetry
- 1.9.0
+ 1.9.1-SNAPSHOT8
diff --git a/examples/example-exporter-servlet-tomcat/pom.xml b/examples/example-exporter-servlet-tomcat/pom.xml
index c111716e5b..c9fec6f5a3 100644
--- a/examples/example-exporter-servlet-tomcat/pom.xml
+++ b/examples/example-exporter-servlet-tomcat/pom.xml
@@ -4,7 +4,7 @@
io.prometheusexample-exporter-servlet-tomcat
- 1.9.0
+ 1.9.1-SNAPSHOT17
diff --git a/examples/example-native-histogram/pom.xml b/examples/example-native-histogram/pom.xml
index 0006475c48..a2fa052fc7 100644
--- a/examples/example-native-histogram/pom.xml
+++ b/examples/example-native-histogram/pom.xml
@@ -4,7 +4,7 @@
io.prometheusexample-native-histogram
- 1.9.0
+ 1.9.1-SNAPSHOT8
diff --git a/examples/example-otel-jvm-runtime-metrics/pom.xml b/examples/example-otel-jvm-runtime-metrics/pom.xml
index 46c132325e..3a996a123e 100644
--- a/examples/example-otel-jvm-runtime-metrics/pom.xml
+++ b/examples/example-otel-jvm-runtime-metrics/pom.xml
@@ -4,7 +4,7 @@
io.prometheusexample-otel-jvm-runtime-metrics
- 1.9.0
+ 1.9.1-SNAPSHOT8
diff --git a/examples/example-prometheus-properties/pom.xml b/examples/example-prometheus-properties/pom.xml
index 31cf629415..8bf2a668a1 100644
--- a/examples/example-prometheus-properties/pom.xml
+++ b/examples/example-prometheus-properties/pom.xml
@@ -4,7 +4,7 @@
io.prometheusexample-prometheus-properties
- 1.9.0
+ 1.9.1-SNAPSHOT8
diff --git a/examples/example-simpleclient-bridge/pom.xml b/examples/example-simpleclient-bridge/pom.xml
index 267fae239f..2eb707f97f 100644
--- a/examples/example-simpleclient-bridge/pom.xml
+++ b/examples/example-simpleclient-bridge/pom.xml
@@ -4,7 +4,7 @@
io.prometheusexample-simpleclient-bridge
- 1.9.0
+ 1.9.1-SNAPSHOT8
diff --git a/examples/pom.xml b/examples/pom.xml
index 9af5c13569..abfe14e5ed 100644
--- a/examples/pom.xml
+++ b/examples/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.9.0
+ 1.9.1-SNAPSHOTexamples
diff --git a/integration-tests/it-common/pom.xml b/integration-tests/it-common/pom.xml
index 5be4bf277a..80c25d7cc8 100644
--- a/integration-tests/it-common/pom.xml
+++ b/integration-tests/it-common/pom.xml
@@ -5,7 +5,7 @@
io.prometheusintegration-tests
- 1.9.0
+ 1.9.1-SNAPSHOTit-common
diff --git a/integration-tests/it-exporter/it-exporter-duplicate-metrics-sample/pom.xml b/integration-tests/it-exporter/it-exporter-duplicate-metrics-sample/pom.xml
index dc140ba790..6559a34273 100644
--- a/integration-tests/it-exporter/it-exporter-duplicate-metrics-sample/pom.xml
+++ b/integration-tests/it-exporter/it-exporter-duplicate-metrics-sample/pom.xml
@@ -5,7 +5,7 @@
io.prometheusit-exporter
- 1.9.0
+ 1.9.1-SNAPSHOTit-exporter-duplicate-metrics-sample
diff --git a/integration-tests/it-exporter/it-exporter-httpserver-sample/pom.xml b/integration-tests/it-exporter/it-exporter-httpserver-sample/pom.xml
index b90b537b04..58d4c2111a 100644
--- a/integration-tests/it-exporter/it-exporter-httpserver-sample/pom.xml
+++ b/integration-tests/it-exporter/it-exporter-httpserver-sample/pom.xml
@@ -5,7 +5,7 @@
io.prometheusit-exporter
- 1.9.0
+ 1.9.1-SNAPSHOTit-exporter-httpserver-sample
diff --git a/integration-tests/it-exporter/it-exporter-no-protobuf/pom.xml b/integration-tests/it-exporter/it-exporter-no-protobuf/pom.xml
index abc1567223..a81c64510f 100644
--- a/integration-tests/it-exporter/it-exporter-no-protobuf/pom.xml
+++ b/integration-tests/it-exporter/it-exporter-no-protobuf/pom.xml
@@ -5,7 +5,7 @@
io.prometheusit-exporter
- 1.9.0
+ 1.9.1-SNAPSHOTit-exporter-no-protobuf
diff --git a/integration-tests/it-exporter/it-exporter-servlet-jetty-sample/pom.xml b/integration-tests/it-exporter/it-exporter-servlet-jetty-sample/pom.xml
index 7e03dc1877..65078df555 100644
--- a/integration-tests/it-exporter/it-exporter-servlet-jetty-sample/pom.xml
+++ b/integration-tests/it-exporter/it-exporter-servlet-jetty-sample/pom.xml
@@ -5,7 +5,7 @@
io.prometheusit-exporter
- 1.9.0
+ 1.9.1-SNAPSHOTit-exporter-servlet-jetty-sample
diff --git a/integration-tests/it-exporter/it-exporter-servlet-tomcat-sample/pom.xml b/integration-tests/it-exporter/it-exporter-servlet-tomcat-sample/pom.xml
index 4d85ba98e3..7cf4e1b9b1 100644
--- a/integration-tests/it-exporter/it-exporter-servlet-tomcat-sample/pom.xml
+++ b/integration-tests/it-exporter/it-exporter-servlet-tomcat-sample/pom.xml
@@ -5,7 +5,7 @@
io.prometheusit-exporter
- 1.9.0
+ 1.9.1-SNAPSHOTit-exporter-servlet-tomcat-sample
diff --git a/integration-tests/it-exporter/it-exporter-test/pom.xml b/integration-tests/it-exporter/it-exporter-test/pom.xml
index 39eddae9a9..dcd4d86bfd 100644
--- a/integration-tests/it-exporter/it-exporter-test/pom.xml
+++ b/integration-tests/it-exporter/it-exporter-test/pom.xml
@@ -5,7 +5,7 @@
io.prometheusit-exporter
- 1.9.0
+ 1.9.1-SNAPSHOTit-exporter-test
diff --git a/integration-tests/it-exporter/it-no-protobuf-test/pom.xml b/integration-tests/it-exporter/it-no-protobuf-test/pom.xml
index d1a0e2fda9..3c1dcff7de 100644
--- a/integration-tests/it-exporter/it-no-protobuf-test/pom.xml
+++ b/integration-tests/it-exporter/it-no-protobuf-test/pom.xml
@@ -5,7 +5,7 @@
io.prometheusit-exporter
- 1.9.0
+ 1.9.1-SNAPSHOTit-no-protobuf-test
diff --git a/integration-tests/it-exporter/pom.xml b/integration-tests/it-exporter/pom.xml
index 23e8f5c3d6..0dc081d0eb 100644
--- a/integration-tests/it-exporter/pom.xml
+++ b/integration-tests/it-exporter/pom.xml
@@ -5,7 +5,7 @@
io.prometheusintegration-tests
- 1.9.0
+ 1.9.1-SNAPSHOTit-exporter
diff --git a/integration-tests/it-pushgateway/pom.xml b/integration-tests/it-pushgateway/pom.xml
index fcdba5a674..34614fb792 100644
--- a/integration-tests/it-pushgateway/pom.xml
+++ b/integration-tests/it-pushgateway/pom.xml
@@ -5,7 +5,7 @@
io.prometheusintegration-tests
- 1.9.0
+ 1.9.1-SNAPSHOTit-pushgateway
diff --git a/integration-tests/it-spring-boot-smoke-test/pom.xml b/integration-tests/it-spring-boot-smoke-test/pom.xml
index 1900183fb8..aa9ca16353 100644
--- a/integration-tests/it-spring-boot-smoke-test/pom.xml
+++ b/integration-tests/it-spring-boot-smoke-test/pom.xml
@@ -12,7 +12,7 @@
io.prometheusit-spring-boot-smoke-test
- 1.9.0
+ 1.9.1-SNAPSHOTIntegration Test - Spring Smoke Tests
diff --git a/integration-tests/pom.xml b/integration-tests/pom.xml
index 0a8aadd846..d53bbdd40d 100644
--- a/integration-tests/pom.xml
+++ b/integration-tests/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.9.0
+ 1.9.1-SNAPSHOTintegration-tests
diff --git a/pom.xml b/pom.xml
index 91a524f7ba..032fa92673 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
io.prometheusclient_java_parent
- 1.9.0
+ 1.9.1-SNAPSHOTprometheus-metrics-parent/pom.xml
@@ -30,7 +30,7 @@
825
- 1.8.0
+ 1.9.00.70falsefalse
diff --git a/prometheus-metrics-annotations/pom.xml b/prometheus-metrics-annotations/pom.xml
index 10f6d784ba..9ea0703cce 100644
--- a/prometheus-metrics-annotations/pom.xml
+++ b/prometheus-metrics-annotations/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.9.0
+ 1.9.1-SNAPSHOTprometheus-metrics-annotations
diff --git a/prometheus-metrics-bom/pom.xml b/prometheus-metrics-bom/pom.xml
index 86fc4d52d1..6aafaf39e1 100644
--- a/prometheus-metrics-bom/pom.xml
+++ b/prometheus-metrics-bom/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java_parent
- 1.9.0
+ 1.9.1-SNAPSHOT../prometheus-metrics-parent/pom.xml
diff --git a/prometheus-metrics-config/pom.xml b/prometheus-metrics-config/pom.xml
index c97c491e27..dca2e64171 100644
--- a/prometheus-metrics-config/pom.xml
+++ b/prometheus-metrics-config/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.9.0
+ 1.9.1-SNAPSHOTprometheus-metrics-config
diff --git a/prometheus-metrics-core/pom.xml b/prometheus-metrics-core/pom.xml
index b4c16ea617..8d70fb7690 100644
--- a/prometheus-metrics-core/pom.xml
+++ b/prometheus-metrics-core/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.9.0
+ 1.9.1-SNAPSHOTprometheus-metrics-core
diff --git a/prometheus-metrics-exporter-common/pom.xml b/prometheus-metrics-exporter-common/pom.xml
index 959e121224..56b3de5c0d 100644
--- a/prometheus-metrics-exporter-common/pom.xml
+++ b/prometheus-metrics-exporter-common/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.9.0
+ 1.9.1-SNAPSHOTprometheus-metrics-exporter-common
diff --git a/prometheus-metrics-exporter-httpserver/pom.xml b/prometheus-metrics-exporter-httpserver/pom.xml
index 30f9635df7..171e070c65 100644
--- a/prometheus-metrics-exporter-httpserver/pom.xml
+++ b/prometheus-metrics-exporter-httpserver/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.9.0
+ 1.9.1-SNAPSHOTprometheus-metrics-exporter-httpserver
diff --git a/prometheus-metrics-exporter-opentelemetry-otel-agent-resources/pom.xml b/prometheus-metrics-exporter-opentelemetry-otel-agent-resources/pom.xml
index 959680eae1..e2d6899e9f 100644
--- a/prometheus-metrics-exporter-opentelemetry-otel-agent-resources/pom.xml
+++ b/prometheus-metrics-exporter-opentelemetry-otel-agent-resources/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.9.0
+ 1.9.1-SNAPSHOTprometheus-metrics-exporter-opentelemetry-otel-agent-resources
diff --git a/prometheus-metrics-exporter-opentelemetry-shaded/pom.xml b/prometheus-metrics-exporter-opentelemetry-shaded/pom.xml
index 99cf03ffca..f228bcb734 100644
--- a/prometheus-metrics-exporter-opentelemetry-shaded/pom.xml
+++ b/prometheus-metrics-exporter-opentelemetry-shaded/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.9.0
+ 1.9.1-SNAPSHOTprometheus-metrics-exporter-opentelemetry
diff --git a/prometheus-metrics-exporter-opentelemetry/pom.xml b/prometheus-metrics-exporter-opentelemetry/pom.xml
index cd4fd538d8..5f615c4520 100644
--- a/prometheus-metrics-exporter-opentelemetry/pom.xml
+++ b/prometheus-metrics-exporter-opentelemetry/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.9.0
+ 1.9.1-SNAPSHOTprometheus-metrics-exporter-opentelemetry-no-otel
diff --git a/prometheus-metrics-exporter-pushgateway/pom.xml b/prometheus-metrics-exporter-pushgateway/pom.xml
index 34626053fc..b09280b842 100644
--- a/prometheus-metrics-exporter-pushgateway/pom.xml
+++ b/prometheus-metrics-exporter-pushgateway/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.9.0
+ 1.9.1-SNAPSHOTprometheus-metrics-exporter-pushgateway
diff --git a/prometheus-metrics-exporter-servlet-jakarta/pom.xml b/prometheus-metrics-exporter-servlet-jakarta/pom.xml
index 5631651bbc..7a345ec51b 100644
--- a/prometheus-metrics-exporter-servlet-jakarta/pom.xml
+++ b/prometheus-metrics-exporter-servlet-jakarta/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.9.0
+ 1.9.1-SNAPSHOTprometheus-metrics-exporter-servlet-jakarta
diff --git a/prometheus-metrics-exporter-servlet-javax/pom.xml b/prometheus-metrics-exporter-servlet-javax/pom.xml
index 795fe00085..fe73508690 100644
--- a/prometheus-metrics-exporter-servlet-javax/pom.xml
+++ b/prometheus-metrics-exporter-servlet-javax/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.9.0
+ 1.9.1-SNAPSHOTprometheus-metrics-exporter-servlet-javax
diff --git a/prometheus-metrics-exposition-formats-shaded/pom.xml b/prometheus-metrics-exposition-formats-shaded/pom.xml
index f2ddb5db15..27644ab523 100644
--- a/prometheus-metrics-exposition-formats-shaded/pom.xml
+++ b/prometheus-metrics-exposition-formats-shaded/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.9.0
+ 1.9.1-SNAPSHOTprometheus-metrics-exposition-formats
diff --git a/prometheus-metrics-exposition-formats/pom.xml b/prometheus-metrics-exposition-formats/pom.xml
index f5514cb9f9..0129cf674f 100644
--- a/prometheus-metrics-exposition-formats/pom.xml
+++ b/prometheus-metrics-exposition-formats/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.9.0
+ 1.9.1-SNAPSHOTprometheus-metrics-exposition-formats-no-protobuf
diff --git a/prometheus-metrics-exposition-textformats/pom.xml b/prometheus-metrics-exposition-textformats/pom.xml
index 439c00664c..76c33ab6f9 100644
--- a/prometheus-metrics-exposition-textformats/pom.xml
+++ b/prometheus-metrics-exposition-textformats/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.9.0
+ 1.9.1-SNAPSHOTprometheus-metrics-exposition-textformats
diff --git a/prometheus-metrics-instrumentation-caffeine/pom.xml b/prometheus-metrics-instrumentation-caffeine/pom.xml
index 49f6abcd68..037de2113d 100644
--- a/prometheus-metrics-instrumentation-caffeine/pom.xml
+++ b/prometheus-metrics-instrumentation-caffeine/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.9.0
+ 1.9.1-SNAPSHOTprometheus-metrics-instrumentation-caffeine
diff --git a/prometheus-metrics-instrumentation-dropwizard/pom.xml b/prometheus-metrics-instrumentation-dropwizard/pom.xml
index 3dea563986..73da31252f 100644
--- a/prometheus-metrics-instrumentation-dropwizard/pom.xml
+++ b/prometheus-metrics-instrumentation-dropwizard/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.9.0
+ 1.9.1-SNAPSHOTprometheus-metrics-instrumentation-dropwizard
diff --git a/prometheus-metrics-instrumentation-dropwizard5/pom.xml b/prometheus-metrics-instrumentation-dropwizard5/pom.xml
index c24018b635..aae69f2d9d 100644
--- a/prometheus-metrics-instrumentation-dropwizard5/pom.xml
+++ b/prometheus-metrics-instrumentation-dropwizard5/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.9.0
+ 1.9.1-SNAPSHOTprometheus-metrics-instrumentation-dropwizard5
diff --git a/prometheus-metrics-instrumentation-guava/pom.xml b/prometheus-metrics-instrumentation-guava/pom.xml
index c5cc13bcdd..56afabd3d0 100644
--- a/prometheus-metrics-instrumentation-guava/pom.xml
+++ b/prometheus-metrics-instrumentation-guava/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.9.0
+ 1.9.1-SNAPSHOTprometheus-metrics-instrumentation-guava
diff --git a/prometheus-metrics-instrumentation-jvm/pom.xml b/prometheus-metrics-instrumentation-jvm/pom.xml
index 6fca024484..177d150869 100644
--- a/prometheus-metrics-instrumentation-jvm/pom.xml
+++ b/prometheus-metrics-instrumentation-jvm/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.9.0
+ 1.9.1-SNAPSHOTprometheus-metrics-instrumentation-jvm
diff --git a/prometheus-metrics-model/pom.xml b/prometheus-metrics-model/pom.xml
index 2e1a22885f..ad22930960 100644
--- a/prometheus-metrics-model/pom.xml
+++ b/prometheus-metrics-model/pom.xml
@@ -6,7 +6,7 @@
io.prometheusclient_java
- 1.9.0
+ 1.9.1-SNAPSHOTprometheus-metrics-model
diff --git a/prometheus-metrics-otel-support/pom.xml b/prometheus-metrics-otel-support/pom.xml
index f63edc5132..c5eac25f9d 100644
--- a/prometheus-metrics-otel-support/pom.xml
+++ b/prometheus-metrics-otel-support/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.9.0
+ 1.9.1-SNAPSHOTprometheus-metrics-otel-support
diff --git a/prometheus-metrics-parent/pom.xml b/prometheus-metrics-parent/pom.xml
index a298a8f31d..06221a5578 100644
--- a/prometheus-metrics-parent/pom.xml
+++ b/prometheus-metrics-parent/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java_parent
- 1.9.0
+ 1.9.1-SNAPSHOTPrometheus Metrics Library Parenthttp://github.com/prometheus/client_java
diff --git a/prometheus-metrics-simpleclient-bridge/pom.xml b/prometheus-metrics-simpleclient-bridge/pom.xml
index 19f58e0070..2514b496c5 100644
--- a/prometheus-metrics-simpleclient-bridge/pom.xml
+++ b/prometheus-metrics-simpleclient-bridge/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.9.0
+ 1.9.1-SNAPSHOTprometheus-metrics-simpleclient-bridge
diff --git a/prometheus-metrics-tracer/pom.xml b/prometheus-metrics-tracer/pom.xml
index 81af60c252..8c7e22fc9e 100644
--- a/prometheus-metrics-tracer/pom.xml
+++ b/prometheus-metrics-tracer/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.9.0
+ 1.9.1-SNAPSHOTprometheus-metrics-tracer
diff --git a/prometheus-metrics-tracer/prometheus-metrics-tracer-common/pom.xml b/prometheus-metrics-tracer/prometheus-metrics-tracer-common/pom.xml
index c7da445c62..a6746a2cca 100644
--- a/prometheus-metrics-tracer/prometheus-metrics-tracer-common/pom.xml
+++ b/prometheus-metrics-tracer/prometheus-metrics-tracer-common/pom.xml
@@ -5,7 +5,7 @@
io.prometheusprometheus-metrics-tracer
- 1.9.0
+ 1.9.1-SNAPSHOTprometheus-metrics-tracer-common
diff --git a/prometheus-metrics-tracer/prometheus-metrics-tracer-initializer/pom.xml b/prometheus-metrics-tracer/prometheus-metrics-tracer-initializer/pom.xml
index 4d9f9eb9ec..3d0be16059 100644
--- a/prometheus-metrics-tracer/prometheus-metrics-tracer-initializer/pom.xml
+++ b/prometheus-metrics-tracer/prometheus-metrics-tracer-initializer/pom.xml
@@ -5,7 +5,7 @@
io.prometheusprometheus-metrics-tracer
- 1.9.0
+ 1.9.1-SNAPSHOTprometheus-metrics-tracer-initializer
diff --git a/prometheus-metrics-tracer/prometheus-metrics-tracer-otel-agent/pom.xml b/prometheus-metrics-tracer/prometheus-metrics-tracer-otel-agent/pom.xml
index fc7a8160e8..4612ffd1f5 100644
--- a/prometheus-metrics-tracer/prometheus-metrics-tracer-otel-agent/pom.xml
+++ b/prometheus-metrics-tracer/prometheus-metrics-tracer-otel-agent/pom.xml
@@ -5,7 +5,7 @@
io.prometheusprometheus-metrics-tracer
- 1.9.0
+ 1.9.1-SNAPSHOTprometheus-metrics-tracer-otel-agent
diff --git a/prometheus-metrics-tracer/prometheus-metrics-tracer-otel/pom.xml b/prometheus-metrics-tracer/prometheus-metrics-tracer-otel/pom.xml
index 7804185b33..1e3c2af9f6 100644
--- a/prometheus-metrics-tracer/prometheus-metrics-tracer-otel/pom.xml
+++ b/prometheus-metrics-tracer/prometheus-metrics-tracer-otel/pom.xml
@@ -5,7 +5,7 @@
io.prometheusprometheus-metrics-tracer
- 1.9.0
+ 1.9.1-SNAPSHOTprometheus-metrics-tracer-otel
diff --git a/simpleclient-archive/integration_tests/it_common/pom.xml b/simpleclient-archive/integration_tests/it_common/pom.xml
index 8b506947a0..faf50f000c 100644
--- a/simpleclient-archive/integration_tests/it_common/pom.xml
+++ b/simpleclient-archive/integration_tests/it_common/pom.xml
@@ -5,7 +5,7 @@
io.prometheusintegration_tests
- 1.9.0
+ 1.9.1-SNAPSHOTit_common
diff --git a/simpleclient-archive/integration_tests/it_exemplars_otel_agent/pom.xml b/simpleclient-archive/integration_tests/it_exemplars_otel_agent/pom.xml
index eabd731a9a..e4a4959495 100644
--- a/simpleclient-archive/integration_tests/it_exemplars_otel_agent/pom.xml
+++ b/simpleclient-archive/integration_tests/it_exemplars_otel_agent/pom.xml
@@ -5,7 +5,7 @@
io.prometheusintegration_tests
- 1.9.0
+ 1.9.1-SNAPSHOTit_exemplars_otel_agent
diff --git a/simpleclient-archive/integration_tests/it_exemplars_otel_sdk/pom.xml b/simpleclient-archive/integration_tests/it_exemplars_otel_sdk/pom.xml
index fd1a2ea950..d98f3f6f50 100644
--- a/simpleclient-archive/integration_tests/it_exemplars_otel_sdk/pom.xml
+++ b/simpleclient-archive/integration_tests/it_exemplars_otel_sdk/pom.xml
@@ -5,7 +5,7 @@
io.prometheusintegration_tests
- 1.9.0
+ 1.9.1-SNAPSHOTit_exemplars_otel_sdk
diff --git a/simpleclient-archive/integration_tests/it_java_versions/pom.xml b/simpleclient-archive/integration_tests/it_java_versions/pom.xml
index 35e18b8962..475c2660a0 100644
--- a/simpleclient-archive/integration_tests/it_java_versions/pom.xml
+++ b/simpleclient-archive/integration_tests/it_java_versions/pom.xml
@@ -5,7 +5,7 @@
io.prometheusintegration_tests
- 1.9.0
+ 1.9.1-SNAPSHOTit_java_versions
diff --git a/simpleclient-archive/integration_tests/it_log4j2/pom.xml b/simpleclient-archive/integration_tests/it_log4j2/pom.xml
index 9591ca4dee..5e87bd9eca 100644
--- a/simpleclient-archive/integration_tests/it_log4j2/pom.xml
+++ b/simpleclient-archive/integration_tests/it_log4j2/pom.xml
@@ -5,7 +5,7 @@
io.prometheusintegration_tests
- 1.9.0
+ 1.9.1-SNAPSHOTit_log4j2
diff --git a/simpleclient-archive/integration_tests/it_pushgateway/pom.xml b/simpleclient-archive/integration_tests/it_pushgateway/pom.xml
index 100d55e15f..62cc92792a 100644
--- a/simpleclient-archive/integration_tests/it_pushgateway/pom.xml
+++ b/simpleclient-archive/integration_tests/it_pushgateway/pom.xml
@@ -5,7 +5,7 @@
io.prometheusintegration_tests
- 1.9.0
+ 1.9.1-SNAPSHOTit_pushgateway
diff --git a/simpleclient-archive/integration_tests/it_servlet_jakarta_exporter_webxml/pom.xml b/simpleclient-archive/integration_tests/it_servlet_jakarta_exporter_webxml/pom.xml
index 08e7bc7b11..f2a00d60de 100644
--- a/simpleclient-archive/integration_tests/it_servlet_jakarta_exporter_webxml/pom.xml
+++ b/simpleclient-archive/integration_tests/it_servlet_jakarta_exporter_webxml/pom.xml
@@ -5,7 +5,7 @@
io.prometheusintegration_tests
- 1.9.0
+ 1.9.1-SNAPSHOTit_servlet_jakarta_exporter_webxml
diff --git a/simpleclient-archive/integration_tests/pom.xml b/simpleclient-archive/integration_tests/pom.xml
index 37e3184ecb..654177bffe 100644
--- a/simpleclient-archive/integration_tests/pom.xml
+++ b/simpleclient-archive/integration_tests/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.9.0
+ 1.9.1-SNAPSHOTintegration_tests
diff --git a/simpleclient-archive/simpleclient_graphite_bridge/pom.xml b/simpleclient-archive/simpleclient_graphite_bridge/pom.xml
index 4204d27b34..7680237e76 100644
--- a/simpleclient-archive/simpleclient_graphite_bridge/pom.xml
+++ b/simpleclient-archive/simpleclient_graphite_bridge/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.9.0
+ 1.9.1-SNAPSHOTsimpleclient_graphite_bridge
diff --git a/simpleclient-archive/simpleclient_hibernate/pom.xml b/simpleclient-archive/simpleclient_hibernate/pom.xml
index 3be031c42b..d98bd84300 100644
--- a/simpleclient-archive/simpleclient_hibernate/pom.xml
+++ b/simpleclient-archive/simpleclient_hibernate/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.9.0
+ 1.9.1-SNAPSHOTsimpleclient_hibernate
diff --git a/simpleclient-archive/simpleclient_httpserver/pom.xml b/simpleclient-archive/simpleclient_httpserver/pom.xml
index fc34238ff8..49a18583f1 100644
--- a/simpleclient-archive/simpleclient_httpserver/pom.xml
+++ b/simpleclient-archive/simpleclient_httpserver/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.9.0
+ 1.9.1-SNAPSHOTsimpleclient_httpserver
diff --git a/simpleclient-archive/simpleclient_jetty/pom.xml b/simpleclient-archive/simpleclient_jetty/pom.xml
index 54e25a4033..d867dccc39 100644
--- a/simpleclient-archive/simpleclient_jetty/pom.xml
+++ b/simpleclient-archive/simpleclient_jetty/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.9.0
+ 1.9.1-SNAPSHOTsimpleclient_jetty
diff --git a/simpleclient-archive/simpleclient_jetty_jdk8/pom.xml b/simpleclient-archive/simpleclient_jetty_jdk8/pom.xml
index f08ffc8050..fcf055731a 100644
--- a/simpleclient-archive/simpleclient_jetty_jdk8/pom.xml
+++ b/simpleclient-archive/simpleclient_jetty_jdk8/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.9.0
+ 1.9.1-SNAPSHOTsimpleclient_jetty_jdk8
diff --git a/simpleclient-archive/simpleclient_log4j/pom.xml b/simpleclient-archive/simpleclient_log4j/pom.xml
index 6719dd9411..979b85befa 100644
--- a/simpleclient-archive/simpleclient_log4j/pom.xml
+++ b/simpleclient-archive/simpleclient_log4j/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.9.0
+ 1.9.1-SNAPSHOTsimpleclient_log4j
diff --git a/simpleclient-archive/simpleclient_log4j2/pom.xml b/simpleclient-archive/simpleclient_log4j2/pom.xml
index 7a060cffdf..a3ed695580 100644
--- a/simpleclient-archive/simpleclient_log4j2/pom.xml
+++ b/simpleclient-archive/simpleclient_log4j2/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.9.0
+ 1.9.1-SNAPSHOTsimpleclient_log4j2
diff --git a/simpleclient-archive/simpleclient_logback/pom.xml b/simpleclient-archive/simpleclient_logback/pom.xml
index 448aa3ede0..078f6aefaa 100644
--- a/simpleclient-archive/simpleclient_logback/pom.xml
+++ b/simpleclient-archive/simpleclient_logback/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.9.0
+ 1.9.1-SNAPSHOTsimpleclient_logback
diff --git a/simpleclient-archive/simpleclient_servlet/pom.xml b/simpleclient-archive/simpleclient_servlet/pom.xml
index 29cb18cab7..cac09d622a 100644
--- a/simpleclient-archive/simpleclient_servlet/pom.xml
+++ b/simpleclient-archive/simpleclient_servlet/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.9.0
+ 1.9.1-SNAPSHOTsimpleclient_servlet
diff --git a/simpleclient-archive/simpleclient_servlet_common/pom.xml b/simpleclient-archive/simpleclient_servlet_common/pom.xml
index fe135cb0ea..bbbce3ec29 100644
--- a/simpleclient-archive/simpleclient_servlet_common/pom.xml
+++ b/simpleclient-archive/simpleclient_servlet_common/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.9.0
+ 1.9.1-SNAPSHOTsimpleclient_servlet_common
diff --git a/simpleclient-archive/simpleclient_servlet_jakarta/pom.xml b/simpleclient-archive/simpleclient_servlet_jakarta/pom.xml
index 9aa32c6951..2e8260a9e7 100644
--- a/simpleclient-archive/simpleclient_servlet_jakarta/pom.xml
+++ b/simpleclient-archive/simpleclient_servlet_jakarta/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.9.0
+ 1.9.1-SNAPSHOTsimpleclient_servlet_jakarta
diff --git a/simpleclient-archive/simpleclient_spring_web/pom.xml b/simpleclient-archive/simpleclient_spring_web/pom.xml
index 93c12c4820..4f51e10cd6 100644
--- a/simpleclient-archive/simpleclient_spring_web/pom.xml
+++ b/simpleclient-archive/simpleclient_spring_web/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.9.0
+ 1.9.1-SNAPSHOTsimpleclient_spring_web
diff --git a/simpleclient-archive/simpleclient_vertx/pom.xml b/simpleclient-archive/simpleclient_vertx/pom.xml
index 258d6286b8..d2d3fc71cc 100644
--- a/simpleclient-archive/simpleclient_vertx/pom.xml
+++ b/simpleclient-archive/simpleclient_vertx/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.9.0
+ 1.9.1-SNAPSHOTsimpleclient_vertx
diff --git a/simpleclient-archive/simpleclient_vertx4/pom.xml b/simpleclient-archive/simpleclient_vertx4/pom.xml
index 9f93f4bd58..dd6b4ec207 100644
--- a/simpleclient-archive/simpleclient_vertx4/pom.xml
+++ b/simpleclient-archive/simpleclient_vertx4/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.9.0
+ 1.9.1-SNAPSHOTsimpleclient_vertx4
From dca6531eaa1302e106f8a0cecfef62bab4ea7e33 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Wed, 16 Sep 2026 10:31:35 +0200
Subject: [PATCH 165/255] chore(deps): update eclipse-temurin:25.0.4_7-jre
docker digest to 41162a7 (#2479)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [eclipse-temurin](https://hub.docker.com/_/eclipse-temurin)
([source](https://redirect.github.com/adoptium/containers)) | final |
digest | `15090d1` → `41162a7` |
| [eclipse-temurin](https://hub.docker.com/_/eclipse-temurin)
([source](https://redirect.github.com/adoptium/containers)) | | digest |
`15090d1` → `41162a7` |
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about these
updates again.
---
- [ ] If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/prometheus/client_java).
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
examples/example-custom-buckets/docker-compose.yaml | 2 +-
.../example-exporter-opentelemetry/oats-tests/agent/Dockerfile | 2 +-
.../example-exporter-opentelemetry/oats-tests/http/Dockerfile | 2 +-
examples/example-native-histogram/docker-compose.yaml | 2 +-
4 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/examples/example-custom-buckets/docker-compose.yaml b/examples/example-custom-buckets/docker-compose.yaml
index d88331a353..d7c3adfdce 100644
--- a/examples/example-custom-buckets/docker-compose.yaml
+++ b/examples/example-custom-buckets/docker-compose.yaml
@@ -1,7 +1,7 @@
version: "3"
services:
example-application:
- image: eclipse-temurin:25.0.4_7-jre@sha256:15090d159279e5c158473eccb48cd87f57b3e3a47511a797eb5a7a7ea6f86b0f
+ image: eclipse-temurin:25.0.4_7-jre@sha256:41162a70cf9579d1dcbbb74614e432ff81f9d3a1d785c8f6bd63b7d82d5b3a21
network_mode: host
volumes:
- ./target/example-custom-buckets.jar:/example-custom-buckets.jar
diff --git a/examples/example-exporter-opentelemetry/oats-tests/agent/Dockerfile b/examples/example-exporter-opentelemetry/oats-tests/agent/Dockerfile
index a65e5f2355..6ae18b9cd8 100644
--- a/examples/example-exporter-opentelemetry/oats-tests/agent/Dockerfile
+++ b/examples/example-exporter-opentelemetry/oats-tests/agent/Dockerfile
@@ -1,4 +1,4 @@
-FROM eclipse-temurin:25.0.4_7-jre@sha256:15090d159279e5c158473eccb48cd87f57b3e3a47511a797eb5a7a7ea6f86b0f
+FROM eclipse-temurin:25.0.4_7-jre@sha256:41162a70cf9579d1dcbbb74614e432ff81f9d3a1d785c8f6bd63b7d82d5b3a21
COPY target/example-exporter-opentelemetry.jar ./app.jar
# check that the resource attributes from the agent are used, epsecially the service.instance.id should be the same
diff --git a/examples/example-exporter-opentelemetry/oats-tests/http/Dockerfile b/examples/example-exporter-opentelemetry/oats-tests/http/Dockerfile
index dba89fbc37..4069ba2bb6 100644
--- a/examples/example-exporter-opentelemetry/oats-tests/http/Dockerfile
+++ b/examples/example-exporter-opentelemetry/oats-tests/http/Dockerfile
@@ -1,4 +1,4 @@
-FROM eclipse-temurin:25.0.4_7-jre@sha256:15090d159279e5c158473eccb48cd87f57b3e3a47511a797eb5a7a7ea6f86b0f
+FROM eclipse-temurin:25.0.4_7-jre@sha256:41162a70cf9579d1dcbbb74614e432ff81f9d3a1d785c8f6bd63b7d82d5b3a21
COPY target/example-exporter-opentelemetry.jar ./app.jar
diff --git a/examples/example-native-histogram/docker-compose.yaml b/examples/example-native-histogram/docker-compose.yaml
index d54ab45299..4328e67e82 100644
--- a/examples/example-native-histogram/docker-compose.yaml
+++ b/examples/example-native-histogram/docker-compose.yaml
@@ -1,7 +1,7 @@
version: "3"
services:
example-application:
- image: eclipse-temurin:25.0.4_7-jre@sha256:15090d159279e5c158473eccb48cd87f57b3e3a47511a797eb5a7a7ea6f86b0f
+ image: eclipse-temurin:25.0.4_7-jre@sha256:41162a70cf9579d1dcbbb74614e432ff81f9d3a1d785c8f6bd63b7d82d5b3a21
network_mode: host
volumes:
- ./target/example-native-histogram.jar:/example-native-histogram.jar
From f1bd53a3fe773529f8129e7088caf5051759be82 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Wed, 16 Sep 2026 16:14:25 +0200
Subject: [PATCH 166/255] chore(deps): update eclipse-temurin:25.0.4_7-jre
docker digest to 611e326 (#2483)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [eclipse-temurin](https://hub.docker.com/_/eclipse-temurin)
([source](https://redirect.github.com/adoptium/containers)) | final |
digest | `41162a7` → `611e326` |
| [eclipse-temurin](https://hub.docker.com/_/eclipse-temurin)
([source](https://redirect.github.com/adoptium/containers)) | | digest |
`41162a7` → `611e326` |
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about these
updates again.
---
- [ ] If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/prometheus/client_java).
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
examples/example-custom-buckets/docker-compose.yaml | 2 +-
.../example-exporter-opentelemetry/oats-tests/agent/Dockerfile | 2 +-
.../example-exporter-opentelemetry/oats-tests/http/Dockerfile | 2 +-
examples/example-native-histogram/docker-compose.yaml | 2 +-
4 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/examples/example-custom-buckets/docker-compose.yaml b/examples/example-custom-buckets/docker-compose.yaml
index d7c3adfdce..30bc700283 100644
--- a/examples/example-custom-buckets/docker-compose.yaml
+++ b/examples/example-custom-buckets/docker-compose.yaml
@@ -1,7 +1,7 @@
version: "3"
services:
example-application:
- image: eclipse-temurin:25.0.4_7-jre@sha256:41162a70cf9579d1dcbbb74614e432ff81f9d3a1d785c8f6bd63b7d82d5b3a21
+ image: eclipse-temurin:25.0.4_7-jre@sha256:611e326900ba9edcedfb246ede24efc66a911fa496ac623db9f33cae88a2d83b
network_mode: host
volumes:
- ./target/example-custom-buckets.jar:/example-custom-buckets.jar
diff --git a/examples/example-exporter-opentelemetry/oats-tests/agent/Dockerfile b/examples/example-exporter-opentelemetry/oats-tests/agent/Dockerfile
index 6ae18b9cd8..00f21e76f1 100644
--- a/examples/example-exporter-opentelemetry/oats-tests/agent/Dockerfile
+++ b/examples/example-exporter-opentelemetry/oats-tests/agent/Dockerfile
@@ -1,4 +1,4 @@
-FROM eclipse-temurin:25.0.4_7-jre@sha256:41162a70cf9579d1dcbbb74614e432ff81f9d3a1d785c8f6bd63b7d82d5b3a21
+FROM eclipse-temurin:25.0.4_7-jre@sha256:611e326900ba9edcedfb246ede24efc66a911fa496ac623db9f33cae88a2d83b
COPY target/example-exporter-opentelemetry.jar ./app.jar
# check that the resource attributes from the agent are used, epsecially the service.instance.id should be the same
diff --git a/examples/example-exporter-opentelemetry/oats-tests/http/Dockerfile b/examples/example-exporter-opentelemetry/oats-tests/http/Dockerfile
index 4069ba2bb6..5f8418c0d0 100644
--- a/examples/example-exporter-opentelemetry/oats-tests/http/Dockerfile
+++ b/examples/example-exporter-opentelemetry/oats-tests/http/Dockerfile
@@ -1,4 +1,4 @@
-FROM eclipse-temurin:25.0.4_7-jre@sha256:41162a70cf9579d1dcbbb74614e432ff81f9d3a1d785c8f6bd63b7d82d5b3a21
+FROM eclipse-temurin:25.0.4_7-jre@sha256:611e326900ba9edcedfb246ede24efc66a911fa496ac623db9f33cae88a2d83b
COPY target/example-exporter-opentelemetry.jar ./app.jar
diff --git a/examples/example-native-histogram/docker-compose.yaml b/examples/example-native-histogram/docker-compose.yaml
index 4328e67e82..543a8bdf3d 100644
--- a/examples/example-native-histogram/docker-compose.yaml
+++ b/examples/example-native-histogram/docker-compose.yaml
@@ -1,7 +1,7 @@
version: "3"
services:
example-application:
- image: eclipse-temurin:25.0.4_7-jre@sha256:41162a70cf9579d1dcbbb74614e432ff81f9d3a1d785c8f6bd63b7d82d5b3a21
+ image: eclipse-temurin:25.0.4_7-jre@sha256:611e326900ba9edcedfb246ede24efc66a911fa496ac623db9f33cae88a2d83b
network_mode: host
volumes:
- ./target/example-native-histogram.jar:/example-native-histogram.jar
From 314ea477db3da10139fbbd3a9c49ffe514094011 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Fri, 18 Sep 2026 08:30:09 +0200
Subject: [PATCH 167/255] chore(deps): update eclipse-temurin:25.0.4_7-jre
docker digest to bb036ed (#2485)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [eclipse-temurin](https://hub.docker.com/_/eclipse-temurin)
([source](https://redirect.github.com/adoptium/containers)) | final |
digest | `611e326` → `bb036ed` |
| [eclipse-temurin](https://hub.docker.com/_/eclipse-temurin)
([source](https://redirect.github.com/adoptium/containers)) | | digest |
`611e326` → `bb036ed` |
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about these
updates again.
---
- [ ] If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/prometheus/client_java).
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
examples/example-custom-buckets/docker-compose.yaml | 2 +-
.../example-exporter-opentelemetry/oats-tests/agent/Dockerfile | 2 +-
.../example-exporter-opentelemetry/oats-tests/http/Dockerfile | 2 +-
examples/example-native-histogram/docker-compose.yaml | 2 +-
4 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/examples/example-custom-buckets/docker-compose.yaml b/examples/example-custom-buckets/docker-compose.yaml
index 30bc700283..977e17ff0a 100644
--- a/examples/example-custom-buckets/docker-compose.yaml
+++ b/examples/example-custom-buckets/docker-compose.yaml
@@ -1,7 +1,7 @@
version: "3"
services:
example-application:
- image: eclipse-temurin:25.0.4_7-jre@sha256:611e326900ba9edcedfb246ede24efc66a911fa496ac623db9f33cae88a2d83b
+ image: eclipse-temurin:25.0.4_7-jre@sha256:bb036ed6cfdc57e3da7c22634d15f1b840d2caf76183861c80e81ca4b5104abb
network_mode: host
volumes:
- ./target/example-custom-buckets.jar:/example-custom-buckets.jar
diff --git a/examples/example-exporter-opentelemetry/oats-tests/agent/Dockerfile b/examples/example-exporter-opentelemetry/oats-tests/agent/Dockerfile
index 00f21e76f1..d89cb313f5 100644
--- a/examples/example-exporter-opentelemetry/oats-tests/agent/Dockerfile
+++ b/examples/example-exporter-opentelemetry/oats-tests/agent/Dockerfile
@@ -1,4 +1,4 @@
-FROM eclipse-temurin:25.0.4_7-jre@sha256:611e326900ba9edcedfb246ede24efc66a911fa496ac623db9f33cae88a2d83b
+FROM eclipse-temurin:25.0.4_7-jre@sha256:bb036ed6cfdc57e3da7c22634d15f1b840d2caf76183861c80e81ca4b5104abb
COPY target/example-exporter-opentelemetry.jar ./app.jar
# check that the resource attributes from the agent are used, epsecially the service.instance.id should be the same
diff --git a/examples/example-exporter-opentelemetry/oats-tests/http/Dockerfile b/examples/example-exporter-opentelemetry/oats-tests/http/Dockerfile
index 5f8418c0d0..4098244f09 100644
--- a/examples/example-exporter-opentelemetry/oats-tests/http/Dockerfile
+++ b/examples/example-exporter-opentelemetry/oats-tests/http/Dockerfile
@@ -1,4 +1,4 @@
-FROM eclipse-temurin:25.0.4_7-jre@sha256:611e326900ba9edcedfb246ede24efc66a911fa496ac623db9f33cae88a2d83b
+FROM eclipse-temurin:25.0.4_7-jre@sha256:bb036ed6cfdc57e3da7c22634d15f1b840d2caf76183861c80e81ca4b5104abb
COPY target/example-exporter-opentelemetry.jar ./app.jar
diff --git a/examples/example-native-histogram/docker-compose.yaml b/examples/example-native-histogram/docker-compose.yaml
index 543a8bdf3d..6665316ee1 100644
--- a/examples/example-native-histogram/docker-compose.yaml
+++ b/examples/example-native-histogram/docker-compose.yaml
@@ -1,7 +1,7 @@
version: "3"
services:
example-application:
- image: eclipse-temurin:25.0.4_7-jre@sha256:611e326900ba9edcedfb246ede24efc66a911fa496ac623db9f33cae88a2d83b
+ image: eclipse-temurin:25.0.4_7-jre@sha256:bb036ed6cfdc57e3da7c22634d15f1b840d2caf76183861c80e81ca4b5104abb
network_mode: host
volumes:
- ./target/example-native-histogram.jar:/example-native-histogram.jar
From 6d60a5b3855fdd37f09a862eb6bf64464fc7947c Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Fri, 18 Sep 2026 06:30:41 +0000
Subject: [PATCH 168/255] chore(deps): update dependency protoc to v36.2
(#2484)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This PR contains the following updates:
| Package | Type | Update | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|---|---|
| [protoc](https://redirect.github.com/protocolbuffers/protobuf) | tools
| minor | `36.1` → `36.2` |

|

|
|
[com.google.protobuf:protobuf-java](https://developers.google.com/protocol-buffers/)
([source](https://redirect.github.com/protocolbuffers/protobuf)) |
compile | patch | `4.36.1` → `4.36.2` |

|

|
---
### Release Notes
protocolbuffers/protobuf (protoc)
###
[`v36.2`](https://redirect.github.com/protocolbuffers/protobuf/releases/tag/v36.2):
Protocol Buffers v36.2
[Compare
Source](https://redirect.github.com/protocolbuffers/protobuf/compare/v36.1...v36.2)
### Announcements
- [Protobuf News](https://protobuf.dev/news/) may include additional
announcements or pre-announcements for upcoming changes.
### Compiler
- Detects single-crate cross-file symbol collisions and conditionally
emits crate-root re-exports.
([`3078015`](https://redirect.github.com/protocolbuffers/protobuf/commit/30780158a07394a22eba3d57527ef32cac795e76))
- Prepend the file module name to Rust type paths to use canonical
paths.
([`7390c85`](https://redirect.github.com/protocolbuffers/protobuf/commit/7390c85c5ce3707ab236aeb511eeeaba49c2f4fa))
- Expose generated per-file Rust proto modules as public.
([`7ed8a4b`](https://redirect.github.com/protocolbuffers/protobuf/commit/7ed8a4bd72ba92b741fae08d6f05cbf987b7bcf1))
### Csharp
- Regenerate stale files.
([`57ef94f`](https://redirect.github.com/protocolbuffers/protobuf/commit/57ef94fbb3e947c242a0a0a4831960f04b8bbf38))
### Rust
- Update README to note that the protobuf crate is superseded by
google-protobuf.
([`8b6311f`](https://redirect.github.com/protocolbuffers/protobuf/commit/8b6311f91c2fe6fb0ae4c661bdbef6e5b670c403))
- Add README.md to google-protobuf-codegen release crate
([`10b8b5e`](https://redirect.github.com/protocolbuffers/protobuf/commit/10b8b5e3222ffc8868c3338485dd1dfb007dab85))
- Detects single-crate cross-file symbol collisions and conditionally
emits crate-root re-exports.
([`3078015`](https://redirect.github.com/protocolbuffers/protobuf/commit/30780158a07394a22eba3d57527ef32cac795e76))
- Prepend the file module name to Rust type paths to use canonical
paths.
([`7390c85`](https://redirect.github.com/protocolbuffers/protobuf/commit/7390c85c5ce3707ab236aeb511eeeaba49c2f4fa))
- Expose generated per-file Rust proto modules as public.
([`7ed8a4b`](https://redirect.github.com/protocolbuffers/protobuf/commit/7ed8a4bd72ba92b741fae08d6f05cbf987b7bcf1))
- Remove iterator trait implementations for RepeatedMutIter
([`7aca0ec`](https://redirect.github.com/protocolbuffers/protobuf/commit/7aca0ec15c71505aced9eaf3ca3412d41aeb4d7e))
- Enable inherent next() and next\_back() API for RepeatedMutIter
besides trait implementation.
([`2198c6b`](https://redirect.github.com/protocolbuffers/protobuf/commit/2198c6b4016cae3f76595ed3b50b23c3bd8c0add))
- *See also UPB changes below, which may affect Rust.*
### UPB (Python/PHP/Ruby C-Extension)
- Include .c files in the source\_files glob in `upb/port/BUILD`
([`7ff0f88`](https://redirect.github.com/protocolbuffers/protobuf/commit/7ff0f8817b7a35185c94260ae7553b1df50ebbd1))
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.
👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config
help](https://redirect.github.com/renovatebot/renovate/discussions) if
that's undesired.
---
- [ ] If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/prometheus/client_java).
---------
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
---
mise.lock | 44 +-
mise.toml | 2 +-
pom.xml | 2 +-
.../Metrics.java | 1834 ++++++++---------
.../expositionformats/generated/Metrics.java | 2 +-
5 files changed, 942 insertions(+), 942 deletions(-)
rename prometheus-metrics-exposition-formats/src/main/generated/io/prometheus/metrics/expositionformats/generated/{com_google_protobuf_4_36_1 => com_google_protobuf_4_36_2}/Metrics.java (89%)
diff --git a/mise.lock b/mise.lock
index 3ac9c14018..db3ee04b73 100644
--- a/mise.lock
+++ b/mise.lock
@@ -564,43 +564,43 @@ backend = "npm:renovate"
trust_policy_excludes = '["@yarnpkg/libzip@3.2.2"]'
[[tools.protoc]]
-version = "36.1"
+version = "36.2"
backend = "aqua:protocolbuffers/protobuf/protoc"
[tools.protoc."platforms.linux-arm64"]
-checksum = "sha256:237a68856edf1bd28b6204bddd0596c1cf46d298bc29c620012540b2e44c73e7"
-url = "https://github.com/protocolbuffers/protobuf/releases/download/v36.1/protoc-36.1-linux-aarch_64.zip"
-url_api = "https://api.github.com/repos/protocolbuffers/protobuf/releases/assets/538583148"
+checksum = "sha256:8b8f18bd2b30346efbc698dd5a73dd7c805f3ef8380f6dfc95c768f3f1852f6a"
+url = "https://github.com/protocolbuffers/protobuf/releases/download/v36.2/protoc-36.2-linux-aarch_64.zip"
+url_api = "https://api.github.com/repos/protocolbuffers/protobuf/releases/assets/570742403"
[tools.protoc."platforms.linux-arm64-musl"]
-checksum = "sha256:237a68856edf1bd28b6204bddd0596c1cf46d298bc29c620012540b2e44c73e7"
-url = "https://github.com/protocolbuffers/protobuf/releases/download/v36.1/protoc-36.1-linux-aarch_64.zip"
-url_api = "https://api.github.com/repos/protocolbuffers/protobuf/releases/assets/538583148"
+checksum = "sha256:8b8f18bd2b30346efbc698dd5a73dd7c805f3ef8380f6dfc95c768f3f1852f6a"
+url = "https://github.com/protocolbuffers/protobuf/releases/download/v36.2/protoc-36.2-linux-aarch_64.zip"
+url_api = "https://api.github.com/repos/protocolbuffers/protobuf/releases/assets/570742403"
[tools.protoc."platforms.linux-x64"]
-checksum = "sha256:c4bc672d9d49214dc8cafdceadf4df92182d6ca8e3ec65a56b2d7de5602669b4"
-url = "https://github.com/protocolbuffers/protobuf/releases/download/v36.1/protoc-36.1-linux-x86_64.zip"
-url_api = "https://api.github.com/repos/protocolbuffers/protobuf/releases/assets/538583183"
+checksum = "sha256:121f6c7afe1d4d0e3ea6aab9432038599250134cbf4474cb1167d2c7decd4278"
+url = "https://github.com/protocolbuffers/protobuf/releases/download/v36.2/protoc-36.2-linux-x86_64.zip"
+url_api = "https://api.github.com/repos/protocolbuffers/protobuf/releases/assets/570742434"
[tools.protoc."platforms.linux-x64-musl"]
-checksum = "sha256:c4bc672d9d49214dc8cafdceadf4df92182d6ca8e3ec65a56b2d7de5602669b4"
-url = "https://github.com/protocolbuffers/protobuf/releases/download/v36.1/protoc-36.1-linux-x86_64.zip"
-url_api = "https://api.github.com/repos/protocolbuffers/protobuf/releases/assets/538583183"
+checksum = "sha256:121f6c7afe1d4d0e3ea6aab9432038599250134cbf4474cb1167d2c7decd4278"
+url = "https://github.com/protocolbuffers/protobuf/releases/download/v36.2/protoc-36.2-linux-x86_64.zip"
+url_api = "https://api.github.com/repos/protocolbuffers/protobuf/releases/assets/570742434"
[tools.protoc."platforms.macos-arm64"]
-checksum = "sha256:de56d57afe30c5d191b11d24ff93dd4025728d7fb43b773886b2d3613e0bdbb2"
-url = "https://github.com/protocolbuffers/protobuf/releases/download/v36.1/protoc-36.1-osx-aarch_64.zip"
-url_api = "https://api.github.com/repos/protocolbuffers/protobuf/releases/assets/538583189"
+checksum = "sha256:9cd98a532c5c5e0c4161314de0225de27e4c8a323917b6ea7b1b714d3ae23466"
+url = "https://github.com/protocolbuffers/protobuf/releases/download/v36.2/protoc-36.2-osx-aarch_64.zip"
+url_api = "https://api.github.com/repos/protocolbuffers/protobuf/releases/assets/570742436"
[tools.protoc."platforms.macos-x64"]
-checksum = "sha256:ee2c5496e4af0aa6a224894bc0f7025145260e004d890487d510725ce8b473eb"
-url = "https://github.com/protocolbuffers/protobuf/releases/download/v36.1/protoc-36.1-osx-x86_64.zip"
-url_api = "https://api.github.com/repos/protocolbuffers/protobuf/releases/assets/538583191"
+checksum = "sha256:228cc7add4616cc14ca5e80dee83209d44449a7aee95a914ae748fa374efb078"
+url = "https://github.com/protocolbuffers/protobuf/releases/download/v36.2/protoc-36.2-osx-x86_64.zip"
+url_api = "https://api.github.com/repos/protocolbuffers/protobuf/releases/assets/570742448"
[tools.protoc."platforms.windows-x64"]
-checksum = "sha256:390e515cb456e6a978553bdb57baf087b054885077fd6da7f7ff0160279c07d6"
-url = "https://github.com/protocolbuffers/protobuf/releases/download/v36.1/protoc-36.1-win64.zip"
-url_api = "https://api.github.com/repos/protocolbuffers/protobuf/releases/assets/538583199"
+checksum = "sha256:f0c128dc0d8492eceece83bb459a4c0e316764b929ffbf1aa416357fd644edd3"
+url = "https://github.com/protocolbuffers/protobuf/releases/download/v36.2/protoc-36.2-win64.zip"
+url_api = "https://api.github.com/repos/protocolbuffers/protobuf/releases/assets/570742465"
[[tools.ruff]]
version = "0.16.7"
diff --git a/mise.toml b/mise.toml
index ce7e5939f0..3d6e0f9ef3 100644
--- a/mise.toml
+++ b/mise.toml
@@ -4,7 +4,7 @@
hugo = "0.166.0"
java = "temurin-25.0.3+9.0.LTS"
node = "24.21.0"
-protoc = "36.1"
+protoc = "36.2"
# Linters
actionlint = "1.7.12"
diff --git a/pom.xml b/pom.xml
index 032fa92673..2372e60a4c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -20,7 +20,7 @@
UTF-8--module-name-need-to-be-overridden--
- 4.36.1
+ 4.36.233.7.1-jre2.3.04.3.0
diff --git a/prometheus-metrics-exposition-formats/src/main/generated/io/prometheus/metrics/expositionformats/generated/com_google_protobuf_4_36_1/Metrics.java b/prometheus-metrics-exposition-formats/src/main/generated/io/prometheus/metrics/expositionformats/generated/com_google_protobuf_4_36_2/Metrics.java
similarity index 89%
rename from prometheus-metrics-exposition-formats/src/main/generated/io/prometheus/metrics/expositionformats/generated/com_google_protobuf_4_36_1/Metrics.java
rename to prometheus-metrics-exposition-formats/src/main/generated/io/prometheus/metrics/expositionformats/generated/com_google_protobuf_4_36_2/Metrics.java
index 13ffd15f95..60dcf9989f 100644
--- a/prometheus-metrics-exposition-formats/src/main/generated/io/prometheus/metrics/expositionformats/generated/com_google_protobuf_4_36_1/Metrics.java
+++ b/prometheus-metrics-exposition-formats/src/main/generated/io/prometheus/metrics/expositionformats/generated/com_google_protobuf_4_36_2/Metrics.java
@@ -2,9 +2,9 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// NO CHECKED-IN PROTOBUF GENCODE
// source: src/main/protobuf/metrics.proto
-// Protobuf Java Version: 4.36.1
+// Protobuf Java Version: 4.36.2
-package io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1;
+package io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2;
@com.google.protobuf.Generated
public class Metrics extends com.google.protobuf.GeneratedFile {
@@ -14,7 +14,7 @@ protected Metrics() {}
com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
/* major= */ 4,
/* minor= */ 36,
- /* patch= */ 1,
+ /* patch= */ 2,
/* suffix= */ "",
"Metrics");
}
@@ -87,7 +87,7 @@ public enum MetricType
com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
/* major= */ 4,
/* minor= */ 36,
- /* patch= */ 1,
+ /* patch= */ 2,
/* suffix= */ "",
"MetricType");
}
@@ -193,7 +193,7 @@ public MetricType findValueByNumber(int number) {
}
public static com.google.protobuf.Descriptors.EnumDescriptor
getDescriptor() {
- return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.getDescriptor().getEnumType(0);
+ return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.getDescriptor().getEnumType(0);
}
private static final MetricType[] VALUES = values();
@@ -267,7 +267,7 @@ public static final class LabelPair extends
com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
/* major= */ 4,
/* minor= */ 36,
- /* patch= */ 1,
+ /* patch= */ 2,
/* suffix= */ "",
"LabelPair");
}
@@ -282,20 +282,20 @@ private LabelPair() {
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
- return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.internal_static_io_prometheus_client_LabelPair_descriptor;
+ return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.internal_static_io_prometheus_client_LabelPair_descriptor;
}
@java.lang.Override
public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
- return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.internal_static_io_prometheus_client_LabelPair_descriptor;
+ return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.internal_static_io_prometheus_client_LabelPair_descriptor;
}
@java.lang.Override
protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
internalGetFieldAccessorTable() {
- return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.internal_static_io_prometheus_client_LabelPair_fieldAccessorTable
+ return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.internal_static_io_prometheus_client_LabelPair_fieldAccessorTable
.ensureFieldAccessorsInitialized(
- io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.LabelPair.class, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.LabelPair.Builder.class);
+ io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.LabelPair.class, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.LabelPair.Builder.class);
}
private int bitField0_;
@@ -446,10 +446,10 @@ public boolean equals(final java.lang.Object obj) {
if (obj == this) {
return true;
}
- if (!(obj instanceof io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.LabelPair)) {
+ if (!(obj instanceof io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.LabelPair)) {
return super.equals(obj);
}
- io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.LabelPair other = (io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.LabelPair) obj;
+ io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.LabelPair other = (io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.LabelPair) obj;
if (hasName() != other.hasName()) return false;
if (hasName()) {
@@ -485,44 +485,44 @@ public int hashCode() {
return hash;
}
- public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.LabelPair parseFrom(
+ public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.LabelPair parseFrom(
java.nio.ByteBuffer data)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
- public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.LabelPair parseFrom(
+ public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.LabelPair parseFrom(
java.nio.ByteBuffer data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data, extensionRegistry);
}
- public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.LabelPair parseFrom(
+ public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.LabelPair parseFrom(
com.google.protobuf.ByteString data)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
- public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.LabelPair parseFrom(
+ public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.LabelPair parseFrom(
com.google.protobuf.ByteString data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data, extensionRegistry);
}
- public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.LabelPair parseFrom(byte[] data)
+ public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.LabelPair parseFrom(byte[] data)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
- public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.LabelPair parseFrom(
+ public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.LabelPair parseFrom(
byte[] data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data, extensionRegistry);
}
- public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.LabelPair parseFrom(java.io.InputStream input)
+ public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.LabelPair parseFrom(java.io.InputStream input)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessage
.parseWithIOException(PARSER, input);
}
- public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.LabelPair parseFrom(
+ public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.LabelPair parseFrom(
java.io.InputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
@@ -530,26 +530,26 @@ public static io.prometheus.metrics.expositionformats.generated.com_google_proto
.parseWithIOException(PARSER, input, extensionRegistry);
}
- public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.LabelPair parseDelimitedFrom(java.io.InputStream input)
+ public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.LabelPair parseDelimitedFrom(java.io.InputStream input)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessage
.parseDelimitedWithIOException(PARSER, input);
}
- public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.LabelPair parseDelimitedFrom(
+ public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.LabelPair parseDelimitedFrom(
java.io.InputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessage
.parseDelimitedWithIOException(PARSER, input, extensionRegistry);
}
- public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.LabelPair parseFrom(
+ public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.LabelPair parseFrom(
com.google.protobuf.CodedInputStream input)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessage
.parseWithIOException(PARSER, input);
}
- public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.LabelPair parseFrom(
+ public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.LabelPair parseFrom(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
@@ -562,7 +562,7 @@ public static io.prometheus.metrics.expositionformats.generated.com_google_proto
public static Builder newBuilder() {
return DEFAULT_INSTANCE.toBuilder();
}
- public static Builder newBuilder(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.LabelPair prototype) {
+ public static Builder newBuilder(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.LabelPair prototype) {
return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
}
@java.lang.Override
@@ -583,21 +583,21 @@ protected Builder newBuilderForType(
public static final class Builder extends
com.google.protobuf.GeneratedMessage.Builder implements
// @@protoc_insertion_point(builder_implements:io.prometheus.client.LabelPair)
- io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.LabelPairOrBuilder {
+ io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.LabelPairOrBuilder {
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
- return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.internal_static_io_prometheus_client_LabelPair_descriptor;
+ return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.internal_static_io_prometheus_client_LabelPair_descriptor;
}
@java.lang.Override
protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
internalGetFieldAccessorTable() {
- return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.internal_static_io_prometheus_client_LabelPair_fieldAccessorTable
+ return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.internal_static_io_prometheus_client_LabelPair_fieldAccessorTable
.ensureFieldAccessorsInitialized(
- io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.LabelPair.class, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.LabelPair.Builder.class);
+ io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.LabelPair.class, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.LabelPair.Builder.class);
}
- // Construct using io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.LabelPair.newBuilder()
+ // Construct using io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.LabelPair.newBuilder()
private Builder() {
}
@@ -619,17 +619,17 @@ public Builder clear() {
@java.lang.Override
public com.google.protobuf.Descriptors.Descriptor
getDescriptorForType() {
- return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.internal_static_io_prometheus_client_LabelPair_descriptor;
+ return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.internal_static_io_prometheus_client_LabelPair_descriptor;
}
@java.lang.Override
- public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.LabelPair getDefaultInstanceForType() {
- return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.LabelPair.getDefaultInstance();
+ public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.LabelPair getDefaultInstanceForType() {
+ return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.LabelPair.getDefaultInstance();
}
@java.lang.Override
- public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.LabelPair build() {
- io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.LabelPair result = buildPartial();
+ public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.LabelPair build() {
+ io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.LabelPair result = buildPartial();
if (!result.isInitialized()) {
throw newUninitializedMessageException(result);
}
@@ -637,14 +637,14 @@ public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_3
}
@java.lang.Override
- public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.LabelPair buildPartial() {
- io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.LabelPair result = new io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.LabelPair(this);
+ public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.LabelPair buildPartial() {
+ io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.LabelPair result = new io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.LabelPair(this);
if (bitField0_ != 0) { buildPartial0(result); }
onBuilt();
return result;
}
- private void buildPartial0(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.LabelPair result) {
+ private void buildPartial0(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.LabelPair result) {
int from_bitField0_ = bitField0_;
int to_bitField0_ = 0;
if (((from_bitField0_ & 0x00000001) != 0)) {
@@ -660,16 +660,16 @@ private void buildPartial0(io.prometheus.metrics.expositionformats.generated.com
@java.lang.Override
public Builder mergeFrom(com.google.protobuf.Message other) {
- if (other instanceof io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.LabelPair) {
- return mergeFrom((io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.LabelPair)other);
+ if (other instanceof io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.LabelPair) {
+ return mergeFrom((io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.LabelPair)other);
} else {
super.mergeFrom(other);
return this;
}
}
- public Builder mergeFrom(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.LabelPair other) {
- if (other == io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.LabelPair.getDefaultInstance()) return this;
+ public Builder mergeFrom(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.LabelPair other) {
+ if (other == io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.LabelPair.getDefaultInstance()) return this;
if (other.hasName()) {
name_ = other.name_;
bitField0_ |= 0x00000001;
@@ -895,12 +895,12 @@ public Builder setValueBytes(
}
// @@protoc_insertion_point(class_scope:io.prometheus.client.LabelPair)
- private static final io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.LabelPair DEFAULT_INSTANCE;
+ private static final io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.LabelPair DEFAULT_INSTANCE;
static {
- DEFAULT_INSTANCE = new io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.LabelPair();
+ DEFAULT_INSTANCE = new io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.LabelPair();
}
- public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.LabelPair getDefaultInstance() {
+ public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.LabelPair getDefaultInstance() {
return DEFAULT_INSTANCE;
}
@@ -936,7 +936,7 @@ public com.google.protobuf.Parser getParserForType() {
}
@java.lang.Override
- public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.LabelPair getDefaultInstanceForType() {
+ public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.LabelPair getDefaultInstanceForType() {
return DEFAULT_INSTANCE;
}
@@ -970,7 +970,7 @@ public static final class Gauge extends
com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
/* major= */ 4,
/* minor= */ 36,
- /* patch= */ 1,
+ /* patch= */ 2,
/* suffix= */ "",
"Gauge");
}
@@ -983,20 +983,20 @@ private Gauge() {
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
- return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.internal_static_io_prometheus_client_Gauge_descriptor;
+ return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.internal_static_io_prometheus_client_Gauge_descriptor;
}
@java.lang.Override
public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
- return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.internal_static_io_prometheus_client_Gauge_descriptor;
+ return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.internal_static_io_prometheus_client_Gauge_descriptor;
}
@java.lang.Override
protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
internalGetFieldAccessorTable() {
- return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.internal_static_io_prometheus_client_Gauge_fieldAccessorTable
+ return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.internal_static_io_prometheus_client_Gauge_fieldAccessorTable
.ensureFieldAccessorsInitialized(
- io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Gauge.class, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Gauge.Builder.class);
+ io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Gauge.class, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Gauge.Builder.class);
}
private int bitField0_;
@@ -1063,10 +1063,10 @@ public boolean equals(final java.lang.Object obj) {
if (obj == this) {
return true;
}
- if (!(obj instanceof io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Gauge)) {
+ if (!(obj instanceof io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Gauge)) {
return super.equals(obj);
}
- io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Gauge other = (io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Gauge) obj;
+ io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Gauge other = (io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Gauge) obj;
if (hasValue() != other.hasValue()) return false;
if (hasValue()) {
@@ -1095,44 +1095,44 @@ public int hashCode() {
return hash;
}
- public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Gauge parseFrom(
+ public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Gauge parseFrom(
java.nio.ByteBuffer data)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
- public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Gauge parseFrom(
+ public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Gauge parseFrom(
java.nio.ByteBuffer data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data, extensionRegistry);
}
- public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Gauge parseFrom(
+ public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Gauge parseFrom(
com.google.protobuf.ByteString data)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
- public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Gauge parseFrom(
+ public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Gauge parseFrom(
com.google.protobuf.ByteString data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data, extensionRegistry);
}
- public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Gauge parseFrom(byte[] data)
+ public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Gauge parseFrom(byte[] data)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
- public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Gauge parseFrom(
+ public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Gauge parseFrom(
byte[] data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data, extensionRegistry);
}
- public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Gauge parseFrom(java.io.InputStream input)
+ public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Gauge parseFrom(java.io.InputStream input)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessage
.parseWithIOException(PARSER, input);
}
- public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Gauge parseFrom(
+ public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Gauge parseFrom(
java.io.InputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
@@ -1140,26 +1140,26 @@ public static io.prometheus.metrics.expositionformats.generated.com_google_proto
.parseWithIOException(PARSER, input, extensionRegistry);
}
- public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Gauge parseDelimitedFrom(java.io.InputStream input)
+ public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Gauge parseDelimitedFrom(java.io.InputStream input)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessage
.parseDelimitedWithIOException(PARSER, input);
}
- public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Gauge parseDelimitedFrom(
+ public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Gauge parseDelimitedFrom(
java.io.InputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessage
.parseDelimitedWithIOException(PARSER, input, extensionRegistry);
}
- public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Gauge parseFrom(
+ public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Gauge parseFrom(
com.google.protobuf.CodedInputStream input)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessage
.parseWithIOException(PARSER, input);
}
- public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Gauge parseFrom(
+ public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Gauge parseFrom(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
@@ -1172,7 +1172,7 @@ public static io.prometheus.metrics.expositionformats.generated.com_google_proto
public static Builder newBuilder() {
return DEFAULT_INSTANCE.toBuilder();
}
- public static Builder newBuilder(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Gauge prototype) {
+ public static Builder newBuilder(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Gauge prototype) {
return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
}
@java.lang.Override
@@ -1193,21 +1193,21 @@ protected Builder newBuilderForType(
public static final class Builder extends
com.google.protobuf.GeneratedMessage.Builder implements
// @@protoc_insertion_point(builder_implements:io.prometheus.client.Gauge)
- io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.GaugeOrBuilder {
+ io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.GaugeOrBuilder {
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
- return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.internal_static_io_prometheus_client_Gauge_descriptor;
+ return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.internal_static_io_prometheus_client_Gauge_descriptor;
}
@java.lang.Override
protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
internalGetFieldAccessorTable() {
- return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.internal_static_io_prometheus_client_Gauge_fieldAccessorTable
+ return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.internal_static_io_prometheus_client_Gauge_fieldAccessorTable
.ensureFieldAccessorsInitialized(
- io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Gauge.class, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Gauge.Builder.class);
+ io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Gauge.class, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Gauge.Builder.class);
}
- // Construct using io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Gauge.newBuilder()
+ // Construct using io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Gauge.newBuilder()
private Builder() {
}
@@ -1228,17 +1228,17 @@ public Builder clear() {
@java.lang.Override
public com.google.protobuf.Descriptors.Descriptor
getDescriptorForType() {
- return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.internal_static_io_prometheus_client_Gauge_descriptor;
+ return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.internal_static_io_prometheus_client_Gauge_descriptor;
}
@java.lang.Override
- public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Gauge getDefaultInstanceForType() {
- return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Gauge.getDefaultInstance();
+ public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Gauge getDefaultInstanceForType() {
+ return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Gauge.getDefaultInstance();
}
@java.lang.Override
- public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Gauge build() {
- io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Gauge result = buildPartial();
+ public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Gauge build() {
+ io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Gauge result = buildPartial();
if (!result.isInitialized()) {
throw newUninitializedMessageException(result);
}
@@ -1246,14 +1246,14 @@ public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_3
}
@java.lang.Override
- public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Gauge buildPartial() {
- io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Gauge result = new io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Gauge(this);
+ public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Gauge buildPartial() {
+ io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Gauge result = new io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Gauge(this);
if (bitField0_ != 0) { buildPartial0(result); }
onBuilt();
return result;
}
- private void buildPartial0(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Gauge result) {
+ private void buildPartial0(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Gauge result) {
int from_bitField0_ = bitField0_;
int to_bitField0_ = 0;
if (((from_bitField0_ & 0x00000001) != 0)) {
@@ -1265,16 +1265,16 @@ private void buildPartial0(io.prometheus.metrics.expositionformats.generated.com
@java.lang.Override
public Builder mergeFrom(com.google.protobuf.Message other) {
- if (other instanceof io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Gauge) {
- return mergeFrom((io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Gauge)other);
+ if (other instanceof io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Gauge) {
+ return mergeFrom((io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Gauge)other);
} else {
super.mergeFrom(other);
return this;
}
}
- public Builder mergeFrom(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Gauge other) {
- if (other == io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Gauge.getDefaultInstance()) return this;
+ public Builder mergeFrom(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Gauge other) {
+ if (other == io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Gauge.getDefaultInstance()) return this;
if (other.hasValue()) {
setValue(other.getValue());
}
@@ -1368,12 +1368,12 @@ public Builder clearValue() {
}
// @@protoc_insertion_point(class_scope:io.prometheus.client.Gauge)
- private static final io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Gauge DEFAULT_INSTANCE;
+ private static final io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Gauge DEFAULT_INSTANCE;
static {
- DEFAULT_INSTANCE = new io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Gauge();
+ DEFAULT_INSTANCE = new io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Gauge();
}
- public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Gauge getDefaultInstance() {
+ public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Gauge getDefaultInstance() {
return DEFAULT_INSTANCE;
}
@@ -1409,7 +1409,7 @@ public com.google.protobuf.Parser getParserForType() {
}
@java.lang.Override
- public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Gauge getDefaultInstanceForType() {
+ public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Gauge getDefaultInstanceForType() {
return DEFAULT_INSTANCE;
}
@@ -1439,11 +1439,11 @@ public interface CounterOrBuilder extends
* optional .io.prometheus.client.Exemplar exemplar = 2;
* @return The exemplar.
*/
- io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Exemplar getExemplar();
+ io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Exemplar getExemplar();
/**
* optional .io.prometheus.client.Exemplar exemplar = 2;
*/
- io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.ExemplarOrBuilder getExemplarOrBuilder();
+ io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.ExemplarOrBuilder getExemplarOrBuilder();
/**
* optional .google.protobuf.Timestamp created_timestamp = 3;
@@ -1473,7 +1473,7 @@ public static final class Counter extends
com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
/* major= */ 4,
/* minor= */ 36,
- /* patch= */ 1,
+ /* patch= */ 2,
/* suffix= */ "",
"Counter");
}
@@ -1486,20 +1486,20 @@ private Counter() {
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
- return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.internal_static_io_prometheus_client_Counter_descriptor;
+ return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.internal_static_io_prometheus_client_Counter_descriptor;
}
@java.lang.Override
public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
- return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.internal_static_io_prometheus_client_Counter_descriptor;
+ return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.internal_static_io_prometheus_client_Counter_descriptor;
}
@java.lang.Override
protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
internalGetFieldAccessorTable() {
- return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.internal_static_io_prometheus_client_Counter_fieldAccessorTable
+ return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.internal_static_io_prometheus_client_Counter_fieldAccessorTable
.ensureFieldAccessorsInitialized(
- io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Counter.class, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Counter.Builder.class);
+ io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Counter.class, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Counter.Builder.class);
}
private int bitField0_;
@@ -1523,7 +1523,7 @@ public double getValue() {
}
public static final int EXEMPLAR_FIELD_NUMBER = 2;
- private io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Exemplar exemplar_;
+ private io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Exemplar exemplar_;
/**
* optional .io.prometheus.client.Exemplar exemplar = 2;
* @return Whether the exemplar field is set.
@@ -1537,15 +1537,15 @@ public boolean hasExemplar() {
* @return The exemplar.
*/
@java.lang.Override
- public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Exemplar getExemplar() {
- return exemplar_ == null ? io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Exemplar.getDefaultInstance() : exemplar_;
+ public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Exemplar getExemplar() {
+ return exemplar_ == null ? io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Exemplar.getDefaultInstance() : exemplar_;
}
/**
* optional .io.prometheus.client.Exemplar exemplar = 2;
*/
@java.lang.Override
- public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.ExemplarOrBuilder getExemplarOrBuilder() {
- return exemplar_ == null ? io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Exemplar.getDefaultInstance() : exemplar_;
+ public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.ExemplarOrBuilder getExemplarOrBuilder() {
+ return exemplar_ == null ? io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Exemplar.getDefaultInstance() : exemplar_;
}
public static final int CREATED_TIMESTAMP_FIELD_NUMBER = 3;
@@ -1632,10 +1632,10 @@ public boolean equals(final java.lang.Object obj) {
if (obj == this) {
return true;
}
- if (!(obj instanceof io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Counter)) {
+ if (!(obj instanceof io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Counter)) {
return super.equals(obj);
}
- io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Counter other = (io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Counter) obj;
+ io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Counter other = (io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Counter) obj;
if (hasValue() != other.hasValue()) return false;
if (hasValue()) {
@@ -1682,44 +1682,44 @@ public int hashCode() {
return hash;
}
- public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Counter parseFrom(
+ public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Counter parseFrom(
java.nio.ByteBuffer data)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
- public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Counter parseFrom(
+ public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Counter parseFrom(
java.nio.ByteBuffer data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data, extensionRegistry);
}
- public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Counter parseFrom(
+ public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Counter parseFrom(
com.google.protobuf.ByteString data)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
- public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Counter parseFrom(
+ public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Counter parseFrom(
com.google.protobuf.ByteString data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data, extensionRegistry);
}
- public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Counter parseFrom(byte[] data)
+ public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Counter parseFrom(byte[] data)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
- public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Counter parseFrom(
+ public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Counter parseFrom(
byte[] data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data, extensionRegistry);
}
- public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Counter parseFrom(java.io.InputStream input)
+ public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Counter parseFrom(java.io.InputStream input)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessage
.parseWithIOException(PARSER, input);
}
- public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Counter parseFrom(
+ public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Counter parseFrom(
java.io.InputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
@@ -1727,26 +1727,26 @@ public static io.prometheus.metrics.expositionformats.generated.com_google_proto
.parseWithIOException(PARSER, input, extensionRegistry);
}
- public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Counter parseDelimitedFrom(java.io.InputStream input)
+ public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Counter parseDelimitedFrom(java.io.InputStream input)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessage
.parseDelimitedWithIOException(PARSER, input);
}
- public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Counter parseDelimitedFrom(
+ public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Counter parseDelimitedFrom(
java.io.InputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessage
.parseDelimitedWithIOException(PARSER, input, extensionRegistry);
}
- public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Counter parseFrom(
+ public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Counter parseFrom(
com.google.protobuf.CodedInputStream input)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessage
.parseWithIOException(PARSER, input);
}
- public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Counter parseFrom(
+ public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Counter parseFrom(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
@@ -1759,7 +1759,7 @@ public static io.prometheus.metrics.expositionformats.generated.com_google_proto
public static Builder newBuilder() {
return DEFAULT_INSTANCE.toBuilder();
}
- public static Builder newBuilder(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Counter prototype) {
+ public static Builder newBuilder(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Counter prototype) {
return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
}
@java.lang.Override
@@ -1780,21 +1780,21 @@ protected Builder newBuilderForType(
public static final class Builder extends
com.google.protobuf.GeneratedMessage.Builder implements
// @@protoc_insertion_point(builder_implements:io.prometheus.client.Counter)
- io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.CounterOrBuilder {
+ io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.CounterOrBuilder {
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
- return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.internal_static_io_prometheus_client_Counter_descriptor;
+ return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.internal_static_io_prometheus_client_Counter_descriptor;
}
@java.lang.Override
protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
internalGetFieldAccessorTable() {
- return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.internal_static_io_prometheus_client_Counter_fieldAccessorTable
+ return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.internal_static_io_prometheus_client_Counter_fieldAccessorTable
.ensureFieldAccessorsInitialized(
- io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Counter.class, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Counter.Builder.class);
+ io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Counter.class, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Counter.Builder.class);
}
- // Construct using io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Counter.newBuilder()
+ // Construct using io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Counter.newBuilder()
private Builder() {
maybeForceBuilderInitialization();
}
@@ -1832,17 +1832,17 @@ public Builder clear() {
@java.lang.Override
public com.google.protobuf.Descriptors.Descriptor
getDescriptorForType() {
- return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.internal_static_io_prometheus_client_Counter_descriptor;
+ return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.internal_static_io_prometheus_client_Counter_descriptor;
}
@java.lang.Override
- public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Counter getDefaultInstanceForType() {
- return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Counter.getDefaultInstance();
+ public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Counter getDefaultInstanceForType() {
+ return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Counter.getDefaultInstance();
}
@java.lang.Override
- public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Counter build() {
- io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Counter result = buildPartial();
+ public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Counter build() {
+ io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Counter result = buildPartial();
if (!result.isInitialized()) {
throw newUninitializedMessageException(result);
}
@@ -1850,14 +1850,14 @@ public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_3
}
@java.lang.Override
- public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Counter buildPartial() {
- io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Counter result = new io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Counter(this);
+ public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Counter buildPartial() {
+ io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Counter result = new io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Counter(this);
if (bitField0_ != 0) { buildPartial0(result); }
onBuilt();
return result;
}
- private void buildPartial0(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Counter result) {
+ private void buildPartial0(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Counter result) {
int from_bitField0_ = bitField0_;
int to_bitField0_ = 0;
if (((from_bitField0_ & 0x00000001) != 0)) {
@@ -1881,16 +1881,16 @@ private void buildPartial0(io.prometheus.metrics.expositionformats.generated.com
@java.lang.Override
public Builder mergeFrom(com.google.protobuf.Message other) {
- if (other instanceof io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Counter) {
- return mergeFrom((io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Counter)other);
+ if (other instanceof io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Counter) {
+ return mergeFrom((io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Counter)other);
} else {
super.mergeFrom(other);
return this;
}
}
- public Builder mergeFrom(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Counter other) {
- if (other == io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Counter.getDefaultInstance()) return this;
+ public Builder mergeFrom(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Counter other) {
+ if (other == io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Counter.getDefaultInstance()) return this;
if (other.hasValue()) {
setValue(other.getValue());
}
@@ -2000,9 +2000,9 @@ public Builder clearValue() {
return this;
}
- private io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Exemplar exemplar_;
+ private io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Exemplar exemplar_;
private com.google.protobuf.SingleFieldBuilder<
- io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Exemplar, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Exemplar.Builder, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.ExemplarOrBuilder> exemplarBuilder_;
+ io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Exemplar, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Exemplar.Builder, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.ExemplarOrBuilder> exemplarBuilder_;
/**
* optional .io.prometheus.client.Exemplar exemplar = 2;
* @return Whether the exemplar field is set.
@@ -2014,9 +2014,9 @@ public boolean hasExemplar() {
* optional .io.prometheus.client.Exemplar exemplar = 2;
* @return The exemplar.
*/
- public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Exemplar getExemplar() {
+ public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Exemplar getExemplar() {
if (exemplarBuilder_ == null) {
- return exemplar_ == null ? io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Exemplar.getDefaultInstance() : exemplar_;
+ return exemplar_ == null ? io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Exemplar.getDefaultInstance() : exemplar_;
} else {
return exemplarBuilder_.getMessage();
}
@@ -2024,7 +2024,7 @@ public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_3
/**
* optional .io.prometheus.client.Exemplar exemplar = 2;
*/
- public Builder setExemplar(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Exemplar value) {
+ public Builder setExemplar(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Exemplar value) {
if (exemplarBuilder_ == null) {
java.util.Objects.requireNonNull(value);
exemplar_ = value;
@@ -2039,7 +2039,7 @@ public Builder setExemplar(io.prometheus.metrics.expositionformats.generated.com
* optional .io.prometheus.client.Exemplar exemplar = 2;
*/
public Builder setExemplar(
- io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Exemplar.Builder builderForValue) {
+ io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Exemplar.Builder builderForValue) {
if (exemplarBuilder_ == null) {
exemplar_ = builderForValue.build();
} else {
@@ -2052,11 +2052,11 @@ public Builder setExemplar(
/**
* optional .io.prometheus.client.Exemplar exemplar = 2;
*/
- public Builder mergeExemplar(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Exemplar value) {
+ public Builder mergeExemplar(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Exemplar value) {
if (exemplarBuilder_ == null) {
if (((bitField0_ & 0x00000002) != 0) &&
exemplar_ != null &&
- exemplar_ != io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Exemplar.getDefaultInstance()) {
+ exemplar_ != io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Exemplar.getDefaultInstance()) {
getExemplarBuilder().mergeFrom(value);
} else {
exemplar_ = value;
@@ -2086,7 +2086,7 @@ public Builder clearExemplar() {
/**
* optional .io.prometheus.client.Exemplar exemplar = 2;
*/
- public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Exemplar.Builder getExemplarBuilder() {
+ public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Exemplar.Builder getExemplarBuilder() {
bitField0_ |= 0x00000002;
onChanged();
return internalGetExemplarFieldBuilder().getBuilder();
@@ -2094,23 +2094,23 @@ public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_3
/**
* optional .io.prometheus.client.Exemplar exemplar = 2;
*/
- public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.ExemplarOrBuilder getExemplarOrBuilder() {
+ public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.ExemplarOrBuilder getExemplarOrBuilder() {
if (exemplarBuilder_ != null) {
return exemplarBuilder_.getMessageOrBuilder();
} else {
return exemplar_ == null ?
- io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Exemplar.getDefaultInstance() : exemplar_;
+ io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Exemplar.getDefaultInstance() : exemplar_;
}
}
/**
* optional .io.prometheus.client.Exemplar exemplar = 2;
*/
private com.google.protobuf.SingleFieldBuilder<
- io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Exemplar, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Exemplar.Builder, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.ExemplarOrBuilder>
+ io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Exemplar, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Exemplar.Builder, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.ExemplarOrBuilder>
internalGetExemplarFieldBuilder() {
if (exemplarBuilder_ == null) {
exemplarBuilder_ = new com.google.protobuf.SingleFieldBuilder<
- io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Exemplar, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Exemplar.Builder, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.ExemplarOrBuilder>(
+ io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Exemplar, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Exemplar.Builder, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.ExemplarOrBuilder>(
getExemplar(),
getParentForChildren(),
isClean());
@@ -2242,12 +2242,12 @@ public com.google.protobuf.TimestampOrBuilder getCreatedTimestampOrBuilder() {
}
// @@protoc_insertion_point(class_scope:io.prometheus.client.Counter)
- private static final io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Counter DEFAULT_INSTANCE;
+ private static final io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Counter DEFAULT_INSTANCE;
static {
- DEFAULT_INSTANCE = new io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Counter();
+ DEFAULT_INSTANCE = new io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Counter();
}
- public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Counter getDefaultInstance() {
+ public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Counter getDefaultInstance() {
return DEFAULT_INSTANCE;
}
@@ -2283,7 +2283,7 @@ public com.google.protobuf.Parser getParserForType() {
}
@java.lang.Override
- public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Counter getDefaultInstanceForType() {
+ public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Counter getDefaultInstanceForType() {
return DEFAULT_INSTANCE;
}
@@ -2328,7 +2328,7 @@ public static final class Quantile extends
com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
/* major= */ 4,
/* minor= */ 36,
- /* patch= */ 1,
+ /* patch= */ 2,
/* suffix= */ "",
"Quantile");
}
@@ -2341,20 +2341,20 @@ private Quantile() {
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
- return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.internal_static_io_prometheus_client_Quantile_descriptor;
+ return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.internal_static_io_prometheus_client_Quantile_descriptor;
}
@java.lang.Override
public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
- return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.internal_static_io_prometheus_client_Quantile_descriptor;
+ return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.internal_static_io_prometheus_client_Quantile_descriptor;
}
@java.lang.Override
protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
internalGetFieldAccessorTable() {
- return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.internal_static_io_prometheus_client_Quantile_fieldAccessorTable
+ return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.internal_static_io_prometheus_client_Quantile_fieldAccessorTable
.ensureFieldAccessorsInitialized(
- io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Quantile.class, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Quantile.Builder.class);
+ io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Quantile.class, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Quantile.Builder.class);
}
private int bitField0_;
@@ -2447,10 +2447,10 @@ public boolean equals(final java.lang.Object obj) {
if (obj == this) {
return true;
}
- if (!(obj instanceof io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Quantile)) {
+ if (!(obj instanceof io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Quantile)) {
return super.equals(obj);
}
- io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Quantile other = (io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Quantile) obj;
+ io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Quantile other = (io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Quantile) obj;
if (hasQuantile() != other.hasQuantile()) return false;
if (hasQuantile()) {
@@ -2490,44 +2490,44 @@ public int hashCode() {
return hash;
}
- public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Quantile parseFrom(
+ public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Quantile parseFrom(
java.nio.ByteBuffer data)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
- public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Quantile parseFrom(
+ public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Quantile parseFrom(
java.nio.ByteBuffer data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data, extensionRegistry);
}
- public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Quantile parseFrom(
+ public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Quantile parseFrom(
com.google.protobuf.ByteString data)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
- public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Quantile parseFrom(
+ public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Quantile parseFrom(
com.google.protobuf.ByteString data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data, extensionRegistry);
}
- public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Quantile parseFrom(byte[] data)
+ public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Quantile parseFrom(byte[] data)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
- public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Quantile parseFrom(
+ public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Quantile parseFrom(
byte[] data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data, extensionRegistry);
}
- public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Quantile parseFrom(java.io.InputStream input)
+ public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Quantile parseFrom(java.io.InputStream input)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessage
.parseWithIOException(PARSER, input);
}
- public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Quantile parseFrom(
+ public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Quantile parseFrom(
java.io.InputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
@@ -2535,26 +2535,26 @@ public static io.prometheus.metrics.expositionformats.generated.com_google_proto
.parseWithIOException(PARSER, input, extensionRegistry);
}
- public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Quantile parseDelimitedFrom(java.io.InputStream input)
+ public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Quantile parseDelimitedFrom(java.io.InputStream input)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessage
.parseDelimitedWithIOException(PARSER, input);
}
- public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Quantile parseDelimitedFrom(
+ public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Quantile parseDelimitedFrom(
java.io.InputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessage
.parseDelimitedWithIOException(PARSER, input, extensionRegistry);
}
- public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Quantile parseFrom(
+ public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Quantile parseFrom(
com.google.protobuf.CodedInputStream input)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessage
.parseWithIOException(PARSER, input);
}
- public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Quantile parseFrom(
+ public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Quantile parseFrom(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
@@ -2567,7 +2567,7 @@ public static io.prometheus.metrics.expositionformats.generated.com_google_proto
public static Builder newBuilder() {
return DEFAULT_INSTANCE.toBuilder();
}
- public static Builder newBuilder(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Quantile prototype) {
+ public static Builder newBuilder(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Quantile prototype) {
return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
}
@java.lang.Override
@@ -2588,21 +2588,21 @@ protected Builder newBuilderForType(
public static final class Builder extends
com.google.protobuf.GeneratedMessage.Builder implements
// @@protoc_insertion_point(builder_implements:io.prometheus.client.Quantile)
- io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.QuantileOrBuilder {
+ io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.QuantileOrBuilder {
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
- return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.internal_static_io_prometheus_client_Quantile_descriptor;
+ return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.internal_static_io_prometheus_client_Quantile_descriptor;
}
@java.lang.Override
protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
internalGetFieldAccessorTable() {
- return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.internal_static_io_prometheus_client_Quantile_fieldAccessorTable
+ return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.internal_static_io_prometheus_client_Quantile_fieldAccessorTable
.ensureFieldAccessorsInitialized(
- io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Quantile.class, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Quantile.Builder.class);
+ io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Quantile.class, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Quantile.Builder.class);
}
- // Construct using io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Quantile.newBuilder()
+ // Construct using io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Quantile.newBuilder()
private Builder() {
}
@@ -2624,17 +2624,17 @@ public Builder clear() {
@java.lang.Override
public com.google.protobuf.Descriptors.Descriptor
getDescriptorForType() {
- return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.internal_static_io_prometheus_client_Quantile_descriptor;
+ return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.internal_static_io_prometheus_client_Quantile_descriptor;
}
@java.lang.Override
- public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Quantile getDefaultInstanceForType() {
- return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Quantile.getDefaultInstance();
+ public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Quantile getDefaultInstanceForType() {
+ return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Quantile.getDefaultInstance();
}
@java.lang.Override
- public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Quantile build() {
- io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Quantile result = buildPartial();
+ public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Quantile build() {
+ io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Quantile result = buildPartial();
if (!result.isInitialized()) {
throw newUninitializedMessageException(result);
}
@@ -2642,14 +2642,14 @@ public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_3
}
@java.lang.Override
- public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Quantile buildPartial() {
- io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Quantile result = new io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Quantile(this);
+ public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Quantile buildPartial() {
+ io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Quantile result = new io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Quantile(this);
if (bitField0_ != 0) { buildPartial0(result); }
onBuilt();
return result;
}
- private void buildPartial0(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Quantile result) {
+ private void buildPartial0(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Quantile result) {
int from_bitField0_ = bitField0_;
int to_bitField0_ = 0;
if (((from_bitField0_ & 0x00000001) != 0)) {
@@ -2665,16 +2665,16 @@ private void buildPartial0(io.prometheus.metrics.expositionformats.generated.com
@java.lang.Override
public Builder mergeFrom(com.google.protobuf.Message other) {
- if (other instanceof io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Quantile) {
- return mergeFrom((io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Quantile)other);
+ if (other instanceof io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Quantile) {
+ return mergeFrom((io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Quantile)other);
} else {
super.mergeFrom(other);
return this;
}
}
- public Builder mergeFrom(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Quantile other) {
- if (other == io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Quantile.getDefaultInstance()) return this;
+ public Builder mergeFrom(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Quantile other) {
+ if (other == io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Quantile.getDefaultInstance()) return this;
if (other.hasQuantile()) {
setQuantile(other.getQuantile());
}
@@ -2816,12 +2816,12 @@ public Builder clearValue() {
}
// @@protoc_insertion_point(class_scope:io.prometheus.client.Quantile)
- private static final io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Quantile DEFAULT_INSTANCE;
+ private static final io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Quantile DEFAULT_INSTANCE;
static {
- DEFAULT_INSTANCE = new io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Quantile();
+ DEFAULT_INSTANCE = new io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Quantile();
}
- public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Quantile getDefaultInstance() {
+ public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Quantile getDefaultInstance() {
return DEFAULT_INSTANCE;
}
@@ -2857,7 +2857,7 @@ public com.google.protobuf.Parser getParserForType() {
}
@java.lang.Override
- public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Quantile getDefaultInstanceForType() {
+ public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Quantile getDefaultInstanceForType() {
return DEFAULT_INSTANCE;
}
@@ -2892,12 +2892,12 @@ public interface SummaryOrBuilder extends
/**
* repeated .io.prometheus.client.Quantile quantile = 3;
*/
- java.util.List
+ java.util.List
getQuantileList();
/**
* repeated .io.prometheus.client.Quantile quantile = 3;
*/
- io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Quantile getQuantile(int index);
+ io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Quantile getQuantile(int index);
/**
* repeated .io.prometheus.client.Quantile quantile = 3;
*/
@@ -2905,12 +2905,12 @@ public interface SummaryOrBuilder extends
/**
* repeated .io.prometheus.client.Quantile quantile = 3;
*/
- java.util.List extends io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.QuantileOrBuilder>
+ java.util.List extends io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.QuantileOrBuilder>
getQuantileOrBuilderList();
/**
* repeated .io.prometheus.client.Quantile quantile = 3;
*/
- io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.QuantileOrBuilder getQuantileOrBuilder(
+ io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.QuantileOrBuilder getQuantileOrBuilder(
int index);
/**
@@ -2941,7 +2941,7 @@ public static final class Summary extends
com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
/* major= */ 4,
/* minor= */ 36,
- /* patch= */ 1,
+ /* patch= */ 2,
/* suffix= */ "",
"Summary");
}
@@ -2955,20 +2955,20 @@ private Summary() {
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
- return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.internal_static_io_prometheus_client_Summary_descriptor;
+ return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.internal_static_io_prometheus_client_Summary_descriptor;
}
@java.lang.Override
public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
- return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.internal_static_io_prometheus_client_Summary_descriptor;
+ return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.internal_static_io_prometheus_client_Summary_descriptor;
}
@java.lang.Override
protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
internalGetFieldAccessorTable() {
- return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.internal_static_io_prometheus_client_Summary_fieldAccessorTable
+ return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.internal_static_io_prometheus_client_Summary_fieldAccessorTable
.ensureFieldAccessorsInitialized(
- io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Summary.class, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Summary.Builder.class);
+ io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Summary.class, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Summary.Builder.class);
}
private int bitField0_;
@@ -3012,19 +3012,19 @@ public double getSampleSum() {
public static final int QUANTILE_FIELD_NUMBER = 3;
@SuppressWarnings("serial")
- private java.util.List quantile_;
+ private java.util.List quantile_;
/**
* repeated .io.prometheus.client.Quantile quantile = 3;
*/
@java.lang.Override
- public java.util.List getQuantileList() {
+ public java.util.List getQuantileList() {
return quantile_;
}
/**
* repeated .io.prometheus.client.Quantile quantile = 3;
*/
@java.lang.Override
- public java.util.List extends io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.QuantileOrBuilder>
+ public java.util.List extends io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.QuantileOrBuilder>
getQuantileOrBuilderList() {
return quantile_;
}
@@ -3039,14 +3039,14 @@ public int getQuantileCount() {
* repeated .io.prometheus.client.Quantile quantile = 3;
*/
@java.lang.Override
- public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Quantile getQuantile(int index) {
+ public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Quantile getQuantile(int index) {
return quantile_.get(index);
}
/**
* repeated .io.prometheus.client.Quantile quantile = 3;
*/
@java.lang.Override
- public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.QuantileOrBuilder getQuantileOrBuilder(
+ public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.QuantileOrBuilder getQuantileOrBuilder(
int index) {
return quantile_.get(index);
}
@@ -3147,10 +3147,10 @@ public boolean equals(final java.lang.Object obj) {
if (obj == this) {
return true;
}
- if (!(obj instanceof io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Summary)) {
+ if (!(obj instanceof io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Summary)) {
return super.equals(obj);
}
- io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Summary other = (io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Summary) obj;
+ io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Summary other = (io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Summary) obj;
if (hasSampleCount() != other.hasSampleCount()) return false;
if (hasSampleCount()) {
@@ -3204,44 +3204,44 @@ public int hashCode() {
return hash;
}
- public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Summary parseFrom(
+ public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Summary parseFrom(
java.nio.ByteBuffer data)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
- public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Summary parseFrom(
+ public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Summary parseFrom(
java.nio.ByteBuffer data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data, extensionRegistry);
}
- public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Summary parseFrom(
+ public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Summary parseFrom(
com.google.protobuf.ByteString data)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
- public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Summary parseFrom(
+ public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Summary parseFrom(
com.google.protobuf.ByteString data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data, extensionRegistry);
}
- public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Summary parseFrom(byte[] data)
+ public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Summary parseFrom(byte[] data)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
- public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Summary parseFrom(
+ public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Summary parseFrom(
byte[] data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data, extensionRegistry);
}
- public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Summary parseFrom(java.io.InputStream input)
+ public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Summary parseFrom(java.io.InputStream input)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessage
.parseWithIOException(PARSER, input);
}
- public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Summary parseFrom(
+ public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Summary parseFrom(
java.io.InputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
@@ -3249,26 +3249,26 @@ public static io.prometheus.metrics.expositionformats.generated.com_google_proto
.parseWithIOException(PARSER, input, extensionRegistry);
}
- public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Summary parseDelimitedFrom(java.io.InputStream input)
+ public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Summary parseDelimitedFrom(java.io.InputStream input)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessage
.parseDelimitedWithIOException(PARSER, input);
}
- public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Summary parseDelimitedFrom(
+ public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Summary parseDelimitedFrom(
java.io.InputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessage
.parseDelimitedWithIOException(PARSER, input, extensionRegistry);
}
- public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Summary parseFrom(
+ public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Summary parseFrom(
com.google.protobuf.CodedInputStream input)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessage
.parseWithIOException(PARSER, input);
}
- public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Summary parseFrom(
+ public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Summary parseFrom(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
@@ -3281,7 +3281,7 @@ public static io.prometheus.metrics.expositionformats.generated.com_google_proto
public static Builder newBuilder() {
return DEFAULT_INSTANCE.toBuilder();
}
- public static Builder newBuilder(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Summary prototype) {
+ public static Builder newBuilder(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Summary prototype) {
return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
}
@java.lang.Override
@@ -3302,21 +3302,21 @@ protected Builder newBuilderForType(
public static final class Builder extends
com.google.protobuf.GeneratedMessage.Builder implements
// @@protoc_insertion_point(builder_implements:io.prometheus.client.Summary)
- io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.SummaryOrBuilder {
+ io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.SummaryOrBuilder {
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
- return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.internal_static_io_prometheus_client_Summary_descriptor;
+ return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.internal_static_io_prometheus_client_Summary_descriptor;
}
@java.lang.Override
protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
internalGetFieldAccessorTable() {
- return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.internal_static_io_prometheus_client_Summary_fieldAccessorTable
+ return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.internal_static_io_prometheus_client_Summary_fieldAccessorTable
.ensureFieldAccessorsInitialized(
- io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Summary.class, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Summary.Builder.class);
+ io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Summary.class, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Summary.Builder.class);
}
- // Construct using io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Summary.newBuilder()
+ // Construct using io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Summary.newBuilder()
private Builder() {
maybeForceBuilderInitialization();
}
@@ -3357,17 +3357,17 @@ public Builder clear() {
@java.lang.Override
public com.google.protobuf.Descriptors.Descriptor
getDescriptorForType() {
- return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.internal_static_io_prometheus_client_Summary_descriptor;
+ return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.internal_static_io_prometheus_client_Summary_descriptor;
}
@java.lang.Override
- public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Summary getDefaultInstanceForType() {
- return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Summary.getDefaultInstance();
+ public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Summary getDefaultInstanceForType() {
+ return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Summary.getDefaultInstance();
}
@java.lang.Override
- public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Summary build() {
- io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Summary result = buildPartial();
+ public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Summary build() {
+ io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Summary result = buildPartial();
if (!result.isInitialized()) {
throw newUninitializedMessageException(result);
}
@@ -3375,15 +3375,15 @@ public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_3
}
@java.lang.Override
- public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Summary buildPartial() {
- io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Summary result = new io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Summary(this);
+ public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Summary buildPartial() {
+ io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Summary result = new io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Summary(this);
buildPartialRepeatedFields(result);
if (bitField0_ != 0) { buildPartial0(result); }
onBuilt();
return result;
}
- private void buildPartialRepeatedFields(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Summary result) {
+ private void buildPartialRepeatedFields(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Summary result) {
if (quantileBuilder_ == null) {
if (((bitField0_ & 0x00000004) != 0)) {
quantile_ = java.util.Collections.unmodifiableList(quantile_);
@@ -3395,7 +3395,7 @@ private void buildPartialRepeatedFields(io.prometheus.metrics.expositionformats.
}
}
- private void buildPartial0(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Summary result) {
+ private void buildPartial0(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Summary result) {
int from_bitField0_ = bitField0_;
int to_bitField0_ = 0;
if (((from_bitField0_ & 0x00000001) != 0)) {
@@ -3417,16 +3417,16 @@ private void buildPartial0(io.prometheus.metrics.expositionformats.generated.com
@java.lang.Override
public Builder mergeFrom(com.google.protobuf.Message other) {
- if (other instanceof io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Summary) {
- return mergeFrom((io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Summary)other);
+ if (other instanceof io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Summary) {
+ return mergeFrom((io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Summary)other);
} else {
super.mergeFrom(other);
return this;
}
}
- public Builder mergeFrom(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Summary other) {
- if (other == io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Summary.getDefaultInstance()) return this;
+ public Builder mergeFrom(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Summary other) {
+ if (other == io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Summary.getDefaultInstance()) return this;
if (other.hasSampleCount()) {
setSampleCount(other.getSampleCount());
}
@@ -3497,9 +3497,9 @@ public Builder mergeFrom(
break;
} // case 17
case 26: {
- io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Quantile m =
+ io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Quantile m =
input.readMessage(
- io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Quantile.parser(),
+ io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Quantile.parser(),
extensionRegistry);
if (quantileBuilder_ == null) {
ensureQuantileIsMutable();
@@ -3613,22 +3613,22 @@ public Builder clearSampleSum() {
return this;
}
- private java.util.List quantile_ =
+ private java.util.List quantile_ =
java.util.Collections.emptyList();
private void ensureQuantileIsMutable() {
if (!((bitField0_ & 0x00000004) != 0)) {
- quantile_ = new java.util.ArrayList(quantile_);
+ quantile_ = new java.util.ArrayList(quantile_);
bitField0_ |= 0x00000004;
}
}
private com.google.protobuf.RepeatedFieldBuilder<
- io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Quantile, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Quantile.Builder, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.QuantileOrBuilder> quantileBuilder_;
+ io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Quantile, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Quantile.Builder, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.QuantileOrBuilder> quantileBuilder_;
/**
* repeated .io.prometheus.client.Quantile quantile = 3;
*/
- public java.util.List getQuantileList() {
+ public java.util.List getQuantileList() {
if (quantileBuilder_ == null) {
return java.util.Collections.unmodifiableList(quantile_);
} else {
@@ -3648,7 +3648,7 @@ public int getQuantileCount() {
/**
* repeated .io.prometheus.client.Quantile quantile = 3;
*/
- public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Quantile getQuantile(int index) {
+ public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Quantile getQuantile(int index) {
if (quantileBuilder_ == null) {
return quantile_.get(index);
} else {
@@ -3659,7 +3659,7 @@ public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_3
* repeated .io.prometheus.client.Quantile quantile = 3;
*/
public Builder setQuantile(
- int index, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Quantile value) {
+ int index, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Quantile value) {
if (quantileBuilder_ == null) {
java.util.Objects.requireNonNull(value);
ensureQuantileIsMutable();
@@ -3674,7 +3674,7 @@ public Builder setQuantile(
* repeated .io.prometheus.client.Quantile quantile = 3;
*/
public Builder setQuantile(
- int index, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Quantile.Builder builderForValue) {
+ int index, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Quantile.Builder builderForValue) {
if (quantileBuilder_ == null) {
ensureQuantileIsMutable();
quantile_.set(index, builderForValue.build());
@@ -3687,7 +3687,7 @@ public Builder setQuantile(
/**
* repeated .io.prometheus.client.Quantile quantile = 3;
*/
- public Builder addQuantile(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Quantile value) {
+ public Builder addQuantile(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Quantile value) {
if (quantileBuilder_ == null) {
java.util.Objects.requireNonNull(value);
ensureQuantileIsMutable();
@@ -3702,7 +3702,7 @@ public Builder addQuantile(io.prometheus.metrics.expositionformats.generated.com
* repeated .io.prometheus.client.Quantile quantile = 3;
*/
public Builder addQuantile(
- int index, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Quantile value) {
+ int index, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Quantile value) {
if (quantileBuilder_ == null) {
java.util.Objects.requireNonNull(value);
ensureQuantileIsMutable();
@@ -3717,7 +3717,7 @@ public Builder addQuantile(
* repeated .io.prometheus.client.Quantile quantile = 3;
*/
public Builder addQuantile(
- io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Quantile.Builder builderForValue) {
+ io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Quantile.Builder builderForValue) {
if (quantileBuilder_ == null) {
ensureQuantileIsMutable();
quantile_.add(builderForValue.build());
@@ -3731,7 +3731,7 @@ public Builder addQuantile(
* repeated .io.prometheus.client.Quantile quantile = 3;
*/
public Builder addQuantile(
- int index, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Quantile.Builder builderForValue) {
+ int index, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Quantile.Builder builderForValue) {
if (quantileBuilder_ == null) {
ensureQuantileIsMutable();
quantile_.add(index, builderForValue.build());
@@ -3745,7 +3745,7 @@ public Builder addQuantile(
* repeated .io.prometheus.client.Quantile quantile = 3;
*/
public Builder addAllQuantile(
- java.lang.Iterable extends io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Quantile> values) {
+ java.lang.Iterable extends io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Quantile> values) {
if (quantileBuilder_ == null) {
ensureQuantileIsMutable();
com.google.protobuf.AbstractMessageLite.Builder.addAll(
@@ -3785,14 +3785,14 @@ public Builder removeQuantile(int index) {
/**
* repeated .io.prometheus.client.Quantile quantile = 3;
*/
- public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Quantile.Builder getQuantileBuilder(
+ public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Quantile.Builder getQuantileBuilder(
int index) {
return internalGetQuantileFieldBuilder().getBuilder(index);
}
/**
* repeated .io.prometheus.client.Quantile quantile = 3;
*/
- public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.QuantileOrBuilder getQuantileOrBuilder(
+ public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.QuantileOrBuilder getQuantileOrBuilder(
int index) {
if (quantileBuilder_ == null) {
return quantile_.get(index); } else {
@@ -3802,7 +3802,7 @@ public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_3
/**
* repeated .io.prometheus.client.Quantile quantile = 3;
*/
- public java.util.List extends io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.QuantileOrBuilder>
+ public java.util.List extends io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.QuantileOrBuilder>
getQuantileOrBuilderList() {
if (quantileBuilder_ != null) {
return quantileBuilder_.getMessageOrBuilderList();
@@ -3813,31 +3813,31 @@ public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_3
/**
* repeated .io.prometheus.client.Quantile quantile = 3;
*/
- public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Quantile.Builder addQuantileBuilder() {
+ public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Quantile.Builder addQuantileBuilder() {
return internalGetQuantileFieldBuilder().addBuilder(
- io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Quantile.getDefaultInstance());
+ io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Quantile.getDefaultInstance());
}
/**
* repeated .io.prometheus.client.Quantile quantile = 3;
*/
- public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Quantile.Builder addQuantileBuilder(
+ public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Quantile.Builder addQuantileBuilder(
int index) {
return internalGetQuantileFieldBuilder().addBuilder(
- index, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Quantile.getDefaultInstance());
+ index, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Quantile.getDefaultInstance());
}
/**
* repeated .io.prometheus.client.Quantile quantile = 3;
*/
- public java.util.List
+ public java.util.List
getQuantileBuilderList() {
return internalGetQuantileFieldBuilder().getBuilderList();
}
private com.google.protobuf.RepeatedFieldBuilder<
- io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Quantile, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Quantile.Builder, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.QuantileOrBuilder>
+ io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Quantile, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Quantile.Builder, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.QuantileOrBuilder>
internalGetQuantileFieldBuilder() {
if (quantileBuilder_ == null) {
quantileBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
- io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Quantile, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Quantile.Builder, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.QuantileOrBuilder>(
+ io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Quantile, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Quantile.Builder, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.QuantileOrBuilder>(
quantile_,
((bitField0_ & 0x00000004) != 0),
getParentForChildren(),
@@ -3970,12 +3970,12 @@ public com.google.protobuf.TimestampOrBuilder getCreatedTimestampOrBuilder() {
}
// @@protoc_insertion_point(class_scope:io.prometheus.client.Summary)
- private static final io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Summary DEFAULT_INSTANCE;
+ private static final io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Summary DEFAULT_INSTANCE;
static {
- DEFAULT_INSTANCE = new io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Summary();
+ DEFAULT_INSTANCE = new io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Summary();
}
- public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Summary getDefaultInstance() {
+ public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Summary getDefaultInstance() {
return DEFAULT_INSTANCE;
}
@@ -4011,7 +4011,7 @@ public com.google.protobuf.Parser getParserForType() {
}
@java.lang.Override
- public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Summary getDefaultInstanceForType() {
+ public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Summary getDefaultInstanceForType() {
return DEFAULT_INSTANCE;
}
@@ -4045,7 +4045,7 @@ public static final class Untyped extends
com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
/* major= */ 4,
/* minor= */ 36,
- /* patch= */ 1,
+ /* patch= */ 2,
/* suffix= */ "",
"Untyped");
}
@@ -4058,20 +4058,20 @@ private Untyped() {
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
- return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.internal_static_io_prometheus_client_Untyped_descriptor;
+ return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.internal_static_io_prometheus_client_Untyped_descriptor;
}
@java.lang.Override
public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
- return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.internal_static_io_prometheus_client_Untyped_descriptor;
+ return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.internal_static_io_prometheus_client_Untyped_descriptor;
}
@java.lang.Override
protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
internalGetFieldAccessorTable() {
- return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.internal_static_io_prometheus_client_Untyped_fieldAccessorTable
+ return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.internal_static_io_prometheus_client_Untyped_fieldAccessorTable
.ensureFieldAccessorsInitialized(
- io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Untyped.class, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Untyped.Builder.class);
+ io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Untyped.class, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Untyped.Builder.class);
}
private int bitField0_;
@@ -4138,10 +4138,10 @@ public boolean equals(final java.lang.Object obj) {
if (obj == this) {
return true;
}
- if (!(obj instanceof io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Untyped)) {
+ if (!(obj instanceof io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Untyped)) {
return super.equals(obj);
}
- io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Untyped other = (io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Untyped) obj;
+ io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Untyped other = (io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Untyped) obj;
if (hasValue() != other.hasValue()) return false;
if (hasValue()) {
@@ -4170,44 +4170,44 @@ public int hashCode() {
return hash;
}
- public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Untyped parseFrom(
+ public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Untyped parseFrom(
java.nio.ByteBuffer data)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
- public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Untyped parseFrom(
+ public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Untyped parseFrom(
java.nio.ByteBuffer data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data, extensionRegistry);
}
- public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Untyped parseFrom(
+ public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Untyped parseFrom(
com.google.protobuf.ByteString data)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
- public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Untyped parseFrom(
+ public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Untyped parseFrom(
com.google.protobuf.ByteString data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data, extensionRegistry);
}
- public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Untyped parseFrom(byte[] data)
+ public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Untyped parseFrom(byte[] data)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data);
}
- public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Untyped parseFrom(
+ public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Untyped parseFrom(
byte[] data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
return PARSER.parseFrom(data, extensionRegistry);
}
- public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Untyped parseFrom(java.io.InputStream input)
+ public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Untyped parseFrom(java.io.InputStream input)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessage
.parseWithIOException(PARSER, input);
}
- public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Untyped parseFrom(
+ public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Untyped parseFrom(
java.io.InputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
@@ -4215,26 +4215,26 @@ public static io.prometheus.metrics.expositionformats.generated.com_google_proto
.parseWithIOException(PARSER, input, extensionRegistry);
}
- public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Untyped parseDelimitedFrom(java.io.InputStream input)
+ public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Untyped parseDelimitedFrom(java.io.InputStream input)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessage
.parseDelimitedWithIOException(PARSER, input);
}
- public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Untyped parseDelimitedFrom(
+ public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Untyped parseDelimitedFrom(
java.io.InputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessage
.parseDelimitedWithIOException(PARSER, input, extensionRegistry);
}
- public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Untyped parseFrom(
+ public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Untyped parseFrom(
com.google.protobuf.CodedInputStream input)
throws java.io.IOException {
return com.google.protobuf.GeneratedMessage
.parseWithIOException(PARSER, input);
}
- public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Untyped parseFrom(
+ public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Untyped parseFrom(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws java.io.IOException {
@@ -4247,7 +4247,7 @@ public static io.prometheus.metrics.expositionformats.generated.com_google_proto
public static Builder newBuilder() {
return DEFAULT_INSTANCE.toBuilder();
}
- public static Builder newBuilder(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Untyped prototype) {
+ public static Builder newBuilder(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Untyped prototype) {
return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
}
@java.lang.Override
@@ -4268,21 +4268,21 @@ protected Builder newBuilderForType(
public static final class Builder extends
com.google.protobuf.GeneratedMessage.Builder implements
// @@protoc_insertion_point(builder_implements:io.prometheus.client.Untyped)
- io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.UntypedOrBuilder {
+ io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.UntypedOrBuilder {
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
- return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.internal_static_io_prometheus_client_Untyped_descriptor;
+ return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.internal_static_io_prometheus_client_Untyped_descriptor;
}
@java.lang.Override
protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
internalGetFieldAccessorTable() {
- return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.internal_static_io_prometheus_client_Untyped_fieldAccessorTable
+ return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.internal_static_io_prometheus_client_Untyped_fieldAccessorTable
.ensureFieldAccessorsInitialized(
- io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Untyped.class, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Untyped.Builder.class);
+ io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Untyped.class, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Untyped.Builder.class);
}
- // Construct using io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Untyped.newBuilder()
+ // Construct using io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Untyped.newBuilder()
private Builder() {
}
@@ -4303,17 +4303,17 @@ public Builder clear() {
@java.lang.Override
public com.google.protobuf.Descriptors.Descriptor
getDescriptorForType() {
- return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.internal_static_io_prometheus_client_Untyped_descriptor;
+ return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.internal_static_io_prometheus_client_Untyped_descriptor;
}
@java.lang.Override
- public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Untyped getDefaultInstanceForType() {
- return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Untyped.getDefaultInstance();
+ public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Untyped getDefaultInstanceForType() {
+ return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Untyped.getDefaultInstance();
}
@java.lang.Override
- public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Untyped build() {
- io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Untyped result = buildPartial();
+ public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Untyped build() {
+ io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Untyped result = buildPartial();
if (!result.isInitialized()) {
throw newUninitializedMessageException(result);
}
@@ -4321,14 +4321,14 @@ public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_3
}
@java.lang.Override
- public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Untyped buildPartial() {
- io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Untyped result = new io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Untyped(this);
+ public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Untyped buildPartial() {
+ io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Untyped result = new io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Untyped(this);
if (bitField0_ != 0) { buildPartial0(result); }
onBuilt();
return result;
}
- private void buildPartial0(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Untyped result) {
+ private void buildPartial0(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Untyped result) {
int from_bitField0_ = bitField0_;
int to_bitField0_ = 0;
if (((from_bitField0_ & 0x00000001) != 0)) {
@@ -4340,16 +4340,16 @@ private void buildPartial0(io.prometheus.metrics.expositionformats.generated.com
@java.lang.Override
public Builder mergeFrom(com.google.protobuf.Message other) {
- if (other instanceof io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Untyped) {
- return mergeFrom((io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Untyped)other);
+ if (other instanceof io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Untyped) {
+ return mergeFrom((io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Untyped)other);
} else {
super.mergeFrom(other);
return this;
}
}
- public Builder mergeFrom(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Untyped other) {
- if (other == io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Untyped.getDefaultInstance()) return this;
+ public Builder mergeFrom(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Untyped other) {
+ if (other == io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Untyped.getDefaultInstance()) return this;
if (other.hasValue()) {
setValue(other.getValue());
}
@@ -4443,12 +4443,12 @@ public Builder clearValue() {
}
// @@protoc_insertion_point(class_scope:io.prometheus.client.Untyped)
- private static final io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Untyped DEFAULT_INSTANCE;
+ private static final io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Untyped DEFAULT_INSTANCE;
static {
- DEFAULT_INSTANCE = new io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Untyped();
+ DEFAULT_INSTANCE = new io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Untyped();
}
- public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Untyped getDefaultInstance() {
+ public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Untyped getDefaultInstance() {
return DEFAULT_INSTANCE;
}
@@ -4484,7 +4484,7 @@ public com.google.protobuf.Parser getParserForType() {
}
@java.lang.Override
- public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_1.Metrics.Untyped getDefaultInstanceForType() {
+ public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_36_2.Metrics.Untyped getDefaultInstanceForType() {
return DEFAULT_INSTANCE;
}
@@ -4542,7 +4542,7 @@ public interface HistogramOrBuilder extends
*
* repeated .io.prometheus.client.Bucket bucket = 3;
*/
- java.util.List
+ java.util.List
getBucketList();
/**
*
```
- [#12016](https://redirect.github.com/biomejs/biome/pull/12016)
[`09d4000`](https://redirect.github.com/biomejs/biome/commit/09d4000ae7414226a10bcd968765f42ebb9ed13c)
Thanks [@codspeed](https://redirect.github.com/apps/codspeed)! -
Improved the performance of indexing and analysis of big files up to 2x.
The improvements are mostly visible in projects that make use of project
and types lint rules.
- [#11750](https://redirect.github.com/biomejs/biome/pull/11750)
[`089bde0`](https://redirect.github.com/biomejs/biome/commit/089bde07e3849bd88ac24bf604ab0231672371b0)
Thanks [@dyc3](https://redirect.github.com/dyc3)! - Added the
nursery rule
[`useStrictBooleanExpressions`](https://biomejs.dev/linter/rules/use-strict-boolean-expressions/),
which reports ambiguous truthiness checks such as `if (value)` when
`value` has type `number | undefined`. Non-nullable strings and numbers
and nullable objects are allowed; the rule has no options.
- [#11494](https://redirect.github.com/biomejs/biome/pull/11494)
[`ad5b362`](https://redirect.github.com/biomejs/biome/commit/ad5b362fd17e488f50934306534cc2742b0cf84e)
Thanks [@jp-knj](https://redirect.github.com/jp-knj)! - Added the
nursery rule
[`noAstroConflictingSetDirectives`](https://biomejs.dev/linter/rules/no-astro-conflicting-set-directives/),
which reports Astro elements with multiple content sources, such as
`set:html`, `set:text`, and child content.
For example, `
content
` triggers the rule.
- [#11878](https://redirect.github.com/biomejs/biome/pull/11878)
[`84d1b3b`](https://redirect.github.com/biomejs/biome/commit/84d1b3b045e8acfef730b4e5010baad4b7725d8f)
Thanks [@dyc3](https://redirect.github.com/dyc3)! - Fixed
[#11748](https://redirect.github.com/biomejs/biome/issues/11748):
[`useExhaustiveSwitchCases`](https://biomejs.dev/linter/rules/use-exhaustive-switch-cases/)
now reports missing cases for values created with the mapping overload
of `Array.from`, including arrays imported from another module.
- [#11802](https://redirect.github.com/biomejs/biome/pull/11802)
[`7d1f37e`](https://redirect.github.com/biomejs/biome/commit/7d1f37ec11a58e2d972329cf89b5d91758b06f6b)
Thanks [@dyc3](https://redirect.github.com/dyc3)! - Tailwind
classes will now be detected in Svelte, Vue, and Astro class attribute
expressions that don't use a class merging function.
- [#11910](https://redirect.github.com/biomejs/biome/pull/11910)
[`9e50ea2`](https://redirect.github.com/biomejs/biome/commit/9e50ea2537c3d541f5b99dc3d4a6eb5120b1ba69)
Thanks [@ematipico](https://redirect.github.com/ematipico)! -
Fixed
[#11504](https://redirect.github.com/biomejs/biome/issues/11504),
a regression where Biome would silently ignore errors in the
configuration file. Now errors are correctly retained and checked before
executing any command.
- [#11921](https://redirect.github.com/biomejs/biome/pull/11921)
[`d568632`](https://redirect.github.com/biomejs/biome/commit/d56863253fbed960b102f58e8fef475c22889301)
Thanks [@hirehamir](https://redirect.github.com/hirehamir)! -
Fixed
[#10846](https://redirect.github.com/biomejs/biome/issues/10846):
when plugins fail to load, Biome now prints each failing plugin's path
on its own line, instead of concatenating bare messages like `Cannot
read file.Cannot read file.`.
- [#11930](https://redirect.github.com/biomejs/biome/pull/11930)
[`82ea5a6`](https://redirect.github.com/biomejs/biome/commit/82ea5a6175840bc2df0114c16fab0f6d6de06edd)
Thanks [@dyc3](https://redirect.github.com/dyc3)! - Fixed
[#11927](https://redirect.github.com/biomejs/biome/issues/11927):
The HTML formatter no longer duplicates comments around Svelte blocks.
This affected a comment after a block such as `{#if}` or `{#each}` at
the end of an element, and a comment on the same line as the last
element inside a block, before `{:else}`, `{/if}`, or a similar tag.
- [#11931](https://redirect.github.com/biomejs/biome/pull/11931)
[`0cc46d8`](https://redirect.github.com/biomejs/biome/commit/0cc46d8d7c300452159fa65546d1b576efadd605)
Thanks [@dyc3](https://redirect.github.com/dyc3)! - Fixed the
indentation of comments at the end of a Svelte block's contents. A
comment before `{:else}`, `{:then}`, `{/if}`, or a similar tag is now
indented with the block's contents instead of with the tag.
```diff
{#if condition}
Text
-
+
{/if}
```
- [#12031](https://redirect.github.com/biomejs/biome/pull/12031)
[`ef0edd4`](https://redirect.github.com/biomejs/biome/commit/ef0edd4a2fe3eaf29b2c52d5c9eb0c67f85e2ab5)
Thanks [@dyc3](https://redirect.github.com/dyc3)! - Fixed
[#12027](https://redirect.github.com/biomejs/biome/issues/12027):
Biome's test rules no longer mistake regular method calls named `test`,
`it`, or `describe` for tests. For example,
[`useValidTestTitle`](https://biomejs.dev/linter/rules/use-valid-test-title/)
used to report the following regular expression check as a test with an
invalid title:
```js
const isComment = /^\s*#/.test(line);
```
- [#11959](https://redirect.github.com/biomejs/biome/pull/11959)
[`8477e61`](https://redirect.github.com/biomejs/biome/commit/8477e610a8ba787234ee2d21efc05680a72beec2)
Thanks [@dyc3](https://redirect.github.com/dyc3)! - Fixed
[#11950](https://redirect.github.com/biomejs/biome/issues/11950):
[`noUnusedVariables`](https://biomejs.dev/linter/rules/no-unused-variables/)
now reports arrow functions with expression bodies that only reference
themselves, such as `let h = () => h();`.
- [#11915](https://redirect.github.com/biomejs/biome/pull/11915)
[`3260602`](https://redirect.github.com/biomejs/biome/commit/3260602e03dd44b79afbd36ec77a71a1e87b7ed7)
Thanks [@ematipico](https://redirect.github.com/ematipico)! -
Fixed
[#11841](https://redirect.github.com/biomejs/biome/issues/11841),
where suppression comments had no effect on some parts of HTML-ish files
and on snippets embedded in JavaScript files.
Now the following suppression works as expected:
```vue
```
- [#11952](https://redirect.github.com/biomejs/biome/pull/11952)
[`b51040e`](https://redirect.github.com/biomejs/biome/commit/b51040ee3ab66880c925298977229294248dc636)
Thanks [@dyc3](https://redirect.github.com/dyc3)! - Fixed
[#11951](https://redirect.github.com/biomejs/biome/issues/11951):
the GritQL formatter no longer inserts a space after a `within` pattern
without an `until` clause.
```diff
-$arg <: within `bar($_)` ,
+$arg <: within `bar($_)`,
```
- [#11794](https://redirect.github.com/biomejs/biome/pull/11794)
[`429cf95`](https://redirect.github.com/biomejs/biome/commit/429cf950d29cfa852dfcbcdd9fdb219b2a01af9b)
Thanks [@dyc3](https://redirect.github.com/dyc3)! - Added the
nursery rule
[`noTailwindRawColors`](https://biomejs.dev/linter/rules/no-tailwind-raw-colors/)
for JavaScript and HTML. It disallows Tailwind palette colors such as
`bg-pink-500` and `text-white`, encouraging design system color
utilities such as `bg-primary`.
- [#11837](https://redirect.github.com/biomejs/biome/pull/11837)
[`f5e249b`](https://redirect.github.com/biomejs/biome/commit/f5e249b27d2ddf21f92fdd3a531adfd6c411c633)
Thanks [@dyc3](https://redirect.github.com/dyc3)! - Fixed
[#11836](https://redirect.github.com/biomejs/biome/issues/11836):
`biome check --write` no longer adds invalid parentheses around Svelte
`{@const}` declarations when experimental HTML support and formatting
are enabled.
- [#11978](https://redirect.github.com/biomejs/biome/pull/11978)
[`8be0b9e`](https://redirect.github.com/biomejs/biome/commit/8be0b9ed7617ccc53fd2554fb42c855b222b5a43)
Thanks [@dyc3](https://redirect.github.com/dyc3)! - Fixed
[#11817](https://redirect.github.com/biomejs/biome/issues/11817):
Biome no longer crashes when its output is piped to a program that exits
early, such as `head`. Output to the closed pipe is now discarded and
Biome exits normally.
- [#11868](https://redirect.github.com/biomejs/biome/pull/11868)
[`3841c26`](https://redirect.github.com/biomejs/biome/commit/3841c26f45fa13998f6201921ee5ccd0b0063fb7)
Thanks [@ematipico](https://redirect.github.com/ematipico)! -
Fixed
[#8986](https://redirect.github.com/biomejs/biome/issues/8986):
Biome's language server now scopes all watched-file patterns to each
workspace folder, falling back to the deprecated `rootUri` when no
workspace folders are provided. Clients without relative-pattern support
receive compatible absolute glob patterns.
- [#11928](https://redirect.github.com/biomejs/biome/pull/11928)
[`0015681`](https://redirect.github.com/biomejs/biome/commit/001568183912d1a14bd22d0d20a46e7c7f6bcbb5)
Thanks [@dyc3](https://redirect.github.com/dyc3)! - Restricted
access to the Unix daemon socket to the user running Biome. The socket
now lives in a `biome-daemon` directory inside Biome's cache directory
that only this user can access, and the socket itself has mode `0600`.
- [#11835](https://redirect.github.com/biomejs/biome/pull/11835)
[`589ca1a`](https://redirect.github.com/biomejs/biome/commit/589ca1a0dd9f93a3ef3f3dac98d01720ae78bdcf)
Thanks [@dyc3](https://redirect.github.com/dyc3)! - Updated
[`useReactCompiler`](https://biomejs.dev/linter/rules/use-react-compiler/):
Biome now reports React Compiler diagnostics regardless of the React
version declared in `package.json`.
- [#11907](https://redirect.github.com/biomejs/biome/pull/11907)
[`b7d9037`](https://redirect.github.com/biomejs/biome/commit/b7d903781c7968517675de39d3f086184d83faf7)
Thanks [@posido](https://redirect.github.com/posido)! - Fixed
[withastro/compiler-rs#194](https://redirect.github.com/withastro/compiler-rs/issues/194):
the HTML parser no longer treats a regex literal that starts with `>` as
the end of a self-closing tag. Astro frontmatter such as `const escaped
= s.replace(/>/g, ">");` no longer swallows the closing `---` fence,
and the same regex inside a template expression no longer runs past its
closing `}`. A regex literal after a keyword such as `return`, as in
`return />'/.test(s)`, is now recognized too.
- [#12021](https://redirect.github.com/biomejs/biome/pull/12021)
[`59cc595`](https://redirect.github.com/biomejs/biome/commit/59cc595c62882861ac1b1d166da155762a826abb)
Thanks [@dyc3](https://redirect.github.com/dyc3)! - Type
inference performance has been significantly improved. Some popular
libraries like Zod, Valibot, Arktype, Effect, Kysely, and Drizzle have
gained a \~2-240x speedup in our benchmarks. This improvement affects
all rules that use type information.
- [#12044](https://redirect.github.com/biomejs/biome/pull/12044)
[`c73fb91`](https://redirect.github.com/biomejs/biome/commit/c73fb915eb80f843cf6b2ff7f68f8ad3850be1b4)
Thanks [@dyc3](https://redirect.github.com/dyc3)! - Fixed
[#12042](https://redirect.github.com/biomejs/biome/issues/12042):
the HTML formatter no longer removes the space between text and an
inline element on the next line when it joins the lines.
```diff
-
a b cd
+
a b c d
```
- [#11965](https://redirect.github.com/biomejs/biome/pull/11965)
[`f90bf38`](https://redirect.github.com/biomejs/biome/commit/f90bf384bd4d4237e74618e48704933915fa8a78)
Thanks [@ematipico](https://redirect.github.com/ematipico)! -
Fixed module resolution in long-running workspaces so imports reflect
package manifest and TypeScript path-mapping changes without requiring
the importing file to be edited.
- [#11860](https://redirect.github.com/biomejs/biome/pull/11860)
[`0884e29`](https://redirect.github.com/biomejs/biome/commit/0884e294b47a3486bbaf190792aecd095443d664)
Thanks [@dyc3](https://redirect.github.com/dyc3)! - Removed the
`attributes` and `functions` options from the nursery rule
[`noTailwindArbitraryValue`](https://biomejs.dev/linter/rules/no-tailwind-arbitrary-value/).
The rule now uses the same Tailwind detection as
[`useTailwindShorthandClasses`](https://biomejs.dev/linter/rules/use-tailwind-shorthand-classes/).
- [#11969](https://redirect.github.com/biomejs/biome/pull/11969)
[`865cd30`](https://redirect.github.com/biomejs/biome/commit/865cd30770b8e3060b7a5fdbcc09a44d25ed15d5)
Thanks [@AlbinoGeek](https://redirect.github.com/AlbinoGeek)! -
Fixed
[#11962](https://redirect.github.com/biomejs/biome/issues/11962):
[`noUnknownTypeSelector`](https://biomejs.dev/linter/rules/no-unknown-type-selector/)
no longer reports view transition names inside view transition
pseudo-elements, such as `page` in `::view-transition-group(page)`.
- [#11914](https://redirect.github.com/biomejs/biome/pull/11914)
[`06ff47b`](https://redirect.github.com/biomejs/biome/commit/06ff47b16dee1dd3c0a7768b390074055d6d4afc)
Thanks [@dyc3](https://redirect.github.com/dyc3)! - Fixed
[#11897](https://redirect.github.com/biomejs/biome/issues/11897):
the safe fix for
[`noUselessStringConcat`](https://biomejs.dev/linter/rules/no-useless-string-concat/)
now escapes embedded double quotes when combining literals, preserving
valid JavaScript and existing escape sequences.
- [#11997](https://redirect.github.com/biomejs/biome/pull/11997)
[`af7825f`](https://redirect.github.com/biomejs/biome/commit/af7825fd24783f4a41ed845b44dca5ce36ae59f8)
Thanks
[@github-actions](https://redirect.github.com/apps/github-actions)!
- The
[noRestrictedDependencies](https://biomejs.dev/linter/rules/no-restricted-dependencies/)
rule has been updated with new module replacement data, it should now
detect for more relevant replacements.
- [#11827](https://redirect.github.com/biomejs/biome/pull/11827)
[`31bb662`](https://redirect.github.com/biomejs/biome/commit/31bb6627e5c54c6840e51eb61c0aec9f0da6113e)
Thanks
[@dfedoryshchev](https://redirect.github.com/dfedoryshchev)! -
Fixed
[#11566](https://redirect.github.com/biomejs/biome/issues/11566):
[`useNamingConvention`](https://biomejs.dev/linter/rules/use-naming-convention/)
no longer reports a `namespace` declared inside `declare global` or
inside an external module declaration. Both positions are documented as
always ignored, and the rule offered a safe fix, so `biome check
--write` renamed the declaration:
```ts
export {}
declare global {
// no longer renamed to `Jsx`
namespace JSX {}
}
```
- [#11814](https://redirect.github.com/biomejs/biome/pull/11814)
[`23ba25f`](https://redirect.github.com/biomejs/biome/commit/23ba25f191eb8ff91114f6b44bdb81cab5d6900e)
Thanks [@siketyan](https://redirect.github.com/siketyan)! - Fixed
type inference through generic type aliases that instantiate another
generic type with a nested generic argument, such as `type Nested =
Box>`. Type-aware rules now resolve members of such types:
```ts
declare const nested: Nested;
// noUnnecessaryConditions now reports that `??` is unnecessary.
const inner = nested.value.inner ?? 1;
```
- [#11908](https://redirect.github.com/biomejs/biome/pull/11908)
[`dd5a5ce`](https://redirect.github.com/biomejs/biome/commit/dd5a5cedf0e5bfdce8af0cd4f2b250a9f82848a4)
Thanks [@siketyan](https://redirect.github.com/siketyan)! - Fixed
[#11880](https://redirect.github.com/biomejs/biome/issues/11880):
Biome no longer misparses a `<<` expression followed by a later `>>>` as
TypeScript type arguments. For example, `const mask = 1 << bits`
followed by `const m = mask >>> 0` on the next line now parses
correctly.
- [#11882](https://redirect.github.com/biomejs/biome/pull/11882)
[`28c817d`](https://redirect.github.com/biomejs/biome/commit/28c817d16375bd451d29d1b18c2cf4419cf22ef8)
Thanks [@mikehasa](https://redirect.github.com/mikehasa)! - Fixed
a bug in
[`noOctalEscape`](https://biomejs.dev/linter/rules/no-octal-escape/)
where the safe fix could silently change a string's value. A legacy
octal escape is at most two digits when the leading digit is `4`-`7`, so
`"\751"` is `"\75"` + `"1"` (i.e. `"=1"`) but was rewritten to the
single character `ǩ`; it is now rewritten to `"\x3d1"`.
- [#11861](https://redirect.github.com/biomejs/biome/pull/11861)
[`81b0adb`](https://redirect.github.com/biomejs/biome/commit/81b0adb8dc80a99bddc47f80cae61edfecdda214)
Thanks [@Netail](https://redirect.github.com/Netail)! - Added the
new nursery rule
[`noSelfImport`](https://biomejs.dev/linter/rules/no-self-import/),
which forbids a module from importing itself.
```js
// foo.js
import foo from "./foo.js";
```
- [#12041](https://redirect.github.com/biomejs/biome/pull/12041)
[`5e14509`](https://redirect.github.com/biomejs/biome/commit/5e1450901a405d1d62d1716789996e301ab5de22)
Thanks [@ematipico](https://redirect.github.com/ematipico)! -
Fixed a stack overflow in type-aware lint rules, such as
[`noMisusedPromises`](https://biomejs.dev/linter/rules/no-misused-promises/)
and
[`noFloatingPromises`](https://biomejs.dev/linter/rules/no-floating-promises/),
when generic types in files that import each other reference one another
in their type parameters.
```ts
// entity.ts
import type { Repository } from "./repository";
export interface Entity = Repository> {}
// repository.ts
import type { Entity } from "./entity";
export interface Repository = Entity> {}
```
- [#11838](https://redirect.github.com/biomejs/biome/pull/11838)
[`9bbff0c`](https://redirect.github.com/biomejs/biome/commit/9bbff0cdf3a5268db87a0d378dd9ffaaf04a3595)
Thanks [@dyc3](https://redirect.github.com/dyc3)! - Added the
nursery rule
[`usePromiseRejectErrors`](https://biomejs.dev/linter/rules/use-promise-reject-errors/),
which requires Error objects as Promise rejection reasons.
```js
Promise.reject("Request failed");
new Promise((resolve, reject) => reject(42));
```
- [#11917](https://redirect.github.com/biomejs/biome/pull/11917)
[`717db8c`](https://redirect.github.com/biomejs/biome/commit/717db8c25737bacd0456c17bef9dda66f3c082c5)
Thanks [@dyc3](https://redirect.github.com/dyc3)! - Added the
nursery rule
[`noMisplacedListElements`](https://biomejs.dev/linter/rules/no-misplaced-list-elements/)
for HTML and JSX, which requires `
` elements with an HTML element
parent to be children of `
`, ``, or `
` in `
a
b
`, is now also reported as an
error, instead of the formatter deleting it and everything after it.
- [#12037](https://redirect.github.com/biomejs/biome/pull/12037)
[`48cdbb8`](https://redirect.github.com/biomejs/biome/commit/48cdbb86486cd21959352e945103d5fa0a3a746f)
Thanks [@ff1451](https://redirect.github.com/ff1451)! - Fixed
[#11898](https://redirect.github.com/biomejs/biome/issues/11898):
[`noUselessReturn`](https://biomejs.dev/linter/rules/no-useless-return/)
no longer offers a safe fix for a `return;` that is the body of an
unbraced `if`, `else`, or label, because removing it produced invalid
code. The safe fix now also keeps comments placed before or after the
removed `return;`.
```js
function foo() {
// Still reported, but the return is no longer removed
if (aborted) return;
}
```
- [#12030](https://redirect.github.com/biomejs/biome/pull/12030)
[`4ff83dd`](https://redirect.github.com/biomejs/biome/commit/4ff83dd3ed3f265c9ae1e0c41e7a655511f1b264)
Thanks [@ematipico](https://redirect.github.com/ematipico)! -
Fixed
[#9155](https://redirect.github.com/biomejs/biome/issues/9155):
Biome no longer reports a parse error for typed slot props in Vue files,
such as `v-slot="{ value }: { value: ValueType }"`. Types used in slot
props annotations are now correctly detected as used by
[`noUnusedVariables`](https://biomejs.dev/linter/rules/no-unused-variables/).
- [#11955](https://redirect.github.com/biomejs/biome/pull/11955)
[`088164f`](https://redirect.github.com/biomejs/biome/commit/088164f398f5edcf4c1c763514d4916d46c37119)
Thanks [@dyc3](https://redirect.github.com/dyc3)! - Fixed
[#11946](https://redirect.github.com/biomejs/biome/issues/11946):
[`noUnreachable`](https://biomejs.dev/linter/rules/no-unreachable/) and
[`useGetterReturn`](https://biomejs.dev/linter/rules/use-getter-return/)
now recognize `while` and `do...while` loops with truthy literal
conditions as infinite unless control flow exits the loop.
- [#11958](https://redirect.github.com/biomejs/biome/pull/11958)
[`6964bfc`](https://redirect.github.com/biomejs/biome/commit/6964bfc8a13c4bceed358da57d17f4ff4a728d8c)
Thanks [@erenbati](https://redirect.github.com/erenbati)! - Fixed
[#11924](https://redirect.github.com/biomejs/biome/issues/11924):
[`noFocusedTests`](https://biomejs.dev/linter/rules/no-focused-tests/)
no longer reports chained method calls such as
`builder.image(url).fit("max")` as focused tests.
- [#11908](https://redirect.github.com/biomejs/biome/pull/11908)
[`dd5a5ce`](https://redirect.github.com/biomejs/biome/commit/dd5a5cedf0e5bfdce8af0cd4f2b250a9f82848a4)
Thanks [@siketyan](https://redirect.github.com/siketyan)! - Fixed
parsing of left shifts between TypeScript instantiation expressions.
Biome now parses `f << f` as a left shift of two instantiation
expressions, matching TypeScript, instead of reporting a parse error.
- [#11877](https://redirect.github.com/biomejs/biome/pull/11877)
[`5a53b2c`](https://redirect.github.com/biomejs/biome/commit/5a53b2c87191ea531f6c426dc5e166241b6db621)
Thanks [@dyc3](https://redirect.github.com/dyc3)! - Fixed
[#11278](https://redirect.github.com/biomejs/biome/issues/11278):
[`noUnnecessaryConditions`](https://biomejs.dev/linter/rules/no-unnecessary-conditions/)
no longer incorrectly reports optional chaining on `RegExp.exec()`
results, including patterns created with `new RegExp()`. Biome now
infers the nullable `RegExpExecArray | null` return type, preserving
necessary checks such as `new RegExp(pattern).exec(input)?.[1]`.
- [#11906](https://redirect.github.com/biomejs/biome/pull/11906)
[`b87822d`](https://redirect.github.com/biomejs/biome/commit/b87822d8b92d96fe226dc582b309a609a0c82974)
Thanks [@dyc3](https://redirect.github.com/dyc3)! - Fixed
[#11900](https://redirect.github.com/biomejs/biome/issues/11900):
[`useForOf`](https://biomejs.dev/linter/rules/use-for-of/) no longer
reports loops that update their index inside the body, including `i +=
1` and `argv[++i]`.
- [#11834](https://redirect.github.com/biomejs/biome/pull/11834)
[`f89dd4f`](https://redirect.github.com/biomejs/biome/commit/f89dd4f2d52e4919133429fa4550912510517a9a)
Thanks [@dyc3](https://redirect.github.com/dyc3)! - Fixed
incorrect type inference when generic parameters are reused across
inherited types or swapped in recursive types.
#### What's Changed
- refactor(js\_runtime): reduce code and binary size by
[@siketyan](https://redirect.github.com/siketyan) in
[#11721](https://redirect.github.com/biomejs/biome/pull/11721)
- feat(codegen): lower generic type constraints by
[@dyc3](https://redirect.github.com/dyc3) in
[#11795](https://redirect.github.com/biomejs/biome/pull/11795)
- feat(codegen): lower Symbol static members by
[@dyc3](https://redirect.github.com/dyc3) in
[#11796](https://redirect.github.com/biomejs/biome/pull/11796)
- feat(codegen): lower Symbol call signatures by
[@dyc3](https://redirect.github.com/dyc3) in
[#11797](https://redirect.github.com/biomejs/biome/pull/11797)
- refactor(codegen): deduplicate local types by
[@dyc3](https://redirect.github.com/dyc3) in
[#11798](https://redirect.github.com/biomejs/biome/pull/11798)
- fix(type\_inference): skip non-generic references in substitutions by
[@siketyan](https://redirect.github.com/siketyan) in
[#11814](https://redirect.github.com/biomejs/biome/pull/11814)
- docs: replace retired VS Marketplace badges by
[@siketyan](https://redirect.github.com/siketyan) in
[#11816](https://redirect.github.com/biomejs/biome/pull/11816)
- perf(analyze): optimize useIndexOf callback traversal by
[@dyc3](https://redirect.github.com/dyc3) in
[#11806](https://redirect.github.com/biomejs/biome/pull/11806)
- perf(noBeforeInteractiveScriptOutsideDocument): avoid hitting the
filesystem, before easier checks by
[@dyc3](https://redirect.github.com/dyc3) in
[#11805](https://redirect.github.com/biomejs/biome/pull/11805)
- fix(useNamingConvention): ignore namespaces inside declare global and
external modules by
[@dfedoryshchev](https://redirect.github.com/dfedoryshchev) in
[#11827](https://redirect.github.com/biomejs/biome/pull/11827)
- fix(tailwind): detect tailwind classes in class expressions by
[@dyc3](https://redirect.github.com/dyc3) in
[#11802](https://redirect.github.com/biomejs/biome/pull/11802)
- fix(useSimplifiedLogicExpression): don't simplify right-side boolean
literals by
[@saberoueslati](https://redirect.github.com/saberoueslati) in
[#11761](https://redirect.github.com/biomejs/biome/pull/11761)
- fix(useReactCompiler): remove React 19 version requirement by
[@dyc3](https://redirect.github.com/dyc3) in
[#11835](https://redirect.github.com/biomejs/biome/pull/11835)
- fix(svelte): preserve const tag assignment syntax by
[@dyc3](https://redirect.github.com/dyc3) in
[#11837](https://redirect.github.com/biomejs/biome/pull/11837)
- feat(md): suppressions support by
[@ematipico](https://redirect.github.com/ematipico) in
[#11840](https://redirect.github.com/biomejs/biome/pull/11840)
- feat(linter): add noReactObjectTypeAsDefaultProp rule by
[@subaru-hello](https://redirect.github.com/subaru-hello) in
[#10634](https://redirect.github.com/biomejs/biome/pull/10634)
- chore(skill): tests and codegen by
[@ematipico](https://redirect.github.com/ematipico) in
[#11848](https://redirect.github.com/biomejs/biome/pull/11848)
- chore(tooling): publish crates by
[@ematipico](https://redirect.github.com/ematipico) in
[#11850](https://redirect.github.com/biomejs/biome/pull/11850)
- release: crates v0.7.0 by
[@github-actions](https://redirect.github.com/github-actions)\[bot]
in [#11853](https://redirect.github.com/biomejs/biome/pull/11853)
- chore(renovate): stop updating tailwindcss in the preset generator by
[@johncarmack1984](https://redirect.github.com/johncarmack1984)
in [#11852](https://redirect.github.com/biomejs/biome/pull/11852)
- ci: fail when the Tailwind preset can't be generated or is out of date
by
[@johncarmack1984](https://redirect.github.com/johncarmack1984)
in [#11851](https://redirect.github.com/biomejs/biome/pull/11851)
- feat(codegen): lower array type syntax by
[@dyc3](https://redirect.github.com/dyc3) in
[#11799](https://redirect.github.com/biomejs/biome/pull/11799)
- feat(codegen): lower method generic parameters by
[@dyc3](https://redirect.github.com/dyc3) in
[#11843](https://redirect.github.com/biomejs/biome/pull/11843)
- fix(noAstroSetHtmlDirective): report directive inside Astro template
expressions by [@m1handr](https://redirect.github.com/m1handr) in
[#11723](https://redirect.github.com/biomejs/biome/pull/11723)
- chore(useSortedClasses): update the Tailwind v4 preset to tailwindcss
4.3.3 by
[@johncarmack1984](https://redirect.github.com/johncarmack1984)
in [#11856](https://redirect.github.com/biomejs/biome/pull/11856)
- fix(rules\_check): support HTML-like documentation snippets for
JavaScript rules
([#11755](https://redirect.github.com/biomejs/biome/issues/11755))
by [@m1handr](https://redirect.github.com/m1handr) in
[#11762](https://redirect.github.com/biomejs/biome/pull/11762)
- fix(noTailwindArbitraryValue): use shared syntax query by
[@dyc3](https://redirect.github.com/dyc3) in
[#11860](https://redirect.github.com/biomejs/biome/pull/11860)
- feat: noSelfImport by
[@Netail](https://redirect.github.com/Netail) in
[#11861](https://redirect.github.com/biomejs/biome/pull/11861)
- feat(lint/js): add usePromiseRejectErrors by
[@dyc3](https://redirect.github.com/dyc3) in
[#11838](https://redirect.github.com/biomejs/biome/pull/11838)
- feat(lint): add noTailwindRawColors lint rule by
[@dyc3](https://redirect.github.com/dyc3) in
[#11794](https://redirect.github.com/biomejs/biome/pull/11794)
- feat(yaml/fmt): suppression comments by
[@ematipico](https://redirect.github.com/ematipico) in
[#11842](https://redirect.github.com/biomejs/biome/pull/11842)
- fix(vcs): checks for parent ignore files by
[@ematipico](https://redirect.github.com/ematipico) in
[#11869](https://redirect.github.com/biomejs/biome/pull/11869)
- fix(lsp): relative glob patterns by
[@ematipico](https://redirect.github.com/ematipico) in
[#11868](https://redirect.github.com/biomejs/biome/pull/11868)
- chore(deps): update dependency
[@changesets/cli](https://redirect.github.com/changesets/cli) to
v3.0.3 by [@renovate](https://redirect.github.com/renovate)\[bot]
in [#11864](https://redirect.github.com/biomejs/biome/pull/11864)
- fix(lint): recognize Vue slot bindings by
[@dyc3](https://redirect.github.com/dyc3) in
[#11875](https://redirect.github.com/biomejs/biome/pull/11875)
- chore(deps): update dependency tombi to v1.5.5 by
[@renovate](https://redirect.github.com/renovate)\[bot] in
[#11866](https://redirect.github.com/biomejs/biome/pull/11866)
- chore(deps): update dependency
[@types/node](https://redirect.github.com/types/node) to v24.13.5
by [@renovate](https://redirect.github.com/renovate)\[bot] in
[#11865](https://redirect.github.com/biomejs/biome/pull/11865)
- feat(type\_info): lower the Math global class by
[@dyc3](https://redirect.github.com/dyc3) in
[#11857](https://redirect.github.com/biomejs/biome/pull/11857)
- feat(codegen): extend lowering to function types and overloaded call
signatures by [@dyc3](https://redirect.github.com/dyc3) in
[#11844](https://redirect.github.com/biomejs/biome/pull/11844)
- feat(codegen): lower generic construct signatures by
[@dyc3](https://redirect.github.com/dyc3) in
[#11855](https://redirect.github.com/biomejs/biome/pull/11855)
- feat(types): lower readonly types and infer const generics by
[@dyc3](https://redirect.github.com/dyc3) in
[#11859](https://redirect.github.com/biomejs/biome/pull/11859)
- feat(codegen): lower builtin constructors and Iterable by
[@dyc3](https://redirect.github.com/dyc3) in
[#11870](https://redirect.github.com/biomejs/biome/pull/11870)
- feat(codegen): resolve predefined types with generic arguments by
[@dyc3](https://redirect.github.com/dyc3) in
[#11871](https://redirect.github.com/biomejs/biome/pull/11871)
- fix(types): lower RegExp declarations and preserve nullable exec
results by [@dyc3](https://redirect.github.com/dyc3) in
[#11877](https://redirect.github.com/biomejs/biome/pull/11877)
- fix(codegen): lower Array.from declarations by
[@dyc3](https://redirect.github.com/dyc3) in
[#11878](https://redirect.github.com/biomejs/biome/pull/11878)
- fix(lint/noOctalEscape): preserve string value when fixing octal
escapes with leading digit 4-7 by
[@mikehasa](https://redirect.github.com/mikehasa) in
[#11882](https://redirect.github.com/biomejs/biome/pull/11882)
- test(codegen): clean up useless tests by
[@dyc3](https://redirect.github.com/dyc3) in
[#11885](https://redirect.github.com/biomejs/biome/pull/11885)
- feat(codegen): lower keyof type operators by
[@dyc3](https://redirect.github.com/dyc3) in
[#11886](https://redirect.github.com/biomejs/biome/pull/11886)
- feat(codegen): lower indexed access types by
[@dyc3](https://redirect.github.com/dyc3) in
[#11889](https://redirect.github.com/biomejs/biome/pull/11889)
- fix(parse/js): don't misparse `<<` as type arguments when the closing
`>` is missing by
[@siketyan](https://redirect.github.com/siketyan) in
[#11908](https://redirect.github.com/biomejs/biome/pull/11908)
- ci: silent verification job by
[@ematipico](https://redirect.github.com/ematipico) in
[#11911](https://redirect.github.com/biomejs/biome/pull/11911)
- feat(lint): add useLogicalProperties rule by
[@Th3S4mur41](https://redirect.github.com/Th3S4mur41) in
[#10816](https://redirect.github.com/biomejs/biome/pull/10816)
- fix(html/parser): lex a regex that starts with `>` as a regex by
[@posido](https://redirect.github.com/posido) in
[#11907](https://redirect.github.com/biomejs/biome/pull/11907)
- fix(lint/useForOf): ignore loops updating index in body by
[@dyc3](https://redirect.github.com/dyc3) in
[#11906](https://redirect.github.com/biomejs/biome/pull/11906)
- feat(types): lower computed members and infer symbol-keyed access by
[@dyc3](https://redirect.github.com/dyc3) in
[#11890](https://redirect.github.com/biomejs/biome/pull/11890)
- feat(type-inference): lower Intl namesp
> ❗ **Important**
>
> ✂ PR body was truncated to here.
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- "before 4am on Monday"
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.
👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config
help](https://redirect.github.com/renovatebot/renovate/discussions) if
that's undesired.
---
- [ ] If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/prometheus/client_java).
---------
Signed-off-by: Gregor Zeitlinger
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Gregor Zeitlinger
---
.../prometheus-metrics-exporter-common.txt | 4 +-
mise.lock | 340 +++++++++---------
2 files changed, 171 insertions(+), 173 deletions(-)
diff --git a/docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-common.txt b/docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-common.txt
index c046a8f226..f2e0b9b3a9 100644
--- a/docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-common.txt
+++ b/docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-common.txt
@@ -1,4 +1,2 @@
Comparing source compatibility of prometheus-metrics-exporter-common-1.9.1-SNAPSHOT.jar against prometheus-metrics-exporter-common-1.9.0.jar
-*** MODIFIED CLASS: PUBLIC io.prometheus.metrics.exporter.common.PrometheusScrapeHandler (not serializable)
- === CLASS FILE FORMAT VERSION: 52.0 <- 52.0
-
+No changes.
diff --git a/mise.lock b/mise.lock
index 4f835fa7d8..1c50dc3f43 100644
--- a/mise.lock
+++ b/mise.lock
@@ -224,207 +224,207 @@ url = "https://github.com/jonwiggins/xmloxide/releases/download/v0.5.0/xmllint_w
url_api = "https://api.github.com/repos/jonwiggins/xmloxide/releases/assets/506799871"
[[tools."aqua:owenlamont/ryl"]]
-version = "0.22.0"
+version = "0.24.0"
backend = "aqua:owenlamont/ryl"
specifiers = ["latest"]
[tools."aqua:owenlamont/ryl"."platforms.linux-arm64"]
-checksum = "sha256:1045ea5807ae274c0812f63f73469018b58f822c8987e22b71f9995be971a6dd"
-url = "https://github.com/owenlamont/ryl/releases/download/v0.22.0/ryl-aarch64-unknown-linux-gnu.tar.gz"
-url_api = "https://api.github.com/repos/owenlamont/ryl/releases/assets/547221094"
+checksum = "sha256:184a727fabbec5a2d2de11fd64483f9c3040f1822d9b4e142d75c2046fef8d6f"
+url = "https://github.com/owenlamont/ryl/releases/download/v0.24.0/ryl-aarch64-unknown-linux-gnu.tar.gz"
+url_api = "https://api.github.com/repos/owenlamont/ryl/releases/assets/611310931"
provenance = "github-attestations"
[tools."aqua:owenlamont/ryl"."platforms.linux-arm64-musl"]
-checksum = "sha256:e2756acb29fac8a1963ef6477f557d31bd9b6a1fb0d745dcb2c5c24714e20910"
-url = "https://github.com/owenlamont/ryl/releases/download/v0.22.0/ryl-aarch64-unknown-linux-musl.tar.gz"
-url_api = "https://api.github.com/repos/owenlamont/ryl/releases/assets/547221095"
+checksum = "sha256:88a4a0b1f59cda012a35c8e3333649859a868a166670f19b556a4fdb506e0744"
+url = "https://github.com/owenlamont/ryl/releases/download/v0.24.0/ryl-aarch64-unknown-linux-musl.tar.gz"
+url_api = "https://api.github.com/repos/owenlamont/ryl/releases/assets/611310938"
provenance = "github-attestations"
[tools."aqua:owenlamont/ryl"."platforms.linux-x64"]
-checksum = "sha256:e51be237168ff44c8e28caca87db35c15ac5c943bba5edba0e72465b51add524"
-url = "https://github.com/owenlamont/ryl/releases/download/v0.22.0/ryl-x86_64-unknown-linux-gnu.tar.gz"
-url_api = "https://api.github.com/repos/owenlamont/ryl/releases/assets/547221116"
+checksum = "sha256:ee496e9d246352abd40bb19b932dda36f5dc23a561ac51d5c56218ba3f25d8a8"
+url = "https://github.com/owenlamont/ryl/releases/download/v0.24.0/ryl-x86_64-unknown-linux-gnu.tar.gz"
+url_api = "https://api.github.com/repos/owenlamont/ryl/releases/assets/611310977"
provenance = "github-attestations"
[tools."aqua:owenlamont/ryl"."platforms.linux-x64-musl"]
-checksum = "sha256:43625dd5c968b2c08e875a8121b2c441bd5059414d8d1fbe8d791cf6bfde402c"
-url = "https://github.com/owenlamont/ryl/releases/download/v0.22.0/ryl-x86_64-unknown-linux-musl.tar.gz"
-url_api = "https://api.github.com/repos/owenlamont/ryl/releases/assets/547221117"
+checksum = "sha256:2d42ab79bcded398587401a4682dbf30a9977f907a3c3f3843eaf9a8cb0cbcfb"
+url = "https://github.com/owenlamont/ryl/releases/download/v0.24.0/ryl-x86_64-unknown-linux-musl.tar.gz"
+url_api = "https://api.github.com/repos/owenlamont/ryl/releases/assets/611310983"
provenance = "github-attestations"
[tools."aqua:owenlamont/ryl"."platforms.macos-arm64"]
-checksum = "sha256:512051556cc92b3bfcb21c434072dcb3de7088af4982439ff0cce7888819f501"
-url = "https://github.com/owenlamont/ryl/releases/download/v0.22.0/ryl-aarch64-apple-darwin.tar.gz"
-url_api = "https://api.github.com/repos/owenlamont/ryl/releases/assets/547221097"
+checksum = "sha256:55ae4a170ece424c5a9ac939fc2fadeeddaea62dc3f4303b24d33ad4def3126f"
+url = "https://github.com/owenlamont/ryl/releases/download/v0.24.0/ryl-aarch64-apple-darwin.tar.gz"
+url_api = "https://api.github.com/repos/owenlamont/ryl/releases/assets/611310936"
provenance = "github-attestations"
[tools."aqua:owenlamont/ryl"."platforms.windows-x64"]
-checksum = "sha256:c0b3c8520b0d749d5df974e9638110a7169cde1d8febd6a4e68e802c5de7a70d"
-url = "https://github.com/owenlamont/ryl/releases/download/v0.22.0/ryl-x86_64-pc-windows-msvc.zip"
-url_api = "https://api.github.com/repos/owenlamont/ryl/releases/assets/547221108"
+checksum = "sha256:e86231ca8ef367f309fe0e49038c220426fca9ebc51d3f806972a015da3d42b0"
+url = "https://github.com/owenlamont/ryl/releases/download/v0.24.0/ryl-x86_64-pc-windows-msvc.zip"
+url_api = "https://api.github.com/repos/owenlamont/ryl/releases/assets/611310978"
provenance = "github-attestations"
[[tools.biome]]
-version = "2.5.13"
+version = "2.5.15"
backend = "aqua:biomejs/biome"
specifiers = ["latest"]
[tools.biome."platforms.linux-arm64"]
-checksum = "sha256:c5f0cf249b1ef1d730376ef61390341e4fdcdb2f79a7fe94a2dacd6af6241958"
-url = "https://github.com/biomejs/biome/releases/download/%40biomejs/biome%402.5.13/biome-linux-arm64"
-url_api = "https://api.github.com/repos/biomejs/biome/releases/assets/554847321"
+checksum = "sha256:a56bcd73ddbfdb0f57a82bb67b7ea698eed4027aff602b95aa18fafe919d59e0"
+url = "https://github.com/biomejs/biome/releases/download/%40biomejs/biome%402.5.15/biome-linux-arm64"
+url_api = "https://api.github.com/repos/biomejs/biome/releases/assets/601227632"
provenance = "github-attestations"
[tools.biome."platforms.linux-arm64-musl"]
-checksum = "sha256:41ea15898cb3da3fcc90388671ac88c197f80c4ff681cff56a1cdd5433266524"
-url = "https://github.com/biomejs/biome/releases/download/%40biomejs/biome%402.5.13/biome-linux-arm64-musl"
-url_api = "https://api.github.com/repos/biomejs/biome/releases/assets/554847322"
+checksum = "sha256:a56bcd73ddbfdb0f57a82bb67b7ea698eed4027aff602b95aa18fafe919d59e0"
+url = "https://github.com/biomejs/biome/releases/download/%40biomejs/biome%402.5.15/biome-linux-arm64"
+url_api = "https://api.github.com/repos/biomejs/biome/releases/assets/601227632"
provenance = "github-attestations"
[tools.biome."platforms.linux-x64"]
-checksum = "sha256:2037af3d666febdb6e1a2f549938d6f0fe961bad0ac1a34c5fee3dec2db0b43e"
-url = "https://github.com/biomejs/biome/releases/download/%40biomejs/biome%402.5.13/biome-linux-x64"
-url_api = "https://api.github.com/repos/biomejs/biome/releases/assets/554847323"
+checksum = "sha256:5d867a0b2ccea1755b7e508b01d836a8c64e31a1e4d11ec24b43b6b4eec8b3b6"
+url = "https://github.com/biomejs/biome/releases/download/%40biomejs/biome%402.5.15/biome-linux-x64"
+url_api = "https://api.github.com/repos/biomejs/biome/releases/assets/601227626"
provenance = "github-attestations"
[tools.biome."platforms.linux-x64-musl"]
-checksum = "sha256:bcf687baae8fcb2e15e1dff8dc2557a98295d26debfb1e353a2cdb01f63a9e62"
-url = "https://github.com/biomejs/biome/releases/download/%40biomejs/biome%402.5.13/biome-linux-x64-musl"
-url_api = "https://api.github.com/repos/biomejs/biome/releases/assets/554847316"
+checksum = "sha256:5d867a0b2ccea1755b7e508b01d836a8c64e31a1e4d11ec24b43b6b4eec8b3b6"
+url = "https://github.com/biomejs/biome/releases/download/%40biomejs/biome%402.5.15/biome-linux-x64"
+url_api = "https://api.github.com/repos/biomejs/biome/releases/assets/601227626"
provenance = "github-attestations"
[tools.biome."platforms.macos-arm64"]
-checksum = "sha256:3d0cff7e4cd35a1709c1f4f9568380e08b3551ecf6e7356b3a49a40e3611894b"
-url = "https://github.com/biomejs/biome/releases/download/%40biomejs/biome%402.5.13/biome-darwin-arm64"
-url_api = "https://api.github.com/repos/biomejs/biome/releases/assets/554847319"
+checksum = "sha256:3636796d8c78bfcfe0d45946dc93e21e12d27a49eba7401e18af1ea854d25503"
+url = "https://github.com/biomejs/biome/releases/download/%40biomejs/biome%402.5.15/biome-darwin-arm64"
+url_api = "https://api.github.com/repos/biomejs/biome/releases/assets/601227628"
provenance = "github-attestations"
[tools.biome."platforms.macos-x64"]
-checksum = "sha256:16f162b37f5bfca9d203dd8a05b20a3aaa6fee806f6ae0e1f8792331a6072238"
-url = "https://github.com/biomejs/biome/releases/download/%40biomejs/biome%402.5.13/biome-darwin-x64"
-url_api = "https://api.github.com/repos/biomejs/biome/releases/assets/554847324"
+checksum = "sha256:86fc618563d19f373ac24eb5b8f1e41bd753a506d5df1f198c152ec365141490"
+url = "https://github.com/biomejs/biome/releases/download/%40biomejs/biome%402.5.15/biome-darwin-x64"
+url_api = "https://api.github.com/repos/biomejs/biome/releases/assets/601227623"
provenance = "github-attestations"
[tools.biome."platforms.windows-x64"]
-checksum = "sha256:3d7ce7840c4b47db771f258bd2258eecdae820a4bad376b9740af5bb9bb4d75d"
-url = "https://github.com/biomejs/biome/releases/download/%40biomejs/biome%402.5.13/biome-win32-x64.exe"
-url_api = "https://api.github.com/repos/biomejs/biome/releases/assets/554847315"
+checksum = "sha256:f2beadee753b78fe76081158123538be886a31b5e67a34863e42535f3f491926"
+url = "https://github.com/biomejs/biome/releases/download/%40biomejs/biome%402.5.15/biome-win32-x64.exe"
+url_api = "https://api.github.com/repos/biomejs/biome/releases/assets/601227624"
provenance = "github-attestations"
[[tools.checkstyle]]
-version = "13.8.0"
+version = "14.3.0"
backend = "aqua:checkstyle/checkstyle"
specifiers = ["latest"]
[tools.checkstyle."platforms.linux-arm64"]
-checksum = "sha256:cb0b1083eb5d3f9f0b7f0edd9a86d8dbe406bf44da73c3df869abace8cb8502c"
-url = "https://github.com/checkstyle/checkstyle/releases/download/checkstyle-13.8.0/checkstyle-13.8.0-all.jar"
-url_api = "https://api.github.com/repos/checkstyle/checkstyle/releases/assets/474019260"
+checksum = "sha256:754e218ab1fcabb1e1c5f8530e9d3aa37636806c22987bb279dd907a6ee749b2"
+url = "https://github.com/checkstyle/checkstyle/releases/download/checkstyle-14.3.0/checkstyle-14.3.0-all.jar"
+url_api = "https://api.github.com/repos/checkstyle/checkstyle/releases/assets/593192192"
[tools.checkstyle."platforms.linux-arm64-musl"]
-checksum = "sha256:cb0b1083eb5d3f9f0b7f0edd9a86d8dbe406bf44da73c3df869abace8cb8502c"
-url = "https://github.com/checkstyle/checkstyle/releases/download/checkstyle-13.8.0/checkstyle-13.8.0-all.jar"
-url_api = "https://api.github.com/repos/checkstyle/checkstyle/releases/assets/474019260"
+checksum = "sha256:754e218ab1fcabb1e1c5f8530e9d3aa37636806c22987bb279dd907a6ee749b2"
+url = "https://github.com/checkstyle/checkstyle/releases/download/checkstyle-14.3.0/checkstyle-14.3.0-all.jar"
+url_api = "https://api.github.com/repos/checkstyle/checkstyle/releases/assets/593192192"
[tools.checkstyle."platforms.linux-x64"]
-checksum = "sha256:cb0b1083eb5d3f9f0b7f0edd9a86d8dbe406bf44da73c3df869abace8cb8502c"
-url = "https://github.com/checkstyle/checkstyle/releases/download/checkstyle-13.8.0/checkstyle-13.8.0-all.jar"
-url_api = "https://api.github.com/repos/checkstyle/checkstyle/releases/assets/474019260"
+checksum = "sha256:754e218ab1fcabb1e1c5f8530e9d3aa37636806c22987bb279dd907a6ee749b2"
+url = "https://github.com/checkstyle/checkstyle/releases/download/checkstyle-14.3.0/checkstyle-14.3.0-all.jar"
+url_api = "https://api.github.com/repos/checkstyle/checkstyle/releases/assets/593192192"
[tools.checkstyle."platforms.linux-x64-musl"]
-checksum = "sha256:cb0b1083eb5d3f9f0b7f0edd9a86d8dbe406bf44da73c3df869abace8cb8502c"
-url = "https://github.com/checkstyle/checkstyle/releases/download/checkstyle-13.8.0/checkstyle-13.8.0-all.jar"
-url_api = "https://api.github.com/repos/checkstyle/checkstyle/releases/assets/474019260"
+checksum = "sha256:754e218ab1fcabb1e1c5f8530e9d3aa37636806c22987bb279dd907a6ee749b2"
+url = "https://github.com/checkstyle/checkstyle/releases/download/checkstyle-14.3.0/checkstyle-14.3.0-all.jar"
+url_api = "https://api.github.com/repos/checkstyle/checkstyle/releases/assets/593192192"
[tools.checkstyle."platforms.macos-arm64"]
-checksum = "sha256:cb0b1083eb5d3f9f0b7f0edd9a86d8dbe406bf44da73c3df869abace8cb8502c"
-url = "https://github.com/checkstyle/checkstyle/releases/download/checkstyle-13.8.0/checkstyle-13.8.0-all.jar"
-url_api = "https://api.github.com/repos/checkstyle/checkstyle/releases/assets/474019260"
+checksum = "sha256:754e218ab1fcabb1e1c5f8530e9d3aa37636806c22987bb279dd907a6ee749b2"
+url = "https://github.com/checkstyle/checkstyle/releases/download/checkstyle-14.3.0/checkstyle-14.3.0-all.jar"
+url_api = "https://api.github.com/repos/checkstyle/checkstyle/releases/assets/593192192"
[tools.checkstyle."platforms.macos-x64"]
-checksum = "sha256:cb0b1083eb5d3f9f0b7f0edd9a86d8dbe406bf44da73c3df869abace8cb8502c"
-url = "https://github.com/checkstyle/checkstyle/releases/download/checkstyle-13.8.0/checkstyle-13.8.0-all.jar"
-url_api = "https://api.github.com/repos/checkstyle/checkstyle/releases/assets/474019260"
+checksum = "sha256:754e218ab1fcabb1e1c5f8530e9d3aa37636806c22987bb279dd907a6ee749b2"
+url = "https://github.com/checkstyle/checkstyle/releases/download/checkstyle-14.3.0/checkstyle-14.3.0-all.jar"
+url_api = "https://api.github.com/repos/checkstyle/checkstyle/releases/assets/593192192"
[tools.checkstyle."platforms.windows-x64"]
-checksum = "sha256:cb0b1083eb5d3f9f0b7f0edd9a86d8dbe406bf44da73c3df869abace8cb8502c"
-url = "https://github.com/checkstyle/checkstyle/releases/download/checkstyle-13.8.0/checkstyle-13.8.0-all.jar"
-url_api = "https://api.github.com/repos/checkstyle/checkstyle/releases/assets/474019260"
+checksum = "sha256:754e218ab1fcabb1e1c5f8530e9d3aa37636806c22987bb279dd907a6ee749b2"
+url = "https://github.com/checkstyle/checkstyle/releases/download/checkstyle-14.3.0/checkstyle-14.3.0-all.jar"
+url_api = "https://api.github.com/repos/checkstyle/checkstyle/releases/assets/593192192"
[[tools.editorconfig-checker]]
-version = "4.0.1"
+version = "4.0.2"
backend = "aqua:editorconfig-checker/editorconfig-checker"
specifiers = ["latest"]
[tools.editorconfig-checker."platforms.linux-arm64"]
-checksum = "sha256:f162c749ade763ed4954de678ebb786c99431b9a615a964c284605e68dbbd3f9"
-url = "https://github.com/editorconfig-checker/editorconfig-checker/releases/download/v4.0.1/editorconfig-checker-linux-arm64.tar.gz"
-url_api = "https://api.github.com/repos/editorconfig-checker/editorconfig-checker/releases/assets/543952366"
+checksum = "sha256:abad76da8c9950fdc2a314bcd66969172aa823e9c595fa7e3a389a91e34d025e"
+url = "https://github.com/editorconfig-checker/editorconfig-checker/releases/download/v4.0.2/editorconfig-checker-linux-arm64.tar.gz"
+url_api = "https://api.github.com/repos/editorconfig-checker/editorconfig-checker/releases/assets/574675779"
[tools.editorconfig-checker."platforms.linux-arm64-musl"]
-checksum = "sha256:f162c749ade763ed4954de678ebb786c99431b9a615a964c284605e68dbbd3f9"
-url = "https://github.com/editorconfig-checker/editorconfig-checker/releases/download/v4.0.1/editorconfig-checker-linux-arm64.tar.gz"
-url_api = "https://api.github.com/repos/editorconfig-checker/editorconfig-checker/releases/assets/543952366"
+checksum = "sha256:abad76da8c9950fdc2a314bcd66969172aa823e9c595fa7e3a389a91e34d025e"
+url = "https://github.com/editorconfig-checker/editorconfig-checker/releases/download/v4.0.2/editorconfig-checker-linux-arm64.tar.gz"
+url_api = "https://api.github.com/repos/editorconfig-checker/editorconfig-checker/releases/assets/574675779"
[tools.editorconfig-checker."platforms.linux-x64"]
-checksum = "sha256:90139c6ed52373c0acfc9deb2a07aa812e5184753afd4bc8252bf44eb4909155"
-url = "https://github.com/editorconfig-checker/editorconfig-checker/releases/download/v4.0.1/editorconfig-checker-linux-amd64.tar.gz"
-url_api = "https://api.github.com/repos/editorconfig-checker/editorconfig-checker/releases/assets/543952355"
+checksum = "sha256:44efaef3ed14c6ab52eb87481d78e5e5c204796dccf26e2f4598a61ba17f8003"
+url = "https://github.com/editorconfig-checker/editorconfig-checker/releases/download/v4.0.2/editorconfig-checker-linux-amd64.tar.gz"
+url_api = "https://api.github.com/repos/editorconfig-checker/editorconfig-checker/releases/assets/574675771"
[tools.editorconfig-checker."platforms.linux-x64-musl"]
-checksum = "sha256:90139c6ed52373c0acfc9deb2a07aa812e5184753afd4bc8252bf44eb4909155"
-url = "https://github.com/editorconfig-checker/editorconfig-checker/releases/download/v4.0.1/editorconfig-checker-linux-amd64.tar.gz"
-url_api = "https://api.github.com/repos/editorconfig-checker/editorconfig-checker/releases/assets/543952355"
+checksum = "sha256:44efaef3ed14c6ab52eb87481d78e5e5c204796dccf26e2f4598a61ba17f8003"
+url = "https://github.com/editorconfig-checker/editorconfig-checker/releases/download/v4.0.2/editorconfig-checker-linux-amd64.tar.gz"
+url_api = "https://api.github.com/repos/editorconfig-checker/editorconfig-checker/releases/assets/574675771"
[tools.editorconfig-checker."platforms.macos-arm64"]
-checksum = "sha256:9ed547505176d7384e1fb861ecfdd13df8c15e37d4bbcc2bd40e52e81ab32176"
-url = "https://github.com/editorconfig-checker/editorconfig-checker/releases/download/v4.0.1/editorconfig-checker-darwin-all.tar.gz"
-url_api = "https://api.github.com/repos/editorconfig-checker/editorconfig-checker/releases/assets/543952367"
+checksum = "sha256:ff59f57717d95fc62b8e372c8051dbbb766f7d660942409a85d027b0feb2422c"
+url = "https://github.com/editorconfig-checker/editorconfig-checker/releases/download/v4.0.2/editorconfig-checker-darwin-all.tar.gz"
+url_api = "https://api.github.com/repos/editorconfig-checker/editorconfig-checker/releases/assets/574675773"
[tools.editorconfig-checker."platforms.macos-x64"]
-checksum = "sha256:9ed547505176d7384e1fb861ecfdd13df8c15e37d4bbcc2bd40e52e81ab32176"
-url = "https://github.com/editorconfig-checker/editorconfig-checker/releases/download/v4.0.1/editorconfig-checker-darwin-all.tar.gz"
-url_api = "https://api.github.com/repos/editorconfig-checker/editorconfig-checker/releases/assets/543952367"
+checksum = "sha256:ff59f57717d95fc62b8e372c8051dbbb766f7d660942409a85d027b0feb2422c"
+url = "https://github.com/editorconfig-checker/editorconfig-checker/releases/download/v4.0.2/editorconfig-checker-darwin-all.tar.gz"
+url_api = "https://api.github.com/repos/editorconfig-checker/editorconfig-checker/releases/assets/574675773"
[tools.editorconfig-checker."platforms.windows-x64"]
-checksum = "sha256:a5f1eb57b62a3499b920f6ddb1561c7f8b0276289ff0c4fefc03a5225d721c11"
-url = "https://github.com/editorconfig-checker/editorconfig-checker/releases/download/v4.0.1/editorconfig-checker-windows-amd64.zip"
-url_api = "https://api.github.com/repos/editorconfig-checker/editorconfig-checker/releases/assets/543952342"
+checksum = "sha256:857f8f74dfc259d73dac93573e37cf3ce01150787d7b139bf839549cc6b5beb9"
+url = "https://github.com/editorconfig-checker/editorconfig-checker/releases/download/v4.0.2/editorconfig-checker-windows-amd64.zip"
+url_api = "https://api.github.com/repos/editorconfig-checker/editorconfig-checker/releases/assets/574675794"
[[tools.google-java-format]]
-version = "1.36.1"
+version = "1.37.0"
backend = "aqua:google/google-java-format"
specifiers = ["latest"]
[tools.google-java-format."platforms.linux-arm64"]
-checksum = "sha256:37d27263fce029fc59aa4e1b556ac6997d0eb2266a38ba2b8746b709f6c77b11"
-url = "https://github.com/google/google-java-format/releases/download/v1.36.1/google-java-format_linux-arm64"
-url_api = "https://api.github.com/repos/google/google-java-format/releases/assets/495658509"
+checksum = "sha256:e8c1c4ae92f5a86367500d78ff0d09ad12bf8ad213fa35b372468fcabf281bd3"
+url = "https://github.com/google/google-java-format/releases/download/v1.37.0/google-java-format_linux-arm64"
+url_api = "https://api.github.com/repos/google/google-java-format/releases/assets/603147101"
[tools.google-java-format."platforms.linux-arm64-musl"]
-checksum = "sha256:37d27263fce029fc59aa4e1b556ac6997d0eb2266a38ba2b8746b709f6c77b11"
-url = "https://github.com/google/google-java-format/releases/download/v1.36.1/google-java-format_linux-arm64"
-url_api = "https://api.github.com/repos/google/google-java-format/releases/assets/495658509"
+checksum = "sha256:e8c1c4ae92f5a86367500d78ff0d09ad12bf8ad213fa35b372468fcabf281bd3"
+url = "https://github.com/google/google-java-format/releases/download/v1.37.0/google-java-format_linux-arm64"
+url_api = "https://api.github.com/repos/google/google-java-format/releases/assets/603147101"
[tools.google-java-format."platforms.linux-x64"]
-checksum = "sha256:8dc71663a6c9cb17b02ba9709bfab5c4de59de6f4ac133fd7a1d5a4394b1193b"
-url = "https://github.com/google/google-java-format/releases/download/v1.36.1/google-java-format_linux-x86-64"
-url_api = "https://api.github.com/repos/google/google-java-format/releases/assets/495658560"
+checksum = "sha256:881821ffd1a52b175886c4ebeeacce2ba5b5d7326b52d32a18d384d8a783bd77"
+url = "https://github.com/google/google-java-format/releases/download/v1.37.0/google-java-format_linux-x86-64"
+url_api = "https://api.github.com/repos/google/google-java-format/releases/assets/603147019"
[tools.google-java-format."platforms.linux-x64-musl"]
-checksum = "sha256:8dc71663a6c9cb17b02ba9709bfab5c4de59de6f4ac133fd7a1d5a4394b1193b"
-url = "https://github.com/google/google-java-format/releases/download/v1.36.1/google-java-format_linux-x86-64"
-url_api = "https://api.github.com/repos/google/google-java-format/releases/assets/495658560"
+checksum = "sha256:881821ffd1a52b175886c4ebeeacce2ba5b5d7326b52d32a18d384d8a783bd77"
+url = "https://github.com/google/google-java-format/releases/download/v1.37.0/google-java-format_linux-x86-64"
+url_api = "https://api.github.com/repos/google/google-java-format/releases/assets/603147019"
[tools.google-java-format."platforms.macos-arm64"]
-checksum = "sha256:572c8be5ea4e15c674f7f9c89f9c0a4b9336950d9c42c07220557e97a4002bce"
-url = "https://github.com/google/google-java-format/releases/download/v1.36.1/google-java-format_darwin-arm64"
-url_api = "https://api.github.com/repos/google/google-java-format/releases/assets/495658217"
+checksum = "sha256:657cf1011c8dfb7e0dac08516db02b701436e59600b961077f83b89b69cc3495"
+url = "https://github.com/google/google-java-format/releases/download/v1.37.0/google-java-format_darwin-arm64"
+url_api = "https://api.github.com/repos/google/google-java-format/releases/assets/603148240"
[tools.google-java-format."platforms.windows-x64"]
-checksum = "sha256:23a6acedcfd9253da8413984dd1e3aecab32f00543477566d1abe5ae5aab1019"
-url = "https://github.com/google/google-java-format/releases/download/v1.36.1/google-java-format_windows-x86-64.exe"
-url_api = "https://api.github.com/repos/google/google-java-format/releases/assets/495658633"
+checksum = "sha256:48260bed87f6830bae44a7a27f66ce98f7d9fb245f500021bd7ae16c9e2daa06"
+url = "https://github.com/google/google-java-format/releases/download/v1.37.0/google-java-format_windows-x86-64.exe"
+url_api = "https://api.github.com/repos/google/google-java-format/releases/assets/603148681"
[[tools.hugo]]
version = "0.166.0"
@@ -677,97 +677,97 @@ url = "https://github.com/protocolbuffers/protobuf/releases/download/v36.2/proto
url_api = "https://api.github.com/repos/protocolbuffers/protobuf/releases/assets/570742465"
[[tools.ruff]]
-version = "0.16.7"
+version = "0.16.10"
backend = "aqua:astral-sh/ruff"
specifiers = ["latest"]
[tools.ruff."platforms.linux-arm64"]
-checksum = "sha256:1e06b11127c28387c8066da4ce6a617a84a359591be09dbf581fbb0c3e006239"
-url = "https://github.com/astral-sh/ruff/releases/download/0.16.7/ruff-aarch64-unknown-linux-gnu.tar.gz"
-url_api = "https://api.github.com/repos/astral-sh/ruff/releases/assets/555530686"
+checksum = "sha256:dc0d74de837ef0a7bcc62ce98c48a622b075d057161f13b958be2934becd55a6"
+url = "https://github.com/astral-sh/ruff/releases/download/0.16.10/ruff-aarch64-unknown-linux-gnu.tar.gz"
+url_api = "https://api.github.com/repos/astral-sh/ruff/releases/assets/603826868"
provenance = "github-attestations"
[tools.ruff."platforms.linux-arm64-musl"]
-checksum = "sha256:dd669efe4ac74ffd5842b26147c36cdd6c93b9cf0d10d5e53c12ec5b44f540bd"
-url = "https://github.com/astral-sh/ruff/releases/download/0.16.7/ruff-aarch64-unknown-linux-musl.tar.gz"
-url_api = "https://api.github.com/repos/astral-sh/ruff/releases/assets/555530691"
+checksum = "sha256:38ebc0ec3e0de538d1c399729ca04e124749211d66aa134c24ad0c1f09a935b9"
+url = "https://github.com/astral-sh/ruff/releases/download/0.16.10/ruff-aarch64-unknown-linux-musl.tar.gz"
+url_api = "https://api.github.com/repos/astral-sh/ruff/releases/assets/603826873"
provenance = "github-attestations"
[tools.ruff."platforms.linux-x64"]
-checksum = "sha256:73894c7b7c9a53fd66ed715eb3a1ec65077f316328e377057a98bdb7fcba0326"
-url = "https://github.com/astral-sh/ruff/releases/download/0.16.7/ruff-x86_64-unknown-linux-gnu.tar.gz"
-url_api = "https://api.github.com/repos/astral-sh/ruff/releases/assets/555530800"
+checksum = "sha256:9567ff1201e2fb3da31ff04c35587d768c66d6cb42dfa84de474e2bfe360b608"
+url = "https://github.com/astral-sh/ruff/releases/download/0.16.10/ruff-x86_64-unknown-linux-gnu.tar.gz"
+url_api = "https://api.github.com/repos/astral-sh/ruff/releases/assets/603827060"
provenance = "github-attestations"
[tools.ruff."platforms.linux-x64-musl"]
-checksum = "sha256:8d28939cf5cabe54a2f8f7cbfab52c643436d1bc70474198181db9e48f504411"
-url = "https://github.com/astral-sh/ruff/releases/download/0.16.7/ruff-x86_64-unknown-linux-musl.tar.gz"
-url_api = "https://api.github.com/repos/astral-sh/ruff/releases/assets/555530803"
+checksum = "sha256:ad1b2138407a0c53b936524df99d87211333f7bc40478d6860f42994597f7ff0"
+url = "https://github.com/astral-sh/ruff/releases/download/0.16.10/ruff-x86_64-unknown-linux-musl.tar.gz"
+url_api = "https://api.github.com/repos/astral-sh/ruff/releases/assets/603827079"
provenance = "github-attestations"
[tools.ruff."platforms.macos-arm64"]
-checksum = "sha256:80221a5e0b1ae29262a74496f2ad1380c1ab52b3edd8cee13ec76d8acff406ca"
-url = "https://github.com/astral-sh/ruff/releases/download/0.16.7/ruff-aarch64-apple-darwin.tar.gz"
-url_api = "https://api.github.com/repos/astral-sh/ruff/releases/assets/555530669"
+checksum = "sha256:f051cd306de2691262a0574f8857cd1f4d6bfcd448084ea23d61b9c1c37df510"
+url = "https://github.com/astral-sh/ruff/releases/download/0.16.10/ruff-aarch64-apple-darwin.tar.gz"
+url_api = "https://api.github.com/repos/astral-sh/ruff/releases/assets/603826852"
provenance = "github-attestations"
[tools.ruff."platforms.macos-x64"]
-checksum = "sha256:6f3b98ec349f470b7efde5294d44e5171613ddaac3c251a918a7946b303d3ec2"
-url = "https://github.com/astral-sh/ruff/releases/download/0.16.7/ruff-x86_64-apple-darwin.tar.gz"
-url_api = "https://api.github.com/repos/astral-sh/ruff/releases/assets/555530779"
+checksum = "sha256:ace641df42926e962cf04bc52c79eb6c50ba1ae6a17b602f081960616ecc1bd1"
+url = "https://github.com/astral-sh/ruff/releases/download/0.16.10/ruff-x86_64-apple-darwin.tar.gz"
+url_api = "https://api.github.com/repos/astral-sh/ruff/releases/assets/603827024"
provenance = "github-attestations"
[tools.ruff."platforms.windows-x64"]
-checksum = "sha256:a099e761fb841fc33d44031aa37e16a3d154922fd3da284396e58ae687973e45"
-url = "https://github.com/astral-sh/ruff/releases/download/0.16.7/ruff-x86_64-pc-windows-msvc.zip"
-url_api = "https://api.github.com/repos/astral-sh/ruff/releases/assets/555530794"
+checksum = "sha256:6b90457fbd249923db196044d5f3c26e4f7cefacc769c26fd52520fa033f736e"
+url = "https://github.com/astral-sh/ruff/releases/download/0.16.10/ruff-x86_64-pc-windows-msvc.zip"
+url_api = "https://api.github.com/repos/astral-sh/ruff/releases/assets/603827051"
provenance = "github-attestations"
[[tools.rumdl]]
-version = "v0.2.73"
+version = "0.2.78"
backend = "aqua:rvben/rumdl"
specifiers = ["latest"]
[tools.rumdl."platforms.linux-arm64"]
-checksum = "sha256:83fb9a5899d192b828625f21cb26f8971dc5e6c280a947594db1f0932cb9e7df"
-url = "https://github.com/rvben/rumdl/releases/download/v0.2.73/rumdl-v0.2.73-aarch64-unknown-linux-gnu.tar.gz"
-url_api = "https://api.github.com/repos/rvben/rumdl/releases/assets/557839622"
+checksum = "sha256:16e518695868a650ad0f584f60f225e65e63ffb71b46aba2428c365c7225d262"
+url = "https://github.com/rvben/rumdl/releases/download/v0.2.78/rumdl-v0.2.78-aarch64-unknown-linux-gnu.tar.gz"
+url_api = "https://api.github.com/repos/rvben/rumdl/releases/assets/598548742"
provenance = "github-attestations"
[tools.rumdl."platforms.linux-arm64-musl"]
-checksum = "sha256:f51548adfc71c4982cb5cc239d847bcd4c884e6ac8dc67efd68efd3eea9753a4"
-url = "https://github.com/rvben/rumdl/releases/download/v0.2.73/rumdl-v0.2.73-aarch64-unknown-linux-musl.tar.gz"
-url_api = "https://api.github.com/repos/rvben/rumdl/releases/assets/557839618"
+checksum = "sha256:83afca5be68f8710cf5e3faef103927af8ef8dec3b19bd33ceebef348f3e546e"
+url = "https://github.com/rvben/rumdl/releases/download/v0.2.78/rumdl-v0.2.78-aarch64-unknown-linux-musl.tar.gz"
+url_api = "https://api.github.com/repos/rvben/rumdl/releases/assets/598548747"
provenance = "github-attestations"
[tools.rumdl."platforms.linux-x64"]
-checksum = "sha256:d56a8e40471af32fe3229e845f3e299e3691665b15cd4ca28f2deb502c487666"
-url = "https://github.com/rvben/rumdl/releases/download/v0.2.73/rumdl-v0.2.73-x86_64-unknown-linux-gnu.tar.gz"
-url_api = "https://api.github.com/repos/rvben/rumdl/releases/assets/557839623"
+checksum = "sha256:5597ecab62c6cd50e63f85451fe4e763abc58195a3e7eff9186b6dfae890ca24"
+url = "https://github.com/rvben/rumdl/releases/download/v0.2.78/rumdl-v0.2.78-x86_64-unknown-linux-gnu.tar.gz"
+url_api = "https://api.github.com/repos/rvben/rumdl/releases/assets/598548740"
provenance = "github-attestations"
[tools.rumdl."platforms.linux-x64-musl"]
-checksum = "sha256:dc4aa9bf98f936f667039224a34fc2e26ddf6be3589bf59d63e4d6b038be4f5c"
-url = "https://github.com/rvben/rumdl/releases/download/v0.2.73/rumdl-v0.2.73-x86_64-unknown-linux-musl.tar.gz"
-url_api = "https://api.github.com/repos/rvben/rumdl/releases/assets/557839615"
+checksum = "sha256:507d2243ca3582094588c0610c2ee5c3bcd0a50a8564149dcce4268cdf50de82"
+url = "https://github.com/rvben/rumdl/releases/download/v0.2.78/rumdl-v0.2.78-x86_64-unknown-linux-musl.tar.gz"
+url_api = "https://api.github.com/repos/rvben/rumdl/releases/assets/598548743"
provenance = "github-attestations"
[tools.rumdl."platforms.macos-arm64"]
-checksum = "sha256:54e0e7c3031b8bfa37e3c57104cc0c93988e02f5b7023c1804749fd180822f9e"
-url = "https://github.com/rvben/rumdl/releases/download/v0.2.73/rumdl-v0.2.73-aarch64-apple-darwin.tar.gz"
-url_api = "https://api.github.com/repos/rvben/rumdl/releases/assets/557839617"
+checksum = "sha256:450f00cdbf1da3bc3fbdf56c52dc9e6b2ab08bfd1ee6a26b44848e52a180dba5"
+url = "https://github.com/rvben/rumdl/releases/download/v0.2.78/rumdl-v0.2.78-aarch64-apple-darwin.tar.gz"
+url_api = "https://api.github.com/repos/rvben/rumdl/releases/assets/598548745"
provenance = "github-attestations"
[tools.rumdl."platforms.macos-x64"]
-checksum = "sha256:ad181073e75df52e982025d1f5a9508ef6588f895ef5f78227301499325ea132"
-url = "https://github.com/rvben/rumdl/releases/download/v0.2.73/rumdl-v0.2.73-x86_64-apple-darwin.tar.gz"
-url_api = "https://api.github.com/repos/rvben/rumdl/releases/assets/557839628"
+checksum = "sha256:0cb4eecf286798e770c1f9e85fbf532ee135becc248a25fab388355c998543f9"
+url = "https://github.com/rvben/rumdl/releases/download/v0.2.78/rumdl-v0.2.78-x86_64-apple-darwin.tar.gz"
+url_api = "https://api.github.com/repos/rvben/rumdl/releases/assets/598548751"
provenance = "github-attestations"
[tools.rumdl."platforms.windows-x64"]
-checksum = "sha256:bc6c86d61588e9c92ec9927903ed4973986d30b94d042732ddf62424755dd3c8"
-url = "https://github.com/rvben/rumdl/releases/download/v0.2.73/rumdl-v0.2.73-x86_64-pc-windows-msvc.zip"
-url_api = "https://api.github.com/repos/rvben/rumdl/releases/assets/557839616"
+checksum = "sha256:fb8f475e68e754fdddc1c7c7d85914df984465ce6a8a9e9fe5fcc434782b5f7d"
+url = "https://github.com/rvben/rumdl/releases/download/v0.2.78/rumdl-v0.2.78-x86_64-pc-windows-msvc.zip"
+url_api = "https://api.github.com/repos/rvben/rumdl/releases/assets/598548749"
provenance = "github-attestations"
[[tools.shellcheck]]
@@ -884,44 +884,44 @@ url = "https://github.com/tamasfe/taplo/releases/download/0.10.0/taplo-windows-x
url_api = "https://api.github.com/repos/tamasfe/taplo/releases/assets/257323062"
[[tools.typos]]
-version = "1.50.1"
+version = "1.50.3"
backend = "aqua:crate-ci/typos"
specifiers = ["latest"]
[tools.typos."platforms.linux-arm64"]
-checksum = "sha256:a48feb58c517977ca953e634507c72819d64df8717c33ced3e43868d174fd39e"
-url = "https://github.com/crate-ci/typos/releases/download/v1.50.1/typos-v1.50.1-aarch64-unknown-linux-musl.tar.gz"
-url_api = "https://api.github.com/repos/crate-ci/typos/releases/assets/539857357"
+checksum = "sha256:456f9fe7aa6e7c1597879f5e951d7de2fab261a9ca05f16f324f896c806c55db"
+url = "https://github.com/crate-ci/typos/releases/download/v1.50.3/typos-v1.50.3-aarch64-unknown-linux-musl.tar.gz"
+url_api = "https://api.github.com/repos/crate-ci/typos/releases/assets/588999780"
[tools.typos."platforms.linux-arm64-musl"]
-checksum = "sha256:a48feb58c517977ca953e634507c72819d64df8717c33ced3e43868d174fd39e"
-url = "https://github.com/crate-ci/typos/releases/download/v1.50.1/typos-v1.50.1-aarch64-unknown-linux-musl.tar.gz"
-url_api = "https://api.github.com/repos/crate-ci/typos/releases/assets/539857357"
+checksum = "sha256:456f9fe7aa6e7c1597879f5e951d7de2fab261a9ca05f16f324f896c806c55db"
+url = "https://github.com/crate-ci/typos/releases/download/v1.50.3/typos-v1.50.3-aarch64-unknown-linux-musl.tar.gz"
+url_api = "https://api.github.com/repos/crate-ci/typos/releases/assets/588999780"
[tools.typos."platforms.linux-x64"]
-checksum = "sha256:edf0545109aee6a22751d04ddecb97c45be47d3aa0409564fb895eeeace91b1e"
-url = "https://github.com/crate-ci/typos/releases/download/v1.50.1/typos-v1.50.1-x86_64-unknown-linux-musl.tar.gz"
-url_api = "https://api.github.com/repos/crate-ci/typos/releases/assets/539858793"
+checksum = "sha256:aca6b5d546307092b8d0a8e0a89dd80f9da51f2f7617c5e45c5607c1684ffbf2"
+url = "https://github.com/crate-ci/typos/releases/download/v1.50.3/typos-v1.50.3-x86_64-unknown-linux-musl.tar.gz"
+url_api = "https://api.github.com/repos/crate-ci/typos/releases/assets/589000924"
[tools.typos."platforms.linux-x64-musl"]
-checksum = "sha256:edf0545109aee6a22751d04ddecb97c45be47d3aa0409564fb895eeeace91b1e"
-url = "https://github.com/crate-ci/typos/releases/download/v1.50.1/typos-v1.50.1-x86_64-unknown-linux-musl.tar.gz"
-url_api = "https://api.github.com/repos/crate-ci/typos/releases/assets/539858793"
+checksum = "sha256:aca6b5d546307092b8d0a8e0a89dd80f9da51f2f7617c5e45c5607c1684ffbf2"
+url = "https://github.com/crate-ci/typos/releases/download/v1.50.3/typos-v1.50.3-x86_64-unknown-linux-musl.tar.gz"
+url_api = "https://api.github.com/repos/crate-ci/typos/releases/assets/589000924"
[tools.typos."platforms.macos-arm64"]
-checksum = "sha256:2c940734b44b6e199e165278b662b7e17c68f068471a2a8a5e491ce635414ae6"
-url = "https://github.com/crate-ci/typos/releases/download/v1.50.1/typos-v1.50.1-aarch64-apple-darwin.tar.gz"
-url_api = "https://api.github.com/repos/crate-ci/typos/releases/assets/539861019"
+checksum = "sha256:844d4121fb47a95604aa5566843bb9e3d6078040b3c8f22367709f563038f2c5"
+url = "https://github.com/crate-ci/typos/releases/download/v1.50.3/typos-v1.50.3-aarch64-apple-darwin.tar.gz"
+url_api = "https://api.github.com/repos/crate-ci/typos/releases/assets/589002568"
[tools.typos."platforms.macos-x64"]
-checksum = "sha256:b31ccf2f21154b2bc8d2a84f395f746106edda0feec4817fbecdb12216df53bd"
-url = "https://github.com/crate-ci/typos/releases/download/v1.50.1/typos-v1.50.1-x86_64-apple-darwin.tar.gz"
-url_api = "https://api.github.com/repos/crate-ci/typos/releases/assets/539861041"
+checksum = "sha256:7cc75e42fff1e3b66928de325b3ea1ec7e23ce35ffaa3561fdb0ede8e7275f6f"
+url = "https://github.com/crate-ci/typos/releases/download/v1.50.3/typos-v1.50.3-x86_64-apple-darwin.tar.gz"
+url_api = "https://api.github.com/repos/crate-ci/typos/releases/assets/589006772"
[tools.typos."platforms.windows-x64"]
-checksum = "sha256:8740867a0d9e44a62f0803e37a669ec3c6cd17ab63cd49d00e14a96d3e03ccc3"
-url = "https://github.com/crate-ci/typos/releases/download/v1.50.1/typos-v1.50.1-x86_64-pc-windows-msvc.zip"
-url_api = "https://api.github.com/repos/crate-ci/typos/releases/assets/539862554"
+checksum = "sha256:b59f149d84e86aab535d52db029fa8d3ac5ecba9ae5c7f19cf07acb5aa0caaaf"
+url = "https://github.com/crate-ci/typos/releases/download/v1.50.3/typos-v1.50.3-x86_64-pc-windows-msvc.zip"
+url_api = "https://api.github.com/repos/crate-ci/typos/releases/assets/589001623"
[[tools.zizmor]]
version = "1.30.1"
From 6dfbb0a21ef234dea33abb07068c50e57cd009e1 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Mon, 12 Oct 2026 10:39:50 +0200
Subject: [PATCH 209/255] chore(deps): update actions/upload-artifact action to
v7.0.2 (#2531)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
|
[actions/upload-artifact](https://redirect.github.com/actions/upload-artifact)
| action | patch | `v7.0.1` → `v7.0.2` |
---
### Release Notes
actions/upload-artifact (actions/upload-artifact)
###
[`v7.0.2`](https://redirect.github.com/actions/upload-artifact/releases/tag/v7.0.2)
[Compare
Source](https://redirect.github.com/actions/upload-artifact/compare/v7.0.1...v7.0.2)
##### What's Changed
- Improves artifact download retries when the service returns HTTP 429
(rate limiting), including honoring valid Retry-After headers.
- Updates
[@actions/artifact](https://redirect.github.com/actions/artifact)
to v6.3.1.
##### New Contributors
- [@tunc-d](https://redirect.github.com/tunc-d) made their first
contribution in
[#821](https://redirect.github.com/actions/upload-artifact/pull/821)
**Full Changelog**:
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/prometheus/client_java).
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
.github/workflows/generate-protobuf.yml | 2 +-
.github/workflows/nightly-benchmarks.yml | 2 +-
.github/workflows/pr-benchmarks.yml | 6 +++---
.github/workflows/regenerate-api-diff-otel.yml | 2 +-
.github/workflows/scorecard.yml | 2 +-
5 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/.github/workflows/generate-protobuf.yml b/.github/workflows/generate-protobuf.yml
index 294aa9032b..c306ac011b 100644
--- a/.github/workflows/generate-protobuf.yml
+++ b/.github/workflows/generate-protobuf.yml
@@ -74,7 +74,7 @@ jobs:
git add -A -- '*.java'
git diff --cached --binary > /tmp/protobuf-sources.patch
- name: Upload generated patch
- uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
+ uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2
with:
name: protobuf-sources-patch
path: /tmp/protobuf-sources.patch
diff --git a/.github/workflows/nightly-benchmarks.yml b/.github/workflows/nightly-benchmarks.yml
index f4fa7965fc..02f68dcdd0 100644
--- a/.github/workflows/nightly-benchmarks.yml
+++ b/.github/workflows/nightly-benchmarks.yml
@@ -62,7 +62,7 @@ jobs:
GITHUB_REPOSITORY: ${{ github.repository }}
- name: Upload benchmark results
- uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
+ uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2
with:
name: benchmark-results
path: benchmark-results
diff --git a/.github/workflows/pr-benchmarks.yml b/.github/workflows/pr-benchmarks.yml
index aa7f3277fe..575e2d842c 100644
--- a/.github/workflows/pr-benchmarks.yml
+++ b/.github/workflows/pr-benchmarks.yml
@@ -90,7 +90,7 @@ jobs:
run: mv benchmark-results.json /tmp/head-results.json
- name: Upload ${{ matrix.topic }} benchmark results
- uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
+ uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2
with:
name: pr-benchmark-topic-${{ matrix.topic }}-${{ env.PR_NUMBER }}-${{ env.HEAD_SHA }}
path: |
@@ -162,14 +162,14 @@ jobs:
cp benchmark-results/README.md pr-benchmark-comment.md
- name: Upload PR benchmark results
- uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
+ uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2
with:
name: pr-benchmark-results-pr-${{ env.PR_NUMBER }}-${{ env.HEAD_SHA }}
path: benchmark-results
retention-days: 5
- name: Upload PR benchmark comment
- uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
+ uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2
with:
name: pr-benchmark-comment-pr-${{ env.PR_NUMBER }}-${{ env.HEAD_SHA }}
path: pr-benchmark-comment.md
diff --git a/.github/workflows/regenerate-api-diff-otel.yml b/.github/workflows/regenerate-api-diff-otel.yml
index 479812324f..95caeac941 100644
--- a/.github/workflows/regenerate-api-diff-otel.yml
+++ b/.github/workflows/regenerate-api-diff-otel.yml
@@ -49,7 +49,7 @@ jobs:
fi
git diff --binary -- docs/apidiffs > /tmp/apidiffs.patch
- name: Upload generated patch
- uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
+ uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2
with:
name: apidiffs-patch
path: /tmp/apidiffs.patch
diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml
index 9a26e5e3c4..48529e7bfb 100644
--- a/.github/workflows/scorecard.yml
+++ b/.github/workflows/scorecard.yml
@@ -34,7 +34,7 @@ jobs:
publish_results: true
- name: Upload artifact
- uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
+ uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2
with:
name: SARIF file
path: results.sarif
From fe6c9c8dc53135a820fb94b5a318316a0b28b0ee Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Mon, 12 Oct 2026 10:40:15 +0200
Subject: [PATCH 210/255] chore(deps): update dependency
grafana/docker-otel-lgtm to v0.36.0 (#2538)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This PR contains the following updates:
| Package | Update | Change |
|---|---|---|
|
[grafana/docker-otel-lgtm](https://redirect.github.com/grafana/docker-otel-lgtm)
| minor | `0.33.1` → `0.36.0` |
---
### Release Notes
grafana/docker-otel-lgtm (grafana/docker-otel-lgtm)
###
[`v0.36.0`](https://redirect.github.com/grafana/docker-otel-lgtm/releases/tag/v0.36.0)
[Compare
Source](https://redirect.github.com/grafana/docker-otel-lgtm/compare/v0.35.0...v0.36.0)
#### What's Changed
##### OpenTelemetry & LGTM
- chore(deps): update dependency grafana to v13.2.3 by
[@renovate-sh-app](https://redirect.github.com/renovate-sh-app)\[bot]
in
[#1901](https://redirect.github.com/grafana/docker-otel-lgtm/pull/1901)
- chore(deps): update dependency opentelemetry-collector to v0.162.0 by
[@renovate-sh-app](https://redirect.github.com/renovate-sh-app)\[bot]
in
[#1903](https://redirect.github.com/grafana/docker-otel-lgtm/pull/1903)
- chore(deps): update dependency tempo to v3.1.0 by
[@renovate-sh-app](https://redirect.github.com/renovate-sh-app)\[bot]
in
[#1904](https://redirect.github.com/grafana/docker-otel-lgtm/pull/1904)
- chore(deps): update grafana/otel-lgtm docker tag to v0.35.0 by
[@renovate-sh-app](https://redirect.github.com/renovate-sh-app)\[bot]
in
[#1914](https://redirect.github.com/grafana/docker-otel-lgtm/pull/1914)
- chore(deps): update dependency obi to v0.14.0 by
[@renovate-sh-app](https://redirect.github.com/renovate-sh-app)\[bot]
in
[#1920](https://redirect.github.com/grafana/docker-otel-lgtm/pull/1920)
##### Other Changes
- feat: support apple container by
[@falau](https://redirect.github.com/falau) in
[#1894](https://redirect.github.com/grafana/docker-otel-lgtm/pull/1894)
- refactor: replace image MCP bootstrap with gcx guidance by
[@zeitlinger](https://redirect.github.com/zeitlinger) in
[#1864](https://redirect.github.com/grafana/docker-otel-lgtm/pull/1864)
- ci: run full lint set with hk / use specifiers for mise versions by
[@zeitlinger](https://redirect.github.com/zeitlinger) in
[#1796](https://redirect.github.com/grafana/docker-otel-lgtm/pull/1796)
#### New Contributors
- [@falau](https://redirect.github.com/falau) made their first
contribution in
[#1894](https://redirect.github.com/grafana/docker-otel-lgtm/pull/1894)
**Full Changelog**:
###
[`v0.35.0`](https://redirect.github.com/grafana/docker-otel-lgtm/releases/tag/v0.35.0)
[Compare
Source](https://redirect.github.com/grafana/docker-otel-lgtm/compare/v0.34.0...v0.35.0)
#### What's Changed
##### OpenTelemetry & LGTM
- chore(deps): update grafana/otel-lgtm docker tag to v0.34.0 by
[@renovate-sh-app](https://redirect.github.com/renovate-sh-app)\[bot]
in
[#1891](https://redirect.github.com/grafana/docker-otel-lgtm/pull/1891)
- chore(deps): update dependency prometheus to v3.15.0 by
[@renovate-sh-app](https://redirect.github.com/renovate-sh-app)\[bot]
in
[#1890](https://redirect.github.com/grafana/docker-otel-lgtm/pull/1890)
**Full Changelog**:
###
[`v0.34.0`](https://redirect.github.com/grafana/docker-otel-lgtm/releases/tag/v0.34.0)
[Compare
Source](https://redirect.github.com/grafana/docker-otel-lgtm/compare/v0.33.1...v0.34.0)
#### What's Changed
##### OpenTelemetry & LGTM
- chore(deps): update dependency grafana to v13.2.2 by
[@renovate-sh-app](https://redirect.github.com/renovate-sh-app)\[bot]
in
[#1854](https://redirect.github.com/grafana/docker-otel-lgtm/pull/1854)
- chore(deps): update dependency loki to v3.7.8 by
[@renovate-sh-app](https://redirect.github.com/renovate-sh-app)\[bot]
in
[#1862](https://redirect.github.com/grafana/docker-otel-lgtm/pull/1862)
- chore(deps): update grafana/otel-lgtm docker tag to v0.33.1 by
[@renovate-sh-app](https://redirect.github.com/renovate-sh-app)\[bot]
in
[#1865](https://redirect.github.com/grafana/docker-otel-lgtm/pull/1865)
- chore(deps): update dependency opentelemetry-collector to v0.161.0 by
[@renovate-sh-app](https://redirect.github.com/renovate-sh-app)\[bot]
in
[#1866](https://redirect.github.com/grafana/docker-otel-lgtm/pull/1866)
##### Other Changes
- fix: preserve = characters in OTEL_EXPORTER_OTLP_HEADERS values by
[@ethirolle](https://redirect.github.com/ethirolle) in
[#1879](https://redirect.github.com/grafana/docker-otel-lgtm/pull/1879)
#### New Contributors
- [@ethirolle](https://redirect.github.com/ethirolle) made their
first contribution in
[#1879](https://redirect.github.com/grafana/docker-otel-lgtm/pull/1879)
**Full Changelog**:
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/prometheus/client_java).
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
mise.toml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/mise.toml b/mise.toml
index b5622b755a..4089f6d823 100644
--- a/mise.toml
+++ b/mise.toml
@@ -34,7 +34,7 @@ trust_policy_excludes = ["@yarnpkg/libzip@3.2.2"]
[env]
FLINT_CONFIG_DIR = ".github/config"
# renovate: datasource=github-releases depName=grafana/docker-otel-lgtm
-LGTM_VERSION = "0.33.1"
+LGTM_VERSION = "0.36.0"
# Latest JMX Exporter release; used as the default ref for the compatibility job.
# renovate: datasource=github-tags depName=prometheus/jmx_exporter versioning=semver-coerced
DEFAULT_JMX_EXPORTER_VERSION = "v1.6.0"
From 50e1978fef9025311038a459c58e5774bd805d52 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Mon, 12 Oct 2026 10:40:46 +0200
Subject: [PATCH 211/255] chore(deps): update dependency aqua:grafana/gcx to
latest (#2537)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [aqua:grafana/gcx](https://redirect.github.com/grafana/gcx) | tools |
minor | `1.3.1` → `1.5.0` |
---
### Release Notes
grafana/gcx (aqua:grafana/gcx)
###
[`v1.5.0`](https://redirect.github.com/grafana/gcx/blob/HEAD/CHANGELOG.md#v150-2026-10-05)
[Compare
Source](https://redirect.github.com/grafana/gcx/compare/v1.4.0...v1.5.0)
###
[`v1.4.0`](https://redirect.github.com/grafana/gcx/blob/HEAD/CHANGELOG.md#v140-2026-10-02)
[Compare
Source](https://redirect.github.com/grafana/gcx/compare/v1.3.1...v1.4.0)
**Metrics and traces**
- Add `gcx metrics search metric-names/label-names/label-values` and
`gcx datasources prometheus
search-metric-names/search-label-names/search-label-values`,
backed by the experimental Prometheus/Mimir search API
([#1374](https://redirect.github.com/grafana/gcx/issues/1374))
- Add experimental TraceByID options to `gcx traces get` and
`gcx datasources tempo get`: `--filter` keeps the spans that match a
TraceQL
spanset expression, shaped by `--keep-hierarchy`, `--match-depth` and
`--ancestor-depth`; `--prune` (with `--prune-group-by`,
`--prune-min-spans`,
`--prune-max-parent-depth`) collapses repeated sibling spans. Both are
off
unless set, and aim at shrinking large traces before `--llm` analysis
([#1250](https://redirect.github.com/grafana/gcx/issues/1250))
**Authentication and configuration**
- Add Basic authentication to `gcx login`
([#1389](https://redirect.github.com/grafana/gcx/issues/1389))
- List the available contexts when the requested context is not found
([#1210](https://redirect.github.com/grafana/gcx/issues/1210))
**Agent Observability**
- Add `gcx agento11y model-rates` to set your own negotiated model
prices
([#1377](https://redirect.github.com/grafana/gcx/issues/1377))
**Synthetic Monitoring and IRM**
- Add `gcx synthetic-monitoring queries list/get` for named queries
([#1373](https://redirect.github.com/grafana/gcx/issues/1373))
- Manage IRM OnCall integration alert templates and maintenance mode
([#1188](https://redirect.github.com/grafana/gcx/issues/1188))
**Application Observability**
- Add `gcx appo11y operations list/get`
([#1334](https://redirect.github.com/grafana/gcx/issues/1334))
- Show service metadata, Explore links and Knowledge Graph data for
services
([#1330](https://redirect.github.com/grafana/gcx/issues/1330),
[#1333](https://redirect.github.com/grafana/gcx/issues/1333))
- Resolve scoped Knowledge Graph services by their exact name
([#1384](https://redirect.github.com/grafana/gcx/issues/1384))
**Security and debugging**
- `--insecure-log-http-payload` dumps now run at the innermost transport
layer
and show every header that reaches the wire, including the OAuth bearer
token. They also show the OAuth token refresh exchange, which carries
the
refresh token and the rotated token pair. Treat captured debug logs as
secrets
([#1190](https://redirect.github.com/grafana/gcx/issues/1190))
- Label the dumps `http request dump` and `http response dump`, include
`Content-Length` and `Accept-Encoding` in request dumps, report why a
dump
failed, and document that dumps log at Debug level (`-vvv`)
([#1190](https://redirect.github.com/grafana/gcx/issues/1190))
**Docs and internals**
- Add guides for managing resources and diagnosing missing telemetry
([#1413](https://redirect.github.com/grafana/gcx/issues/1413),
[#1368](https://redirect.github.com/grafana/gcx/issues/1368))
- Clarify the MkDocs setup and fix broken links
([#1378](https://redirect.github.com/grafana/gcx/issues/1378),
[#1417](https://redirect.github.com/grafana/gcx/issues/1417))
- Move Knowledge Graph transport into a shared internal client
([#1331](https://redirect.github.com/grafana/gcx/issues/1331),
[#1332](https://redirect.github.com/grafana/gcx/issues/1332))
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/prometheus/client_java).
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
mise.lock | 44 ++++++++++++++++++++++----------------------
1 file changed, 22 insertions(+), 22 deletions(-)
diff --git a/mise.lock b/mise.lock
index 1c50dc3f43..7593a7a422 100644
--- a/mise.lock
+++ b/mise.lock
@@ -97,44 +97,44 @@ url_api = "https://api.github.com/repos/grafana/flint/releases/assets/586353820"
provenance = "github-attestations"
[[tools."aqua:grafana/gcx"]]
-version = "v1.3.1"
+version = "v1.5.0"
backend = "aqua:grafana/gcx"
specifiers = ["latest"]
[tools."aqua:grafana/gcx"."platforms.linux-arm64"]
-checksum = "sha256:cf3ea9bfd04ac1c8cec93affb376e5f1f8412dc893374df063d43ddf5ec4535c"
-url = "https://github.com/grafana/gcx/releases/download/v1.3.1/gcx_1.3.1_linux_arm64.tar.gz"
-url_api = "https://api.github.com/repos/grafana/gcx/releases/assets/581517947"
+checksum = "sha256:8a3433cd6fc7c52a6f378a6dff773791a65c81f63b8c8a04854c28e47a78a73b"
+url = "https://github.com/grafana/gcx/releases/download/v1.5.0/gcx_1.5.0_linux_arm64.tar.gz"
+url_api = "https://api.github.com/repos/grafana/gcx/releases/assets/612877119"
[tools."aqua:grafana/gcx"."platforms.linux-arm64-musl"]
-checksum = "sha256:cf3ea9bfd04ac1c8cec93affb376e5f1f8412dc893374df063d43ddf5ec4535c"
-url = "https://github.com/grafana/gcx/releases/download/v1.3.1/gcx_1.3.1_linux_arm64.tar.gz"
-url_api = "https://api.github.com/repos/grafana/gcx/releases/assets/581517947"
+checksum = "sha256:8a3433cd6fc7c52a6f378a6dff773791a65c81f63b8c8a04854c28e47a78a73b"
+url = "https://github.com/grafana/gcx/releases/download/v1.5.0/gcx_1.5.0_linux_arm64.tar.gz"
+url_api = "https://api.github.com/repos/grafana/gcx/releases/assets/612877119"
[tools."aqua:grafana/gcx"."platforms.linux-x64"]
-checksum = "sha256:93f708b5582546c8fc9564ab5912e5c49a545be12247833c2b0b80e304c1083f"
-url = "https://github.com/grafana/gcx/releases/download/v1.3.1/gcx_1.3.1_linux_amd64.tar.gz"
-url_api = "https://api.github.com/repos/grafana/gcx/releases/assets/581517875"
+checksum = "sha256:e7fafdad78081fab56b1b77e3bd3237e4175e24102772711c26130e6283e83f5"
+url = "https://github.com/grafana/gcx/releases/download/v1.5.0/gcx_1.5.0_linux_amd64.tar.gz"
+url_api = "https://api.github.com/repos/grafana/gcx/releases/assets/612877115"
[tools."aqua:grafana/gcx"."platforms.linux-x64-musl"]
-checksum = "sha256:93f708b5582546c8fc9564ab5912e5c49a545be12247833c2b0b80e304c1083f"
-url = "https://github.com/grafana/gcx/releases/download/v1.3.1/gcx_1.3.1_linux_amd64.tar.gz"
-url_api = "https://api.github.com/repos/grafana/gcx/releases/assets/581517875"
+checksum = "sha256:e7fafdad78081fab56b1b77e3bd3237e4175e24102772711c26130e6283e83f5"
+url = "https://github.com/grafana/gcx/releases/download/v1.5.0/gcx_1.5.0_linux_amd64.tar.gz"
+url_api = "https://api.github.com/repos/grafana/gcx/releases/assets/612877115"
[tools."aqua:grafana/gcx"."platforms.macos-arm64"]
-checksum = "sha256:05e1200acd71a092eba477174f2baffa8cd9b420b5a3bfe7d7d3438c784909f0"
-url = "https://github.com/grafana/gcx/releases/download/v1.3.1/gcx_1.3.1_darwin_arm64.tar.gz"
-url_api = "https://api.github.com/repos/grafana/gcx/releases/assets/581517878"
+checksum = "sha256:3de6ed8212e00852fcbfd64b6046ae3b2a0e7a5782650428d04c0bd1a3a4971d"
+url = "https://github.com/grafana/gcx/releases/download/v1.5.0/gcx_1.5.0_darwin_arm64.tar.gz"
+url_api = "https://api.github.com/repos/grafana/gcx/releases/assets/612877116"
[tools."aqua:grafana/gcx"."platforms.macos-x64"]
-checksum = "sha256:1b16b315136ac54d0b68eaff3809a849890aa8df765832d7b8495a0d3603fabd"
-url = "https://github.com/grafana/gcx/releases/download/v1.3.1/gcx_1.3.1_darwin_amd64.tar.gz"
-url_api = "https://api.github.com/repos/grafana/gcx/releases/assets/581517950"
+checksum = "sha256:21ff4ea7638a72fd73b7417300057ddc5c5a83180dc36e30c37da687e3830e3b"
+url = "https://github.com/grafana/gcx/releases/download/v1.5.0/gcx_1.5.0_darwin_amd64.tar.gz"
+url_api = "https://api.github.com/repos/grafana/gcx/releases/assets/612877112"
[tools."aqua:grafana/gcx"."platforms.windows-x64"]
-checksum = "sha256:acdbe8bb46930ccffad61aef50fad2a2ff71d7f3d2155955f7b1eac4ccde9a4a"
-url = "https://github.com/grafana/gcx/releases/download/v1.3.1/gcx_1.3.1_windows_amd64.zip"
-url_api = "https://api.github.com/repos/grafana/gcx/releases/assets/581517874"
+checksum = "sha256:533edc88e1e7fd4fdb34072760307655ff34101cc07ac5a231a2348ff83ae1b6"
+url = "https://github.com/grafana/gcx/releases/download/v1.5.0/gcx_1.5.0_windows_amd64.zip"
+url_api = "https://api.github.com/repos/grafana/gcx/releases/assets/612877202"
[[tools."aqua:grafana/oats"]]
version = "0.10.0"
From 542d6d1b244eece32f49468548024f22fed378e6 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Mon, 12 Oct 2026 10:40:59 +0200
Subject: [PATCH 212/255] chore(deps): update actions/download-artifact action
to v8.0.2 (#2530)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
|
[actions/download-artifact](https://redirect.github.com/actions/download-artifact)
| action | patch | `v8.0.1` → `v8.0.2` |
---
### Release Notes
actions/download-artifact (actions/download-artifact)
###
[`v8.0.2`](https://redirect.github.com/actions/download-artifact/releases/tag/v8.0.2)
[Compare
Source](https://redirect.github.com/actions/download-artifact/compare/v8.0.1...v8.0.2)
##### What's Changed
- Update the readme by
[@danwkennedy](https://redirect.github.com/danwkennedy) in
[#473](https://redirect.github.com/actions/download-artifact/pull/473)
- Improves artifact download retries when the service returns HTTP 429
(rate limiting), including honoring valid Retry-After headers.
- Update
[@actions/artifact](https://redirect.github.com/actions/artifact)
to 6.3.1 by [@tunc-d](https://redirect.github.com/tunc-d) in
[#492](https://redirect.github.com/actions/download-artifact/pull/492)
- Prepare download-artifact v8.0.2 by
[@tunc-d](https://redirect.github.com/tunc-d) in
[#493](https://redirect.github.com/actions/download-artifact/pull/493)
##### New Contributors
- [@tunc-d](https://redirect.github.com/tunc-d) made their first
contribution in
[#492](https://redirect.github.com/actions/download-artifact/pull/492)
**Full Changelog**:
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/prometheus/client_java).
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
.github/workflows/generate-protobuf.yml | 2 +-
.github/workflows/nightly-benchmarks.yml | 2 +-
.github/workflows/pr-benchmarks.yml | 2 +-
.github/workflows/regenerate-api-diff-otel.yml | 2 +-
4 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/.github/workflows/generate-protobuf.yml b/.github/workflows/generate-protobuf.yml
index c306ac011b..434f5b9932 100644
--- a/.github/workflows/generate-protobuf.yml
+++ b/.github/workflows/generate-protobuf.yml
@@ -92,7 +92,7 @@ jobs:
# zizmor: ignore[artipacked] -- needs credentials to push
persist-credentials: true
- name: Download generated patch
- uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
+ uses: actions/download-artifact@9000827ccba6bdab643e8b6fd33ac0654aef8333 # v8.0.2
with:
name: protobuf-sources-patch
path: /tmp/patch
diff --git a/.github/workflows/nightly-benchmarks.yml b/.github/workflows/nightly-benchmarks.yml
index 02f68dcdd0..2b9dd66f80 100644
--- a/.github/workflows/nightly-benchmarks.yml
+++ b/.github/workflows/nightly-benchmarks.yml
@@ -82,7 +82,7 @@ jobs:
fetch-depth: 0
- name: Download benchmark results
- uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
+ uses: actions/download-artifact@9000827ccba6bdab643e8b6fd33ac0654aef8333 # v8.0.2
with:
name: benchmark-results
path: /tmp/benchmark-output
diff --git a/.github/workflows/pr-benchmarks.yml b/.github/workflows/pr-benchmarks.yml
index 575e2d842c..e934460d2a 100644
--- a/.github/workflows/pr-benchmarks.yml
+++ b/.github/workflows/pr-benchmarks.yml
@@ -118,7 +118,7 @@ jobs:
fetch-depth: 0
- name: Download topic benchmark results
- uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
+ uses: actions/download-artifact@9000827ccba6bdab643e8b6fd33ac0654aef8333 # v8.0.2
with:
pattern: pr-benchmark-topic-*-${{ env.PR_NUMBER }}-${{ env.HEAD_SHA }}
path: /tmp/topic-benchmark-results
diff --git a/.github/workflows/regenerate-api-diff-otel.yml b/.github/workflows/regenerate-api-diff-otel.yml
index 95caeac941..45a3f0ddcd 100644
--- a/.github/workflows/regenerate-api-diff-otel.yml
+++ b/.github/workflows/regenerate-api-diff-otel.yml
@@ -67,7 +67,7 @@ jobs:
# zizmor: ignore[artipacked] -- needs credentials to push
persist-credentials: true
- name: Download generated patch
- uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
+ uses: actions/download-artifact@9000827ccba6bdab643e8b6fd33ac0654aef8333 # v8.0.2
with:
name: apidiffs-patch
path: /tmp/patch
From 160b82693143c616449cd50a208559d46fbbbcf8 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Mon, 12 Oct 2026 10:41:24 +0200
Subject: [PATCH 213/255] chore(deps): update micrometer-metrics/micrometer
digest to b1b0dbf (#2539)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This PR contains the following updates:
| Package | Update | Change |
|---|---|---|
| micrometer-metrics/micrometer | digest | `7175340` → `b1b0dbf` |
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- "on sunday"
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/prometheus/client_java).
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
.github/workflows/micrometer-compatibility.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/micrometer-compatibility.yml b/.github/workflows/micrometer-compatibility.yml
index 1835edef1d..6936b54e1a 100644
--- a/.github/workflows/micrometer-compatibility.yml
+++ b/.github/workflows/micrometer-compatibility.yml
@@ -25,7 +25,7 @@ jobs:
# Follow-up: https://github.com/prometheus/client_java/issues/2182
repository: micrometer-metrics/micrometer
# renovate: datasource=git-refs depName=micrometer-metrics/micrometer packageName=https://github.com/micrometer-metrics/micrometer currentValue=main
- ref: 71753400752912db960ee8f4dd10ed5e4cc03fbc
+ ref: b1b0dbffb54e83ba613c8df1ad4d7cc7cf666eea
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
From 6a19cbfb5db3059ab777955a1d246e3f1f74293c Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Mon, 12 Oct 2026 10:41:34 +0200
Subject: [PATCH 214/255] chore(deps): update dependency java to temurin-25
(#2535)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [java](https://adoptium.net) | tools | patch | `25.0.3+9.0.LTS` →
`25.0.4+101.0.LTS` |
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/prometheus/client_java).
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
mise.lock | 30 +++++++++++++++---------------
1 file changed, 15 insertions(+), 15 deletions(-)
diff --git a/mise.lock b/mise.lock
index 7593a7a422..e96dd856bc 100644
--- a/mise.lock
+++ b/mise.lock
@@ -467,37 +467,37 @@ url = "https://github.com/gohugoio/hugo/releases/download/v0.166.0/hugo_0.166.0_
url_api = "https://api.github.com/repos/gohugoio/hugo/releases/assets/552998804"
[[tools.java]]
-version = "temurin-25.0.3+9.0.LTS"
+version = "temurin-25.0.4+101.0.LTS"
backend = "core:java"
specifiers = ["temurin-25"]
[tools.java."platforms.linux-arm64"]
-checksum = "sha256:3e4287cb98870ba824ed698854bdc27cff984254caf66dd12cc291e7bfdde26b"
-url = "https://github.com/adoptium/temurin25-binaries/releases/download/jdk-25.0.3%2B9/OpenJDK25U-jdk_aarch64_linux_hotspot_25.0.3_9.tar.gz"
+checksum = "sha256:69df11a02cfa3ef7d7ca645e03edce6778ec090e100f6ae2b42097865730ac52"
+url = "https://github.com/adoptium/temurin25-binaries/releases/download/jdk-25.0.4.1%2B1/OpenJDK25U-jdk_aarch64_linux_hotspot_25.0.4.1_1.tar.gz"
[tools.java."platforms.linux-arm64-musl"]
-checksum = "sha256:6ed368e93049d3b188c045fce0b20953bbea92fe0614dbbf4d3fd8daad7be3b2"
-url = "https://github.com/adoptium/temurin25-binaries/releases/download/jdk-25.0.3%2B9/OpenJDK25U-jdk_aarch64_alpine-linux_hotspot_25.0.3_9.tar.gz"
+checksum = "sha256:8d19373d427017d86ac87cf6a47ba49746be864832f60b52b7e3b1531c6b2cb8"
+url = "https://github.com/adoptium/temurin25-binaries/releases/download/jdk-25.0.4.1%2B1/OpenJDK25U-jdk_aarch64_alpine-linux_hotspot_25.0.4.1_1.tar.gz"
[tools.java."platforms.linux-x64"]
-checksum = "sha256:69264a7a211bf5029830d07bc3370f879769d62ebc5b5488e90c9343a2da0e1f"
-url = "https://github.com/adoptium/temurin25-binaries/releases/download/jdk-25.0.3%2B9/OpenJDK25U-jdk_x64_linux_hotspot_25.0.3_9.tar.gz"
+checksum = "sha256:dbb698396d478e7fa2b1e50f4103324b2a99b90569ee27c33f2261f9215cf41e"
+url = "https://github.com/adoptium/temurin25-binaries/releases/download/jdk-25.0.4.1%2B1/OpenJDK25U-jdk_x64_linux_hotspot_25.0.4.1_1.tar.gz"
[tools.java."platforms.linux-x64-musl"]
-checksum = "sha256:51c2415b370aac7c3796b0c4663c8fcf91bc22d76f03df95b25fa5667cb5fdd8"
-url = "https://github.com/adoptium/temurin25-binaries/releases/download/jdk-25.0.3%2B9/OpenJDK25U-jdk_x64_alpine-linux_hotspot_25.0.3_9.tar.gz"
+checksum = "sha256:f18648ee5ce45261f50dc9493fdae7ddebaa2a7a857cafda3e2a448a79c03dee"
+url = "https://github.com/adoptium/temurin25-binaries/releases/download/jdk-25.0.4.1%2B1/OpenJDK25U-jdk_x64_alpine-linux_hotspot_25.0.4.1_1.tar.gz"
[tools.java."platforms.macos-arm64"]
-checksum = "sha256:7baab4d69a15554e119b86ff78d40e3fdc28819b5b322955c913cebfe3f6a37c"
-url = "https://github.com/adoptium/temurin25-binaries/releases/download/jdk-25.0.3%2B9/OpenJDK25U-jdk_aarch64_mac_hotspot_25.0.3_9.tar.gz"
+checksum = "sha256:61979887f7506a24a57439ff99adb8b3a7fc89977d9cfe3b8984f58a981b7b9d"
+url = "https://github.com/adoptium/temurin25-binaries/releases/download/jdk-25.0.4.1%2B1/OpenJDK25U-jdk_aarch64_mac_hotspot_25.0.4.1_1.tar.gz"
[tools.java."platforms.macos-x64"]
-checksum = "sha256:4c539a18b4d656960ff6766727e9ca546fc17f7a29714dba9e7b47bdcb37c447"
-url = "https://github.com/adoptium/temurin25-binaries/releases/download/jdk-25.0.3%2B9/OpenJDK25U-jdk_x64_mac_hotspot_25.0.3_9.tar.gz"
+checksum = "sha256:e6229d9504f7922053ab31821b9e6bee8761daf7b026a3476d1a027563009880"
+url = "https://github.com/adoptium/temurin25-binaries/releases/download/jdk-25.0.4.1%2B1/OpenJDK25U-jdk_x64_mac_hotspot_25.0.4.1_1.tar.gz"
[tools.java."platforms.windows-x64"]
-checksum = "sha256:709312cd0420296d9b9de917fe6e28a5b979e875ee5ab91783fb79bcd5857235"
-url = "https://github.com/adoptium/temurin25-binaries/releases/download/jdk-25.0.3%2B9/OpenJDK25U-jdk_x64_windows_hotspot_25.0.3_9.zip"
+checksum = "sha256:00c847d804f4a78e9f04f2683faf14fed898535b177b7fc704486cb0284e9283"
+url = "https://github.com/adoptium/temurin25-binaries/releases/download/jdk-25.0.4.1%2B1/OpenJDK25U-jdk_x64_windows_hotspot_25.0.4.1_1.zip"
[[tools.java]]
version = "temurin-21.0.12+101.0.LTS"
From fdcd664a5ea02e8518e4f7457ba4b29d423edbbd Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Mon, 12 Oct 2026 10:41:53 +0200
Subject: [PATCH 215/255] chore(deps): update dependency java to temurin-21
(#2534)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [java](https://adoptium.net) | task-micrometer:compat-test-tools |
patch | `25.0.3+9.0.LTS` → `25.0.4+101.0.LTS` |
| [java](https://adoptium.net) | task-jmx-exporter:compat-test-tools |
patch | `25.0.3+9.0.LTS` → `25.0.4+101.0.LTS` |
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about these
updates again.
---
- [ ] If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/prometheus/client_java).
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
From 2b4a32c6df6d5b16637fe9a9eed08ffcfece4f61 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Mon, 12 Oct 2026 10:42:18 +0200
Subject: [PATCH 216/255] chore(deps): update github/codeql-action action to
v4.38.3 (#2536)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
|
[github/codeql-action](https://redirect.github.com/github/codeql-action)
| action | patch | `v4.38.2` → `v4.38.3` |
---
### Release Notes
github/codeql-action (github/codeql-action)
###
[`v4.38.3`](https://redirect.github.com/github/codeql-action/releases/tag/v4.38.3)
[Compare
Source](https://redirect.github.com/github/codeql-action/compare/v4.38.2...v4.38.3)
- *Upcoming breaking change*: CodeQL version 2.21.2 and earlier were
discontinued on 24 September 2026 alongside GitHub Enterprise Server
3.17, and will be unsupported by the next minor release of the CodeQL
Action. Added a deprecation warning for customers using these versions
of CodeQL.
[#4188](https://redirect.github.com/github/codeql-action/pull/4188)
- Update default CodeQL bundle version to
[2.27.2](https://redirect.github.com/github/codeql-action/releases/tag/codeql-bundle-v2.27.2).
[#4203](https://redirect.github.com/github/codeql-action/pull/4203)
- Fixed a bug where the decision of whether to use a per-language bundle
did not account for custom configurations that reference queries outside
of compiled CodeQL packs. This issue was caught during internal testing
and did not affect any customer repositories. We will resume the roll
out of per-language bundles in the coming weeks.
[#4184](https://redirect.github.com/github/codeql-action/pull/4184)
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/prometheus/client_java).
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
.github/workflows/codeql.yml | 4 ++--
.github/workflows/scorecard.yml | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml
index 7f4dbb6412..e71390a312 100644
--- a/.github/workflows/codeql.yml
+++ b/.github/workflows/codeql.yml
@@ -37,7 +37,7 @@ jobs:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-codeql-${{ hashFiles('**/pom.xml') }}
- name: Initialize CodeQL
- uses: github/codeql-action/init@2892aa5e19bbd11bc0cff5427e3b750a04d9e3c2 # v4.38.2
+ uses: github/codeql-action/init@24c54180a607b1449ed407dd24f251e4e9147c8d # v4.38.3
with:
languages: java
tools: linked
@@ -56,6 +56,6 @@ jobs:
-Djavadoc.skip=true
- name: Perform CodeQL Analysis
- uses: github/codeql-action/analyze@2892aa5e19bbd11bc0cff5427e3b750a04d9e3c2 # v4.38.2
+ uses: github/codeql-action/analyze@24c54180a607b1449ed407dd24f251e4e9147c8d # v4.38.3
with:
category: /language:java
diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml
index 48529e7bfb..c3a88ee234 100644
--- a/.github/workflows/scorecard.yml
+++ b/.github/workflows/scorecard.yml
@@ -41,6 +41,6 @@ jobs:
retention-days: 5
- name: Upload to code scanning
- uses: github/codeql-action/upload-sarif@2892aa5e19bbd11bc0cff5427e3b750a04d9e3c2 # v4.38.2
+ uses: github/codeql-action/upload-sarif@24c54180a607b1449ed407dd24f251e4e9147c8d # v4.38.3
with:
sarif_file: results.sarif
From d224cefc952def93f98f8fb37a54a2d41bd6ee94 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Mon, 12 Oct 2026 08:54:00 +0000
Subject: [PATCH 217/255] chore(deps): update dependency
org.codehaus.mojo:versions-maven-plugin to v2.23.0 (#2541)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This PR contains the following updates:
| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
|
[org.codehaus.mojo:versions-maven-plugin](https://www.mojohaus.org/versions/)
([source](https://redirect.github.com/mojohaus/versions)) | `2.22.0` →
`2.23.0` |

|

|
---
### Release Notes
mojohaus/versions
(org.codehaus.mojo:versions-maven-plugin)
###
[`v2.23.0`](https://redirect.github.com/mojohaus/versions/releases/tag/2.23.0)
[Compare
Source](https://redirect.github.com/mojohaus/versions/compare/2.22.0...2.23.0)
Versions Maven Plugin 2.23.0 makes the property goals more reliable on
multi-module projects and adds a few options people have asked for over
the years. It still runs on Java 8 and Maven 3.6.3 or later.
**Property updates**
- `update-property` and `update-properties` now update a property that
is defined in a reactor parent POM, rather than leaving it untouched
([#997](https://redirect.github.com/mojohaus/versions/issues/997)).
- A property shared by a plugin and an excluded dependency is no longer
updated behind the exclude's back
([#1199](https://redirect.github.com/mojohaus/versions/issues/1199)).
- The property goals look up all properties in parallel, which shortens
runs on POMs with many version properties
([#1157](https://redirect.github.com/mojohaus/versions/issues/1157)).
- A dependency whose `type` or `classifier` is itself a property, such
as `${native.classifier}`, no longer breaks the property goals on Maven
3.10 and 4
([#1409](https://redirect.github.com/mojohaus/versions/issues/1409)).
- `lock-snapshots` and `unlock-snapshots` now rewrite snapshot versions
held in properties, where that is safe
([#1269](https://redirect.github.com/mojohaus/versions/issues/1269)).
**Other fixes and additions**
- `versions:set` with selected projects (`-pl`) updates the modules that
inherit the version again, on Maven 3 and Maven 4
([#1338](https://redirect.github.com/mojohaus/versions/issues/1338),
[#1339](https://redirect.github.com/mojohaus/versions/issues/1339),
[#1357](https://redirect.github.com/mojohaus/versions/issues/1357)).
- Includes and excludes now filter the candidate versions too, so an
excluded version is never proposed as an update
([#1378](https://redirect.github.com/mojohaus/versions/issues/1378)).
- `display-dependency-updates -Dversions.showNewestPerSegment` lists the
newest incremental, minor and major version, for example `1.0.3 ->
1.0.9, 1.3.9, 4.0.6`
([#1043](https://redirect.github.com/mojohaus/versions/issues/1043)).
- `parent-updates-report` supports `formats`, including XML
([#975](https://redirect.github.com/mojohaus/versions/issues/975)),
and the XML property updates report now fills in the current version
([#976](https://redirect.github.com/mojohaus/versions/issues/976)).
- The plugin update reports share their lookup with
`display-plugin-updates` and include plugins declared only in
``
([#1250](https://redirect.github.com/mojohaus/versions/issues/1250)).
Thanks to [@wilx](https://redirect.github.com/wilx) and
[@adityaanikam](https://redirect.github.com/adityaanikam) for
their contributions to this release.
#### 🚀 New features and improvements
- Resolve property versions in parallel
([#1447](https://redirect.github.com/mojohaus/versions/issues/1447),
fixes
[#1157](https://redirect.github.com/mojohaus/versions/issues/1157))
[@slachiewicz](https://redirect.github.com/slachiewicz)
- Show the newest version of each segment in display-dependency-updates
([#1450](https://redirect.github.com/mojohaus/versions/issues/1450),
fixes
[#1043](https://redirect.github.com/mojohaus/versions/issues/1043))
[@slachiewicz](https://redirect.github.com/slachiewicz)
- Lock and unlock snapshot versions held in properties
([#1451](https://redirect.github.com/mojohaus/versions/issues/1451),
fixes
[#1269](https://redirect.github.com/mojohaus/versions/issues/1269))
[@slachiewicz](https://redirect.github.com/slachiewicz)
- Support the xml format in parent-updates-report
([#1446](https://redirect.github.com/mojohaus/versions/issues/1446),
fixes
[#975](https://redirect.github.com/mojohaus/versions/issues/975))
[@slachiewicz](https://redirect.github.com/slachiewicz)
- Share plugin discovery and version lookup between display and reports
([#1397](https://redirect.github.com/mojohaus/versions/issues/1397),
fixes
[#1250](https://redirect.github.com/mojohaus/versions/issues/1250))
[@wilx](https://redirect.github.com/wilx)
#### 🐛 Bug Fixes
- Update properties defined in a reactor parent POM
([#1448](https://redirect.github.com/mojohaus/versions/issues/1448),
fixes
[#997](https://redirect.github.com/mojohaus/versions/issues/997))
[@slachiewicz](https://redirect.github.com/slachiewicz)
- Honor the excludes of modules that use an inherited property
([#1449](https://redirect.github.com/mojohaus/versions/issues/1449),
fixes
[#1199](https://redirect.github.com/mojohaus/versions/issues/1199))
[@slachiewicz](https://redirect.github.com/slachiewicz)
- Restore versions:set propagation with selected projects
([#1440](https://redirect.github.com/mojohaus/versions/issues/1440),
fixes
[#1338](https://redirect.github.com/mojohaus/versions/issues/1338),
[#1339](https://redirect.github.com/mojohaus/versions/issues/1339),
[#1357](https://redirect.github.com/mojohaus/versions/issues/1357))
[@wilx](https://redirect.github.com/wilx)
- Apply excludes and includes to candidate versions, not just the
current one
([#1441](https://redirect.github.com/mojohaus/versions/issues/1441),
fixes
[#1378](https://redirect.github.com/mojohaus/versions/issues/1378))
[@adityaanikam](https://redirect.github.com/adityaanikam)
- Report the property's current version in the XML property updates
report
([#1437](https://redirect.github.com/mojohaus/versions/issues/1437),
fixes
[#976](https://redirect.github.com/mojohaus/versions/issues/976))
[@slachiewicz](https://redirect.github.com/slachiewicz)
- Interpolate the type and classifier of dependencies whose version is a
property
([#1436](https://redirect.github.com/mojohaus/versions/issues/1436),
fixes
[#1409](https://redirect.github.com/mojohaus/versions/issues/1409))
[@slachiewicz](https://redirect.github.com/slachiewicz)
#### 📝 Documentation updates
- Rewrite the README and add AGENTS.md
([#1435](https://redirect.github.com/mojohaus/versions/issues/1435))
[@slachiewicz](https://redirect.github.com/slachiewicz)
#### 👻 Maintenance
- Use localhost coordinates instead of real artifacts in the
compare-dependencies fixtures
([#1443](https://redirect.github.com/mojohaus/versions/issues/1443))
[@slachiewicz](https://redirect.github.com/slachiewicz)
- Delete the two integration tests that never ran
([#1442](https://redirect.github.com/mojohaus/versions/issues/1442))
[@slachiewicz](https://redirect.github.com/slachiewicz)
- Move it-resolve-ranges-001 and it-unlock-snapshots-001 to unit tests
([#1439](https://redirect.github.com/mojohaus/versions/issues/1439))
[@slachiewicz](https://redirect.github.com/slachiewicz)
- Run use-releases in it-use-releases-issue-134
([#1433](https://redirect.github.com/mojohaus/versions/issues/1433))
[@slachiewicz](https://redirect.github.com/slachiewicz)
- Write the remaining verify scripts as assertions
([#1431](https://redirect.github.com/mojohaus/versions/issues/1431))
[@slachiewicz](https://redirect.github.com/slachiewicz)
- Move the tests of versions-common and versions-enforcer off Hamcrest
([#1430](https://redirect.github.com/mojohaus/versions/issues/1430))
[@slachiewicz](https://redirect.github.com/slachiewicz)
- Drop JUnit 4, the vintage engine and Hamcrest from the plugin tests
([#1427](https://redirect.github.com/mojohaus/versions/issues/1427))
[@slachiewicz](https://redirect.github.com/slachiewicz)
- Move the mojo tests that take their project from a POM to JUnit 5
([#1425](https://redirect.github.com/mojohaus/versions/issues/1425))
[@slachiewicz](https://redirect.github.com/slachiewicz)
- Run mojo tests on JUnit 5 with the project built from their POM
([#1423](https://redirect.github.com/mojohaus/versions/issues/1423))
[@slachiewicz](https://redirect.github.com/slachiewicz)
- Move the mojo tests that build their project in code to JUnit 5
([#1424](https://redirect.github.com/mojohaus/versions/issues/1424))
[@slachiewicz](https://redirect.github.com/slachiewicz)
- Move the tests that do not use the plugin testing harness to JUnit 5
and off Hamcrest
([#1422](https://redirect.github.com/mojohaus/versions/issues/1422))
[@slachiewicz](https://redirect.github.com/slachiewicz)
- Write 54 verify scripts as assertions
([#1421](https://redirect.github.com/mojohaus/versions/issues/1421))
[@slachiewicz](https://redirect.github.com/slachiewicz)
- Stop calling deprecated StringUtils.equals and MavenProject reporting
getters
([#1420](https://redirect.github.com/mojohaus/versions/issues/1420))
[@slachiewicz](https://redirect.github.com/slachiewicz)
- Move fifteen use-\* ITs to unit tests
([#1418](https://redirect.github.com/mojohaus/versions/issues/1418))
[@slachiewicz](https://redirect.github.com/slachiewicz)
- Move sixteen display-dependency-updates ITs to unit tests
([#1417](https://redirect.github.com/mojohaus/versions/issues/1417))
[@slachiewicz](https://redirect.github.com/slachiewicz)
- Move twelve update-properties ITs to unit tests
([#1416](https://redirect.github.com/mojohaus/versions/issues/1416))
[@slachiewicz](https://redirect.github.com/slachiewicz)
- Fix two ITs that tested a different goal than their name
([#1415](https://redirect.github.com/mojohaus/versions/issues/1415))
[@slachiewicz](https://redirect.github.com/slachiewicz)
- Keep plexus-xml on 3.x in Dependabot
([#1401](https://redirect.github.com/mojohaus/versions/issues/1401))
[@slachiewicz](https://redirect.github.com/slachiewicz)
- Port the IT scripts from BeanShell to Groovy
([#1399](https://redirect.github.com/mojohaus/versions/issues/1399))
[@slachiewicz](https://redirect.github.com/slachiewicz)
#### 🔧 Build
- Share the integration test setup and drop unused POM entries
([#1444](https://redirect.github.com/mojohaus/versions/issues/1444))
[@slachiewicz](https://redirect.github.com/slachiewicz)
- Run one integration test per CPU core
([#1434](https://redirect.github.com/mojohaus/versions/issues/1434))
[@slachiewicz](https://redirect.github.com/slachiewicz)
- Check dependencies monthly and group the updates
([#1413](https://redirect.github.com/mojohaus/versions/issues/1413))
[@slachiewicz](https://redirect.github.com/slachiewicz)
- Run fewer JDKs on macOS and Windows
([#1412](https://redirect.github.com/mojohaus/versions/issues/1412))
[@slachiewicz](https://redirect.github.com/slachiewicz)
- Speed up the integration tests
([#1411](https://redirect.github.com/mojohaus/versions/issues/1411))
[@slachiewicz](https://redirect.github.com/slachiewicz)
- Raise the CI job timeout to 45 minutes
([#1410](https://redirect.github.com/mojohaus/versions/issues/1410))
[@slachiewicz](https://redirect.github.com/slachiewicz)
- Keep it-resolve-ranges-issue-1287 versionless on Maven 4.0.0-rc-7
([#1405](https://redirect.github.com/mojohaus/versions/issues/1405))
[@slachiewicz](https://redirect.github.com/slachiewicz)
- Keep Dependabot off Mockito 5
([#1404](https://redirect.github.com/mojohaus/versions/issues/1404))
[@slachiewicz](https://redirect.github.com/slachiewicz)
#### 📦 Dependency updates
- Build against Maven 3.9.16 and keep Maven 3.6.3 as the prerequisite
([#1429](https://redirect.github.com/mojohaus/versions/issues/1429))
[@slachiewicz](https://redirect.github.com/slachiewicz)
- Bump org.codehaus.woodstox:stax2-api from 4.3.0 to 4.3.1
([#1407](https://redirect.github.com/mojohaus/versions/issues/1407))
@[dependabot\[bot\]](https://redirect.github.com/apps/dependabot)
- Bump com.fasterxml.woodstox:woodstox-core from 7.2.2 to 7.3.0
([#1408](https://redirect.github.com/mojohaus/versions/issues/1408))
@[dependabot\[bot\]](https://redirect.github.com/apps/dependabot)
- Bump org.apache.commons:commons-lang3 from 3.20.0 to 3.21.0
([#1406](https://redirect.github.com/mojohaus/versions/issues/1406))
@[dependabot\[bot\]](https://redirect.github.com/apps/dependabot)
- Bump org.codehaus.plexus:plexus-xml from 3.0.1 to 3.1.0
([#1402](https://redirect.github.com/mojohaus/versions/issues/1402))
@[dependabot\[bot\]](https://redirect.github.com/apps/dependabot)
- Keep plexus-xml on 3.x in Dependabot
([#1401](https://redirect.github.com/mojohaus/versions/issues/1401))
[@slachiewicz](https://redirect.github.com/slachiewicz)
- Bump byteBuddyVersion from 1.18.13 to 1.18.14
([#1398](https://redirect.github.com/mojohaus/versions/issues/1398))
@[dependabot\[bot\]](https://redirect.github.com/apps/dependabot)
Thanks to
[@slachiewicz](https://redirect.github.com/slachiewicz),
[@wilx](https://redirect.github.com/wilx) and
[@adityaanikam](https://redirect.github.com/adityaanikam).
[Full
changelog](https://redirect.github.com/mojohaus/versions/compare/2.22.0...2.23.0)
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/prometheus/client_java).
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
pom.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/pom.xml b/pom.xml
index b84a947bec..b7cfb1f6f9 100644
--- a/pom.xml
+++ b/pom.xml
@@ -291,7 +291,7 @@
org.codehaus.mojoversions-maven-plugin
- 2.22.0
+ 2.23.0file://${project.basedir}/version-rules.xml
From 7f8c3dd48e2d4b274c980dea0cddcb43d613a3ec Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Mon, 12 Oct 2026 08:55:36 +0000
Subject: [PATCH 218/255] chore(deps): update dependency hugo to latest (#2540)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [hugo](https://redirect.github.com/gohugoio/hugo) | tools | minor |
`0.166.0` → `0.167.0` |
---
### Release Notes
gohugoio/hugo (hugo)
###
[`v0.167.0`](https://redirect.github.com/gohugoio/hugo/releases/tag/v0.167.0)
[Compare
Source](https://redirect.github.com/gohugoio/hugo/compare/v0.166.0...v0.167.0)
This release brings relative partial references, slug support for branch
pages, and a handful of security hardening fixes.
**Relative partial references.** A partial name starting with `./` or
`../` is now resolved relative to the directory of the calling partial.
This makes it much easier to write self-contained, movable partial
trees, e.g. `{{ partial "./item.html" . }}` from within
`layouts/_partials/card/list.html`. Relative paths are only allowed from
within partials, and paths resolving outside the partials directory is
an error. See
[#15373](https://redirect.github.com/gohugoio/hugo/issues/15373)
and the
[documentation](https://gohugo.io/functions/partials/include/#relative-paths).
**Slugs for section, taxonomy and term pages.** The `slug` front matter
now works for branch pages, not just regular pages, and it cascades to
descendants. This is particularly useful in multilingual sites, where
e.g. `content/help/_index.es.md` with `slug: ayuda` gives `/es/ayuda/`,
`/es/ayuda/avanzado/` etc. See
[#14352](https://redirect.github.com/gohugoio/hugo/issues/14352).
**Other notable improvements** include the new
`build.cleanDestinationDir` config with `keepFiles`/`keepDirs` Glob
patterns
([#14937](https://redirect.github.com/gohugoio/hugo/issues/14937),
[docs](https://gohugo.io/configuration/build/#clean-destination-directory)),
`hugo` now builds without a config file
([#15393](https://redirect.github.com/gohugoio/hugo/issues/15393)),
exact numeric comparisons in `eq`, `where`, `in` and the set functions
([#15322](https://redirect.github.com/gohugoio/hugo/issues/15322),
[#15358](https://redirect.github.com/gohugoio/hugo/issues/15358)),
and automatic summaries that no longer end inside an open list or
blockquote
([#14044](https://redirect.github.com/gohugoio/hugo/issues/14044)).
#### Security
This release contains several hardening fixes. None of them are known to
be exploited, but if you build sites with untrusted themes or modules,
you should upgrade.
- Sass imports not found in Hugo's file systems were resolved by the
Sass compiler itself, which follows symlinks and knows nothing about the
project root. A theme could import a file outside the project and get
its content into the published CSS. These imports are now resolved by
Hugo and checked against the same `security.allowRead` roots as the
Node.js tools and `js.Build`.
[`41040cc`](https://redirect.github.com/gohugoio/hugo/commit/41040cc7)
(thanks to [@Hama1cco](https://redirect.github.com/Hama1cco))
- Likewise, imports not found in `/assets` were resolved and read by
ESBuild itself. The resolved path is now checked against the allowed
read paths before ESBuild loads it.
[`2aa51f3`](https://redirect.github.com/gohugoio/hugo/commit/2aa51f34)
(thanks to [@Hama1cco](https://redirect.github.com/Hama1cco))
- A symlinked directory in a theme at the parent of a nested mount could
expose files outside the module.
[`2fe9bab`](https://redirect.github.com/gohugoio/hugo/commit/2fe9bab7)
- Explicit heading IDs (e.g. `## Foo {id="..."}`) were written unescaped
into the table of contents `href`, allowing attribute breakout.
[`671fbf2`](https://redirect.github.com/gohugoio/hugo/commit/671fbf2c)
#### Note
- The default `baseURL` is now `https://example.org/` (it was empty).
Hugo has always required a valid URL to work properly, so this mostly
affects new and test sites, but if you relied on the empty default for
relative URLs, set `baseURL` explicitly.
[`bc68654`](https://redirect.github.com/gohugoio/hugo/commit/bc686541)
[@bep](https://redirect.github.com/bep)
[#14625](https://redirect.github.com/gohugoio/hugo/issues/14625)
[#15384](https://redirect.github.com/gohugoio/hugo/issues/15384)
- The root `cleanDestinationDir` config key is deprecated in favour of
`build.cleanDestinationDir.enable`. The `--cleanDestinationDir` flag
maps to the new key. Note that `.git` files in the publish dir are now
kept by default.
[`9086193`](https://redirect.github.com/gohugoio/hugo/commit/90861931)
[@bep](https://redirect.github.com/bep)
[#14937](https://redirect.github.com/gohugoio/hugo/issues/14937)
- `eq` now compares numeric values the same way as `lt`, `le` etc., so
e.g. `eq 1 1.0` is now `true`. Also, `in`, `intersect`, `union`, `uniq`,
`symdiff`, `complement` and `where`'s `in`/`not in` now compare numbers
exactly rather than via `float64`, and no longer require the Go types to
match.
[`4d628bb`](https://redirect.github.com/gohugoio/hugo/commit/4d628bbd)
[`366377b`](https://redirect.github.com/gohugoio/hugo/commit/366377b6)
[@bep](https://redirect.github.com/bep)
[#15322](https://redirect.github.com/gohugoio/hugo/issues/15322)
[#15358](https://redirect.github.com/gohugoio/hugo/issues/15358)
- A user table render hook is now preferred over the embedded one.
[`140d936`](https://redirect.github.com/gohugoio/hugo/commit/140d9362)
[@jmooring](https://redirect.github.com/jmooring)
[#15389](https://redirect.github.com/gohugoio/hugo/issues/15389)
- Automatic summaries are expanded past `summaryLength` when needed so
they don't end inside an open container element. This may change the
summary for some pages.
[`d692a24`](https://redirect.github.com/gohugoio/hugo/commit/d692a243)
[@bep](https://redirect.github.com/bep)
[#14044](https://redirect.github.com/gohugoio/hugo/issues/14044)
#### Bug fixes
- hugolib: Fix failing integration test
[`fdbba5a`](https://redirect.github.com/gohugoio/hugo/commit/fdbba5a6)
[@jmooring](https://redirect.github.com/jmooring)
- Fix build with Go 1.26 on Fedora 44 Beta
[`2782bfd`](https://redirect.github.com/gohugoio/hugo/commit/2782bfd3)
[@flyn-org](https://redirect.github.com/flyn-org)
- Fix smartcrop with rotation
([#15371](https://redirect.github.com/gohugoio/hugo/issues/15371))
[`5edd05b`](https://redirect.github.com/gohugoio/hugo/commit/5edd05bb)
[@bep](https://redirect.github.com/bep)
[#11266](https://redirect.github.com/gohugoio/hugo/issues/11266)
[#15369](https://redirect.github.com/gohugoio/hugo/issues/15369)
- ci: Fix broken magefile
[`1d87ee5`](https://redirect.github.com/gohugoio/hugo/commit/1d87ee5b)
[@bep](https://redirect.github.com/bep)
- tpl/collections: Fix union of slices with different numeric element
types
[`ffbcdba`](https://redirect.github.com/gohugoio/hugo/commit/ffbcdba9)
[@hktitof](https://redirect.github.com/hktitof)
[#15323](https://redirect.github.com/gohugoio/hugo/issues/15323)
- Fix stale page content when several files in the same dir change in
one batch
[`a374b86`](https://redirect.github.com/gohugoio/hugo/commit/a374b865)
[@bep](https://redirect.github.com/bep)
[#15330](https://redirect.github.com/gohugoio/hugo/issues/15330)
#### Improvements
- Update .gitignore
[`f6606f1`](https://redirect.github.com/gohugoio/hugo/commit/f6606f1f)
[@bep](https://redirect.github.com/bep)
- tocss: Confine Sass import fallbacks to the allowed read paths
[`41040cc`](https://redirect.github.com/gohugoio/hugo/commit/41040cc7)
[@bep](https://redirect.github.com/bep)
- js: Confine ESBuild's fallback resolver to the allowed read paths
[`2aa51f3`](https://redirect.github.com/gohugoio/hugo/commit/2aa51f34)
[@bep](https://redirect.github.com/bep)
- commands: Allow building without a config file
[`c7f9999`](https://redirect.github.com/gohugoio/hugo/commit/c7f99993)
[@bep](https://redirect.github.com/bep)
[#15393](https://redirect.github.com/gohugoio/hugo/issues/15393)
- collections: Preserve slice type when appending an empty slice
[`dd16df1`](https://redirect.github.com/gohugoio/hugo/commit/dd16df14)
[@jakezwang](https://redirect.github.com/jakezwang)
[#11131](https://redirect.github.com/gohugoio/hugo/issues/11131)
- tpl/tplimpl: Prefer user table render hook over embedded
[`140d936`](https://redirect.github.com/gohugoio/hugo/commit/140d9362)
[@jmooring](https://redirect.github.com/jmooring)
[#15389](https://redirect.github.com/gohugoio/hugo/issues/15389)
- Avoid allocating in SitesMatrix.MatchSiteVector
[`83ab799`](https://redirect.github.com/gohugoio/hugo/commit/83ab7999)
[@bep](https://redirect.github.com/bep)
- Add slug support for section, taxonomy and term pages
[`5d43ab7`](https://redirect.github.com/gohugoio/hugo/commit/5d43ab70)
[@bep](https://redirect.github.com/bep)
[#14352](https://redirect.github.com/gohugoio/hugo/issues/14352)
- tpl: Avoid reflect.Value.Call for common signatures
[`806a62e`](https://redirect.github.com/gohugoio/hugo/commit/806a62e8)
[@bep](https://redirect.github.com/bep)
[#15385](https://redirect.github.com/gohugoio/hugo/issues/15385)
- ci: Disable vet when running tests
[`8bac4de`](https://redirect.github.com/gohugoio/hugo/commit/8bac4de7)
[@bep](https://redirect.github.com/bep)
- tpl/partials: Support relative partial paths from within partials
([#15376](https://redirect.github.com/gohugoio/hugo/issues/15376))
[`bd1588b`](https://redirect.github.com/gohugoio/hugo/commit/bd1588bd)
[@bep](https://redirect.github.com/bep)
[#15373](https://redirect.github.com/gohugoio/hugo/issues/15373)
- config: Add build.cleanDestinationDir config
[`9086193`](https://redirect.github.com/gohugoio/hugo/commit/90861931)
[@bep](https://redirect.github.com/bep)
[#14937](https://redirect.github.com/gohugoio/hugo/issues/14937)
- commands: Make testscripts/commands/hugo__clean_destination_dir.txt
portable
[`a74b753`](https://redirect.github.com/gohugoio/hugo/commit/a74b7539)
[@bep](https://redirect.github.com/bep)
[#8433](https://redirect.github.com/gohugoio/hugo/issues/8433)
- commands: Handle missing staticDir in cleanDestinationDir
[`07b9fba`](https://redirect.github.com/gohugoio/hugo/commit/07b9fba1)
[@jmooring](https://redirect.github.com/jmooring)
[#8433](https://redirect.github.com/gohugoio/hugo/issues/8433)
- hugofs: Cache symlink checks
[`09fa49b`](https://redirect.github.com/gohugoio/hugo/commit/09fa49be)
[@bep](https://redirect.github.com/bep)
- hugofs: Drop symlinks in virtual ancestor dirs of nested mounts
[`2fe9bab`](https://redirect.github.com/gohugoio/hugo/commit/2fe9bab7)
[@bep](https://redirect.github.com/bep)
- markup/tableofcontents: Escape heading IDs in ToC HTML
[`671fbf2`](https://redirect.github.com/gohugoio/hugo/commit/671fbf2c)
[@bep](https://redirect.github.com/bep)
- hugofs: Allow symlinked mount roots in the main project
[`25f2856`](https://redirect.github.com/gohugoio/hugo/commit/25f2856a)
[@bep](https://redirect.github.com/bep)
[#15367](https://redirect.github.com/gohugoio/hugo/issues/15367)
- Expand and consolidate BOM trimming
[`cb6a707`](https://redirect.github.com/gohugoio/hugo/commit/cb6a7072)
[@bep](https://redirect.github.com/bep)
[#15355](https://redirect.github.com/gohugoio/hugo/issues/15355)
[#15361](https://redirect.github.com/gohugoio/hugo/issues/15361)
- tpl/collections: Compare numbers exactly in set operations and where
[`366377b`](https://redirect.github.com/gohugoio/hugo/commit/366377b6)
[@bep](https://redirect.github.com/bep)
[#15358](https://redirect.github.com/gohugoio/hugo/issues/15358)
[#15359](https://redirect.github.com/gohugoio/hugo/issues/15359)
- ci: Skip vet on Windows
[`10bb97b`](https://redirect.github.com/gohugoio/hugo/commit/10bb97ba)
[@bep](https://redirect.github.com/bep)
- Revert "parser/metadecoders: Strip BOM from data prior to
unmarshalling"
[`51cd9e6`](https://redirect.github.com/gohugoio/hugo/commit/51cd9e6c)
[@bep](https://redirect.github.com/bep)
- parser/metadecoders: Strip BOM from data prior to unmarshalling
[`ec578f0`](https://redirect.github.com/gohugoio/hugo/commit/ec578f0c)
[@jmooring](https://redirect.github.com/jmooring)
[#15355](https://redirect.github.com/gohugoio/hugo/issues/15355)
- tpl: Reformat templates with new formatter version
[`5698de9`](https://redirect.github.com/gohugoio/hugo/commit/5698de94)
[@bep](https://redirect.github.com/bep)
- resources/page: Balance container tags in automatic summaries
[`d692a24`](https://redirect.github.com/gohugoio/hugo/commit/d692a243)
[@bep](https://redirect.github.com/bep)
[#14044](https://redirect.github.com/gohugoio/hugo/issues/14044)
[#14927](https://redirect.github.com/gohugoio/hugo/issues/14927)
- config/security: Add an integration test
[`3be817e`](https://redirect.github.com/gohugoio/hugo/commit/3be817ed)
[@bep](https://redirect.github.com/bep)
- tpl/compare: Consolidate numeric comparisions
[`4d628bb`](https://redirect.github.com/gohugoio/hugo/commit/4d628bbd)
[@bep](https://redirect.github.com/bep)
[#15322](https://redirect.github.com/gohugoio/hugo/issues/15322)
[#15347](https://redirect.github.com/gohugoio/hugo/issues/15347)
- tpl/strings: Add a strings.FirstLower function
[`aaacd12`](https://redirect.github.com/gohugoio/hugo/commit/aaacd12c)
[@jmooring](https://redirect.github.com/jmooring)
[#15332](https://redirect.github.com/gohugoio/hugo/issues/15332)
- Update brevity guideline in AGENTS.md
[`881c0ec`](https://redirect.github.com/gohugoio/hugo/commit/881c0ec7)
[@bep](https://redirect.github.com/bep)
#### Dependency Updates
- build(deps): bump github.com/olekukonko/tablewriter from 1.1.4 to
1.1.5
[`1567bde`](https://redirect.github.com/gohugoio/hugo/commit/1567bdef)
[@dependabot](https://redirect.github.com/dependabot)\[bot]
- build(deps): bump github.com/dustin/go-humanize from 1.0.1 to 1.1.0
[`9e4059c`](https://redirect.github.com/gohugoio/hugo/commit/9e4059cf)
[@dependabot](https://redirect.github.com/dependabot)\[bot]
- build(deps): bump golang.org/x/tools from 0.49.0 to 0.50.0
[`8e3bbe6`](https://redirect.github.com/gohugoio/hugo/commit/8e3bbe67)
[@dependabot](https://redirect.github.com/dependabot)\[bot]
- build(deps): bump golang.org/x/image from 0.45.0 to 0.46.0
[`753c5fc`](https://redirect.github.com/gohugoio/hugo/commit/753c5fc1)
[@dependabot](https://redirect.github.com/dependabot)\[bot]
- build(deps): bump golang.org/x/text from 0.41.0 to 0.42.0
[`facde8a`](https://redirect.github.com/gohugoio/hugo/commit/facde8aa)
[@dependabot](https://redirect.github.com/dependabot)\[bot]
- build(deps): bump go.opentelemetry.io/otel/sdk from 1.44.0 to 1.45.0
[`c7e1a8e`](https://redirect.github.com/gohugoio/hugo/commit/c7e1a8e6)
[@dependabot](https://redirect.github.com/dependabot)\[bot]
- deps: Bump github.com/bep/imagemeta from 1.0.0 to 1.0.1
([#15338](https://redirect.github.com/gohugoio/hugo/issues/15338))
[`ec57bb7`](https://redirect.github.com/gohugoio/hugo/commit/ec57bb7d)
[@dependabot](https://redirect.github.com/dependabot)\[bot]
[#15324](https://redirect.github.com/gohugoio/hugo/issues/15324)
#### Documentation
- readme: Bump minimum Go version
[`7a46cd2`](https://redirect.github.com/gohugoio/hugo/commit/7a46cd2b)
[@mikoxyz](https://redirect.github.com/mikoxyz)
#### Build Setup
- Update release image to Go 1.27.1
([#15342](https://redirect.github.com/gohugoio/hugo/issues/15342))
[`34d8cdb`](https://redirect.github.com/gohugoio/hugo/commit/34d8cdb1)
[@bep](https://redirect.github.com/bep)
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/prometheus/client_java).
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
mise.lock | 44 ++++++++++++++++++++++----------------------
1 file changed, 22 insertions(+), 22 deletions(-)
diff --git a/mise.lock b/mise.lock
index e96dd856bc..0bcb01c83f 100644
--- a/mise.lock
+++ b/mise.lock
@@ -427,44 +427,44 @@ url = "https://github.com/google/google-java-format/releases/download/v1.37.0/go
url_api = "https://api.github.com/repos/google/google-java-format/releases/assets/603148681"
[[tools.hugo]]
-version = "0.166.0"
+version = "0.167.0"
backend = "aqua:gohugoio/hugo"
specifiers = ["latest"]
[tools.hugo."platforms.linux-arm64"]
-checksum = "sha256:0e15cbc595e799401698c11af39d2594b64292b39d9ec7a19665bd43e05fcb2c"
-url = "https://github.com/gohugoio/hugo/releases/download/v0.166.0/hugo_0.166.0_linux-arm64.tar.gz"
-url_api = "https://api.github.com/repos/gohugoio/hugo/releases/assets/552998646"
+checksum = "sha256:d0dd0d1ed249842525a93413e10ca1ef6f3b63311ee1695b16a0ce488142cec1"
+url = "https://github.com/gohugoio/hugo/releases/download/v0.167.0/hugo_0.167.0_linux-arm64.tar.gz"
+url_api = "https://api.github.com/repos/gohugoio/hugo/releases/assets/595700428"
[tools.hugo."platforms.linux-arm64-musl"]
-checksum = "sha256:0e15cbc595e799401698c11af39d2594b64292b39d9ec7a19665bd43e05fcb2c"
-url = "https://github.com/gohugoio/hugo/releases/download/v0.166.0/hugo_0.166.0_linux-arm64.tar.gz"
-url_api = "https://api.github.com/repos/gohugoio/hugo/releases/assets/552998646"
+checksum = "sha256:d0dd0d1ed249842525a93413e10ca1ef6f3b63311ee1695b16a0ce488142cec1"
+url = "https://github.com/gohugoio/hugo/releases/download/v0.167.0/hugo_0.167.0_linux-arm64.tar.gz"
+url_api = "https://api.github.com/repos/gohugoio/hugo/releases/assets/595700428"
[tools.hugo."platforms.linux-x64"]
-checksum = "sha256:45228f5a52eb118b0ca168068f01d7df0447314a24056f1d29667ed9fc368308"
-url = "https://github.com/gohugoio/hugo/releases/download/v0.166.0/hugo_0.166.0_linux-amd64.tar.gz"
-url_api = "https://api.github.com/repos/gohugoio/hugo/releases/assets/552998645"
+checksum = "sha256:4d84519b9f619e6d4c3fb45a50157abeabeb724f859c60605f44c23def6e1169"
+url = "https://github.com/gohugoio/hugo/releases/download/v0.167.0/hugo_0.167.0_linux-amd64.tar.gz"
+url_api = "https://api.github.com/repos/gohugoio/hugo/releases/assets/595700433"
[tools.hugo."platforms.linux-x64-musl"]
-checksum = "sha256:45228f5a52eb118b0ca168068f01d7df0447314a24056f1d29667ed9fc368308"
-url = "https://github.com/gohugoio/hugo/releases/download/v0.166.0/hugo_0.166.0_linux-amd64.tar.gz"
-url_api = "https://api.github.com/repos/gohugoio/hugo/releases/assets/552998645"
+checksum = "sha256:4d84519b9f619e6d4c3fb45a50157abeabeb724f859c60605f44c23def6e1169"
+url = "https://github.com/gohugoio/hugo/releases/download/v0.167.0/hugo_0.167.0_linux-amd64.tar.gz"
+url_api = "https://api.github.com/repos/gohugoio/hugo/releases/assets/595700433"
[tools.hugo."platforms.macos-arm64"]
-checksum = "sha256:387c90d4cc3fa4add9949db0304c1db52175a2e939a77353e2809da15722b5a6"
-url = "https://github.com/gohugoio/hugo/releases/download/v0.166.0/hugo_0.166.0_darwin-universal.pkg"
-url_api = "https://api.github.com/repos/gohugoio/hugo/releases/assets/552998779"
+checksum = "sha256:175d03751f836ddf9097053e85f970371c7e6231921f73f6ad79e2a86ed9248c"
+url = "https://github.com/gohugoio/hugo/releases/download/v0.167.0/hugo_0.167.0_darwin-universal.pkg"
+url_api = "https://api.github.com/repos/gohugoio/hugo/releases/assets/595700588"
[tools.hugo."platforms.macos-x64"]
-checksum = "sha256:387c90d4cc3fa4add9949db0304c1db52175a2e939a77353e2809da15722b5a6"
-url = "https://github.com/gohugoio/hugo/releases/download/v0.166.0/hugo_0.166.0_darwin-universal.pkg"
-url_api = "https://api.github.com/repos/gohugoio/hugo/releases/assets/552998779"
+checksum = "sha256:175d03751f836ddf9097053e85f970371c7e6231921f73f6ad79e2a86ed9248c"
+url = "https://github.com/gohugoio/hugo/releases/download/v0.167.0/hugo_0.167.0_darwin-universal.pkg"
+url_api = "https://api.github.com/repos/gohugoio/hugo/releases/assets/595700588"
[tools.hugo."platforms.windows-x64"]
-checksum = "sha256:e572364734bd5ead5f8c38d4ac99ea30d3deface89d0a47528aabcdec6800725"
-url = "https://github.com/gohugoio/hugo/releases/download/v0.166.0/hugo_0.166.0_windows-amd64.zip"
-url_api = "https://api.github.com/repos/gohugoio/hugo/releases/assets/552998804"
+checksum = "sha256:f5ed1983b4373e719434cd721bf931907dec8ad33a891a6912903e93cfdcce98"
+url = "https://github.com/gohugoio/hugo/releases/download/v0.167.0/hugo_0.167.0_windows-amd64.zip"
+url_api = "https://api.github.com/repos/gohugoio/hugo/releases/assets/595700601"
[[tools.java]]
version = "temurin-25.0.4+101.0.LTS"
From ac703836dba43dc77fc0b758a01e4489b5d0b872 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Mon, 12 Oct 2026 15:19:02 +0200
Subject: [PATCH 219/255] chore(deps): update jdx/mise-action action to v5.1.2
(#2542)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [jdx/mise-action](https://redirect.github.com/jdx/mise-action) |
action | patch | `v5.1.1` → `v5.1.2` |
---
### Release Notes
jdx/mise-action (jdx/mise-action)
###
[`v5.1.2`](https://redirect.github.com/jdx/mise-action/releases/tag/v5.1.2):
: mise_dir now sets MISE_DATA_DIR; auto_update handles a locked mise
binary
[Compare
Source](https://redirect.github.com/jdx/mise-action/compare/v5.1.1...v5.1.2)
The `mise_dir` input now also sets where mise installs tools, so those
tools end up in the cache. With `auto_update: true`, the action no
longer crashes on Windows when the mise binary is still in use.
##### Fixed
- **`mise_dir` now exports `MISE_DATA_DIR`.** Before this release,
`mise_dir` moved the mise binary and the cache path, but mise kept
installing tools to `~/.local/share/mise`. The saved cache didn't
include the tools. On runners where `~/.local` isn't writable, the step
failed with `EACCES: permission denied`. When `mise_dir` is set, the
action now exports `MISE_DATA_DIR=`, so tools are installed
into the directory that gets cached. If your workflow sets a different
`MISE_DATA_DIR`, the `mise_dir` input overrides it. If `mise_dir` isn't
set, nothing changes. mise's state directory (`~/.local/state/mise`)
stays where it is. If that path also can't be written, set
`MISE_STATE_DIR` yourself.
([#672](https://redirect.github.com/jdx/mise-action/pull/672) by
[@jdx](https://redirect.github.com/jdx), fixes
[#668](https://redirect.github.com/jdx/mise-action/issues/668))
```yaml
- uses: jdx/mise-action@v5
with:
mise_dir: ${{ runner.tool_cache }}/mise/data
```
- **`auto_update` no longer crashes when it can't replace `mise.exe`.**
On Windows, the step used to fail with a bare `EPERM: operation not
permitted, unlink '…\mise.exe'` if another process was still using the
binary. Now, if `version` isn't pinned and the existing binary passes
verification against its recorded version, the action prints a warning
and continues with that version. In any other case, the step fails with
a message that says the file is in use and how to fix it. A pinned
`version` never quietly keeps an older binary.
([#665](https://redirect.github.com/jdx/mise-action/pull/665) by
[@jdx](https://redirect.github.com/jdx), fixes
[#664](https://redirect.github.com/jdx/mise-action/issues/664))
##### Documentation
- The README explains how to use mise's `MISE_ENABLE_TOOLS` setting as a
job-level allowlist. Unlike `install_args`, the allowlist applies to the
action's install and to later `mise` commands. If jobs use different
allowlists, add the value to a custom `cache_key`.
([#667](https://redirect.github.com/jdx/mise-action/pull/667) by
[@zeitlinger](https://redirect.github.com/zeitlinger))
- The Rust cache section is updated for mise 2026.9.2 and later, where
`mise install` repairs a restored toolchain instead of leaving `rustfmt`
missing. Swatinem/rust-cache now works alongside mise-managed Rust.
([#670](https://redirect.github.com/jdx/mise-action/pull/670) by
[@jdx](https://redirect.github.com/jdx))
**Full Changelog**:
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/prometheus/client_java).
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
.github/workflows/acceptance-tests.yml | 2 +-
.github/workflows/api-diff.yml | 2 +-
.github/workflows/build.yml | 2 +-
.github/workflows/bump-api-diff-baseline.yml | 2 +-
.github/workflows/generate-protobuf.yml | 2 +-
.github/workflows/github-pages.yaml | 2 +-
.github/workflows/java-version-matrix-tests.yml | 2 +-
.github/workflows/jmx-exporter-compatibility.yml | 2 +-
.github/workflows/lint.yml | 2 +-
.github/workflows/micrometer-compatibility.yml | 2 +-
.github/workflows/native-tests.yml | 2 +-
.github/workflows/nightly-benchmarks.yml | 2 +-
.github/workflows/pr-benchmarks.yml | 2 +-
.github/workflows/regenerate-api-diff-otel.yml | 2 +-
.github/workflows/release.yml | 2 +-
.github/workflows/test-release-build.yml | 2 +-
16 files changed, 16 insertions(+), 16 deletions(-)
diff --git a/.github/workflows/acceptance-tests.yml b/.github/workflows/acceptance-tests.yml
index 04d4e3a61d..ca7305b363 100644
--- a/.github/workflows/acceptance-tests.yml
+++ b/.github/workflows/acceptance-tests.yml
@@ -13,7 +13,7 @@ jobs:
with:
persist-credentials: false
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
- - uses: jdx/mise-action@2d8d4cafcbd33be2ea37d2b6f5ad595363d1f1ca # v5.1.1
+ - uses: jdx/mise-action@08ae2a091c038e1e05ec6f5115dc5c69d5a2a6b8 # v5.1.2
with:
version: v2026.10.2
sha256: 8f5f6660336f572830e33cd9b378d3131e529a0d4c4f0c553776be90a1ba302a
diff --git a/.github/workflows/api-diff.yml b/.github/workflows/api-diff.yml
index 27eef3d0d1..e4b3837114 100644
--- a/.github/workflows/api-diff.yml
+++ b/.github/workflows/api-diff.yml
@@ -32,7 +32,7 @@ jobs:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
with:
persist-credentials: false
- - uses: jdx/mise-action@2d8d4cafcbd33be2ea37d2b6f5ad595363d1f1ca # v5.1.1
+ - uses: jdx/mise-action@08ae2a091c038e1e05ec6f5115dc5c69d5a2a6b8 # v5.1.2
with:
version: v2026.10.2
sha256: 8f5f6660336f572830e33cd9b378d3131e529a0d4c4f0c553776be90a1ba302a
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 841104e68e..c3167e9944 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -12,7 +12,7 @@ jobs:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
with:
persist-credentials: false
- - uses: jdx/mise-action@2d8d4cafcbd33be2ea37d2b6f5ad595363d1f1ca # v5.1.1
+ - uses: jdx/mise-action@08ae2a091c038e1e05ec6f5115dc5c69d5a2a6b8 # v5.1.2
with:
version: v2026.10.2
sha256: 8f5f6660336f572830e33cd9b378d3131e529a0d4c4f0c553776be90a1ba302a
diff --git a/.github/workflows/bump-api-diff-baseline.yml b/.github/workflows/bump-api-diff-baseline.yml
index 22edc7e1ed..6906f93eec 100644
--- a/.github/workflows/bump-api-diff-baseline.yml
+++ b/.github/workflows/bump-api-diff-baseline.yml
@@ -33,7 +33,7 @@ jobs:
with:
ref: ${{ env.SNAPSHOT_BRANCH }}
persist-credentials: true
- - uses: jdx/mise-action@2d8d4cafcbd33be2ea37d2b6f5ad595363d1f1ca # v5.1.1
+ - uses: jdx/mise-action@08ae2a091c038e1e05ec6f5115dc5c69d5a2a6b8 # v5.1.2
with:
version: v2026.10.2
sha256: 8f5f6660336f572830e33cd9b378d3131e529a0d4c4f0c553776be90a1ba302a
diff --git a/.github/workflows/generate-protobuf.yml b/.github/workflows/generate-protobuf.yml
index 434f5b9932..169174ab50 100644
--- a/.github/workflows/generate-protobuf.yml
+++ b/.github/workflows/generate-protobuf.yml
@@ -18,7 +18,7 @@ jobs:
with:
ref: ${{ github.ref }}
persist-credentials: false
- - uses: jdx/mise-action@2d8d4cafcbd33be2ea37d2b6f5ad595363d1f1ca # v5.1.1
+ - uses: jdx/mise-action@08ae2a091c038e1e05ec6f5115dc5c69d5a2a6b8 # v5.1.2
with:
version: v2026.10.2
sha256: 8f5f6660336f572830e33cd9b378d3131e529a0d4c4f0c553776be90a1ba302a
diff --git a/.github/workflows/github-pages.yaml b/.github/workflows/github-pages.yaml
index a5d6ca5aa5..c99c0958e4 100644
--- a/.github/workflows/github-pages.yaml
+++ b/.github/workflows/github-pages.yaml
@@ -37,7 +37,7 @@ jobs:
persist-credentials: false
fetch-tags: "true"
fetch-depth: 0
- - uses: jdx/mise-action@2d8d4cafcbd33be2ea37d2b6f5ad595363d1f1ca # v5.1.1
+ - uses: jdx/mise-action@08ae2a091c038e1e05ec6f5115dc5c69d5a2a6b8 # v5.1.2
with:
version: v2026.10.2
sha256: 8f5f6660336f572830e33cd9b378d3131e529a0d4c4f0c553776be90a1ba302a
diff --git a/.github/workflows/java-version-matrix-tests.yml b/.github/workflows/java-version-matrix-tests.yml
index 6a32f51964..6a7632b239 100644
--- a/.github/workflows/java-version-matrix-tests.yml
+++ b/.github/workflows/java-version-matrix-tests.yml
@@ -31,7 +31,7 @@ jobs:
persist-credentials: false
- name: Set up mise
- uses: jdx/mise-action@2d8d4cafcbd33be2ea37d2b6f5ad595363d1f1ca # v5.1.1
+ uses: jdx/mise-action@08ae2a091c038e1e05ec6f5115dc5c69d5a2a6b8 # v5.1.2
with:
version: v2026.10.2
sha256: 8f5f6660336f572830e33cd9b378d3131e529a0d4c4f0c553776be90a1ba302a
diff --git a/.github/workflows/jmx-exporter-compatibility.yml b/.github/workflows/jmx-exporter-compatibility.yml
index d80e8edb3c..2281392126 100644
--- a/.github/workflows/jmx-exporter-compatibility.yml
+++ b/.github/workflows/jmx-exporter-compatibility.yml
@@ -22,7 +22,7 @@ jobs:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
with:
persist-credentials: false
- - uses: jdx/mise-action@2d8d4cafcbd33be2ea37d2b6f5ad595363d1f1ca # v5.1.1
+ - uses: jdx/mise-action@08ae2a091c038e1e05ec6f5115dc5c69d5a2a6b8 # v5.1.2
with:
version: v2026.10.2
sha256: 8f5f6660336f572830e33cd9b378d3131e529a0d4c4f0c553776be90a1ba302a
diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml
index d07fccf3c8..0040e23f45 100644
--- a/.github/workflows/lint.yml
+++ b/.github/workflows/lint.yml
@@ -21,7 +21,7 @@ jobs:
fetch-depth: 0 # needed for git diff --merge-base in lint:links
- name: Setup mise
- uses: jdx/mise-action@2d8d4cafcbd33be2ea37d2b6f5ad595363d1f1ca # v5.1.1
+ uses: jdx/mise-action@08ae2a091c038e1e05ec6f5115dc5c69d5a2a6b8 # v5.1.2
with:
version: v2026.10.2
sha256: 8f5f6660336f572830e33cd9b378d3131e529a0d4c4f0c553776be90a1ba302a
diff --git a/.github/workflows/micrometer-compatibility.yml b/.github/workflows/micrometer-compatibility.yml
index 6936b54e1a..be6756f99e 100644
--- a/.github/workflows/micrometer-compatibility.yml
+++ b/.github/workflows/micrometer-compatibility.yml
@@ -30,7 +30,7 @@ jobs:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false
- - uses: jdx/mise-action@2d8d4cafcbd33be2ea37d2b6f5ad595363d1f1ca # v5.1.1
+ - uses: jdx/mise-action@08ae2a091c038e1e05ec6f5115dc5c69d5a2a6b8 # v5.1.2
with:
version: v2026.10.2
sha256: 8f5f6660336f572830e33cd9b378d3131e529a0d4c4f0c553776be90a1ba302a
diff --git a/.github/workflows/native-tests.yml b/.github/workflows/native-tests.yml
index 97fec733a0..c326019d90 100644
--- a/.github/workflows/native-tests.yml
+++ b/.github/workflows/native-tests.yml
@@ -13,7 +13,7 @@ jobs:
with:
persist-credentials: false
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
- - uses: jdx/mise-action@2d8d4cafcbd33be2ea37d2b6f5ad595363d1f1ca # v5.1.1
+ - uses: jdx/mise-action@08ae2a091c038e1e05ec6f5115dc5c69d5a2a6b8 # v5.1.2
with:
version: v2026.10.2
sha256: 8f5f6660336f572830e33cd9b378d3131e529a0d4c4f0c553776be90a1ba302a
diff --git a/.github/workflows/nightly-benchmarks.yml b/.github/workflows/nightly-benchmarks.yml
index 2b9dd66f80..a228313959 100644
--- a/.github/workflows/nightly-benchmarks.yml
+++ b/.github/workflows/nightly-benchmarks.yml
@@ -34,7 +34,7 @@ jobs:
fetch-depth: 0
- name: Setup mise
- uses: jdx/mise-action@2d8d4cafcbd33be2ea37d2b6f5ad595363d1f1ca # v5.1.1
+ uses: jdx/mise-action@08ae2a091c038e1e05ec6f5115dc5c69d5a2a6b8 # v5.1.2
with:
version: v2026.10.2
sha256: 8f5f6660336f572830e33cd9b378d3131e529a0d4c4f0c553776be90a1ba302a
diff --git a/.github/workflows/pr-benchmarks.yml b/.github/workflows/pr-benchmarks.yml
index e934460d2a..75d61d9079 100644
--- a/.github/workflows/pr-benchmarks.yml
+++ b/.github/workflows/pr-benchmarks.yml
@@ -45,7 +45,7 @@ jobs:
fetch-depth: 0
- name: Setup mise
- uses: jdx/mise-action@2d8d4cafcbd33be2ea37d2b6f5ad595363d1f1ca # v5.1.1
+ uses: jdx/mise-action@08ae2a091c038e1e05ec6f5115dc5c69d5a2a6b8 # v5.1.2
with:
version: v2026.10.2
sha256: 8f5f6660336f572830e33cd9b378d3131e529a0d4c4f0c553776be90a1ba302a
diff --git a/.github/workflows/regenerate-api-diff-otel.yml b/.github/workflows/regenerate-api-diff-otel.yml
index 45a3f0ddcd..dd82b25c75 100644
--- a/.github/workflows/regenerate-api-diff-otel.yml
+++ b/.github/workflows/regenerate-api-diff-otel.yml
@@ -18,7 +18,7 @@ jobs:
with:
ref: ${{ github.ref }}
persist-credentials: false
- - uses: jdx/mise-action@2d8d4cafcbd33be2ea37d2b6f5ad595363d1f1ca # v5.1.1
+ - uses: jdx/mise-action@08ae2a091c038e1e05ec6f5115dc5c69d5a2a6b8 # v5.1.2
with:
version: v2026.10.2
sha256: 8f5f6660336f572830e33cd9b378d3131e529a0d4c4f0c553776be90a1ba302a
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index c2d1d26b64..047acc0851 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -72,7 +72,7 @@ jobs:
ref: ${{ inputs.tag }}
persist-credentials: false
- - uses: jdx/mise-action@2d8d4cafcbd33be2ea37d2b6f5ad595363d1f1ca # v5.1.1
+ - uses: jdx/mise-action@08ae2a091c038e1e05ec6f5115dc5c69d5a2a6b8 # v5.1.2
with:
version: v2026.10.2
sha256: 8f5f6660336f572830e33cd9b378d3131e529a0d4c4f0c553776be90a1ba302a
diff --git a/.github/workflows/test-release-build.yml b/.github/workflows/test-release-build.yml
index 4f3434d170..50f1da27c6 100644
--- a/.github/workflows/test-release-build.yml
+++ b/.github/workflows/test-release-build.yml
@@ -18,7 +18,7 @@ jobs:
persist-credentials: false
fetch-tags: "true"
fetch-depth: 0
- - uses: jdx/mise-action@2d8d4cafcbd33be2ea37d2b6f5ad595363d1f1ca # v5.1.1
+ - uses: jdx/mise-action@08ae2a091c038e1e05ec6f5115dc5c69d5a2a6b8 # v5.1.2
with:
version: v2026.10.2
sha256: 8f5f6660336f572830e33cd9b378d3131e529a0d4c4f0c553776be90a1ba302a
From 48c768aee1a3d79cc482acfc030c2ce32ce23d1a Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Mon, 12 Oct 2026 15:19:16 +0200
Subject: [PATCH 220/255] fix(deps): update dependency
org.apache.tomcat.embed:tomcat-embed-core to v11.0.27 (#2543)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This PR contains the following updates:
| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
|
[org.apache.tomcat.embed:tomcat-embed-core](https://tomcat.apache.org/)
| `11.0.26` → `11.0.27` |

|

|
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/prometheus/client_java).
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
.../example-greeting-service/pom.xml | 2 +-
.../example-hello-world-app/pom.xml | 2 +-
examples/example-exporter-servlet-tomcat/pom.xml | 2 +-
.../it-exporter/it-exporter-servlet-tomcat-sample/pom.xml | 2 +-
4 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/examples/example-exemplars-tail-sampling/example-greeting-service/pom.xml b/examples/example-exemplars-tail-sampling/example-greeting-service/pom.xml
index 0608bbb7a3..275162f288 100644
--- a/examples/example-exemplars-tail-sampling/example-greeting-service/pom.xml
+++ b/examples/example-exemplars-tail-sampling/example-greeting-service/pom.xml
@@ -45,7 +45,7 @@
org.apache.tomcat.embedtomcat-embed-core
- 11.0.26
+ 11.0.27
diff --git a/examples/example-exemplars-tail-sampling/example-hello-world-app/pom.xml b/examples/example-exemplars-tail-sampling/example-hello-world-app/pom.xml
index 2e52afd897..ff97a05f95 100644
--- a/examples/example-exemplars-tail-sampling/example-hello-world-app/pom.xml
+++ b/examples/example-exemplars-tail-sampling/example-hello-world-app/pom.xml
@@ -45,7 +45,7 @@
org.apache.tomcat.embedtomcat-embed-core
- 11.0.26
+ 11.0.27
diff --git a/examples/example-exporter-servlet-tomcat/pom.xml b/examples/example-exporter-servlet-tomcat/pom.xml
index c9fec6f5a3..763e93e7b2 100644
--- a/examples/example-exporter-servlet-tomcat/pom.xml
+++ b/examples/example-exporter-servlet-tomcat/pom.xml
@@ -44,7 +44,7 @@
org.apache.tomcat.embedtomcat-embed-core
- 11.0.26
+ 11.0.27
diff --git a/integration-tests/it-exporter/it-exporter-servlet-tomcat-sample/pom.xml b/integration-tests/it-exporter/it-exporter-servlet-tomcat-sample/pom.xml
index 7cf4e1b9b1..9f4968ae2f 100644
--- a/integration-tests/it-exporter/it-exporter-servlet-tomcat-sample/pom.xml
+++ b/integration-tests/it-exporter/it-exporter-servlet-tomcat-sample/pom.xml
@@ -33,7 +33,7 @@
org.apache.tomcat.embedtomcat-embed-core
- 11.0.26
+ 11.0.27
From 864591743fbba866152c4b5e57f54da970463ee8 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Mon, 12 Oct 2026 13:33:36 +0000
Subject: [PATCH 221/255] chore(deps): update ossf/scorecard-action action to
v2.5.0 (#2545)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
|
[ossf/scorecard-action](https://redirect.github.com/ossf/scorecard-action)
| action | minor | `v2.4.4` → `v2.5.0` |
---
### Release Notes
ossf/scorecard-action (ossf/scorecard-action)
###
[`v2.5.0`](https://redirect.github.com/ossf/scorecard-action/releases/tag/v2.5.0)
[Compare
Source](https://redirect.github.com/ossf/scorecard-action/compare/v2.4.4...v2.5.0)
#### What's Changed
This release moves the action to Scorecard v5.6.0, the first Scorecard
release since its hosted
services moved to new infrastructure.
For changes to checks and results, and what the infrastructure move
means for you, see the
[Scorecard v5.6.0 release
notes](https://redirect.github.com/ossf/scorecard/releases/tag/v5.6.0).
- The action's container image is built with Go 1.27.2 on a refreshed
distroless base. by
[@justaugustus](https://redirect.github.com/justaugustus) in
[#1716](https://redirect.github.com/ossf/scorecard-action/pull/1716)
- The installer (`cmd/installer`) now creates
`.github/workflows/scorecard.yml`, and still
recognizes existing `scorecards.yml` and `scorecards-analysis.yml`
workflows. by
[@justaugustus](https://redirect.github.com/justaugustus) in
[#1716](https://redirect.github.com/ossf/scorecard-action/pull/1716)
- The Scorecard version in results now always matches the Scorecard
release the action is built
with. by
[@justaugustus](https://redirect.github.com/justaugustus) in
[#1718](https://redirect.github.com/ossf/scorecard-action/pull/1718)
- The action no longer prints the GitHub token variable while validating
its options. by
[@arpitjain099](https://redirect.github.com/arpitjain099) in
[#1709](https://redirect.github.com/ossf/scorecard-action/pull/1709)
- `results_format` accepts `intoto`, which wraps the JSON results in an
in-toto attestation
statement. by [@puerco](https://redirect.github.com/puerco) in
[#1702](https://redirect.github.com/ossf/scorecard-action/pull/1702)
##### Other
- Add a daily canary against Scorecard main by
[@justaugustus](https://redirect.github.com/justaugustus) in
[#1711](https://redirect.github.com/ossf/scorecard-action/pull/1711)
- Bump Scorecard to the v5.6.0 candidate and fix the canary toolchain by
[@justaugustus](https://redirect.github.com/justaugustus) in
[#1714](https://redirect.github.com/ossf/scorecard-action/pull/1714)
- Run Scorecard on every merge, add a zizmor presubmit, analyze
workflows with CodeQL, and update
RELEASE.md by
[@justaugustus](https://redirect.github.com/justaugustus) in
[#1716](https://redirect.github.com/ossf/scorecard-action/pull/1716)
- Bump Scorecard to v5.6.0 by
[@justaugustus](https://redirect.github.com/justaugustus) in
[#1719](https://redirect.github.com/ossf/scorecard-action/pull/1719)
#### New Contributors
- [@arpitjain099](https://redirect.github.com/arpitjain099) made
their first contribution in
[#1709](https://redirect.github.com/ossf/scorecard-action/pull/1709)
- [@puerco](https://redirect.github.com/puerco) made their first
contribution in
[#1702](https://redirect.github.com/ossf/scorecard-action/pull/1702)
**Full Changelog**:
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/prometheus/client_java).
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
.github/workflows/scorecard.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml
index c3a88ee234..d4a42bf309 100644
--- a/.github/workflows/scorecard.yml
+++ b/.github/workflows/scorecard.yml
@@ -27,7 +27,7 @@ jobs:
persist-credentials: false
- name: Run OSSF Scorecard analysis
- uses: ossf/scorecard-action@2d1146689b8cda280b9bc96326124645441f03bc # v2.4.4
+ uses: ossf/scorecard-action@fa7117db83c52d787ae5a89f350999701505d78e # v2.5.0
with:
results_file: results.sarif
results_format: sarif
From 72afa4199731ef18b251ccba8ff6d270baf1c0c5 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Tue, 13 Oct 2026 08:27:09 +0200
Subject: [PATCH 222/255] fix(deps): update dependency
com.github.ben-manes.caffeine:caffeine to v3.3.1 (#2548)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This PR contains the following updates:
| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
|
[com.github.ben-manes.caffeine:caffeine](https://redirect.github.com/ben-manes/caffeine)
| `3.3.0` → `3.3.1` |

|

|
---
### Release Notes
ben-manes/caffeine
(com.github.ben-manes.caffeine:caffeine)
###
[`v3.3.1`](https://redirect.github.com/ben-manes/caffeine/releases/tag/v3.3.1):
3.3.1
- Added a workaround for `ForkJoinPool` queue corruption caused by
resubmitting a reusable `ForkJoinTask`
([#2021](https://redirect.github.com/ben-manes/caffeine/issues/2021))
- Improved JCache read performance when using access expiration
- Fixed various minor issues found using AI audits
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/prometheus/client_java).
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
prometheus-metrics-instrumentation-caffeine/pom.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/prometheus-metrics-instrumentation-caffeine/pom.xml b/prometheus-metrics-instrumentation-caffeine/pom.xml
index e49b57c0eb..d7b979bc8f 100644
--- a/prometheus-metrics-instrumentation-caffeine/pom.xml
+++ b/prometheus-metrics-instrumentation-caffeine/pom.xml
@@ -43,7 +43,7 @@
com.github.ben-manes.caffeinecaffeine
- 3.3.0
+ 3.3.1provided
From 4c9bf78055019b5d460a5f1a4e1899cfb6fca275 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Tue, 13 Oct 2026 08:27:17 +0200
Subject: [PATCH 223/255] fix(deps): update dependency
io.opentelemetry:opentelemetry-bom to v1.67.0 (#2547)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This PR contains the following updates:
| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
|
[io.opentelemetry:opentelemetry-bom](https://redirect.github.com/open-telemetry/opentelemetry-java)
| `1.66.0` → `1.67.0` |

|

|
---
### Release Notes
open-telemetry/opentelemetry-java
(io.opentelemetry:opentelemetry-bom)
###
[`v1.67.0`](https://redirect.github.com/open-telemetry/opentelemetry-java/blob/HEAD/CHANGELOG.md#Version-1670-2026-10-09)
##### API
- Deprecate `TextMapGetter.keys()` and make `TextMapGetter` a functional
interface
([#8531](https://redirect.github.com/open-telemetry/opentelemetry-java/pull/8531))
- Add null guards and API usage logging for tracing, baggage,
attributes, logging, and metrics
([#8803](https://redirect.github.com/open-telemetry/opentelemetry-java/pull/8803),
[#8863](https://redirect.github.com/open-telemetry/opentelemetry-java/pull/8863),
[#8864](https://redirect.github.com/open-telemetry/opentelemetry-java/pull/8864))
- Bound allocations and avoid regex backtracking when parsing W3C
`tracestate`
([#8817](https://redirect.github.com/open-telemetry/opentelemetry-java/pull/8817),
[#8914](https://redirect.github.com/open-telemetry/opentelemetry-java/pull/8914))
##### Incubating
- Add type introspection methods to `DeclarativeConfigProperties`
([#8883](https://redirect.github.com/open-telemetry/opentelemetry-java/pull/8883))
##### Extensions
- Trace propagators: Bound allocations when parsing Jaeger baggage and
B3 single-header propagation
([#8817](https://redirect.github.com/open-telemetry/opentelemetry-java/pull/8817))
##### SDK
- Run `CompletableResultCode` completion actions outside internal locks
to avoid deadlocks
([#8773](https://redirect.github.com/open-telemetry/opentelemetry-java/pull/8773))
- Do not count attribute overwrites as dropped attributes
([#8833](https://redirect.github.com/open-telemetry/opentelemetry-java/pull/8833))
- Avoid regex backtracking in glob matching
([#8909](https://redirect.github.com/open-telemetry/opentelemetry-java/pull/8909))
- Add experimental resource entity support, OTLP export, and
configuration through `otel.entities`
and declarative resource detectors
([#8464](https://redirect.github.com/open-telemetry/opentelemetry-java/pull/8464))
##### Traces
- Return noop tracers when no span processors are configured
([#8815](https://redirect.github.com/open-telemetry/opentelemetry-java/pull/8815))
- Catch `Throwable` in `SimpleSpanProcessor` and `MultiSpanExporter`
([#8848](https://redirect.github.com/open-telemetry/opentelemetry-java/pull/8848))
- Use `{span}` units for span processor self-observability metrics
([#8873](https://redirect.github.com/open-telemetry/opentelemetry-java/pull/8873))
##### Metrics
- Stabilize `PeriodicMetricReaderBuilder.setMaxExportBatchSize(int)`
([#8829](https://redirect.github.com/open-telemetry/opentelemetry-java/pull/8829))
- Delete experimental metric attribute / baggage processing
([#8818](https://redirect.github.com/open-telemetry/opentelemetry-java/pull/8818))
- Fix: Reset exemplar span context when a reservoir cell is overwritten
outside a span
([#8871](https://redirect.github.com/open-telemetry/opentelemetry-java/pull/8871))
##### Logs
- Return noop loggers from `SdkLoggerProvider.get()` when no log record
processors are configured
([#8838](https://redirect.github.com/open-telemetry/opentelemetry-java/pull/8838))
- Catch `Throwable` in `SimpleLogRecordProcessor` and
`MultiLogRecordExporter`
([#8848](https://redirect.github.com/open-telemetry/opentelemetry-java/pull/8848))
##### Profiles
- Fix `KeyValueAndUnitData.create()` to return the public
`KeyValueAndUnitData` interface
([#8875](https://redirect.github.com/open-telemetry/opentelemetry-java/pull/8875))
##### Exporters
- OTLP: Fix missing request size limits, defaulting to 64 MiB,
configurable through
`setMaxRequestBodySize(long)` and `setMaxRequestMessageSize(long)` and
through declarative config
`OtlpGrpcExporter`, `OtlpHttpExporter` (see full schema docs
[here](https://opentelemetry.io/docs/specs/otel-config/types/#type-otlpgrpcexporter))
([#8446](https://redirect.github.com/open-telemetry/opentelemetry-java/pull/8446))
- OTLP: Reduce failure logs to `FINE` after shutdown
([#8819](https://redirect.github.com/open-telemetry/opentelemetry-java/pull/8819))
- OTLP: retry gRPC based on response status codes in trailer headers
([#8854](https://redirect.github.com/open-telemetry/opentelemetry-java/pull/8854))
- Prometheus: Avoid regex backtracking when removing unit annotations
([#8910](https://redirect.github.com/open-telemetry/opentelemetry-java/pull/8910))
##### Extensions
- Autoconfigure: Stabilize `ServiceInstanceIdResourceProvider` and
generate `service.instance.id` by default
([#8770](https://redirect.github.com/open-telemetry/opentelemetry-java/pull/8770))
- Autoconfigure: Preserve unencoded non-ASCII characters when decoding
resource attributes
([#8893](https://redirect.github.com/open-telemetry/opentelemetry-java/pull/8893))
- Autoconfigure: Add missing artifact hints for
`experimental-otlp/stdout` span and metric exporters
([#8897](https://redirect.github.com/open-telemetry/opentelemetry-java/pull/8897))
- Declarative config: Update to schema v1.2.0 and support the
`always_record` sampler
([#8801](https://redirect.github.com/open-telemetry/opentelemetry-java/pull/8801))
- Declarative config: Ignore resource attributes with null values
([#8889](https://redirect.github.com/open-telemetry/opentelemetry-java/pull/8889))
- Declarative config: Match array attributes element-wise in the
`rule_based` sampler
([#8895](https://redirect.github.com/open-telemetry/opentelemetry-java/pull/8895))
- Jaeger remote sampler: Reduce failure logs to `FINE` after shutdown
([#8819](https://redirect.github.com/open-telemetry/opentelemetry-java/pull/8819))
- Jaeger remote sampler: Preserve per-operation sampling strategies when
the rate limit is zero
([#8888](https://redirect.github.com/open-telemetry/opentelemetry-java/pull/8888))
- Incubator: Make `OnEndSpanProcessor.create()` public
([#8892](https://redirect.github.com/open-telemetry/opentelemetry-java/pull/8892))
- Incubator: Fix the class name in `ComposableProbabilitySampler`
descriptions
([#8891](https://redirect.github.com/open-telemetry/opentelemetry-java/pull/8891))
##### Testing
- Fix assertion failure messages reporting the wrong value or type
([#8872](https://redirect.github.com/open-telemetry/opentelemetry-java/pull/8872))
##### Shims
- OpenCensus: Skip W3C multi-tenant `tracestate` keys when converting
spans
([#8810](https://redirect.github.com/open-telemetry/opentelemetry-java/pull/8810))
- OpenTracing: Propagate baggage to the parent context in
`SpanBuilderShim`
([#8812](https://redirect.github.com/open-telemetry/opentelemetry-java/pull/8812))
##### Project tooling
- Kotlin extension: Raise the minimum Kotlin version to 2.2
([#8804](https://redirect.github.com/open-telemetry/opentelemetry-java/pull/8804))
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/prometheus/client_java).
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
benchmarks/pom.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/benchmarks/pom.xml b/benchmarks/pom.xml
index b80df7a253..0bbe84d541 100644
--- a/benchmarks/pom.xml
+++ b/benchmarks/pom.xml
@@ -20,7 +20,7 @@
0.16.03.0.2
- 1.66.0
+ 1.67.0truetrue
From 6d2b5943d3e5cc6b4b8f1e1e5c345a4aff9b1717 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Tue, 13 Oct 2026 08:27:47 +0200
Subject: [PATCH 224/255] chore(deps): update
otel/opentelemetry-collector-contrib docker tag to v0.162.0 (#2546)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This PR contains the following updates:
| Package | Update | Change |
|---|---|---|
|
[otel/opentelemetry-collector-contrib](https://redirect.github.com/open-telemetry/opentelemetry-collector-releases)
| minor | `0.161.0` → `0.162.0` |
---
### Release Notes
open-telemetry/opentelemetry-collector-releases
(otel/opentelemetry-collector-contrib)
###
[`v0.162.0`](https://redirect.github.com/open-telemetry/opentelemetry-collector-releases/blob/HEAD/CHANGELOG.md#v01620)
[Compare
Source](https://redirect.github.com/open-telemetry/opentelemetry-collector-releases/compare/v0.161.0...v0.162.0)
##### 🛑 Breaking changes 🛑
- `otelcol-contrib`: Remove `wavefrontreceiver` from the contrib
distribution after its deprecation period.
([#1673](https://redirect.github.com/open-telemetry/opentelemetry-collector-releases/issues/1673))
##### 🚀 New components 🚀
- `otelcol-contrib`: Add `sdnotifyextension` to the contrib
distribution.
([#49607](https://redirect.github.com/open-telemetry/opentelemetry-collector-releases/issues/49607))
- `otelcol-prometheus`: Create the new otelcol-prometheus distribution,
which includes "Prometheus exporters" as metric receivers.
([#1618](https://redirect.github.com/open-telemetry/opentelemetry-collector-releases/issues/1618))
The new otelcol-prometheus distribution is a collaboration between the
Prometheus and OpenTelemetry communities.
Existing [Prometheus
exporters](https://prometheus.io/docs/instrumenting/exporters/) are
slowly being refactored to be usable as Collector receivers in custom
Collector distributions built with OCB.
As more Prometheus exporters are refactored to be usable as Collector
receivers, we will add them to the otelcol-prometheus distribution.
The otelcol-prometheus distribution is experimental, and is not
recommended for production use.
[Build a custom Collector
distribution](https://opentelemetry.io/docs/collector/extend/ocb/) if
you need components from other OpenTelemetry Collector distributions
such as contrib.
- `receiver/blackbox`: Add the [Prometheus
blackbox_exporter](https://redirect.github.com/prometheus/blackbox_exporter)
as a receiver for probe metrics in otelcol-prometheus distribution.
([#1664](https://redirect.github.com/open-telemetry/opentelemetry-collector-releases/issues/1664))
- `receiver/postgres`: Add the [Prometheus
postgres_exporter](https://redirect.github.com/prometheus-community/postgres_exporter)
as a receiver for PostgreSQL metrics in otelcol-prometheus distribution.
([#1664](https://redirect.github.com/open-telemetry/opentelemetry-collector-releases/issues/1664))
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/prometheus/client_java).
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
examples/example-exemplars-tail-sampling/docker-compose.yaml | 2 +-
examples/example-exporter-opentelemetry/docker-compose.yaml | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/examples/example-exemplars-tail-sampling/docker-compose.yaml b/examples/example-exemplars-tail-sampling/docker-compose.yaml
index 88a38ab6dc..a47f9389c7 100644
--- a/examples/example-exemplars-tail-sampling/docker-compose.yaml
+++ b/examples/example-exemplars-tail-sampling/docker-compose.yaml
@@ -36,7 +36,7 @@ services:
- -jar
- /example-greeting-service.jar
collector:
- image: otel/opentelemetry-collector-contrib:0.161.0@sha256:fd328de2552466ad78385e1b1289c3f2402b1c45f265b252aab1955b42845ac1
+ image: otel/opentelemetry-collector-contrib:0.162.0@sha256:39923a8e431bd1f57be82411999d389fcfe40857492e4365456d97a4c1f74be6
network_mode: host
volumes:
- ./config/otelcol-config.yaml:/config.yaml
diff --git a/examples/example-exporter-opentelemetry/docker-compose.yaml b/examples/example-exporter-opentelemetry/docker-compose.yaml
index dc9060b059..1843b3c557 100644
--- a/examples/example-exporter-opentelemetry/docker-compose.yaml
+++ b/examples/example-exporter-opentelemetry/docker-compose.yaml
@@ -13,7 +13,7 @@ services:
#- -agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=*:5005
- /example-exporter-opentelemetry.jar
collector:
- image: otel/opentelemetry-collector-contrib:0.161.0@sha256:fd328de2552466ad78385e1b1289c3f2402b1c45f265b252aab1955b42845ac1
+ image: otel/opentelemetry-collector-contrib:0.162.0@sha256:39923a8e431bd1f57be82411999d389fcfe40857492e4365456d97a4c1f74be6
network_mode: host
volumes:
- ./config/otelcol-config.yaml:/config.yaml
From 3815993364e563882f0a6b0741685b8a1a740e45 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Tue, 13 Oct 2026 08:14:31 +0000
Subject: [PATCH 225/255] chore(deps): update dependency
prometheus/jmx_exporter to v1.7.0 (#2544)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This PR contains the following updates:
| Package | Update | Change |
|---|---|---|
|
[prometheus/jmx_exporter](https://redirect.github.com/prometheus/jmx_exporter)
| minor | `v1.6.0` → `1.7.0` |
---
### Release Notes
prometheus/jmx_exporter (prometheus/jmx_exporter)
###
[`v1.7.0`](https://redirect.github.com/prometheus/jmx_exporter/releases/tag/1.7.0):
/ 2026-10-05
[Compare
Source](https://redirect.github.com/prometheus/jmx_exporter/compare/1.6.0...1.7.0)
### JMX Exporter 1.7.0
#### Features
- **SSL PEM support:** The exporter HTTP server can now use PEM-encoded
certificate/private key files instead of a Java keystore. Both
`httpServer.ssl.pem.certificate.filename` and
`httpServer.ssl.pem.privateKey.filename` are supported, including
encrypted private keys (with an optional `password` that supports
`${ENV_VAR}` resolution) and unencrypted/encrypted PKCS8, traditional
RSA, and traditional EC key formats. PEM mode is mutually exclusive with
`httpServer.ssl.keyStore`, and certificate material continues to be
reloaded hourly.
- **Configurable Java agent logging backend:** The Java agent (and
isolator agent) can now use a JUL-independent logging backend that
writes `INFO`, `WARN`, and `ERROR` messages to standard error. Select it
with `-Djmx.prometheus.exporter.logging.backend=native` or the
`JMX_PROMETHEUS_EXPORTER_LOGGING_BACKEND=native` environment variable.
Supported values are `native` and `jul` (the default), and the system
property takes precedence over the environment variable.
- **Performance optimizations:** Collector scraping, rule
matching/caching, configuration loading, credential caching, and
map/string handling were tuned, and JMH benchmark modules and helper
scripts were added (`collector-benchmarks`,
`jmx_prometheus_common-benchmarks`,
`jmx_prometheus_javaagent-benchmarks`) to track them.
- **Reference material:** The website documentation was restructured and
a `1.7.0` versioned documentation set was added.
#### Fixed
- The JVM no longer hangs on exit when `httpServer.ssl` is configured;
the shared scheduled executor used for the hourly SSL certificate reload
(and for `maximumRequestSeconds`) now uses daemon threads like the rest
of the project.
- Fixed credential caching: valid credentials are now looked up in the
cache before the potentially expensive password verification, and
invalid credentials are never cached.
- Fixed configuration precedence.
- Fixed security edge cases in the HTTP server.
- Fixed a `NullPointerException` when an MBean reports an attribute that
is not present in its `MBeanInfo` (the attribute is now skipped).
- Fixed jar shading for the Java agent and isolator java agent.
- The isolator class loader no longer fails on JDK 8 when a package is
already defined by an ancestor classloader.
- Reverted Caffeine to a version that maintains Java 8 compatibility.
- Fixed Javadoc.
- Fixed `release.sh` to correctly omit the `v` prefix from the release
tag.
- Fixed the developer test scripts.
- Fixed integration test golden files to ignore the release version.
#### Changes
- Removed the Bouncy Castle library dependency.
- Implemented a BOM and reworked the build/release tooling (artifact
packaging and SBOM handling).
- Added JMH benchmark modules for the collector, shared support, and
Java agent.
- Refactored the integration test suite and added integration test
framework helpers.
- Added and updated Docker test images.
- Decreased integration test output and improved test coverage.
- Updated documentation and added `1.7.0` versioned documentation.
- Multiple dependency updates.
#### New Contributors
- [@BZValoche](https://redirect.github.com/BZValoche) made their
first contribution in
[#1529](https://redirect.github.com/prometheus/jmx_exporter/pull/1529)
- @arnab_nandy7 made their first contribution in
[#1528](https://redirect.github.com/prometheus/jmx_exporter/pull/1528)
- [@Abaidullah889](https://redirect.github.com/Abaidullah889)
made their first contribution in
[#1601](https://redirect.github.com/prometheus/jmx_exporter/pull/1601)
**Full Changelog**
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/prometheus/client_java).
---------
Signed-off-by: Gregor Zeitlinger
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Gregor Zeitlinger
---
.mise/lib/jmx_exporter_compat.py | 8 ++++++--
mise.toml | 2 +-
2 files changed, 7 insertions(+), 3 deletions(-)
diff --git a/.mise/lib/jmx_exporter_compat.py b/.mise/lib/jmx_exporter_compat.py
index dd364e0643..600c9578c7 100755
--- a/.mise/lib/jmx_exporter_compat.py
+++ b/.mise/lib/jmx_exporter_compat.py
@@ -134,10 +134,14 @@ def quick_test_images(
if override:
images[var] = override
continue
- match = re.search(rf'^\s*export\s+{var}="([^"]+)"', script, re.MULTILINE)
+ match = re.search(
+ rf'^\s*export\s+{var}=(?:"([^"]+)"|([^\s#]+))',
+ script,
+ re.MULTILINE,
+ )
if not match:
raise RuntimeError(f"could not find {var} in {script_path}")
- images[var] = match.group(1)
+ images[var] = match.group(1) or match.group(2)
return images
diff --git a/mise.toml b/mise.toml
index 4089f6d823..3df59dc0af 100644
--- a/mise.toml
+++ b/mise.toml
@@ -37,7 +37,7 @@ FLINT_CONFIG_DIR = ".github/config"
LGTM_VERSION = "0.36.0"
# Latest JMX Exporter release; used as the default ref for the compatibility job.
# renovate: datasource=github-tags depName=prometheus/jmx_exporter versioning=semver-coerced
-DEFAULT_JMX_EXPORTER_VERSION = "v1.6.0"
+DEFAULT_JMX_EXPORTER_VERSION = "1.7.0"
# renovate: datasource=github-tags depName=micrometer-metrics/micrometer versioning=semver-coerced
DEFAULT_MICROMETER_VERSION = "v1.17.1"
From 60e9f0f36c4036ad4b0b00a6155b5d8a07e43049 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Wed, 14 Oct 2026 12:52:45 +0200
Subject: [PATCH 226/255] chore(deps): update dependency
org.sonatype.central:central-publishing-maven-plugin to v0.12.0 (#2553)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This PR contains the following updates:
| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
|
[org.sonatype.central:central-publishing-maven-plugin](https://central.sonatype.org)
([source](https://redirect.github.com/sonatype-nexus-community/central-publishing-maven-plugin))
| `0.11.0` → `0.12.0` |

|

|
---
### Release Notes
sonatype-nexus-community/central-publishing-maven-plugin
(org.sonatype.central:central-publishing-maven-plugin)
###
[`v0.12.0`](https://redirect.github.com/sonatype-nexus-community/central-publishing-maven-plugin/compare/release-0.11.1...release-0.12.0)
[Compare
Source](https://redirect.github.com/sonatype-nexus-community/central-publishing-maven-plugin/compare/release-0.11.1...release-0.12.0)
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/prometheus/client_java).
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
prometheus-metrics-parent/pom.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/prometheus-metrics-parent/pom.xml b/prometheus-metrics-parent/pom.xml
index 06221a5578..ae560c6680 100644
--- a/prometheus-metrics-parent/pom.xml
+++ b/prometheus-metrics-parent/pom.xml
@@ -134,7 +134,7 @@
org.sonatype.centralcentral-publishing-maven-plugin
- 0.11.0
+ 0.12.0trueossrh
From 9b4751016e75879da6224a6ae38186f495752a2c Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Wed, 14 Oct 2026 12:53:33 +0200
Subject: [PATCH 227/255] chore(deps): update dependency hugo to latest (#2552)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [hugo](https://redirect.github.com/gohugoio/hugo) | tools | minor |
`0.167.0` → `0.168.0` |
---
### Release Notes
gohugoio/hugo (hugo)
###
[`v0.168.0`](https://redirect.github.com/gohugoio/hugo/releases/tag/v0.168.0)
[Compare
Source](https://redirect.github.com/gohugoio/hugo/compare/v0.167.0...v0.168.0)
#### Notable new features
- New
[`imaging.firstFrameOnly`](https://gohugo.io/configuration/imaging/#firstframeonly)
option (and a matching processing flag) to only decode/encode the first
frame of animated images. Hugo now also only decodes the first frame
when the target format doesn't support animation, and fails early with
an informative error if processing all frames would exceed the WASM
memory limit.
- New [`FrameCount`](https://gohugo.io/methods/resource/framecount/)
method on images, e.g. to check if an image is animated.
- [`site.Language`](https://gohugo.io/methods/site/language/) now has
`Translate` and `Format*` methods, so you can e.g. range over
`site.Languages` and translate into each language.
- New `charset` option for
[`js.Build`](https://gohugo.io/functions/js/build/) and
[`css.Build`](https://gohugo.io/functions/css/build/).
- Basic support for the OSC 7501 program status
(working/done/idle/error) in terminals that support it, alongside the
existing OSC 9;4 progress.
#### Security fixes
This release is built with Go 1.27.2, which includes [15 security
fixes](https://seclists.org/oss-sec/2026/q4/101). The most relevant for
Hugo are:
- Two `html/template` escaping fixes, which also apply to Hugo's fork of
the package:
[CVE-2026-94448](https://redirect.github.com/golang/go/issues/81821)
(context tracking not reset on consecutive expressions in JS template
literals) and
[CVE-2026-97030](https://redirect.github.com/golang/go/issues/81823)
(`yield` not recognized as a regexp preceder keyword). Both could lead
to incorrect escaping of inline JavaScript.
- Several `net/http` fixes (HTTP/2 server crash and memory exhaustion,
connection desynchronization, unbounded `Range` header parsing),
relevant for `hugo server` and remote resources. The corresponding
HTTP/2 fixes are also included via the upgrade of `golang.org/x/net` to
v0.61.0.
- [CVE-2026-56857](https://redirect.github.com/golang/go/issues/81739):
`os.Root.Mkdir(All)` could follow junctions out of the root on Windows.
Also:
- `github.com/tdewolff/minify` is upgraded to v2.24.19, which fixes
[GHSA-3ppm-p7r9-c5w3](https://redirect.github.com/tdewolff/minify/releases/tag/v2.24.18):
`` (and `If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/prometheus/client_java).
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
mise.lock | 44 ++++++++++++++++++++++----------------------
1 file changed, 22 insertions(+), 22 deletions(-)
diff --git a/mise.lock b/mise.lock
index 0bcb01c83f..7dbf4d2dda 100644
--- a/mise.lock
+++ b/mise.lock
@@ -427,44 +427,44 @@ url = "https://github.com/google/google-java-format/releases/download/v1.37.0/go
url_api = "https://api.github.com/repos/google/google-java-format/releases/assets/603148681"
[[tools.hugo]]
-version = "0.167.0"
+version = "0.168.0"
backend = "aqua:gohugoio/hugo"
specifiers = ["latest"]
[tools.hugo."platforms.linux-arm64"]
-checksum = "sha256:d0dd0d1ed249842525a93413e10ca1ef6f3b63311ee1695b16a0ce488142cec1"
-url = "https://github.com/gohugoio/hugo/releases/download/v0.167.0/hugo_0.167.0_linux-arm64.tar.gz"
-url_api = "https://api.github.com/repos/gohugoio/hugo/releases/assets/595700428"
+checksum = "sha256:91ce984e998a955a3dc1b5852eb4e65d0ed0f6d12a5c51690df97a548e1fdeeb"
+url = "https://github.com/gohugoio/hugo/releases/download/v0.168.0/hugo_0.168.0_linux-arm64.tar.gz"
+url_api = "https://api.github.com/repos/gohugoio/hugo/releases/assets/637728524"
[tools.hugo."platforms.linux-arm64-musl"]
-checksum = "sha256:d0dd0d1ed249842525a93413e10ca1ef6f3b63311ee1695b16a0ce488142cec1"
-url = "https://github.com/gohugoio/hugo/releases/download/v0.167.0/hugo_0.167.0_linux-arm64.tar.gz"
-url_api = "https://api.github.com/repos/gohugoio/hugo/releases/assets/595700428"
+checksum = "sha256:91ce984e998a955a3dc1b5852eb4e65d0ed0f6d12a5c51690df97a548e1fdeeb"
+url = "https://github.com/gohugoio/hugo/releases/download/v0.168.0/hugo_0.168.0_linux-arm64.tar.gz"
+url_api = "https://api.github.com/repos/gohugoio/hugo/releases/assets/637728524"
[tools.hugo."platforms.linux-x64"]
-checksum = "sha256:4d84519b9f619e6d4c3fb45a50157abeabeb724f859c60605f44c23def6e1169"
-url = "https://github.com/gohugoio/hugo/releases/download/v0.167.0/hugo_0.167.0_linux-amd64.tar.gz"
-url_api = "https://api.github.com/repos/gohugoio/hugo/releases/assets/595700433"
+checksum = "sha256:fada83ad56bb27ed4cb7dd81590303bdac16140f944ac4e66fc248117e2d5594"
+url = "https://github.com/gohugoio/hugo/releases/download/v0.168.0/hugo_0.168.0_linux-amd64.tar.gz"
+url_api = "https://api.github.com/repos/gohugoio/hugo/releases/assets/637728522"
[tools.hugo."platforms.linux-x64-musl"]
-checksum = "sha256:4d84519b9f619e6d4c3fb45a50157abeabeb724f859c60605f44c23def6e1169"
-url = "https://github.com/gohugoio/hugo/releases/download/v0.167.0/hugo_0.167.0_linux-amd64.tar.gz"
-url_api = "https://api.github.com/repos/gohugoio/hugo/releases/assets/595700433"
+checksum = "sha256:fada83ad56bb27ed4cb7dd81590303bdac16140f944ac4e66fc248117e2d5594"
+url = "https://github.com/gohugoio/hugo/releases/download/v0.168.0/hugo_0.168.0_linux-amd64.tar.gz"
+url_api = "https://api.github.com/repos/gohugoio/hugo/releases/assets/637728522"
[tools.hugo."platforms.macos-arm64"]
-checksum = "sha256:175d03751f836ddf9097053e85f970371c7e6231921f73f6ad79e2a86ed9248c"
-url = "https://github.com/gohugoio/hugo/releases/download/v0.167.0/hugo_0.167.0_darwin-universal.pkg"
-url_api = "https://api.github.com/repos/gohugoio/hugo/releases/assets/595700588"
+checksum = "sha256:01b2f0abc453242225a9bfac2c91c66a078135a28f12222a475649a299a20281"
+url = "https://github.com/gohugoio/hugo/releases/download/v0.168.0/hugo_0.168.0_darwin-universal.pkg"
+url_api = "https://api.github.com/repos/gohugoio/hugo/releases/assets/637728680"
[tools.hugo."platforms.macos-x64"]
-checksum = "sha256:175d03751f836ddf9097053e85f970371c7e6231921f73f6ad79e2a86ed9248c"
-url = "https://github.com/gohugoio/hugo/releases/download/v0.167.0/hugo_0.167.0_darwin-universal.pkg"
-url_api = "https://api.github.com/repos/gohugoio/hugo/releases/assets/595700588"
+checksum = "sha256:01b2f0abc453242225a9bfac2c91c66a078135a28f12222a475649a299a20281"
+url = "https://github.com/gohugoio/hugo/releases/download/v0.168.0/hugo_0.168.0_darwin-universal.pkg"
+url_api = "https://api.github.com/repos/gohugoio/hugo/releases/assets/637728680"
[tools.hugo."platforms.windows-x64"]
-checksum = "sha256:f5ed1983b4373e719434cd721bf931907dec8ad33a891a6912903e93cfdcce98"
-url = "https://github.com/gohugoio/hugo/releases/download/v0.167.0/hugo_0.167.0_windows-amd64.zip"
-url_api = "https://api.github.com/repos/gohugoio/hugo/releases/assets/595700601"
+checksum = "sha256:f6cf760426de305cdd85c6eaa7e203a4d623e74cc6ad8fea61228caf1e59f243"
+url = "https://github.com/gohugoio/hugo/releases/download/v0.168.0/hugo_0.168.0_windows-amd64.zip"
+url_api = "https://api.github.com/repos/gohugoio/hugo/releases/assets/637728720"
[[tools.java]]
version = "temurin-25.0.4+101.0.LTS"
From 2edf838fa0f734b74beda1e228861bde6018468c Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Wed, 14 Oct 2026 12:53:41 +0200
Subject: [PATCH 228/255] fix(deps): update dependency renovate to v44.149.1
(#2549)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
> [!NOTE]
> This PR body was truncated due to platform limits.
This PR contains the following updates:
| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
| [renovate](https://renovatebot.com)
([source](https://redirect.github.com/renovatebot/renovate)) |
[`44.82.0` →
`44.149.3`](https://octochangelog.com/compare?repo=renovatebot%2Frenovate&from=44.82.0&to=44.149.3)
|

|

|
---
### Release Notes
renovatebot/renovate (renovate)
###
[`v44.149.3`](https://redirect.github.com/renovatebot/renovate/releases/tag/44.149.3)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/44.149.2...44.149.3)
##### Bug Fixes
- **deps:** update renovate-base-image to v13.118.2 (main)
([#46910](https://redirect.github.com/renovatebot/renovate/issues/46910))
([dfbf52d](https://redirect.github.com/renovatebot/renovate/commit/dfbf52d31a7330279213cec6400f3120353092d9))
##### Documentation
- **github:** group App permissions by repository and organization
([#46898](https://redirect.github.com/renovatebot/renovate/issues/46898))
([05c7494](https://redirect.github.com/renovatebot/renovate/commit/05c74940ca85250c88ea47c0d6f999932c3ca384))
##### Miscellaneous Chores
- **deps:** update dependency pnpm to v11.28.4 (main)
([#46907](https://redirect.github.com/renovatebot/renovate/issues/46907))
([0d357aa](https://redirect.github.com/renovatebot/renovate/commit/0d357aa1ce1b2230e48872a48b64f587f47dea67))
- **deps:** update ghcr.io/containerbase/devcontainer docker tag to
v14.31.1 (main)
([#46908](https://redirect.github.com/renovatebot/renovate/issues/46908))
([324e6a1](https://redirect.github.com/renovatebot/renovate/commit/324e6a1aa9263a0a2d4b366f499154cc950abde1))
- **deps:** update pnpm/setup action to v3.1.1 (main)
([#46906](https://redirect.github.com/renovatebot/renovate/issues/46906))
([f52a8ae](https://redirect.github.com/renovatebot/renovate/commit/f52a8ae5cf32c09505ede2d9e18c7db55fd9c802))
- **tools:** allow ambient environment in agent hook simple-git
([#46899](https://redirect.github.com/renovatebot/renovate/issues/46899))
([3fc4836](https://redirect.github.com/renovatebot/renovate/commit/3fc4836a87fb3c000466656cf798da3eaaadfea0))
###
[`v44.149.2`](https://redirect.github.com/renovatebot/renovate/releases/tag/44.149.2)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/44.149.1...44.149.2)
##### Bug Fixes
- **cache:** build all cache keys with a shared helper
([#46811](https://redirect.github.com/renovatebot/renovate/issues/46811))
([f64ec39](https://redirect.github.com/renovatebot/renovate/commit/f64ec3975a4792fceae3d39af16e594f89a6a778))
- **datasource:** cache the digest per ref
([#46819](https://redirect.github.com/renovatebot/renovate/issues/46819))
([182de27](https://redirect.github.com/renovatebot/renovate/commit/182de2759f0bb31ee6216f4076875948d39c4c1b))
##### Miscellaneous Chores
- **deps:** update astral-sh/setup-uv action to v10.3.0 (main)
([#46893](https://redirect.github.com/renovatebot/renovate/issues/46893))
([0f667f9](https://redirect.github.com/renovatebot/renovate/commit/0f667f98eea2a2c9d2a187a65cab6c680f40c9e9))
###
[`v44.149.1`](https://redirect.github.com/renovatebot/renovate/releases/tag/44.149.1)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/44.149.0...44.149.1)
##### Bug Fixes
- **deps:** update renovate-base-image to v13.118.1 (main)
([#46894](https://redirect.github.com/renovatebot/renovate/issues/46894))
([214c5f3](https://redirect.github.com/renovatebot/renovate/commit/214c5f37e73689eca387517cfd2bff00088038e1))
##### Miscellaneous Chores
- **deps:** update dependency astral-sh/uv to v0.13.0 (main)
([#46891](https://redirect.github.com/renovatebot/renovate/issues/46891))
([43b9758](https://redirect.github.com/renovatebot/renovate/commit/43b9758d7b429a9c6341cad519a156619f2ccf95))
- **deps:** update dependency uv to v0.13.0 (main)
([#46892](https://redirect.github.com/renovatebot/renovate/issues/46892))
([395bca1](https://redirect.github.com/renovatebot/renovate/commit/395bca1a0f3dddc8668c5a34feffd3aa2d75fa7d))
###
[`v44.149.0`](https://redirect.github.com/renovatebot/renovate/releases/tag/44.149.0)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/44.148.6...44.149.0)
##### Features
- **deps:** update renovate-base-image to v13.118.0 (main)
([#46886](https://redirect.github.com/renovatebot/renovate/issues/46886))
([a7c19e4](https://redirect.github.com/renovatebot/renovate/commit/a7c19e489bb7623bfe62a71047e2e4e0d88e190d))
##### Documentation
- **docker-build-process:** remove Containerbase Sidecar image
([#46880](https://redirect.github.com/renovatebot/renovate/issues/46880))
([05ec2f8](https://redirect.github.com/renovatebot/renovate/commit/05ec2f8d5e9796d248080a5e44e74c338975eca2))
###
[`v44.148.6`](https://redirect.github.com/renovatebot/renovate/releases/tag/44.148.6)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/44.148.5...44.148.6)
##### Bug Fixes
- **deps:** update renovate-base-image to v13.117.4 (main)
([#46870](https://redirect.github.com/renovatebot/renovate/issues/46870))
([fd065f2](https://redirect.github.com/renovatebot/renovate/commit/fd065f2531a3bda9d3323a98899aa3c73c9652ab))
- **platform/azure:** hash the full PR description in getPr
([#46872](https://redirect.github.com/renovatebot/renovate/issues/46872))
([105dc2e](https://redirect.github.com/renovatebot/renovate/commit/105dc2eed55ed843e3c95e1d5e67b9119c4959ff))
##### Miscellaneous Chores
- **deps:** update ghcr.io/containerbase/devcontainer docker tag to
v14.31.0 (main)
([#46875](https://redirect.github.com/renovatebot/renovate/issues/46875))
([f4c5ff9](https://redirect.github.com/renovatebot/renovate/commit/f4c5ff9f19745c2eafa5f84a12fd466c1a7aa1e6))
##### Build System
- **deps:** update dependency ignore to v7.0.12 (main)
([#46873](https://redirect.github.com/renovatebot/renovate/issues/46873))
([58d4e23](https://redirect.github.com/renovatebot/renovate/commit/58d4e23994ea4ce10583394617feed8511330522))
###
[`v44.148.5`](https://redirect.github.com/renovatebot/renovate/releases/tag/44.148.5)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/44.148.4...44.148.5)
##### Bug Fixes
- **util/exec:** add a strong type for Containerbase's known tools
([#46580](https://redirect.github.com/renovatebot/renovate/issues/46580))
([7027ee5](https://redirect.github.com/renovatebot/renovate/commit/7027ee5ced3579f07bb029057cb7017dd132b052)),
closes
[#41849](https://redirect.github.com/renovatebot/renovate/issues/41849)
##### Miscellaneous Chores
- **deps:** update dependency
[@containerbase/istanbul-reports-html](https://redirect.github.com/containerbase/istanbul-reports-html)
to v2.0.21 (main)
([#46862](https://redirect.github.com/renovatebot/renovate/issues/46862))
([905fdf0](https://redirect.github.com/renovatebot/renovate/commit/905fdf06e1259dc501588a763d0925e0e1aff6f2))
- **deps:** update ghcr.io/containerbase/devcontainer docker tag to
v14.30.2 (main)
([#46865](https://redirect.github.com/renovatebot/renovate/issues/46865))
([a8377e5](https://redirect.github.com/renovatebot/renovate/commit/a8377e5edf76a3d402b38ba6af1a3e9ead2a0b04))
###
[`v44.148.4`](https://redirect.github.com/renovatebot/renovate/releases/tag/44.148.4)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/44.148.3...44.148.4)
##### Bug Fixes
- **deps:** update renovate-base-image to v13.117.3 (main)
([#46861](https://redirect.github.com/renovatebot/renovate/issues/46861))
([f5669d8](https://redirect.github.com/renovatebot/renovate/commit/f5669d80b691061b9a745ed9355365ffc894ff85))
##### Miscellaneous Chores
- **deps:** update dependency
[@types/node](https://redirect.github.com/types/node) to v24.19.1
(main)
([#46860](https://redirect.github.com/renovatebot/renovate/issues/46860))
([b83bbcb](https://redirect.github.com/renovatebot/renovate/commit/b83bbcb39cd1174070eb1ea8a5f476e66f4452f8))
###
[`v44.148.3`](https://redirect.github.com/renovatebot/renovate/releases/tag/44.148.3)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/44.148.2...44.148.3)
##### Bug Fixes
- **deps:** update renovate-base-image to v13.117.2 (main)
([#46857](https://redirect.github.com/renovatebot/renovate/issues/46857))
([530e5e4](https://redirect.github.com/renovatebot/renovate/commit/530e5e4a685c8c76089bd1b4e8e51793823f080d))
###
[`v44.148.2`](https://redirect.github.com/renovatebot/renovate/releases/tag/44.148.2)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/44.148.1...44.148.2)
##### Bug Fixes
- **deps:** update renovate-base-image to v13.117.1 (main)
([#46856](https://redirect.github.com/renovatebot/renovate/issues/46856))
([ee5cfdc](https://redirect.github.com/renovatebot/renovate/commit/ee5cfdccdec2860e16ecc31b417ed0db405137aa))
##### Miscellaneous Chores
- **deps:** update ghcr.io/containerbase/devcontainer docker tag to
v14.30.1 (main)
([#46855](https://redirect.github.com/renovatebot/renovate/issues/46855))
([83f5f9b](https://redirect.github.com/renovatebot/renovate/commit/83f5f9bd241efcdf9dc59f48a04513da6da707a6))
###
[`v44.148.1`](https://redirect.github.com/renovatebot/renovate/releases/tag/44.148.1)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/44.148.0...44.148.1)
##### Miscellaneous Chores
- **deps:** update dependency astral-sh/uv to v0.12.24 (main)
([#46851](https://redirect.github.com/renovatebot/renovate/issues/46851))
([f829aa9](https://redirect.github.com/renovatebot/renovate/commit/f829aa933e8927f191c75efb8f0544420a73d757))
- **deps:** update dependency uv to v0.12.24 (main)
([#46852](https://redirect.github.com/renovatebot/renovate/issues/46852))
([161d0f2](https://redirect.github.com/renovatebot/renovate/commit/161d0f2dd7f483bc4693406faaf5e42a7cc27a55))
##### Build System
- **deps:** update dependency handlebars to v4.7.10 \[security] (main)
([#46854](https://redirect.github.com/renovatebot/renovate/issues/46854))
([7fcc9ab](https://redirect.github.com/renovatebot/renovate/commit/7fcc9ab584de8187a765a30466a1aa6f227f5faa))
###
[`v44.148.0`](https://redirect.github.com/renovatebot/renovate/releases/tag/44.148.0)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/44.147.0...44.148.0)
##### Features
- **deps:** update renovate-base-image to v13.117.0 (main)
([#46850](https://redirect.github.com/renovatebot/renovate/issues/46850))
([aca2633](https://redirect.github.com/renovatebot/renovate/commit/aca2633f3a20367b5e3a2fbaf52e1f4c73acbba4))
##### Miscellaneous Chores
- **deps:** update ghcr.io/containerbase/devcontainer docker tag to
v14.30.0 (main)
([#46849](https://redirect.github.com/renovatebot/renovate/issues/46849))
([3bdfdf5](https://redirect.github.com/renovatebot/renovate/commit/3bdfdf53f1ea499ba86698ea9668b771373bc5eb))
###
[`v44.147.0`](https://redirect.github.com/renovatebot/renovate/releases/tag/44.147.0)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/44.146.2...44.147.0)
##### Features
- **config:** merge mergeable env options with RENOVATE_CONFIG
([#46844](https://redirect.github.com/renovatebot/renovate/issues/46844))
([d071998](https://redirect.github.com/renovatebot/renovate/commit/d071998a8d43e500060f7506ad288840f8ea291b))
###
[`v44.146.2`](https://redirect.github.com/renovatebot/renovate/releases/tag/44.146.2)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/44.146.1...44.146.2)
##### Bug Fixes
- **config:** append env host rules to RENOVATE_CONFIG ones
([#46843](https://redirect.github.com/renovatebot/renovate/issues/46843))
([888bf06](https://redirect.github.com/renovatebot/renovate/commit/888bf06ddf5518f1ff1bc59fe443c0ca267966c3))
###
[`v44.146.1`](https://redirect.github.com/renovatebot/renovate/releases/tag/44.146.1)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/44.146.0...44.146.1)
##### Bug Fixes
- **deps:** update renovate-base-image to v13.116.2 (main)
([#46842](https://redirect.github.com/renovatebot/renovate/issues/46842))
([5748c60](https://redirect.github.com/renovatebot/renovate/commit/5748c603e8d7367bde3b3566a5da821b05685630))
###
[`v44.146.0`](https://redirect.github.com/renovatebot/renovate/releases/tag/44.146.0)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/44.145.3...44.146.0)
##### Features
- **datasource/gitlab-packages:** replace getJsonUnchecked with
validated getJson
([#44143](https://redirect.github.com/renovatebot/renovate/issues/44143))
([c050119](https://redirect.github.com/renovatebot/renovate/commit/c0501194c0fb23bd1d6b0d2ab25397ec813fc920))
##### Miscellaneous Chores
- **deps:** update dependency vite to v8.3.2 (main)
([#46839](https://redirect.github.com/renovatebot/renovate/issues/46839))
([2d8963e](https://redirect.github.com/renovatebot/renovate/commit/2d8963eda6cf2e74e561c6ee95287e8bcf4b75df))
- **deps:** update ghcr.io/containerbase/devcontainer docker tag to
v14.29.1 (main)
([#46840](https://redirect.github.com/renovatebot/renovate/issues/46840))
([08c512d](https://redirect.github.com/renovatebot/renovate/commit/08c512d99c77a7150533cb0830fc91b40e6d7354))
###
[`v44.145.3`](https://redirect.github.com/renovatebot/renovate/releases/tag/44.145.3)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/44.145.2...44.145.3)
##### Bug Fixes
- **manager/helmv3:** strip repository path from ECR registry login
([#46837](https://redirect.github.com/renovatebot/renovate/issues/46837))
([5239d49](https://redirect.github.com/renovatebot/renovate/commit/5239d49a0c1939ba6b94eae50b171ce41377b8b9))
###
[`v44.145.2`](https://redirect.github.com/renovatebot/renovate/releases/tag/44.145.2)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/44.145.1...44.145.2)
##### Miscellaneous Chores
- **deps:** update docker/dockerfile docker tag to v1.28.0 (main)
([#46833](https://redirect.github.com/renovatebot/renovate/issues/46833))
([ddc717d](https://redirect.github.com/renovatebot/renovate/commit/ddc717d3a9783443691e7848a2f24ef970a6ac23))
- **deps:** update jlumbroso/free-disk-space action to v2 (main)
([#46787](https://redirect.github.com/renovatebot/renovate/issues/46787))
([250498b](https://redirect.github.com/renovatebot/renovate/commit/250498bd302f156037e5bdd54a39d0d2a1c8daa7))
##### Build System
- **deps:** update dependency simple-git to v4 \[security] (main)
([#46781](https://redirect.github.com/renovatebot/renovate/issues/46781))
([d1fd5df](https://redirect.github.com/renovatebot/renovate/commit/d1fd5df4bc80e0e76ca7f760122b99d5f751b3fe))
- **deps:** update dependency simple-git to v4.0.2 (main)
([#46836](https://redirect.github.com/renovatebot/renovate/issues/46836))
([60c5118](https://redirect.github.com/renovatebot/renovate/commit/60c5118562655d6122f1350f647cb1a2d2b43063))
###
[`v44.145.1`](https://redirect.github.com/renovatebot/renovate/releases/tag/44.145.1)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/44.145.0...44.145.1)
##### Bug Fixes
- **deps:** update renovate-base-image to v13.116.1 (main)
([#46830](https://redirect.github.com/renovatebot/renovate/issues/46830))
([0dfb750](https://redirect.github.com/renovatebot/renovate/commit/0dfb75020092789b7dc3f398e31259173f24b69f))
###
[`v44.145.0`](https://redirect.github.com/renovatebot/renovate/releases/tag/44.145.0)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/44.144.1...44.145.0)
##### Features
- **deps:** update renovate-base-image to v13.116.0 (main)
([#46828](https://redirect.github.com/renovatebot/renovate/issues/46828))
([de8f67e](https://redirect.github.com/renovatebot/renovate/commit/de8f67eb030732aa65aad17080e2ceff45f07f39))
##### Miscellaneous Chores
- **deps:** update dependency
[@biomejs/biome](https://redirect.github.com/biomejs/biome) to
v2.5.15 (main)
([#46825](https://redirect.github.com/renovatebot/renovate/issues/46825))
([219eaf0](https://redirect.github.com/renovatebot/renovate/commit/219eaf0581bcd1f7671ee887c59475f3bd27eb62))
- **deps:** update dependency pnpm to v11.28.3 (main)
([#46826](https://redirect.github.com/renovatebot/renovate/issues/46826))
([1d25ef0](https://redirect.github.com/renovatebot/renovate/commit/1d25ef0aa3b68e97cb1482c976d46aaa7c7846da))
- **deps:** update ghcr.io/containerbase/devcontainer docker tag to
v14.29.0 (main)
([#46827](https://redirect.github.com/renovatebot/renovate/issues/46827))
([5ddd9cd](https://redirect.github.com/renovatebot/renovate/commit/5ddd9cdbac9ad3c0fb8c8a7344d8fe1edac693f8))
###
[`v44.144.1`](https://redirect.github.com/renovatebot/renovate/releases/tag/44.144.1)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/44.144.0...44.144.1)
##### Bug Fixes
- **exec:** re-run install-tool when switching back to an earlier tool
version
([#46823](https://redirect.github.com/renovatebot/renovate/issues/46823))
([2ca2bc0](https://redirect.github.com/renovatebot/renovate/commit/2ca2bc0ba068fa11cae0972dad9727a0a8e27cd4))
###
[`v44.144.0`](https://redirect.github.com/renovatebot/renovate/releases/tag/44.144.0)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/44.143.0...44.144.0)
##### Features
- **datasource:** report the datasource which served a lookup
([#46808](https://redirect.github.com/renovatebot/renovate/issues/46808))
([101cb08](https://redirect.github.com/renovatebot/renovate/commit/101cb08b4e75b054facc4b6f97aabd0e54396280))
##### Bug Fixes
- **json-schema:** correctly link options to the heading they're
documented under
([#46672](https://redirect.github.com/renovatebot/renovate/issues/46672))
([b1c232a](https://redirect.github.com/renovatebot/renovate/commit/b1c232a2ad9b6c5c142a3070a333389cff74d30f)),
closes
[#43020](https://redirect.github.com/renovatebot/renovate/issues/43020)
[-#packagerulesenabled](https://redirect.github.com/renovatebot/-/issues/packagerulesenabled)
[#enabled](https://redirect.github.com/renovatebot/renovate/issues/enabled)
[-#packagerulesfetchchangelogs](https://redirect.github.com/renovatebot/-/issues/packagerulesfetchchangelogs)
[#fetchchangelogs](https://redirect.github.com/renovatebot/renovate/issues/fetchchangelogs)
[-#ansiblemanagerfilepatterns](https://redirect.github.com/renovatebot/-/issues/ansiblemanagerfilepatterns)
[#managerfilepatterns](https://redirect.github.com/renovatebot/renovate/issues/managerfilepatterns)
##### Code Refactoring
- **json-schema:** extract shared `indexMarkdown` function
([#46693](https://redirect.github.com/renovatebot/renovate/issues/46693))
([baea689](https://redirect.github.com/renovatebot/renovate/commit/baea689244887d46a9aecd6d764c4589c345c46f))
##### Tests
- **json-schema:** add coverage of generated docs links
([#46678](https://redirect.github.com/renovatebot/renovate/issues/46678))
([b486348](https://redirect.github.com/renovatebot/renovate/commit/b486348c806a885c56719036fe8e1fe3c3a51c65))
##### Build System
- **deps:** update dependency ignore to v7.0.11 (main)
([#46822](https://redirect.github.com/renovatebot/renovate/issues/46822))
([318b386](https://redirect.github.com/renovatebot/renovate/commit/318b38676e6cdd7c0224d19f448939a570d17b8b))
###
[`v44.143.0`](https://redirect.github.com/renovatebot/renovate/releases/tag/44.143.0)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/44.142.1...44.143.0)
##### Features
- **manager/github-actions:** extract `slsa-framework/actions/*`'
`with`s
([#46792](https://redirect.github.com/renovatebot/renovate/issues/46792))
([4ca515b](https://redirect.github.com/renovatebot/renovate/commit/4ca515b05f3c3df2cb1659758a119af46955dc4f))
##### Bug Fixes
- **util/exec:** remove `java-maven` tool
([#46587](https://redirect.github.com/renovatebot/renovate/issues/46587))
([4a0935d](https://redirect.github.com/renovatebot/renovate/commit/4a0935d7117da597a5a1d3b9edd992d84bb2eb65)),
closes
[#41849](https://redirect.github.com/renovatebot/renovate/issues/41849)
##### Miscellaneous Chores
- **deps:** update actions/download-artifact action to v8.0.2 (main)
([#46813](https://redirect.github.com/renovatebot/renovate/issues/46813))
([ef0c32b](https://redirect.github.com/renovatebot/renovate/commit/ef0c32bbed42a1be06b58b48e3c0c70b978c1dd9))
- **deps:** update actions/upload-artifact action to v7.0.2 (main)
([#46814](https://redirect.github.com/renovatebot/renovate/issues/46814))
([f6a6e41](https://redirect.github.com/renovatebot/renovate/commit/f6a6e4181697fb2558cc47071a7d6c58c73e3b2e))
##### Code Refactoring
- **datasource:** share git-refs and git-tags ref handling
([#46189](https://redirect.github.com/renovatebot/renovate/issues/46189))
([3312bc0](https://redirect.github.com/renovatebot/renovate/commit/3312bc0c6a05b529c0ea5007da9f0d46c3a8b955))
##### Build System
- **deps:** update dependency
[@redis/client](https://redirect.github.com/redis/client) to
v6.3.0 (main)
([#46816](https://redirect.github.com/renovatebot/renovate/issues/46816))
([c88ad91](https://redirect.github.com/renovatebot/renovate/commit/c88ad9143647f337abe1e1412c4970da32107d18))
###
[`v44.142.1`](https://redirect.github.com/renovatebot/renovate/releases/tag/44.142.1)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/44.142.0...44.142.1)
##### Bug Fixes
- **changelog:** don't duplicate `depName` when it matches repo name
([#46789](https://redirect.github.com/renovatebot/renovate/issues/46789))
([9284b7e](https://redirect.github.com/renovatebot/renovate/commit/9284b7ed47229b67f7e8e7f43c0caa6df44575c0)),
closes
[#46787](https://redirect.github.com/renovatebot/renovate/issues/46787)
##### Code Refactoring
- **datasource:** add fetchJson() helpers to the Datasource base class
([#46112](https://redirect.github.com/renovatebot/renovate/issues/46112))
([f07b349](https://redirect.github.com/renovatebot/renovate/commit/f07b34947a441748eae6e951bbf6d7b2d63a769e))
- **datasource:** derive github-release-attachments from github-releases
([#46186](https://redirect.github.com/renovatebot/renovate/issues/46186))
([f03acf6](https://redirect.github.com/renovatebot/renovate/commit/f03acf6cd785c0f18d72573565b36dd068778805))
- **datasource:** normalise github getDigest signatures
([#46187](https://redirect.github.com/renovatebot/renovate/issues/46187))
([290f5dc](https://redirect.github.com/renovatebot/renovate/commit/290f5dcff3bfd1a466451c87f65a45c4673cf50d))
- **datasource:** pass the http client through the Datasource
constructor
([#46108](https://redirect.github.com/renovatebot/renovate/issues/46108))
([ee0e84f](https://redirect.github.com/renovatebot/renovate/commit/ee0e84f77576f7d46337552282c925923ada4372))
- **datasource:** share a base class across the git host \*-tags
datasources
([#46185](https://redirect.github.com/renovatebot/renovate/issues/46185))
([dc5352d](https://redirect.github.com/renovatebot/renovate/commit/dc5352d4d897ffb4637cc948cfd77a1380b9f288))
- **datasource:** share the GitLab URL helpers across the GitLab
datasources
([#46188](https://redirect.github.com/renovatebot/renovate/issues/46188))
([42805af](https://redirect.github.com/renovatebot/renovate/commit/42805afe6644c625221e12e165425d7ec5081ba4))
###
[`v44.142.0`](https://redirect.github.com/renovatebot/renovate/releases/tag/44.142.0)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/44.140.0...44.142.0)
##### Features
- **datasource/crate:** use host rule credentials for git index
registries
([#46574](https://redirect.github.com/renovatebot/renovate/issues/46574))
([9d59ac5](https://redirect.github.com/renovatebot/renovate/commit/9d59ac50844e0c6d3bfdd2387f3f71769c6af667))
##### Bug Fixes
- **deps:** update renovate-base-image to v13.115.1 (main)
([#46803](https://redirect.github.com/renovatebot/renovate/issues/46803))
([4651936](https://redirect.github.com/renovatebot/renovate/commit/4651936ec45c4cb412a765e7820db15772a4d0fd))
##### Miscellaneous Chores
- **deps:** update dependency memfs to v4.80.0 (main)
([#46800](https://redirect.github.com/renovatebot/renovate/issues/46800))
([cb29e61](https://redirect.github.com/renovatebot/renovate/commit/cb29e61871c422ad76c97c4153a21b57457863cc))
##### Code Refactoring
- **manager/npm:** type npm, yarn, bun and deno manager data
([#46637](https://redirect.github.com/renovatebot/renovate/issues/46637))
([f0d8c92](https://redirect.github.com/renovatebot/renovate/commit/f0d8c92edea4ba4a953ecbc3ec5770474b98950c))
- **manager/python:** type pep621, poetry, pipenv and pip manager data
([#46638](https://redirect.github.com/renovatebot/renovate/issues/46638))
([b291587](https://redirect.github.com/renovatebot/renovate/commit/b291587edd90b01bfbe3727c2978b7f9d1473f56))
- **manager:** default manager data generics to unknown
([#46640](https://redirect.github.com/renovatebot/renovate/issues/46640))
([31bcd2f](https://redirect.github.com/renovatebot/renovate/commit/31bcd2fcbd950a5bb018b573d25756f2e23dfa74))
- **manager:** type manager data of the remaining managers
([#46639](https://redirect.github.com/renovatebot/renovate/issues/46639))
([9788f36](https://redirect.github.com/renovatebot/renovate/commit/9788f3698d095aaf30dc06f45112d297a644611a))
###
[`v44.140.0`](https://redirect.github.com/renovatebot/renovate/releases/tag/44.140.0)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/44.139.0...44.140.0)
##### Features
- **deps:** update renovate-base-image to v13.114.0 (main)
([#46795](https://redirect.github.com/renovatebot/renovate/issues/46795))
([3c5cf64](https://redirect.github.com/renovatebot/renovate/commit/3c5cf648278514d36e8e40727c3dd55da6e69e99))
##### Miscellaneous Chores
- **deps:** update ghcr.io/containerbase/devcontainer docker tag to
v14.27.0 (main)
([#46794](https://redirect.github.com/renovatebot/renovate/issues/46794))
([1bf0257](https://redirect.github.com/renovatebot/renovate/commit/1bf0257f109690808918a33d7dd2349d6b5db098))
###
[`v44.139.0`](https://redirect.github.com/renovatebot/renovate/releases/tag/44.139.0)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/44.138.1...44.139.0)
##### Features
- **manager/github-actions:** update gh-aw-actions/setup-cli
with.version
([#46766](https://redirect.github.com/renovatebot/renovate/issues/46766))
([191633d](https://redirect.github.com/renovatebot/renovate/commit/191633d06535b0d5f8d637b2e52f737daa7b4383))
##### Bug Fixes
- **deps:** update renovate-base-image to v13.113.2 (main)
([#46785](https://redirect.github.com/renovatebot/renovate/issues/46785))
([83ed449](https://redirect.github.com/renovatebot/renovate/commit/83ed449f66d80de1e85423ea5b6a27dff0298661))
- **manager/github-actions:** use GitHub releases for setup-deno
([#46726](https://redirect.github.com/renovatebot/renovate/issues/46726))
([a022b80](https://redirect.github.com/renovatebot/renovate/commit/a022b808274a9564411f76d9ff60a8cc8829d44e))
##### Miscellaneous Chores
- **deps:** update jdx/mise-action action to v5 (main)
([#46786](https://redirect.github.com/renovatebot/renovate/issues/46786))
([12848fd](https://redirect.github.com/renovatebot/renovate/commit/12848fdf9c286ccc08bd0ca91a443cf56a3c7024))
- **deps:** update pnpm/setup action to v3 (main)
([#46788](https://redirect.github.com/renovatebot/renovate/issues/46788))
([dcd8efa](https://redirect.github.com/renovatebot/renovate/commit/dcd8efae1a4d517c22a4de51c0f1b4a7644c61c9))
###
[`v44.138.1`](https://redirect.github.com/renovatebot/renovate/releases/tag/44.138.1)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/44.138.0...44.138.1)
##### Miscellaneous Chores
- **deps:** update cbrgm/pr-size-labeler-action action to v1.4.0 (main)
([#46778](https://redirect.github.com/renovatebot/renovate/issues/46778))
([d8d4c43](https://redirect.github.com/renovatebot/renovate/commit/d8d4c4334bc195e5136451ff25936cd13cfec551))
- **deps:** update dependency
[@types/luxon](https://redirect.github.com/types/luxon) to v3.7.6
(main)
([#46780](https://redirect.github.com/renovatebot/renovate/issues/46780))
([506d8f0](https://redirect.github.com/renovatebot/renovate/commit/506d8f0453ad7fecd796281480562cec595e31a3))
- **deps:** update dependency pnpm to v11.28.2 (main)
([#46772](https://redirect.github.com/renovatebot/renovate/issues/46772))
([a806572](https://redirect.github.com/renovatebot/renovate/commit/a8065723b914479fb1ac751bd26c9c9645090e1d))
- **deps:** update ghcr.io/containerbase/devcontainer docker tag to
v14.26.2 (main)
([#46774](https://redirect.github.com/renovatebot/renovate/issues/46774))
([5c3ce89](https://redirect.github.com/renovatebot/renovate/commit/5c3ce8940b25ba737f266ab0d1efb7a16fc7ade5))
##### Build System
- **deps:** add
[@renovatebot/base-image](https://redirect.github.com/renovatebot/base-image)
package
([#46784](https://redirect.github.com/renovatebot/renovate/issues/46784))
([2088390](https://redirect.github.com/renovatebot/renovate/commit/20883909b8ec4b606a3358d22f1d76c733b524f1))
###
[`v44.138.0`](https://redirect.github.com/renovatebot/renovate/releases/tag/44.138.0)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/44.137.0...44.138.0)
##### Features
- **deps:** update ghcr.io/renovatebot/base-image docker tag to
v13.113.0 (main)
([#46770](https://redirect.github.com/renovatebot/renovate/issues/46770))
([fa58d21](https://redirect.github.com/renovatebot/renovate/commit/fa58d2119ad542a2f12b17938212d41bb38c56e1))
##### Miscellaneous Chores
- **deps:** update ghcr.io/containerbase/devcontainer docker tag to
v14.26.0 (main)
([#46769](https://redirect.github.com/renovatebot/renovate/issues/46769))
([0579c88](https://redirect.github.com/renovatebot/renovate/commit/0579c880aad17c64da03f4f845e57cccfa467949))
###
[`v44.137.0`](https://redirect.github.com/renovatebot/renovate/releases/tag/44.137.0)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/44.136.0...44.137.0)
##### Features
- **deps:** update ghcr.io/renovatebot/base-image docker tag to
v13.112.0 (main)
([#46767](https://redirect.github.com/renovatebot/renovate/issues/46767))
([f730d6a](https://redirect.github.com/renovatebot/renovate/commit/f730d6a413c626372d1573a14da9424e826fc175))
###
[`v44.136.0`](https://redirect.github.com/renovatebot/renovate/releases/tag/44.136.0)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/44.135.0...44.136.0)
##### Features
- **deps:** update ghcr.io/renovatebot/base-image docker tag to
v13.111.0 (main)
([#46765](https://redirect.github.com/renovatebot/renovate/issues/46765))
([cebf42f](https://redirect.github.com/renovatebot/renovate/commit/cebf42f212f4d7be6ad7ebed1e7d097653f0fccc))
###
[`v44.135.0`](https://redirect.github.com/renovatebot/renovate/releases/tag/44.135.0)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/44.134.3...44.135.0)
##### Features
- **manager/gradle:** support rich version constraints in the
Groovy/Kotlin DSL
([#46498](https://redirect.github.com/renovatebot/renovate/issues/46498))
([2327295](https://redirect.github.com/renovatebot/renovate/commit/23272951d6c49a93fae76f4e8e68a2257b63e42a)),
closes
[#45481](https://redirect.github.com/renovatebot/renovate/issues/45481)
##### Bug Fixes
- **deps:** update ghcr.io/renovatebot/base-image docker tag to
v13.110.2 (main)
([#46762](https://redirect.github.com/renovatebot/renovate/issues/46762))
([47167a8](https://redirect.github.com/renovatebot/renovate/commit/47167a89eee6270f2c776aceadec192ba53c5c42))
##### Miscellaneous Chores
- **deps:** update linters to v1.86.0 (main)
([#46763](https://redirect.github.com/renovatebot/renovate/issues/46763))
([848024d](https://redirect.github.com/renovatebot/renovate/commit/848024dff8d0fdb3cda8f72bb02f3633bdda7fa6))
###
[`v44.134.3`](https://redirect.github.com/renovatebot/renovate/releases/tag/44.134.3)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/44.134.2...44.134.3)
##### Bug Fixes
- **vulnerabilities:** raise fixes for deps their manager disables by
default
([#46761](https://redirect.github.com/renovatebot/renovate/issues/46761))
([215433f](https://redirect.github.com/renovatebot/renovate/commit/215433f3114ef42d89d65c50ee26a2840658364b))
###
[`v44.134.2`](https://redirect.github.com/renovatebot/renovate/releases/tag/44.134.2)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/44.134.1...44.134.2)
##### Bug Fixes
- **deps:** update ghcr.io/renovatebot/base-image docker tag to
v13.110.1 (main)
([#46760](https://redirect.github.com/renovatebot/renovate/issues/46760))
([27abe8a](https://redirect.github.com/renovatebot/renovate/commit/27abe8ae55c4548754bdbf6395fb399c069f3383))
##### Miscellaneous Chores
- **deps:** update ghcr.io/containerbase/devcontainer docker tag to
v14.25.1 (main)
([#46759](https://redirect.github.com/renovatebot/renovate/issues/46759))
([2f40bbf](https://redirect.github.com/renovatebot/renovate/commit/2f40bbf5851dbd9383dfcea156ec92f662fd1c14))
###
[`v44.134.1`](https://redirect.github.com/renovatebot/renovate/releases/tag/44.134.1)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/44.134.0...44.134.1)
##### Bug Fixes
- **http:** deep copy buffer bodies in copyResponse
([#46752](https://redirect.github.com/renovatebot/renovate/issues/46752))
([a58b413](https://redirect.github.com/renovatebot/renovate/commit/a58b413742d5dbfabca6f0d3540fdf560780a23c))
##### Documentation
- update references to python to
[`5046790`](https://redirect.github.com/renovatebot/renovate/commit/5046790)
(main)
([#46743](https://redirect.github.com/renovatebot/renovate/issues/46743))
([b5ac326](https://redirect.github.com/renovatebot/renovate/commit/b5ac326d509fdd862c8dd8d24d6f4d5edd4c008e))
##### Miscellaneous Chores
- **deps:** lock file maintenance (main)
([#46746](https://redirect.github.com/renovatebot/renovate/issues/46746))
([e58cc8f](https://redirect.github.com/renovatebot/renovate/commit/e58cc8fa19f22b6203767dbe233185574883c0bb))
###
[`v44.134.0`](https://redirect.github.com/renovatebot/renovate/releases/tag/44.134.0)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/44.133.1...44.134.0)
##### Features
- **deps:** update ghcr.io/renovatebot/base-image docker tag to
v13.110.0 (main)
([#46757](https://redirect.github.com/renovatebot/renovate/issues/46757))
([01dd5bd](https://redirect.github.com/renovatebot/renovate/commit/01dd5bd84616f9360f93c1e5806e283fc8921288))
##### Bug Fixes
- **platform/azure:** re-apply auto-complete settings to existing PRs
([#46756](https://redirect.github.com/renovatebot/renovate/issues/46756))
([acad2e3](https://redirect.github.com/renovatebot/renovate/commit/acad2e3507a3ff85a543025150c6b8ccee0b917f))
###
[`v44.133.1`](https://redirect.github.com/renovatebot/renovate/releases/tag/44.133.1)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/44.133.0...44.133.1)
##### Bug Fixes
- **cache:** handle redis client connection errors
([#46754](https://redirect.github.com/renovatebot/renovate/issues/46754))
([c503e44](https://redirect.github.com/renovatebot/renovate/commit/c503e44adc5875b3f4aaf57f0ffc2808ee67afcc))
##### Documentation
- update references to renovate/renovate (main)
([#46745](https://redirect.github.com/renovatebot/renovate/issues/46745))
([0e32322](https://redirect.github.com/renovatebot/renovate/commit/0e323220ec10651c6c9eeece03cc1f1562133ba5))
- update references to renovatebot/github-action to v46.3.6 (main)
([#46744](https://redirect.github.com/renovatebot/renovate/issues/46744))
([f6b64f8](https://redirect.github.com/renovatebot/renovate/commit/f6b64f8fbccba67f95b19e785da2a9317995be7b))
- update references to renovatebot/github-action to v46.3.7 (main)
([#46749](https://redirect.github.com/renovatebot/renovate/issues/46749))
([2d9b01b](https://redirect.github.com/renovatebot/renovate/commit/2d9b01bb40cd12deaa29b42de62f0214dd7c3c5f))
##### Miscellaneous Chores
- **deps:** update dependency pnpm to v11.28.1 (main)
([#46751](https://redirect.github.com/renovatebot/renovate/issues/46751))
([012dab5](https://redirect.github.com/renovatebot/renovate/commit/012dab54f1cf7078b90f0727b8d8771e9f81f5ba))
- **deps:** update ghcr.io/containerbase/devcontainer docker tag to
v14.25.0 (main)
([#46755](https://redirect.github.com/renovatebot/renovate/issues/46755))
([12a7503](https://redirect.github.com/renovatebot/renovate/commit/12a75032b2f5820317b275303f4365f139bab242))
##### Tests
- **versioning/paket:** cover omitted minor prerelease comparison
([#46747](https://redirect.github.com/renovatebot/renovate/issues/46747))
([3b1a1bf](https://redirect.github.com/renovatebot/renovate/commit/3b1a1bf3f752923aed7b2520ea8e71afe8f27e82))
###
[`v44.133.0`](https://redirect.github.com/renovatebot/renovate/releases/tag/44.133.0)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/44.132.6...44.133.0)
##### Features
- **data:** automatic update of static data
([#46734](https://redirect.github.com/renovatebot/renovate/issues/46734))
([474cddd](https://redirect.github.com/renovatebot/renovate/commit/474cddd087adab35d555fd3fd3d2c8036a0eab55))
###
[`v44.132.6`](https://redirect.github.com/renovatebot/renovate/releases/tag/44.132.6)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/44.132.5...44.132.6)
##### Bug Fixes
- **deps:** update ghcr.io/renovatebot/base-image docker tag to
v13.109.4 (main)
([#46738](https://redirect.github.com/renovatebot/renovate/issues/46738))
([eee241a](https://redirect.github.com/renovatebot/renovate/commit/eee241a6ef6cac4d381f91dd5ee4c21fd97bd5a1))
##### Miscellaneous Chores
- **deps:** update dependency
[@containerbase/istanbul-reports-html](https://redirect.github.com/containerbase/istanbul-reports-html)
to v2.0.20 (main)
([#46736](https://redirect.github.com/renovatebot/renovate/issues/46736))
([06a4f33](https://redirect.github.com/renovatebot/renovate/commit/06a4f338b59bde06340c277dfcaf9a04273b1c3c))
###
[`v44.132.5`](https://redirect.github.com/renovatebot/renovate/releases/tag/44.132.5)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/44.132.4...44.132.5)
##### Bug Fixes
- **deps:** update ghcr.io/renovatebot/base-image docker tag to
v13.109.3 (main)
([#46730](https://redirect.github.com/renovatebot/renovate/issues/46730))
([d2d046b](https://redirect.github.com/renovatebot/renovate/commit/d2d046b123443b7884ebb3fda7bcfd8a00dcd100))
##### Miscellaneous Chores
- **deps:** update dependency astral-sh/uv to v0.12.23 (main)
([#46728](https://redirect.github.com/renovatebot/renovate/issues/46728))
([dcfd322](https://redirect.github.com/renovatebot/renovate/commit/dcfd3225b236ce382391f3bff1abb51463264be9))
- **deps:** update dependency uv to v0.12.23 (main)
([#46729](https://redirect.github.com/renovatebot/renovate/issues/46729))
([33ea57d](https://redirect.github.com/renovatebot/renovate/commit/33ea57ded4216cf05cd1393874c0faae53d292bf))
##### Build System
- **deps:** update dependency re2 to v1.27.0 (main)
([#46731](https://redirect.github.com/renovatebot/renovate/issues/46731))
([e0e072e](https://redirect.github.com/renovatebot/renovate/commit/e0e072ec5b9691787767a8c87e7906172ee64283))
###
[`v44.132.4`](https://redirect.github.com/renovatebot/renovate/releases/tag/44.132.4)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/44.132.3...44.132.4)
##### Bug Fixes
- **deps:** update ghcr.io/renovatebot/base-image docker tag to
v13.109.2 (main)
([#46727](https://redirect.github.com/renovatebot/renovate/issues/46727))
([fa3b4c1](https://redirect.github.com/renovatebot/renovate/commit/fa3b4c1ebeac47506d3f30aa801e03203bf12246))
###
[`v44.132.3`](https://redirect.github.com/renovatebot/renovate/releases/tag/44.132.3)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/44.132.2...44.132.3)
##### Bug Fixes
- **workers/lookup:** only flag downgrades when the versioning orders
the values
([#46725](https://redirect.github.com/renovatebot/renovate/issues/46725))
([ebdf90a](https://redirect.github.com/renovatebot/renovate/commit/ebdf90aff3bd58125eef669c93326850411cb89d)),
closes
[#46146](https://redirect.github.com/renovatebot/renovate/issues/46146)
##### Miscellaneous Chores
- **deps:** update dependency
[@types/node](https://redirect.github.com/types/node) to v24.19.0
(main)
([#46721](https://redirect.github.com/renovatebot/renovate/issues/46721))
([4b92bb8](https://redirect.github.com/renovatebot/renovate/commit/4b92bb86616702a2fb2ae7e11cf87268cc3be855))
- **deps:** update dependency lint-staged to v17.6.0 (main)
([#46722](https://redirect.github.com/renovatebot/renovate/issues/46722))
([bd2458a](https://redirect.github.com/renovatebot/renovate/commit/bd2458af60499981d5e941037c64ff91cc0305ef))
- **deps:** update dependency pnpm to v11.28.0 (main)
([#46688](https://redirect.github.com/renovatebot/renovate/issues/46688))
([ae4be16](https://redirect.github.com/renovatebot/renovate/commit/ae4be1695755a20b1fe88fc94f23e2bf83d23e8d))
###
[`v44.132.2`](https://redirect.github.com/renovatebot/renovate/releases/tag/44.132.2)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/44.132.1...44.132.2)
##### Bug Fixes
- **deps:** downgrade
[@yarnpkg/core](https://redirect.github.com/yarnpkg/core) to
4.9.1
([#46665](https://redirect.github.com/renovatebot/renovate/issues/46665))
([b12f39e](https://redirect.github.com/renovatebot/renovate/commit/b12f39eed0b37cddc1ca4b41389414ce54d22f82)),
closes
[yarnpkg/berry#7282](https://redirect.github.com/yarnpkg/berry/issues/7282)
###
[`v44.132.1`](https://redirect.github.com/renovatebot/renovate/releases/tag/44.132.1)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/44.132.0...44.132.1)
##### Bug Fixes
- **deps:** update ghcr.io/renovatebot/base-image docker tag to
v13.109.1 (main)
([#46660](https://redirect.github.com/renovatebot/renovate/issues/46660))
([7962cbe](https://redirect.github.com/renovatebot/renovate/commit/7962cbe1f0e69f4db13cab6634c3ce841b35320b))
###
[`v44.132.0`](https://redirect.github.com/renovatebot/renovate/releases/tag/44.132.0)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/44.131.4...44.132.0)
##### Features
- **deps:** update ghcr.io/renovatebot/base-image docker tag to
v13.109.0 (main)
([#46659](https://redirect.github.com/renovatebot/renovate/issues/46659))
([7029247](https://redirect.github.com/renovatebot/renovate/commit/702924738aa3f6698c8fa5eba9dbb040224a370f))
###
[`v44.131.4`](https://redirect.github.com/renovatebot/renovate/releases/tag/44.131.4)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/44.131.3...44.131.4)
##### Bug Fixes
- **deps:** update ghcr.io/renovatebot/base-image docker tag to
v13.108.3 (main)
([#46658](https://redirect.github.com/renovatebot/renovate/issues/46658))
([220eb02](https://redirect.github.com/renovatebot/renovate/commit/220eb02e4f2c746dbf9b095f52663312ff332d98))
##### Miscellaneous Chores
- **deps:** update dependency astral-sh/uv to v0.12.22 (main)
([#46654](https://redirect.github.com/renovatebot/renovate/issues/46654))
([f449f87](https://redirect.github.com/renovatebot/renovate/commit/f449f8718a677f469d37bcab1d65347b8a335b08))
- **deps:** update dependency uv to v0.12.22 (main)
([#46655](https://redirect.github.com/renovatebot/renovate/issues/46655))
([bce0679](https://redirect.github.com/renovatebot/renovate/commit/bce06795eae6e01219850c334d0e365f97a9a3d9))
- **deps:** update python docker tag to v3.14.8 (main)
([#46657](https://redirect.github.com/renovatebot/renovate/issues/46657))
([81925b1](https://redirect.github.com/renovatebot/renovate/commit/81925b1e6c0a01605731be8e6e96b5dd7e38d59a))
###
[`v44.131.3`](https://redirect.github.com/renovatebot/renovate/releases/tag/44.131.3)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/44.131.2...44.131.3)
##### Bug Fixes
- **deps:** update ghcr.io/renovatebot/base-image docker tag to
v13.108.2 (main)
([#46653](https://redirect.github.com/renovatebot/renovate/issues/46653))
([7c914c6](https://redirect.github.com/renovatebot/renovate/commit/7c914c63ebbc6946fc65c4e18a92747c212bd570))
###
[`v44.131.2`](https://redirect.github.com/renovatebot/renovate/releases/tag/44.131.2)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/44.131.1...44.131.2)
##### Bug Fixes
- **deps:** update ghcr.io/renovatebot/base-image docker tag to
v13.108.1 (main)
([#46652](https://redirect.github.com/renovatebot/renovate/issues/46652))
([42036fa](https://redirect.github.com/renovatebot/renovate/commit/42036fa071cfe1a2c109e9e4f38ee1856f98b392))
###
[`v44.131.1`](https://redirect.github.com/renovatebot/renovate/releases/tag/44.131.1)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/44.131.0...44.131.1)
##### Build System
- **deps:** update dependency
[@yarnpkg/core](https://redirect.github.com/yarnpkg/core) to
v4.9.2 (main)
([#46651](https://redirect.github.com/renovatebot/renovate/issues/46651))
([81c2a3f](https://redirect.github.com/renovatebot/renovate/commit/81c2a3fd81000f5f24d054059a6fccdf08bc727c))
###
[`v44.131.0`](https://redirect.github.com/renovatebot/renovate/releases/tag/44.131.0)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/44.130.0...44.131.0)
##### Features
- **manager/helmfile:** pass helm host rule credentials for classic
repositories
([#46573](https://redirect.github.com/renovatebot/renovate/issues/46573))
([07cee91](https://redirect.github.com/renovatebot/renovate/commit/07cee9141725931e624b510a7dcafc03cb1f27ff))
- **manager/kustomize:** use host rule credentials when inflating helm
charts
([#46519](https://redirect.github.com/renovatebot/renovate/issues/46519))
([c4519c9](https://redirect.github.com/renovatebot/renovate/commit/c4519c99fba05cfce88741c9d9ddc91bf0c57173))
##### Miscellaneous Chores
- **deps:** update cbrgm/pr-size-labeler-action action to v1.3.14 (main)
([#46650](https://redirect.github.com/renovatebot/renovate/issues/46650))
([3500c11](https://redirect.github.com/renovatebot/renovate/commit/3500c115dcb9f177addb375b0ee65f6b98eea0c6))
##### Code Refactoring
- **manager/helmv3:** share helm repository credential args
([#46571](https://redirect.github.com/renovatebot/renovate/issues/46571))
([244d8b5](https://redirect.github.com/renovatebot/renovate/commit/244d8b5746c837ca1f53b162d3c02d240aeaf5f4))
###
[`v44.130.0`](https://redirect.github.com/renovatebot/renovate/releases/tag/44.130.0)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/44.129.0...44.130.0)
##### Features
- **deps:** update ghcr.io/renovatebot/base-image docker tag to
v13.108.0 (main)
([#46649](https://redirect.github.com/renovatebot/renovate/issues/46649))
([62b988b](https://redirect.github.com/renovatebot/renovate/commit/62b988b1535b8d3fd73c8ae6c5abb684e3b3df37))
##### Miscellaneous Chores
- **deps:** update dependency oxlint-tsgolint to v7.0.2003 (main)
([#46647](https://redirect.github.com/renovatebot/renovate/issues/46647))
([ad9d250](https://redirect.github.com/renovatebot/renovate/commit/ad9d250203b49735f3f0a6734b2549cb52b13068))
- **deps:** update ghcr.io/containerbase/devcontainer docker tag to
v14.24.0 (main)
([#46648](https://redirect.github.com/renovatebot/renovate/issues/46648))
([7518513](https://redirect.github.com/renovatebot/renovate/commit/7518513b978b4adcfcd51db7eb8437f7c3ffebb3))
###
[`v44.129.0`](https://redirect.github.com/renovatebot/renovate/releases/tag/44.129.0)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/44.128.3...44.129.0)
##### Features
- **deps:** update ghcr.io/renovatebot/base-image docker tag to
v13.107.0 (main)
([#46644](https://redirect.github.com/renovatebot/renovate/issues/46644))
([3e26f8a](https://redirect.github.com/renovatebot/renovate/commit/3e26f8a3e8c2ad6662b6000cb62de8abb0c4fcbf))
##### Code Refactoring
- **datasource/conda:** match prefix.dev by hostname
([#46364](https://redirect.github.com/renovatebot/renovate/issues/46364))
([83d6ded](https://redirect.github.com/renovatebot/renovate/commit/83d6dede6a1220a02fd6f323e43596038d32c2bc))
###
[`v44.128.3`](https://redirect.github.com/renovatebot/renovate/releases/tag/44.128.3)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/44.128.2...44.128.3)
##### Bug Fixes
- **datasource/docker:** correct source URLs for Podman, Buildah, and
Skopeo
([#46643](https://redirect.github.com/renovatebot/renovate/issues/46643))
([3e04df0](https://redirect.github.com/renovatebot/renovate/commit/3e04df0ac142fa7a4aaf4e7686a79d432c806b0d))
###
[`v44.128.2`](https://redirect.github.com/renovatebot/renovate/releases/tag/44.128.2)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/44.128.1...44.128.2)
##### Bug Fixes
- **changelog:** only cache release notes on a cache miss
([#46612](https://redirect.github.com/renovatebot/renovate/issues/46612))
([86bc5d0](https://redirect.github.com/renovatebot/renovate/commit/86bc5d0e18337832baa5b31f4f61f0087dbce084))
##### Miscellaneous Chores
- **deps:** update dependency vite to v8.3.1 (main)
([#46636](https://redirect.github.com/renovatebot/renovate/issues/46636))
([5733f4b](https://redirect.github.com/renovatebot/renovate/commit/5733f4b4a95320bb558fcb8cac2bffa5d2743f00))
- **deps:** update ghcr.io/containerbase/devcontainer docker tag to
v14.23.0 (main)
([#46642](https://redirect.github.com/renovatebot/renovate/issues/46642))
([9f775c6](https://redirect.github.com/renovatebot/renovate/commit/9f775c6bfad11ee226caa34988a982f8250c7161))
- wrap "why no reproduction" in a code block
([#46606](https://redirect.github.com/renovatebot/renovate/issues/46606))
([7035e11](https://redirect.github.com/renovatebot/renovate/commit/7035e1195bbe75399b812ad17f6a6539564a7495))
##### Continuous Integration
- label pr size for forks via workflow_run
([#46576](https://redirect.github.com/renovatebot/renovate/issues/46576))
([c160056](https://redirect.github.com/renovatebot/renovate/commit/c16005686d7e57fb8129b2c6fdb7b5e8b054e4c4))
###
[`v44.128.1`](https://redirect.github.com/renovatebot/renovate/releases/tag/44.128.1)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/44.128.0...44.128.1)
##### Build System
- **deps:** update dependency openpgp to v6.3.2 (main)
([#46634](https://redirect.github.com/renovatebot/renovate/issues/46634))
([b85e89b](https://redirect.github.com/renovatebot/renovate/commit/b85e89b6d27c897e641da257b6a1210b18bcbc58))
###
[`v44.128.0`](https://redirect.github.com/renovatebot/renovate/releases/tag/44.128.0)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/44.127.2...44.128.0)
##### Features
- **npm:** support devEngines.runtime and devEngines.packageManager
([#43369](https://redirect.github.com/renovatebot/renovate/issues/43369))
([ff0e5ee](https://redirect.github.com/renovatebot/renovate/commit/ff0e5eed2431611f064085d0f4605178322662c8)),
closes
[#38598](https://redirect.github.com/renovatebot/renovate/issues/38598)
###
[`v44.127.2`](https://redirect.github.com/renovatebot/renovate/releases/tag/44.127.2)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/44.127.1...44.127.2)
##### Bug Fixes
- **datasource/go:** check GitHub Tags for a later release timestamp
([#46631](https://redirect.github.com/renovatebot/renovate/issues/46631))
([57bd81f](https://redirect.github.com/renovatebot/renovate/commit/57bd81f3ac029c200bf6e9b23461bf37afab4f2e))
###
[`v44.127.1`](https://redirect.github.com/renovatebot/renovate/releases/tag/44.127.1)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/44.127.0...44.127.1)
##### Bug Fixes
- **http:** skip throttle and queue for cached responses
([#46622](https://redirect.github.com/renovatebot/renovate/issues/46622))
([f3ec5e6](https://redirect.github.com/renovatebot/renovate/commit/f3ec5e6b5166b327833f63a531179d89fd8fc9db))
###
[`v44.127.0`](https://redirect.github.com/renovatebot/renovate/releases/tag/44.127.0)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/44.126.1...44.127.0)
##### Features
- **manager/mise:** support remote include and git task files
([#46611](https://redirect.github.com/renovatebot/renovate/issues/46611))
([8f2ffc0](https://redirect.github.com/renovatebot/renovate/commit/8f2ffc0e9032639b4e1f3450f0ffa6923ccbe027))
##### Miscellaneous Chores
- **agents:** give the stop hook its own coverage directory
([#46586](https://redirect.github.com/renovatebot/renovate/issues/46586))
([d43f4ab](https://redirect.github.com/renovatebot/renovate/commit/d43f4ab6630208e232ad799b9feacee377591a5f))
- **agents:** skip the stop hook check when nothing changed
([#46588](https://redirect.github.com/renovatebot/renovate/issues/46588))
([bb473f4](https://redirect.github.com/renovatebot/renovate/commit/bb473f4a598517133b79f8461515da45627f43cd))
###
[`v44.126.1`](https://redirect.github.com/renovatebot/renovate/releases/tag/44.126.1)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/44.126.0...44.126.1)
##### Build System
- **deps:** update aws-sdk-js-v3 monorepo to v3.1139.0 (main)
([#46617](https://redirect.github.com/renovatebot/renovate/issues/46617))
([1c5c67e](https://redirect.github.com/renovatebot/renovate/commit/1c5c67e3f27cdeaefc81ca587feff62e6f26e9ce))
###
[`v44.126.0`](https://redirect.github.com/renovatebot/renovate/releases/tag/44.126.0)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/44.125.2...44.126.0)
##### Features
- **deps:** update ghcr.io/renovatebot/base-image docker tag to
v13.106.0 (main)
([#46610](https://redirect.github.com/renovatebot/renovate/issues/46610))
([fe0d983](https://redirect.github.com/renovatebot/renovate/commit/fe0d98376f8fd6852efae521b1e92e22a0642dd6))
###
[`v44.125.2`](https://redirect.github.com/renovatebot/renovate/releases/tag/44.125.2)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/44.125.1...44.125.2)
##### Bug Fixes
- **datasource:** document `first` as the default registry strategy
([#46104](https://redirect.github.com/renovatebot/renovate/issues/46104))
([fc57966](https://redirect.github.com/renovatebot/renovate/commit/fc57966a6e004beb025985813a22e0d3a6e945b6)),
closes
[#40497](https://redirect.github.com/renovatebot/renovate/issues/40497)
##### Miscellaneous Chores
- **deps:** update docker/dockerfile docker tag to v1.27.1 (main)
([#46608](https://redirect.github.com/renovatebot/renovate/issues/46608))
([fd9f0a8](https://redirect.github.com/renovatebot/renovate/commit/fd9f0a89cc4942fae469912729f912bb04613f12))
- **deps:** update ghcr.io/containerbase/devcontainer docker tag to
v14.22.0 (main)
([#46609](https://redirect.github.com/renovatebot/renovate/issues/46609))
([1777a89](https://redirect.github.com/renovatebot/renovate/commit/1777a89ee66568227897cb0846e376ca266020bf))
##### Code Refactoring
- **datasource:** derive the lookup config types from each other
([#46107](https://redirect.github.com/renovatebot/renovate/issues/46107))
([d706bb2](https://redirect.github.com/renovatebot/renovate/commit/d706bb2e25353fec2e39db46f3e0db219da6aa79))
- **datasource:** make `postprocessRelease` an optional method
([#46105](https://redirect.github.com/renovatebot/renovate/issues/46105))
([7c85eeb](https://redirect.gi
> [!IMPORTANT]
> ✂ PR body was truncated to here.
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/prometheus/client_java).
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
.mise/locks/npm-renovate/44.82.0~026f02c4/package.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.mise/locks/npm-renovate/44.82.0~026f02c4/package.json b/.mise/locks/npm-renovate/44.82.0~026f02c4/package.json
index 6fb59d08ff..c3b1968f75 100644
--- a/.mise/locks/npm-renovate/44.82.0~026f02c4/package.json
+++ b/.mise/locks/npm-renovate/44.82.0~026f02c4/package.json
@@ -7,6 +7,6 @@
}
},
"dependencies": {
- "renovate": "44.82.0"
+ "renovate": "44.149.3"
}
}
From 66ec0c16696bb9f044d8b994e4842903b2e16684 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Wed, 14 Oct 2026 12:53:58 +0200
Subject: [PATCH 229/255] chore(deps): update dependency aqua:grafana/gcx to
latest (#2551)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [aqua:grafana/gcx](https://redirect.github.com/grafana/gcx) | tools |
minor | `1.5.0` → `1.6.0` |
---
### Release Notes
grafana/gcx (aqua:grafana/gcx)
###
[`v1.6.0`](https://redirect.github.com/grafana/gcx/blob/HEAD/CHANGELOG.md#v160-2026-10-13)
[Compare
Source](https://redirect.github.com/grafana/gcx/compare/v1.5.0...v1.6.0)
##### Breaking changes
- Faro app writes now reject `spec.settings.geolocationLevel: region`.
Change it to `subdivision` in saved manifests before you upgrade.
This affects `gcx frontend apps` writes and resource pushes. Before this
release, gcx ignored Faro app settings on writes, so `region` never took
effect. Faro settings now reach the API.
([#1444](https://redirect.github.com/grafana/gcx/issues/1444))
- `gcx datasources loki labels` and `gcx logs labels` now reject stray
positional arguments. They also reject an explicit empty `--query` or
`--label`. Omit these flags for an unscoped label list. Give each flag
a nonempty value when you use it.
([#1325](https://redirect.github.com/grafana/gcx/issues/1325))
##### New commands and improvements
- Add `gcx signup` to create a Grafana Cloud account and save its first
connection. Complete account setup in the browser. If the connection
fails after signup, finish it with `gcx login`.
([#1383](https://redirect.github.com/grafana/gcx/issues/1383))
- Let `gcx login --cloud --oauth` open the stack chooser when no server
is set. Browser cancellation now exits with code 5. On macOS, the
terminal watcher uses its own device, so SSH paste works.
([#1383](https://redirect.github.com/grafana/gcx/issues/1383))
- Add `gcx docs` commands to search and read Grafana product docs.
([#1234](https://redirect.github.com/grafana/gcx/issues/1234))
- Add `gcx alert routing-trees` commands to manage native alert routing
trees.
([#1472](https://redirect.github.com/grafana/gcx/issues/1472))
- Add experimental `gcx profiles query-anomalies` and
`gcx datasources pyroscope query-anomalies` commands. Their flags and
output may change.
([#1435](https://redirect.github.com/grafana/gcx/issues/1435))
- Add `--query` to scope Loki label and value lists.
([#1325](https://redirect.github.com/grafana/gcx/issues/1325))
- Add `--dry-run` to Synthetic Monitoring check create and update.
([#1429](https://redirect.github.com/grafana/gcx/issues/1429))
- Add an experimental Go sandbox module that runs gcx as WebAssembly.
Reduce its build size and startup time.
([#1440](https://redirect.github.com/grafana/gcx/issues/1440))
- Keep resource manager identity stable across gcx upgrades. Resolve
resource selectors with dotted API groups.
([#1537](https://redirect.github.com/grafana/gcx/issues/1537),
[#1441](https://redirect.github.com/grafana/gcx/issues/1441))
- Correct Faro app settings writes. Preserve labels and mobile
classification on create. Report truncated lists and accept app names
in get.
([#1444](https://redirect.github.com/grafana/gcx/issues/1444),
[#1390](https://redirect.github.com/grafana/gcx/issues/1390),
[#1445](https://redirect.github.com/grafana/gcx/issues/1445))
- Read service map metadata correctly. Fix the SLO server interval
example. Scope k6 load tests to the selected project.
([#1457](https://redirect.github.com/grafana/gcx/issues/1457),
[#1452](https://redirect.github.com/grafana/gcx/issues/1452),
[#1450](https://redirect.github.com/grafana/gcx/issues/1450))
- Name missing permissions in Faro proxy errors. Show native alert rule
selectors in help. Recover after concurrent config writes.
([#1518](https://redirect.github.com/grafana/gcx/issues/1518),
[#1458](https://redirect.github.com/grafana/gcx/issues/1458),
[#1485](https://redirect.github.com/grafana/gcx/issues/1485))
- Detect Codex, Gemini, and other agent hosts. Let
`GCX_AGENT_SPILL_BYTES=0` disable output spilling.
([#1461](https://redirect.github.com/grafana/gcx/issues/1461),
[#1439](https://redirect.github.com/grafana/gcx/issues/1439))
- Update docs, security reporting guidance, and on-call command
discovery.
([#1520](https://redirect.github.com/grafana/gcx/issues/1520),
[#1206](https://redirect.github.com/grafana/gcx/issues/1206),
[#1305](https://redirect.github.com/grafana/gcx/issues/1305))
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Disabled because a matching PR was automerged
previously.
♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/prometheus/client_java).
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
mise.lock | 44 ++++++++++++++++++++++----------------------
1 file changed, 22 insertions(+), 22 deletions(-)
diff --git a/mise.lock b/mise.lock
index 7dbf4d2dda..fb98b798f8 100644
--- a/mise.lock
+++ b/mise.lock
@@ -97,44 +97,44 @@ url_api = "https://api.github.com/repos/grafana/flint/releases/assets/586353820"
provenance = "github-attestations"
[[tools."aqua:grafana/gcx"]]
-version = "v1.5.0"
+version = "v1.6.0"
backend = "aqua:grafana/gcx"
specifiers = ["latest"]
[tools."aqua:grafana/gcx"."platforms.linux-arm64"]
-checksum = "sha256:8a3433cd6fc7c52a6f378a6dff773791a65c81f63b8c8a04854c28e47a78a73b"
-url = "https://github.com/grafana/gcx/releases/download/v1.5.0/gcx_1.5.0_linux_arm64.tar.gz"
-url_api = "https://api.github.com/repos/grafana/gcx/releases/assets/612877119"
+checksum = "sha256:116fd1a9f25d5f5e29802b705d9964578a01614f94499b85461b6abca1cb4a04"
+url = "https://github.com/grafana/gcx/releases/download/v1.6.0/gcx_1.6.0_linux_arm64.tar.gz"
+url_api = "https://api.github.com/repos/grafana/gcx/releases/assets/636664105"
[tools."aqua:grafana/gcx"."platforms.linux-arm64-musl"]
-checksum = "sha256:8a3433cd6fc7c52a6f378a6dff773791a65c81f63b8c8a04854c28e47a78a73b"
-url = "https://github.com/grafana/gcx/releases/download/v1.5.0/gcx_1.5.0_linux_arm64.tar.gz"
-url_api = "https://api.github.com/repos/grafana/gcx/releases/assets/612877119"
+checksum = "sha256:116fd1a9f25d5f5e29802b705d9964578a01614f94499b85461b6abca1cb4a04"
+url = "https://github.com/grafana/gcx/releases/download/v1.6.0/gcx_1.6.0_linux_arm64.tar.gz"
+url_api = "https://api.github.com/repos/grafana/gcx/releases/assets/636664105"
[tools."aqua:grafana/gcx"."platforms.linux-x64"]
-checksum = "sha256:e7fafdad78081fab56b1b77e3bd3237e4175e24102772711c26130e6283e83f5"
-url = "https://github.com/grafana/gcx/releases/download/v1.5.0/gcx_1.5.0_linux_amd64.tar.gz"
-url_api = "https://api.github.com/repos/grafana/gcx/releases/assets/612877115"
+checksum = "sha256:335e051cda6edfb4ad5757540208961dbdfab6d89d4af11a4087de6ffa0ec111"
+url = "https://github.com/grafana/gcx/releases/download/v1.6.0/gcx_1.6.0_linux_amd64.tar.gz"
+url_api = "https://api.github.com/repos/grafana/gcx/releases/assets/636664108"
[tools."aqua:grafana/gcx"."platforms.linux-x64-musl"]
-checksum = "sha256:e7fafdad78081fab56b1b77e3bd3237e4175e24102772711c26130e6283e83f5"
-url = "https://github.com/grafana/gcx/releases/download/v1.5.0/gcx_1.5.0_linux_amd64.tar.gz"
-url_api = "https://api.github.com/repos/grafana/gcx/releases/assets/612877115"
+checksum = "sha256:335e051cda6edfb4ad5757540208961dbdfab6d89d4af11a4087de6ffa0ec111"
+url = "https://github.com/grafana/gcx/releases/download/v1.6.0/gcx_1.6.0_linux_amd64.tar.gz"
+url_api = "https://api.github.com/repos/grafana/gcx/releases/assets/636664108"
[tools."aqua:grafana/gcx"."platforms.macos-arm64"]
-checksum = "sha256:3de6ed8212e00852fcbfd64b6046ae3b2a0e7a5782650428d04c0bd1a3a4971d"
-url = "https://github.com/grafana/gcx/releases/download/v1.5.0/gcx_1.5.0_darwin_arm64.tar.gz"
-url_api = "https://api.github.com/repos/grafana/gcx/releases/assets/612877116"
+checksum = "sha256:4eb4cd9c31a38281c2f9e147b0108cf3b201bef8f4279fddbdc7a30b32706603"
+url = "https://github.com/grafana/gcx/releases/download/v1.6.0/gcx_1.6.0_darwin_arm64.tar.gz"
+url_api = "https://api.github.com/repos/grafana/gcx/releases/assets/636664103"
[tools."aqua:grafana/gcx"."platforms.macos-x64"]
-checksum = "sha256:21ff4ea7638a72fd73b7417300057ddc5c5a83180dc36e30c37da687e3830e3b"
-url = "https://github.com/grafana/gcx/releases/download/v1.5.0/gcx_1.5.0_darwin_amd64.tar.gz"
-url_api = "https://api.github.com/repos/grafana/gcx/releases/assets/612877112"
+checksum = "sha256:8384e756deaba210fd3370ed80a0307a82b66eecc3fab443b18bb44265ad089d"
+url = "https://github.com/grafana/gcx/releases/download/v1.6.0/gcx_1.6.0_darwin_amd64.tar.gz"
+url_api = "https://api.github.com/repos/grafana/gcx/releases/assets/636664203"
[tools."aqua:grafana/gcx"."platforms.windows-x64"]
-checksum = "sha256:533edc88e1e7fd4fdb34072760307655ff34101cc07ac5a231a2348ff83ae1b6"
-url = "https://github.com/grafana/gcx/releases/download/v1.5.0/gcx_1.5.0_windows_amd64.zip"
-url_api = "https://api.github.com/repos/grafana/gcx/releases/assets/612877202"
+checksum = "sha256:72cd96615a2eecd7599d4344dd1c16bb99022442ad238026b8bf2e51286d1a83"
+url = "https://github.com/grafana/gcx/releases/download/v1.6.0/gcx_1.6.0_windows_amd64.zip"
+url_api = "https://api.github.com/repos/grafana/gcx/releases/assets/636664104"
[[tools."aqua:grafana/oats"]]
version = "0.10.0"
From d418a89b075944fe5da2c7dd8aeb72d9297ffd02 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Wed, 14 Oct 2026 11:18:58 +0000
Subject: [PATCH 230/255] chore(deps): update grafana/grafana docker tag to
v13.2.4 (#2550)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This PR contains the following updates:
| Package | Update | Change |
|---|---|---|
| [grafana/grafana](https://redirect.github.com/grafana/grafana) | patch
| `13.2.3` → `13.2.4` |
---
### Release Notes
grafana/grafana
###
[`v13.2.4`](https://redirect.github.com/grafana/grafana/blob/HEAD/CHANGELOG.md#1324-2026-10-13)
##### Security
- Security: Fix CVE-2026-15577
- Security: Fix CVE-2026-33374
- Security: Fix CVE-2026-93294
- Security: Fix CVE-2026-95502
##### Features and enhancements
- **Alerting:** Strip sensitive headers from oauth2 cross-host redirects
[#134433](https://redirect.github.com/grafana/grafana/pull/134433),
[@JacobsonMT](https://redirect.github.com/JacobsonMT)
- **Dashboard:** Fall back when collection deletion is unsupported
[#134224](https://redirect.github.com/grafana/grafana/pull/134224),
[@bestend](https://redirect.github.com/bestend)
- **Git Sync:** Clarify repository links for pure Git
[#134253](https://redirect.github.com/grafana/grafana/pull/134253),
[@ferruvich](https://redirect.github.com/ferruvich)
- **Provisioning:** Allow resource previews in unsynced folders
[#134391](https://redirect.github.com/grafana/grafana/pull/134391),
[@grafana-writer\[bot\]](https://redirect.github.com/grafana-writer\[bot])
- **Provisioning:** Reject invalid resource names before API calls
[#133776](https://redirect.github.com/grafana/grafana/pull/133776),
[@grafana-writer\[bot\]](https://redirect.github.com/grafana-writer\[bot])
- **Provisioning:** Show last checked time in Pull status
[#134483](https://redirect.github.com/grafana/grafana/pull/134483),
[@ferruvich](https://redirect.github.com/ferruvich)
- **Provisioning:** Skip previews for pull requests from forks
[#133799](https://redirect.github.com/grafana/grafana/pull/133799),
[@ferruvich](https://redirect.github.com/ferruvich)
- **Provisioning:** Stop PR previews when refs disappear
[#133855](https://redirect.github.com/grafana/grafana/pull/133855),
[@ferruvich](https://redirect.github.com/ferruvich)
- **Provisioning:** Support legacy paths and diagnose missing source
annotations
[#133779](https://redirect.github.com/grafana/grafana/pull/133779),
[@grafana-writer\[bot\]](https://redirect.github.com/grafana-writer\[bot])
- **Provisioning:** write terminal sync status back to repository on
early sync-job failures and Respect Git Sync polling intervals after
unchanged refs
[#134478](https://redirect.github.com/grafana/grafana/pull/134478),
[@mustafasencer](https://redirect.github.com/mustafasencer)
##### Bug fixes
- **CVE-2026-92539:** IAM: Fix: SCIM (Enterprise)
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/prometheus/client_java).
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
examples/example-custom-buckets/docker-compose.yaml | 2 +-
examples/example-exemplars-tail-sampling/docker-compose.yaml | 2 +-
examples/example-native-histogram/docker-compose.yaml | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/examples/example-custom-buckets/docker-compose.yaml b/examples/example-custom-buckets/docker-compose.yaml
index 1e694dab65..56ff3b8743 100644
--- a/examples/example-custom-buckets/docker-compose.yaml
+++ b/examples/example-custom-buckets/docker-compose.yaml
@@ -18,7 +18,7 @@ services:
- --enable-feature=native-histograms
- --config.file=/prometheus.yml
grafana:
- image: grafana/grafana:13.2.3@sha256:b28bae15e219c998fb0e0424ed724930cc61b1f61fb404d47c862f9a23f9e572
+ image: grafana/grafana:13.2.4@sha256:dbbc38ea21103cefb50396340cd88afec779c7e070b0a7bf5a75b4ce46651d3f
network_mode: host
volumes:
- ./docker-compose/grafana-datasources.yaml:/etc/grafana/provisioning/datasources/grafana-datasources.yaml
diff --git a/examples/example-exemplars-tail-sampling/docker-compose.yaml b/examples/example-exemplars-tail-sampling/docker-compose.yaml
index a47f9389c7..b20d71758b 100644
--- a/examples/example-exemplars-tail-sampling/docker-compose.yaml
+++ b/examples/example-exemplars-tail-sampling/docker-compose.yaml
@@ -59,7 +59,7 @@ services:
command:
- --config.file=/config.yaml
grafana:
- image: grafana/grafana:13.2.3@sha256:b28bae15e219c998fb0e0424ed724930cc61b1f61fb404d47c862f9a23f9e572
+ image: grafana/grafana:13.2.4@sha256:dbbc38ea21103cefb50396340cd88afec779c7e070b0a7bf5a75b4ce46651d3f
network_mode: host
ports:
- "3000:3000"
diff --git a/examples/example-native-histogram/docker-compose.yaml b/examples/example-native-histogram/docker-compose.yaml
index 6a44456a18..73f904b675 100644
--- a/examples/example-native-histogram/docker-compose.yaml
+++ b/examples/example-native-histogram/docker-compose.yaml
@@ -18,7 +18,7 @@ services:
- --enable-feature=native-histograms
- --config.file=/prometheus.yml
grafana:
- image: grafana/grafana:13.2.3@sha256:b28bae15e219c998fb0e0424ed724930cc61b1f61fb404d47c862f9a23f9e572
+ image: grafana/grafana:13.2.4@sha256:dbbc38ea21103cefb50396340cd88afec779c7e070b0a7bf5a75b4ce46651d3f
network_mode: host
volumes:
- ./docker-compose/grafana-datasources.yaml:/etc/grafana/provisioning/datasources/grafana-datasources.yaml
From ded5efa57fff45041e2a60854e9ab1a8c3f1ca7d Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Thu, 15 Oct 2026 13:27:40 +0200
Subject: [PATCH 231/255] chore(deps): update node.js to lts (#2554)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
> [!NOTE]
> This PR body was truncated due to platform limits.
This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [node](https://nodejs.org)
([source](https://redirect.github.com/nodejs/node)) | tools | minor |
`24.21.0` → `v24.22.0` |
---
### Release Notes
nodejs/node (node)
###
[`v24.22.0`](https://redirect.github.com/nodejs/node/releases/tag/v24.22.0):
2026-10-14, Version 24.22.0 'Krypton' (LTS), @richardlau prepared
by @aduh95
[Compare
Source](https://redirect.github.com/nodejs/node/compare/v24.21.0...v24.22.0)
##### Notable Changes
-
\[[`ddbf974b47`](https://redirect.github.com/nodejs/node/commit/ddbf974b47)]
- **(SEMVER-MINOR)** **crypto**: add `crypto.parsePKCS12()` (Brian
Muenzenmeyer)
[#65627](https://redirect.github.com/nodejs/node/pull/65627)
-
\[[`c162c68ff0`](https://redirect.github.com/nodejs/node/commit/c162c68ff0)]
- **(SEMVER-MINOR)** **crypto**: add a generic MAC API (Filip Skokan)
[#65553](https://redirect.github.com/nodejs/node/pull/65553)
-
\[[`a4ab3d84d7`](https://redirect.github.com/nodejs/node/commit/a4ab3d84d7)]
- **(SEMVER-MINOR)** **crypto**: discover ciphers from OpenSSL providers
(Filip Skokan)
[#65484](https://redirect.github.com/nodejs/node/pull/65484)
-
\[[`c2f1e829ea`](https://redirect.github.com/nodejs/node/commit/c2f1e829ea)]
- **(SEMVER-MINOR)** **crypto**: discover hashes from OpenSSL providers
(Filip Skokan)
[#65484](https://redirect.github.com/nodejs/node/pull/65484)
-
\[[`51aad5a80d`](https://redirect.github.com/nodejs/node/commit/51aad5a80d)]
- **(SEMVER-MINOR)** **crypto**: enable SIV and GCM-SIV modes in
Cipher/Decipher APIs (Filip Skokan)
[#63411](https://redirect.github.com/nodejs/node/pull/63411)
-
\[[`d11c65d2f2`](https://redirect.github.com/nodejs/node/commit/d11c65d2f2)]
- **doc**: add araujogui to collaborators (Guilherme Araújo)
[#66090](https://redirect.github.com/nodejs/node/pull/66090)
-
\[[`acc1578179`](https://redirect.github.com/nodejs/node/commit/acc1578179)]
- **doc**: deprecate `Server.prototype._listen2` in `node:net` (Antoine
du Hamel)
[#65593](https://redirect.github.com/nodejs/node/pull/65593)
-
\[[`a7f8de6362`](https://redirect.github.com/nodejs/node/commit/a7f8de6362)]
- **(SEMVER-MINOR)** **net**: support sending `net.BoundSocket` to
threads and child processes (Guy Bedford)
[#64725](https://redirect.github.com/nodejs/node/pull/64725)
-
\[[`60c3eb61bd`](https://redirect.github.com/nodejs/node/commit/60c3eb61bd)]
- **(SEMVER-MINOR)** **perf_hooks**: implement `SlidingWindowHistogram`
(James M Snell)
[#65825](https://redirect.github.com/nodejs/node/pull/65825)
-
\[[`6b3e6f9d5c`](https://redirect.github.com/nodejs/node/commit/6b3e6f9d5c)]
- **(SEMVER-MINOR)** **perf_hooks**: implement qrde analysis support in
Histogram (James M Snell)
[#65806](https://redirect.github.com/nodejs/node/pull/65806)
-
\[[`75456a3512`](https://redirect.github.com/nodejs/node/commit/75456a3512)]
- **(SEMVER-MINOR)** **perf_hooks**: implement Histogram `meanCI` API
(James M Snell)
[#65606](https://redirect.github.com/nodejs/node/pull/65606)
-
\[[`72d1b40c56`](https://redirect.github.com/nodejs/node/commit/72d1b40c56)]
- **(SEMVER-MINOR)** **perf_hooks**: add CBOR export/import for
histogram exchange (James M Snell)
[#65434](https://redirect.github.com/nodejs/node/pull/65434)
-
\[[`41161dda87`](https://redirect.github.com/nodejs/node/commit/41161dda87)]
- **(SEMVER-MINOR)** **sqlite**: add `StatementSync.prototype.close()`
(Guilherme Araújo)
[#64232](https://redirect.github.com/nodejs/node/pull/64232)
-
\[[`adbc757d70`](https://redirect.github.com/nodejs/node/commit/adbc757d70)]
- **(SEMVER-MINOR)** **sqlite**: add
`StatementSync.prototype[Symbol.dispose]()` (Guilherme Araújo)
[#64232](https://redirect.github.com/nodejs/node/pull/64232)
-
\[[`241339f072`](https://redirect.github.com/nodejs/node/commit/241339f072)]
- **(SEMVER-MINOR)** **src,lib**: add `util.markPromiseAsHandled` (James
M Snell)
[#65805](https://redirect.github.com/nodejs/node/pull/65805)
-
\[[`63b0974d9e`](https://redirect.github.com/nodejs/node/commit/63b0974d9e)]
- **(SEMVER-MINOR)** **util**: implement `util.throttle` (James M Snell)
[#65899](https://redirect.github.com/nodejs/node/pull/65899)
-
\[[`a3bbb5a26f`](https://redirect.github.com/nodejs/node/commit/a3bbb5a26f)]
- **(SEMVER-MINOR)** **util**: implement `debounce` (James M Snell)
[#65899](https://redirect.github.com/nodejs/node/pull/65899)
##### Commits
-
\[[`e6832b2cb1`](https://redirect.github.com/nodejs/node/commit/e6832b2cb1)]
- **assert**: fix TypeError on deepStrictEqual with null Map key or Set
member (Sergey Sannikov)
[#64449](https://redirect.github.com/nodejs/node/pull/64449)
-
\[[`a079177d9f`](https://redirect.github.com/nodejs/node/commit/a079177d9f)]
- **benchmark**: add --csv option to compare.js with --analyze (James M
Snell)
[#65922](https://redirect.github.com/nodejs/node/pull/65922)
-
\[[`10b1a0f70f`](https://redirect.github.com/nodejs/node/commit/10b1a0f70f)]
- **benchmark**: fix max-regressions detection in compare.js (James M
Snell)
[#65587](https://redirect.github.com/nodejs/node/pull/65587)
-
\[[`e0c7ba8ad5`](https://redirect.github.com/nodejs/node/commit/e0c7ba8ad5)]
- **benchmark**: add --analyze option to benchmark/scatter.js (James M
Snell)
[#65594](https://redirect.github.com/nodejs/node/pull/65594)
-
\[[`21fed10bb0`](https://redirect.github.com/nodejs/node/commit/21fed10bb0)]
- **benchmark**: add crypto class benchmarks (Filip Skokan)
[#65518](https://redirect.github.com/nodejs/node/pull/65518)
-
\[[`fa912242b7`](https://redirect.github.com/nodejs/node/commit/fa912242b7)]
- **buffer**: fix unaligned UTF-16LE decoding (Matteo Collina)
[#65905](https://redirect.github.com/nodejs/node/pull/65905)
-
\[[`a6bd0c1413`](https://redirect.github.com/nodejs/node/commit/a6bd0c1413)]
- **build**: suppress OpenSSL asm warnings with clang (Richard Lau)
[#66023](https://redirect.github.com/nodejs/node/pull/66023)
-
\[[`94e12139ee`](https://redirect.github.com/nodejs/node/commit/94e12139ee)]
- **build**: derive V8_LOGGING_LEVEL from dcheck_always_on (Joyee
Cheung)
[#65744](https://redirect.github.com/nodejs/node/pull/65744)
-
\[[`7a2f322943`](https://redirect.github.com/nodejs/node/commit/7a2f322943)]
- **build**: fix quiet default for make builds (Shelley Vohr)
[#65826](https://redirect.github.com/nodejs/node/pull/65826)
-
\[[`c280d650b0`](https://redirect.github.com/nodejs/node/commit/c280d650b0)]
- **build**: allow linking shared dependencies in the GN build (Shelley
Vohr)
[#65797](https://redirect.github.com/nodejs/node/pull/65797)
-
\[[`4b23a4472c`](https://redirect.github.com/nodejs/node/commit/4b23a4472c)]
- **build**: enable the V8 sandbox in shared-cage builds (Shelley Vohr)
[#62237](https://redirect.github.com/nodejs/node/pull/62237)
-
\[[`676e15c003`](https://redirect.github.com/nodejs/node/commit/676e15c003)]
- **build**: define V8_CONTIGUOUS_COMPRESSED_RO_SPACE for shared cage
(Shelley Vohr)
[#65464](https://redirect.github.com/nodejs/node/pull/65464)
-
\[[`f784058482`](https://redirect.github.com/nodejs/node/commit/f784058482)]
- **build**: remove obsolete configure flags (Chengzhong Wu)
[#65456](https://redirect.github.com/nodejs/node/pull/65456)
-
\[[`f63f37d243`](https://redirect.github.com/nodejs/node/commit/f63f37d243)]
- **build**: activate correct default flags for riscv64 (Stewart X
Addison)
[#65708](https://redirect.github.com/nodejs/node/pull/65708)
-
\[[`da46ac075d`](https://redirect.github.com/nodejs/node/commit/da46ac075d)]
- **build**: derive NODE_ARCH from target_cpu in the GN build (Shelley
Vohr)
[#65491](https://redirect.github.com/nodejs/node/pull/65491)
-
\[[`249e9a16dd`](https://redirect.github.com/nodejs/node/commit/249e9a16dd)]
- **build,src**: gate jspi flag on V8_ENABLE_WEBASSEMBLY (Piotr Kubaj)
[#66082](https://redirect.github.com/nodejs/node/pull/66082)
-
\[[`146f00f64b`](https://redirect.github.com/nodejs/node/commit/146f00f64b)]
- **child_process**: clear timeout timer on spawn-time error too
(kishore280)
[#65506](https://redirect.github.com/nodejs/node/pull/65506)
-
\[[`13987f4418`](https://redirect.github.com/nodejs/node/commit/13987f4418)]
- **crypto**: remove redundent `std::move` call (Antoine du Hamel)
[#66111](https://redirect.github.com/nodejs/node/pull/66111)
-
\[[`ef957ac85f`](https://redirect.github.com/nodejs/node/commit/ef957ac85f)]
- **crypto**: skip private RSA parameters in key details (Filip Skokan)
[#66108](https://redirect.github.com/nodejs/node/pull/66108)
-
\[[`8feccc5e22`](https://redirect.github.com/nodejs/node/commit/8feccc5e22)]
- **crypto**: use provider EC group names (Filip Skokan)
[#66108](https://redirect.github.com/nodejs/node/pull/66108)
-
\[[`764e0d1120`](https://redirect.github.com/nodejs/node/commit/764e0d1120)]
- **crypto**: fetch ciphers for private-key encoding (Filip Skokan)
[#66108](https://redirect.github.com/nodejs/node/pull/66108)
-
\[[`50ffed1979`](https://redirect.github.com/nodejs/node/commit/50ffed1979)]
- **crypto**: decode
[PKCS#1](https://redirect.github.com/PKCS/node/issues/1) keys through
providers (Filip Skokan)
[#66108](https://redirect.github.com/nodejs/node/pull/66108)
-
\[[`56c16b2fd6`](https://redirect.github.com/nodejs/node/commit/56c16b2fd6)]
- **crypto**: derive keys through EVP_KDF (Filip Skokan)
[#66108](https://redirect.github.com/nodejs/node/pull/66108)
-
\[[`a4effe6809`](https://redirect.github.com/nodejs/node/commit/a4effe6809)]
- **crypto**: use names for asymmetric key algorithms (Filip Skokan)
[#65966](https://redirect.github.com/nodejs/node/pull/65966)
-
\[[`ddbf974b47`](https://redirect.github.com/nodejs/node/commit/ddbf974b47)]
- **(SEMVER-MINOR)** **crypto**: add crypto.parsePKCS12() (Brian
Muenzenmeyer)
[#65627](https://redirect.github.com/nodejs/node/pull/65627)
-
\[[`8e631aa48f`](https://redirect.github.com/nodejs/node/commit/8e631aa48f)]
- **crypto**: add Hybrid KEMs to Web Cryptography (Filip Skokan)
[#65759](https://redirect.github.com/nodejs/node/pull/65759)
-
\[[`5c51129e16`](https://redirect.github.com/nodejs/node/commit/5c51129e16)]
- **crypto**: optimize private EC JWK import (Filip Skokan)
[#65908](https://redirect.github.com/nodejs/node/pull/65908)
-
\[[`c2ec40c2d7`](https://redirect.github.com/nodejs/node/commit/c2ec40c2d7)]
- **crypto**: disable non-FIPS WebCrypto paths in FIPS mode (Filip
Skokan)
[#65172](https://redirect.github.com/nodejs/node/pull/65172)
-
\[[`e198aa0f79`](https://redirect.github.com/nodejs/node/commit/e198aa0f79)]
- **crypto**: read RSA-PSS restrictions from provider (Filip Skokan)
[#66108](https://redirect.github.com/nodejs/node/pull/66108)
-
\[[`253784f0e9`](https://redirect.github.com/nodejs/node/commit/253784f0e9)]
- **crypto**: optimize and benchmark key preparation (Filip Skokan)
[#65892](https://redirect.github.com/nodejs/node/pull/65892)
-
\[[`80a6ad509b`](https://redirect.github.com/nodejs/node/commit/80a6ad509b)]
- **crypto**: avoid EC reconstruction for signature sizing (Filip
Skokan)
[#65908](https://redirect.github.com/nodejs/node/pull/65908)
-
\[[`5b592b772c`](https://redirect.github.com/nodejs/node/commit/5b592b772c)]
- **crypto**: avoid EC raw export reconstruction (Filip Skokan)
[#65908](https://redirect.github.com/nodejs/node/pull/65908)
-
\[[`ee956ae3bf`](https://redirect.github.com/nodejs/node/commit/ee956ae3bf)]
- **crypto**: export EC JWK coordinates directly (Filip Skokan)
[#65908](https://redirect.github.com/nodejs/node/pull/65908)
-
\[[`684008be58`](https://redirect.github.com/nodejs/node/commit/684008be58)]
- **crypto**: read EC curve metadata directly (Filip Skokan)
[#65908](https://redirect.github.com/nodejs/node/pull/65908)
-
\[[`f4665f1c41`](https://redirect.github.com/nodejs/node/commit/f4665f1c41)]
- **crypto**: validate the limit of PBKDF2 iterations (Filip Skokan)
[#65704](https://redirect.github.com/nodejs/node/pull/65704)
-
\[[`624abbecd7`](https://redirect.github.com/nodejs/node/commit/624abbecd7)]
- **crypto**: use primordials in HKDF info validation (Filip Skokan)
[#65704](https://redirect.github.com/nodejs/node/pull/65704)
-
\[[`e4d916f175`](https://redirect.github.com/nodejs/node/commit/e4d916f175)]
- **crypto**: add mgf1Hash for RSA-OAEP (Adam Mcgrath)
[#65073](https://redirect.github.com/nodejs/node/pull/65073)
-
\[[`db8a9162a8`](https://redirect.github.com/nodejs/node/commit/db8a9162a8)]
- **crypto**: fix multi-prime RSA JWKs (Filip Skokan)
[#65649](https://redirect.github.com/nodejs/node/pull/65649)
-
\[[`022ac83504`](https://redirect.github.com/nodejs/node/commit/022ac83504)]
- **crypto**: cache valid ECDH key pairs (Filip Skokan)
[#65615](https://redirect.github.com/nodejs/node/pull/65615)
-
\[[`c61953ebcc`](https://redirect.github.com/nodejs/node/commit/c61953ebcc)]
- **crypto**: add strict mode to --force-fips (Filip Skokan)
[#65645](https://redirect.github.com/nodejs/node/pull/65645)
-
\[[`db6ea132a5`](https://redirect.github.com/nodejs/node/commit/db6ea132a5)]
- **crypto**: add FIPS indicator diagnostics channel (Filip Skokan)
[#65645](https://redirect.github.com/nodejs/node/pull/65645)
-
\[[`c162c68ff0`](https://redirect.github.com/nodejs/node/commit/c162c68ff0)]
- **(SEMVER-MINOR)** **crypto**: add a generic MAC API (Filip Skokan)
[#65553](https://redirect.github.com/nodejs/node/pull/65553)
-
\[[`2b62aafd20`](https://redirect.github.com/nodejs/node/commit/2b62aafd20)]
- **crypto**: validate JWK usages before key_ops (Filip Skokan)
[#65550](https://redirect.github.com/nodejs/node/pull/65550)
-
\[[`ec7819db69`](https://redirect.github.com/nodejs/node/commit/ec7819db69)]
- **crypto**: fix RSA-PSS oversized salt handling (Filip Skokan)
[#65550](https://redirect.github.com/nodejs/node/pull/65550)
-
\[[`a4ab3d84d7`](https://redirect.github.com/nodejs/node/commit/a4ab3d84d7)]
- **(SEMVER-MINOR)** **crypto**: discover ciphers from OpenSSL providers
(Filip Skokan)
[#65484](https://redirect.github.com/nodejs/node/pull/65484)
-
\[[`c2f1e829ea`](https://redirect.github.com/nodejs/node/commit/c2f1e829ea)]
- **(SEMVER-MINOR)** **crypto**: discover hashes from OpenSSL providers
(Filip Skokan)
[#65484](https://redirect.github.com/nodejs/node/pull/65484)
-
\[[`51aad5a80d`](https://redirect.github.com/nodejs/node/commit/51aad5a80d)]
- **(SEMVER-MINOR)** **crypto**: enable SIV and GCM-SIV modes in
Cipher/Decipher APIs (Filip Skokan)
[#63411](https://redirect.github.com/nodejs/node/pull/63411)
-
\[[`5a46a9acbb`](https://redirect.github.com/nodejs/node/commit/5a46a9acbb)]
- **crypto**: improve SubtleCrypto.supports() accuracy (Filip Skokan)
[#65222](https://redirect.github.com/nodejs/node/pull/65222)
-
\[[`191ebfb26c`](https://redirect.github.com/nodejs/node/commit/191ebfb26c)]
- **crypto**: fix public PKCS8 export error (한국)
[#65609](https://redirect.github.com/nodejs/node/pull/65609)
-
\[[`b6d7ed372b`](https://redirect.github.com/nodejs/node/commit/b6d7ed372b)]
- **crypto**: fix private SPKI export error (Filip Skokan)
[#65550](https://redirect.github.com/nodejs/node/pull/65550)
-
\[[`79509c25a4`](https://redirect.github.com/nodejs/node/commit/79509c25a4)]
- **crypto**: correct CCM decryption FIPS error message (kyungrae)
[#65450](https://redirect.github.com/nodejs/node/pull/65450)
-
\[[`9adc87bc16`](https://redirect.github.com/nodejs/node/commit/9adc87bc16)]
- **crypto**: harden X509Certificate state (Filip Skokan)
[#65518](https://redirect.github.com/nodejs/node/pull/65518)
-
\[[`c63aa331b4`](https://redirect.github.com/nodejs/node/commit/c63aa331b4)]
- **crypto**: optimize key slot caching (Filip Skokan)
[#65518](https://redirect.github.com/nodejs/node/pull/65518)
-
\[[`87daea43a7`](https://redirect.github.com/nodejs/node/commit/87daea43a7)]
- **crypto**: add null checks for OPENSSL_INIT_new() (Nora Dossche)
[#63457](https://redirect.github.com/nodejs/node/pull/63457)
-
\[[`98ca5e9358`](https://redirect.github.com/nodejs/node/commit/98ca5e9358)]
- **crypto**: prevent Hmac.digest() from returning uninitialized memory
(Matteo Collina)
[#65112](https://redirect.github.com/nodejs/node/pull/65112)
-
\[[`0c090a28cd`](https://redirect.github.com/nodejs/node/commit/0c090a28cd)]
- **crypto**: avoid throwing CryptoKey brand checks (Filip Skokan)
[#65503](https://redirect.github.com/nodejs/node/pull/65503)
-
\[[`a13cc3f723`](https://redirect.github.com/nodejs/node/commit/a13cc3f723)]
- **crypto**: avoid throwing KeyObject brand checks (Filip Skokan)
[#65503](https://redirect.github.com/nodejs/node/pull/65503)
-
\[[`b8db0045ef`](https://redirect.github.com/nodejs/node/commit/b8db0045ef)]
- **deps**: V8: cherry-pick
[`ea9c016`](https://redirect.github.com/nodejs/node/commit/ea9c016f26ad)
(Gundepalli Sravani)
[#66570](https://redirect.github.com/nodejs/node/pull/66570)
-
\[[`ba09b53487`](https://redirect.github.com/nodejs/node/commit/ba09b53487)]
- **deps**: V8: backport
[`c355350`](https://redirect.github.com/nodejs/node/commit/c3553509f460)
(Jakob Linke)
[#66089](https://redirect.github.com/nodejs/node/pull/66089)
-
\[[`9ce8ef405b`](https://redirect.github.com/nodejs/node/commit/9ce8ef405b)]
- **deps**: V8: backport
[`8901c79`](https://redirect.github.com/nodejs/node/commit/8901c793e439)
(Toon Verwaest)
[#66089](https://redirect.github.com/nodejs/node/pull/66089)
-
\[[`fb0d0ca289`](https://redirect.github.com/nodejs/node/commit/fb0d0ca289)]
- **deps**: V8: backport
[`0b94a9f`](https://redirect.github.com/nodejs/node/commit/0b94a9fd23ba)
(Ruan Gustavo)
[#65753](https://redirect.github.com/nodejs/node/pull/65753)
-
\[[`2faca508c0`](https://redirect.github.com/nodejs/node/commit/2faca508c0)]
- **deps**: update googletest to
[`8eff9e3`](https://redirect.github.com/nodejs/node/commit/8eff9e336692fc95961e096564f1044c600b881d)
(Node.js GitHub Bot)
[#66009](https://redirect.github.com/nodejs/node/pull/66009)
-
\[[`4396c9bffe`](https://redirect.github.com/nodejs/node/commit/4396c9bffe)]
- **deps**: update googletest to
[`283c175`](https://redirect.github.com/nodejs/node/commit/283c17563fe7a1111cd7f581aa5d541e8baeff2f)
(Node.js GitHub Bot)
[#65833](https://redirect.github.com/nodejs/node/pull/65833)
-
\[[`8a5b12570c`](https://redirect.github.com/nodejs/node/commit/8a5b12570c)]
- **deps**: update simdjson to 4.6.11 (Node.js GitHub Bot)
[#65834](https://redirect.github.com/nodejs/node/pull/65834)
-
\[[`c47feb09e8`](https://redirect.github.com/nodejs/node/commit/c47feb09e8)]
- **deps**: update zlib to 1.3.2.1-motley-285e94b (Node.js GitHub Bot)
[#65835](https://redirect.github.com/nodejs/node/pull/65835)
-
\[[`9f0d905286`](https://redirect.github.com/nodejs/node/commit/9f0d905286)]
- **deps**: upgrade npm to 11.19.1 (npm team)
[#65573](https://redirect.github.com/nodejs/node/pull/65573)
-
\[[`373cd332d8`](https://redirect.github.com/nodejs/node/commit/373cd332d8)]
- **deps**: update googletest to
[`36ba75f`](https://redirect.github.com/nodejs/node/commit/36ba75f0ad5383a9759f17f3f72fd4661c72cb6d)
(Node.js GitHub Bot)
[#65654](https://redirect.github.com/nodejs/node/pull/65654)
-
\[[`aeed6132a7`](https://redirect.github.com/nodejs/node/commit/aeed6132a7)]
- **deps**: update simdjson to 4.6.9 (Node.js GitHub Bot)
[#65655](https://redirect.github.com/nodejs/node/pull/65655)
-
\[[`2583571342`](https://redirect.github.com/nodejs/node/commit/2583571342)]
- **deps**: update zlib to 1.3.2.1-motley-5eb4d7e (Node.js GitHub Bot)
[#65494](https://redirect.github.com/nodejs/node/pull/65494)
-
\[[`d11c65d2f2`](https://redirect.github.com/nodejs/node/commit/d11c65d2f2)]
- **doc**: add araujogui to collaborators (Guilherme Araújo)
[#66090](https://redirect.github.com/nodejs/node/pull/66090)
-
\[[`0a4a8d602a`](https://redirect.github.com/nodejs/node/commit/0a4a8d602a)]
- **doc**: fix duplicate 'the' typo in `node_platform.cc` (Muhammad
Al-Muzahid)
[#66058](https://redirect.github.com/nodejs/node/pull/66058)
-
\[[`b6538138ef`](https://redirect.github.com/nodejs/node/commit/b6538138ef)]
- **doc**: clarify sub-1000ms behavior in socket.setKeepAlive (Haram
Jeong)
[#65869](https://redirect.github.com/nodejs/node/pull/65869)
-
\[[`d319fa7de4`](https://redirect.github.com/nodejs/node/commit/d319fa7de4)]
- **doc**: remove obsolete mentioning of cl.exe on windows (Chengzhong
Wu) [#66038](https://redirect.github.com/nodejs/node/pull/66038)
-
\[[`67cb305b59`](https://redirect.github.com/nodejs/node/commit/67cb305b59)]
- **doc**: note that default signal handling resets the signal mask
(Shelley Vohr)
[#65877](https://redirect.github.com/nodejs/node/pull/65877)
-
\[[`160d44e025`](https://redirect.github.com/nodejs/node/commit/160d44e025)]
- **doc**: clarify QUIC async write backpressure (John Finnerty)
[#65947](https://redirect.github.com/nodejs/node/pull/65947)
-
\[[`ffd47a7ee5`](https://redirect.github.com/nodejs/node/commit/ffd47a7ee5)]
- **doc**: clarify permission model scope for output paths (Rafael
Gonzaga)
[#66004](https://redirect.github.com/nodejs/node/pull/66004)
-
\[[`2e1772a8ab`](https://redirect.github.com/nodejs/node/commit/2e1772a8ab)]
- **doc**: fill in missing zstd docs (James M Snell)
[#65867](https://redirect.github.com/nodejs/node/pull/65867)
-
\[[`9f88c6f8dc`](https://redirect.github.com/nodejs/node/commit/9f88c6f8dc)]
- **doc**: add inoway46 as triager (Yuya Inoue)
[#65565](https://redirect.github.com/nodejs/node/pull/65565)
-
\[[`c2620d01f3`](https://redirect.github.com/nodejs/node/commit/c2620d01f3)]
- **doc**: document windowsHide for child_process.fork (Christopher
Buss)
[#65887](https://redirect.github.com/nodejs/node/pull/65887)
-
\[[`6076111e1a`](https://redirect.github.com/nodejs/node/commit/6076111e1a)]
- **doc**: qualify directory read ordering for native fs (Trivikram
Kamat)
[#65868](https://redirect.github.com/nodejs/node/pull/65868)
-
\[[`7bf048a336`](https://redirect.github.com/nodejs/node/commit/7bf048a336)]
- **doc**: add DOMException section to errors API reference (Avocado)
[#65206](https://redirect.github.com/nodejs/node/pull/65206)
-
\[[`414b6bfa62`](https://redirect.github.com/nodejs/node/commit/414b6bfa62)]
- **doc**: expand revert commit collaborator instructions (Mike
McCready)
[#65848](https://redirect.github.com/nodejs/node/pull/65848)
-
\[[`c8ac91692c`](https://redirect.github.com/nodejs/node/commit/c8ac91692c)]
- **doc**: note that FreeEnvironment() runs a shared event loop (Shelley
Vohr)
[#65691](https://redirect.github.com/nodejs/node/pull/65691)
-
\[[`cc47cc0983`](https://redirect.github.com/nodejs/node/commit/cc47cc0983)]
- **doc**: clarify security triage dispositions and permission
boundaries (Rafael Gonzaga)
[#65436](https://redirect.github.com/nodejs/node/pull/65436)
-
\[[`8b79a71e78`](https://redirect.github.com/nodejs/node/commit/8b79a71e78)]
- **doc**: fix default limit of maxHeadersCount (Aryn H)
[#65472](https://redirect.github.com/nodejs/node/pull/65472)
-
\[[`56b1252a54`](https://redirect.github.com/nodejs/node/commit/56b1252a54)]
- **doc**: fix return types for sync methods (Chiang Fong Lee)
[#58575](https://redirect.github.com/nodejs/node/pull/58575)
-
\[[`da0d32a333`](https://redirect.github.com/nodejs/node/commit/da0d32a333)]
- **doc**: document REPL DEP0185 throws and uncaught-exception behavior
(Adrián Estrada)
[#64993](https://redirect.github.com/nodejs/node/pull/64993)
-
\[[`f8ab3619b6`](https://redirect.github.com/nodejs/node/commit/f8ab3619b6)]
- **doc**: document close() error when in a sqlite callback (Trivikram
Kamat)
[#65090](https://redirect.github.com/nodejs/node/pull/65090)
-
\[[`131f1db302`](https://redirect.github.com/nodejs/node/commit/131f1db302)]
- **doc**: clarify return type of `fs.mkdtemp*` (Antoine du Hamel)
[#65743](https://redirect.github.com/nodejs/node/pull/65743)
-
\[[`7755e98183`](https://redirect.github.com/nodejs/node/commit/7755e98183)]
- **doc**: update `changelog-maker` instructions for releasing (Juan
José)
[#65707](https://redirect.github.com/nodejs/node/pull/65707)
-
\[[`f982a53433`](https://redirect.github.com/nodejs/node/commit/f982a53433)]
- **doc**: add stability status to `crypto.setEngine` (Antoine du Hamel)
[#65746](https://redirect.github.com/nodejs/node/pull/65746)
-
\[[`17be003f7c`](https://redirect.github.com/nodejs/node/commit/17be003f7c)]
- **doc**: remove outdated TLS authorized warning (Tim Perry)
[#65597](https://redirect.github.com/nodejs/node/pull/65597)
-
\[[`424002232d`](https://redirect.github.com/nodejs/node/commit/424002232d)]
- **doc**: fix stale TOC in maintaining-dependencies (greenhead)
[#65523](https://redirect.github.com/nodejs/node/pull/65523)
-
\[[`dddb9b57a5`](https://redirect.github.com/nodejs/node/commit/dddb9b57a5)]
- **doc**: refactor the AI guidelines (Joyee Cheung)
[#65269](https://redirect.github.com/nodejs/node/pull/65269)
-
\[[`397b58e113`](https://redirect.github.com/nodejs/node/commit/397b58e113)]
- **doc**: fix triggerAsyncId() comment in async_hooks example
(soreavis)
[#64583](https://redirect.github.com/nodejs/node/pull/64583)
-
\[[`338ec94d83`](https://redirect.github.com/nodejs/node/commit/338ec94d83)]
- **doc**: fix fsPromises.watch overflow value (Matt Radbourne)
[#64605](https://redirect.github.com/nodejs/node/pull/64605)
-
\[[`f18be21b14`](https://redirect.github.com/nodejs/node/commit/f18be21b14)]
- **doc**: clarify stream direction in options.stdio note (Avocado)
[#65236](https://redirect.github.com/nodejs/node/pull/65236)
-
\[[`f07c6acd8b`](https://redirect.github.com/nodejs/node/commit/f07c6acd8b)]
- **doc**: clarify signal listener behavior (Som Samantray)
[#65243](https://redirect.github.com/nodejs/node/pull/65243)
-
\[[`8bc17b0c7a`](https://redirect.github.com/nodejs/node/commit/8bc17b0c7a)]
- **doc**: add test reporter event lifecycle diagram (sangwook)
[#63780](https://redirect.github.com/nodejs/node/pull/63780)
-
\[[`452e7477d4`](https://redirect.github.com/nodejs/node/commit/452e7477d4)]
- **doc**: discourage AbortSignal cleanup for long-lived resources (Efe
Karasakal)
[#64342](https://redirect.github.com/nodejs/node/pull/64342)
-
\[[`acc1578179`](https://redirect.github.com/nodejs/node/commit/acc1578179)]
- **doc**: deprecate `Server.prototype._listen2` in `node:net` (Antoine
du Hamel)
[#65593](https://redirect.github.com/nodejs/node/pull/65593)
-
\[[`e7ed4361d6`](https://redirect.github.com/nodejs/node/commit/e7ed4361d6)]
- **doc,test**: account for OpenSSL 4.1 behaviours (Filip Skokan)
[#65956](https://redirect.github.com/nodejs/node/pull/65956)
-
\[[`c65fafeab4`](https://redirect.github.com/nodejs/node/commit/c65fafeab4)]
- **errors**: validate constructor name (Christian Aurich)
[#65607](https://redirect.github.com/nodejs/node/pull/65607)
-
\[[`f6b47938b7`](https://redirect.github.com/nodejs/node/commit/f6b47938b7)]
- **events**: fix weak listener retention overwrite (Aryan)
[#64024](https://redirect.github.com/nodejs/node/pull/64024)
-
\[[`a27db42c3e`](https://redirect.github.com/nodejs/node/commit/a27db42c3e)]
- **fs**: coerce FileHandle.read length like fs.read (Xia Chao)
[#65521](https://redirect.github.com/nodejs/node/pull/65521)
-
\[[`f3019b522a`](https://redirect.github.com/nodejs/node/commit/f3019b522a)]
- **fs**: throw on existing dir in cpSync with errorOnExist (Daijiro
Wachi)
[#64124](https://redirect.github.com/nodejs/node/pull/64124)
-
\[[`cd1011458f`](https://redirect.github.com/nodejs/node/commit/cd1011458f)]
- **fs**: support removing read-only files in rmSync on Windows (Sparsh
:)) [#64453](https://redirect.github.com/nodejs/node/pull/64453)
-
\[[`d659dd8cd8`](https://redirect.github.com/nodejs/node/commit/d659dd8cd8)]
- **fs**: give directories created by cpSync the source directory's mode
(Shelley Vohr)
[#65488](https://redirect.github.com/nodejs/node/pull/65488)
-
\[[`1dfb047293`](https://redirect.github.com/nodejs/node/commit/1dfb047293)]
- **fs**: handle recursive watch setup races (Filip Skokan)
[#65699](https://redirect.github.com/nodejs/node/pull/65699)
-
\[[`bc431c8413`](https://redirect.github.com/nodejs/node/commit/bc431c8413)]
- **fs**: apply nocase to literal glob exclude patterns (Yusuke Hayashi)
[#64817](https://redirect.github.com/nodejs/node/pull/64817)
-
\[[`dd5662e641`](https://redirect.github.com/nodejs/node/commit/dd5662e641)]
- **fs**: do not descend into symlinks for \*\* unless following
symlinks (RafaelGSS)
[#65435](https://redirect.github.com/nodejs/node/pull/65435)
-
\[[`ac4cf54292`](https://redirect.github.com/nodejs/node/commit/ac4cf54292)]
- **fs**: watch directories, not files, in recursive fs.watch fallback
(Shelley Vohr)
[#65486](https://redirect.github.com/nodejs/node/pull/65486)
-
\[[`7804bfbd71`](https://redirect.github.com/nodejs/node/commit/7804bfbd71)]
- **fs**: preserve directory timestamps in cp (Abhinandan Kumar)
[#65540](https://redirect.github.com/nodejs/node/pull/65540)
-
\[[`ba5ca5a1a5`](https://redirect.github.com/nodejs/node/commit/ba5ca5a1a5)]
- **fs**: fix recursive watch error handling (Filip Skokan)
[#65635](https://redirect.github.com/nodejs/node/pull/65635)
-
\[[`b71c4c0551`](https://redirect.github.com/nodejs/node/commit/b71c4c0551)]
- **fs**: fix rmSync error messages for non-ASCII paths (Yeaseen)
[#61233](https://redirect.github.com/nodejs/node/pull/61233)
-
\[[`53b4700892`](https://redirect.github.com/nodejs/node/commit/53b4700892)]
- **http**: don't destroy socket after request completes (Barath Raj)
[#65952](https://redirect.github.com/nodejs/node/pull/65952)
-
\[[`96d4c23f17`](https://redirect.github.com/nodejs/node/commit/96d4c23f17)]
- **http**: fast-forward teardown of unread messages (Matteo Collina)
[#65732](https://redirect.github.com/nodejs/node/pull/65732)
-
\[[`742b4bf5a6`](https://redirect.github.com/nodejs/node/commit/742b4bf5a6)]
- **http**: coalesce chunked writes during auto-corking (GetThatCookie)
[#64987](https://redirect.github.com/nodejs/node/pull/64987)
-
\[[`8921108175`](https://redirect.github.com/nodejs/node/commit/8921108175)]
- **http2**: settle pending write callbacks on destroy (Matteo Collina)
[#66016](https://redirect.github.com/nodejs/node/pull/66016)
-
\[[`9a2f77a3fc`](https://redirect.github.com/nodejs/node/commit/9a2f77a3fc)]
- **http2**: fix onread assert when destroying session from stream
handler (Sankalp Thakur)
[#65116](https://redirect.github.com/nodejs/node/pull/65116)
-
\[[`99e41eb43a`](https://redirect.github.com/nodejs/node/commit/99e41eb43a)]
- **http2**: error for incomplete reads on RST, auto-drain, deprecate
aborted (Tim Perry)
[#63249](https://redirect.github.com/nodejs/node/pull/63249)
-
\[[`d520b9601c`](https://redirect.github.com/nodejs/node/commit/d520b9601c)]
- **http2**: fix write deadlock exposed by larger window sizes (Tim
Perry)
[#65440](https://redirect.github.com/nodejs/node/pull/65440)
-
\[[`86b2497aae`](https://redirect.github.com/nodejs/node/commit/86b2497aae)]
- **http2**: fix async context loss when trailers carry END_STREAM
(Orgad Shaneh)
[#63814](https://redirect.github.com/nodejs/node/pull/63814)
-
\[[`536ccc7daf`](https://redirect.github.com/nodejs/node/commit/536ccc7daf)]
- **https**: limit proxy CONNECT response headers (Matteo Collina)
[#64545](https://redirect.github.com/nodejs/node/pull/64545)
-
\[[`fe6147832b`](https://redirect.github.com/nodejs/node/commit/fe6147832b)]
- **inspector**: fix abort when two Environments own the inspector
(Shelley Vohr)
[#65877](https://redirect.github.com/nodejs/node/pull/65877)
-
\[[`843a27782a`](https://redirect.github.com/nodejs/node/commit/843a27782a)]
- **inspector**: fix crash when the IsolateData has no platform (Shelley
Vohr)
[#65818](https://redirect.github.com/nodejs/node/pull/65818)
-
\[[`3f0b6d3308`](https://redirect.github.com/nodejs/node/commit/3f0b6d3308)]
- **lib**: avoid repeat internal receiver checks (Filip Skokan)
[#65910](https://redirect.github.com/nodejs/node/pull/65910)
-
\[[`0039479b4a`](https://redirect.github.com/nodejs/node/commit/0039479b4a)]
- **lib**: fix shared buffer growability validation (Filip Skokan)
[#65845](https://redirect.github.com/nodejs/node/pull/65845)
-
\[[`e7907130ae`](https://redirect.github.com/nodejs/node/commit/e7907130ae)]
- **lib**: use Web IDL interface brand checks (Filip Skokan)
[#65846](https://redirect.github.com/nodejs/node/pull/65846)
-
\[[`7ae085552b`](https://redirect.github.com/nodejs/node/commit/7ae085552b)]
- **lib**: fix AbortSignal.any() abort propagation (Yuya Inoue)
[#66014](https://redirect.github.com/nodejs/node/pull/66014)
-
\[[`01032f4fdc`](https://redirect.github.com/nodejs/node/commit/01032f4fdc)]
- **lib**: fix for FileHandle.readableWebStream (Patrick Dähne)
[#58842](https://redirect.github.com/nodejs/node/pull/58842)
-
\[[`60a9a28206`](https://redirect.github.com/nodejs/node/commit/60a9a28206)]
- **lib**: avoid unsafe array iteration in cli table (Donghoon Kang)
[#65838](https://redirect.github.com/nodejs/node/pull/65838)
-
\[[`230a7fcef0`](https://redirect.github.com/nodejs/node/commit/230a7fcef0)]
- **lib**: optimize internal Web IDL dictionaries (Filip Skokan)
[#65857](https://redirect.github.com/nodejs/node/pull/65857)
-
\[[`7cc02b14ec`](https://redirect.github.com/nodejs/node/commit/7cc02b14ec)]
- **lib**: validate sequence iterator objects (Filip Skokan)
[#65844](https://redirect.github.com/nodejs/node/pull/65844)
-
\[[`c2bb3aeccc`](https://redirect.github.com/nodejs/node/commit/c2bb3aeccc)]
- **lib**: defer source map payload decoding until first use (Shelley
Vohr)
[#65490](https://redirect.github.com/nodejs/node/pull/65490)
-
\[[`c4b390cf17`](https://redirect.github.com/nodejs/node/commit/c4b390cf17)]
- **lib**: optimize async context frame activation (Tim Perry)
[#65519](https://redirect.github.com/nodejs/node/pull/65519)
-
\[[`3e4fc50a4f`](https://redirect.github.com/nodejs/node/commit/3e4fc50a4f)]
- **lib**: use validateArray for array arguments (JunHwan Choi)
[#65344](https://redirect.github.com/nodejs/node/pull/65344)
-
\[[`b351ac9cd4`](https://redirect.github.com/nodejs/node/commit/b351ac9cd4)]
- **meta**: bump step-security/harden-runner from 2.21.0 to 2.21.1
(dependabot\[bot])
[#66044](https://redirect.github.com/nodejs/node/pull/66044)
-
\[[`693e890fec`](https://redirect.github.com/nodejs/node/commit/693e890fec)]
- **meta**: bump github/codeql-action/upload-sarif from 4.37.9 to 4.38.0
(dependabot\[bot])
[#66046](https://redirect.github.com/nodejs/node/pull/66046)
-
\[[`9c2abc13c2`](https://redirect.github.com/nodejs/node/commit/9c2abc13c2)]
- **meta**: bump github/codeql-action/init from 4.37.9 to 4.38.0
(dependabot\[bot])
[#66048](https://redirect.github.com/nodejs/node/pull/66048)
-
\[[`b3c5c2b91d`](https://redirect.github.com/nodejs/node/commit/b3c5c2b91d)]
- **meta**: bump github/codeql-action/analyze from 4.37.9 to 4.38.0
(dependabot\[bot])
[#66049](https://redirect.github.com/nodejs/node/pull/66049)
-
\[[`2428b13b02`](https://redirect.github.com/nodejs/node/commit/2428b13b02)]
- **meta**: bump github/codeql-action/autobuild from 4.37.9 to 4.38.0
(dependabot\[bot])
[#66050](https://redirect.github.com/nodejs/node/pull/66050)
-
\[[`eff5d15041`](https://redirect.github.com/nodejs/node/commit/eff5d15041)]
- **meta**: add joyeecheung as v8 currency strategic initiative champion
(Joyee Cheung)
[#65965](https://redirect.github.com/nodejs/node/pull/65965)
-
\[[`aa549fed0d`](https://redirect.github.com/nodejs/node/commit/aa549fed0d)]
- **meta**: expand on collaborator restoration process (Chengzhong Wu)
[#65962](https://redirect.github.com/nodejs/node/pull/65962)
-
\[[`593b40eb2b`](https://redirect.github.com/nodejs/node/commit/593b40eb2b)]
- **meta**: add web-standards as webidl owners (Filip Skokan)
[#65856](https://redirect.github.com/nodejs/node/pull/65856)
-
\[[`e711d3fef3`](https://redirect.github.com/nodejs/node/commit/e711d3fef3)]
- **meta**: bump actions/checkout from 7.0.0 to 7.0.1 (dependabot\[bot])
[#65718](https://redirect.github.com/nodejs/node/pull/65718)
-
\[[`0fc8a38f5b`](https://redirect.github.com/nodejs/node/commit/0fc8a38f5b)]
- **meta**: cleanup targos emeritus changes (Antoine du Hamel)
[#65738](https://redirect.github.com/nodejs/node/pull/65738)
-
\[[`2ca2fd566d`](https://redirect.github.com/nodejs/node/commit/2ca2fd566d)]
- **meta**: bump github/codeql-action/init from 4.37.3 to 4.37.9
(dependabot\[bot])
[#65714](https://redirect.github.com/nodejs/node/pull/65714)
-
\[[`325709818e`](https://redirect.github.com/nodejs/node/commit/325709818e)]
- **meta**: bump github/codeql-action/autobuild from 4.37.3 to 4.37.9
(dependabot\[bot])
[#65717](https://redirect.github.com/nodejs/node/pull/65717)
-
\[[`8481d22f72`](https://redirect.github.com/nodejs/node/commit/8481d22f72)]
- **meta**: bump actions/setup-node from 6.4.0 to 7.0.0
(dependabot\[bot])
[#65720](https://redirect.github.com/nodejs/node/pull/65720)
-
\[[`cd2bd5d9fd`](https://redirect.github.com/nodejs/node/commit/cd2bd5d9fd)]
- **meta**: bump step-security/harden-runner from 2.20.0 to 2.21.0
(dependabot\[bot])
[#65721](https://redirect.github.com/nodejs/node/pull/65721)
-
\[[`fdec747105`](https://redirect.github.com/nodejs/node/commit/fdec747105)]
- **meta**: bump github/codeql-action/upload-sarif from 4.37.3 to 4.37.9
(dependabot\[bot])
[#65722](https://redirect.github.com/nodejs/node/pull/65722)
-
\[[`34c2fca088`](https://redirect.github.com/nodejs/node/commit/34c2fca088)]
- **meta**: bump github/codeql-action/analyze from 4.37.3 to 4.37.9
(dependabot\[bot])
[#65723](https://redirect.github.com/nodejs/node/pull/65723)
-
\[[`46d4549938`](https://redirect.github.com/nodejs/node/commit/46d4549938)]
- **meta**: document collaborator automation (Filip Skokan)
[#65671](https://redirect.github.com/nodejs/node/pull/65671)
-
\[[`a7f8de6362`](https://redirect.github.com/nodejs/node/commit/a7f8de6362)]
- **(SEMVER-MINOR)** **net**: support sending net.BoundSocket to threads
and child processes (Guy Bedford)
[#64725](https://redirect.github.com/nodejs/node/pull/64725)
-
\[[`466f1f8e62`](https://redirect.github.com/nodejs/node/commit/466f1f8e62)]
- **net**: fix BlockList.fromJSON for IPv4-mapped IPv6 rules (Daijiro
Wachi)
[#64125](https://redirect.github.com/nodejs/node/pull/64125)
-
\[[`cd04cb10d6`](https://redirect.github.com/nodejs/node/commit/cd04cb10d6)]
- **net**: recognize bare IPv6 loopback addresses in isLoopback (Daijiro
Wachi)
[#63619](https://redirect.github.com/nodejs/node/pull/63619)
-
\[[`d983942636`](https://redirect.github.com/nodejs/node/commit/d983942636)]
- **node-api**: make object property arrays const (Yilong Li)
[#65621](https://redirect.github.com/nodejs/node/pull/65621)
-
\[[`cc124394cc`](https://redirect.github.com/nodejs/node/commit/cc124394cc)]
- **path**: remove `StringPrototypeCharCodeAt` from some methods of
`posix` (Wiyeong Seo)
[#54668](https://redirect.github.com/nodejs/node/pull/54668)
-
\[[`60c3eb61bd`](https://redirect.github.com/nodejs/node/commit/60c3eb61bd)]
- **(SEMVER-MINOR)** **perf_hooks**: implement SlidingWindowHistogram
(James M Snell)
[#65825](https://redirect.github.com/nodejs/node/pull/65825)
-
\[[`6b3e6f9d5c`](https://redirect.github.com/nodejs/node/commit/6b3e6f9d5c)]
- **(SEMVER-MINOR)** **perf_hooks**: implement qrde analysis support in
Histogram (James M Snell)
[#65806](https://redirect.github.com/nodejs/node/pull/65806)
-
\[[`8aa870940c`](https://redirect.github.com/nodejs/node/commit/8aa870940c)]
- **perf_hooks**: reuse buffer for uv metrics (Donghoon Kang)
[#65985](https://redirect.github.com/nodejs/node/pull/65985)
-
\[[`9cfbfae660`](https://redirect.github.com/nodejs/node/commit/9cfbfae660)]
- **perf_hooks**: validate import normalization offset (Matteo Collina)
[#65950](https://redirect.github.com/nodejs/node/pull/65950)
-
\[[`75456a3512`](https://redirect.github.com/nodejs/node/commit/75456a3512)]
- **(SEMVER-MINOR)** **perf_hooks**: implement Histogram meanCI API
(James M Snell)
[#65606](https://redirect.github.com/nodejs/node/pull/65606)
-
\[[`127cb31864`](https://redirect.github.com/nodejs/node/commit/127cb31864)]
- **perf_hooks**: add missing resource timing attributes (greenhead)
[#65017](https://redirect.github.com/nodejs/node/pull/65017)
-
\[[`72d1b40c56`](https://redirect.github.com/nodejs/node/commit/72d1b40c56)]
- **(SEMVER-MINOR)** **perf_hooks**: add CBOR export/import for
histogram exchange (James M Snell)
[#65434](https://redirect.github.com/nodejs/node/pull/65434)
-
\[[`847fe4d049`](https://redirect.github.com/nodejs/node/commit/847fe4d049)]
- **permission**: block FileHandle fsync and fdatasync (Rafael Gonzaga)
[#65431](https://redirect.github.com/nodejs/node/pull/65431)
-
\[[`fa9188bd63`](https://redirect.github.com/nodejs/node/commit/fa9188bd63)]
- **quic**: fix two small bugs in HTTP/3 stream internals (Tim Perry)
[#65970](https://redirect.github.com/nodejs/node/pull/65970)
-
\[[`ee80beaa9f`](https://redirect.github.com/nodejs/node/commit/ee80beaa9f)]
- **quic**: fix crash in onStreamClose (Marten Richter)
[#65861](https://redirect.github.com/nodejs/node/pull/65861)
-
\[[`98486dd764`](https://redirect.github.com/nodejs/node/commit/98486dd764)]
- **quic**: reject zero addressLRUSize (Christian Aurich)
[#65827](https://redirect.github.com/nodejs/node/pull/65827)
-
\[[`97516fc256`](https://redirect.github.com/nodejs/node/commit/97516fc256)]
- **quic**: stop guarding ngtcp2_recv_stop_sending callback field (René)
[#65688](https://redirect.github.com/nodejs/node/pull/65688)
-
\[[`024bef25eb`](https://redirect.github.com/nodejs/node/commit/024bef25eb)]
- **quic**: remove unused fin flag from blob reader wakeup (trivenay)
[#65315](https://redirect.github.com/nodejs/node/pull/65315)
-
\[[`5468337456`](https://redirect.github.com/nodejs/node/commit/5468337456)]
- **quic**: release stream arenas before cleanup (Trivikram Kamat)
[#65410](https://redirect.github.com/nodejs/node/pull/65410)
-
\[[`a794e36970`](https://redirect.github.com/nodejs/node/commit/a794e36970)]
- **sqlite**: throw on invalid URL path instead of abort (Guilherme
Araújo)
[#66026](https://redirect.github.com/nodejs/node/pull/66026)
-
\[[`f58a55b8d0`](https://redirect.github.com/nodejs/node/commit/f58a55b8d0)]
- **sqlite**: add diagnostic channel (Guilherme Araújo)
[#62241](https://redirect.github.com/nodejs/node/pull/62241)
-
\[[`be849bc6af`](https://redirect.github.com/nodejs/node/commit/be849bc6af)]
- **sqlite**: reject connection access from authorizer callbacks (Trevor
Burnham)
[#65156](https://redirect.github.com/nodejs/node/pull/65156)
-
\[[`41161dda87`](https://redirect.github.com/nodejs/node/commit/41161dda87)]
- **(SEMVER-MINOR)** **sqlite**: add StatementSync.prototype.close()
(Guilherme Araújo)
[#64232](https://redirect.github.com/nodejs/node/pull/64232)
-
\[[`adbc757d70`](https://redirect.github.com/nodejs/node/commit/adbc757d70)]
- **(SEMVER-MINOR)** **sqlite**: add
StatementSync.prototype\[Symbol.dispose]\() (Guilherme Araújo)
[#64232](https://redirect.github.com/nodejs/node/pull/64232)
-
\[[`b7b18fdbc9`](https://redirect.github.com/nodejs/node/commit/b7b18fdbc9)]
- **sqlite**: run backup completion in callback scope (Filip Skokan)
[#65666](https://redirect.github.com/nodejs/node/pull/65666)
-
\[[`59827acd7f`](https://redirect.github.com/nodejs/node/commit/59827acd7f)]
- **sqlite**: isolate applyChangeset filter errors (Trivikram Kamat)
[#64823](https://redirect.github.com/nodejs/node/pull/64823)
-
\[[`5a01df2d15`](https://redirect.github.com/nodejs/node/commit/5a01df2d15)]
- **sqlite**: reject deserialize() while in a callback (Trivikram Kamat)
[#64796](https://redirect.github.com/nodejs/node/pull/64796)
-
\[[`c9b6e75a2e`](https://redirect.github.com/nodejs/node/commit/c9b6e75a2e)]
- **sqlite**: refactor error helpers and user function pointers (Ali
Hassan)
[#62794](https://redirect.github.com/nodejs/node/pull/62794)
-
\[[`d4eb6c62a9`](https://redirect.github.com/nodejs/node/commit/d4eb6c62a9)]
- **sqlite**: prevent database close during callbacks (Matteo Collina)
[#64743](https://redirect.github.com/nodejs/node/pull/64743)
-
\[[`83b3431c25`](https://redirect.github.com/nodejs/node/commit/83b3431c25)]
- **src**: detach cppgc wrappers from their Realm before it is freed
(Shelley Vohr)
[#65778](https://redirect.github.com/nodejs/node/pull/65778)
-
\[[`13ed7e35e7`](https://redirect.github.com/nodejs/node/commit/13ed7e35e7)]
- **src**: list scripts when `--run` has no command (James Ross)
[#64606](https://redirect.github.com/nodejs/node/pull/64606)
-
\[[`0f62f2b2df`](https://redirect.github.com/nodejs/node/commit/0f62f2b2df)]
- **src**: print exception thrown during primordial initialization
(Joyee Cheung)
[#65991](https://redirect.github.com/nodejs/node/pull/65991)
-
\[[`70117640f7`](https://redirect.github.com/nodejs/node/commit/70117640f7)]
- **src**: don't kill own process group on failed spawn (Lazizbek
Ergashev)
[#65054](https://redirect.github.com/nodejs/node/pull/65054)
-
\[[`64649abfd4`](https://redirect.github.com/nodejs/node/commit/64649abfd4)]
- **src**: keep the first snapshot blob alive for later isolates
(Shelley Vohr)
[#65779](https://redirect.github.com/nodejs/node/pull/65779)
-
\[[`3c814e8c3c`](https://redirect.github.com/nodejs/node/commit/3c814e8c3c)]
- **src**: fix Stop() terminating the next Environment on the isolate
(Shelley Vohr)
[#65819](https://redirect.github.com/nodejs/node/pull/65819)
-
\[[`a3ababcebb`](https://redirect.github.com/nodejs/node/commit/a3ababcebb)]
- **src**: fix null pointer call when running without a startup snapshot
(Shelley Vohr)
[#65820](https://redirect.github.com/nodejs/node/pull/65820)
-
\[[`7331f5cfcc`](https://redirect.github.com/nodejs/node/commit/7331f5cfcc)]
- **src**: stop leaking a CppHeap in CommonEnvironmentSetup (Shelley
Vohr)
[#65792](https://redirect.github.com/nodejs/node/pull/65792)
-
\[[`5570a84048`](https://redirect.github.com/nodejs/node/commit/5570a84048)]
- **src**: fix use-after-free in CleanupHookThunkRun (Caleb Everett)
[#65630](https://redirect.github.com/nodejs/node/pull/65630)
-
\[[`abe1b673e9`](https://redirect.github.com/nodejs/node/commit/abe1b673e9)]
- **src**: keep global list of addon-provided cleanup hooks (Anna
Henningsen)
[#63985](https://redirect.github.com/nodejs/node/pull/63985)
-
\[[`2203ac9382`](https://redirect.github.com/nodejs/node/commit/2203ac9382)]
- **src**: fix startup snapshot reproducibility of InternalFieldInfo
(Chengzhong Wu)
[#65684](https://redirect.github.com/nodejs/node/pull/65684)
-
\[[`b282765d99`](https://redirect.github.com/nodejs/node/commit/b282765d99)]
- **src**: fix live lock between environments with blocked requests
(Ilyas Shabi)
[#65520](https://redirect.github.com/nodejs/node/pull/65520)
-
\[[`61ca3ba93c`](https://redirect.github.com/nodejs/node/commit/61ca3ba93c)]
- **src**: apply IsolateSettings when using a snapshot (Shelley Vohr)
[#65407](https://redirect.github.com/nodejs/node/pull/65407)
-
\[[`33b8d6e10f`](https://redirect.github.com/nodejs/node/commit/33b8d6e10f)]
- **src**: add re-entrancy guard to TriggerUncaughtException (Temuulen
Undrakhbayar)
[#64327](https://redirect.github.com/nodejs/node/pull/64327)
-
\[[`49232db71e`](https://redirect.github.com/nodejs/node/commit/49232db71e)]
- **src**: reuse cached strings in CompileSerializeMain (agape1225)
[#65453](https://redirect.github.com/nodejs/node/pull/65453)
-
\[[`e3f52b80a5`](https://redirect.github.com/nodejs/node/commit/e3f52b80a5)]
- **src**: report libuv error when openAsBlob cannot stat (Paul Bouchon)
[#65517](https://redirect.github.com/nodejs/node/pull/65517)
-
\[[`42a5a19027`](https://redirect.github.com/nodejs/node/commit/42a5a19027)]
- **src**: shave about 20 bytes off each TLSWrap instance (James M
Snell)
[#65144](https://redirect.github.com/nodejs/node/pull/65144)
-
\[[`a06bb51e22`](https://redirect.github.com/nodejs/node/commit/a06bb51e22)]
- **src**: use UTF-8 for task runner filesystem paths (Archkon)
[#64868](https://redirect.github.com/nodejs/node/pull/64868)
-
\[[`241339f072`](https://redirect.github.com/nodejs/node/commit/241339f072)]
- **(SEMVER-MINOR)** **src,lib**: add util.markPromiseAsHandled (James M
Snell)
[#65805](https://redirect.github.com/nodejs/node/pull/65805)
-
\[[`1260642ace`](https://redirect.github.com/nodejs/node/commit/1260642ace)]
- **stream**: destroy Duplex.from async function on early return (Aman
Chadha(IVIXMMI))
[#65963](https://redirect.github.com/nodejs/node/pull/65963)
-
\[[`5f06defdbd`](https://redirect.github.com/nodejs/node/commit/5f06defdbd)]
- **stream**: make share budget failures detach before throwing (James M
Snell)
[#66028](https://redirect.github.com/nodejs/node/pull/66028)
-
\[[`d1c60d898d`](https://redirect.github.com/nodejs/node/commit/d1c60d898d)]
- **stream**: update broadcast to retain buffered data with zero
consumers (James M Snell)
[#66028](https://redirect.github.com/nodejs/node/pull/66028)
-
\[[`bbb00558c5`](https://redirect.github.com/nodejs/node/commit/bbb00558c5)]
- **stream**: avoid promise allocation for parked transform writes
(Matteo Collina)
[#65625](https://redirect.github.com/nodejs/node/pull/65625)
-
\[[`3216bc3912`](https://redirect.github.com/nodejs/node/commit/3216bc3912)]
- **stream**: keep webstream stream states in fast-mode objects (Matteo
Collina)
[#65625](https://redirect.github.com/nodejs/node/pull/65625)
-
\[[`70c1415686`](https://redirect.github.com/nodejs/node/commit/70c1415686)]
- **stream**: reject closed only after sink abort settles (Lazizbek
Ergashev)
[#65727](https://redirect.github.com/nodejs/node/pull/65727)
-
\[[`f8737b8ee5`](https://redirect.github.com/nodejs/node/commit/f8737b8ee5)]
- **stream**: fix ERR_INVALID_STATE when cancelling Readable.toWeb()
(Richard Scarrott)
[#62773](https://redirect.github.com/nodejs/node/pull/62773)
-
\[[`faa16f671c`](https://redirect.github.com/nodejs/node/commit/faa16f671c)]
- **stream**: amortize writable buffer compaction (Gürgün Dayıoğlu)
[#65847](https://redirect.github.com/nodejs/node/pull/65847)
-
\[[`6262e0b8c6`](https://redirect.github.com/nodejs/node/commit/6262e0b8c6)]
- **stream**: create write request objects lazily (Matteo Collina)
[#64455](https://redirect.github.com/nodejs/node/pull/64455)
-
\[[`0f0566de15`](https://redirect.github.com/nodejs/node/commit/0f0566de15)]
- **stream**: allocate stream read buffers from a slab (Matteo Collina)
[#64455](https://redirect.github.com/nodejs/node/pull/64455)
-
\[[`02c776a7c6`](https://redirect.github.com/nodejs/node/commit/02c776a7c6)]
- **stream**: ensure that stateful transforms preserve this (James M
Snell)
[#65658](https://redirect.github.com/nodejs/node/pull/65658)
-
\[[`4b29051971`](https://redirect.github.com/nodejs/node/commit/4b29051971)]
- **stream**: fix nested async flushing with infinite sources (James M
Snell)
[#65658](https://redirect.github.com/nodejs/node/pull/65658)
-
\[[`2e54186d97`](https://redirect.github.com/nodejs/node/commit/2e54186d97)]
- **stream**: ensure from() observes returned rejecting promise
correctly (James M Snell)
[#65658](https://redirect.github.com/nodejs/node/pull/65658)
-
\[[`fd68d5ca6a`](https://redirect.github.com/nodejs/node/commit/fd68d5ca6a)]
- **stream**: apply source normalization once at call time (James M
Snell)
[#65658](https://redirect.github.com/nodejs/node/pull/65658)
-
\[[`49ee85b462`](https://redirect.github.com/nodejs/node/commit/49ee85b462)]
- **stream**: make pipeTo source normalization independent of Writer
(James M Snell)
[#65658](https://redirect.github.com/nodejs/node/pull/65658)
-
\[[`d7d0440f08`](https://redirect.github.com/nodejs/node/commit/d7d0440f08)]
- **stream**: pre-aborted pipeTo now applies dest failure handling
(James M Snell)
[#65658](https://redirect.github.com/nodejs/node/pull/65658)
-
\[[`6d8e643ef3`](https://redirect.github.com/nodejs/node/commit/6d8e643ef3)]
- **stream**: ensure async dispoal after endSync awaits for drain (James
M Snell)
[#65658](https://redirect.github.com/nodejs/node/pull/65658)
-
\[[`a082916c00`](https://redirect.github.com/nodejs/node/commit/a082916c00)]
- **stream**: ensure factory signals remain active through closing
(James M Snell)
[#65658](https://redirect.github.com/nodejs/node/pull/65658)
-
\[[`38829295a7`](https://redirect.github.com/nodejs/node/commit/38829295a7)]
- **stream**: skip unobserved 'readable' emission at EOF (Matteo
Collina)
[#65749](https://redirect.github.com/nodejs/node/pull/65749)
-
\[[`d535859c22`](https://redirect.github.com/nodejs/node/commit/d535859c22)]
- **stream**: avoid per-chunk promises in webstream adapters (Matteo
Collina)
[#65548](https://redirect.github.com/nodejs/node/pull/65548)
-
\[[`80568f6818`](https://redirect.github.com/nodejs/node/commit/80568f6818)]
- **stream**: address stream/iter review feedback (James M Snell)
[#65652](https://redirect.github.com/nodejs/node/pull/65652)
-
\[[`6952928f68`](https://redirect.github.com/nodejs/node/commit/6952928f68)]
- **stream**: replace object sentinel with symbol (James M Snell)
[#65652](https://redirect.github.com/nodejs/node/pull/65652)
-
\[[`9c22c4124c`](https://redirect.github.com/nodejs/node/commit/9c22c4124c)]
- **stream**: cancel active stream/iter pulls (James M Snell)
[#65652](https://redirect.github.com/nodejs/node/pull/65652)
-
\[[`24d87990cf`](https://redirect.github.com/nodejs/node/commit/24d87990cf)]
- **stream**: fix merge settlement tagging and falsy error tracking
(James M Snell)
[#65652](https://redirect.github.com/nodejs/node/pull/65652)
-
\[[`1e215c4b51`](https://redirect.github.com/nodejs/node/commit/1e215c4b51)]
- **stream**: ensure full-close semantics when closed (James M Snell)
[#65652](https://redirect.github.com/nodejs/node/pull/65652)
-
\[[`f499d6fadf`](https://redirect.github.com/nodejs/node/commit/f499d6fadf)]
- **stream**: fixup writer to terminate on consumer return/throw (James
M Snell)
[#65652](https://redirect.github.com/nodejs/node/pull/65652)
-
\[[`2130738033`](https://redirect.github.com/nodejs/node/commit/2130738033)]
- **stream**: ensure iterator cleanup on done, reject, etc (James M
Snell)
[#65652](https://redirect.github.com/nodejs/node/pull/65652)
-
\[[`748adc6275`](https://redirect.github.com/nodejs/node/commit/748adc6275)]
- **stream**: fixup cancelation handling in pull() (James M Snell)
[#65652](https://redirect.github.com/nodejs/node/pull/65652)
-
\[[`47b3f6a1fa`](https://redirect.github.com/nodejs/node/commit/47b3f6a1fa)]
- **stream**: fix early drain after Utf8Stream reopen (Matteo Collina)
[#65633](https://redirect.github.com/nodejs/node/pull/65633)
-
\[[`6dab5412cf`](https://redirect.github.com/nodejs/node/commit/6dab5412cf)]
- **test**: skip RSA-PSS keygen deprecation tests with BoringSSL
(Shelley Vohr)
[#65808](https://redirect.github.com/nodejs/node/pull/65808)
-
\[[`95d9a25b61`](https://redirect.github.com/nodejs/node/commit/95d9a25b61)]
- **test**: consolidate crypto provider cache coverage (Filip Skokan)
[#66108](https://redirect.github.com/nodejs/node/pull/66108)
-
\[[`612db6d5b2`](https://redirect.github.com/nodejs/node/commit/612db6d5b2)]
- **test**: deflake user timing WPT assertions (Filip Skokan)
[#66036](https://redirect.github.com/nodejs/node/pull/66036)
-
\[[`61a73d31eb`](https://redirect.github.com/nodejs/node/commit/61a73d31eb)]
- **test**: fix RSA/DSA wrong-passphrase flake (Filip Skokan)
[#65983](https://redirect.github.com/nodejs/node/pull/65983)
-
\[[`d9f4a3ee3e`](https://redirect.github.com/nodejs/node/commit/d9f4a3ee3e)]
- **test**: reuse fixed primes in DH tests (Filip Skokan)
[#65980](https://redirect.github.com/nodejs/node/pull/65980)
-
\[[`a0fd0a8bd6`](https://redirect.github.com/nodejs/node/commit/a0fd0a8bd6)]
- **test**: use named parameters in DH stress test (Filip Skokan)
[#65980](https://redirect.github.com/
> [!IMPORTANT]
> ✂ PR body was truncated to here.
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/prometheus/client_java).
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
mise.lock | 30 +++++++++++++++---------------
1 file changed, 15 insertions(+), 15 deletions(-)
diff --git a/mise.lock b/mise.lock
index fb98b798f8..78f388daa1 100644
--- a/mise.lock
+++ b/mise.lock
@@ -594,37 +594,37 @@ url = "https://github.com/lycheeverse/lychee/releases/download/lychee-v0.24.2/ly
url_api = "https://api.github.com/repos/lycheeverse/lychee/releases/assets/409959491"
[[tools.node]]
-version = "24.21.0"
+version = "24.22.0"
backend = "core:node"
specifiers = ["lts"]
[tools.node."platforms.linux-arm64"]
-checksum = "sha256:724282c3b43aec998aa9527380465b45d229e021b58035f5f4f63095eabfe5d5"
-url = "https://nodejs.org/dist/v24.21.0/node-v24.21.0-linux-arm64.tar.gz"
+checksum = "sha256:b7e7991d5407815adfa74a2a9cd4db683552c8ce32ff4a295c22e972849c3f5d"
+url = "https://nodejs.org/dist/v24.22.0/node-v24.22.0-linux-arm64.tar.gz"
[tools.node."platforms.linux-arm64-musl"]
-checksum = "sha256:3048b0811e158ca0d8672b59c839861763e144492980d8d29b369dfee45747e4"
-url = "https://unofficial-builds.nodejs.org/download/release/v24.21.0/node-v24.21.0-linux-arm64-musl.tar.gz"
+checksum = "sha256:6812a53e5b37fbc32476d6c3511038d2bc3bbd1b3bb348d6c04dd2c70a1c8f4a"
+url = "https://unofficial-builds.nodejs.org/download/release/v24.22.0/node-v24.22.0-linux-arm64-musl.tar.gz"
[tools.node."platforms.linux-x64"]
-checksum = "sha256:6e1db87ef58b8819e5d5402eff1536491b18edd8eb7bee5ef7897876e88dc5ff"
-url = "https://nodejs.org/dist/v24.21.0/node-v24.21.0-linux-x64.tar.gz"
+checksum = "sha256:28ea0a438de9a13bd7891fd758eee6c7819ee8af5442dfd8d45bd65e56d4228c"
+url = "https://nodejs.org/dist/v24.22.0/node-v24.22.0-linux-x64.tar.gz"
[tools.node."platforms.linux-x64-musl"]
-checksum = "sha256:01a713e34da98e7b4d2a3191ee7ca3f93dd0384d1a2ef23c379b2161ee6e133a"
-url = "https://unofficial-builds.nodejs.org/download/release/v24.21.0/node-v24.21.0-linux-x64-musl.tar.gz"
+checksum = "sha256:72cd253fbe0c2539d52208ed098d47b78ff2c32ba76295d8e6b5b0ce067dcba5"
+url = "https://unofficial-builds.nodejs.org/download/release/v24.22.0/node-v24.22.0-linux-x64-musl.tar.gz"
[tools.node."platforms.macos-arm64"]
-checksum = "sha256:bed7eea5325e1108f32ce5228ddd6a5f0f08a499ee42aa7442aea583702f6057"
-url = "https://nodejs.org/dist/v24.21.0/node-v24.21.0-darwin-arm64.tar.gz"
+checksum = "sha256:6a9724d9b50a5f22b4816cded441b5a8d9ddae546191a5e5b7efa5a5e2ee26d5"
+url = "https://nodejs.org/dist/v24.22.0/node-v24.22.0-darwin-arm64.tar.gz"
[tools.node."platforms.macos-x64"]
-checksum = "sha256:1462cb3b3046b815cf8ea436d3da450ec1a9f11dac7e5a46b0ada5305d7e8097"
-url = "https://nodejs.org/dist/v24.21.0/node-v24.21.0-darwin-x64.tar.gz"
+checksum = "sha256:495e3f273c645f3c4677d438304cdfc701729ea5dec5728f5c8e76a2dece4b91"
+url = "https://nodejs.org/dist/v24.22.0/node-v24.22.0-darwin-x64.tar.gz"
[tools.node."platforms.windows-x64"]
-checksum = "sha256:158f7685b44de51f6c0df1d153526cbcd3e1bc739a8dfc607721cef75de9e541"
-url = "https://nodejs.org/dist/v24.21.0/node-v24.21.0-win-x64.zip"
+checksum = "sha256:f9683a19877e12a9b167305c8db71040d812876359de21f0d2e97c3f321f80c3"
+url = "https://nodejs.org/dist/v24.22.0/node-v24.22.0-win-x64.zip"
[[tools."npm:renovate"]]
version = "44.82.0"
From b8b3d1ef14473a925b23366eb23d7265316a7a4e Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Thu, 15 Oct 2026 13:28:11 +0200
Subject: [PATCH 232/255] chore(deps): update actions/setup-java digest to
b843ebf (#2556)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [actions/setup-java](https://redirect.github.com/actions/setup-java)
([changelog](https://redirect.github.com/actions/setup-java/compare/de7274f081f381c8f8158605e0321c36c376e2e6..b843ebf9b913146b38da2eaa7aeddf76074ae1ad))
| action | digest | `de7274f` → `b843ebf` |
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/prometheus/client_java).
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
.github/workflows/codeql.yml | 2 +-
.github/workflows/multi-version-test.yml | 2 +-
.github/workflows/release.yml | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml
index e71390a312..6bb8547c40 100644
--- a/.github/workflows/codeql.yml
+++ b/.github/workflows/codeql.yml
@@ -26,7 +26,7 @@ jobs:
persist-credentials: false
- name: Set up Java
- uses: actions/setup-java@de7274f081f381c8f8158605e0321c36c376e2e6 # v6
+ uses: actions/setup-java@b843ebf9b913146b38da2eaa7aeddf76074ae1ad # v6
with:
distribution: temurin
java-version: "25.0.4+101.0.LTS"
diff --git a/.github/workflows/multi-version-test.yml b/.github/workflows/multi-version-test.yml
index bd0a7e0638..e4ae2eef25 100644
--- a/.github/workflows/multi-version-test.yml
+++ b/.github/workflows/multi-version-test.yml
@@ -21,7 +21,7 @@ jobs:
- name: Set up Java ${{ matrix.java }}
id: setup-java
- uses: actions/setup-java@de7274f081f381c8f8158605e0321c36c376e2e6 # v6
+ uses: actions/setup-java@b843ebf9b913146b38da2eaa7aeddf76074ae1ad # v6
with:
distribution: "temurin"
java-version: ${{ matrix.java }}
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index 047acc0851..b219bc8a13 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -82,7 +82,7 @@ jobs:
run: mise run build-release
- name: Set up Apache Maven Central
- uses: actions/setup-java@de7274f081f381c8f8158605e0321c36c376e2e6 # v6
+ uses: actions/setup-java@b843ebf9b913146b38da2eaa7aeddf76074ae1ad # v6
with:
distribution: "temurin"
java-version: "25.0.4+101.0.LTS"
From 7eaa0bdfd902a4b6bcd538de0f0da81d97cf53dd Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Thu, 15 Oct 2026 11:51:09 +0000
Subject: [PATCH 233/255] fix(deps): update dependency renovate to v44.150.1
(#2555)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This PR contains the following updates:
| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
| [renovate](https://renovatebot.com)
([source](https://redirect.github.com/renovatebot/renovate)) |
[`44.149.3` →
`44.151.4`](https://octochangelog.com/compare?repo=renovatebot%2Frenovate&from=44.149.3&to=44.151.4)
|

|

|
---
### Release Notes
renovatebot/renovate (renovate)
###
[`v44.151.4`](https://redirect.github.com/renovatebot/renovate/releases/tag/44.151.4)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/44.151.3...44.151.4)
##### Bug Fixes
- **config/validation:** don't warn about a restricted option encrypted
at the top level
([#46941](https://redirect.github.com/renovatebot/renovate/issues/46941))
([67fa755](https://redirect.github.com/renovatebot/renovate/commit/67fa755507c9ea4095d9239ec881b11c8d95a8c5)),
closes
[#43020](https://redirect.github.com/renovatebot/renovate/issues/43020)
- **json-schema:** specify missing `additionalProperties` for maps of
values
([#46681](https://redirect.github.com/renovatebot/renovate/issues/46681))
([df8fe3d](https://redirect.github.com/renovatebot/renovate/commit/df8fe3dab8ecf39f89f370cd5b46e2d2998a918d))
###
[`v44.151.3`](https://redirect.github.com/renovatebot/renovate/releases/tag/44.151.3)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/44.151.2...44.151.3)
##### Bug Fixes
- **datasource/gitlab-tags:** don't cache failed digest lookups
([#46904](https://redirect.github.com/renovatebot/renovate/issues/46904))
([fdedac1](https://redirect.github.com/renovatebot/renovate/commit/fdedac145a09b387d8f8a9419155d2a9b8df70a2))
- **datasource/gitlab-tags:** encode the ref of digest lookups
([#46905](https://redirect.github.com/renovatebot/renovate/issues/46905))
([a551698](https://redirect.github.com/renovatebot/renovate/commit/a5516980aeef4470abb8deb81f9232b52b49e0d8))
##### Documentation
- update references to astral-sh/setup-uv to v10.3.0 (main)
([#46932](https://redirect.github.com/renovatebot/renovate/issues/46932))
([b28f4eb](https://redirect.github.com/renovatebot/renovate/commit/b28f4eb4b7d738b9c5664bf91e533e297ab366a4))
- update references to jaegertracing/jaeger to v2.22.0 (main)
([#46934](https://redirect.github.com/renovatebot/renovate/issues/46934))
([cb8a6d6](https://redirect.github.com/renovatebot/renovate/commit/cb8a6d69757c7a1be354adf88f27b2b9553d37e9))
- update references to renovatebot/github-action to v46.3.8 (main)
([#46931](https://redirect.github.com/renovatebot/renovate/issues/46931))
([9c127ee](https://redirect.github.com/renovatebot/renovate/commit/9c127ee6cf750f67f8bb50b05806742850ae886d))
##### Miscellaneous Chores
- **deps:** update ossf/scorecard-action action to v2.5.0 (main)
([#46933](https://redirect.github.com/renovatebot/renovate/issues/46933))
([fa41347](https://redirect.github.com/renovatebot/renovate/commit/fa413478bf917b772d9bc635c424d08f9b695a34))
###
[`v44.151.2`](https://redirect.github.com/renovatebot/renovate/releases/tag/44.151.2)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/44.151.1...44.151.2)
##### Bug Fixes
- **deps:** update renovate-base-image to v13.119.2 (main)
([#46929](https://redirect.github.com/renovatebot/renovate/issues/46929))
([f2cc80c](https://redirect.github.com/renovatebot/renovate/commit/f2cc80c7191fe99eeb06ef8ddc6cb7e2441f554a))
##### Build System
- **deps:** update dependency cronstrue to v3.29.0 (main)
([#46930](https://redirect.github.com/renovatebot/renovate/issues/46930))
([69a4024](https://redirect.github.com/renovatebot/renovate/commit/69a4024480ba7116efb2a18918da1ffb91878eca))
###
[`v44.151.1`](https://redirect.github.com/renovatebot/renovate/releases/tag/44.151.1)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/44.151.0...44.151.1)
##### Bug Fixes
- **deps:** update renovate-base-image to v13.119.1 (main)
([#46928](https://redirect.github.com/renovatebot/renovate/issues/46928))
([0f8d9f6](https://redirect.github.com/renovatebot/renovate/commit/0f8d9f6de0973682147420b175506edcba002fad))
##### Documentation
- update references to python to
[`b9767f5`](https://redirect.github.com/renovatebot/renovate/commit/b9767f5)
(main)
([#46927](https://redirect.github.com/renovatebot/renovate/issues/46927))
([f9f131c](https://redirect.github.com/renovatebot/renovate/commit/f9f131cf4841edb5fa94e7ea4e936aebb55f314d))
###
[`v44.151.0`](https://redirect.github.com/renovatebot/renovate/releases/tag/44.151.0)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/44.150.1...44.151.0)
##### Features
- **deps:** update renovate-base-image to v13.119.0 (main)
([#46921](https://redirect.github.com/renovatebot/renovate/issues/46921))
([0fe85b0](https://redirect.github.com/renovatebot/renovate/commit/0fe85b0efc80ff8e0b6bd59d092cf1799e42e0f7))
##### Miscellaneous Chores
- **deps:** update ghcr.io/containerbase/devcontainer docker tag to
v14.31.2 (main)
([#46917](https://redirect.github.com/renovatebot/renovate/issues/46917))
([2fa8494](https://redirect.github.com/renovatebot/renovate/commit/2fa84940c5ee6079cf54176a62fa8e0bac53bee2))
###
[`v44.150.1`](https://redirect.github.com/renovatebot/renovate/releases/tag/44.150.1)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/44.150.0...44.150.1)
##### Bug Fixes
- **deps:** update renovate-base-image to v13.118.4 (main)
([#46916](https://redirect.github.com/renovatebot/renovate/issues/46916))
([ac15d4f](https://redirect.github.com/renovatebot/renovate/commit/ac15d4fede71d906a30e58eed6c89517269097ff))
###
[`v44.150.0`](https://redirect.github.com/renovatebot/renovate/releases/tag/44.150.0)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/44.149.3...44.150.0)
##### Features
- **data:** automatic update of static data
([#46911](https://redirect.github.com/renovatebot/renovate/issues/46911))
([0b99516](https://redirect.github.com/renovatebot/renovate/commit/0b995163fc5d72b6a883df94dc4b1dcab8e1b8da))
##### Miscellaneous Chores
- **deps:** update dependency
[@containerbase/istanbul-reports-html](https://redirect.github.com/containerbase/istanbul-reports-html)
to v2.0.22 (main)
([#46915](https://redirect.github.com/renovatebot/renovate/issues/46915))
([5f4050a](https://redirect.github.com/renovatebot/renovate/commit/5f4050af6c33c6feb46ee0240573de21411acca0))
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/prometheus/client_java).
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
.mise/locks/npm-renovate/44.82.0~026f02c4/package.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.mise/locks/npm-renovate/44.82.0~026f02c4/package.json b/.mise/locks/npm-renovate/44.82.0~026f02c4/package.json
index c3b1968f75..6aea0118c3 100644
--- a/.mise/locks/npm-renovate/44.82.0~026f02c4/package.json
+++ b/.mise/locks/npm-renovate/44.82.0~026f02c4/package.json
@@ -7,6 +7,6 @@
}
},
"dependencies": {
- "renovate": "44.149.3"
+ "renovate": "44.151.4"
}
}
From 939eaae398ae2e4f57244c6283945ac1ffd9b7ec Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Thu, 15 Oct 2026 18:02:16 +0200
Subject: [PATCH 234/255] chore(deps): update github/codeql-action action to
v4.39.0 (#2557)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
|
[github/codeql-action](https://redirect.github.com/github/codeql-action)
| action | minor | `v4.38.3` → `v4.39.0` |
---
### Release Notes
github/codeql-action
###
[`v4.39.0`](https://redirect.github.com/github/codeql-action/releases/tag/v4.39.0)
[Compare
Source](https://redirect.github.com/github/codeql-action/compare/v4.38.3...v4.39.0)
- *Breaking change*: Bump the minimum required CodeQL bundle version to
2.20.7.
[#4205](https://redirect.github.com/github/codeql-action/pull/4205)
- The `codeql-action/analyze` step now validates that a correct argument
for the `checkout_path` input has been provided. The `checkout_path`
input must be set to the path where the repository that is being
analyzed is checked out at on the runner, if that path is something
other than the workspace root. If the path does not point to a
repository checkout or is different from the path that was used by
`codeql-action/init`, then the CodeQL Action now produces a warning.
[#4148](https://redirect.github.com/github/codeql-action/pull/4148)
- Resolved an issue with third-party caching implementations that
prevented caches from being restored correctly.
[#4206](https://redirect.github.com/github/codeql-action/pull/4206)
- The `codeql-action/start-proxy` step that is used in Code Scanning
Default Setup now finds CodeQL releases using the same logic as
`codeql-action/init`. This primarily benefits customers who are using
GitHub instances other than `github.com` where the
`codeql-action/start-proxy` step may previously have been unable to
locate recent releases and ended up using outdated versions of the
private registry authentication proxy as a result.
[#4198](https://redirect.github.com/github/codeql-action/pull/4198)
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/prometheus/client_java).
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
.github/workflows/codeql.yml | 4 ++--
.github/workflows/scorecard.yml | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml
index 6bb8547c40..85aa6aa198 100644
--- a/.github/workflows/codeql.yml
+++ b/.github/workflows/codeql.yml
@@ -37,7 +37,7 @@ jobs:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-codeql-${{ hashFiles('**/pom.xml') }}
- name: Initialize CodeQL
- uses: github/codeql-action/init@24c54180a607b1449ed407dd24f251e4e9147c8d # v4.38.3
+ uses: github/codeql-action/init@6f2ac81f5cd81fe351a197ba0b00d91d03cd2aee # v4.39.0
with:
languages: java
tools: linked
@@ -56,6 +56,6 @@ jobs:
-Djavadoc.skip=true
- name: Perform CodeQL Analysis
- uses: github/codeql-action/analyze@24c54180a607b1449ed407dd24f251e4e9147c8d # v4.38.3
+ uses: github/codeql-action/analyze@6f2ac81f5cd81fe351a197ba0b00d91d03cd2aee # v4.39.0
with:
category: /language:java
diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml
index d4a42bf309..f054ba2cf5 100644
--- a/.github/workflows/scorecard.yml
+++ b/.github/workflows/scorecard.yml
@@ -41,6 +41,6 @@ jobs:
retention-days: 5
- name: Upload to code scanning
- uses: github/codeql-action/upload-sarif@24c54180a607b1449ed407dd24f251e4e9147c8d # v4.38.3
+ uses: github/codeql-action/upload-sarif@6f2ac81f5cd81fe351a197ba0b00d91d03cd2aee # v4.39.0
with:
sarif_file: results.sarif
From 52e07ad457afdbb9b2731699e270286454f4f6c1 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Thu, 15 Oct 2026 18:30:24 +0200
Subject: [PATCH 235/255] fix(deps): update dependency renovate to v44.151.5
(#2558)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This PR contains the following updates:
| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
| [renovate](https://renovatebot.com)
([source](https://redirect.github.com/renovatebot/renovate)) |
[`44.151.4` →
`44.151.5`](https://octochangelog.com/compare?repo=renovatebot%2Frenovate&from=44.151.4&to=44.151.5)
|

|

|
---
### Release Notes
renovatebot/renovate (renovate)
###
[`v44.151.5`](https://redirect.github.com/renovatebot/renovate/releases/tag/44.151.5)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/44.151.4...44.151.5)
##### Bug Fixes
- **config/validation:** improve message when invalid location for
option
([#46682](https://redirect.github.com/renovatebot/renovate/issues/46682))
([736dad8](https://redirect.github.com/renovatebot/renovate/commit/736dad8b91e628b9222cde94d0160aa3b733b659)),
closes
[#43020](https://redirect.github.com/renovatebot/renovate/issues/43020)
- **json-schema:** declare child options which get validated
([#46674](https://redirect.github.com/renovatebot/renovate/issues/46674))
([c1ba0f0](https://redirect.github.com/renovatebot/renovate/commit/c1ba0f0b097679be4316c58a6c71d48cdb07755b))
- **json-schema:** restrict all known object properties keys
([#46945](https://redirect.github.com/renovatebot/renovate/issues/46945))
([c48a9b6](https://redirect.github.com/renovatebot/renovate/commit/c48a9b6e69a3d7e6437714801b6eedf124021207))
##### Code Refactoring
- **config:** describe where an option can be used with `scopes`
([#46675](https://redirect.github.com/renovatebot/renovate/issues/46675))
([92ef4c7](https://redirect.github.com/renovatebot/renovate/commit/92ef4c7a80ebaf2f4bd8cea355054dd27e78c5ce)),
closes
[#43020](https://redirect.github.com/renovatebot/renovate/issues/43020)
- **platform/gitea:** build the pr cache synced key with the cache key
helper
([#46939](https://redirect.github.com/renovatebot/renovate/issues/46939))
([b8f5027](https://redirect.github.com/renovatebot/renovate/commit/b8f50271806eea7a6495fd56a283b79f41ba82ee))
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/prometheus/client_java).
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
.mise/locks/npm-renovate/44.82.0~026f02c4/package.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.mise/locks/npm-renovate/44.82.0~026f02c4/package.json b/.mise/locks/npm-renovate/44.82.0~026f02c4/package.json
index 6aea0118c3..a91de4e74b 100644
--- a/.mise/locks/npm-renovate/44.82.0~026f02c4/package.json
+++ b/.mise/locks/npm-renovate/44.82.0~026f02c4/package.json
@@ -7,6 +7,6 @@
}
},
"dependencies": {
- "renovate": "44.151.4"
+ "renovate": "44.151.5"
}
}
From daa9f3a829bd77edb376081b722b7032f6baad42 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Thu, 15 Oct 2026 18:54:32 +0200
Subject: [PATCH 236/255] fix(deps): update dependency renovate to v44.153.1
(#2559)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This PR contains the following updates:
| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
| [renovate](https://renovatebot.com)
([source](https://redirect.github.com/renovatebot/renovate)) |
[`44.151.5` →
`44.153.1`](https://octochangelog.com/compare?repo=renovatebot%2Frenovate&from=44.151.5&to=44.153.1)
|

|

|
---
### Release Notes
renovatebot/renovate (renovate)
###
[`v44.153.1`](https://redirect.github.com/renovatebot/renovate/releases/tag/44.153.1)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/44.153.0...44.153.1)
##### Bug Fixes
- **metadata:** strip git+ scheme prefix from source urls for changelog
fetching
([#45941](https://redirect.github.com/renovatebot/renovate/issues/45941))
([476456b](https://redirect.github.com/renovatebot/renovate/commit/476456b3c243b91ff27c4e6e1697ea21c1ac48cf))
- **platform/github:** replace rendered alerts after smart truncation
([#45613](https://redirect.github.com/renovatebot/renovate/issues/45613))
([179f69c](https://redirect.github.com/renovatebot/renovate/commit/179f69ce5921a2a17e170deb096f2cd0358ad71f))
###
[`v44.153.0`](https://redirect.github.com/renovatebot/renovate/releases/tag/44.153.0)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/44.152.0...44.153.0)
##### Features
- **manager/apm:** scope per-package tags to their own package
([#46737](https://redirect.github.com/renovatebot/renovate/issues/46737))
([7a03427](https://redirect.github.com/renovatebot/renovate/commit/7a03427c7e66b68312d22ada3c9e273325fab5c2))
###
[`v44.152.0`](https://redirect.github.com/renovatebot/renovate/releases/tag/44.152.0)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/44.151.5...44.152.0)
##### Features
- **datasource/devbox:** update default registry URL to new search index
([#46853](https://redirect.github.com/renovatebot/renovate/issues/46853))
([33fe146](https://redirect.github.com/renovatebot/renovate/commit/33fe1468d803acdd3398464f9392f52aaf2d4262))
- **deps:** update renovate-base-image to v13.120.0 (main)
([#46953](https://redirect.github.com/renovatebot/renovate/issues/46953))
([7926703](https://redirect.github.com/renovatebot/renovate/commit/792670310cc5e792399cfd2356af989e1ccef57b))
- **monorepo:** add google-cloud-rust
([#43978](https://redirect.github.com/renovatebot/renovate/issues/43978))
([f782369](https://redirect.github.com/renovatebot/renovate/commit/f7823699ef6e22444ed19dbdeeca8f2ad8789a4f))
- **preset:** add Boto group
([#43760](https://redirect.github.com/renovatebot/renovate/issues/43760))
([d91b82f](https://redirect.github.com/renovatebot/renovate/commit/d91b82fbf0dea164f9c0b93c398c0e2b79c99708))
- **replacements:** add react-native-magic-modal to magic-modal
([#44997](https://redirect.github.com/renovatebot/renovate/issues/44997))
([d30feab](https://redirect.github.com/renovatebot/renovate/commit/d30feab6e14a92ecf44bb464bd8fee99ef1a9775))
##### Bug Fixes
- **changelog:** preserve dependency-specific embedded notes
([#46733](https://redirect.github.com/renovatebot/renovate/issues/46733))
([8cbd7f5](https://redirect.github.com/renovatebot/renovate/commit/8cbd7f5eab5aa7f85b7e101648d132caa23243a6))
- **config:** document where PR and branch options can be used
([#46690](https://redirect.github.com/renovatebot/renovate/issues/46690))
([9fa0c2e](https://redirect.github.com/renovatebot/renovate/commit/9fa0c2e948994f1e5bafd187f0e44c9c07163a68)),
closes
[#43020](https://redirect.github.com/renovatebot/renovate/issues/43020)
- **config:** document where version lookup options can be used
([#46963](https://redirect.github.com/renovatebot/renovate/issues/46963))
([2e12788](https://redirect.github.com/renovatebot/renovate/commit/2e12788359672bb7f0f705156bacb2755199f570)),
closes
[#43020](https://redirect.github.com/renovatebot/renovate/issues/43020)
- **config:** warn when a top-level repo-only option is used somewhere
else
([#46684](https://redirect.github.com/renovatebot/renovate/issues/46684))
([95888e3](https://redirect.github.com/renovatebot/renovate/commit/95888e395d8051e66eabb242787aff9884133fda)),
closes
[#43020](https://redirect.github.com/renovatebot/renovate/issues/43020)
- **json-schema:** document which options are nullable
([#46687](https://redirect.github.com/renovatebot/renovate/issues/46687))
([2c988ca](https://redirect.github.com/renovatebot/renovate/commit/2c988ca6c9836a00d1c4b6fab0e4f902c62d8b35))
- **manager/github-actions:** use semver versioning for setup-pixi's
pixi-version
([#46864](https://redirect.github.com/renovatebot/renovate/issues/46864))
([77b1572](https://redirect.github.com/renovatebot/renovate/commit/77b157203ab7d8293edfbdfbf5c04cb8d3f99e97))
##### Miscellaneous Chores
- **deps:** update ghcr.io/containerbase/devcontainer docker tag to
v14.32.0 (main)
([#46952](https://redirect.github.com/renovatebot/renovate/issues/46952))
([a0af08f](https://redirect.github.com/renovatebot/renovate/commit/a0af08fde46428f2517c806d73b807e22bc2039f))
- **deps:** update jdx/mise-action action to v5.1.2 (main)
([#46950](https://redirect.github.com/renovatebot/renovate/issues/46950))
([fe98b6b](https://redirect.github.com/renovatebot/renovate/commit/fe98b6b0a550f0eca5ea7a104aec06c98ca26c69))
- **deps:** update linters to v1.87.0 (main)
([#46951](https://redirect.github.com/renovatebot/renovate/issues/46951))
([e4cd0a6](https://redirect.github.com/renovatebot/renovate/commit/e4cd0a6491aac00aacb3e36ce2af8b391a70cca0))
##### Code Refactoring
- **config:** add the scopes for remaining shared locations
([#46689](https://redirect.github.com/renovatebot/renovate/issues/46689))
([60822ea](https://redirect.github.com/renovatebot/renovate/commit/60822eafdcf952e9ff7ef1c049e9d94d4fd7c57d)),
closes
[#43020](https://redirect.github.com/renovatebot/renovate/issues/43020)
- **config:** specify scopes for `enabled` and `managerFilePatterns`
([#46683](https://redirect.github.com/renovatebot/renovate/issues/46683))
([2a300e8](https://redirect.github.com/renovatebot/renovate/commit/2a300e8d08a64ee3fa85ee5bdddaaa453dc53668)),
closes
[#43020](https://redirect.github.com/renovatebot/renovate/issues/43020)
##### Tests
- **json-schema:** validate internal presets against the schema
([#46686](https://redirect.github.com/renovatebot/renovate/issues/46686))
([2e22e1a](https://redirect.github.com/renovatebot/renovate/commit/2e22e1a0ded4a2a7d2ca22ebe19deaa14210cd8f))
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/prometheus/client_java).
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
.mise/locks/npm-renovate/44.82.0~026f02c4/package.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.mise/locks/npm-renovate/44.82.0~026f02c4/package.json b/.mise/locks/npm-renovate/44.82.0~026f02c4/package.json
index a91de4e74b..18d03a8ac2 100644
--- a/.mise/locks/npm-renovate/44.82.0~026f02c4/package.json
+++ b/.mise/locks/npm-renovate/44.82.0~026f02c4/package.json
@@ -7,6 +7,6 @@
}
},
"dependencies": {
- "renovate": "44.151.5"
+ "renovate": "44.153.1"
}
}
From b1aa8b38be304b7c935da77014afb02267ed01a6 Mon Sep 17 00:00:00 2001
From: Arnab Nandy
Date: Thu, 15 Oct 2026 22:44:21 +0530
Subject: [PATCH 237/255] feat: preserve metric suffixes in OpenMetrics 2.0
(#2529)
## Summary
Add an opt-in OpenMetrics 2.0 compatibility setting for applications
migrating from the existing client_java naming behavior.
- Add `io.prometheus.openmetrics2.suffixes`.
- Keep `suffixes=false` as the default so OM2 preserves names exactly as
registered.
- With `suffixes=true`, append missing unit suffixes and `_total` for
counters.
- Avoid duplicating suffixes already present in metric names.
- Apply the selected naming behavior consistently to metadata and
samples.
- Document the compatibility setting and migration path.
Fixes #2518.
## Why
OpenMetrics 2.0 uses a "name in, name out" model. For example:
```java
Counter.builder()
.name("requests")
.unit(Unit.BYTES)
.build();
```
OM2 exposes this as `requests` by default. Existing client_java
applications may rely on the OM1-style exposition name
`requests_bytes_total`, so switching formats can otherwise rename series
and affect queries, alerts, recording rules, and dashboards.
Applications that need a gradual migration can temporarily enable
compatibility naming:
```properties
io.prometheus.openmetrics2.suffixes=true
```
This exposes `requests_bytes_total` while producers and downstream
consumers migrate. Once registrations use the intended names explicitly,
compatibility mode can be disabled without changing the exposed series.
## Implementation
When compatibility naming is enabled, the writer reuses
`MetricMetadata.expositionBaseName`, which contains the normalized unit
suffix and preserves explicitly provided suffixes. Counter names receive
`_total` only when it is missing.
The existing OpenMetrics 1.0 summary-writing flow is reused with the
selected metric name so summary metadata and samples follow the same
configuration.
## Validation
All current GitHub Actions checks pass, including build, lint, API diff,
Java compatibility, integration, native, and acceptance tests.
---------
Signed-off-by: Arnab Nandy
Signed-off-by: Gregor Zeitlinger
Co-authored-by: Gregor Zeitlinger
---
.../prometheus-metrics-config.txt | 6 +++
docs/content/config/config.md | 5 +-
docs/content/exporters/openmetrics2.md | 42 ++++++++++-------
docs/content/getting-started/metric-types.md | 6 +--
.../config/OpenMetrics2Properties.java | 33 +++++++++++--
.../config/OpenMetrics2PropertiesTest.java | 14 +++++-
.../config/PrometheusPropertiesTest.java | 2 +
.../OpenMetrics2TextFormatWriterTest.java | 46 +++++++++++++++++--
.../common/PrometheusScrapeHandlerTest.java | 7 ++-
.../OpenMetrics2TextFormatWriter.java | 37 +++++++++------
.../OpenMetricsTextFormatWriter.java | 8 +++-
.../OpenMetrics2TextFormatWriterTest.java | 9 ++--
12 files changed, 164 insertions(+), 51 deletions(-)
diff --git a/docs/apidiffs/current_vs_latest/prometheus-metrics-config.txt b/docs/apidiffs/current_vs_latest/prometheus-metrics-config.txt
index 85091e003e..d83c50781b 100644
--- a/docs/apidiffs/current_vs_latest/prometheus-metrics-config.txt
+++ b/docs/apidiffs/current_vs_latest/prometheus-metrics-config.txt
@@ -2,4 +2,10 @@ Comparing source compatibility of prometheus-metrics-config-1.9.1-SNAPSHOT.jar a
*** MODIFIED ENUM: PUBLIC FINAL io.prometheus.metrics.config.EscapingScheme (compatible)
=== CLASS FILE FORMAT VERSION: 52.0 <- 52.0
+++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.config.EscapingScheme fromAcceptHeader(java.lang.String, io.prometheus.metrics.config.EscapingScheme)
+*** MODIFIED CLASS: PUBLIC io.prometheus.metrics.config.OpenMetrics2Properties (not serializable)
+ === CLASS FILE FORMAT VERSION: 52.0 <- 52.0
+ +++ NEW METHOD: PUBLIC(+) boolean getSuffixes()
+*** MODIFIED CLASS: PUBLIC STATIC io.prometheus.metrics.config.OpenMetrics2Properties$Builder (not serializable)
+ === CLASS FILE FORMAT VERSION: 52.0 <- 52.0
+ +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.OpenMetrics2Properties$Builder suffixes(boolean)
diff --git a/docs/content/config/config.md b/docs/content/config/config.md
index d3110939f7..099746a12e 100644
--- a/docs/content/config/config.md
+++ b/docs/content/config/config.md
@@ -146,10 +146,11 @@ This works for all Metrics properties.
| io.prometheus.openmetrics2.composite_values | [OpenMetrics2Properties.getCompositeValues()]() | (1) |
| io.prometheus.openmetrics2.exemplar_compliance | [OpenMetrics2Properties.getExemplarCompliance()]() | (1) |
| io.prometheus.openmetrics2.native_histograms | [OpenMetrics2Properties.getNativeHistograms()]() | (1) |
+| io.prometheus.openmetrics2.suffixes | [OpenMetrics2Properties.getSuffixes()]() | (1) |
(1) Boolean value, `true` or `false`. `enabled=true` switches OpenMetrics responses to the OM2
-writer, preserving metric names as written by the application. The other OM2 properties remain
-opt-in. All OpenMetrics 2.0 flags are experimental and default to `false`.
+writer. All OM2 properties default to `false`; set `suffixes=true` to preserve OM1 series names
+during migration. All OpenMetrics 2.0 flags are experimental.
## Exporter Filter Properties
diff --git a/docs/content/exporters/openmetrics2.md b/docs/content/exporters/openmetrics2.md
index 607273881d..f65b3b9109 100644
--- a/docs/content/exporters/openmetrics2.md
+++ b/docs/content/exporters/openmetrics2.md
@@ -35,7 +35,8 @@ only need to configure the sub-flags you want.
With `enabled=true` alone:
- OpenMetrics requests use the OM2 writer.
-- Metric names are preserved as written by the application.
+- Registered metric names are preserved; the required `_info` suffix is still emitted for info
+ metrics.
- Optional OM2 features such as `composite_values`, `exemplar_compliance`, and
`native_histograms` remain off.
@@ -56,37 +57,43 @@ PrometheusProperties properties = PrometheusProperties.builder()
## Naming Behavior
-OpenMetrics 2.0 removes OM1 suffix rewriting.
+By default, the OpenMetrics 2.0 writer preserves registered metric names:
-- Counters do not get `_total` appended automatically.
-- Units do not get appended automatically.
-- Info metrics still end in `_info` because that is required by the spec.
+- Counter and unit suffixes are not appended.
+- Info metrics end in `_info` because that is required by the spec.
+
+Set `suffixes=true` to append missing counter and unit suffixes. Existing suffixes are not
+duplicated.
Examples:
-| Metric builder input | OM1 output | OM2 output |
-| ---------------------------------- | ----------------- | -------------- |
-| `Counter("events")` | `events_total` | `events` |
-| `Counter("events_total")` | `events_total` | `events_total` |
-| `Counter("req").unit(BYTES)` | `req_bytes_total` | `req` |
-| `Counter("req_bytes").unit(BYTES)` | `req_bytes_total` | `req_bytes` |
-| `Info("target")` | `target_info` | `target_info` |
+| Metric builder input | OM1 output | Default OM2 output |
+| ---------------------------------- | ----------------- | ------------------ |
+| `Counter("events")` | `events_total` | `events` |
+| `Counter("events_total")` | `events_total` | `events_total` |
+| `Counter("req").unit(BYTES)` | `req_bytes_total` | `req` |
+| `Counter("req_bytes").unit(BYTES)` | `req_bytes_total` | `req_bytes` |
+| `Info("target")` | `target_info` | `target_info` |
+
+To retain the previous OM1-compatible suffix behavior during migration, set:
-This means OpenMetrics 2.0 does not apply OM1 suffix behavior such as appending `_total` or unit
-suffixes, while the legacy OpenMetrics 1.0 and Prometheus text formats keep that existing suffix
-behavior.
+```properties
+io.prometheus.openmetrics2.suffixes=true
+```
## Feature Flags
-All OpenMetrics 2.0 flags default to `false`.
+OpenMetrics 2.0 feature flags default to `false`. Set `suffixes=true` to preserve OM1 series names
+while migrating.
| Property | Effect |
| ------------------------------------------------ | -------------------------------------------------------------------------------------- |
-| `io.prometheus.openmetrics2.enabled` | Metric names are preserved as written by the application. |
+| `io.prometheus.openmetrics2.enabled` | Enable the OpenMetrics 2.0 writer. |
| `io.prometheus.openmetrics2.content_negotiation` | Apply OM2 behavior only when the scraper requests `version=2.0.0`. |
| `io.prometheus.openmetrics2.composite_values` | Emit histograms, summaries, and gauge histograms as single composite lines with `st@`. |
| `io.prometheus.openmetrics2.exemplar_compliance` | Emit only OM2-compliant exemplars with timestamps. |
| `io.prometheus.openmetrics2.native_histograms` | Emit OM2 native histogram text fields. |
+| `io.prometheus.openmetrics2.suffixes` | Append counter and unit suffixes to preserve OM1 series names (opt-in). |
Enable all flags at once:
@@ -104,6 +111,7 @@ io.prometheus.openmetrics2.content_negotiation=true
io.prometheus.openmetrics2.composite_values=true
io.prometheus.openmetrics2.exemplar_compliance=true
io.prometheus.openmetrics2.native_histograms=true
+io.prometheus.openmetrics2.suffixes=true
```
## Content Negotiation
diff --git a/docs/content/getting-started/metric-types.md b/docs/content/getting-started/metric-types.md
index 7522051077..73b4ca433d 100644
--- a/docs/content/getting-started/metric-types.md
+++ b/docs/content/getting-started/metric-types.md
@@ -41,9 +41,9 @@ For the default OpenMetrics 1.0 and Prometheus text formats, counters are expose
`_total` suffix. You can name a counter either `service_time_seconds` or
`service_time_seconds_total`; the exposed name will be `service_time_seconds_total` in both cases.
-The experimental OpenMetrics 2.0 writer behaves differently: It preserves metric names instead of
-appending `_total` or unit suffixes automatically. In OpenMetrics 2.0, `_total` is recommended for
-counters, but not enforced by the Java client.
+The experimental OpenMetrics 2.0 writer preserves registered metric names by default. Set
+`io.prometheus.openmetrics2.suffixes=true` to append `_total` and unit suffixes for compatibility
+when migrating from OpenMetrics 1.0.
## Gauge
diff --git a/prometheus-metrics-config/src/main/java/io/prometheus/metrics/config/OpenMetrics2Properties.java b/prometheus-metrics-config/src/main/java/io/prometheus/metrics/config/OpenMetrics2Properties.java
index 1f5080f055..3a8289c945 100644
--- a/prometheus-metrics-config/src/main/java/io/prometheus/metrics/config/OpenMetrics2Properties.java
+++ b/prometheus-metrics-config/src/main/java/io/prometheus/metrics/config/OpenMetrics2Properties.java
@@ -16,24 +16,28 @@ public class OpenMetrics2Properties {
private static final String COMPOSITE_VALUES = "composite_values";
private static final String EXEMPLAR_COMPLIANCE = "exemplar_compliance";
private static final String NATIVE_HISTOGRAMS = "native_histograms";
+ private static final String SUFFIXES = "suffixes";
@Nullable private final Boolean enabled;
@Nullable private final Boolean contentNegotiation;
@Nullable private final Boolean compositeValues;
@Nullable private final Boolean exemplarCompliance;
@Nullable private final Boolean nativeHistograms;
+ @Nullable private final Boolean suffixes;
private OpenMetrics2Properties(
@Nullable Boolean enabled,
@Nullable Boolean contentNegotiation,
@Nullable Boolean compositeValues,
@Nullable Boolean exemplarCompliance,
- @Nullable Boolean nativeHistograms) {
+ @Nullable Boolean nativeHistograms,
+ @Nullable Boolean suffixes) {
this.enabled = enabled;
this.contentNegotiation = contentNegotiation;
this.compositeValues = compositeValues;
this.exemplarCompliance = exemplarCompliance;
this.nativeHistograms = nativeHistograms;
+ this.suffixes = suffixes;
}
/**
@@ -64,6 +68,11 @@ public boolean getNativeHistograms() {
return nativeHistograms != null && nativeHistograms;
}
+ /** Append unit and type suffixes to metric names. Default is {@code false}. */
+ public boolean getSuffixes() {
+ return suffixes != null && suffixes;
+ }
+
/**
* Note that this will remove entries from {@code propertySource}. This is because we want to know
* if there are unused properties remaining after all properties have been loaded.
@@ -75,8 +84,14 @@ static OpenMetrics2Properties load(PropertySource propertySource)
Boolean compositeValues = Util.loadBoolean(PREFIX, COMPOSITE_VALUES, propertySource);
Boolean exemplarCompliance = Util.loadBoolean(PREFIX, EXEMPLAR_COMPLIANCE, propertySource);
Boolean nativeHistograms = Util.loadBoolean(PREFIX, NATIVE_HISTOGRAMS, propertySource);
+ Boolean suffixes = Util.loadBoolean(PREFIX, SUFFIXES, propertySource);
return new OpenMetrics2Properties(
- enabled, contentNegotiation, compositeValues, exemplarCompliance, nativeHistograms);
+ enabled,
+ contentNegotiation,
+ compositeValues,
+ exemplarCompliance,
+ nativeHistograms,
+ suffixes);
}
public static Builder builder() {
@@ -90,6 +105,7 @@ public static class Builder {
@Nullable private Boolean compositeValues;
@Nullable private Boolean exemplarCompliance;
@Nullable private Boolean nativeHistograms;
+ @Nullable private Boolean suffixes;
private Builder() {}
@@ -123,6 +139,12 @@ public Builder nativeHistograms(boolean nativeHistograms) {
return this;
}
+ /** See {@link #getSuffixes()} */
+ public Builder suffixes(boolean suffixes) {
+ this.suffixes = suffixes;
+ return this;
+ }
+
/** Enable all OpenMetrics 2.0 features */
public Builder enableAll() {
this.enabled = true;
@@ -135,7 +157,12 @@ public Builder enableAll() {
public OpenMetrics2Properties build() {
return new OpenMetrics2Properties(
- enabled, contentNegotiation, compositeValues, exemplarCompliance, nativeHistograms);
+ enabled,
+ contentNegotiation,
+ compositeValues,
+ exemplarCompliance,
+ nativeHistograms,
+ suffixes);
}
}
}
diff --git a/prometheus-metrics-config/src/test/java/io/prometheus/metrics/config/OpenMetrics2PropertiesTest.java b/prometheus-metrics-config/src/test/java/io/prometheus/metrics/config/OpenMetrics2PropertiesTest.java
index 0546a138fc..372e80856d 100644
--- a/prometheus-metrics-config/src/test/java/io/prometheus/metrics/config/OpenMetrics2PropertiesTest.java
+++ b/prometheus-metrics-config/src/test/java/io/prometheus/metrics/config/OpenMetrics2PropertiesTest.java
@@ -24,12 +24,15 @@ void load() {
"io.prometheus.openmetrics2.exemplar_compliance",
"true",
"io.prometheus.openmetrics2.native_histograms",
- "true")));
+ "true",
+ "io.prometheus.openmetrics2.suffixes",
+ "false")));
assertThat(properties.getEnabled()).isTrue();
assertThat(properties.getContentNegotiation()).isTrue();
assertThat(properties.getCompositeValues()).isTrue();
assertThat(properties.getExemplarCompliance()).isTrue();
assertThat(properties.getNativeHistograms()).isTrue();
+ assertThat(properties.getSuffixes()).isFalse();
}
@Test
@@ -68,6 +71,10 @@ void loadInvalidValue() {
new HashMap<>(
Map.of("io.prometheus.openmetrics2.native_histograms", "invalid"))))
.withMessage("io.prometheus.openmetrics2.native_histograms: Expecting 'true' or 'false'.");
+ assertThatExceptionOfType(PrometheusPropertiesException.class)
+ .isThrownBy(
+ () -> load(new HashMap<>(Map.of("io.prometheus.openmetrics2.suffixes", "invalid"))))
+ .withMessage("io.prometheus.openmetrics2.suffixes: Expecting 'true' or 'false'.");
}
private static OpenMetrics2Properties load(Map map) {
@@ -85,12 +92,14 @@ void builder() {
.compositeValues(false)
.exemplarCompliance(true)
.nativeHistograms(false)
+ .suffixes(false)
.build();
assertThat(properties.getEnabled()).isTrue();
assertThat(properties.getContentNegotiation()).isTrue();
assertThat(properties.getCompositeValues()).isFalse();
assertThat(properties.getExemplarCompliance()).isTrue();
assertThat(properties.getNativeHistograms()).isFalse();
+ assertThat(properties.getSuffixes()).isFalse();
}
@Test
@@ -101,6 +110,7 @@ void builderEnableAll() {
assertThat(properties.getCompositeValues()).isTrue();
assertThat(properties.getExemplarCompliance()).isTrue();
assertThat(properties.getNativeHistograms()).isTrue();
+ assertThat(properties.getSuffixes()).isFalse();
}
@Test
@@ -111,6 +121,7 @@ void defaultValues() {
assertThat(properties.getCompositeValues()).isFalse();
assertThat(properties.getExemplarCompliance()).isFalse();
assertThat(properties.getNativeHistograms()).isFalse();
+ assertThat(properties.getSuffixes()).isFalse();
}
@Test
@@ -121,5 +132,6 @@ void partialConfiguration() {
assertThat(properties.getCompositeValues()).isTrue();
assertThat(properties.getExemplarCompliance()).isFalse();
assertThat(properties.getNativeHistograms()).isFalse();
+ assertThat(properties.getSuffixes()).isFalse();
}
}
diff --git a/prometheus-metrics-config/src/test/java/io/prometheus/metrics/config/PrometheusPropertiesTest.java b/prometheus-metrics-config/src/test/java/io/prometheus/metrics/config/PrometheusPropertiesTest.java
index 2c6e11daff..ae5dedbd19 100644
--- a/prometheus-metrics-config/src/test/java/io/prometheus/metrics/config/PrometheusPropertiesTest.java
+++ b/prometheus-metrics-config/src/test/java/io/prometheus/metrics/config/PrometheusPropertiesTest.java
@@ -181,10 +181,12 @@ void testOpenMetrics2PropertiesLoading() {
properties.put("io.prometheus.openmetrics2.composite_values", "false");
properties.put("io.prometheus.openmetrics2.exemplar_compliance", "true");
properties.put("io.prometheus.openmetrics2.native_histograms", "false");
+ properties.put("io.prometheus.openmetrics2.suffixes", "false");
PrometheusProperties config = PrometheusPropertiesLoader.load(properties);
assertThat(config.getOpenMetrics2Properties().getContentNegotiation()).isTrue();
assertThat(config.getOpenMetrics2Properties().getCompositeValues()).isFalse();
assertThat(config.getOpenMetrics2Properties().getExemplarCompliance()).isTrue();
assertThat(config.getOpenMetrics2Properties().getNativeHistograms()).isFalse();
+ assertThat(config.getOpenMetrics2Properties().getSuffixes()).isFalse();
}
}
diff --git a/prometheus-metrics-core/src/test/java/io/prometheus/metrics/core/metrics/OpenMetrics2TextFormatWriterTest.java b/prometheus-metrics-core/src/test/java/io/prometheus/metrics/core/metrics/OpenMetrics2TextFormatWriterTest.java
index 38ba672709..59918719e6 100644
--- a/prometheus-metrics-core/src/test/java/io/prometheus/metrics/core/metrics/OpenMetrics2TextFormatWriterTest.java
+++ b/prometheus-metrics-core/src/test/java/io/prometheus/metrics/core/metrics/OpenMetrics2TextFormatWriterTest.java
@@ -16,6 +16,38 @@
class OpenMetrics2TextFormatWriterTest {
+ @Test
+ void preservesNamesByDefault() throws IOException {
+ Counter counter = Counter.builder().name("requests").unit(Unit.BYTES).build();
+ counter.inc();
+
+ String output =
+ writeWithWriter(
+ MetricSnapshots.of(counter.collect()), OpenMetrics2TextFormatWriter.create());
+
+ assertThat(output)
+ .contains("# TYPE requests counter\n")
+ .contains("# UNIT requests bytes\n")
+ .containsPattern("(?m)^requests 1\\.0 st@\\d+\\.\\d{3}$");
+ }
+
+ @Test
+ void suffixesCanBeEnabledForOm1Compatibility() throws IOException {
+ Counter counter = Counter.builder().name("requests").unit(Unit.BYTES).build();
+ counter.inc();
+
+ OpenMetrics2TextFormatWriter writer =
+ OpenMetrics2TextFormatWriter.builder()
+ .setOpenMetrics2Properties(OpenMetrics2Properties.builder().suffixes(true).build())
+ .build();
+ String output = writeWithWriter(MetricSnapshots.of(counter.collect()), writer);
+
+ assertThat(output)
+ .contains("# TYPE requests_bytes_total counter\n")
+ .contains("# UNIT requests_bytes_total bytes\n")
+ .containsPattern("(?m)^requests_bytes_total 1\\.0 st@\\d+\\.\\d{3}$");
+ }
+
@Test
void counterPreservesOriginalNameWhenUnitIsConfigured() throws IOException {
Counter counter =
@@ -93,23 +125,27 @@ void nativeHistogramPreservesOriginalNameWhenUnitIsConfigured() throws IOExcepti
}
private String writeWithOM1(MetricSnapshots snapshots) throws IOException {
- return write(snapshots, OpenMetricsTextFormatWriter.create());
+ return writeWithWriter(snapshots, OpenMetricsTextFormatWriter.create());
}
private String writeWithOM2(MetricSnapshots snapshots) throws IOException {
- return write(snapshots, OpenMetrics2TextFormatWriter.create());
+ OpenMetrics2TextFormatWriter writer =
+ OpenMetrics2TextFormatWriter.builder()
+ .setOpenMetrics2Properties(OpenMetrics2Properties.builder().suffixes(false).build())
+ .build();
+ return writeWithWriter(snapshots, writer);
}
private String writeWithNativeHistograms(MetricSnapshots snapshots) throws IOException {
OpenMetrics2TextFormatWriter writer =
OpenMetrics2TextFormatWriter.builder()
.setOpenMetrics2Properties(
- OpenMetrics2Properties.builder().nativeHistograms(true).build())
+ OpenMetrics2Properties.builder().nativeHistograms(true).suffixes(false).build())
.build();
- return write(snapshots, writer);
+ return writeWithWriter(snapshots, writer);
}
- private String write(MetricSnapshots snapshots, ExpositionFormatWriter writer)
+ private String writeWithWriter(MetricSnapshots snapshots, ExpositionFormatWriter writer)
throws IOException {
ByteArrayOutputStream out = new ByteArrayOutputStream();
writer.write(out, snapshots, EscapingScheme.ALLOW_UTF8);
diff --git a/prometheus-metrics-exporter-common/src/test/java/io/prometheus/metrics/exporter/common/PrometheusScrapeHandlerTest.java b/prometheus-metrics-exporter-common/src/test/java/io/prometheus/metrics/exporter/common/PrometheusScrapeHandlerTest.java
index 5e823360f8..3429353d5c 100644
--- a/prometheus-metrics-exporter-common/src/test/java/io/prometheus/metrics/exporter/common/PrometheusScrapeHandlerTest.java
+++ b/prometheus-metrics-exporter-common/src/test/java/io/prometheus/metrics/exporter/common/PrometheusScrapeHandlerTest.java
@@ -196,11 +196,14 @@ void testRejectsTooLongQueryString() throws IOException {
}
@Test
- void testOpenMetrics2DoesNotEscapeUtf8NamesByDefault() throws IOException {
+ void testOpenMetrics2PreservesNamesAndDoesNotEscapeUtf8ByDefault() throws IOException {
for (boolean contentNegotiation : new boolean[] {true, false}) {
String body =
scrapeUtf8Counter(contentNegotiation, "application/openmetrics-text;version=2.0.0");
- assertThat(body).contains("\"my.counter\"").doesNotContain("my_counter");
+ assertThat(body)
+ .contains("\"my.counter\"")
+ .doesNotContain("my.counter_total")
+ .doesNotContain("my_counter");
}
}
diff --git a/prometheus-metrics-exposition-textformats/src/main/java/io/prometheus/metrics/expositionformats/OpenMetrics2TextFormatWriter.java b/prometheus-metrics-exposition-textformats/src/main/java/io/prometheus/metrics/expositionformats/OpenMetrics2TextFormatWriter.java
index f400ecce0f..1843dfaaa8 100644
--- a/prometheus-metrics-exposition-textformats/src/main/java/io/prometheus/metrics/expositionformats/OpenMetrics2TextFormatWriter.java
+++ b/prometheus-metrics-exposition-textformats/src/main/java/io/prometheus/metrics/expositionformats/OpenMetrics2TextFormatWriter.java
@@ -6,6 +6,7 @@
import static io.prometheus.metrics.expositionformats.TextFormatUtil.writeLong;
import static io.prometheus.metrics.expositionformats.TextFormatUtil.writeName;
import static io.prometheus.metrics.expositionformats.TextFormatUtil.writeOpenMetricsTimestamp;
+import static io.prometheus.metrics.model.snapshots.SnapshotEscaper.getExpositionBaseMetadataName;
import static io.prometheus.metrics.model.snapshots.SnapshotEscaper.getOriginalMetadataName;
import static io.prometheus.metrics.model.snapshots.SnapshotEscaper.getSnapshotLabelName;
@@ -40,9 +41,10 @@
import javax.annotation.Nullable;
/**
- * Write the OpenMetrics 2.0 text format. Unlike the OM1 writer, this writer outputs metric names as
- * provided by the user, without appending {@code _total} or unit suffixes. The {@code _info} suffix
- * is enforced per the OM2 spec (MUST). This is experimental and subject to change as the OpenMetrics
* 2.0 specification evolves.
*/
@@ -174,8 +176,10 @@ public void write(OutputStream out, MetricSnapshots metricSnapshots, EscapingSch
private void writeCounter(Writer writer, CounterSnapshot snapshot, EscapingScheme scheme)
throws IOException {
MetricMetadata metadata = snapshot.getMetadata();
- // OM2: use the original name, no _total or unit suffix appending.
- String counterName = getOriginalMetadataName(metadata, scheme);
+ String counterName = getMetricName(metadata, scheme);
+ if (openMetrics2Properties.getSuffixes()) {
+ counterName = ensureSuffix(counterName, "_total");
+ }
writeMetadataWithName(writer, counterName, "counter", metadata);
for (CounterSnapshot.CounterDataPointSnapshot data : snapshot.getDataPoints()) {
writeNameAndLabels(writer, counterName, null, data.getLabels(), scheme);
@@ -196,7 +200,7 @@ private void writeCounter(Writer writer, CounterSnapshot snapshot, EscapingSchem
private void writeGauge(Writer writer, GaugeSnapshot snapshot, EscapingScheme scheme)
throws IOException {
MetricMetadata metadata = snapshot.getMetadata();
- String name = getOriginalMetadataName(metadata, scheme);
+ String name = getMetricName(metadata, scheme);
writeMetadataWithName(writer, name, "gauge", metadata);
for (GaugeSnapshot.GaugeDataPointSnapshot data : snapshot.getDataPoints()) {
writeNameAndLabels(writer, name, null, data.getLabels(), scheme);
@@ -214,7 +218,7 @@ private void writeHistogram(Writer writer, HistogramSnapshot snapshot, EscapingS
boolean compositeHistogram =
openMetrics2Properties.getCompositeValues() || openMetrics2Properties.getNativeHistograms();
MetricMetadata metadata = snapshot.getMetadata();
- String name = getOriginalMetadataName(metadata, scheme);
+ String name = getMetricName(metadata, scheme);
if (!compositeHistogram && !openMetrics2Properties.getExemplarCompliance()) {
writeClassicHistogram(writer, name, snapshot, scheme);
return;
@@ -478,14 +482,14 @@ private boolean writeNativeBucketSpan(Writer writer, int offset, int length, boo
private void writeSummary(Writer writer, SummarySnapshot snapshot, EscapingScheme scheme)
throws IOException {
+ MetricMetadata metadata = snapshot.getMetadata();
+ String name = getMetricName(metadata, scheme);
if (!openMetrics2Properties.getCompositeValues()
&& !openMetrics2Properties.getExemplarCompliance()) {
- om1Writer.writeSummary(writer, snapshot, scheme);
+ om1Writer.writeSummary(writer, snapshot, scheme, name);
return;
}
boolean metadataWritten = false;
- MetricMetadata metadata = snapshot.getMetadata();
- String name = getOriginalMetadataName(metadata, scheme);
for (SummarySnapshot.SummaryDataPointSnapshot data : snapshot.getDataPoints()) {
if (data.getQuantiles().size() == 0 && !data.hasCount() && !data.hasSum()) {
continue;
@@ -552,7 +556,7 @@ private void writeInfo(Writer writer, InfoSnapshot snapshot, EscapingScheme sche
MetricMetadata metadata = snapshot.getMetadata();
// OM2 spec: Info MetricFamily name MUST end in _info.
// In OM2, TYPE/HELP use the same name as the data lines.
- String infoName = ensureSuffix(getOriginalMetadataName(metadata, scheme), "_info");
+ String infoName = ensureSuffix(getMetricName(metadata, scheme), "_info");
writeMetadataWithName(writer, infoName, "info", metadata);
for (InfoSnapshot.InfoDataPointSnapshot data : snapshot.getDataPoints()) {
writeNameAndLabels(writer, infoName, null, data.getLabels(), scheme);
@@ -564,7 +568,7 @@ private void writeInfo(Writer writer, InfoSnapshot snapshot, EscapingScheme sche
private void writeStateSet(Writer writer, StateSetSnapshot snapshot, EscapingScheme scheme)
throws IOException {
MetricMetadata metadata = snapshot.getMetadata();
- String name = getOriginalMetadataName(metadata, scheme);
+ String name = getMetricName(metadata, scheme);
writeMetadataWithName(writer, name, "stateset", metadata);
for (StateSetSnapshot.StateSetDataPointSnapshot data : snapshot.getDataPoints()) {
for (int i = 0; i < data.size(); i++) {
@@ -600,7 +604,7 @@ private void writeStateSet(Writer writer, StateSetSnapshot snapshot, EscapingSch
private void writeUnknown(Writer writer, UnknownSnapshot snapshot, EscapingScheme scheme)
throws IOException {
MetricMetadata metadata = snapshot.getMetadata();
- String name = getOriginalMetadataName(metadata, scheme);
+ String name = getMetricName(metadata, scheme);
writeMetadataWithName(writer, name, "unknown", metadata);
for (UnknownSnapshot.UnknownDataPointSnapshot data : snapshot.getDataPoints()) {
writeNameAndLabels(writer, name, null, data.getLabels(), scheme);
@@ -714,6 +718,13 @@ private void writeMetadataWithName(
}
}
+ private String getMetricName(MetricMetadata metadata, EscapingScheme scheme) {
+ if (openMetrics2Properties.getSuffixes()) {
+ return getExpositionBaseMetadataName(metadata, scheme);
+ }
+ return getOriginalMetadataName(metadata, scheme);
+ }
+
private static String ensureSuffix(String name, String suffix) {
if (name.endsWith(suffix)) {
return name;
diff --git a/prometheus-metrics-exposition-textformats/src/main/java/io/prometheus/metrics/expositionformats/OpenMetricsTextFormatWriter.java b/prometheus-metrics-exposition-textformats/src/main/java/io/prometheus/metrics/expositionformats/OpenMetricsTextFormatWriter.java
index 02614a5610..3cfce80a8e 100644
--- a/prometheus-metrics-exposition-textformats/src/main/java/io/prometheus/metrics/expositionformats/OpenMetricsTextFormatWriter.java
+++ b/prometheus-metrics-exposition-textformats/src/main/java/io/prometheus/metrics/expositionformats/OpenMetricsTextFormatWriter.java
@@ -234,9 +234,13 @@ private ClassicHistogramBuckets getClassicBuckets(
void writeSummary(Writer writer, SummarySnapshot snapshot, EscapingScheme scheme)
throws IOException {
+ writeSummary(writer, snapshot, scheme, getMetadataName(snapshot.getMetadata(), scheme));
+ }
+
+ void writeSummary(Writer writer, SummarySnapshot snapshot, EscapingScheme scheme, String name)
+ throws IOException {
boolean metadataWritten = false;
MetricMetadata metadata = snapshot.getMetadata();
- String name = getMetadataName(metadata, scheme);
String countName = name + "_count";
String sumName = name + "_sum";
for (SummarySnapshot.SummaryDataPointSnapshot data : snapshot.getDataPoints()) {
@@ -244,7 +248,7 @@ void writeSummary(Writer writer, SummarySnapshot snapshot, EscapingScheme scheme
continue;
}
if (!metadataWritten) {
- writeMetadata(writer, "summary", metadata, scheme);
+ writeMetadataWithName(writer, name, "summary", metadata);
metadataWritten = true;
}
Exemplars exemplars = data.getExemplars();
diff --git a/prometheus-metrics-exposition-textformats/src/test/java/io/prometheus/metrics/expositionformats/OpenMetrics2TextFormatWriterTest.java b/prometheus-metrics-exposition-textformats/src/test/java/io/prometheus/metrics/expositionformats/OpenMetrics2TextFormatWriterTest.java
index 83c815c00a..928bf80b35 100644
--- a/prometheus-metrics-exposition-textformats/src/test/java/io/prometheus/metrics/expositionformats/OpenMetrics2TextFormatWriterTest.java
+++ b/prometheus-metrics-exposition-textformats/src/test/java/io/prometheus/metrics/expositionformats/OpenMetrics2TextFormatWriterTest.java
@@ -273,9 +273,9 @@ void testCounterStartTimestampWithDefaultWriter() throws IOException {
.build())
.build());
- String om2Output = writeWithOM2(snapshots);
+ String om2Output = write(snapshots, OpenMetrics2TextFormatWriter.create());
- // OM2: no _total, start timestamp uses st@ inline.
+ // OM2 preserves the registered name by default and emits the start timestamp inline.
assertThat(om2Output)
.isEqualTo(
"# TYPE my_counter counter\n"
@@ -834,7 +834,10 @@ private String writeWithOM1(MetricSnapshots snapshots) throws IOException {
}
private String writeWithOM2(MetricSnapshots snapshots) throws IOException {
- OpenMetrics2TextFormatWriter writer = OpenMetrics2TextFormatWriter.create();
+ OpenMetrics2TextFormatWriter writer =
+ OpenMetrics2TextFormatWriter.builder()
+ .setOpenMetrics2Properties(OpenMetrics2Properties.builder().suffixes(false).build())
+ .build();
return write(snapshots, writer);
}
From 068ad4e355e97e9183cda5a529dd9a7f0b3c7b20 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Fri, 16 Oct 2026 08:42:54 +0200
Subject: [PATCH 238/255] fix(deps): update dependency renovate to v44.154.0
(#2560)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This PR contains the following updates:
| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
| [renovate](https://renovatebot.com)
([source](https://redirect.github.com/renovatebot/renovate)) |
[`44.153.1` →
`44.155.1`](https://octochangelog.com/compare?repo=renovatebot%2Frenovate&from=44.153.1&to=44.155.1)
|

|

|
---
### Release Notes
renovatebot/renovate (renovate)
###
[`v44.155.1`](https://redirect.github.com/renovatebot/renovate/releases/tag/44.155.1)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/44.155.0...44.155.1)
##### Bug Fixes
- **deps:** update renovate-base-image to v13.121.1 (main)
([#46973](https://redirect.github.com/renovatebot/renovate/issues/46973))
([43eb367](https://redirect.github.com/renovatebot/renovate/commit/43eb367c61a5a96ecb1a95e13c870b44f9a52df1))
##### Miscellaneous Chores
- **deps:** update ghcr.io/containerbase/devcontainer docker tag to
v14.32.1 (main)
([#46972](https://redirect.github.com/renovatebot/renovate/issues/46972))
([9947ade](https://redirect.github.com/renovatebot/renovate/commit/9947adec73d57f17cebfa4e908268b3430f7c88b))
###
[`v44.155.0`](https://redirect.github.com/renovatebot/renovate/releases/tag/44.155.0)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/44.154.1...44.155.0)
##### Features
- **deps:** update renovate-base-image to v13.121.0 (main)
([#46971](https://redirect.github.com/renovatebot/renovate/issues/46971))
([b09bb63](https://redirect.github.com/renovatebot/renovate/commit/b09bb63b1ce4aa61a5a9f0ec1f3c7c9a22924f58))
###
[`v44.154.1`](https://redirect.github.com/renovatebot/renovate/releases/tag/44.154.1)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/44.154.0...44.154.1)
##### Bug Fixes
- **manager/github-actions:** handle digest pinned `renovate-image`
([#46970](https://redirect.github.com/renovatebot/renovate/issues/46970))
([bbe08af](https://redirect.github.com/renovatebot/renovate/commit/bbe08af60fa86baa901be9635d2b82abc7d85590)),
closes
[#46969](https://redirect.github.com/renovatebot/renovate/issues/46969)
###
[`v44.154.0`](https://redirect.github.com/renovatebot/renovate/releases/tag/44.154.0)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/44.153.1...44.154.0)
##### Features
- **datasource/rpm:** support zstd compressed "primary" files
([#46372](https://redirect.github.com/renovatebot/renovate/issues/46372))
([911b681](https://redirect.github.com/renovatebot/renovate/commit/911b681cc5107047564b25e07543fa758b9f268d))
##### Bug Fixes
- **workers/global:** apply `hostRules` and `internalHostAccess` when
resolving `globalExtends`
([#46666](https://redirect.github.com/renovatebot/renovate/issues/46666))
([cf46a67](https://redirect.github.com/renovatebot/renovate/commit/cf46a67d9a2df4c71e37c0ae0f3d22157d82b54e))
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/prometheus/client_java).
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
.mise/locks/npm-renovate/44.82.0~026f02c4/package.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.mise/locks/npm-renovate/44.82.0~026f02c4/package.json b/.mise/locks/npm-renovate/44.82.0~026f02c4/package.json
index 18d03a8ac2..5a296b60ad 100644
--- a/.mise/locks/npm-renovate/44.82.0~026f02c4/package.json
+++ b/.mise/locks/npm-renovate/44.82.0~026f02c4/package.json
@@ -7,6 +7,6 @@
}
},
"dependencies": {
- "renovate": "44.153.1"
+ "renovate": "44.155.1"
}
}
From b26fbf29ee7fc257d16048b4153b26a868587b54 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Fri, 16 Oct 2026 07:06:17 +0000
Subject: [PATCH 239/255] chore(deps): update dependency
org.mock-server:mockserver-netty-no-dependencies to v9 (#2561)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
> [!NOTE]
> This PR body was truncated due to platform limits.
This PR contains the following updates:
| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
|
[org.mock-server:mockserver-netty-no-dependencies](https://www.mock-server.com)
([source](https://redirect.github.com/mock-server/mockserver-monorepo))
| `8.0.0` → `9.0.0` |

|

|
---
### Release Notes
mock-server/mockserver-monorepo
(org.mock-server:mockserver-netty-no-dependencies)
###
[`v9.0.0`](https://redirect.github.com/mock-server/mockserver-monorepo/blob/HEAD/changelog.md#900---2026-10-15)
This release delivers a sustained performance and memory programme
alongside data-integrity fixes under load, plus a large set of
LLM-provider correctness fixes, dashboard improvements, and
client-library parity work. Headline numbers from the
single-load-generator benchmark on the same six-core rig (builds 420 and
464): the healthy ceiling rises from 39,033 to 57,149 req/s and the peak
from 43,671 to 59,905 req/s, with p95 at 32,000 req/s falling from 56.6
ms to 0.44 ms on the new ZGC default in the Docker images; event-log
retained heap at 20,000 entries falls from 429 MB to 61 MB; Docker image
download shrinks \~23%; and instance shutdown drops from \~107 ms to
near zero. 22 BREAKING changes affect HTTP/3, DNS mocking, binary
(non-HTTP) proxying and binary expectation matching while proxying,
template-failure response codes, `maxLoggedMatchFailures`'s default,
initialisation-file `id` conflicts, the Node client's TypeScript typings
and `exports` map, `LOG_ENTRIES` log output, control-plane error
handling and mTLS, the Rust client's enums, verification-failure
wording, response `statusCode` validation, AsyncAPI and response/OpenAPI
verification, GenAI trace span names, the Node client's recorded-request
typings, and the Go client/Testcontainers module's `/v9` module paths —
see *Upgrading from 8.0.0* and the `BREAKING` entries under *Changed*.
For a per-change migration list, see the upgrade guide at
.
| Metric | Before | After |
| --------------------------------------------------- |
----------------- | ----------------- |
| Throughput, healthy ceiling / peak (req/s, 6 cores) | 39,033 / 43,671
| 57,149 / 59,905 |
| p95 latency at 32,000 / 48,000 req/s offered | 56.6 ms / 82.4 ms |
0.44 ms / 12.0 ms |
| Event-log heap (20,000 entries) | 429 MB | 61 MB |
| Docker image download (linux/arm64, standard image) | \~167 MB | \~129
MB |
| Instance shutdown time | \~107 ms | \~0 ms |
"Before" is perf build 420 (commit
[`d568695`](https://redirect.github.com/mock-server/mockserver-monorepo/commit/d568695a2),
2026-09-24, JDK 17.0.20, G1 collector), measured nine days after the
8.0.0 tag and already carrying some of this release's own work, since
8.0.0 itself was never measured on this rig. "After" is perf build 464
(commit
[`efdc522`](https://redirect.github.com/mock-server/mockserver-monorepo/commit/efdc5227b2),
2026-09-27, JDK 25, ZGC), the performance page's single-load-generator
figures; the page's headline is now a different, multi-generator
measurement (see *Changed*). Both are comparable with each other but not
with any benchmark published after this release.
##### Upgrading from 8.0.0
- **Go client and Go Testcontainers module users**: both modules move to
`/v9` module paths (the Go module proxy refused their 8.0.0 tags) — run
`go get
github.com/mock-server/mockserver-monorepo/mockserver-client-go/v9` (and
the Testcontainers module's `/v9` path if you use it) and change your
imports from the `/v7`/unsuffixed paths to the `/v9` ones; see
*Changed*.
- **HTTP/3 users** (`http3Port` set): the QUIC native library now ships
separately — use the `-jar-with-dependencies-http3` jar or the
`mockserver/mockserver:-http3` Docker image (`latest-http3`,
`snapshot-http3`; Helm: `image.variant=http3`), and a server that cannot
serve HTTP/3 (missing
native, or the port unusable) now refuses to start instead of silently
falling back.
- **DNS mocking users** (`dnsEnabled=true`): MockServer now refuses to
start if its `dnsPort` cannot be bound, instead of logging a warning and
running without DNS. Leave `dnsPort` at its default of `0` to let the OS
pick a free port, or set `dnsEnabled=false`.
- **TypeScript users of `mockserver-client/llm`**: the deep-import
typings no longer declare a default export; import from
`mockserver-client` itself, use `import llm = require(...)`/`import * as
llm from ...`, or turn on `esModuleInterop` (see *Changed*).
- **Binary (non-HTTP) proxy users**: a client connection now always
keeps one upstream connection for its whole life — forwarding one
message per upstream connection is removed, along with its
`forwardBinaryRequestsWithoutWaitingForResponse` setting (a value still
set is ignored, with a warning); remove it from your configuration.
- **Anyone reading a request or response body from `message`/`arguments`
of `LOG_ENTRIES` output** (including the MCP
`retrieve_logs`/`raw_retrieve` tools): read it from the entry's
`httpRequest`/`httpResponse` instead — `message`/`arguments` now refer
to that request/response by a short form
such as `"POST /orders"` or `"201"`.
- **Anyone treating a control-plane `400` as any failure**, or catching
the Java client's `IllegalArgumentException` for non-input failures: an
unexpected server-side fault is now a `500` with a generic message and
correlation id; `400` is now reserved for requests MockServer genuinely
rejects. The
Java client's `retrieveLogsByCorrelationId` and
`retrieveActiveExpectations(requestDefinition, format)` now throw
instead of returning the error's text.
- **Anyone importing a path inside `mockserver-client`/`mockserver-node`
other than the package or a documented module**: both packages now have
an `exports` map, so an unlisted path (`.d.ts` files,
`tasks/mockServer.js`, etc.) now fails to resolve — resolve
`/package.json` and join a file's
path to that directory if you need one by location.
- **Control-plane mTLS, Java client**: the client now trusts only
`controlPlaneTLSMutualAuthenticationCAChain` for MockServer's
certificate; add MockServer's own CA to that chain if it signs the
server certificate.
- **Control-plane mTLS, server**: MockServer now accepts only client
certificates signed by `controlPlaneTLSMutualAuthenticationCAChain`; add
MockServer's own CA to the chain if it signs your client certificates
(or use your own CA if it's the bundled default), and MockServer now
refuses to start with
mTLS required, no chain set, and the bundled default CA — set the chain
or configure your own CA with
`certificateAuthorityCertificate`/`certificateAuthorityPrivateKey`.
- **Rust client users who `match` on its enums**: every public enum is
now `#[non_exhaustive]` (add a wildcard arm), and server-sent enums
(`ResponseMode`, `BinaryUpstream`, `CrossProtocolTrigger`, the `Load*`
enums) gain an `Unknown` variant that cannot be sent back;
`LoadThresholdMetric` also gains
`CheckFailureRate`.
- **Anyone asserting the exact text of an over-count verification
failure** (`never()`, `exactly`, `atMost`, `between`,
`verifyZeroInteractions`): the message now reads "found … but should
have been found …" instead of "not found".
- **Anyone with a response `statusCode` of `0` or outside 100–999**
(most likely from a blank 8.0.0 dashboard status field): it is now
rejected at creation with a `400`, or skipped with a `WARN` (naming it)
when loaded from an initialization/persisted-expectations file, with the
file backed up first.
- **AsyncAPI verification users** (`PUT /mockserver/asyncapi/verify`, or
the Java client's `verifyAsyncMessage`): put
`atLeast`/`atMost`/`exactly` inside `count`, not at the top level — the
endpoint now answers `400` for unknown fields instead of ignoring them.
- **Anyone verifying a response body with a regex, JSON path, JSON
Schema, XPath, XML Schema, form, multipart, fuzzy, GraphQL, JSON-RPC,
WASM or allOf matcher**: that matcher is now actually applied, where it
was previously ignored (verification passed whenever any recorded
response had a JSON object
body).
- **Anyone verifying requests with an OpenAPI matcher**: only requests
for the matched `operationId` now count, instead of every recorded
request (`verifySequence` was unaffected).
- **Anyone selecting LLM completions by `gen_ai.operation.name ==
"chat"`**: Gemini calls are now `generate_content`, and prompt-string
completions (legacy `/v1/completions`, Mistral FIM, Ollama
`/api/generate`, prompt-based Bedrock InvokeModel models) are now
`text_completion` — update to match
`chat`, `generate_content` and `text_completion` together.
- **TypeScript users of the Node client's
`retrieveRecordedRequests`/`retrieveRecordedRequestsById`**: now typed
`Promise` instead of `Promise`;
narrow each result to `HttpRequest` before reading HTTP-specific fields.
- **Anyone proxying binary (non-HTTP) traffic while binary expectations
are registered on the same MockServer**: a message matching a binary
expectation is now answered by it and not forwarded, by default
(`matchBinaryExpectationsWhenProxying`); set it to `false` to always
forward as in 8.0.0.
- **Anyone relying on every "didn't match" comparison being logged**:
the new `maxLoggedMatchFailures` property now defaults to `50`, so at
`INFO` only the first 50 "didn't match" entries per request are logged;
set `maxLoggedMatchFailures=-1` to keep logging every comparison.
- **Anyone with expectations in an `initializationJsonPath` file whose
`id`s repeat**: the file now keeps the *last* expectation for each
repeated `id`, not the first; remove the repeated `id`s, or put the one
you want last.
- **Anyone relying on a failed template answering `404`/`502`**: a
response/forward template that fails, or whose output isn't valid, now
answers `500` by default (`templateFailureAsServerError`); set it to
`false` to keep the 8.0.0 answers.
Also worth checking, though none is a breaking change: if you override
the standard Docker images' `ENTRYPOINT` or copy the jar out of them,
`/mockserver-netty-jar-with-dependencies.jar` is now split into
`/mockserver.jar` and `/mockserver-deps.jar` — use `-cp
/mockserver.jar:/mockserver-deps.jar:/libs/*` (`java -jar
/mockserver.jar` still runs, but without the CDS start-up archive, so it
starts more slowly); with `forwardProxyBlockPrivateNetworks` on, a
request that matches no expectation and whose `Host` header names
MockServer itself by a name it doesn't recognise as its own (a Docker
Compose or Kubernetes service name, for example) now gets `502 Bad
Gateway` instead of `404 Not Found`, because that name resolves to a
private address — add the name to `noProxyHosts`, or set
`attemptToProxyIfNoMatchingExpectation=false` if MockServer isn't used
as a proxy, to get the `404` back; and if you set `localBoundIP`, it now
also keeps the DNS and HTTP/3 ports on that address — a DNS query or
HTTP/3 request sent to another address of the host is no longer
answered, so send them to the `localBoundIP` address, or leave
`localBoundIP` unset.
##### Security
- **Velocity templates now have a time limit**
(`mockserver.velocityTemplateExecutionTimeout`, default 5000 ms, same as
JavaScript templates). A runaway `#foreach`, recursive macro or chained
`#define` block could previously hold a template thread until restart;
it now fails with a timeout error at
its next loop iteration, macro call or `#parse`/`#evaluate`. A single
slow Java call inside a template is not interrupted, and the limit does
not cap memory. Set the property to `0` to remove it.
- **Netty upgraded from `4.2.17.Final` to `4.2.19.Final`, and
BouncyCastle from `1.85` to `1.86`**, a security release whose
advisories in the parts of Netty MockServer uses cover HTTP/1.1
request/response smuggling (including improper CRLF neutralization) and
an origin validation error, unbounded
resource consumption in the HTTP/1.1, HTTP/2, HTTP/3 and DNS codecs and
the base codec, input misinterpretation in the SOCKS codec, and an SNI
routing bypass and an improper access control in the handler module. Two
visible changes: an HTTP/2 client whose `SETTINGS_INITIAL_WINDOW_SIZE`
change would
overflow a stream's flow-control window now has its connection closed
with `FLOW_CONTROL_ERROR`, as RFC 9113 requires, instead of having that
one stream reset; and in a `multipart/form-data` request, a file part
whose `Content-Type` is not a plausible media type (for example `text`)
is now read as
`application/octet-stream`, so a `partContentTypes` matcher for such a
part must name `application/octet-stream`. Netty 4.2.18 also tightened
its HTTP/2 frame decoder to validate header values as well as names;
unvalidated inbound frames (a leading space, an embedded DEL `0x7F`,
other control
characters in a header value) are a shape MockServer is used to record,
so inbound frame validation is now disabled on the multiplex codec,
keeping that leniency for HTTP/2 requests on the multiplex path (this
also disables inbound header-*name* validation there, since Netty folds
both under one
flag); outbound names and HTTP/2-forbidden connection-specific headers
(`Connection`, `Transfer-Encoding`) remain validated.
- **The binary launchers (Node, Python, Ruby, Go, Rust, .NET, PHP) no
longer start MockServer through a shell, or no longer let a shell
misread their arguments, on Windows; the Node launcher never uses a
shell at all.**
- The Node launcher no longer starts MockServer through a shell. On
Windows, `runBinary` and the `mockserver` command ran the bundle's
`mockserver.bat` under `cmd.exe`, so `%NAME%` in an argument or in the
cache directory path was replaced with an environment variable's value,
and a line break cut
the command short. On every platform they now run the bundle's own Java
runtime directly, with the JVM options the launcher script applies, and
pass each argument separately with no shell in between, so no shell can
read `%`, `&`, `$` or `;` in an argument or path as a variable or a
command.
`MOCKSERVER_JAVA_OPTS` is split on whitespace with quoted text kept
together, so `-Dx="a b"` sets `x` to `a b` on Linux and macOS too. A
`shell` option passed in `spawnOptions` is now ignored.
- The Python client's binary launcher no longer starts MockServer
through a shell on Windows. `start()` ran the `mockserver.bat` launcher
with `shell=True`, so `cmd.exe` could treat characters in the launcher
path or in `extra_args` as commands rather than text. It now runs
`cmd.exe` itself with
every argument quoted, so characters such as `&`, `|` and `^` reach
MockServer unchanged. `start()` raises `ValueError` if the launcher path
or an `extra_args` entry contains a double quote, a line break or NUL,
or if together they contain more than one `%`, which `cmd.exe` would
expand as an
environment variable. Linux and macOS are unchanged and still use no
shell.
- The Ruby client's binary launcher now quotes every argument it passes
to `cmd.exe` on Windows. `BinaryLauncher.start` let Ruby quote the
arguments for `cmd.exe`, which follows different rules, so characters in
the launcher path or in `extra_args` could be read as commands. It now
builds the
`cmd.exe` command line itself and **raises `MockServer::Error`** if the
launcher path or an `extra_args` entry contains `"`, `<`, `>`, `|`, `&`,
a line break or NUL, or if together they contain more than one `%`. On
Windows it needs a native Ruby (mswin or mingw, such as RubyInstaller).
On Linux and
macOS it now never uses a shell, even with no arguments.
- The Go, Rust and .NET clients' binary launchers now quote the launcher
path they pass to `cmd.exe` on Windows. They ran `mockserver.bat`
through `cmd.exe` with the standard argument quoting, which `cmd.exe`
does not follow, so characters in the launcher path (from
`MOCKSERVER_BINARY_CACHE` or the
user's cache folder) could be read as commands. Each now builds the
`cmd.exe` command line itself, quoting every part, and refuses a
launcher path that contains a double quote, a line break or NUL, or more
than one `%`.
- The PHP client's binary launcher now quotes every argument it passes
to `cmd.exe` on Windows. `BinaryLauncher::start()` let PHP quote the
launcher path and `$extraArgs` for `cmd.exe`, which follows different
rules, so characters in them could be read as commands. It now builds
the `cmd.exe`
command line itself and **throws `BinaryInstallException`** if the
launcher path or an extra argument contains a double quote, a line break
or NUL, or if together they contain more than one `%`.
- A long `MOCKSERVER_BINARY_BASE_URL` made of repeated `/` no longer
takes the Node launcher seconds to process.
- **Dependency security upgrades**: Jackson 2.22.2 → 2.22.3 (three
Snyk-reported vulnerabilities); dashboard dependency KaTeX 0.16.47 →
0.18 (low-severity prototype-pollution bypass of its trust
restrictions); dashboard dependency `dompurify` resolves to 3.4.16 (DOM
XSS via `IN_PLACE` sanitize with a
node-removing hook, Dependabot alert 593); dashboard npm `overrides`
pins `lodash-es` to 4.18.1 (`_.template`/`_.unset`/`_.omit` advisories;
the affected functions are tree-shaken from the built dashboard anyway);
the Node Testcontainers module's own development lockfile resolves newer
`undici`,
`brace-expansion` and `@grpc/grpc-js` (Dependabot alerts 581, 582, 584,
586, 591, 592 — the published package is unaffected, since it ships only
`dist`).
- **A `zstd` request or streamed compressed upstream response can no
longer exhaust MockServer's memory.** A `zstd` frame declares its
decompressed size, and MockServer previously allocated that much up
front (17 bytes claiming 1.5 GB threw `OutOfMemoryError` on a 256 MB
heap) — now decompressed in
64 KB pieces, with `maxRequestBodySize`/`maxResponseBodySize` enforced
as for any other coding.
- A *streamed* response (SSE and similar; on by default) was never
body-size-limited at all, so a single network read's worth of compressed
bytes could decompress to gigabytes (a 256 MB `zstd` stream, 8 KB on the
wire, exhausted a 256 MB heap); such a stream is now capped at
`maxResponseBodySize` (50 MB by default) of data waiting to be written
to the client, ending incomplete past that point rather than looking
finished.
- A legitimate slow client is unaffected: MockServer reads more of the
upstream only once the client has taken nearly all of what is waiting,
so a slow client holds back the upstream rather than filling memory, and
only a response that decompresses to nearly the limit or more from a
single
network read is stopped; the wait doesn't count towards
`streamIdleTimeoutSeconds` (which now measures only an upstream that
sends nothing while MockServer is reading it — a client that pauses
keeps its stream, with at most the limit waiting for it, until it reads
on, disconnects or takes
nothing for `responseWriteStallTimeoutMillis`).
- A stream that times out, or whose upstream closes, fails or sends
invalid chunk framing part-way through, now ends incomplete, where
before it ended with a normal final chunk and looked complete; a stream
whose upstream simply ends by closing its connection still completes
normally. When the
client goes away, MockServer now also closes the upstream, where before
it kept reading an endless stream forever.
- A stream through a `CONNECT` tunnel is limited the same way, but by
`maxRequestBodySize` (10 MB by default) — the limit that tunnel already
applied to a response it collected whole, not `maxResponseBodySize`;
through such a tunnel this backpressure is new for a streamed response,
which before
was queued in memory as fast as it arrived.
- **A chunked HTTP/1.1 request can no longer make MockServer buffer an
endless chunk-size line.** Each chunk of a chunked request body starts
with a line giving its size, which may carry extra parameters (chunk
extensions), and the body may end with trailer headers. MockServer
limited that line
only by `maxInitialLineLength` and the trailers only by `maxHeaderSize`,
which were both unlimited by default, so MockServer kept buffering a
line its client never ended, up to 2 GB or until its network memory ran
out. MockServer now answers `400` and closes the connection once more
than 8 KB of
one chunk-size line, or of the final `0` line and its trailers counted
together, is waiting to be read, on requests sent to it directly and
through a `CONNECT` or SOCKS tunnel. The limit is fixed: real uploads
use about 100 bytes per line, and 8 KB is what Tomcat allows. Anything
within the
limit, the request line, headers and body sizes are unaffected, and a
lower `maxInitialLineLength` or `maxHeaderSize` still applies. HTTP/2
and HTTP/3 have no chunk-size lines.
- **The request line and headers of an HTTP/1.1 request are now limited
by default, and a request MockServer cannot read is refused instead of
answered.** `maxInitialLineLength` (64 KB) and `maxHeaderSize` (256 KB)
were previously unlimited; set either to `2147483647` to remove the
limit. A longer
request line now gets `414`, larger headers `431`, and any other
unreadable request (an invalid header, a chunked body with an invalid
chunk size) `400`, with the connection then closed — where before such a
request was logged as an `ERROR` and matched/answered from whatever had
been read (a request
line over the limit, for example, as `GET /bad-request`). This also
applies through `CONNECT`/SOCKS tunnels. A request is also now
unreadable, and gets `400`, when the request before it on the same
connection left bytes behind — for example a client that writes a `GET`
body with neither
`Content-Length` nor chunked encoding, as Node's `http.request` does —
where it used to get `404` for `GET /bad-request`. HTTP/2 and HTTP/3 now
take their header limit from `maxHeaderSize` too (see *Changed*); the
limits apply only to requests MockServer receives — a mocked response
with larger
headers is still sent intact.
- **A client can no longer make the server hold far more memory than the
request it is sending.** Over HTTP/2, small DATA frames mixed into a
large read could pin up to \~6.7 GB across a connection's 100 streams at
the default body-size limit; similarly for small HTTP/1.1
chunk-extension-padded chunks.
Held network-read buffers are now copied once a request's retained
pieces use less than half of the read they arrived in, cutting held
memory 6× to over 2,000× in the cases measured.
- **Control-plane mTLS now trusts and accepts only the configured CA
chain, not MockServer's own CA as well** (BREAKING; see *Changed* and
*Upgrading from 8.0.0*). The Java client's callback and breakpoint
WebSockets, which previously trusted any server certificate and
presented no client certificate
over TLS, now use the same trust and client-certificate settings as the
client's HTTP requests.
- **`forwardProxyBlockPrivateNetworks` now also blocks carrier-grade NAT
addresses (`100.64.0.0/10`).** This shared address range (RFC 6598) is
used by carrier-grade NAT and by overlay networks such as Tailscale to
reach machines that are not on the public internet, so with the setting
on a forward
or proxied request could still reach them. A target in that range,
including written as an IPv4-mapped IPv6 address such as
`::ffff:100.64.0.1`, is now refused like a private-network address (with
a `502` for HTTP); if you turn the setting on and forward to a Tailscale
or other
`100.64.0.0/10` address on purpose, leave the setting off to keep those
forwards working.
- `forwardProxyBlockPrivateNetworks` now also applies to the MCP tools
that send requests to a URL you give them. With the setting enabled,
8.0.0 let `run_contract_test`, `run_resiliency_test` and
`run_mcp_contract_test` send requests to loopback, private-network and
cloud-metadata addresses
unchecked. Each tool now checks the URL's host before sending anything:
a refused target is sent nothing, the tool returns an error naming the
blocked address, and one warning is logged. Each request is checked
again as it is sent, and with the setting enabled these tools no longer
follow
redirects, which could lead to an address that was never checked. A spec
path that does not start with `/` is now always sent to the base URL's
host.
- `forwardProxyBlockPrivateNetworks` now checks the address MockServer
actually connects to, and OpenAPI spec fetches. With the setting on, a
forward, a proxied request, a webhook, a load scenario request, a drift
alert or a WebSocket relay that MockServer connects to directly now goes
to the
exact address that passed the check, so a host name whose DNS answer
changes between the check and the connection can no longer reach a
blocked address. Every fetch of an OpenAPI spec from a URL (until now
checked only for traffic validation), each remote `$ref` in a spec, and
each redirect
followed while fetching them are now checked too; a refused fetch makes
the spec fail to load with a message naming the blocked address. Each
MockServer applies its own setting to every spec it loads, so a server
with the setting on in its own configuration checks them even when the
global
property is off; **a spec loaded by a server with the setting off is
fetched again, with the check, by a server that has it on.** To see
those fetches MockServer wraps the JVM's default `ProxySelector` the
first time it loads a spec with the setting on; the wrapper stays for
the life of the
JVM, and a `ProxySelector` your code sets at the same moment can be
lost, so set your own before MockServer loads a spec. **A forward
refused because the address looked up to connect to is blocked is
neither retried nor counted by the forward circuit breaker.**
- `forwardProxyBlockPrivateNetworks` now also applies to requests
MockServer sends itself. With the setting enabled, 8.0.0 still sent
these to loopback, private-network and cloud-metadata addresses
unchecked: before-action, after-action and step webhooks, load scenario
requests, and drift alert
webhooks. Each is now checked as a forward is, and a refused one is not
sent and is logged once as a warning naming the blocked address. A
refused blocking webhook with the `FAIL_FAST` failure policy makes the
response a `502 Bad Gateway` (with `BEST_EFFORT` the response goes
ahead), a refused
load scenario request is counted as a failed request of kind `blocked`
(one warning for the run). `proxyRemoteHost` is checked although it is
set in configuration, as it is for proxied requests; only the upstream
proxies MockServer sends through (`forwardHttpProxy`,
`forwardHttpsProxy`,
`forwardSocksProxy`) are not checked.
- `forwardProxyBlockPrivateNetworks` now applies to every forwarded and
proxied request. With the setting enabled, 8.0.0 checked only
`httpForward` actions. Overridden forwarded requests
(`forwardOverriddenRequest`), class and object forward callbacks, binary
forwarding, and requests that
matched no expectation and were proxied on did not apply the check, so
an expectation, or an unmatched proxied request, could reach loopback,
private-network and cloud-metadata addresses. All of them now apply it,
as forward actions do: an HTTP request gets `502 Bad Gateway`, a binary
connection is closed, and a warning names the blocked address. A request
sent through `forwardHttpProxy` also has its Host header checked, as
that proxy is sent it as the address to go to. With the setting enabled,
a request that matches no expectation and whose Host header names
MockServer
itself by a name it does not recognise as its own (a Docker Compose or
Kubernetes service name, for example) now gets `502 Bad Gateway` and a
warning instead of `404 Not Found`, because that name resolves to a
private address — see *Upgrading from 8.0.0*.
- **Configuration changes made through `PUT /mockserver/configuration`
now take effect for every way of starting MockServer, and all at once.**
A server started without a configuration object (command line, Docker,
Maven plugin) previously held two copies of its configuration, so a
`PUT` that reported
success (including enabling control-plane authentication, or lowering
`maxLogEntries`/`maxEventLogSizeInBytes`, or enabling
`redactSecretsInLog`) left request handling on the old, insecure or
unenforced values; settings given at startup, and servers started
through `ClientAndServer`, the JUnit
integrations or Spring, were not affected. A `PUT` that changes
authentication or TLS settings is now also applied atomically:
control-plane authentication/authorization and the server TLS settings
(`tlsMutualAuthenticationRequired` and its certificate chain) switch
from all-old to all-new with
nothing in between — closing a sub-millisecond window where a `PUT`
switching from mTLS to JWT/OIDC could briefly require no authentication
at all, or a TLS connection opened mid-change could keep using the old
setup. A rejected `PUT` (an invalid certificate path, a negative
`globalResponseDelayMillis`) now answers `400` having changed nothing,
where fields ahead of the invalid one used to stay applied. An MCP tool
call is now also authorized with the settings it was authenticated with,
rather than possibly a later `PUT`'s. Outbound TLS connections now cache
their TLS
setup only under the exact settings it was built from, so a `PUT`
changing `forwardProxyTLSX509CertificatesTrustManagerType` mid-build can
no longer leave a stale trust-all setup cached under the old settings;
turning `http2Enabled` off at runtime now also stops outbound TLS
connections offering
HTTP/2.
- **`redactSecretsInLog` now masks credentials everywhere the event log
is shown or retrieved**, including the console/retrieved curl rendering
of a proxied or forwarded request, JSON log
`message`/`arguments`/`expectation` fields, the separate cookie list,
HAR and `format=CURL` exports, match-failure
explanations, error log entries, failed response verifications, and —
newly — the bytes of a binary (non-HTTP) message in a "matched"/"didn't
match" log entry (shown as `***REDACTED***`, where the "received binary
request" message already masked them);
`redactSecretsInRecordedExpectations` now also
masks cookie values. Masking now applies even to entries recorded before
the setting was switched on, since redaction happens when an entry is
shown or retrieved, not when it's written; what's *not* retroactively
fixed is anything captured by MockServer **before this release** — treat
logs, exports
and recordings captured pre-upgrade as still containing those values in
full.
- **`/mockserver/generateExpectation` and LLM drift analysis now redact
credentials from the prompt sent to an external LLM backend,
unconditionally** — sensitive headers, credential-shaped query
parameters and JSON fields, OAuth codes, JWT-shaped tokens, and embedded
URL credentials are replaced with
`***REDACTED***` before the prompt leaves MockServer, independent of
`redactSecretsInLog`. The same unconditional redaction covers the new
`narration` field on `PUT /mockserver/explain`/`explainUnmatched` (see
*Added*): credential values are masked whether or not
`redactSecretsInLog` is on. The
`explain_request`, `explainUnmatched` and other MCP/REST diagnostic
output, by contrast, is redacted the same way the event log is — i.e.
only when `redactSecretsInLog` is enabled — except `diagnose_config`,
which always masks credential values. Treat any credentials sent through
`generateExpectation`/drift analysis with a backend configured as
previously exposed to that LLM service.
##### Added
- **AI-assisted debugging: ask MockServer *why* a request matched or
didn't, fix near-misses, and dry-run templates — via REST, the dashboard
and new MCP tools.**
- Ask why one request matched the expectation it did, and why a
higher-priority one lost: `PUT /mockserver/explain?correlationId=`.
Give it the correlation ID of a recorded request (from `PUT
/mockserver/retrieve?type=LOGS&format=LOG_ENTRIES` or the dashboard) and
MockServer checks that
request again against your current expectations, in the order it
evaluates them. The answer names the expectation that would serve the
request now, gives a reason for every expectation checked before it
(different fields; another namespace; used up or expired; waiting for
another scenario
state; served only a percentage of the time; LLM conversation mismatch;
a `not(...)` request matcher that excludes the request), lists
lower-priority expectations that also match but are never reached, and
reports how the request was handled when it arrived, including, when
MockServer forwarded
the request and the forward failed with a 502, the expectation that
forwarded it (or that it was proxied without one) and the reason the
forward failed. At most 500 expectations are checked per call. The route
has no bare `/explain` alias, so a mock of your own on `PUT /explain`
keeps working.
In the dashboard, every group of log messages for a request has an
**Explain** button that shows the same answer, and the Java client has a
typed `explain(correlationId)` method returning a `RequestExplanation`.
- AI assistants can now ask MockServer why a request matched the
expectation it did, and which settings are in effect, through two new
MCP tools. `explain_request` takes the correlation ID of a request
MockServer has received and returns the same answer as `PUT
/mockserver/explain`. An unknown
or evicted correlation ID comes back as a tool error. `diagnose_config`
lists the configuration settings changed from their default, with the
value and where each came from (system property, properties file,
environment variable or runtime setter), or looks up one setting by name
in any form
(`maxExpectations`, `mockserver.maxExpectations`,
`MOCKSERVER_MAX_EXPECTATIONS` or `max-expectations`), showing a setting
at its default with the default's value, and suggests the setting you
probably meant when nothing matches. It also lists each `mockserver.*` /
`MOCKSERVER_*` key you set
that MockServer does not recognise, with the setting it was probably
meant to be (by name only, never its value). Both are read-only, so a
principal with only the READ role can call them when control-plane
authorization is on. Their output is redacted: `diagnose_config` always
masks
credentials, and `explain_request` masks credentials quoted from your
traffic when `redactSecretsInLog` is enabled, as the event log does.
- Every client can now ask why a request matched, or did not, and get a
typed answer back. The JavaScript (Node), Python, Ruby, Go, Rust, .NET
and PHP clients gain typed `explain`, `debugMismatch` and
`explainUnmatched` calls (`explain`, `debug_mismatch` and
`explain_unmatched` in Python, Ruby and
Rust; `Explain`, `DebugMismatch` and `ExplainUnmatched` in Go and .NET,
which also has `Async` versions), joining the Java client's typed
`explain`. `explain` takes the
correlation ID of a recorded request and returns which expectation would
serve it now, why each expectation checked before it was passed over,
which lower-priority ones it hides, and how the request was handled when
it arrived; `debugMismatch` compares a request you describe with every
active
expectation, field by field; `explainUnmatched` lists the closest
expectations for recent unmatched requests, optionally with a suggested
JSON patch for each. An unknown or evicted correlation ID fails with the
server's reason.
- Fix an almost-matching expectation from the dashboard's Explain
Unmatched view. Next to each close expectation, **Preview Fix** shows
the smallest change that would make it match the unmatched request (for
example the path, one header's value, or one field of a JSON body) and
the request
matcher before and after; **Apply Fix** updates the expectation only
when you select it, and refuses if anything it would change was edited
in the meantime. Over REST, add `"suggestFixes": true` to `PUT
/mockserver/explainUnmatched` to get each suggestion as a standard JSON
Patch. Values the
log redacts, and bodies the log kept only part of, are never copied into
a fix.
- Find expectations that can never match before you debug a 404:
expectation lint. `PUT /mockserver/lint` checks your active
expectations, or the expectations you send in the body without storing
them, and `mockserver lint expectations.json` checks files with no
server running. It reports an
expectation that another one evaluated earlier always matches first
(shadowed), `times`, `timeToLive` or `percentage` of 0, a path without a
leading `/`, a misspelt method or header name, and STRICT JSON matching
of a body with arrays, among other checks. Creating expectations with
`PUT
/mockserver/expectation` now runs the quick per-expectation checks too:
**the expectations are still stored**, and any problems are counted in
an `x-mockserver-lint-warnings` response header and logged as a `WARN`.
Expectations loaded from an `initializationJsonPath` file are checked
too, each
time the file loads. **Lint is advisory and never rejects an
expectation.** In the dashboard, a **Lint** button on the Active
Expectations panel lists the findings with their severity, rule and
message.
- AI assistants can now ask MockServer why a forward failed, how to fix
a near-miss expectation, which expectations can never match, and what a
template renders, through four new MCP tools: `explain_forward_failure`,
`suggest_expectation_fix` (the same guarded JSON Patch as
`explainUnmatched`'s `"suggestFixes": true`), `lint_expectations`
(returning at most `maxIssues` issues, default 100), and
`test_template`. The first three are read-only, so a principal with only
the READ role can call them when control-plane authorization is on;
`test_template` runs the
template code it is sent, so, like its REST endpoint, it needs the
mutate role. Output is redacted as the event log is when
`redactSecretsInLog` is enabled, and a forward failure's reason is cut
at 2,048 characters.
- Try a response or forward template without creating an expectation:
`PUT /mockserver/template/test`. Send a Velocity, Mustache or JavaScript
template and an optional sample request, and MockServer renders it with
the same engines, security settings and time limits it uses when
serving. It
returns the rendered response (or the request, for a forward template),
or the reason it failed with the line and column in your template.
Output that is not a valid response comes back with what is wrong with
it and the raw text; serving it would answer with a 500 (a 404, or a 502
for a
forward template, with `templateFailureAsServerError=false`). Warnings
point to each Velocity reference that did not resolve, to each Mustache
variable that did not resolve and so rendered as empty text, and to each
`scenario.set(...)` call, which a dry run reports rather than applies;
**a dry
run never changes scenario state or appears in the event log.** A
JavaScript or
Velocity template is always stopped after its time limit, even when that
limit is 0 (then after 5 seconds); a Mustache template, or a Velocity
template busy inside one long Java call, cannot be stopped, so the dry
run answers once the limit plus 5 seconds has passed; at most two dry
runs run
at once, and a third gets a 429. When control-plane authorisation is on,
a dry run needs the mutate role. The route has no bare `/template/test`
alias, so a mock of your own on that path keeps working.
- A failing JavaScript template now says where in your template it
failed. GraalJS counts lines from the wrapper MockServer puts around
your template, so a syntax error named a line two below the real one.
The error in the log now ends with `at template line 2, column 29`,
counted from your
template's first line, and a hint when the cause is an undefined
variable, a field read from a missing value, or an unclosed bracket or
quote. Velocity and Mustache errors already gave the line, and are
unchanged.
- `PUT /mockserver/explain` and `PUT /mockserver/explainUnmatched` can
add a plain-language summary from your own LLM. When the new
`llmExplainNarrationEnabled` property is on (default `false`), **a
runtime LLM backend is configured** (`llmProvider`, or a provider
API-key environment variable)
and the caller adds `?narrate=true`, the response gains a `narration`
field, labelled as AI-generated, beside the unchanged deterministic
explanation. A backend configured for other features is not enough on
its own, and nothing is sent while a request is being served. Credential
values from
the request and your expectations are replaced with `***REDACTED***`
before the explanation leaves MockServer, whether or not
`redactSecretsInLog` is on. The call runs off the request thread and is
bounded by `llmRequestTimeoutMillis` plus two seconds. When narration is
turned off, no backend
is configured, the LLM fails or times out, or two summaries are already
running, `narration` says why it is unavailable instead of returning an
error.
- Three more built-in MCP prompts walk your assistant through the
commonest failures. `why_did_verify_fail`, `fix_my_expectation` and
`why_forward_failed` tell your own assistant which MockServer tools to
call, in which order, and what each result means; **MockServer still
calls no language
model** for these three. `fix_my_expectation` changes an expectation
only after you agree, and replaces it in place, starting from the fix
MockServer suggests with `suggest_expectation_fix`; `why_forward_failed`
starts from the reason `explain_forward_failure` reports, falling back
to comparing
fields or reading the logs only when MockServer has no fix, cannot name
the cause or recorded no failed forward.
- **MySQL, Redis, PostgreSQL and length-prefixed binary protocols can
now be framed and matched as whole messages, and binary proxying gained
several capabilities.** `binaryMessageFraming` (default `RAW`,
unchanged) now also takes `MYSQL`, `REDIS`, `POSTGRESQL` and
`LENGTH_PREFIX` (the last configured
via `binaryMessageLengthPrefixBytes` (1, 2, 4 or 8, default 4),
`binaryMessageLengthPrefixByteOrder` (default `BIG_ENDIAN`),
`binaryMessageLengthPrefixOffset` (bytes before the field, default 0)
and `binaryMessageLengthIncludesPrefix` (whether the length counts the
whole message, default
`false`), which fits protocols such as Thrift's framed transport,
MongoDB's wire protocol and DNS over TCP. As with `POSTGRESQL`, a
message may be at most `maxRequestBodySize` bytes, a connection that
declares a longer one or sends bytes the framing does not allow is
closed, and an unrecognised
value set as a property is logged once and read as the default. To proxy
MySQL, whose server speaks first, also set
`forwardBinaryServerFirstWaitMillis` on a connection with a forward
target (port forwarding, transparent proxy or PROXY protocol); **mocking
MySQL with no upstream server is not
possible**, as MockServer cannot send the server's greeting. A TLS
handshake on a MySQL connection is recognised only straight after an
`SSLRequest`.
- A binary expectation on a proxied PostgreSQL connection can now
forward the message too, and drop or replace the server's reply. Set the
binary response's new `upstream` field (Java:
`binaryResponse(bytes).withUpstream(BinaryResponse.Upstream....)`):
`ANSWER_ONLY` (**the default, unchanged**)
answers and does not forward; `ANSWER_AND_FORWARD` answers, forwards the
message so the real server still sees it, and **drops the server's
reply**; `FORWARD_AND_REPLACE` forwards the message and writes the
binary response in place of the server's reply once that reply has ended
(with a `delay`, the server's later replies wait behind it, so the
client gets them in
order). Both need `matchBinaryExpectationsWhenProxying` (on by default)
and `binaryMessageFraming` set to `POSTGRESQL`, which tells MockServer
where a reply ends; **without that framing the expectation answers as
`ANSWER_ONLY` and one warning is logged per connection**. The field is
in the JSON schema,
the OpenAPI spec and every client library.
- A protocol in which the server speaks first, such as MySQL, SMTP or
FTP, can now be proxied, with the new
`forwardBinaryServerFirstWaitMillis`. Set it (for example to `250`) and
a port-forwarded, transparently proxied or PROXY-protocol connection
whose client sends nothing for that long is
taken as binary: MockServer opens its upstream connection and relays the
greeting, and the rest of the session. **It is off (`0`) by default**,
because a client that opens a connection and sends HTTP only after the
wait would then be relayed to the upstream rather than matched against
your
expectations.
- A `binaryProxyListener` can be told what the upstream server sends
unprompted: the new `onUpstreamMessage` method is called for every read
from the upstream server that is not a message's response — bytes it
sent unprompted, and the rest of a response that arrived in more than
one read. **It
is a default method that does nothing, so existing listeners, lambdas
included, are unaffected and are not called for these reads.** A
listener that overrides it and falls more than 64 calls behind slows the
upstream server down, except while a message is waiting for its
response.
- Separately, `matchBinaryExpectationsWhenProxying` (**on by default**;
set `false` to always forward) lets a binary expectation answer some
messages on an otherwise-proxied connection relayed on one upstream
connection, matched only when its bytes equal the expectation's exactly,
so a test can use a real server for most
of a session and fake one part of it, such as a canned result for one
PostgreSQL query. The upstream never sees an answered message, so the
canned reply must suit the session's real state.
- **A configuration setting you have changed now shows the built-in
default it replaced.** `--print-config` ends the setting's line with
`(default: ...)`, `GET /mockserver/config` and the MCP `diagnose_config`
tool add a `default` field, and the dashboard's Server Info tab shows
the default beside
the value. A default worked out from the JVM heap size, such as
`maxExpectations`, shows the value worked out now. A credential's
default is always shown as `***REDACTED***`, and `default` is left out
when MockServer cannot work it out.
- `--print-config`, `GET /mockserver/config` and the dashboard's Server
Info tab also now list the configuration MockServer ignored: after the
properties in effect they list each unrecognised `mockserver.*` /
`MOCKSERVER_*` key with its suggested correction (name only, never the
value it was set
to), and `GET /mockserver/config?nonDefault=true` lists only the
properties not at their built-in default, which is everything you have
changed. A property at its built-in default now shows that default's
value instead of `(default)`; a default worked out from another
property, such as
`ringBufferSize`, shows the value worked out now. Credentials are still
shown only as `***REDACTED***`, including at their default.
- Eight new event-log gauges on `/mockserver/metrics`: four for the
in-flight ring (`mock_server_event_log_ring_occupancy`,
`_ring_capacity`, `_in_flight_bytes`, `_max_in_flight_bytes`) and four
for the retained deque (`mock_server_event_log_retained_entries`,
`_retained_bytes`,
`_max_retained_entries`, `_max_retained_bytes`).
- Expectation-store and accept-queue metrics:
`mock_server_expectations_bytes` reports live memory held by the store;
`mock_server_max_expectations_bytes` the byte budget in force (`0` when
`maxExpectationsSizeInBytes` is off);
`mock_server_expectations_byte_evicted_total` counts byte-driven
evictions. `mock_server_accept_queue_backlog_configured` reports the
configured accept-queue depth; on Linux,
`mock_server_accept_queue_backlog_effective` reports the kernel-capped
value.
- New JVM-level metrics: `jvm_runtime_info` (gauge, always 1, reports
the running JVM/GC in labels), `jvm_memory_allocated_bytes` (a monotonic
gauge of cumulative bytes allocated across all threads),
`jvm_buffer_pool_used_bytes`/`jvm_buffer_pool_used_buffers` (NIO buffer
pools), and
`netty_direct_memory_used_bytes` (Netty's own direct-memory tracking).
- Two new histograms:
`mock_server_request_read_to_decode_duration_seconds` (from MockServer
reading the first bytes of a request to it having decoded the headers)
and `mock_server_request_transport_duration_seconds` (from reading a
request's headers to the last byte of its response being
written, including delays — unlike the existing
`mock_server_request_duration_seconds`, which stops when a response is
handed off for writing).
- `mock_server_inbound_connections_open`,
`mock_server_inbound_connections_rejected_total` and
`mock_server_inbound_connections_idle_closed_total` (see
`maxInboundConnections` below).
- `mock_server_scheduler_queued_tasks` and
`mock_server_template_action_queued_tasks` show the depth of the action
and template-render queues, which are deliberately not limited because
their work must not be dropped.
- **New safety limits for stored expectations, pending work and
connections, each configurable and each off or generous by default.**
`maxExpectationsSizeInBytes` (default 0 = off) caps stored-expectation
memory by byte budget alongside the existing `maxExpectations` count.
`maxPendingDelayedResponses` and `maxQueuedTemplateActions` (both sized
from heap, capped at 100,000, or 1,000 when the JVM reports no heap
limit; `0` restores the old unbounded behaviour) bound requests waiting
on a delay or a template thread, answering `503 Service Unavailable`
with `Retry-After:
1` past the limit instead of growing memory without bound (a refused
request still counts as a match; delayed side actions are dropped, not
refused, once their own equal-sized budget is full; a forwarded response
skips its chaos latency rather than being refused); delayed WebSocket
replies get the
same budget, closing the WebSocket with status `1013` (Try Again Later)
once full, and reads pause at 128 waiting replies per connection (a
fixed constant, no setting) so a fast-sending client is slowed by TCP
flow control instead of growing memory; reply frames are now sent
strictly in delay order.
`maxInboundConnections` (default 0 = no limit) caps open client
connections: a connection beyond the limit is reset at once instead of
being accepted, a warning is logged at most every 10 seconds, and new
connections are accepted again as soon as one closes. A CONNECT/SOCKS
tunnel to MockServer
itself uses two slots, and if its second is refused the client now gets
a `502` instead of waiting forever. `mockserver.soBacklog` (default
1024, previously hard-coded) makes the TCP accept-queue depth
configurable; the effective depth is still capped by the kernel
(`net.core.somaxconn` on
Linux, `kern.ipc.somaxconn` on macOS).
- **New Linux-only standalone jars and an HTTP/3 Docker image variant.**
`-jar-with-dependencies-linux-x86_64.jar` and
`-jar-with-dependencies-linux-aarch_64.jar` are \~13 MB smaller by
carrying only their own architecture's natives.
`mockserver/mockserver:-http3` (also
`mockserver--http3`, `latest-http3`, and
`snapshot-http3`/`mockserver-snapshot-http3` for `master` builds; Helm
`image.variant=http3`) is the standard image plus the QUIC native,
needed to actually serve HTTP/3 (see *Upgrading from 8.0.0*).
- **Dashboard: template dry-run, log-history tuning, and status-ranged
breakpoints.** The Mocks view's response/forward template steps gain a
**Test Template** button (see above). The dashboard WebSocket now
accepts `?logLimit=N` (up to 500, default 100) for more log/request rows
per update. The
Breakpoints form gains **Min status**/**Max status** fields and a
`status:` scope-box syntax, limited to the Response phase.
- **A template error body now gives the template line and column and a
hint for common mistakes**, when the engine gives them, following the
engine's error message, so a template bug is easy to tell apart from a
request that matched no expectation (see the BREAKING `500`-by-default
entry under
*Changed* for the response shape and migration).
- **A byte budget for memory the OpenAI Responses API mock keeps for
`previous_response_id`/`GET /v1/responses/{id}`**
(`maxOpenAiResponsesSizeInBytes`, default a twentieth of the heap; `0`
limits by count only).
- **A startup warning for each insecure default a future major release
will change** (`forwardProxyBlockPrivateNetworks` to become `true`,
`localBoundIP` to become `127.0.0.1`,
`attemptToProxyIfNoMatchingExpectation` to become `false`, and the HTTP
parsing limits
`maxInitialLineLength`/`maxHeaderSize`/`maxChunkSize` to become
8192/16384/16384 bytes), once per JVM; setting the property yourself
silences its warning, so you can choose now and not be surprised when
the defaults change. No default changes in this release. Misspelt
`mockserver.*`/`MOCKSERVER_*` properties now get a "did you mean"
suggestion at startup, in the
form you used (`MOCKSERVER_METRICS_ENABLE` suggests
`MOCKSERVER_METRICS_ENABLED`, `mockserver.max_expectations` suggests
`mockserver.maxExpectations`), naming the property only, never the value
(see the `--print-config`/`GET /mockserver/config` sub-bullet above for
where else ignored keys and
defaults are listed).
- **A failed verification now ends with a short summary of what
MockServer actually saw** (`detailedVerificationFailures`, default on):
the expected vs. actual count, the closest non-matching
requests/responses with their differing fields, and — for a sequence —
which step failed. The block is
appended, so code that checks the start of the message is unaffected;
set `detailedVerificationFailures=false` to drop it.
- **Client parity: conditional matchers and per-step load checks.** The
Python, Go, .NET, Rust and PHP clients can now build a conditional
(if/then/else) request matcher and read one back: Python adds
`ConditionalRequestDefinition` (`if_request`, `then_request`,
`else_request`, `not_condition`); Go
adds `If`/`Then`/`Else` to `HttpRequest` with `ConditionalRequest(...)`;
.NET adds `If`/`Then`/`Else` with `HttpRequest.RequestIf(...)`; Rust and
PHP add `HttpRequest::conditional(...)`; the .NET, Rust and PHP request
matchers also gain the OpenAPI fields (`specUrlOrPayload`,
`operationId`,
`contextPathPrefix`) a branch can use. The same five clients'
load-scenario steps now take per-step checks (`LoadCheck`: `source`,
`headerName`, `jsonPath`, `comparator`, `value`, named in each
language's style) and a `checks` list; Go, .NET and Rust also gain a
typed `CHECK_FAILURE_RATE`
threshold metric, and Rust's `LoadStep` gains `name(...)`/`label(key,
value)` and `LoadScenario` gains `label(key, value)` (see the "Every
client can now ask why a request matched" sub-bullet above for the
`explain`/`debugMismatch`/`explainUnmatched` parity).
- **Website: a symptom-first Troubleshooting Index**, linking a visible
symptom (404, forward 502, failed TLS handshake, empty dashboard, LLM
mock shape mismatch, container won't start, etc.) to the exact
diagnostic to use, and a new "Throughput by hardware size" section on
`performance.html` showing
healthy/peak request rate, latency and request-history retention from 1
core/512 MB up to 6 cores/2 GB, driven by four load generators per size
so the test measures MockServer rather than the generator.
- **The DNS port MockServer chose can now be read from every embedded
API, not just `MockServer.getDnsPort()` and the start-up log**: also
`ClientAndServer.getDnsPort()` (including on the `ClientAndServer` the
JUnit 5 extension injects), `MockServerRule.getDnsPort()`, the Spring
listener's
`${mockServerDnsPort}` placeholder and `@MockServerDnsPort` annotation,
and the `dnsPort` field of `PUT /mockserver/status`'s answer (each gives
`-1`, or the field is left out, while DNS mocking is off).
`@MockServerTest` now also accepts `mockserver.dnsEnabled` and
`mockserver.dnsPort`.
##### Changed
- **BREAKING: binary (non-HTTP) proxying now keeps one upstream
connection for a client's whole life; forwarding one message per
upstream connection, and
`forwardBinaryRequestsWithoutWaitingForResponse` with it, are removed.**
The upstream now sees one connection per client connection, held open
as long as the client's is: everything it sends reaches the client,
closing its connection closes the client's too, and a clien
> [!IMPORTANT]
> ✂ PR body was truncated to here.
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/prometheus/client_java).
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
prometheus-metrics-exporter-pushgateway/pom.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/prometheus-metrics-exporter-pushgateway/pom.xml b/prometheus-metrics-exporter-pushgateway/pom.xml
index b09280b842..4d15612a4c 100644
--- a/prometheus-metrics-exporter-pushgateway/pom.xml
+++ b/prometheus-metrics-exporter-pushgateway/pom.xml
@@ -35,7 +35,7 @@
org.mock-servermockserver-netty-no-dependencies
- 8.0.0
+ 9.0.0test
From 5d36228aeddfbd7d9160fe7398fa07121431d20c Mon Sep 17 00:00:00 2001
From: david-mollitor-db
Date: Fri, 16 Oct 2026 03:48:04 -0400
Subject: [PATCH 240/255] perf: scan metric name validity once per metric
family (#2443)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
## Summary
The Prometheus, OpenMetrics, and OpenMetrics 2 text writers validate the
metric
name with `PrometheusNaming.isValidLegacyMetricName(name)` on **every
data point
line** — once to choose bare-vs-braced metric syntax, and again inside
`writeName()`. The metric name is constant across all data points of a
family,
so for a family with N series this re-scans the same string ~2N times
per scrape.
This change scans the name **once per family** and threads the boolean
result
down through `writeNameAndLabels()` / `writeName()` (a new
`writeName(writer, name, nameType, boolean validLegacyName)` overload
trusts the
precomputed value). A suffix built from legacy characters (`_total`,
`_bucket`,
`_count`, `_created`, …) never changes legacy validity, so the base-name
result
applies to the suffixed names too.
## No behavior change
Output is byte-identical — the full exposition-format test suite passes
unchanged, including the golden-output `ExpositionFormatsTest` across
every
format and escaping scheme, `OpenMetrics2TextFormatWriterTest`, and
`PrometheusNamingTest`. This is a CPU-only optimization; per-scrape
allocation is
unchanged.
## Benchmark
A local high-cardinality scrape+serialize benchmark (one counter family,
100,000
series; JMH `-f 1 -wi 4 -i 5`, GC profiler):
| | ops/s | gc.alloc.rate.norm |
|---|---|---|
| before | 6.876 ± 0.176 | 50,921,114 B/op |
| after | 7.346 ± 0.327 | 50,921,081 B/op |
~+7% throughput on this path, allocation unchanged. The effect scales
with the
number of series and the metric-name length.
## Notes
The per-label-name validity check is a similar (and larger, O(N ×
labels))
per-scrape rescan and is a natural follow-up; this PR intentionally
scopes to the
metric name only.
This pull request and its description were written by Isaac.
Signed-off-by: David Mollitor
Co-authored-by: Gregor Zeitlinger
---
.../OpenMetrics2TextFormatWriter.java | 104 ++++++++++++------
.../OpenMetricsTextFormatWriter.java | 75 +++++++++----
.../PrometheusTextFormatWriter.java | 65 +++++++----
.../expositionformats/TextFormatUtil.java | 40 ++++---
4 files changed, 194 insertions(+), 90 deletions(-)
diff --git a/prometheus-metrics-exposition-textformats/src/main/java/io/prometheus/metrics/expositionformats/OpenMetrics2TextFormatWriter.java b/prometheus-metrics-exposition-textformats/src/main/java/io/prometheus/metrics/expositionformats/OpenMetrics2TextFormatWriter.java
index 1843dfaaa8..b2e5473ce7 100644
--- a/prometheus-metrics-exposition-textformats/src/main/java/io/prometheus/metrics/expositionformats/OpenMetrics2TextFormatWriter.java
+++ b/prometheus-metrics-exposition-textformats/src/main/java/io/prometheus/metrics/expositionformats/OpenMetrics2TextFormatWriter.java
@@ -180,9 +180,10 @@ private void writeCounter(Writer writer, CounterSnapshot snapshot, EscapingSchem
if (openMetrics2Properties.getSuffixes()) {
counterName = ensureSuffix(counterName, "_total");
}
+ boolean nameValidLegacy = PrometheusNaming.isValidLegacyMetricName(counterName);
writeMetadataWithName(writer, counterName, "counter", metadata);
for (CounterSnapshot.CounterDataPointSnapshot data : snapshot.getDataPoints()) {
- writeNameAndLabels(writer, counterName, null, data.getLabels(), scheme);
+ writeNameAndLabels(writer, counterName, null, data.getLabels(), scheme, nameValidLegacy);
writeDouble(writer, data.getValue());
if (data.hasScrapeTimestamp()) {
writer.write(' ');
@@ -201,9 +202,10 @@ private void writeGauge(Writer writer, GaugeSnapshot snapshot, EscapingScheme sc
throws IOException {
MetricMetadata metadata = snapshot.getMetadata();
String name = getMetricName(metadata, scheme);
+ boolean nameValidLegacy = PrometheusNaming.isValidLegacyMetricName(name);
writeMetadataWithName(writer, name, "gauge", metadata);
for (GaugeSnapshot.GaugeDataPointSnapshot data : snapshot.getDataPoints()) {
- writeNameAndLabels(writer, name, null, data.getLabels(), scheme);
+ writeNameAndLabels(writer, name, null, data.getLabels(), scheme, nameValidLegacy);
writeDouble(writer, data.getValue());
if (exemplarsOnAllMetricTypesEnabled) {
writeScrapeTimestampAndExemplar(writer, data, data.getExemplar(), scheme);
@@ -219,40 +221,51 @@ private void writeHistogram(Writer writer, HistogramSnapshot snapshot, EscapingS
openMetrics2Properties.getCompositeValues() || openMetrics2Properties.getNativeHistograms();
MetricMetadata metadata = snapshot.getMetadata();
String name = getMetricName(metadata, scheme);
+ boolean nameValidLegacy = PrometheusNaming.isValidLegacyMetricName(name);
if (!compositeHistogram && !openMetrics2Properties.getExemplarCompliance()) {
- writeClassicHistogram(writer, name, snapshot, scheme);
+ writeClassicHistogram(writer, name, snapshot, scheme, nameValidLegacy);
return;
}
if (snapshot.isGaugeHistogram()) {
writeMetadataWithName(writer, name, "gaugehistogram", metadata);
for (HistogramSnapshot.HistogramDataPointSnapshot data : snapshot.getDataPoints()) {
if (openMetrics2Properties.getNativeHistograms() && data.hasNativeHistogramData()) {
- writeNativeHistogramDataPoint(writer, name, "gcount", "gsum", data, scheme, false);
+ writeNativeHistogramDataPoint(
+ writer, name, "gcount", "gsum", data, scheme, false, nameValidLegacy);
} else {
- writeCompositeHistogramDataPoint(writer, name, "gcount", "gsum", data, scheme, false);
+ writeCompositeHistogramDataPoint(
+ writer, name, "gcount", "gsum", data, scheme, false, nameValidLegacy);
}
}
} else {
writeMetadataWithName(writer, name, "histogram", metadata);
for (HistogramSnapshot.HistogramDataPointSnapshot data : snapshot.getDataPoints()) {
if (openMetrics2Properties.getNativeHistograms() && data.hasNativeHistogramData()) {
- writeNativeHistogramDataPoint(writer, name, "count", "sum", data, scheme, true);
+ writeNativeHistogramDataPoint(
+ writer, name, "count", "sum", data, scheme, true, nameValidLegacy);
} else {
- writeCompositeHistogramDataPoint(writer, name, "count", "sum", data, scheme, true);
+ writeCompositeHistogramDataPoint(
+ writer, name, "count", "sum", data, scheme, true, nameValidLegacy);
}
}
}
}
private void writeClassicHistogram(
- Writer writer, String name, HistogramSnapshot snapshot, EscapingScheme scheme)
+ Writer writer,
+ String name,
+ HistogramSnapshot snapshot,
+ EscapingScheme scheme,
+ boolean nameValidLegacy)
throws IOException {
if (snapshot.isGaugeHistogram()) {
writeMetadataWithName(writer, name, "gaugehistogram", snapshot.getMetadata());
- writeClassicHistogramDataPoints(writer, name, "_gcount", "_gsum", snapshot, scheme);
+ writeClassicHistogramDataPoints(
+ writer, name, "_gcount", "_gsum", snapshot, scheme, nameValidLegacy);
} else {
writeMetadataWithName(writer, name, "histogram", snapshot.getMetadata());
- writeClassicHistogramDataPoints(writer, name, "_count", "_sum", snapshot, scheme);
+ writeClassicHistogramDataPoints(
+ writer, name, "_count", "_sum", snapshot, scheme, nameValidLegacy);
}
}
@@ -262,7 +275,8 @@ private void writeClassicHistogramDataPoints(
String countSuffix,
String sumSuffix,
HistogramSnapshot snapshot,
- EscapingScheme scheme)
+ EscapingScheme scheme,
+ boolean nameValidLegacy)
throws IOException {
String bucketName = name + "_bucket";
for (HistogramSnapshot.HistogramDataPointSnapshot data : snapshot.getDataPoints()) {
@@ -272,7 +286,14 @@ private void writeClassicHistogramDataPoints(
for (int i = 0; i < buckets.size(); i++) {
cumulativeCount += buckets.getCount(i);
writeNameAndLabels(
- writer, bucketName, null, data.getLabels(), scheme, "le", buckets.getUpperBound(i));
+ writer,
+ bucketName,
+ null,
+ data.getLabels(),
+ scheme,
+ "le",
+ buckets.getUpperBound(i),
+ nameValidLegacy);
writeLong(writer, cumulativeCount);
Exemplar exemplar;
if (i == 0) {
@@ -283,9 +304,10 @@ private void writeClassicHistogramDataPoints(
writeScrapeTimestampAndExemplar(writer, data, exemplar, scheme);
}
if (data.hasCount() && data.hasSum()) {
- writeClassicCountAndSum(writer, name, data, countSuffix, sumSuffix, exemplars, scheme);
+ writeClassicCountAndSum(
+ writer, name, data, countSuffix, sumSuffix, exemplars, scheme, nameValidLegacy);
}
- writeClassicCreated(writer, name, data, scheme);
+ writeClassicCreated(writer, name, data, scheme, nameValidLegacy);
}
}
@@ -296,16 +318,17 @@ private void writeClassicCountAndSum(
String countSuffix,
String sumSuffix,
Exemplars exemplars,
- EscapingScheme scheme)
+ EscapingScheme scheme,
+ boolean nameValidLegacy)
throws IOException {
- writeNameAndLabels(writer, name, countSuffix, data.getLabels(), scheme);
+ writeNameAndLabels(writer, name, countSuffix, data.getLabels(), scheme, nameValidLegacy);
writeLong(writer, data.getCount());
if (exemplarsOnAllMetricTypesEnabled) {
writeScrapeTimestampAndExemplar(writer, data, exemplars.getLatest(), scheme);
} else {
writeScrapeTimestampAndExemplar(writer, data, null, scheme);
}
- writeNameAndLabels(writer, name, sumSuffix, data.getLabels(), scheme);
+ writeNameAndLabels(writer, name, sumSuffix, data.getLabels(), scheme, nameValidLegacy);
writeDouble(writer, data.getSum());
writeScrapeTimestampAndExemplar(writer, data, null, scheme);
}
@@ -314,10 +337,11 @@ private void writeClassicCreated(
Writer writer,
String name,
HistogramSnapshot.HistogramDataPointSnapshot data,
- EscapingScheme scheme)
+ EscapingScheme scheme,
+ boolean nameValidLegacy)
throws IOException {
if (createdTimestampsEnabled && data.hasCreatedTimestamp()) {
- writeNameAndLabels(writer, name, "_created", data.getLabels(), scheme);
+ writeNameAndLabels(writer, name, "_created", data.getLabels(), scheme, nameValidLegacy);
writeOpenMetricsTimestamp(writer, data.getCreatedTimestampMillis());
if (data.hasScrapeTimestamp()) {
writer.write(' ');
@@ -334,9 +358,10 @@ private void writeCompositeHistogramDataPoint(
String sumKey,
HistogramSnapshot.HistogramDataPointSnapshot data,
EscapingScheme scheme,
- boolean includeStartTimestamp)
+ boolean includeStartTimestamp,
+ boolean nameValidLegacy)
throws IOException {
- writeNameAndLabels(writer, name, null, data.getLabels(), scheme);
+ writeNameAndLabels(writer, name, null, data.getLabels(), scheme, nameValidLegacy);
writer.write('{');
writer.write(countKey);
writer.write(':');
@@ -366,9 +391,10 @@ private void writeNativeHistogramDataPoint(
String sumKey,
HistogramSnapshot.HistogramDataPointSnapshot data,
EscapingScheme scheme,
- boolean includeStartTimestamp)
+ boolean includeStartTimestamp,
+ boolean nameValidLegacy)
throws IOException {
- writeNameAndLabels(writer, name, null, data.getLabels(), scheme);
+ writeNameAndLabels(writer, name, null, data.getLabels(), scheme, nameValidLegacy);
writer.write('{');
writer.write(countKey);
writer.write(':');
@@ -489,6 +515,7 @@ private void writeSummary(Writer writer, SummarySnapshot snapshot, EscapingSchem
om1Writer.writeSummary(writer, snapshot, scheme, name);
return;
}
+ boolean nameValidLegacy = PrometheusNaming.isValidLegacyMetricName(name);
boolean metadataWritten = false;
for (SummarySnapshot.SummaryDataPointSnapshot data : snapshot.getDataPoints()) {
if (data.getQuantiles().size() == 0 && !data.hasCount() && !data.hasSum()) {
@@ -498,7 +525,7 @@ private void writeSummary(Writer writer, SummarySnapshot snapshot, EscapingSchem
writeMetadataWithName(writer, name, "summary", metadata);
metadataWritten = true;
}
- writeCompositeSummaryDataPoint(writer, name, data, scheme);
+ writeCompositeSummaryDataPoint(writer, name, data, scheme, nameValidLegacy);
}
}
@@ -506,9 +533,10 @@ private void writeCompositeSummaryDataPoint(
Writer writer,
String name,
SummarySnapshot.SummaryDataPointSnapshot data,
- EscapingScheme scheme)
+ EscapingScheme scheme,
+ boolean nameValidLegacy)
throws IOException {
- writeNameAndLabels(writer, name, null, data.getLabels(), scheme);
+ writeNameAndLabels(writer, name, null, data.getLabels(), scheme, nameValidLegacy);
writer.write('{');
boolean first = true;
if (data.hasCount()) {
@@ -557,9 +585,10 @@ private void writeInfo(Writer writer, InfoSnapshot snapshot, EscapingScheme sche
// OM2 spec: Info MetricFamily name MUST end in _info.
// In OM2, TYPE/HELP use the same name as the data lines.
String infoName = ensureSuffix(getMetricName(metadata, scheme), "_info");
+ boolean nameValidLegacy = PrometheusNaming.isValidLegacyMetricName(infoName);
writeMetadataWithName(writer, infoName, "info", metadata);
for (InfoSnapshot.InfoDataPointSnapshot data : snapshot.getDataPoints()) {
- writeNameAndLabels(writer, infoName, null, data.getLabels(), scheme);
+ writeNameAndLabels(writer, infoName, null, data.getLabels(), scheme, nameValidLegacy);
writer.write("1");
writeScrapeTimestampAndExemplar(writer, data, null, scheme);
}
@@ -605,9 +634,10 @@ private void writeUnknown(Writer writer, UnknownSnapshot snapshot, EscapingSchem
throws IOException {
MetricMetadata metadata = snapshot.getMetadata();
String name = getMetricName(metadata, scheme);
+ boolean nameValidLegacy = PrometheusNaming.isValidLegacyMetricName(name);
writeMetadataWithName(writer, name, "unknown", metadata);
for (UnknownSnapshot.UnknownDataPointSnapshot data : snapshot.getDataPoints()) {
- writeNameAndLabels(writer, name, null, data.getLabels(), scheme);
+ writeNameAndLabels(writer, name, null, data.getLabels(), scheme, nameValidLegacy);
writeDouble(writer, data.getValue());
if (exemplarsOnAllMetricTypesEnabled) {
writeScrapeTimestampAndExemplar(writer, data, data.getExemplar(), scheme);
@@ -622,9 +652,10 @@ private void writeNameAndLabels(
String name,
@Nullable String suffix,
Labels labels,
- EscapingScheme escapingScheme)
+ EscapingScheme escapingScheme,
+ boolean nameValidLegacy)
throws IOException {
- writeNameAndLabels(writer, name, suffix, labels, escapingScheme, null, 0.0);
+ writeNameAndLabels(writer, name, suffix, labels, escapingScheme, null, 0.0, nameValidLegacy);
}
private void writeNameAndLabels(
@@ -634,16 +665,19 @@ private void writeNameAndLabels(
Labels labels,
EscapingScheme escapingScheme,
@Nullable String additionalLabelName,
- double additionalLabelValue)
+ double additionalLabelValue,
+ boolean nameValidLegacy)
throws IOException {
boolean metricInsideBraces = false;
- // If the name does not pass the legacy validity check, we must put the
- // metric name inside the braces.
- if (!PrometheusNaming.isValidLegacyMetricName(name)) {
+ // If the name does not pass the legacy validity check, we must put the metric name inside the
+ // braces. Validity is scanned once per family by the caller (the metric name is constant across
+ // all data points), not re-scanned for every series. A suffix built from legacy characters
+ // (_total, _bucket, ...) does not change legacy validity, so the base-name check applies here.
+ if (!nameValidLegacy) {
metricInsideBraces = true;
writer.write('{');
}
- writeName(writer, suffix != null ? name + suffix : name, NameType.Metric);
+ writeName(writer, suffix != null ? name + suffix : name, NameType.Metric, nameValidLegacy);
if (!labels.isEmpty() || additionalLabelName != null) {
writeLabels(
writer,
diff --git a/prometheus-metrics-exposition-textformats/src/main/java/io/prometheus/metrics/expositionformats/OpenMetricsTextFormatWriter.java b/prometheus-metrics-exposition-textformats/src/main/java/io/prometheus/metrics/expositionformats/OpenMetricsTextFormatWriter.java
index 3cfce80a8e..3f0bccb039 100644
--- a/prometheus-metrics-exposition-textformats/src/main/java/io/prometheus/metrics/expositionformats/OpenMetricsTextFormatWriter.java
+++ b/prometheus-metrics-exposition-textformats/src/main/java/io/prometheus/metrics/expositionformats/OpenMetricsTextFormatWriter.java
@@ -146,12 +146,13 @@ private void writeCounter(Writer writer, CounterSnapshot snapshot, EscapingSchem
MetricMetadata metadata = snapshot.getMetadata();
String counterName = resolveExpositionName(metadata, "_total", scheme);
String baseName = resolveBaseName(counterName, "_total");
+ boolean nameValidLegacy = PrometheusNaming.isValidLegacyMetricName(counterName);
writeMetadataWithName(writer, baseName, "counter", metadata);
for (CounterSnapshot.CounterDataPointSnapshot data : snapshot.getDataPoints()) {
- writeNameAndLabels(writer, counterName, null, data.getLabels(), scheme);
+ writeNameAndLabels(writer, counterName, null, data.getLabels(), scheme, nameValidLegacy);
writeDouble(writer, data.getValue());
writeScrapeTimestampAndExemplar(writer, data, data.getExemplar(), scheme);
- writeCreated(writer, baseName, data, scheme);
+ writeCreated(writer, baseName, data, scheme, nameValidLegacy);
}
}
@@ -160,8 +161,9 @@ private void writeGauge(Writer writer, GaugeSnapshot snapshot, EscapingScheme sc
MetricMetadata metadata = snapshot.getMetadata();
writeMetadata(writer, "gauge", metadata, scheme);
String name = getMetadataName(metadata, scheme);
+ boolean nameValidLegacy = PrometheusNaming.isValidLegacyMetricName(name);
for (GaugeSnapshot.GaugeDataPointSnapshot data : snapshot.getDataPoints()) {
- writeNameAndLabels(writer, name, null, data.getLabels(), scheme);
+ writeNameAndLabels(writer, name, null, data.getLabels(), scheme, nameValidLegacy);
writeDouble(writer, data.getValue());
if (exemplarsOnAllMetricTypesEnabled) {
writeScrapeTimestampAndExemplar(writer, data, data.getExemplar(), scheme);
@@ -197,6 +199,7 @@ private void writeClassicHistogramBuckets(
String bucketName = name + "_bucket";
String countName = name + countSuffix;
String sumName = name + sumSuffix;
+ boolean nameValidLegacy = PrometheusNaming.isValidLegacyMetricName(name);
for (HistogramSnapshot.HistogramDataPointSnapshot data : dataList) {
ClassicHistogramBuckets buckets = getClassicBuckets(data);
Exemplars exemplars = data.getExemplars();
@@ -204,7 +207,14 @@ private void writeClassicHistogramBuckets(
for (int i = 0; i < buckets.size(); i++) {
cumulativeCount += buckets.getCount(i);
writeNameAndLabels(
- writer, bucketName, null, data.getLabels(), scheme, "le", buckets.getUpperBound(i));
+ writer,
+ bucketName,
+ null,
+ data.getLabels(),
+ scheme,
+ "le",
+ buckets.getUpperBound(i),
+ nameValidLegacy);
writeLong(writer, cumulativeCount);
Exemplar exemplar;
if (i == 0) {
@@ -216,9 +226,9 @@ private void writeClassicHistogramBuckets(
}
// In OpenMetrics format, histogram _count and _sum are either both present or both absent.
if (data.hasCount() && data.hasSum()) {
- writeCountAndSum(writer, countName, sumName, data, exemplars, scheme);
+ writeCountAndSum(writer, countName, sumName, data, exemplars, scheme, nameValidLegacy);
}
- writeCreated(writer, name, data, scheme);
+ writeCreated(writer, name, data, scheme, nameValidLegacy);
}
}
@@ -243,6 +253,7 @@ void writeSummary(Writer writer, SummarySnapshot snapshot, EscapingScheme scheme
MetricMetadata metadata = snapshot.getMetadata();
String countName = name + "_count";
String sumName = name + "_sum";
+ boolean nameValidLegacy = PrometheusNaming.isValidLegacyMetricName(name);
for (SummarySnapshot.SummaryDataPointSnapshot data : snapshot.getDataPoints()) {
if (data.getQuantiles().size() == 0 && !data.hasCount() && !data.hasSum()) {
continue;
@@ -260,7 +271,14 @@ void writeSummary(Writer writer, SummarySnapshot snapshot, EscapingScheme scheme
int exemplarIndex = 1;
for (Quantile quantile : data.getQuantiles()) {
writeNameAndLabels(
- writer, name, null, data.getLabels(), scheme, "quantile", quantile.getQuantile());
+ writer,
+ name,
+ null,
+ data.getLabels(),
+ scheme,
+ "quantile",
+ quantile.getQuantile(),
+ nameValidLegacy);
writeDouble(writer, quantile.getValue());
if (exemplars.size() > 0 && exemplarsOnAllMetricTypesEnabled) {
exemplarIndex = (exemplarIndex + 1) % exemplars.size();
@@ -270,8 +288,8 @@ void writeSummary(Writer writer, SummarySnapshot snapshot, EscapingScheme scheme
}
}
// Unlike histograms, summaries can have only a count or only a sum according to OpenMetrics.
- writeCountAndSum(writer, countName, sumName, data, exemplars, scheme);
- writeCreated(writer, name, data, scheme);
+ writeCountAndSum(writer, countName, sumName, data, exemplars, scheme, nameValidLegacy);
+ writeCreated(writer, name, data, scheme, nameValidLegacy);
}
}
@@ -280,9 +298,10 @@ private void writeInfo(Writer writer, InfoSnapshot snapshot, EscapingScheme sche
MetricMetadata metadata = snapshot.getMetadata();
String infoName = resolveExpositionName(metadata, "_info", scheme);
String baseName = resolveBaseName(infoName, "_info");
+ boolean nameValidLegacy = PrometheusNaming.isValidLegacyMetricName(infoName);
writeMetadataWithName(writer, baseName, "info", metadata);
for (InfoSnapshot.InfoDataPointSnapshot data : snapshot.getDataPoints()) {
- writeNameAndLabels(writer, infoName, null, data.getLabels(), scheme);
+ writeNameAndLabels(writer, infoName, null, data.getLabels(), scheme, nameValidLegacy);
writer.write("1");
writeScrapeTimestampAndExemplar(writer, data, null, scheme);
}
@@ -329,8 +348,9 @@ private void writeUnknown(Writer writer, UnknownSnapshot snapshot, EscapingSchem
MetricMetadata metadata = snapshot.getMetadata();
writeMetadata(writer, "unknown", metadata, scheme);
String name = getMetadataName(metadata, scheme);
+ boolean nameValidLegacy = PrometheusNaming.isValidLegacyMetricName(name);
for (UnknownSnapshot.UnknownDataPointSnapshot data : snapshot.getDataPoints()) {
- writeNameAndLabels(writer, name, null, data.getLabels(), scheme);
+ writeNameAndLabels(writer, name, null, data.getLabels(), scheme, nameValidLegacy);
writeDouble(writer, data.getValue());
if (exemplarsOnAllMetricTypesEnabled) {
writeScrapeTimestampAndExemplar(writer, data, data.getExemplar(), scheme);
@@ -346,10 +366,11 @@ private void writeCountAndSum(
String sumName,
DistributionDataPointSnapshot data,
Exemplars exemplars,
- EscapingScheme scheme)
+ EscapingScheme scheme,
+ boolean nameValidLegacy)
throws IOException {
if (data.hasCount()) {
- writeNameAndLabels(writer, countName, null, data.getLabels(), scheme);
+ writeNameAndLabels(writer, countName, null, data.getLabels(), scheme, nameValidLegacy);
writeLong(writer, data.getCount());
if (exemplarsOnAllMetricTypesEnabled) {
writeScrapeTimestampAndExemplar(writer, data, exemplars.getLatest(), scheme);
@@ -358,17 +379,21 @@ private void writeCountAndSum(
}
}
if (data.hasSum()) {
- writeNameAndLabels(writer, sumName, null, data.getLabels(), scheme);
+ writeNameAndLabels(writer, sumName, null, data.getLabels(), scheme, nameValidLegacy);
writeDouble(writer, data.getSum());
writeScrapeTimestampAndExemplar(writer, data, null, scheme);
}
}
private void writeCreated(
- Writer writer, String baseName, DataPointSnapshot data, EscapingScheme scheme)
+ Writer writer,
+ String baseName,
+ DataPointSnapshot data,
+ EscapingScheme scheme,
+ boolean nameValidLegacy)
throws IOException {
if (createdTimestampsEnabled && data.hasCreatedTimestamp()) {
- writeNameAndLabels(writer, baseName, "_created", data.getLabels(), scheme);
+ writeNameAndLabels(writer, baseName, "_created", data.getLabels(), scheme, nameValidLegacy);
writeOpenMetricsTimestamp(writer, data.getCreatedTimestampMillis());
if (data.hasScrapeTimestamp()) {
writer.write(' ');
@@ -383,9 +408,10 @@ private void writeNameAndLabels(
String name,
@Nullable String suffix,
Labels labels,
- EscapingScheme escapingScheme)
+ EscapingScheme escapingScheme,
+ boolean nameValidLegacy)
throws IOException {
- writeNameAndLabels(writer, name, suffix, labels, escapingScheme, null, 0.0);
+ writeNameAndLabels(writer, name, suffix, labels, escapingScheme, null, 0.0, nameValidLegacy);
}
private void writeNameAndLabels(
@@ -395,16 +421,19 @@ private void writeNameAndLabels(
Labels labels,
EscapingScheme escapingScheme,
@Nullable String additionalLabelName,
- double additionalLabelValue)
+ double additionalLabelValue,
+ boolean nameValidLegacy)
throws IOException {
boolean metricInsideBraces = false;
- // If the name does not pass the legacy validity check, we must put the
- // metric name inside the braces.
- if (!PrometheusNaming.isValidLegacyMetricName(name)) {
+ // If the name does not pass the legacy validity check, we must put the metric name inside the
+ // braces. Validity is scanned once per family by the caller (the metric name is constant across
+ // all data points), not re-scanned for every series. A suffix built from legacy characters
+ // (_total, _bucket, ...) does not change legacy validity, so the base-name check applies here.
+ if (!nameValidLegacy) {
metricInsideBraces = true;
writer.write('{');
}
- writeName(writer, suffix != null ? name + suffix : name, NameType.Metric);
+ writeName(writer, suffix != null ? name + suffix : name, NameType.Metric, nameValidLegacy);
if (!labels.isEmpty() || additionalLabelName != null) {
writeLabels(
writer,
diff --git a/prometheus-metrics-exposition-textformats/src/main/java/io/prometheus/metrics/expositionformats/PrometheusTextFormatWriter.java b/prometheus-metrics-exposition-textformats/src/main/java/io/prometheus/metrics/expositionformats/PrometheusTextFormatWriter.java
index f94d710ba3..ab5ed4c14d 100644
--- a/prometheus-metrics-exposition-textformats/src/main/java/io/prometheus/metrics/expositionformats/PrometheusTextFormatWriter.java
+++ b/prometheus-metrics-exposition-textformats/src/main/java/io/prometheus/metrics/expositionformats/PrometheusTextFormatWriter.java
@@ -168,13 +168,14 @@ public void writeCreated(Writer writer, MetricSnapshot snapshot, EscapingScheme
if (snapshot instanceof CounterSnapshot) {
baseName = resolveBaseName(resolveExpositionName(metadata, "_total", scheme), "_total");
}
+ boolean nameValidLegacy = PrometheusNaming.isValidLegacyMetricName(baseName);
for (DataPointSnapshot data : snapshot.getDataPoints()) {
if (data.hasCreatedTimestamp()) {
if (!metadataWritten) {
writeMetadataWithFullName(writer, baseName + "_created", "gauge", metadata);
metadataWritten = true;
}
- writeNameAndLabels(writer, baseName, "_created", data.getLabels(), scheme);
+ writeNameAndLabels(writer, baseName, "_created", data.getLabels(), scheme, nameValidLegacy);
writePrometheusTimestamp(writer, data.getCreatedTimestampMillis(), timestampsInMs);
writeScrapeTimestampAndNewline(writer, data);
}
@@ -186,9 +187,10 @@ private void writeCounter(Writer writer, CounterSnapshot snapshot, EscapingSchem
if (!snapshot.getDataPoints().isEmpty()) {
MetricMetadata metadata = snapshot.getMetadata();
String counterName = resolveExpositionName(metadata, "_total", scheme);
+ boolean nameValidLegacy = PrometheusNaming.isValidLegacyMetricName(counterName);
writeMetadataWithFullName(writer, counterName, "counter", metadata);
for (CounterSnapshot.CounterDataPointSnapshot data : snapshot.getDataPoints()) {
- writeNameAndLabels(writer, counterName, null, data.getLabels(), scheme);
+ writeNameAndLabels(writer, counterName, null, data.getLabels(), scheme, nameValidLegacy);
writeDouble(writer, data.getValue());
writeScrapeTimestampAndNewline(writer, data);
}
@@ -200,9 +202,10 @@ private void writeGauge(
throws IOException {
MetricMetadata metadata = snapshot.getMetadata();
String gaugeName = getLegacyGaugeName(metadata, rawOriginalName, scheme);
+ boolean nameValidLegacy = PrometheusNaming.isValidLegacyMetricName(gaugeName);
writeMetadataWithFullName(writer, gaugeName, "gauge", metadata);
for (GaugeSnapshot.GaugeDataPointSnapshot data : snapshot.getDataPoints()) {
- writeNameAndLabels(writer, gaugeName, null, data.getLabels(), scheme);
+ writeNameAndLabels(writer, gaugeName, null, data.getLabels(), scheme, nameValidLegacy);
writeDouble(writer, data.getValue());
writeScrapeTimestampAndNewline(writer, data);
}
@@ -216,24 +219,32 @@ private void writeHistogram(Writer writer, HistogramSnapshot snapshot, EscapingS
String bucketName = name + "_bucket";
String countName = name + "_count";
String sumName = name + "_sum";
+ boolean nameValidLegacy = PrometheusNaming.isValidLegacyMetricName(name);
for (HistogramSnapshot.HistogramDataPointSnapshot data : snapshot.getDataPoints()) {
ClassicHistogramBuckets buckets = getClassicBuckets(data);
long cumulativeCount = 0;
for (int i = 0; i < buckets.size(); i++) {
cumulativeCount += buckets.getCount(i);
writeNameAndLabels(
- writer, bucketName, null, data.getLabels(), scheme, "le", buckets.getUpperBound(i));
+ writer,
+ bucketName,
+ null,
+ data.getLabels(),
+ scheme,
+ "le",
+ buckets.getUpperBound(i),
+ nameValidLegacy);
writeLong(writer, cumulativeCount);
writeScrapeTimestampAndNewline(writer, data);
}
if (!snapshot.isGaugeHistogram()) {
if (data.hasCount()) {
- writeNameAndLabels(writer, countName, null, data.getLabels(), scheme);
+ writeNameAndLabels(writer, countName, null, data.getLabels(), scheme, nameValidLegacy);
writeLong(writer, data.getCount());
writeScrapeTimestampAndNewline(writer, data);
}
if (data.hasSum()) {
- writeNameAndLabels(writer, sumName, null, data.getLabels(), scheme);
+ writeNameAndLabels(writer, sumName, null, data.getLabels(), scheme, nameValidLegacy);
writeDouble(writer, data.getSum());
writeScrapeTimestampAndNewline(writer, data);
}
@@ -262,6 +273,7 @@ private void writeGaugeCountSum(
String baseName = getMetadataName(metadata, scheme);
String gaugeCountName = baseName + "_gcount";
String gaugeSumName = baseName + "_gsum";
+ boolean nameValidLegacy = PrometheusNaming.isValidLegacyMetricName(baseName);
boolean metadataWritten = false;
for (HistogramSnapshot.HistogramDataPointSnapshot data : snapshot.getDataPoints()) {
if (data.hasCount()) {
@@ -269,7 +281,7 @@ private void writeGaugeCountSum(
writeMetadata(writer, "_gcount", "gauge", metadata, scheme);
metadataWritten = true;
}
- writeNameAndLabels(writer, gaugeCountName, null, data.getLabels(), scheme);
+ writeNameAndLabels(writer, gaugeCountName, null, data.getLabels(), scheme, nameValidLegacy);
writeLong(writer, data.getCount());
writeScrapeTimestampAndNewline(writer, data);
}
@@ -281,7 +293,7 @@ private void writeGaugeCountSum(
writeMetadata(writer, "_gsum", "gauge", metadata, scheme);
metadataWritten = true;
}
- writeNameAndLabels(writer, gaugeSumName, null, data.getLabels(), scheme);
+ writeNameAndLabels(writer, gaugeSumName, null, data.getLabels(), scheme, nameValidLegacy);
writeDouble(writer, data.getSum());
writeScrapeTimestampAndNewline(writer, data);
}
@@ -295,6 +307,7 @@ private void writeSummary(Writer writer, SummarySnapshot snapshot, EscapingSchem
String name = getMetadataName(metadata, scheme);
String countName = name + "_count";
String sumName = name + "_sum";
+ boolean nameValidLegacy = PrometheusNaming.isValidLegacyMetricName(name);
for (SummarySnapshot.SummaryDataPointSnapshot data : snapshot.getDataPoints()) {
if (data.getQuantiles().size() == 0 && !data.hasCount() && !data.hasSum()) {
continue;
@@ -305,17 +318,24 @@ private void writeSummary(Writer writer, SummarySnapshot snapshot, EscapingSchem
}
for (Quantile quantile : data.getQuantiles()) {
writeNameAndLabels(
- writer, name, null, data.getLabels(), scheme, "quantile", quantile.getQuantile());
+ writer,
+ name,
+ null,
+ data.getLabels(),
+ scheme,
+ "quantile",
+ quantile.getQuantile(),
+ nameValidLegacy);
writeDouble(writer, quantile.getValue());
writeScrapeTimestampAndNewline(writer, data);
}
if (data.hasCount()) {
- writeNameAndLabels(writer, countName, null, data.getLabels(), scheme);
+ writeNameAndLabels(writer, countName, null, data.getLabels(), scheme, nameValidLegacy);
writeLong(writer, data.getCount());
writeScrapeTimestampAndNewline(writer, data);
}
if (data.hasSum()) {
- writeNameAndLabels(writer, sumName, null, data.getLabels(), scheme);
+ writeNameAndLabels(writer, sumName, null, data.getLabels(), scheme, nameValidLegacy);
writeDouble(writer, data.getSum());
writeScrapeTimestampAndNewline(writer, data);
}
@@ -326,9 +346,10 @@ private void writeInfo(Writer writer, InfoSnapshot snapshot, EscapingScheme sche
throws IOException {
MetricMetadata metadata = snapshot.getMetadata();
String infoName = resolveExpositionName(metadata, "_info", scheme);
+ boolean nameValidLegacy = PrometheusNaming.isValidLegacyMetricName(infoName);
writeMetadataWithFullName(writer, infoName, "gauge", metadata);
for (InfoSnapshot.InfoDataPointSnapshot data : snapshot.getDataPoints()) {
- writeNameAndLabels(writer, infoName, null, data.getLabels(), scheme);
+ writeNameAndLabels(writer, infoName, null, data.getLabels(), scheme, nameValidLegacy);
writer.write("1");
writeScrapeTimestampAndNewline(writer, data);
}
@@ -374,8 +395,9 @@ private void writeUnknown(Writer writer, UnknownSnapshot snapshot, EscapingSchem
MetricMetadata metadata = snapshot.getMetadata();
writeMetadata(writer, null, "untyped", metadata, scheme);
String name = getMetadataName(metadata, scheme);
+ boolean nameValidLegacy = PrometheusNaming.isValidLegacyMetricName(name);
for (UnknownSnapshot.UnknownDataPointSnapshot data : snapshot.getDataPoints()) {
- writeNameAndLabels(writer, name, null, data.getLabels(), scheme);
+ writeNameAndLabels(writer, name, null, data.getLabels(), scheme, nameValidLegacy);
writeDouble(writer, data.getValue());
writeScrapeTimestampAndNewline(writer, data);
}
@@ -386,9 +408,10 @@ private void writeNameAndLabels(
String name,
@Nullable String suffix,
Labels labels,
- EscapingScheme escapingScheme)
+ EscapingScheme escapingScheme,
+ boolean nameValidLegacy)
throws IOException {
- writeNameAndLabels(writer, name, suffix, labels, escapingScheme, null, 0.0);
+ writeNameAndLabels(writer, name, suffix, labels, escapingScheme, null, 0.0, nameValidLegacy);
}
private void writeNameAndLabels(
@@ -398,16 +421,20 @@ private void writeNameAndLabels(
Labels labels,
EscapingScheme scheme,
@Nullable String additionalLabelName,
- double additionalLabelValue)
+ double additionalLabelValue,
+ boolean nameValidLegacy)
throws IOException {
boolean metricInsideBraces = false;
// If the name does not pass the legacy validity check, we must put the
- // metric name inside the braces.
- if (!PrometheusNaming.isValidLegacyMetricName(name)) {
+ // metric name inside the braces. Validity is scanned once per family by the caller (the metric
+ // name is constant across all data points), not re-scanned for every series here. Appending a
+ // suffix built from legacy characters (_total, _bucket, ...) does not change legacy validity,
+ // so the caller's check of the base name applies to the suffixed name too.
+ if (!nameValidLegacy) {
metricInsideBraces = true;
writer.write('{');
}
- writeName(writer, suffix != null ? name + suffix : name, NameType.Metric);
+ writeName(writer, suffix != null ? name + suffix : name, NameType.Metric, nameValidLegacy);
if (!labels.isEmpty() || additionalLabelName != null) {
writeLabels(
writer, labels, additionalLabelName, additionalLabelValue, metricInsideBraces, scheme);
diff --git a/prometheus-metrics-exposition-textformats/src/main/java/io/prometheus/metrics/expositionformats/TextFormatUtil.java b/prometheus-metrics-exposition-textformats/src/main/java/io/prometheus/metrics/expositionformats/TextFormatUtil.java
index 9ca373e9fd..cd5fbdf107 100644
--- a/prometheus-metrics-exposition-textformats/src/main/java/io/prometheus/metrics/expositionformats/TextFormatUtil.java
+++ b/prometheus-metrics-exposition-textformats/src/main/java/io/prometheus/metrics/expositionformats/TextFormatUtil.java
@@ -223,25 +223,39 @@ static void writeLabels(
}
static void writeName(Writer writer, String name, NameType nameType) throws IOException {
+ writeName(writer, name, nameType, isValidLegacyName(name, nameType));
+ }
+
+ /**
+ * Variant of {@link #writeName(Writer, String, NameType)} for callers that already know whether
+ * {@code name} is a valid legacy name. The metric name is constant across all data points of a
+ * metric family, so a caller can scan it once per family (via {@link #isValidLegacyName}) and
+ * hoist the check out of the per-data-point loop instead of re-scanning the same string for every
+ * series.
+ */
+ static void writeName(Writer writer, String name, NameType nameType, boolean validLegacyName)
+ throws IOException {
+ if (validLegacyName) {
+ writer.write(name);
+ return;
+ }
+ if (nameType != NameType.Metric && nameType != NameType.Label) {
+ throw new RuntimeException("Invalid name type requested: " + nameType);
+ }
+ writer.write('"');
+ writeEscapedString(writer, name);
+ writer.write('"');
+ }
+
+ static boolean isValidLegacyName(String name, NameType nameType) {
switch (nameType) {
case Metric:
- if (PrometheusNaming.isValidLegacyMetricName(name)) {
- writer.write(name);
- return;
- }
- break;
+ return PrometheusNaming.isValidLegacyMetricName(name);
case Label:
- if (PrometheusNaming.isValidLegacyLabelName(name)) {
- writer.write(name);
- return;
- }
- break;
+ return PrometheusNaming.isValidLegacyLabelName(name);
default:
throw new RuntimeException("Invalid name type requested: " + nameType);
}
- writer.write('"');
- writeEscapedString(writer, name);
- writer.write('"');
}
/**
From 4fa963eec3189c2424220a34d7f24e779d6b6d1f Mon Sep 17 00:00:00 2001
From: "github-actions[bot]"
<41898282+github-actions[bot]@users.noreply.github.com>
Date: Fri, 16 Oct 2026 10:24:35 +0200
Subject: [PATCH 241/255] chore(main): release 1.10.0 (#2482)
:robot: I have created a release *beep* *boop*
---
##
[1.10.0](https://github.com/prometheus/client_java/compare/v1.9.0...v1.10.0)
(2026-10-16)
### Features
* preserve metric suffixes in OpenMetrics 2.0
([#2529](https://github.com/prometheus/client_java/issues/2529))
([b1aa8b3](https://github.com/prometheus/client_java/commit/b1aa8b38be304b7c935da77014afb02267ed01a6))
### Bug Fixes
* **deps:** update dependency com.github.ben-manes.caffeine:caffeine to
v3.3.0 ([#2493](https://github.com/prometheus/client_java/issues/2493))
([5bf31dc](https://github.com/prometheus/client_java/commit/5bf31dc287edac5eb052f57a561b61b8a3309133))
* **deps:** update dependency com.github.ben-manes.caffeine:caffeine to
v3.3.1 ([#2548](https://github.com/prometheus/client_java/issues/2548))
([72afa41](https://github.com/prometheus/client_java/commit/72afa4199731ef18b251ccba8ff6d270baf1c0c5))
* **deps:** update dependency com.google.guava:guava to v33.7.2-jre
([#2510](https://github.com/prometheus/client_java/issues/2510))
([78820b0](https://github.com/prometheus/client_java/commit/78820b069d07909c40a329922d99a2768959a9b4))
* **deps:** update dependency io.opentelemetry:opentelemetry-bom to
v1.67.0 ([#2547](https://github.com/prometheus/client_java/issues/2547))
([4c9bf78](https://github.com/prometheus/client_java/commit/4c9bf78055019b5d460a5f1a4e1899cfb6fca275))
* **deps:** update dependency
io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha
to v2.32.0-alpha
([#2523](https://github.com/prometheus/client_java/issues/2523))
([933c38b](https://github.com/prometheus/client_java/commit/933c38b32853bacd8001db10a4c6511fc483b0e6))
* **deps:** update dependency
io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha
to v2.32.0-alpha
([#2524](https://github.com/prometheus/client_java/issues/2524))
([d7c3286](https://github.com/prometheus/client_java/commit/d7c3286f0967ae390ecf0611243c16f3d4ceab17))
* **deps:** update dependency org.apache.tomcat.embed:tomcat-embed-core
to v11.0.27
([#2543](https://github.com/prometheus/client_java/issues/2543))
([48c768a](https://github.com/prometheus/client_java/commit/48c768aee1a3d79cc482acfc030c2ce32ce23d1a))
* **deps:** update dependency renovate to v44.149.1
([#2549](https://github.com/prometheus/client_java/issues/2549))
([2edf838](https://github.com/prometheus/client_java/commit/2edf838fa0f734b74beda1e228861bde6018468c))
* **deps:** update dependency renovate to v44.150.1
([#2555](https://github.com/prometheus/client_java/issues/2555))
([7eaa0bd](https://github.com/prometheus/client_java/commit/7eaa0bdfd902a4b6bcd538de0f0da81d97cf53dd))
* **deps:** update dependency renovate to v44.151.5
([#2558](https://github.com/prometheus/client_java/issues/2558))
([52e07ad](https://github.com/prometheus/client_java/commit/52e07ad457afdbb9b2731699e270286454f4f6c1))
* **deps:** update dependency renovate to v44.153.1
([#2559](https://github.com/prometheus/client_java/issues/2559))
([daa9f3a](https://github.com/prometheus/client_java/commit/daa9f3a829bd77edb376081b722b7032f6baad42))
* **deps:** update dependency renovate to v44.154.0
([#2560](https://github.com/prometheus/client_java/issues/2560))
([068ad4e](https://github.com/prometheus/client_java/commit/068ad4e355e97e9183cda5a529dd9a7f0b3c7b20))
* **deps:** update jetty monorepo to v12.1.14
([#2527](https://github.com/prometheus/client_java/issues/2527))
([3fb8ccc](https://github.com/prometheus/client_java/commit/3fb8ccca65cdc176e3015f6038f41a425e481216))
* don't escape UTF-8 names by default for OpenMetrics 2.0
([#2519](https://github.com/prometheus/client_java/issues/2519))
([513a2d7](https://github.com/prometheus/client_java/commit/513a2d79b17ec0438e823e9bce15f8635f029ca3))
* exclude non-release modules from Maven deployment
([#2481](https://github.com/prometheus/client_java/issues/2481))
([f27baf4](https://github.com/prometheus/client_java/commit/f27baf4196aea08304df67124e84af4d7e102bab))
* mark tracer initializer OSGi import optional
([#2528](https://github.com/prometheus/client_java/issues/2528))
([fc5d0ba](https://github.com/prometheus/client_java/commit/fc5d0ba6fad6c9cb26e455139accd446d250ac08))
### Performance Improvements
* scan metric name validity once per metric family
([#2443](https://github.com/prometheus/client_java/issues/2443))
([5d36228](https://github.com/prometheus/client_java/commit/5d36228aeddfbd7d9160fe7398fa07121431d20c))
* update otel benchmark dependencies, add otel bound instrument
scenarios
([#2451](https://github.com/prometheus/client_java/issues/2451))
([fd343a2](https://github.com/prometheus/client_java/commit/fd343a2b42a34011fb67fddbca279067e94fb2ab))
---
> [!IMPORTANT]
> Close and reopen this PR to trigger CI checks.
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
---
.github/config/.release-please-manifest.json | 2 +-
CHANGELOG.md | 33 +++++++++++++++++++
benchmarks/pom.xml | 2 +-
examples/example-custom-buckets/pom.xml | 2 +-
.../example-greeting-service/pom.xml | 2 +-
.../example-hello-world-app/pom.xml | 2 +-
.../example-exemplars-tail-sampling/pom.xml | 2 +-
examples/example-exporter-httpserver/pom.xml | 2 +-
.../example-exporter-multi-target/pom.xml | 2 +-
.../example-exporter-opentelemetry/pom.xml | 2 +-
.../example-exporter-servlet-tomcat/pom.xml | 2 +-
examples/example-native-histogram/pom.xml | 2 +-
.../example-otel-jvm-runtime-metrics/pom.xml | 2 +-
.../example-prometheus-properties/pom.xml | 2 +-
examples/example-simpleclient-bridge/pom.xml | 2 +-
examples/pom.xml | 2 +-
integration-tests/it-common/pom.xml | 2 +-
.../pom.xml | 2 +-
.../it-exporter-httpserver-sample/pom.xml | 2 +-
.../it-exporter-no-protobuf/pom.xml | 2 +-
.../it-exporter-servlet-jetty-sample/pom.xml | 2 +-
.../it-exporter-servlet-tomcat-sample/pom.xml | 2 +-
.../it-exporter/it-exporter-test/pom.xml | 2 +-
.../it-exporter/it-no-protobuf-test/pom.xml | 2 +-
integration-tests/it-exporter/pom.xml | 2 +-
integration-tests/it-pushgateway/pom.xml | 2 +-
.../it-spring-boot-smoke-test/pom.xml | 2 +-
integration-tests/pom.xml | 2 +-
pom.xml | 2 +-
prometheus-metrics-annotations/pom.xml | 2 +-
prometheus-metrics-bom/pom.xml | 2 +-
prometheus-metrics-config/pom.xml | 2 +-
prometheus-metrics-core/pom.xml | 2 +-
prometheus-metrics-exporter-common/pom.xml | 2 +-
.../pom.xml | 2 +-
.../pom.xml | 2 +-
.../pom.xml | 2 +-
.../pom.xml | 2 +-
.../pom.xml | 2 +-
.../pom.xml | 2 +-
.../pom.xml | 2 +-
.../pom.xml | 2 +-
prometheus-metrics-exposition-formats/pom.xml | 2 +-
.../pom.xml | 2 +-
.../pom.xml | 2 +-
.../pom.xml | 2 +-
.../pom.xml | 2 +-
.../pom.xml | 2 +-
.../pom.xml | 2 +-
prometheus-metrics-model/pom.xml | 2 +-
prometheus-metrics-otel-support/pom.xml | 2 +-
prometheus-metrics-parent/pom.xml | 2 +-
.../pom.xml | 2 +-
prometheus-metrics-tracer/pom.xml | 2 +-
.../prometheus-metrics-tracer-common/pom.xml | 2 +-
.../pom.xml | 2 +-
.../pom.xml | 2 +-
.../prometheus-metrics-tracer-otel/pom.xml | 2 +-
.../integration_tests/it_common/pom.xml | 2 +-
.../it_exemplars_otel_agent/pom.xml | 2 +-
.../it_exemplars_otel_sdk/pom.xml | 2 +-
.../it_java_versions/pom.xml | 2 +-
.../integration_tests/it_log4j2/pom.xml | 2 +-
.../integration_tests/it_pushgateway/pom.xml | 2 +-
.../pom.xml | 2 +-
.../integration_tests/pom.xml | 2 +-
.../simpleclient_graphite_bridge/pom.xml | 2 +-
.../simpleclient_hibernate/pom.xml | 2 +-
.../simpleclient_httpserver/pom.xml | 2 +-
.../simpleclient_jetty/pom.xml | 2 +-
.../simpleclient_jetty_jdk8/pom.xml | 2 +-
.../simpleclient_log4j/pom.xml | 2 +-
.../simpleclient_log4j2/pom.xml | 2 +-
.../simpleclient_logback/pom.xml | 2 +-
.../simpleclient_servlet/pom.xml | 2 +-
.../simpleclient_servlet_common/pom.xml | 2 +-
.../simpleclient_servlet_jakarta/pom.xml | 2 +-
.../simpleclient_spring_web/pom.xml | 2 +-
.../simpleclient_vertx/pom.xml | 2 +-
.../simpleclient_vertx4/pom.xml | 2 +-
80 files changed, 112 insertions(+), 79 deletions(-)
diff --git a/.github/config/.release-please-manifest.json b/.github/config/.release-please-manifest.json
index 4fcfdf7a7c..d9246ddf2c 100644
--- a/.github/config/.release-please-manifest.json
+++ b/.github/config/.release-please-manifest.json
@@ -1,3 +1,3 @@
{
- ".": "1.9.0"
+ ".": "1.10.0"
}
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 762f58eafe..41a213b438 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,38 @@
# Changelog
+## [1.10.0](https://github.com/prometheus/client_java/compare/v1.9.0...v1.10.0) (2026-10-16)
+
+
+### Features
+
+* preserve metric suffixes in OpenMetrics 2.0 ([#2529](https://github.com/prometheus/client_java/issues/2529)) ([b1aa8b3](https://github.com/prometheus/client_java/commit/b1aa8b38be304b7c935da77014afb02267ed01a6))
+
+
+### Bug Fixes
+
+* **deps:** update dependency com.github.ben-manes.caffeine:caffeine to v3.3.0 ([#2493](https://github.com/prometheus/client_java/issues/2493)) ([5bf31dc](https://github.com/prometheus/client_java/commit/5bf31dc287edac5eb052f57a561b61b8a3309133))
+* **deps:** update dependency com.github.ben-manes.caffeine:caffeine to v3.3.1 ([#2548](https://github.com/prometheus/client_java/issues/2548)) ([72afa41](https://github.com/prometheus/client_java/commit/72afa4199731ef18b251ccba8ff6d270baf1c0c5))
+* **deps:** update dependency com.google.guava:guava to v33.7.2-jre ([#2510](https://github.com/prometheus/client_java/issues/2510)) ([78820b0](https://github.com/prometheus/client_java/commit/78820b069d07909c40a329922d99a2768959a9b4))
+* **deps:** update dependency io.opentelemetry:opentelemetry-bom to v1.67.0 ([#2547](https://github.com/prometheus/client_java/issues/2547)) ([4c9bf78](https://github.com/prometheus/client_java/commit/4c9bf78055019b5d460a5f1a4e1899cfb6fca275))
+* **deps:** update dependency io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha to v2.32.0-alpha ([#2523](https://github.com/prometheus/client_java/issues/2523)) ([933c38b](https://github.com/prometheus/client_java/commit/933c38b32853bacd8001db10a4c6511fc483b0e6))
+* **deps:** update dependency io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha to v2.32.0-alpha ([#2524](https://github.com/prometheus/client_java/issues/2524)) ([d7c3286](https://github.com/prometheus/client_java/commit/d7c3286f0967ae390ecf0611243c16f3d4ceab17))
+* **deps:** update dependency org.apache.tomcat.embed:tomcat-embed-core to v11.0.27 ([#2543](https://github.com/prometheus/client_java/issues/2543)) ([48c768a](https://github.com/prometheus/client_java/commit/48c768aee1a3d79cc482acfc030c2ce32ce23d1a))
+* **deps:** update dependency renovate to v44.149.1 ([#2549](https://github.com/prometheus/client_java/issues/2549)) ([2edf838](https://github.com/prometheus/client_java/commit/2edf838fa0f734b74beda1e228861bde6018468c))
+* **deps:** update dependency renovate to v44.150.1 ([#2555](https://github.com/prometheus/client_java/issues/2555)) ([7eaa0bd](https://github.com/prometheus/client_java/commit/7eaa0bdfd902a4b6bcd538de0f0da81d97cf53dd))
+* **deps:** update dependency renovate to v44.151.5 ([#2558](https://github.com/prometheus/client_java/issues/2558)) ([52e07ad](https://github.com/prometheus/client_java/commit/52e07ad457afdbb9b2731699e270286454f4f6c1))
+* **deps:** update dependency renovate to v44.153.1 ([#2559](https://github.com/prometheus/client_java/issues/2559)) ([daa9f3a](https://github.com/prometheus/client_java/commit/daa9f3a829bd77edb376081b722b7032f6baad42))
+* **deps:** update dependency renovate to v44.154.0 ([#2560](https://github.com/prometheus/client_java/issues/2560)) ([068ad4e](https://github.com/prometheus/client_java/commit/068ad4e355e97e9183cda5a529dd9a7f0b3c7b20))
+* **deps:** update jetty monorepo to v12.1.14 ([#2527](https://github.com/prometheus/client_java/issues/2527)) ([3fb8ccc](https://github.com/prometheus/client_java/commit/3fb8ccca65cdc176e3015f6038f41a425e481216))
+* don't escape UTF-8 names by default for OpenMetrics 2.0 ([#2519](https://github.com/prometheus/client_java/issues/2519)) ([513a2d7](https://github.com/prometheus/client_java/commit/513a2d79b17ec0438e823e9bce15f8635f029ca3))
+* exclude non-release modules from Maven deployment ([#2481](https://github.com/prometheus/client_java/issues/2481)) ([f27baf4](https://github.com/prometheus/client_java/commit/f27baf4196aea08304df67124e84af4d7e102bab))
+* mark tracer initializer OSGi import optional ([#2528](https://github.com/prometheus/client_java/issues/2528)) ([fc5d0ba](https://github.com/prometheus/client_java/commit/fc5d0ba6fad6c9cb26e455139accd446d250ac08))
+
+
+### Performance Improvements
+
+* scan metric name validity once per metric family ([#2443](https://github.com/prometheus/client_java/issues/2443)) ([5d36228](https://github.com/prometheus/client_java/commit/5d36228aeddfbd7d9160fe7398fa07121431d20c))
+* update otel benchmark dependencies, add otel bound instrument scenarios ([#2451](https://github.com/prometheus/client_java/issues/2451)) ([fd343a2](https://github.com/prometheus/client_java/commit/fd343a2b42a34011fb67fddbca279067e94fb2ab))
+
## [1.9.0](https://github.com/prometheus/client_java/compare/v1.8.0...v1.9.0) (2026-09-16)
diff --git a/benchmarks/pom.xml b/benchmarks/pom.xml
index 0bbe84d541..314ac8d151 100644
--- a/benchmarks/pom.xml
+++ b/benchmarks/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.9.1-SNAPSHOT
+ 1.10.0benchmarks
diff --git a/examples/example-custom-buckets/pom.xml b/examples/example-custom-buckets/pom.xml
index 4784f6548f..9bc7e737c1 100644
--- a/examples/example-custom-buckets/pom.xml
+++ b/examples/example-custom-buckets/pom.xml
@@ -4,7 +4,7 @@
io.prometheusexample-custom-buckets
- 1.9.1-SNAPSHOT
+ 1.10.08
diff --git a/examples/example-exemplars-tail-sampling/example-greeting-service/pom.xml b/examples/example-exemplars-tail-sampling/example-greeting-service/pom.xml
index 275162f288..dcb20bd05b 100644
--- a/examples/example-exemplars-tail-sampling/example-greeting-service/pom.xml
+++ b/examples/example-exemplars-tail-sampling/example-greeting-service/pom.xml
@@ -4,7 +4,7 @@
io.prometheusexample-greeting-service
- 1.9.1-SNAPSHOT
+ 1.10.017
diff --git a/examples/example-exemplars-tail-sampling/example-hello-world-app/pom.xml b/examples/example-exemplars-tail-sampling/example-hello-world-app/pom.xml
index ff97a05f95..d7b084afe1 100644
--- a/examples/example-exemplars-tail-sampling/example-hello-world-app/pom.xml
+++ b/examples/example-exemplars-tail-sampling/example-hello-world-app/pom.xml
@@ -4,7 +4,7 @@
io.prometheusexample-hello-world-app
- 1.9.1-SNAPSHOT
+ 1.10.017
diff --git a/examples/example-exemplars-tail-sampling/pom.xml b/examples/example-exemplars-tail-sampling/pom.xml
index 7b63d43dba..3721e9cbeb 100644
--- a/examples/example-exemplars-tail-sampling/pom.xml
+++ b/examples/example-exemplars-tail-sampling/pom.xml
@@ -4,7 +4,7 @@
io.prometheusexample-exemplars-tail-sampling
- 1.9.1-SNAPSHOT
+ 1.10.0pomExample - Exemplars with OpenTelemetry's Tail Sampling
diff --git a/examples/example-exporter-httpserver/pom.xml b/examples/example-exporter-httpserver/pom.xml
index cfbc62558c..ee970e1df4 100644
--- a/examples/example-exporter-httpserver/pom.xml
+++ b/examples/example-exporter-httpserver/pom.xml
@@ -4,7 +4,7 @@
io.prometheusexample-exporter-httpserver
- 1.9.1-SNAPSHOT
+ 1.10.08
diff --git a/examples/example-exporter-multi-target/pom.xml b/examples/example-exporter-multi-target/pom.xml
index 4b4878d91e..311245c97f 100644
--- a/examples/example-exporter-multi-target/pom.xml
+++ b/examples/example-exporter-multi-target/pom.xml
@@ -4,7 +4,7 @@
io.prometheusexample-exporter-multi-target
- 1.9.1-SNAPSHOT
+ 1.10.08
diff --git a/examples/example-exporter-opentelemetry/pom.xml b/examples/example-exporter-opentelemetry/pom.xml
index 6c55f942f8..2928edc498 100644
--- a/examples/example-exporter-opentelemetry/pom.xml
+++ b/examples/example-exporter-opentelemetry/pom.xml
@@ -4,7 +4,7 @@
io.prometheusexample-exporter-opentelemetry
- 1.9.1-SNAPSHOT
+ 1.10.08
diff --git a/examples/example-exporter-servlet-tomcat/pom.xml b/examples/example-exporter-servlet-tomcat/pom.xml
index 763e93e7b2..e62b283221 100644
--- a/examples/example-exporter-servlet-tomcat/pom.xml
+++ b/examples/example-exporter-servlet-tomcat/pom.xml
@@ -4,7 +4,7 @@
io.prometheusexample-exporter-servlet-tomcat
- 1.9.1-SNAPSHOT
+ 1.10.017
diff --git a/examples/example-native-histogram/pom.xml b/examples/example-native-histogram/pom.xml
index a2fa052fc7..1ded56221f 100644
--- a/examples/example-native-histogram/pom.xml
+++ b/examples/example-native-histogram/pom.xml
@@ -4,7 +4,7 @@
io.prometheusexample-native-histogram
- 1.9.1-SNAPSHOT
+ 1.10.08
diff --git a/examples/example-otel-jvm-runtime-metrics/pom.xml b/examples/example-otel-jvm-runtime-metrics/pom.xml
index cfa3f34fb1..82d326cebc 100644
--- a/examples/example-otel-jvm-runtime-metrics/pom.xml
+++ b/examples/example-otel-jvm-runtime-metrics/pom.xml
@@ -4,7 +4,7 @@
io.prometheusexample-otel-jvm-runtime-metrics
- 1.9.1-SNAPSHOT
+ 1.10.08
diff --git a/examples/example-prometheus-properties/pom.xml b/examples/example-prometheus-properties/pom.xml
index 8bf2a668a1..e5099e55ab 100644
--- a/examples/example-prometheus-properties/pom.xml
+++ b/examples/example-prometheus-properties/pom.xml
@@ -4,7 +4,7 @@
io.prometheusexample-prometheus-properties
- 1.9.1-SNAPSHOT
+ 1.10.08
diff --git a/examples/example-simpleclient-bridge/pom.xml b/examples/example-simpleclient-bridge/pom.xml
index 2eb707f97f..62406090f4 100644
--- a/examples/example-simpleclient-bridge/pom.xml
+++ b/examples/example-simpleclient-bridge/pom.xml
@@ -4,7 +4,7 @@
io.prometheusexample-simpleclient-bridge
- 1.9.1-SNAPSHOT
+ 1.10.08
diff --git a/examples/pom.xml b/examples/pom.xml
index abfe14e5ed..a8c61af750 100644
--- a/examples/pom.xml
+++ b/examples/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.9.1-SNAPSHOT
+ 1.10.0examples
diff --git a/integration-tests/it-common/pom.xml b/integration-tests/it-common/pom.xml
index 80c25d7cc8..cce8973544 100644
--- a/integration-tests/it-common/pom.xml
+++ b/integration-tests/it-common/pom.xml
@@ -5,7 +5,7 @@
io.prometheusintegration-tests
- 1.9.1-SNAPSHOT
+ 1.10.0it-common
diff --git a/integration-tests/it-exporter/it-exporter-duplicate-metrics-sample/pom.xml b/integration-tests/it-exporter/it-exporter-duplicate-metrics-sample/pom.xml
index 6559a34273..858bb2ff45 100644
--- a/integration-tests/it-exporter/it-exporter-duplicate-metrics-sample/pom.xml
+++ b/integration-tests/it-exporter/it-exporter-duplicate-metrics-sample/pom.xml
@@ -5,7 +5,7 @@
io.prometheusit-exporter
- 1.9.1-SNAPSHOT
+ 1.10.0it-exporter-duplicate-metrics-sample
diff --git a/integration-tests/it-exporter/it-exporter-httpserver-sample/pom.xml b/integration-tests/it-exporter/it-exporter-httpserver-sample/pom.xml
index 58d4c2111a..7d76f0685b 100644
--- a/integration-tests/it-exporter/it-exporter-httpserver-sample/pom.xml
+++ b/integration-tests/it-exporter/it-exporter-httpserver-sample/pom.xml
@@ -5,7 +5,7 @@
io.prometheusit-exporter
- 1.9.1-SNAPSHOT
+ 1.10.0it-exporter-httpserver-sample
diff --git a/integration-tests/it-exporter/it-exporter-no-protobuf/pom.xml b/integration-tests/it-exporter/it-exporter-no-protobuf/pom.xml
index a81c64510f..6fdca85361 100644
--- a/integration-tests/it-exporter/it-exporter-no-protobuf/pom.xml
+++ b/integration-tests/it-exporter/it-exporter-no-protobuf/pom.xml
@@ -5,7 +5,7 @@
io.prometheusit-exporter
- 1.9.1-SNAPSHOT
+ 1.10.0it-exporter-no-protobuf
diff --git a/integration-tests/it-exporter/it-exporter-servlet-jetty-sample/pom.xml b/integration-tests/it-exporter/it-exporter-servlet-jetty-sample/pom.xml
index 82da31e878..533cbe0c59 100644
--- a/integration-tests/it-exporter/it-exporter-servlet-jetty-sample/pom.xml
+++ b/integration-tests/it-exporter/it-exporter-servlet-jetty-sample/pom.xml
@@ -5,7 +5,7 @@
io.prometheusit-exporter
- 1.9.1-SNAPSHOT
+ 1.10.0it-exporter-servlet-jetty-sample
diff --git a/integration-tests/it-exporter/it-exporter-servlet-tomcat-sample/pom.xml b/integration-tests/it-exporter/it-exporter-servlet-tomcat-sample/pom.xml
index 9f4968ae2f..87b976e371 100644
--- a/integration-tests/it-exporter/it-exporter-servlet-tomcat-sample/pom.xml
+++ b/integration-tests/it-exporter/it-exporter-servlet-tomcat-sample/pom.xml
@@ -5,7 +5,7 @@
io.prometheusit-exporter
- 1.9.1-SNAPSHOT
+ 1.10.0it-exporter-servlet-tomcat-sample
diff --git a/integration-tests/it-exporter/it-exporter-test/pom.xml b/integration-tests/it-exporter/it-exporter-test/pom.xml
index dcd4d86bfd..a42796c2c9 100644
--- a/integration-tests/it-exporter/it-exporter-test/pom.xml
+++ b/integration-tests/it-exporter/it-exporter-test/pom.xml
@@ -5,7 +5,7 @@
io.prometheusit-exporter
- 1.9.1-SNAPSHOT
+ 1.10.0it-exporter-test
diff --git a/integration-tests/it-exporter/it-no-protobuf-test/pom.xml b/integration-tests/it-exporter/it-no-protobuf-test/pom.xml
index 3c1dcff7de..82fddae85e 100644
--- a/integration-tests/it-exporter/it-no-protobuf-test/pom.xml
+++ b/integration-tests/it-exporter/it-no-protobuf-test/pom.xml
@@ -5,7 +5,7 @@
io.prometheusit-exporter
- 1.9.1-SNAPSHOT
+ 1.10.0it-no-protobuf-test
diff --git a/integration-tests/it-exporter/pom.xml b/integration-tests/it-exporter/pom.xml
index 0dc081d0eb..243a36c14a 100644
--- a/integration-tests/it-exporter/pom.xml
+++ b/integration-tests/it-exporter/pom.xml
@@ -5,7 +5,7 @@
io.prometheusintegration-tests
- 1.9.1-SNAPSHOT
+ 1.10.0it-exporter
diff --git a/integration-tests/it-pushgateway/pom.xml b/integration-tests/it-pushgateway/pom.xml
index 34614fb792..2ea4a72e63 100644
--- a/integration-tests/it-pushgateway/pom.xml
+++ b/integration-tests/it-pushgateway/pom.xml
@@ -5,7 +5,7 @@
io.prometheusintegration-tests
- 1.9.1-SNAPSHOT
+ 1.10.0it-pushgateway
diff --git a/integration-tests/it-spring-boot-smoke-test/pom.xml b/integration-tests/it-spring-boot-smoke-test/pom.xml
index aa9ca16353..990cf0e237 100644
--- a/integration-tests/it-spring-boot-smoke-test/pom.xml
+++ b/integration-tests/it-spring-boot-smoke-test/pom.xml
@@ -12,7 +12,7 @@
io.prometheusit-spring-boot-smoke-test
- 1.9.1-SNAPSHOT
+ 1.10.0Integration Test - Spring Smoke Tests
diff --git a/integration-tests/pom.xml b/integration-tests/pom.xml
index d53bbdd40d..538d62f1e3 100644
--- a/integration-tests/pom.xml
+++ b/integration-tests/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.9.1-SNAPSHOT
+ 1.10.0integration-tests
diff --git a/pom.xml b/pom.xml
index b7cfb1f6f9..548ff95ff1 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
io.prometheusclient_java_parent
- 1.9.1-SNAPSHOT
+ 1.10.0prometheus-metrics-parent/pom.xml
diff --git a/prometheus-metrics-annotations/pom.xml b/prometheus-metrics-annotations/pom.xml
index 9ea0703cce..9a1f591d3d 100644
--- a/prometheus-metrics-annotations/pom.xml
+++ b/prometheus-metrics-annotations/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.9.1-SNAPSHOT
+ 1.10.0prometheus-metrics-annotations
diff --git a/prometheus-metrics-bom/pom.xml b/prometheus-metrics-bom/pom.xml
index 6aafaf39e1..06456c153b 100644
--- a/prometheus-metrics-bom/pom.xml
+++ b/prometheus-metrics-bom/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java_parent
- 1.9.1-SNAPSHOT
+ 1.10.0../prometheus-metrics-parent/pom.xml
diff --git a/prometheus-metrics-config/pom.xml b/prometheus-metrics-config/pom.xml
index dca2e64171..a117ca29b5 100644
--- a/prometheus-metrics-config/pom.xml
+++ b/prometheus-metrics-config/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.9.1-SNAPSHOT
+ 1.10.0prometheus-metrics-config
diff --git a/prometheus-metrics-core/pom.xml b/prometheus-metrics-core/pom.xml
index 11d11348b3..514f301fb3 100644
--- a/prometheus-metrics-core/pom.xml
+++ b/prometheus-metrics-core/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.9.1-SNAPSHOT
+ 1.10.0prometheus-metrics-core
diff --git a/prometheus-metrics-exporter-common/pom.xml b/prometheus-metrics-exporter-common/pom.xml
index 56b3de5c0d..74c2dee4e1 100644
--- a/prometheus-metrics-exporter-common/pom.xml
+++ b/prometheus-metrics-exporter-common/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.9.1-SNAPSHOT
+ 1.10.0prometheus-metrics-exporter-common
diff --git a/prometheus-metrics-exporter-httpserver/pom.xml b/prometheus-metrics-exporter-httpserver/pom.xml
index 171e070c65..f7723d8dfd 100644
--- a/prometheus-metrics-exporter-httpserver/pom.xml
+++ b/prometheus-metrics-exporter-httpserver/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.9.1-SNAPSHOT
+ 1.10.0prometheus-metrics-exporter-httpserver
diff --git a/prometheus-metrics-exporter-opentelemetry-otel-agent-resources/pom.xml b/prometheus-metrics-exporter-opentelemetry-otel-agent-resources/pom.xml
index e2d6899e9f..a2f1546668 100644
--- a/prometheus-metrics-exporter-opentelemetry-otel-agent-resources/pom.xml
+++ b/prometheus-metrics-exporter-opentelemetry-otel-agent-resources/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.9.1-SNAPSHOT
+ 1.10.0prometheus-metrics-exporter-opentelemetry-otel-agent-resources
diff --git a/prometheus-metrics-exporter-opentelemetry-shaded/pom.xml b/prometheus-metrics-exporter-opentelemetry-shaded/pom.xml
index f228bcb734..74fe3be6d2 100644
--- a/prometheus-metrics-exporter-opentelemetry-shaded/pom.xml
+++ b/prometheus-metrics-exporter-opentelemetry-shaded/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.9.1-SNAPSHOT
+ 1.10.0prometheus-metrics-exporter-opentelemetry
diff --git a/prometheus-metrics-exporter-opentelemetry/pom.xml b/prometheus-metrics-exporter-opentelemetry/pom.xml
index 5f615c4520..beb75110bf 100644
--- a/prometheus-metrics-exporter-opentelemetry/pom.xml
+++ b/prometheus-metrics-exporter-opentelemetry/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.9.1-SNAPSHOT
+ 1.10.0prometheus-metrics-exporter-opentelemetry-no-otel
diff --git a/prometheus-metrics-exporter-pushgateway/pom.xml b/prometheus-metrics-exporter-pushgateway/pom.xml
index 4d15612a4c..51258b550b 100644
--- a/prometheus-metrics-exporter-pushgateway/pom.xml
+++ b/prometheus-metrics-exporter-pushgateway/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.9.1-SNAPSHOT
+ 1.10.0prometheus-metrics-exporter-pushgateway
diff --git a/prometheus-metrics-exporter-servlet-jakarta/pom.xml b/prometheus-metrics-exporter-servlet-jakarta/pom.xml
index 7a345ec51b..693a8258c5 100644
--- a/prometheus-metrics-exporter-servlet-jakarta/pom.xml
+++ b/prometheus-metrics-exporter-servlet-jakarta/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.9.1-SNAPSHOT
+ 1.10.0prometheus-metrics-exporter-servlet-jakarta
diff --git a/prometheus-metrics-exporter-servlet-javax/pom.xml b/prometheus-metrics-exporter-servlet-javax/pom.xml
index fe73508690..118a90ac66 100644
--- a/prometheus-metrics-exporter-servlet-javax/pom.xml
+++ b/prometheus-metrics-exporter-servlet-javax/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.9.1-SNAPSHOT
+ 1.10.0prometheus-metrics-exporter-servlet-javax
diff --git a/prometheus-metrics-exposition-formats-shaded/pom.xml b/prometheus-metrics-exposition-formats-shaded/pom.xml
index 27644ab523..e79688354d 100644
--- a/prometheus-metrics-exposition-formats-shaded/pom.xml
+++ b/prometheus-metrics-exposition-formats-shaded/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.9.1-SNAPSHOT
+ 1.10.0prometheus-metrics-exposition-formats
diff --git a/prometheus-metrics-exposition-formats/pom.xml b/prometheus-metrics-exposition-formats/pom.xml
index 0129cf674f..2b4d6cf02d 100644
--- a/prometheus-metrics-exposition-formats/pom.xml
+++ b/prometheus-metrics-exposition-formats/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.9.1-SNAPSHOT
+ 1.10.0prometheus-metrics-exposition-formats-no-protobuf
diff --git a/prometheus-metrics-exposition-textformats/pom.xml b/prometheus-metrics-exposition-textformats/pom.xml
index 76c33ab6f9..46af14304d 100644
--- a/prometheus-metrics-exposition-textformats/pom.xml
+++ b/prometheus-metrics-exposition-textformats/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.9.1-SNAPSHOT
+ 1.10.0prometheus-metrics-exposition-textformats
diff --git a/prometheus-metrics-instrumentation-caffeine/pom.xml b/prometheus-metrics-instrumentation-caffeine/pom.xml
index d7b979bc8f..d081676787 100644
--- a/prometheus-metrics-instrumentation-caffeine/pom.xml
+++ b/prometheus-metrics-instrumentation-caffeine/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.9.1-SNAPSHOT
+ 1.10.0prometheus-metrics-instrumentation-caffeine
diff --git a/prometheus-metrics-instrumentation-dropwizard/pom.xml b/prometheus-metrics-instrumentation-dropwizard/pom.xml
index 73da31252f..806bbce070 100644
--- a/prometheus-metrics-instrumentation-dropwizard/pom.xml
+++ b/prometheus-metrics-instrumentation-dropwizard/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.9.1-SNAPSHOT
+ 1.10.0prometheus-metrics-instrumentation-dropwizard
diff --git a/prometheus-metrics-instrumentation-dropwizard5/pom.xml b/prometheus-metrics-instrumentation-dropwizard5/pom.xml
index aae69f2d9d..98a05275b6 100644
--- a/prometheus-metrics-instrumentation-dropwizard5/pom.xml
+++ b/prometheus-metrics-instrumentation-dropwizard5/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.9.1-SNAPSHOT
+ 1.10.0prometheus-metrics-instrumentation-dropwizard5
diff --git a/prometheus-metrics-instrumentation-guava/pom.xml b/prometheus-metrics-instrumentation-guava/pom.xml
index 56afabd3d0..f74a0811ba 100644
--- a/prometheus-metrics-instrumentation-guava/pom.xml
+++ b/prometheus-metrics-instrumentation-guava/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.9.1-SNAPSHOT
+ 1.10.0prometheus-metrics-instrumentation-guava
diff --git a/prometheus-metrics-instrumentation-jvm/pom.xml b/prometheus-metrics-instrumentation-jvm/pom.xml
index 177d150869..f5ca5dd587 100644
--- a/prometheus-metrics-instrumentation-jvm/pom.xml
+++ b/prometheus-metrics-instrumentation-jvm/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.9.1-SNAPSHOT
+ 1.10.0prometheus-metrics-instrumentation-jvm
diff --git a/prometheus-metrics-model/pom.xml b/prometheus-metrics-model/pom.xml
index ad22930960..a707d13cd7 100644
--- a/prometheus-metrics-model/pom.xml
+++ b/prometheus-metrics-model/pom.xml
@@ -6,7 +6,7 @@
io.prometheusclient_java
- 1.9.1-SNAPSHOT
+ 1.10.0prometheus-metrics-model
diff --git a/prometheus-metrics-otel-support/pom.xml b/prometheus-metrics-otel-support/pom.xml
index c5eac25f9d..98d0c8cbc8 100644
--- a/prometheus-metrics-otel-support/pom.xml
+++ b/prometheus-metrics-otel-support/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.9.1-SNAPSHOT
+ 1.10.0prometheus-metrics-otel-support
diff --git a/prometheus-metrics-parent/pom.xml b/prometheus-metrics-parent/pom.xml
index ae560c6680..286237fa40 100644
--- a/prometheus-metrics-parent/pom.xml
+++ b/prometheus-metrics-parent/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java_parent
- 1.9.1-SNAPSHOT
+ 1.10.0Prometheus Metrics Library Parenthttp://github.com/prometheus/client_java
diff --git a/prometheus-metrics-simpleclient-bridge/pom.xml b/prometheus-metrics-simpleclient-bridge/pom.xml
index 2514b496c5..48c0e99f59 100644
--- a/prometheus-metrics-simpleclient-bridge/pom.xml
+++ b/prometheus-metrics-simpleclient-bridge/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.9.1-SNAPSHOT
+ 1.10.0prometheus-metrics-simpleclient-bridge
diff --git a/prometheus-metrics-tracer/pom.xml b/prometheus-metrics-tracer/pom.xml
index 8c7e22fc9e..e648a7658b 100644
--- a/prometheus-metrics-tracer/pom.xml
+++ b/prometheus-metrics-tracer/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.9.1-SNAPSHOT
+ 1.10.0prometheus-metrics-tracer
diff --git a/prometheus-metrics-tracer/prometheus-metrics-tracer-common/pom.xml b/prometheus-metrics-tracer/prometheus-metrics-tracer-common/pom.xml
index a6746a2cca..83525fe699 100644
--- a/prometheus-metrics-tracer/prometheus-metrics-tracer-common/pom.xml
+++ b/prometheus-metrics-tracer/prometheus-metrics-tracer-common/pom.xml
@@ -5,7 +5,7 @@
io.prometheusprometheus-metrics-tracer
- 1.9.1-SNAPSHOT
+ 1.10.0prometheus-metrics-tracer-common
diff --git a/prometheus-metrics-tracer/prometheus-metrics-tracer-initializer/pom.xml b/prometheus-metrics-tracer/prometheus-metrics-tracer-initializer/pom.xml
index 3d0be16059..fcd40da820 100644
--- a/prometheus-metrics-tracer/prometheus-metrics-tracer-initializer/pom.xml
+++ b/prometheus-metrics-tracer/prometheus-metrics-tracer-initializer/pom.xml
@@ -5,7 +5,7 @@
io.prometheusprometheus-metrics-tracer
- 1.9.1-SNAPSHOT
+ 1.10.0prometheus-metrics-tracer-initializer
diff --git a/prometheus-metrics-tracer/prometheus-metrics-tracer-otel-agent/pom.xml b/prometheus-metrics-tracer/prometheus-metrics-tracer-otel-agent/pom.xml
index 4612ffd1f5..b6eff4f0f4 100644
--- a/prometheus-metrics-tracer/prometheus-metrics-tracer-otel-agent/pom.xml
+++ b/prometheus-metrics-tracer/prometheus-metrics-tracer-otel-agent/pom.xml
@@ -5,7 +5,7 @@
io.prometheusprometheus-metrics-tracer
- 1.9.1-SNAPSHOT
+ 1.10.0prometheus-metrics-tracer-otel-agent
diff --git a/prometheus-metrics-tracer/prometheus-metrics-tracer-otel/pom.xml b/prometheus-metrics-tracer/prometheus-metrics-tracer-otel/pom.xml
index 1e3c2af9f6..6b30551fdb 100644
--- a/prometheus-metrics-tracer/prometheus-metrics-tracer-otel/pom.xml
+++ b/prometheus-metrics-tracer/prometheus-metrics-tracer-otel/pom.xml
@@ -5,7 +5,7 @@
io.prometheusprometheus-metrics-tracer
- 1.9.1-SNAPSHOT
+ 1.10.0prometheus-metrics-tracer-otel
diff --git a/simpleclient-archive/integration_tests/it_common/pom.xml b/simpleclient-archive/integration_tests/it_common/pom.xml
index faf50f000c..c2fb862418 100644
--- a/simpleclient-archive/integration_tests/it_common/pom.xml
+++ b/simpleclient-archive/integration_tests/it_common/pom.xml
@@ -5,7 +5,7 @@
io.prometheusintegration_tests
- 1.9.1-SNAPSHOT
+ 1.10.0it_common
diff --git a/simpleclient-archive/integration_tests/it_exemplars_otel_agent/pom.xml b/simpleclient-archive/integration_tests/it_exemplars_otel_agent/pom.xml
index e4a4959495..028a2a4e41 100644
--- a/simpleclient-archive/integration_tests/it_exemplars_otel_agent/pom.xml
+++ b/simpleclient-archive/integration_tests/it_exemplars_otel_agent/pom.xml
@@ -5,7 +5,7 @@
io.prometheusintegration_tests
- 1.9.1-SNAPSHOT
+ 1.10.0it_exemplars_otel_agent
diff --git a/simpleclient-archive/integration_tests/it_exemplars_otel_sdk/pom.xml b/simpleclient-archive/integration_tests/it_exemplars_otel_sdk/pom.xml
index d98f3f6f50..3a4e6ce287 100644
--- a/simpleclient-archive/integration_tests/it_exemplars_otel_sdk/pom.xml
+++ b/simpleclient-archive/integration_tests/it_exemplars_otel_sdk/pom.xml
@@ -5,7 +5,7 @@
io.prometheusintegration_tests
- 1.9.1-SNAPSHOT
+ 1.10.0it_exemplars_otel_sdk
diff --git a/simpleclient-archive/integration_tests/it_java_versions/pom.xml b/simpleclient-archive/integration_tests/it_java_versions/pom.xml
index 475c2660a0..4f99ae983c 100644
--- a/simpleclient-archive/integration_tests/it_java_versions/pom.xml
+++ b/simpleclient-archive/integration_tests/it_java_versions/pom.xml
@@ -5,7 +5,7 @@
io.prometheusintegration_tests
- 1.9.1-SNAPSHOT
+ 1.10.0it_java_versions
diff --git a/simpleclient-archive/integration_tests/it_log4j2/pom.xml b/simpleclient-archive/integration_tests/it_log4j2/pom.xml
index 5e87bd9eca..f4b360a3f6 100644
--- a/simpleclient-archive/integration_tests/it_log4j2/pom.xml
+++ b/simpleclient-archive/integration_tests/it_log4j2/pom.xml
@@ -5,7 +5,7 @@
io.prometheusintegration_tests
- 1.9.1-SNAPSHOT
+ 1.10.0it_log4j2
diff --git a/simpleclient-archive/integration_tests/it_pushgateway/pom.xml b/simpleclient-archive/integration_tests/it_pushgateway/pom.xml
index 62cc92792a..b4a0a2b4af 100644
--- a/simpleclient-archive/integration_tests/it_pushgateway/pom.xml
+++ b/simpleclient-archive/integration_tests/it_pushgateway/pom.xml
@@ -5,7 +5,7 @@
io.prometheusintegration_tests
- 1.9.1-SNAPSHOT
+ 1.10.0it_pushgateway
diff --git a/simpleclient-archive/integration_tests/it_servlet_jakarta_exporter_webxml/pom.xml b/simpleclient-archive/integration_tests/it_servlet_jakarta_exporter_webxml/pom.xml
index f2a00d60de..92c6b7626f 100644
--- a/simpleclient-archive/integration_tests/it_servlet_jakarta_exporter_webxml/pom.xml
+++ b/simpleclient-archive/integration_tests/it_servlet_jakarta_exporter_webxml/pom.xml
@@ -5,7 +5,7 @@
io.prometheusintegration_tests
- 1.9.1-SNAPSHOT
+ 1.10.0it_servlet_jakarta_exporter_webxml
diff --git a/simpleclient-archive/integration_tests/pom.xml b/simpleclient-archive/integration_tests/pom.xml
index 654177bffe..4a787121c0 100644
--- a/simpleclient-archive/integration_tests/pom.xml
+++ b/simpleclient-archive/integration_tests/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.9.1-SNAPSHOT
+ 1.10.0integration_tests
diff --git a/simpleclient-archive/simpleclient_graphite_bridge/pom.xml b/simpleclient-archive/simpleclient_graphite_bridge/pom.xml
index 7680237e76..9124817a23 100644
--- a/simpleclient-archive/simpleclient_graphite_bridge/pom.xml
+++ b/simpleclient-archive/simpleclient_graphite_bridge/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.9.1-SNAPSHOT
+ 1.10.0simpleclient_graphite_bridge
diff --git a/simpleclient-archive/simpleclient_hibernate/pom.xml b/simpleclient-archive/simpleclient_hibernate/pom.xml
index d98bd84300..21d68211cd 100644
--- a/simpleclient-archive/simpleclient_hibernate/pom.xml
+++ b/simpleclient-archive/simpleclient_hibernate/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.9.1-SNAPSHOT
+ 1.10.0simpleclient_hibernate
diff --git a/simpleclient-archive/simpleclient_httpserver/pom.xml b/simpleclient-archive/simpleclient_httpserver/pom.xml
index 49a18583f1..a6568f3d5a 100644
--- a/simpleclient-archive/simpleclient_httpserver/pom.xml
+++ b/simpleclient-archive/simpleclient_httpserver/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.9.1-SNAPSHOT
+ 1.10.0simpleclient_httpserver
diff --git a/simpleclient-archive/simpleclient_jetty/pom.xml b/simpleclient-archive/simpleclient_jetty/pom.xml
index d867dccc39..2e8064ef77 100644
--- a/simpleclient-archive/simpleclient_jetty/pom.xml
+++ b/simpleclient-archive/simpleclient_jetty/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.9.1-SNAPSHOT
+ 1.10.0simpleclient_jetty
diff --git a/simpleclient-archive/simpleclient_jetty_jdk8/pom.xml b/simpleclient-archive/simpleclient_jetty_jdk8/pom.xml
index fcf055731a..aaf97fe7ad 100644
--- a/simpleclient-archive/simpleclient_jetty_jdk8/pom.xml
+++ b/simpleclient-archive/simpleclient_jetty_jdk8/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.9.1-SNAPSHOT
+ 1.10.0simpleclient_jetty_jdk8
diff --git a/simpleclient-archive/simpleclient_log4j/pom.xml b/simpleclient-archive/simpleclient_log4j/pom.xml
index 979b85befa..8484da066a 100644
--- a/simpleclient-archive/simpleclient_log4j/pom.xml
+++ b/simpleclient-archive/simpleclient_log4j/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.9.1-SNAPSHOT
+ 1.10.0simpleclient_log4j
diff --git a/simpleclient-archive/simpleclient_log4j2/pom.xml b/simpleclient-archive/simpleclient_log4j2/pom.xml
index a3ed695580..dcf59e1a4b 100644
--- a/simpleclient-archive/simpleclient_log4j2/pom.xml
+++ b/simpleclient-archive/simpleclient_log4j2/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.9.1-SNAPSHOT
+ 1.10.0simpleclient_log4j2
diff --git a/simpleclient-archive/simpleclient_logback/pom.xml b/simpleclient-archive/simpleclient_logback/pom.xml
index 078f6aefaa..88dbb3d6dc 100644
--- a/simpleclient-archive/simpleclient_logback/pom.xml
+++ b/simpleclient-archive/simpleclient_logback/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.9.1-SNAPSHOT
+ 1.10.0simpleclient_logback
diff --git a/simpleclient-archive/simpleclient_servlet/pom.xml b/simpleclient-archive/simpleclient_servlet/pom.xml
index cac09d622a..b85752894c 100644
--- a/simpleclient-archive/simpleclient_servlet/pom.xml
+++ b/simpleclient-archive/simpleclient_servlet/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.9.1-SNAPSHOT
+ 1.10.0simpleclient_servlet
diff --git a/simpleclient-archive/simpleclient_servlet_common/pom.xml b/simpleclient-archive/simpleclient_servlet_common/pom.xml
index bbbce3ec29..8c232248b4 100644
--- a/simpleclient-archive/simpleclient_servlet_common/pom.xml
+++ b/simpleclient-archive/simpleclient_servlet_common/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.9.1-SNAPSHOT
+ 1.10.0simpleclient_servlet_common
diff --git a/simpleclient-archive/simpleclient_servlet_jakarta/pom.xml b/simpleclient-archive/simpleclient_servlet_jakarta/pom.xml
index 2e8260a9e7..cc7d32bea9 100644
--- a/simpleclient-archive/simpleclient_servlet_jakarta/pom.xml
+++ b/simpleclient-archive/simpleclient_servlet_jakarta/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.9.1-SNAPSHOT
+ 1.10.0simpleclient_servlet_jakarta
diff --git a/simpleclient-archive/simpleclient_spring_web/pom.xml b/simpleclient-archive/simpleclient_spring_web/pom.xml
index 4f51e10cd6..5ad80baf0d 100644
--- a/simpleclient-archive/simpleclient_spring_web/pom.xml
+++ b/simpleclient-archive/simpleclient_spring_web/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.9.1-SNAPSHOT
+ 1.10.0simpleclient_spring_web
diff --git a/simpleclient-archive/simpleclient_vertx/pom.xml b/simpleclient-archive/simpleclient_vertx/pom.xml
index d2d3fc71cc..84a2957599 100644
--- a/simpleclient-archive/simpleclient_vertx/pom.xml
+++ b/simpleclient-archive/simpleclient_vertx/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.9.1-SNAPSHOT
+ 1.10.0simpleclient_vertx
diff --git a/simpleclient-archive/simpleclient_vertx4/pom.xml b/simpleclient-archive/simpleclient_vertx4/pom.xml
index dd6b4ec207..3165deb57d 100644
--- a/simpleclient-archive/simpleclient_vertx4/pom.xml
+++ b/simpleclient-archive/simpleclient_vertx4/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.9.1-SNAPSHOT
+ 1.10.0simpleclient_vertx4
From e1529cfe450e0033b9adaf0b7641fe0f5f133f28 Mon Sep 17 00:00:00 2001
From: "github-actions[bot]"
<41898282+github-actions[bot]@users.noreply.github.com>
Date: Fri, 16 Oct 2026 09:14:48 +0000
Subject: [PATCH 242/255] chore(main): release 1.10.1-SNAPSHOT (#2562)
:robot: I have created a release *beep* *boop*
---
### Updating meta-information for bleeding-edge SNAPSHOT release.
---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).
---------
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
---
benchmarks/pom.xml | 2 +-
.../prometheus-metrics-annotations.txt | 2 ++
.../1.10.0_vs_1.9.0/prometheus-metrics-config.txt | 11 +++++++++++
.../1.10.0_vs_1.9.0/prometheus-metrics-core.txt | 2 ++
.../prometheus-metrics-exporter-common.txt | 2 ++
.../prometheus-metrics-exporter-httpserver.txt | 2 ++
...-exporter-opentelemetry-otel-agent-resources.txt | 2 ++
...etheus-metrics-exporter-opentelemetry-shaded.txt | 2 ++
.../prometheus-metrics-exporter-opentelemetry.txt | 2 ++
.../prometheus-metrics-exporter-pushgateway.txt | 2 ++
.../prometheus-metrics-exporter-servlet-jakarta.txt | 2 ++
.../prometheus-metrics-exporter-servlet-javax.txt | 2 ++
...prometheus-metrics-exposition-formats-shaded.txt | 2 ++
.../prometheus-metrics-exposition-formats.txt | 2 ++
.../prometheus-metrics-exposition-textformats.txt | 2 ++
.../prometheus-metrics-instrumentation-caffeine.txt | 2 ++
...rometheus-metrics-instrumentation-dropwizard.txt | 2 ++
...ometheus-metrics-instrumentation-dropwizard5.txt | 2 ++
.../prometheus-metrics-instrumentation-guava.txt | 2 ++
.../prometheus-metrics-instrumentation-jvm.txt | 2 ++
.../1.10.0_vs_1.9.0/prometheus-metrics-model.txt | 2 ++
.../prometheus-metrics-simpleclient-bridge.txt | 2 ++
.../prometheus-metrics-tracer-common.txt | 2 ++
.../prometheus-metrics-tracer-initializer.txt | 2 ++
.../prometheus-metrics-tracer-otel-agent.txt | 2 ++
.../prometheus-metrics-tracer-otel.txt | 2 ++
.../prometheus-metrics-annotations.txt | 2 +-
.../current_vs_latest/prometheus-metrics-config.txt | 13 ++-----------
.../current_vs_latest/prometheus-metrics-core.txt | 2 +-
.../prometheus-metrics-exporter-common.txt | 2 +-
.../prometheus-metrics-exporter-httpserver.txt | 2 +-
...-exporter-opentelemetry-otel-agent-resources.txt | 2 +-
...etheus-metrics-exporter-opentelemetry-shaded.txt | 2 +-
.../prometheus-metrics-exporter-opentelemetry.txt | 2 +-
.../prometheus-metrics-exporter-pushgateway.txt | 2 +-
.../prometheus-metrics-exporter-servlet-jakarta.txt | 2 +-
.../prometheus-metrics-exporter-servlet-javax.txt | 2 +-
...prometheus-metrics-exposition-formats-shaded.txt | 2 +-
.../prometheus-metrics-exposition-formats.txt | 2 +-
.../prometheus-metrics-exposition-textformats.txt | 2 +-
.../prometheus-metrics-instrumentation-caffeine.txt | 2 +-
...rometheus-metrics-instrumentation-dropwizard.txt | 2 +-
...ometheus-metrics-instrumentation-dropwizard5.txt | 2 +-
.../prometheus-metrics-instrumentation-guava.txt | 2 +-
.../prometheus-metrics-instrumentation-jvm.txt | 2 +-
.../current_vs_latest/prometheus-metrics-model.txt | 2 +-
.../prometheus-metrics-simpleclient-bridge.txt | 2 +-
.../prometheus-metrics-tracer-common.txt | 2 +-
.../prometheus-metrics-tracer-initializer.txt | 2 +-
.../prometheus-metrics-tracer-otel-agent.txt | 2 +-
.../prometheus-metrics-tracer-otel.txt | 2 +-
examples/example-custom-buckets/pom.xml | 2 +-
.../example-greeting-service/pom.xml | 2 +-
.../example-hello-world-app/pom.xml | 2 +-
examples/example-exemplars-tail-sampling/pom.xml | 2 +-
examples/example-exporter-httpserver/pom.xml | 2 +-
examples/example-exporter-multi-target/pom.xml | 2 +-
examples/example-exporter-opentelemetry/pom.xml | 2 +-
examples/example-exporter-servlet-tomcat/pom.xml | 2 +-
examples/example-native-histogram/pom.xml | 2 +-
examples/example-otel-jvm-runtime-metrics/pom.xml | 2 +-
examples/example-prometheus-properties/pom.xml | 2 +-
examples/example-simpleclient-bridge/pom.xml | 2 +-
examples/pom.xml | 2 +-
integration-tests/it-common/pom.xml | 2 +-
.../it-exporter-duplicate-metrics-sample/pom.xml | 2 +-
.../it-exporter-httpserver-sample/pom.xml | 2 +-
.../it-exporter/it-exporter-no-protobuf/pom.xml | 2 +-
.../it-exporter-servlet-jetty-sample/pom.xml | 2 +-
.../it-exporter-servlet-tomcat-sample/pom.xml | 2 +-
.../it-exporter/it-exporter-test/pom.xml | 2 +-
.../it-exporter/it-no-protobuf-test/pom.xml | 2 +-
integration-tests/it-exporter/pom.xml | 2 +-
integration-tests/it-pushgateway/pom.xml | 2 +-
integration-tests/it-spring-boot-smoke-test/pom.xml | 2 +-
integration-tests/pom.xml | 2 +-
pom.xml | 4 ++--
prometheus-metrics-annotations/pom.xml | 2 +-
prometheus-metrics-bom/pom.xml | 2 +-
prometheus-metrics-config/pom.xml | 2 +-
prometheus-metrics-core/pom.xml | 2 +-
prometheus-metrics-exporter-common/pom.xml | 2 +-
prometheus-metrics-exporter-httpserver/pom.xml | 2 +-
.../pom.xml | 2 +-
.../pom.xml | 2 +-
prometheus-metrics-exporter-opentelemetry/pom.xml | 2 +-
prometheus-metrics-exporter-pushgateway/pom.xml | 2 +-
prometheus-metrics-exporter-servlet-jakarta/pom.xml | 2 +-
prometheus-metrics-exporter-servlet-javax/pom.xml | 2 +-
.../pom.xml | 2 +-
prometheus-metrics-exposition-formats/pom.xml | 2 +-
prometheus-metrics-exposition-textformats/pom.xml | 2 +-
prometheus-metrics-instrumentation-caffeine/pom.xml | 2 +-
.../pom.xml | 2 +-
.../pom.xml | 2 +-
prometheus-metrics-instrumentation-guava/pom.xml | 2 +-
prometheus-metrics-instrumentation-jvm/pom.xml | 2 +-
prometheus-metrics-model/pom.xml | 2 +-
prometheus-metrics-otel-support/pom.xml | 2 +-
prometheus-metrics-parent/pom.xml | 2 +-
prometheus-metrics-simpleclient-bridge/pom.xml | 2 +-
prometheus-metrics-tracer/pom.xml | 2 +-
.../prometheus-metrics-tracer-common/pom.xml | 2 +-
.../prometheus-metrics-tracer-initializer/pom.xml | 2 +-
.../prometheus-metrics-tracer-otel-agent/pom.xml | 2 +-
.../prometheus-metrics-tracer-otel/pom.xml | 2 +-
.../integration_tests/it_common/pom.xml | 2 +-
.../it_exemplars_otel_agent/pom.xml | 2 +-
.../integration_tests/it_exemplars_otel_sdk/pom.xml | 2 +-
.../integration_tests/it_java_versions/pom.xml | 2 +-
.../integration_tests/it_log4j2/pom.xml | 2 +-
.../integration_tests/it_pushgateway/pom.xml | 2 +-
.../it_servlet_jakarta_exporter_webxml/pom.xml | 2 +-
simpleclient-archive/integration_tests/pom.xml | 2 +-
.../simpleclient_graphite_bridge/pom.xml | 2 +-
simpleclient-archive/simpleclient_hibernate/pom.xml | 2 +-
.../simpleclient_httpserver/pom.xml | 2 +-
simpleclient-archive/simpleclient_jetty/pom.xml | 2 +-
.../simpleclient_jetty_jdk8/pom.xml | 2 +-
simpleclient-archive/simpleclient_log4j/pom.xml | 2 +-
simpleclient-archive/simpleclient_log4j2/pom.xml | 2 +-
simpleclient-archive/simpleclient_logback/pom.xml | 2 +-
simpleclient-archive/simpleclient_servlet/pom.xml | 2 +-
.../simpleclient_servlet_common/pom.xml | 2 +-
.../simpleclient_servlet_jakarta/pom.xml | 2 +-
.../simpleclient_spring_web/pom.xml | 2 +-
simpleclient-archive/simpleclient_vertx/pom.xml | 2 +-
simpleclient-archive/simpleclient_vertx4/pom.xml | 2 +-
128 files changed, 164 insertions(+), 114 deletions(-)
create mode 100644 docs/apidiffs/1.10.0_vs_1.9.0/prometheus-metrics-annotations.txt
create mode 100644 docs/apidiffs/1.10.0_vs_1.9.0/prometheus-metrics-config.txt
create mode 100644 docs/apidiffs/1.10.0_vs_1.9.0/prometheus-metrics-core.txt
create mode 100644 docs/apidiffs/1.10.0_vs_1.9.0/prometheus-metrics-exporter-common.txt
create mode 100644 docs/apidiffs/1.10.0_vs_1.9.0/prometheus-metrics-exporter-httpserver.txt
create mode 100644 docs/apidiffs/1.10.0_vs_1.9.0/prometheus-metrics-exporter-opentelemetry-otel-agent-resources.txt
create mode 100644 docs/apidiffs/1.10.0_vs_1.9.0/prometheus-metrics-exporter-opentelemetry-shaded.txt
create mode 100644 docs/apidiffs/1.10.0_vs_1.9.0/prometheus-metrics-exporter-opentelemetry.txt
create mode 100644 docs/apidiffs/1.10.0_vs_1.9.0/prometheus-metrics-exporter-pushgateway.txt
create mode 100644 docs/apidiffs/1.10.0_vs_1.9.0/prometheus-metrics-exporter-servlet-jakarta.txt
create mode 100644 docs/apidiffs/1.10.0_vs_1.9.0/prometheus-metrics-exporter-servlet-javax.txt
create mode 100644 docs/apidiffs/1.10.0_vs_1.9.0/prometheus-metrics-exposition-formats-shaded.txt
create mode 100644 docs/apidiffs/1.10.0_vs_1.9.0/prometheus-metrics-exposition-formats.txt
create mode 100644 docs/apidiffs/1.10.0_vs_1.9.0/prometheus-metrics-exposition-textformats.txt
create mode 100644 docs/apidiffs/1.10.0_vs_1.9.0/prometheus-metrics-instrumentation-caffeine.txt
create mode 100644 docs/apidiffs/1.10.0_vs_1.9.0/prometheus-metrics-instrumentation-dropwizard.txt
create mode 100644 docs/apidiffs/1.10.0_vs_1.9.0/prometheus-metrics-instrumentation-dropwizard5.txt
create mode 100644 docs/apidiffs/1.10.0_vs_1.9.0/prometheus-metrics-instrumentation-guava.txt
create mode 100644 docs/apidiffs/1.10.0_vs_1.9.0/prometheus-metrics-instrumentation-jvm.txt
create mode 100644 docs/apidiffs/1.10.0_vs_1.9.0/prometheus-metrics-model.txt
create mode 100644 docs/apidiffs/1.10.0_vs_1.9.0/prometheus-metrics-simpleclient-bridge.txt
create mode 100644 docs/apidiffs/1.10.0_vs_1.9.0/prometheus-metrics-tracer-common.txt
create mode 100644 docs/apidiffs/1.10.0_vs_1.9.0/prometheus-metrics-tracer-initializer.txt
create mode 100644 docs/apidiffs/1.10.0_vs_1.9.0/prometheus-metrics-tracer-otel-agent.txt
create mode 100644 docs/apidiffs/1.10.0_vs_1.9.0/prometheus-metrics-tracer-otel.txt
diff --git a/benchmarks/pom.xml b/benchmarks/pom.xml
index 314ac8d151..c90cd0b606 100644
--- a/benchmarks/pom.xml
+++ b/benchmarks/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.10.0
+ 1.10.1-SNAPSHOTbenchmarks
diff --git a/docs/apidiffs/1.10.0_vs_1.9.0/prometheus-metrics-annotations.txt b/docs/apidiffs/1.10.0_vs_1.9.0/prometheus-metrics-annotations.txt
new file mode 100644
index 0000000000..c9d8bb58c3
--- /dev/null
+++ b/docs/apidiffs/1.10.0_vs_1.9.0/prometheus-metrics-annotations.txt
@@ -0,0 +1,2 @@
+Comparing source compatibility of prometheus-metrics-annotations-1.9.1-SNAPSHOT.jar against prometheus-metrics-annotations-1.9.0.jar
+No changes.
diff --git a/docs/apidiffs/1.10.0_vs_1.9.0/prometheus-metrics-config.txt b/docs/apidiffs/1.10.0_vs_1.9.0/prometheus-metrics-config.txt
new file mode 100644
index 0000000000..d83c50781b
--- /dev/null
+++ b/docs/apidiffs/1.10.0_vs_1.9.0/prometheus-metrics-config.txt
@@ -0,0 +1,11 @@
+Comparing source compatibility of prometheus-metrics-config-1.9.1-SNAPSHOT.jar against prometheus-metrics-config-1.9.0.jar
+*** MODIFIED ENUM: PUBLIC FINAL io.prometheus.metrics.config.EscapingScheme (compatible)
+ === CLASS FILE FORMAT VERSION: 52.0 <- 52.0
+ +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.config.EscapingScheme fromAcceptHeader(java.lang.String, io.prometheus.metrics.config.EscapingScheme)
+*** MODIFIED CLASS: PUBLIC io.prometheus.metrics.config.OpenMetrics2Properties (not serializable)
+ === CLASS FILE FORMAT VERSION: 52.0 <- 52.0
+ +++ NEW METHOD: PUBLIC(+) boolean getSuffixes()
+*** MODIFIED CLASS: PUBLIC STATIC io.prometheus.metrics.config.OpenMetrics2Properties$Builder (not serializable)
+ === CLASS FILE FORMAT VERSION: 52.0 <- 52.0
+ +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.OpenMetrics2Properties$Builder suffixes(boolean)
+
diff --git a/docs/apidiffs/1.10.0_vs_1.9.0/prometheus-metrics-core.txt b/docs/apidiffs/1.10.0_vs_1.9.0/prometheus-metrics-core.txt
new file mode 100644
index 0000000000..0488f6c054
--- /dev/null
+++ b/docs/apidiffs/1.10.0_vs_1.9.0/prometheus-metrics-core.txt
@@ -0,0 +1,2 @@
+Comparing source compatibility of prometheus-metrics-core-1.9.1-SNAPSHOT.jar against prometheus-metrics-core-1.9.0.jar
+No changes.
diff --git a/docs/apidiffs/1.10.0_vs_1.9.0/prometheus-metrics-exporter-common.txt b/docs/apidiffs/1.10.0_vs_1.9.0/prometheus-metrics-exporter-common.txt
new file mode 100644
index 0000000000..f2e0b9b3a9
--- /dev/null
+++ b/docs/apidiffs/1.10.0_vs_1.9.0/prometheus-metrics-exporter-common.txt
@@ -0,0 +1,2 @@
+Comparing source compatibility of prometheus-metrics-exporter-common-1.9.1-SNAPSHOT.jar against prometheus-metrics-exporter-common-1.9.0.jar
+No changes.
diff --git a/docs/apidiffs/1.10.0_vs_1.9.0/prometheus-metrics-exporter-httpserver.txt b/docs/apidiffs/1.10.0_vs_1.9.0/prometheus-metrics-exporter-httpserver.txt
new file mode 100644
index 0000000000..d79d86a72d
--- /dev/null
+++ b/docs/apidiffs/1.10.0_vs_1.9.0/prometheus-metrics-exporter-httpserver.txt
@@ -0,0 +1,2 @@
+Comparing source compatibility of prometheus-metrics-exporter-httpserver-1.9.1-SNAPSHOT.jar against prometheus-metrics-exporter-httpserver-1.9.0.jar
+No changes.
diff --git a/docs/apidiffs/1.10.0_vs_1.9.0/prometheus-metrics-exporter-opentelemetry-otel-agent-resources.txt b/docs/apidiffs/1.10.0_vs_1.9.0/prometheus-metrics-exporter-opentelemetry-otel-agent-resources.txt
new file mode 100644
index 0000000000..c28061e7c6
--- /dev/null
+++ b/docs/apidiffs/1.10.0_vs_1.9.0/prometheus-metrics-exporter-opentelemetry-otel-agent-resources.txt
@@ -0,0 +1,2 @@
+Comparing source compatibility of prometheus-metrics-exporter-opentelemetry-otel-agent-resources-1.9.1-SNAPSHOT.jar against prometheus-metrics-exporter-opentelemetry-otel-agent-resources-1.9.0.jar
+No changes.
diff --git a/docs/apidiffs/1.10.0_vs_1.9.0/prometheus-metrics-exporter-opentelemetry-shaded.txt b/docs/apidiffs/1.10.0_vs_1.9.0/prometheus-metrics-exporter-opentelemetry-shaded.txt
new file mode 100644
index 0000000000..b6df5c4795
--- /dev/null
+++ b/docs/apidiffs/1.10.0_vs_1.9.0/prometheus-metrics-exporter-opentelemetry-shaded.txt
@@ -0,0 +1,2 @@
+Comparing source compatibility of prometheus-metrics-exporter-opentelemetry-1.9.1-SNAPSHOT.jar against prometheus-metrics-exporter-opentelemetry-1.9.0.jar
+No changes.
diff --git a/docs/apidiffs/1.10.0_vs_1.9.0/prometheus-metrics-exporter-opentelemetry.txt b/docs/apidiffs/1.10.0_vs_1.9.0/prometheus-metrics-exporter-opentelemetry.txt
new file mode 100644
index 0000000000..f8af7d6e94
--- /dev/null
+++ b/docs/apidiffs/1.10.0_vs_1.9.0/prometheus-metrics-exporter-opentelemetry.txt
@@ -0,0 +1,2 @@
+Comparing source compatibility of prometheus-metrics-exporter-opentelemetry-no-otel-1.9.1-SNAPSHOT.jar against prometheus-metrics-exporter-opentelemetry-no-otel-1.9.0.jar
+No changes.
diff --git a/docs/apidiffs/1.10.0_vs_1.9.0/prometheus-metrics-exporter-pushgateway.txt b/docs/apidiffs/1.10.0_vs_1.9.0/prometheus-metrics-exporter-pushgateway.txt
new file mode 100644
index 0000000000..d38138860c
--- /dev/null
+++ b/docs/apidiffs/1.10.0_vs_1.9.0/prometheus-metrics-exporter-pushgateway.txt
@@ -0,0 +1,2 @@
+Comparing source compatibility of prometheus-metrics-exporter-pushgateway-1.9.1-SNAPSHOT.jar against prometheus-metrics-exporter-pushgateway-1.9.0.jar
+No changes.
diff --git a/docs/apidiffs/1.10.0_vs_1.9.0/prometheus-metrics-exporter-servlet-jakarta.txt b/docs/apidiffs/1.10.0_vs_1.9.0/prometheus-metrics-exporter-servlet-jakarta.txt
new file mode 100644
index 0000000000..37e318bf45
--- /dev/null
+++ b/docs/apidiffs/1.10.0_vs_1.9.0/prometheus-metrics-exporter-servlet-jakarta.txt
@@ -0,0 +1,2 @@
+Comparing source compatibility of prometheus-metrics-exporter-servlet-jakarta-1.9.1-SNAPSHOT.jar against prometheus-metrics-exporter-servlet-jakarta-1.9.0.jar
+No changes.
diff --git a/docs/apidiffs/1.10.0_vs_1.9.0/prometheus-metrics-exporter-servlet-javax.txt b/docs/apidiffs/1.10.0_vs_1.9.0/prometheus-metrics-exporter-servlet-javax.txt
new file mode 100644
index 0000000000..8e0517f91f
--- /dev/null
+++ b/docs/apidiffs/1.10.0_vs_1.9.0/prometheus-metrics-exporter-servlet-javax.txt
@@ -0,0 +1,2 @@
+Comparing source compatibility of prometheus-metrics-exporter-servlet-javax-1.9.1-SNAPSHOT.jar against prometheus-metrics-exporter-servlet-javax-1.9.0.jar
+No changes.
diff --git a/docs/apidiffs/1.10.0_vs_1.9.0/prometheus-metrics-exposition-formats-shaded.txt b/docs/apidiffs/1.10.0_vs_1.9.0/prometheus-metrics-exposition-formats-shaded.txt
new file mode 100644
index 0000000000..f834ffeff4
--- /dev/null
+++ b/docs/apidiffs/1.10.0_vs_1.9.0/prometheus-metrics-exposition-formats-shaded.txt
@@ -0,0 +1,2 @@
+Comparing source compatibility of prometheus-metrics-exposition-formats-1.9.1-SNAPSHOT.jar against prometheus-metrics-exposition-formats-1.9.0.jar
+No changes.
diff --git a/docs/apidiffs/1.10.0_vs_1.9.0/prometheus-metrics-exposition-formats.txt b/docs/apidiffs/1.10.0_vs_1.9.0/prometheus-metrics-exposition-formats.txt
new file mode 100644
index 0000000000..14a4544141
--- /dev/null
+++ b/docs/apidiffs/1.10.0_vs_1.9.0/prometheus-metrics-exposition-formats.txt
@@ -0,0 +1,2 @@
+Comparing source compatibility of prometheus-metrics-exposition-formats-no-protobuf-1.9.1-SNAPSHOT.jar against prometheus-metrics-exposition-formats-no-protobuf-1.9.0.jar
+No changes.
diff --git a/docs/apidiffs/1.10.0_vs_1.9.0/prometheus-metrics-exposition-textformats.txt b/docs/apidiffs/1.10.0_vs_1.9.0/prometheus-metrics-exposition-textformats.txt
new file mode 100644
index 0000000000..88d0781d26
--- /dev/null
+++ b/docs/apidiffs/1.10.0_vs_1.9.0/prometheus-metrics-exposition-textformats.txt
@@ -0,0 +1,2 @@
+Comparing source compatibility of prometheus-metrics-exposition-textformats-1.9.1-SNAPSHOT.jar against prometheus-metrics-exposition-textformats-1.9.0.jar
+No changes.
diff --git a/docs/apidiffs/1.10.0_vs_1.9.0/prometheus-metrics-instrumentation-caffeine.txt b/docs/apidiffs/1.10.0_vs_1.9.0/prometheus-metrics-instrumentation-caffeine.txt
new file mode 100644
index 0000000000..3e82c5092c
--- /dev/null
+++ b/docs/apidiffs/1.10.0_vs_1.9.0/prometheus-metrics-instrumentation-caffeine.txt
@@ -0,0 +1,2 @@
+Comparing source compatibility of prometheus-metrics-instrumentation-caffeine-1.9.1-SNAPSHOT.jar against prometheus-metrics-instrumentation-caffeine-1.9.0.jar
+No changes.
diff --git a/docs/apidiffs/1.10.0_vs_1.9.0/prometheus-metrics-instrumentation-dropwizard.txt b/docs/apidiffs/1.10.0_vs_1.9.0/prometheus-metrics-instrumentation-dropwizard.txt
new file mode 100644
index 0000000000..3eda7ebef3
--- /dev/null
+++ b/docs/apidiffs/1.10.0_vs_1.9.0/prometheus-metrics-instrumentation-dropwizard.txt
@@ -0,0 +1,2 @@
+Comparing source compatibility of prometheus-metrics-instrumentation-dropwizard-1.9.1-SNAPSHOT.jar against prometheus-metrics-instrumentation-dropwizard-1.9.0.jar
+No changes.
diff --git a/docs/apidiffs/1.10.0_vs_1.9.0/prometheus-metrics-instrumentation-dropwizard5.txt b/docs/apidiffs/1.10.0_vs_1.9.0/prometheus-metrics-instrumentation-dropwizard5.txt
new file mode 100644
index 0000000000..a6c14684b4
--- /dev/null
+++ b/docs/apidiffs/1.10.0_vs_1.9.0/prometheus-metrics-instrumentation-dropwizard5.txt
@@ -0,0 +1,2 @@
+Comparing source compatibility of prometheus-metrics-instrumentation-dropwizard5-1.9.1-SNAPSHOT.jar against prometheus-metrics-instrumentation-dropwizard5-1.9.0.jar
+No changes.
diff --git a/docs/apidiffs/1.10.0_vs_1.9.0/prometheus-metrics-instrumentation-guava.txt b/docs/apidiffs/1.10.0_vs_1.9.0/prometheus-metrics-instrumentation-guava.txt
new file mode 100644
index 0000000000..928b7650cf
--- /dev/null
+++ b/docs/apidiffs/1.10.0_vs_1.9.0/prometheus-metrics-instrumentation-guava.txt
@@ -0,0 +1,2 @@
+Comparing source compatibility of prometheus-metrics-instrumentation-guava-1.9.1-SNAPSHOT.jar against prometheus-metrics-instrumentation-guava-1.9.0.jar
+No changes.
diff --git a/docs/apidiffs/1.10.0_vs_1.9.0/prometheus-metrics-instrumentation-jvm.txt b/docs/apidiffs/1.10.0_vs_1.9.0/prometheus-metrics-instrumentation-jvm.txt
new file mode 100644
index 0000000000..4b3de2a8a8
--- /dev/null
+++ b/docs/apidiffs/1.10.0_vs_1.9.0/prometheus-metrics-instrumentation-jvm.txt
@@ -0,0 +1,2 @@
+Comparing source compatibility of prometheus-metrics-instrumentation-jvm-1.9.1-SNAPSHOT.jar against prometheus-metrics-instrumentation-jvm-1.9.0.jar
+No changes.
diff --git a/docs/apidiffs/1.10.0_vs_1.9.0/prometheus-metrics-model.txt b/docs/apidiffs/1.10.0_vs_1.9.0/prometheus-metrics-model.txt
new file mode 100644
index 0000000000..531739c332
--- /dev/null
+++ b/docs/apidiffs/1.10.0_vs_1.9.0/prometheus-metrics-model.txt
@@ -0,0 +1,2 @@
+Comparing source compatibility of prometheus-metrics-model-1.9.1-SNAPSHOT.jar against prometheus-metrics-model-1.9.0.jar
+No changes.
diff --git a/docs/apidiffs/1.10.0_vs_1.9.0/prometheus-metrics-simpleclient-bridge.txt b/docs/apidiffs/1.10.0_vs_1.9.0/prometheus-metrics-simpleclient-bridge.txt
new file mode 100644
index 0000000000..c4b1db09c1
--- /dev/null
+++ b/docs/apidiffs/1.10.0_vs_1.9.0/prometheus-metrics-simpleclient-bridge.txt
@@ -0,0 +1,2 @@
+Comparing source compatibility of prometheus-metrics-simpleclient-bridge-1.9.1-SNAPSHOT.jar against prometheus-metrics-simpleclient-bridge-1.9.0.jar
+No changes.
diff --git a/docs/apidiffs/1.10.0_vs_1.9.0/prometheus-metrics-tracer-common.txt b/docs/apidiffs/1.10.0_vs_1.9.0/prometheus-metrics-tracer-common.txt
new file mode 100644
index 0000000000..cc215a28e7
--- /dev/null
+++ b/docs/apidiffs/1.10.0_vs_1.9.0/prometheus-metrics-tracer-common.txt
@@ -0,0 +1,2 @@
+Comparing source compatibility of prometheus-metrics-tracer-common-1.9.1-SNAPSHOT.jar against prometheus-metrics-tracer-common-1.9.0.jar
+No changes.
diff --git a/docs/apidiffs/1.10.0_vs_1.9.0/prometheus-metrics-tracer-initializer.txt b/docs/apidiffs/1.10.0_vs_1.9.0/prometheus-metrics-tracer-initializer.txt
new file mode 100644
index 0000000000..bc16ce85f0
--- /dev/null
+++ b/docs/apidiffs/1.10.0_vs_1.9.0/prometheus-metrics-tracer-initializer.txt
@@ -0,0 +1,2 @@
+Comparing source compatibility of prometheus-metrics-tracer-initializer-1.9.1-SNAPSHOT.jar against prometheus-metrics-tracer-initializer-1.9.0.jar
+No changes.
diff --git a/docs/apidiffs/1.10.0_vs_1.9.0/prometheus-metrics-tracer-otel-agent.txt b/docs/apidiffs/1.10.0_vs_1.9.0/prometheus-metrics-tracer-otel-agent.txt
new file mode 100644
index 0000000000..9bb39a0b7f
--- /dev/null
+++ b/docs/apidiffs/1.10.0_vs_1.9.0/prometheus-metrics-tracer-otel-agent.txt
@@ -0,0 +1,2 @@
+Comparing source compatibility of prometheus-metrics-tracer-otel-agent-1.9.1-SNAPSHOT.jar against prometheus-metrics-tracer-otel-agent-1.9.0.jar
+No changes.
diff --git a/docs/apidiffs/1.10.0_vs_1.9.0/prometheus-metrics-tracer-otel.txt b/docs/apidiffs/1.10.0_vs_1.9.0/prometheus-metrics-tracer-otel.txt
new file mode 100644
index 0000000000..c6e812fa5f
--- /dev/null
+++ b/docs/apidiffs/1.10.0_vs_1.9.0/prometheus-metrics-tracer-otel.txt
@@ -0,0 +1,2 @@
+Comparing source compatibility of prometheus-metrics-tracer-otel-1.9.1-SNAPSHOT.jar against prometheus-metrics-tracer-otel-1.9.0.jar
+No changes.
diff --git a/docs/apidiffs/current_vs_latest/prometheus-metrics-annotations.txt b/docs/apidiffs/current_vs_latest/prometheus-metrics-annotations.txt
index c9d8bb58c3..f8b2d0ab27 100644
--- a/docs/apidiffs/current_vs_latest/prometheus-metrics-annotations.txt
+++ b/docs/apidiffs/current_vs_latest/prometheus-metrics-annotations.txt
@@ -1,2 +1,2 @@
-Comparing source compatibility of prometheus-metrics-annotations-1.9.1-SNAPSHOT.jar against prometheus-metrics-annotations-1.9.0.jar
+Comparing source compatibility of prometheus-metrics-annotations-1.10.1-SNAPSHOT.jar against prometheus-metrics-annotations-1.10.0.jar
No changes.
diff --git a/docs/apidiffs/current_vs_latest/prometheus-metrics-config.txt b/docs/apidiffs/current_vs_latest/prometheus-metrics-config.txt
index d83c50781b..f7a0b63b72 100644
--- a/docs/apidiffs/current_vs_latest/prometheus-metrics-config.txt
+++ b/docs/apidiffs/current_vs_latest/prometheus-metrics-config.txt
@@ -1,11 +1,2 @@
-Comparing source compatibility of prometheus-metrics-config-1.9.1-SNAPSHOT.jar against prometheus-metrics-config-1.9.0.jar
-*** MODIFIED ENUM: PUBLIC FINAL io.prometheus.metrics.config.EscapingScheme (compatible)
- === CLASS FILE FORMAT VERSION: 52.0 <- 52.0
- +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.config.EscapingScheme fromAcceptHeader(java.lang.String, io.prometheus.metrics.config.EscapingScheme)
-*** MODIFIED CLASS: PUBLIC io.prometheus.metrics.config.OpenMetrics2Properties (not serializable)
- === CLASS FILE FORMAT VERSION: 52.0 <- 52.0
- +++ NEW METHOD: PUBLIC(+) boolean getSuffixes()
-*** MODIFIED CLASS: PUBLIC STATIC io.prometheus.metrics.config.OpenMetrics2Properties$Builder (not serializable)
- === CLASS FILE FORMAT VERSION: 52.0 <- 52.0
- +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.OpenMetrics2Properties$Builder suffixes(boolean)
-
+Comparing source compatibility of prometheus-metrics-config-1.10.1-SNAPSHOT.jar against prometheus-metrics-config-1.10.0.jar
+No changes.
diff --git a/docs/apidiffs/current_vs_latest/prometheus-metrics-core.txt b/docs/apidiffs/current_vs_latest/prometheus-metrics-core.txt
index 0488f6c054..f417d99060 100644
--- a/docs/apidiffs/current_vs_latest/prometheus-metrics-core.txt
+++ b/docs/apidiffs/current_vs_latest/prometheus-metrics-core.txt
@@ -1,2 +1,2 @@
-Comparing source compatibility of prometheus-metrics-core-1.9.1-SNAPSHOT.jar against prometheus-metrics-core-1.9.0.jar
+Comparing source compatibility of prometheus-metrics-core-1.10.1-SNAPSHOT.jar against prometheus-metrics-core-1.10.0.jar
No changes.
diff --git a/docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-common.txt b/docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-common.txt
index f2e0b9b3a9..edefe7a1f8 100644
--- a/docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-common.txt
+++ b/docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-common.txt
@@ -1,2 +1,2 @@
-Comparing source compatibility of prometheus-metrics-exporter-common-1.9.1-SNAPSHOT.jar against prometheus-metrics-exporter-common-1.9.0.jar
+Comparing source compatibility of prometheus-metrics-exporter-common-1.10.1-SNAPSHOT.jar against prometheus-metrics-exporter-common-1.10.0.jar
No changes.
diff --git a/docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-httpserver.txt b/docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-httpserver.txt
index d79d86a72d..45e2d1b45d 100644
--- a/docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-httpserver.txt
+++ b/docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-httpserver.txt
@@ -1,2 +1,2 @@
-Comparing source compatibility of prometheus-metrics-exporter-httpserver-1.9.1-SNAPSHOT.jar against prometheus-metrics-exporter-httpserver-1.9.0.jar
+Comparing source compatibility of prometheus-metrics-exporter-httpserver-1.10.1-SNAPSHOT.jar against prometheus-metrics-exporter-httpserver-1.10.0.jar
No changes.
diff --git a/docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-opentelemetry-otel-agent-resources.txt b/docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-opentelemetry-otel-agent-resources.txt
index c28061e7c6..c2a922a7ee 100644
--- a/docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-opentelemetry-otel-agent-resources.txt
+++ b/docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-opentelemetry-otel-agent-resources.txt
@@ -1,2 +1,2 @@
-Comparing source compatibility of prometheus-metrics-exporter-opentelemetry-otel-agent-resources-1.9.1-SNAPSHOT.jar against prometheus-metrics-exporter-opentelemetry-otel-agent-resources-1.9.0.jar
+Comparing source compatibility of prometheus-metrics-exporter-opentelemetry-otel-agent-resources-1.10.1-SNAPSHOT.jar against prometheus-metrics-exporter-opentelemetry-otel-agent-resources-1.10.0.jar
No changes.
diff --git a/docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-opentelemetry-shaded.txt b/docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-opentelemetry-shaded.txt
index b6df5c4795..5851eba9d8 100644
--- a/docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-opentelemetry-shaded.txt
+++ b/docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-opentelemetry-shaded.txt
@@ -1,2 +1,2 @@
-Comparing source compatibility of prometheus-metrics-exporter-opentelemetry-1.9.1-SNAPSHOT.jar against prometheus-metrics-exporter-opentelemetry-1.9.0.jar
+Comparing source compatibility of prometheus-metrics-exporter-opentelemetry-1.10.1-SNAPSHOT.jar against prometheus-metrics-exporter-opentelemetry-1.10.0.jar
No changes.
diff --git a/docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-opentelemetry.txt b/docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-opentelemetry.txt
index f8af7d6e94..fb07e4064d 100644
--- a/docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-opentelemetry.txt
+++ b/docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-opentelemetry.txt
@@ -1,2 +1,2 @@
-Comparing source compatibility of prometheus-metrics-exporter-opentelemetry-no-otel-1.9.1-SNAPSHOT.jar against prometheus-metrics-exporter-opentelemetry-no-otel-1.9.0.jar
+Comparing source compatibility of prometheus-metrics-exporter-opentelemetry-no-otel-1.10.1-SNAPSHOT.jar against prometheus-metrics-exporter-opentelemetry-no-otel-1.10.0.jar
No changes.
diff --git a/docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-pushgateway.txt b/docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-pushgateway.txt
index d38138860c..933bec5ab7 100644
--- a/docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-pushgateway.txt
+++ b/docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-pushgateway.txt
@@ -1,2 +1,2 @@
-Comparing source compatibility of prometheus-metrics-exporter-pushgateway-1.9.1-SNAPSHOT.jar against prometheus-metrics-exporter-pushgateway-1.9.0.jar
+Comparing source compatibility of prometheus-metrics-exporter-pushgateway-1.10.1-SNAPSHOT.jar against prometheus-metrics-exporter-pushgateway-1.10.0.jar
No changes.
diff --git a/docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-servlet-jakarta.txt b/docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-servlet-jakarta.txt
index 37e318bf45..6afc191111 100644
--- a/docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-servlet-jakarta.txt
+++ b/docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-servlet-jakarta.txt
@@ -1,2 +1,2 @@
-Comparing source compatibility of prometheus-metrics-exporter-servlet-jakarta-1.9.1-SNAPSHOT.jar against prometheus-metrics-exporter-servlet-jakarta-1.9.0.jar
+Comparing source compatibility of prometheus-metrics-exporter-servlet-jakarta-1.10.1-SNAPSHOT.jar against prometheus-metrics-exporter-servlet-jakarta-1.10.0.jar
No changes.
diff --git a/docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-servlet-javax.txt b/docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-servlet-javax.txt
index 8e0517f91f..63883ae35c 100644
--- a/docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-servlet-javax.txt
+++ b/docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-servlet-javax.txt
@@ -1,2 +1,2 @@
-Comparing source compatibility of prometheus-metrics-exporter-servlet-javax-1.9.1-SNAPSHOT.jar against prometheus-metrics-exporter-servlet-javax-1.9.0.jar
+Comparing source compatibility of prometheus-metrics-exporter-servlet-javax-1.10.1-SNAPSHOT.jar against prometheus-metrics-exporter-servlet-javax-1.10.0.jar
No changes.
diff --git a/docs/apidiffs/current_vs_latest/prometheus-metrics-exposition-formats-shaded.txt b/docs/apidiffs/current_vs_latest/prometheus-metrics-exposition-formats-shaded.txt
index f834ffeff4..91e647284a 100644
--- a/docs/apidiffs/current_vs_latest/prometheus-metrics-exposition-formats-shaded.txt
+++ b/docs/apidiffs/current_vs_latest/prometheus-metrics-exposition-formats-shaded.txt
@@ -1,2 +1,2 @@
-Comparing source compatibility of prometheus-metrics-exposition-formats-1.9.1-SNAPSHOT.jar against prometheus-metrics-exposition-formats-1.9.0.jar
+Comparing source compatibility of prometheus-metrics-exposition-formats-1.10.1-SNAPSHOT.jar against prometheus-metrics-exposition-formats-1.10.0.jar
No changes.
diff --git a/docs/apidiffs/current_vs_latest/prometheus-metrics-exposition-formats.txt b/docs/apidiffs/current_vs_latest/prometheus-metrics-exposition-formats.txt
index 14a4544141..4acb4739c7 100644
--- a/docs/apidiffs/current_vs_latest/prometheus-metrics-exposition-formats.txt
+++ b/docs/apidiffs/current_vs_latest/prometheus-metrics-exposition-formats.txt
@@ -1,2 +1,2 @@
-Comparing source compatibility of prometheus-metrics-exposition-formats-no-protobuf-1.9.1-SNAPSHOT.jar against prometheus-metrics-exposition-formats-no-protobuf-1.9.0.jar
+Comparing source compatibility of prometheus-metrics-exposition-formats-no-protobuf-1.10.1-SNAPSHOT.jar against prometheus-metrics-exposition-formats-no-protobuf-1.10.0.jar
No changes.
diff --git a/docs/apidiffs/current_vs_latest/prometheus-metrics-exposition-textformats.txt b/docs/apidiffs/current_vs_latest/prometheus-metrics-exposition-textformats.txt
index 88d0781d26..49f81c5d80 100644
--- a/docs/apidiffs/current_vs_latest/prometheus-metrics-exposition-textformats.txt
+++ b/docs/apidiffs/current_vs_latest/prometheus-metrics-exposition-textformats.txt
@@ -1,2 +1,2 @@
-Comparing source compatibility of prometheus-metrics-exposition-textformats-1.9.1-SNAPSHOT.jar against prometheus-metrics-exposition-textformats-1.9.0.jar
+Comparing source compatibility of prometheus-metrics-exposition-textformats-1.10.1-SNAPSHOT.jar against prometheus-metrics-exposition-textformats-1.10.0.jar
No changes.
diff --git a/docs/apidiffs/current_vs_latest/prometheus-metrics-instrumentation-caffeine.txt b/docs/apidiffs/current_vs_latest/prometheus-metrics-instrumentation-caffeine.txt
index 3e82c5092c..d318af56ff 100644
--- a/docs/apidiffs/current_vs_latest/prometheus-metrics-instrumentation-caffeine.txt
+++ b/docs/apidiffs/current_vs_latest/prometheus-metrics-instrumentation-caffeine.txt
@@ -1,2 +1,2 @@
-Comparing source compatibility of prometheus-metrics-instrumentation-caffeine-1.9.1-SNAPSHOT.jar against prometheus-metrics-instrumentation-caffeine-1.9.0.jar
+Comparing source compatibility of prometheus-metrics-instrumentation-caffeine-1.10.1-SNAPSHOT.jar against prometheus-metrics-instrumentation-caffeine-1.10.0.jar
No changes.
diff --git a/docs/apidiffs/current_vs_latest/prometheus-metrics-instrumentation-dropwizard.txt b/docs/apidiffs/current_vs_latest/prometheus-metrics-instrumentation-dropwizard.txt
index 3eda7ebef3..ff6078d48b 100644
--- a/docs/apidiffs/current_vs_latest/prometheus-metrics-instrumentation-dropwizard.txt
+++ b/docs/apidiffs/current_vs_latest/prometheus-metrics-instrumentation-dropwizard.txt
@@ -1,2 +1,2 @@
-Comparing source compatibility of prometheus-metrics-instrumentation-dropwizard-1.9.1-SNAPSHOT.jar against prometheus-metrics-instrumentation-dropwizard-1.9.0.jar
+Comparing source compatibility of prometheus-metrics-instrumentation-dropwizard-1.10.1-SNAPSHOT.jar against prometheus-metrics-instrumentation-dropwizard-1.10.0.jar
No changes.
diff --git a/docs/apidiffs/current_vs_latest/prometheus-metrics-instrumentation-dropwizard5.txt b/docs/apidiffs/current_vs_latest/prometheus-metrics-instrumentation-dropwizard5.txt
index a6c14684b4..687280b792 100644
--- a/docs/apidiffs/current_vs_latest/prometheus-metrics-instrumentation-dropwizard5.txt
+++ b/docs/apidiffs/current_vs_latest/prometheus-metrics-instrumentation-dropwizard5.txt
@@ -1,2 +1,2 @@
-Comparing source compatibility of prometheus-metrics-instrumentation-dropwizard5-1.9.1-SNAPSHOT.jar against prometheus-metrics-instrumentation-dropwizard5-1.9.0.jar
+Comparing source compatibility of prometheus-metrics-instrumentation-dropwizard5-1.10.1-SNAPSHOT.jar against prometheus-metrics-instrumentation-dropwizard5-1.10.0.jar
No changes.
diff --git a/docs/apidiffs/current_vs_latest/prometheus-metrics-instrumentation-guava.txt b/docs/apidiffs/current_vs_latest/prometheus-metrics-instrumentation-guava.txt
index 928b7650cf..991a1950bc 100644
--- a/docs/apidiffs/current_vs_latest/prometheus-metrics-instrumentation-guava.txt
+++ b/docs/apidiffs/current_vs_latest/prometheus-metrics-instrumentation-guava.txt
@@ -1,2 +1,2 @@
-Comparing source compatibility of prometheus-metrics-instrumentation-guava-1.9.1-SNAPSHOT.jar against prometheus-metrics-instrumentation-guava-1.9.0.jar
+Comparing source compatibility of prometheus-metrics-instrumentation-guava-1.10.1-SNAPSHOT.jar against prometheus-metrics-instrumentation-guava-1.10.0.jar
No changes.
diff --git a/docs/apidiffs/current_vs_latest/prometheus-metrics-instrumentation-jvm.txt b/docs/apidiffs/current_vs_latest/prometheus-metrics-instrumentation-jvm.txt
index 4b3de2a8a8..113ebd8c3f 100644
--- a/docs/apidiffs/current_vs_latest/prometheus-metrics-instrumentation-jvm.txt
+++ b/docs/apidiffs/current_vs_latest/prometheus-metrics-instrumentation-jvm.txt
@@ -1,2 +1,2 @@
-Comparing source compatibility of prometheus-metrics-instrumentation-jvm-1.9.1-SNAPSHOT.jar against prometheus-metrics-instrumentation-jvm-1.9.0.jar
+Comparing source compatibility of prometheus-metrics-instrumentation-jvm-1.10.1-SNAPSHOT.jar against prometheus-metrics-instrumentation-jvm-1.10.0.jar
No changes.
diff --git a/docs/apidiffs/current_vs_latest/prometheus-metrics-model.txt b/docs/apidiffs/current_vs_latest/prometheus-metrics-model.txt
index 531739c332..3807a0ca01 100644
--- a/docs/apidiffs/current_vs_latest/prometheus-metrics-model.txt
+++ b/docs/apidiffs/current_vs_latest/prometheus-metrics-model.txt
@@ -1,2 +1,2 @@
-Comparing source compatibility of prometheus-metrics-model-1.9.1-SNAPSHOT.jar against prometheus-metrics-model-1.9.0.jar
+Comparing source compatibility of prometheus-metrics-model-1.10.1-SNAPSHOT.jar against prometheus-metrics-model-1.10.0.jar
No changes.
diff --git a/docs/apidiffs/current_vs_latest/prometheus-metrics-simpleclient-bridge.txt b/docs/apidiffs/current_vs_latest/prometheus-metrics-simpleclient-bridge.txt
index c4b1db09c1..f2157b517f 100644
--- a/docs/apidiffs/current_vs_latest/prometheus-metrics-simpleclient-bridge.txt
+++ b/docs/apidiffs/current_vs_latest/prometheus-metrics-simpleclient-bridge.txt
@@ -1,2 +1,2 @@
-Comparing source compatibility of prometheus-metrics-simpleclient-bridge-1.9.1-SNAPSHOT.jar against prometheus-metrics-simpleclient-bridge-1.9.0.jar
+Comparing source compatibility of prometheus-metrics-simpleclient-bridge-1.10.1-SNAPSHOT.jar against prometheus-metrics-simpleclient-bridge-1.10.0.jar
No changes.
diff --git a/docs/apidiffs/current_vs_latest/prometheus-metrics-tracer-common.txt b/docs/apidiffs/current_vs_latest/prometheus-metrics-tracer-common.txt
index cc215a28e7..1fdbfd87df 100644
--- a/docs/apidiffs/current_vs_latest/prometheus-metrics-tracer-common.txt
+++ b/docs/apidiffs/current_vs_latest/prometheus-metrics-tracer-common.txt
@@ -1,2 +1,2 @@
-Comparing source compatibility of prometheus-metrics-tracer-common-1.9.1-SNAPSHOT.jar against prometheus-metrics-tracer-common-1.9.0.jar
+Comparing source compatibility of prometheus-metrics-tracer-common-1.10.1-SNAPSHOT.jar against prometheus-metrics-tracer-common-1.10.0.jar
No changes.
diff --git a/docs/apidiffs/current_vs_latest/prometheus-metrics-tracer-initializer.txt b/docs/apidiffs/current_vs_latest/prometheus-metrics-tracer-initializer.txt
index bc16ce85f0..b46b746d5f 100644
--- a/docs/apidiffs/current_vs_latest/prometheus-metrics-tracer-initializer.txt
+++ b/docs/apidiffs/current_vs_latest/prometheus-metrics-tracer-initializer.txt
@@ -1,2 +1,2 @@
-Comparing source compatibility of prometheus-metrics-tracer-initializer-1.9.1-SNAPSHOT.jar against prometheus-metrics-tracer-initializer-1.9.0.jar
+Comparing source compatibility of prometheus-metrics-tracer-initializer-1.10.1-SNAPSHOT.jar against prometheus-metrics-tracer-initializer-1.10.0.jar
No changes.
diff --git a/docs/apidiffs/current_vs_latest/prometheus-metrics-tracer-otel-agent.txt b/docs/apidiffs/current_vs_latest/prometheus-metrics-tracer-otel-agent.txt
index 9bb39a0b7f..9fefe32d2e 100644
--- a/docs/apidiffs/current_vs_latest/prometheus-metrics-tracer-otel-agent.txt
+++ b/docs/apidiffs/current_vs_latest/prometheus-metrics-tracer-otel-agent.txt
@@ -1,2 +1,2 @@
-Comparing source compatibility of prometheus-metrics-tracer-otel-agent-1.9.1-SNAPSHOT.jar against prometheus-metrics-tracer-otel-agent-1.9.0.jar
+Comparing source compatibility of prometheus-metrics-tracer-otel-agent-1.10.1-SNAPSHOT.jar against prometheus-metrics-tracer-otel-agent-1.10.0.jar
No changes.
diff --git a/docs/apidiffs/current_vs_latest/prometheus-metrics-tracer-otel.txt b/docs/apidiffs/current_vs_latest/prometheus-metrics-tracer-otel.txt
index c6e812fa5f..92918ad056 100644
--- a/docs/apidiffs/current_vs_latest/prometheus-metrics-tracer-otel.txt
+++ b/docs/apidiffs/current_vs_latest/prometheus-metrics-tracer-otel.txt
@@ -1,2 +1,2 @@
-Comparing source compatibility of prometheus-metrics-tracer-otel-1.9.1-SNAPSHOT.jar against prometheus-metrics-tracer-otel-1.9.0.jar
+Comparing source compatibility of prometheus-metrics-tracer-otel-1.10.1-SNAPSHOT.jar against prometheus-metrics-tracer-otel-1.10.0.jar
No changes.
diff --git a/examples/example-custom-buckets/pom.xml b/examples/example-custom-buckets/pom.xml
index 9bc7e737c1..8b7d2ec8c4 100644
--- a/examples/example-custom-buckets/pom.xml
+++ b/examples/example-custom-buckets/pom.xml
@@ -4,7 +4,7 @@
io.prometheusexample-custom-buckets
- 1.10.0
+ 1.10.1-SNAPSHOT8
diff --git a/examples/example-exemplars-tail-sampling/example-greeting-service/pom.xml b/examples/example-exemplars-tail-sampling/example-greeting-service/pom.xml
index dcb20bd05b..5594815eff 100644
--- a/examples/example-exemplars-tail-sampling/example-greeting-service/pom.xml
+++ b/examples/example-exemplars-tail-sampling/example-greeting-service/pom.xml
@@ -4,7 +4,7 @@
io.prometheusexample-greeting-service
- 1.10.0
+ 1.10.1-SNAPSHOT17
diff --git a/examples/example-exemplars-tail-sampling/example-hello-world-app/pom.xml b/examples/example-exemplars-tail-sampling/example-hello-world-app/pom.xml
index d7b084afe1..27aa8f2818 100644
--- a/examples/example-exemplars-tail-sampling/example-hello-world-app/pom.xml
+++ b/examples/example-exemplars-tail-sampling/example-hello-world-app/pom.xml
@@ -4,7 +4,7 @@
io.prometheusexample-hello-world-app
- 1.10.0
+ 1.10.1-SNAPSHOT17
diff --git a/examples/example-exemplars-tail-sampling/pom.xml b/examples/example-exemplars-tail-sampling/pom.xml
index 3721e9cbeb..4c87da4fad 100644
--- a/examples/example-exemplars-tail-sampling/pom.xml
+++ b/examples/example-exemplars-tail-sampling/pom.xml
@@ -4,7 +4,7 @@
io.prometheusexample-exemplars-tail-sampling
- 1.10.0
+ 1.10.1-SNAPSHOTpomExample - Exemplars with OpenTelemetry's Tail Sampling
diff --git a/examples/example-exporter-httpserver/pom.xml b/examples/example-exporter-httpserver/pom.xml
index ee970e1df4..3ed5f7dff1 100644
--- a/examples/example-exporter-httpserver/pom.xml
+++ b/examples/example-exporter-httpserver/pom.xml
@@ -4,7 +4,7 @@
io.prometheusexample-exporter-httpserver
- 1.10.0
+ 1.10.1-SNAPSHOT8
diff --git a/examples/example-exporter-multi-target/pom.xml b/examples/example-exporter-multi-target/pom.xml
index 311245c97f..104bacaf72 100644
--- a/examples/example-exporter-multi-target/pom.xml
+++ b/examples/example-exporter-multi-target/pom.xml
@@ -4,7 +4,7 @@
io.prometheusexample-exporter-multi-target
- 1.10.0
+ 1.10.1-SNAPSHOT8
diff --git a/examples/example-exporter-opentelemetry/pom.xml b/examples/example-exporter-opentelemetry/pom.xml
index 2928edc498..d06ca6d78e 100644
--- a/examples/example-exporter-opentelemetry/pom.xml
+++ b/examples/example-exporter-opentelemetry/pom.xml
@@ -4,7 +4,7 @@
io.prometheusexample-exporter-opentelemetry
- 1.10.0
+ 1.10.1-SNAPSHOT8
diff --git a/examples/example-exporter-servlet-tomcat/pom.xml b/examples/example-exporter-servlet-tomcat/pom.xml
index e62b283221..7ff6cd2fec 100644
--- a/examples/example-exporter-servlet-tomcat/pom.xml
+++ b/examples/example-exporter-servlet-tomcat/pom.xml
@@ -4,7 +4,7 @@
io.prometheusexample-exporter-servlet-tomcat
- 1.10.0
+ 1.10.1-SNAPSHOT17
diff --git a/examples/example-native-histogram/pom.xml b/examples/example-native-histogram/pom.xml
index 1ded56221f..7d0d4f66a6 100644
--- a/examples/example-native-histogram/pom.xml
+++ b/examples/example-native-histogram/pom.xml
@@ -4,7 +4,7 @@
io.prometheusexample-native-histogram
- 1.10.0
+ 1.10.1-SNAPSHOT8
diff --git a/examples/example-otel-jvm-runtime-metrics/pom.xml b/examples/example-otel-jvm-runtime-metrics/pom.xml
index 82d326cebc..f104f2e269 100644
--- a/examples/example-otel-jvm-runtime-metrics/pom.xml
+++ b/examples/example-otel-jvm-runtime-metrics/pom.xml
@@ -4,7 +4,7 @@
io.prometheusexample-otel-jvm-runtime-metrics
- 1.10.0
+ 1.10.1-SNAPSHOT8
diff --git a/examples/example-prometheus-properties/pom.xml b/examples/example-prometheus-properties/pom.xml
index e5099e55ab..1788adcda7 100644
--- a/examples/example-prometheus-properties/pom.xml
+++ b/examples/example-prometheus-properties/pom.xml
@@ -4,7 +4,7 @@
io.prometheusexample-prometheus-properties
- 1.10.0
+ 1.10.1-SNAPSHOT8
diff --git a/examples/example-simpleclient-bridge/pom.xml b/examples/example-simpleclient-bridge/pom.xml
index 62406090f4..0740401cc3 100644
--- a/examples/example-simpleclient-bridge/pom.xml
+++ b/examples/example-simpleclient-bridge/pom.xml
@@ -4,7 +4,7 @@
io.prometheusexample-simpleclient-bridge
- 1.10.0
+ 1.10.1-SNAPSHOT8
diff --git a/examples/pom.xml b/examples/pom.xml
index a8c61af750..4a69710433 100644
--- a/examples/pom.xml
+++ b/examples/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.10.0
+ 1.10.1-SNAPSHOTexamples
diff --git a/integration-tests/it-common/pom.xml b/integration-tests/it-common/pom.xml
index cce8973544..b35093cb93 100644
--- a/integration-tests/it-common/pom.xml
+++ b/integration-tests/it-common/pom.xml
@@ -5,7 +5,7 @@
io.prometheusintegration-tests
- 1.10.0
+ 1.10.1-SNAPSHOTit-common
diff --git a/integration-tests/it-exporter/it-exporter-duplicate-metrics-sample/pom.xml b/integration-tests/it-exporter/it-exporter-duplicate-metrics-sample/pom.xml
index 858bb2ff45..3d5648815a 100644
--- a/integration-tests/it-exporter/it-exporter-duplicate-metrics-sample/pom.xml
+++ b/integration-tests/it-exporter/it-exporter-duplicate-metrics-sample/pom.xml
@@ -5,7 +5,7 @@
io.prometheusit-exporter
- 1.10.0
+ 1.10.1-SNAPSHOTit-exporter-duplicate-metrics-sample
diff --git a/integration-tests/it-exporter/it-exporter-httpserver-sample/pom.xml b/integration-tests/it-exporter/it-exporter-httpserver-sample/pom.xml
index 7d76f0685b..9c11d40b6b 100644
--- a/integration-tests/it-exporter/it-exporter-httpserver-sample/pom.xml
+++ b/integration-tests/it-exporter/it-exporter-httpserver-sample/pom.xml
@@ -5,7 +5,7 @@
io.prometheusit-exporter
- 1.10.0
+ 1.10.1-SNAPSHOTit-exporter-httpserver-sample
diff --git a/integration-tests/it-exporter/it-exporter-no-protobuf/pom.xml b/integration-tests/it-exporter/it-exporter-no-protobuf/pom.xml
index 6fdca85361..6c991fa038 100644
--- a/integration-tests/it-exporter/it-exporter-no-protobuf/pom.xml
+++ b/integration-tests/it-exporter/it-exporter-no-protobuf/pom.xml
@@ -5,7 +5,7 @@
io.prometheusit-exporter
- 1.10.0
+ 1.10.1-SNAPSHOTit-exporter-no-protobuf
diff --git a/integration-tests/it-exporter/it-exporter-servlet-jetty-sample/pom.xml b/integration-tests/it-exporter/it-exporter-servlet-jetty-sample/pom.xml
index 533cbe0c59..6cf246b413 100644
--- a/integration-tests/it-exporter/it-exporter-servlet-jetty-sample/pom.xml
+++ b/integration-tests/it-exporter/it-exporter-servlet-jetty-sample/pom.xml
@@ -5,7 +5,7 @@
io.prometheusit-exporter
- 1.10.0
+ 1.10.1-SNAPSHOTit-exporter-servlet-jetty-sample
diff --git a/integration-tests/it-exporter/it-exporter-servlet-tomcat-sample/pom.xml b/integration-tests/it-exporter/it-exporter-servlet-tomcat-sample/pom.xml
index 87b976e371..ac9cfcb0f4 100644
--- a/integration-tests/it-exporter/it-exporter-servlet-tomcat-sample/pom.xml
+++ b/integration-tests/it-exporter/it-exporter-servlet-tomcat-sample/pom.xml
@@ -5,7 +5,7 @@
io.prometheusit-exporter
- 1.10.0
+ 1.10.1-SNAPSHOTit-exporter-servlet-tomcat-sample
diff --git a/integration-tests/it-exporter/it-exporter-test/pom.xml b/integration-tests/it-exporter/it-exporter-test/pom.xml
index a42796c2c9..d64c71ea83 100644
--- a/integration-tests/it-exporter/it-exporter-test/pom.xml
+++ b/integration-tests/it-exporter/it-exporter-test/pom.xml
@@ -5,7 +5,7 @@
io.prometheusit-exporter
- 1.10.0
+ 1.10.1-SNAPSHOTit-exporter-test
diff --git a/integration-tests/it-exporter/it-no-protobuf-test/pom.xml b/integration-tests/it-exporter/it-no-protobuf-test/pom.xml
index 82fddae85e..a6ccf55c7e 100644
--- a/integration-tests/it-exporter/it-no-protobuf-test/pom.xml
+++ b/integration-tests/it-exporter/it-no-protobuf-test/pom.xml
@@ -5,7 +5,7 @@
io.prometheusit-exporter
- 1.10.0
+ 1.10.1-SNAPSHOTit-no-protobuf-test
diff --git a/integration-tests/it-exporter/pom.xml b/integration-tests/it-exporter/pom.xml
index 243a36c14a..6ba8c0fd81 100644
--- a/integration-tests/it-exporter/pom.xml
+++ b/integration-tests/it-exporter/pom.xml
@@ -5,7 +5,7 @@
io.prometheusintegration-tests
- 1.10.0
+ 1.10.1-SNAPSHOTit-exporter
diff --git a/integration-tests/it-pushgateway/pom.xml b/integration-tests/it-pushgateway/pom.xml
index 2ea4a72e63..bdf1f2f300 100644
--- a/integration-tests/it-pushgateway/pom.xml
+++ b/integration-tests/it-pushgateway/pom.xml
@@ -5,7 +5,7 @@
io.prometheusintegration-tests
- 1.10.0
+ 1.10.1-SNAPSHOTit-pushgateway
diff --git a/integration-tests/it-spring-boot-smoke-test/pom.xml b/integration-tests/it-spring-boot-smoke-test/pom.xml
index 990cf0e237..73b5f5d2f8 100644
--- a/integration-tests/it-spring-boot-smoke-test/pom.xml
+++ b/integration-tests/it-spring-boot-smoke-test/pom.xml
@@ -12,7 +12,7 @@
io.prometheusit-spring-boot-smoke-test
- 1.10.0
+ 1.10.1-SNAPSHOTIntegration Test - Spring Smoke Tests
diff --git a/integration-tests/pom.xml b/integration-tests/pom.xml
index 538d62f1e3..9cfe52e811 100644
--- a/integration-tests/pom.xml
+++ b/integration-tests/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.10.0
+ 1.10.1-SNAPSHOTintegration-tests
diff --git a/pom.xml b/pom.xml
index 548ff95ff1..4b07d1d48d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
io.prometheusclient_java_parent
- 1.10.0
+ 1.10.1-SNAPSHOTprometheus-metrics-parent/pom.xml
@@ -30,7 +30,7 @@
825
- 1.9.0
+ 1.10.00.70falsefalse
diff --git a/prometheus-metrics-annotations/pom.xml b/prometheus-metrics-annotations/pom.xml
index 9a1f591d3d..20733cb422 100644
--- a/prometheus-metrics-annotations/pom.xml
+++ b/prometheus-metrics-annotations/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.10.0
+ 1.10.1-SNAPSHOTprometheus-metrics-annotations
diff --git a/prometheus-metrics-bom/pom.xml b/prometheus-metrics-bom/pom.xml
index 06456c153b..fd14948693 100644
--- a/prometheus-metrics-bom/pom.xml
+++ b/prometheus-metrics-bom/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java_parent
- 1.10.0
+ 1.10.1-SNAPSHOT../prometheus-metrics-parent/pom.xml
diff --git a/prometheus-metrics-config/pom.xml b/prometheus-metrics-config/pom.xml
index a117ca29b5..0681b89f5e 100644
--- a/prometheus-metrics-config/pom.xml
+++ b/prometheus-metrics-config/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.10.0
+ 1.10.1-SNAPSHOTprometheus-metrics-config
diff --git a/prometheus-metrics-core/pom.xml b/prometheus-metrics-core/pom.xml
index 514f301fb3..4cfdfcce49 100644
--- a/prometheus-metrics-core/pom.xml
+++ b/prometheus-metrics-core/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.10.0
+ 1.10.1-SNAPSHOTprometheus-metrics-core
diff --git a/prometheus-metrics-exporter-common/pom.xml b/prometheus-metrics-exporter-common/pom.xml
index 74c2dee4e1..589a363293 100644
--- a/prometheus-metrics-exporter-common/pom.xml
+++ b/prometheus-metrics-exporter-common/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.10.0
+ 1.10.1-SNAPSHOTprometheus-metrics-exporter-common
diff --git a/prometheus-metrics-exporter-httpserver/pom.xml b/prometheus-metrics-exporter-httpserver/pom.xml
index f7723d8dfd..63e16f539b 100644
--- a/prometheus-metrics-exporter-httpserver/pom.xml
+++ b/prometheus-metrics-exporter-httpserver/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.10.0
+ 1.10.1-SNAPSHOTprometheus-metrics-exporter-httpserver
diff --git a/prometheus-metrics-exporter-opentelemetry-otel-agent-resources/pom.xml b/prometheus-metrics-exporter-opentelemetry-otel-agent-resources/pom.xml
index a2f1546668..55ee186b63 100644
--- a/prometheus-metrics-exporter-opentelemetry-otel-agent-resources/pom.xml
+++ b/prometheus-metrics-exporter-opentelemetry-otel-agent-resources/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.10.0
+ 1.10.1-SNAPSHOTprometheus-metrics-exporter-opentelemetry-otel-agent-resources
diff --git a/prometheus-metrics-exporter-opentelemetry-shaded/pom.xml b/prometheus-metrics-exporter-opentelemetry-shaded/pom.xml
index 74fe3be6d2..ea7a909c4e 100644
--- a/prometheus-metrics-exporter-opentelemetry-shaded/pom.xml
+++ b/prometheus-metrics-exporter-opentelemetry-shaded/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.10.0
+ 1.10.1-SNAPSHOTprometheus-metrics-exporter-opentelemetry
diff --git a/prometheus-metrics-exporter-opentelemetry/pom.xml b/prometheus-metrics-exporter-opentelemetry/pom.xml
index beb75110bf..37c00b271d 100644
--- a/prometheus-metrics-exporter-opentelemetry/pom.xml
+++ b/prometheus-metrics-exporter-opentelemetry/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.10.0
+ 1.10.1-SNAPSHOTprometheus-metrics-exporter-opentelemetry-no-otel
diff --git a/prometheus-metrics-exporter-pushgateway/pom.xml b/prometheus-metrics-exporter-pushgateway/pom.xml
index 51258b550b..d1ea4e5e96 100644
--- a/prometheus-metrics-exporter-pushgateway/pom.xml
+++ b/prometheus-metrics-exporter-pushgateway/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.10.0
+ 1.10.1-SNAPSHOTprometheus-metrics-exporter-pushgateway
diff --git a/prometheus-metrics-exporter-servlet-jakarta/pom.xml b/prometheus-metrics-exporter-servlet-jakarta/pom.xml
index 693a8258c5..32e4e7a115 100644
--- a/prometheus-metrics-exporter-servlet-jakarta/pom.xml
+++ b/prometheus-metrics-exporter-servlet-jakarta/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.10.0
+ 1.10.1-SNAPSHOTprometheus-metrics-exporter-servlet-jakarta
diff --git a/prometheus-metrics-exporter-servlet-javax/pom.xml b/prometheus-metrics-exporter-servlet-javax/pom.xml
index 118a90ac66..6d7b08a255 100644
--- a/prometheus-metrics-exporter-servlet-javax/pom.xml
+++ b/prometheus-metrics-exporter-servlet-javax/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.10.0
+ 1.10.1-SNAPSHOTprometheus-metrics-exporter-servlet-javax
diff --git a/prometheus-metrics-exposition-formats-shaded/pom.xml b/prometheus-metrics-exposition-formats-shaded/pom.xml
index e79688354d..72626becf4 100644
--- a/prometheus-metrics-exposition-formats-shaded/pom.xml
+++ b/prometheus-metrics-exposition-formats-shaded/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.10.0
+ 1.10.1-SNAPSHOTprometheus-metrics-exposition-formats
diff --git a/prometheus-metrics-exposition-formats/pom.xml b/prometheus-metrics-exposition-formats/pom.xml
index 2b4d6cf02d..c9115a35e8 100644
--- a/prometheus-metrics-exposition-formats/pom.xml
+++ b/prometheus-metrics-exposition-formats/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.10.0
+ 1.10.1-SNAPSHOTprometheus-metrics-exposition-formats-no-protobuf
diff --git a/prometheus-metrics-exposition-textformats/pom.xml b/prometheus-metrics-exposition-textformats/pom.xml
index 46af14304d..350ff5505f 100644
--- a/prometheus-metrics-exposition-textformats/pom.xml
+++ b/prometheus-metrics-exposition-textformats/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.10.0
+ 1.10.1-SNAPSHOTprometheus-metrics-exposition-textformats
diff --git a/prometheus-metrics-instrumentation-caffeine/pom.xml b/prometheus-metrics-instrumentation-caffeine/pom.xml
index d081676787..eae3b3f1dd 100644
--- a/prometheus-metrics-instrumentation-caffeine/pom.xml
+++ b/prometheus-metrics-instrumentation-caffeine/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.10.0
+ 1.10.1-SNAPSHOTprometheus-metrics-instrumentation-caffeine
diff --git a/prometheus-metrics-instrumentation-dropwizard/pom.xml b/prometheus-metrics-instrumentation-dropwizard/pom.xml
index 806bbce070..b4f7b02996 100644
--- a/prometheus-metrics-instrumentation-dropwizard/pom.xml
+++ b/prometheus-metrics-instrumentation-dropwizard/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.10.0
+ 1.10.1-SNAPSHOTprometheus-metrics-instrumentation-dropwizard
diff --git a/prometheus-metrics-instrumentation-dropwizard5/pom.xml b/prometheus-metrics-instrumentation-dropwizard5/pom.xml
index 98a05275b6..99381d46e6 100644
--- a/prometheus-metrics-instrumentation-dropwizard5/pom.xml
+++ b/prometheus-metrics-instrumentation-dropwizard5/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.10.0
+ 1.10.1-SNAPSHOTprometheus-metrics-instrumentation-dropwizard5
diff --git a/prometheus-metrics-instrumentation-guava/pom.xml b/prometheus-metrics-instrumentation-guava/pom.xml
index f74a0811ba..befb855e11 100644
--- a/prometheus-metrics-instrumentation-guava/pom.xml
+++ b/prometheus-metrics-instrumentation-guava/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.10.0
+ 1.10.1-SNAPSHOTprometheus-metrics-instrumentation-guava
diff --git a/prometheus-metrics-instrumentation-jvm/pom.xml b/prometheus-metrics-instrumentation-jvm/pom.xml
index f5ca5dd587..831471d530 100644
--- a/prometheus-metrics-instrumentation-jvm/pom.xml
+++ b/prometheus-metrics-instrumentation-jvm/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.10.0
+ 1.10.1-SNAPSHOTprometheus-metrics-instrumentation-jvm
diff --git a/prometheus-metrics-model/pom.xml b/prometheus-metrics-model/pom.xml
index a707d13cd7..4e8d1cc827 100644
--- a/prometheus-metrics-model/pom.xml
+++ b/prometheus-metrics-model/pom.xml
@@ -6,7 +6,7 @@
io.prometheusclient_java
- 1.10.0
+ 1.10.1-SNAPSHOTprometheus-metrics-model
diff --git a/prometheus-metrics-otel-support/pom.xml b/prometheus-metrics-otel-support/pom.xml
index 98d0c8cbc8..87203218df 100644
--- a/prometheus-metrics-otel-support/pom.xml
+++ b/prometheus-metrics-otel-support/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.10.0
+ 1.10.1-SNAPSHOTprometheus-metrics-otel-support
diff --git a/prometheus-metrics-parent/pom.xml b/prometheus-metrics-parent/pom.xml
index 286237fa40..329afe1be4 100644
--- a/prometheus-metrics-parent/pom.xml
+++ b/prometheus-metrics-parent/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java_parent
- 1.10.0
+ 1.10.1-SNAPSHOTPrometheus Metrics Library Parenthttp://github.com/prometheus/client_java
diff --git a/prometheus-metrics-simpleclient-bridge/pom.xml b/prometheus-metrics-simpleclient-bridge/pom.xml
index 48c0e99f59..f09b62b2c3 100644
--- a/prometheus-metrics-simpleclient-bridge/pom.xml
+++ b/prometheus-metrics-simpleclient-bridge/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.10.0
+ 1.10.1-SNAPSHOTprometheus-metrics-simpleclient-bridge
diff --git a/prometheus-metrics-tracer/pom.xml b/prometheus-metrics-tracer/pom.xml
index e648a7658b..0227d5ffbe 100644
--- a/prometheus-metrics-tracer/pom.xml
+++ b/prometheus-metrics-tracer/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.10.0
+ 1.10.1-SNAPSHOTprometheus-metrics-tracer
diff --git a/prometheus-metrics-tracer/prometheus-metrics-tracer-common/pom.xml b/prometheus-metrics-tracer/prometheus-metrics-tracer-common/pom.xml
index 83525fe699..fd90cd5eeb 100644
--- a/prometheus-metrics-tracer/prometheus-metrics-tracer-common/pom.xml
+++ b/prometheus-metrics-tracer/prometheus-metrics-tracer-common/pom.xml
@@ -5,7 +5,7 @@
io.prometheusprometheus-metrics-tracer
- 1.10.0
+ 1.10.1-SNAPSHOTprometheus-metrics-tracer-common
diff --git a/prometheus-metrics-tracer/prometheus-metrics-tracer-initializer/pom.xml b/prometheus-metrics-tracer/prometheus-metrics-tracer-initializer/pom.xml
index fcd40da820..bb645a56b8 100644
--- a/prometheus-metrics-tracer/prometheus-metrics-tracer-initializer/pom.xml
+++ b/prometheus-metrics-tracer/prometheus-metrics-tracer-initializer/pom.xml
@@ -5,7 +5,7 @@
io.prometheusprometheus-metrics-tracer
- 1.10.0
+ 1.10.1-SNAPSHOTprometheus-metrics-tracer-initializer
diff --git a/prometheus-metrics-tracer/prometheus-metrics-tracer-otel-agent/pom.xml b/prometheus-metrics-tracer/prometheus-metrics-tracer-otel-agent/pom.xml
index b6eff4f0f4..2e9a0f7416 100644
--- a/prometheus-metrics-tracer/prometheus-metrics-tracer-otel-agent/pom.xml
+++ b/prometheus-metrics-tracer/prometheus-metrics-tracer-otel-agent/pom.xml
@@ -5,7 +5,7 @@
io.prometheusprometheus-metrics-tracer
- 1.10.0
+ 1.10.1-SNAPSHOTprometheus-metrics-tracer-otel-agent
diff --git a/prometheus-metrics-tracer/prometheus-metrics-tracer-otel/pom.xml b/prometheus-metrics-tracer/prometheus-metrics-tracer-otel/pom.xml
index 6b30551fdb..3132c9d5ec 100644
--- a/prometheus-metrics-tracer/prometheus-metrics-tracer-otel/pom.xml
+++ b/prometheus-metrics-tracer/prometheus-metrics-tracer-otel/pom.xml
@@ -5,7 +5,7 @@
io.prometheusprometheus-metrics-tracer
- 1.10.0
+ 1.10.1-SNAPSHOTprometheus-metrics-tracer-otel
diff --git a/simpleclient-archive/integration_tests/it_common/pom.xml b/simpleclient-archive/integration_tests/it_common/pom.xml
index c2fb862418..114744057e 100644
--- a/simpleclient-archive/integration_tests/it_common/pom.xml
+++ b/simpleclient-archive/integration_tests/it_common/pom.xml
@@ -5,7 +5,7 @@
io.prometheusintegration_tests
- 1.10.0
+ 1.10.1-SNAPSHOTit_common
diff --git a/simpleclient-archive/integration_tests/it_exemplars_otel_agent/pom.xml b/simpleclient-archive/integration_tests/it_exemplars_otel_agent/pom.xml
index 028a2a4e41..328cba2997 100644
--- a/simpleclient-archive/integration_tests/it_exemplars_otel_agent/pom.xml
+++ b/simpleclient-archive/integration_tests/it_exemplars_otel_agent/pom.xml
@@ -5,7 +5,7 @@
io.prometheusintegration_tests
- 1.10.0
+ 1.10.1-SNAPSHOTit_exemplars_otel_agent
diff --git a/simpleclient-archive/integration_tests/it_exemplars_otel_sdk/pom.xml b/simpleclient-archive/integration_tests/it_exemplars_otel_sdk/pom.xml
index 3a4e6ce287..7a5af66b1a 100644
--- a/simpleclient-archive/integration_tests/it_exemplars_otel_sdk/pom.xml
+++ b/simpleclient-archive/integration_tests/it_exemplars_otel_sdk/pom.xml
@@ -5,7 +5,7 @@
io.prometheusintegration_tests
- 1.10.0
+ 1.10.1-SNAPSHOTit_exemplars_otel_sdk
diff --git a/simpleclient-archive/integration_tests/it_java_versions/pom.xml b/simpleclient-archive/integration_tests/it_java_versions/pom.xml
index 4f99ae983c..3fc235fb94 100644
--- a/simpleclient-archive/integration_tests/it_java_versions/pom.xml
+++ b/simpleclient-archive/integration_tests/it_java_versions/pom.xml
@@ -5,7 +5,7 @@
io.prometheusintegration_tests
- 1.10.0
+ 1.10.1-SNAPSHOTit_java_versions
diff --git a/simpleclient-archive/integration_tests/it_log4j2/pom.xml b/simpleclient-archive/integration_tests/it_log4j2/pom.xml
index f4b360a3f6..4a1da46029 100644
--- a/simpleclient-archive/integration_tests/it_log4j2/pom.xml
+++ b/simpleclient-archive/integration_tests/it_log4j2/pom.xml
@@ -5,7 +5,7 @@
io.prometheusintegration_tests
- 1.10.0
+ 1.10.1-SNAPSHOTit_log4j2
diff --git a/simpleclient-archive/integration_tests/it_pushgateway/pom.xml b/simpleclient-archive/integration_tests/it_pushgateway/pom.xml
index b4a0a2b4af..50f1e10204 100644
--- a/simpleclient-archive/integration_tests/it_pushgateway/pom.xml
+++ b/simpleclient-archive/integration_tests/it_pushgateway/pom.xml
@@ -5,7 +5,7 @@
io.prometheusintegration_tests
- 1.10.0
+ 1.10.1-SNAPSHOTit_pushgateway
diff --git a/simpleclient-archive/integration_tests/it_servlet_jakarta_exporter_webxml/pom.xml b/simpleclient-archive/integration_tests/it_servlet_jakarta_exporter_webxml/pom.xml
index 92c6b7626f..f0484bf214 100644
--- a/simpleclient-archive/integration_tests/it_servlet_jakarta_exporter_webxml/pom.xml
+++ b/simpleclient-archive/integration_tests/it_servlet_jakarta_exporter_webxml/pom.xml
@@ -5,7 +5,7 @@
io.prometheusintegration_tests
- 1.10.0
+ 1.10.1-SNAPSHOTit_servlet_jakarta_exporter_webxml
diff --git a/simpleclient-archive/integration_tests/pom.xml b/simpleclient-archive/integration_tests/pom.xml
index 4a787121c0..b96ae60a1c 100644
--- a/simpleclient-archive/integration_tests/pom.xml
+++ b/simpleclient-archive/integration_tests/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.10.0
+ 1.10.1-SNAPSHOTintegration_tests
diff --git a/simpleclient-archive/simpleclient_graphite_bridge/pom.xml b/simpleclient-archive/simpleclient_graphite_bridge/pom.xml
index 9124817a23..699911f7ac 100644
--- a/simpleclient-archive/simpleclient_graphite_bridge/pom.xml
+++ b/simpleclient-archive/simpleclient_graphite_bridge/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.10.0
+ 1.10.1-SNAPSHOTsimpleclient_graphite_bridge
diff --git a/simpleclient-archive/simpleclient_hibernate/pom.xml b/simpleclient-archive/simpleclient_hibernate/pom.xml
index 21d68211cd..78bd23bb2f 100644
--- a/simpleclient-archive/simpleclient_hibernate/pom.xml
+++ b/simpleclient-archive/simpleclient_hibernate/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.10.0
+ 1.10.1-SNAPSHOTsimpleclient_hibernate
diff --git a/simpleclient-archive/simpleclient_httpserver/pom.xml b/simpleclient-archive/simpleclient_httpserver/pom.xml
index a6568f3d5a..33b15b5418 100644
--- a/simpleclient-archive/simpleclient_httpserver/pom.xml
+++ b/simpleclient-archive/simpleclient_httpserver/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.10.0
+ 1.10.1-SNAPSHOTsimpleclient_httpserver
diff --git a/simpleclient-archive/simpleclient_jetty/pom.xml b/simpleclient-archive/simpleclient_jetty/pom.xml
index 2e8064ef77..bff679eb67 100644
--- a/simpleclient-archive/simpleclient_jetty/pom.xml
+++ b/simpleclient-archive/simpleclient_jetty/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.10.0
+ 1.10.1-SNAPSHOTsimpleclient_jetty
diff --git a/simpleclient-archive/simpleclient_jetty_jdk8/pom.xml b/simpleclient-archive/simpleclient_jetty_jdk8/pom.xml
index aaf97fe7ad..92f5dc25f4 100644
--- a/simpleclient-archive/simpleclient_jetty_jdk8/pom.xml
+++ b/simpleclient-archive/simpleclient_jetty_jdk8/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.10.0
+ 1.10.1-SNAPSHOTsimpleclient_jetty_jdk8
diff --git a/simpleclient-archive/simpleclient_log4j/pom.xml b/simpleclient-archive/simpleclient_log4j/pom.xml
index 8484da066a..ad3f71d645 100644
--- a/simpleclient-archive/simpleclient_log4j/pom.xml
+++ b/simpleclient-archive/simpleclient_log4j/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.10.0
+ 1.10.1-SNAPSHOTsimpleclient_log4j
diff --git a/simpleclient-archive/simpleclient_log4j2/pom.xml b/simpleclient-archive/simpleclient_log4j2/pom.xml
index dcf59e1a4b..1448f15d67 100644
--- a/simpleclient-archive/simpleclient_log4j2/pom.xml
+++ b/simpleclient-archive/simpleclient_log4j2/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.10.0
+ 1.10.1-SNAPSHOTsimpleclient_log4j2
diff --git a/simpleclient-archive/simpleclient_logback/pom.xml b/simpleclient-archive/simpleclient_logback/pom.xml
index 88dbb3d6dc..734a2e06f1 100644
--- a/simpleclient-archive/simpleclient_logback/pom.xml
+++ b/simpleclient-archive/simpleclient_logback/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.10.0
+ 1.10.1-SNAPSHOTsimpleclient_logback
diff --git a/simpleclient-archive/simpleclient_servlet/pom.xml b/simpleclient-archive/simpleclient_servlet/pom.xml
index b85752894c..124c3b6a06 100644
--- a/simpleclient-archive/simpleclient_servlet/pom.xml
+++ b/simpleclient-archive/simpleclient_servlet/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.10.0
+ 1.10.1-SNAPSHOTsimpleclient_servlet
diff --git a/simpleclient-archive/simpleclient_servlet_common/pom.xml b/simpleclient-archive/simpleclient_servlet_common/pom.xml
index 8c232248b4..0e6c48378a 100644
--- a/simpleclient-archive/simpleclient_servlet_common/pom.xml
+++ b/simpleclient-archive/simpleclient_servlet_common/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.10.0
+ 1.10.1-SNAPSHOTsimpleclient_servlet_common
diff --git a/simpleclient-archive/simpleclient_servlet_jakarta/pom.xml b/simpleclient-archive/simpleclient_servlet_jakarta/pom.xml
index cc7d32bea9..6704d492a8 100644
--- a/simpleclient-archive/simpleclient_servlet_jakarta/pom.xml
+++ b/simpleclient-archive/simpleclient_servlet_jakarta/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.10.0
+ 1.10.1-SNAPSHOTsimpleclient_servlet_jakarta
diff --git a/simpleclient-archive/simpleclient_spring_web/pom.xml b/simpleclient-archive/simpleclient_spring_web/pom.xml
index 5ad80baf0d..77fbca7b74 100644
--- a/simpleclient-archive/simpleclient_spring_web/pom.xml
+++ b/simpleclient-archive/simpleclient_spring_web/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.10.0
+ 1.10.1-SNAPSHOTsimpleclient_spring_web
diff --git a/simpleclient-archive/simpleclient_vertx/pom.xml b/simpleclient-archive/simpleclient_vertx/pom.xml
index 84a2957599..6d11e8ba2d 100644
--- a/simpleclient-archive/simpleclient_vertx/pom.xml
+++ b/simpleclient-archive/simpleclient_vertx/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.10.0
+ 1.10.1-SNAPSHOTsimpleclient_vertx
diff --git a/simpleclient-archive/simpleclient_vertx4/pom.xml b/simpleclient-archive/simpleclient_vertx4/pom.xml
index 3165deb57d..fa9d0d12b3 100644
--- a/simpleclient-archive/simpleclient_vertx4/pom.xml
+++ b/simpleclient-archive/simpleclient_vertx4/pom.xml
@@ -5,7 +5,7 @@
io.prometheusclient_java
- 1.10.0
+ 1.10.1-SNAPSHOTsimpleclient_vertx4
From c01a2c0f9e251c27f9d2d08a6f8e3900a09ecd0e Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Fri, 16 Oct 2026 09:36:10 +0000
Subject: [PATCH 243/255] chore(deps): update dependency
grafana/docker-otel-lgtm to v0.37.0 (#2564)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This PR contains the following updates:
| Package | Update | Change |
|---|---|---|
|
[grafana/docker-otel-lgtm](https://redirect.github.com/grafana/docker-otel-lgtm)
| minor | `0.36.0` → `0.37.0` |
---
### Release Notes
grafana/docker-otel-lgtm
###
[`v0.37.0`](https://redirect.github.com/grafana/docker-otel-lgtm/releases/tag/v0.37.0)
[Compare
Source](https://redirect.github.com/grafana/docker-otel-lgtm/compare/v0.36.0...v0.37.0)
#### What's Changed
##### OpenTelemetry & LGTM
- chore(deps): update dependency pyroscope to v2.3.2 by
[@renovate-sh-app](https://redirect.github.com/renovate-sh-app)\[bot]
in
[#1942](https://redirect.github.com/grafana/docker-otel-lgtm/pull/1942)
- chore(deps): update grafana/otel-lgtm docker tag to v0.36.0 by
[@renovate-sh-app](https://redirect.github.com/renovate-sh-app)\[bot]
in
[#1945](https://redirect.github.com/grafana/docker-otel-lgtm/pull/1945)
- chore(deps): update dependency pyroscope to v2.4.0 by
[@renovate-sh-app](https://redirect.github.com/renovate-sh-app)\[bot]
in
[#1954](https://redirect.github.com/grafana/docker-otel-lgtm/pull/1954)
**Full Changelog**:
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/prometheus/client_java).
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
mise.toml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/mise.toml b/mise.toml
index 3df59dc0af..80c4242ef0 100644
--- a/mise.toml
+++ b/mise.toml
@@ -34,7 +34,7 @@ trust_policy_excludes = ["@yarnpkg/libzip@3.2.2"]
[env]
FLINT_CONFIG_DIR = ".github/config"
# renovate: datasource=github-releases depName=grafana/docker-otel-lgtm
-LGTM_VERSION = "0.36.0"
+LGTM_VERSION = "0.37.0"
# Latest JMX Exporter release; used as the default ref for the compatibility job.
# renovate: datasource=github-tags depName=prometheus/jmx_exporter versioning=semver-coerced
DEFAULT_JMX_EXPORTER_VERSION = "1.7.0"
From ad8cdfe0429c22b289c9b50c1e5f9f81769b0b3c Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Fri, 16 Oct 2026 12:38:02 +0000
Subject: [PATCH 244/255] chore(deps): update jdx/mise-action action to v5.2.0
(#2568)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [jdx/mise-action](https://redirect.github.com/jdx/mise-action) |
action | minor | `v5.1.2` → `v5.2.0` |
---
### Release Notes
jdx/mise-action
###
[`v5.2.0`](https://redirect.github.com/jdx/mise-action/releases/tag/v5.2.0):
: Periodic cache rebuilds, signed packslip verification, and monorepo
installs
[Compare
Source](https://redirect.github.com/jdx/mise-action/compare/v5.1.2...v5.2.0)
The default cache key now rolls over every 30 days, so long-lived caches
pick up newer mise releases. The action also checks the downloaded mise
binary against the release's signed packslip, and it runs `mise install
--monorepo` automatically in monorepos. **Existing caches miss once
after you upgrade**, because the default cache key format has changed.
##### Added
- **The cache is rebuilt every 30 days by default.** GitHub never evicts
a cache that keeps getting hits. Before this release, an active repo
could keep the same mise binary and tools for months, until a config
file changed. The default cache key now includes a period suffix
(`-p`), so the cache is rebuilt from scratch at least once per
period. All repos roll over on the same calendar boundary. Use the new
`cache_max_age_days` input to change the period, or set it to `0` to
keep the old key that never expires. Custom `cache_key` templates can
use the new `{{cache_period}}` variable, which `{{default}}` already
includes. A custom key that doesn't use it behaves as before. On
self-hosted runners that keep mise data between runs, you may also need
`auto_update: true` to pick up a newer mise.
([#689](https://redirect.github.com/jdx/mise-action/pull/689) by
[@jdx](https://redirect.github.com/jdx), fixes
[#688](https://redirect.github.com/jdx/mise-action/issues/688))
```yaml
- uses: jdx/mise-action@v5
with:
cache_max_age_days: 14 # default 30; 0 disables periodic rebuilds
```
- **Throttled cache restores and saves can be retried.** Before this
release, when GitHub's cache service returned HTTP 429, the action gave
up right away: a restore counted as a miss and a save was skipped. The
new `cache_restore_retry_budget` and `cache_save_retry_budget` inputs
set how long the action may wait. Each retry waits for the `Retry-After`
value plus some random jitter. Once the budget runs out, the action
falls back to the old behavior. Retries apply to the main cache, the
post-step save and the binary cache. Real cache misses and reservation
conflicts are never retried. Both budgets default to `0s` (no retries).
`@actions/cache` doesn't report 429 errors directly, so the action
detects throttling from its warning messages. If those messages change
in a future `@actions/cache` release, throttling won't be detected and
nothing will be retried.
([#692](https://redirect.github.com/jdx/mise-action/pull/692) by
[@jdx](https://redirect.github.com/jdx), fixes
[#691](https://redirect.github.com/jdx/mise-action/issues/691))
```yaml
- uses: jdx/mise-action@v5
with:
cache_restore_retry_budget: 60s
cache_save_retry_budget: 120s
```
- **The latest mise binary can fall back to a second download source.**
When the action downloads the latest mise version, it can fall back
between GitHub and mise.jdx.dev if the first source fails. The
`fetch_from_github` setting decides which source it tries first. Pinned
versions and `minimum_release_age` installs are only downloaded from
GitHub. The binary is still checked against the signed checksums for the
resolved version, whichever source it came from.
([#692](https://redirect.github.com/jdx/mise-action/pull/692) by
[@jdx](https://redirect.github.com/jdx))
- **The mise binary is checked against its signed packslip.** If a mise
release includes `packslip.sigstore.json`, the action checks the
downloaded binary against it. The bundle must be signed by mise's
release workflow for that exact tag. After a successful check, the log
shows `Verified against the signed packslip`. If the check
fails, the install stops instead of falling back to a weaker check.
Releases without a packslip use the existing minisign and `SHASUMS256`
check. An explicit `sha256` input still takes precedence.
([#693](https://redirect.github.com/jdx/mise-action/pull/693) by
[@jdx](https://redirect.github.com/jdx))
- **Monorepo-aware installs.** If your mise config sets
`[monorepo].config_roots`, the action now adds `--monorepo` to `mise
install`, so tools configured anywhere in the monorepo get installed.
Repos without that setting aren't affected. To opt out, set `monorepo:
false`.
([#679](https://redirect.github.com/jdx/mise-action/pull/679) by
[@zeitlinger](https://redirect.github.com/zeitlinger))
##### Fixed
- **Tool directories that mise moves to the front of `PATH` are now
exported.** The action used to find mise's `PATH` changes by comparing
mise's `PATH` with the runner's. If a tool's bin directory was already
on the runner's `PATH`, such as `~/.cargo/bin`, mise only moved it to
the front, so the action didn't export it. Later steps then found the
mise shim first. For example, `rustup` resolved to the shim instead of
`~/.cargo/bin/rustup`. The action now asks mise for its entries with
`mise env --paths` and exports them in the order mise reports. This fix
needs a mise version that supports `--paths`. With older versions, the
action uses the old comparison.
([#685](https://redirect.github.com/jdx/mise-action/pull/685) by
[@jdx](https://redirect.github.com/jdx))
##### Documentation
- The new "Release workflows" section of the README says that jobs that
publish releases shouldn't restore caches. A lower-trust workflow that
can write to default-branch caches could otherwise slip files into a
release. In those jobs, use `cache: false` or GitHub's `cache-mode:
none`.
([#682](https://redirect.github.com/jdx/mise-action/pull/682) by
[@jdx](https://redirect.github.com/jdx))
- The README explains how to cache mise's downloads, keyed on
`mise.lock`, instead of installed tools. It includes a Windows example
that sets `MISE_CACHE_DIR` from `${{ runner.temp }}`, because
`actions/cache` doesn't expand `%TEMP%`.
([#686](https://redirect.github.com/jdx/mise-action/pull/686),
[#690](https://redirect.github.com/jdx/mise-action/pull/690) by
[@zeitlinger](https://redirect.github.com/zeitlinger))
##### Breaking Changes
- The default cache key has a new format, so the first run after
upgrading is a cache miss and saves a fresh cache. After that, the cache
is rebuilt every 30 days by default. To keep the old cache key that
never expires, set `cache_max_age_days: 0`. Workflows that set a custom
`cache_key` without `{{default}}` or `{{cache_period}}` aren't affected.
**Full Changelog**:
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/prometheus/client_java).
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
.github/workflows/acceptance-tests.yml | 2 +-
.github/workflows/api-diff.yml | 2 +-
.github/workflows/build.yml | 2 +-
.github/workflows/bump-api-diff-baseline.yml | 2 +-
.github/workflows/generate-protobuf.yml | 2 +-
.github/workflows/github-pages.yaml | 2 +-
.github/workflows/java-version-matrix-tests.yml | 2 +-
.github/workflows/jmx-exporter-compatibility.yml | 2 +-
.github/workflows/lint.yml | 2 +-
.github/workflows/micrometer-compatibility.yml | 2 +-
.github/workflows/native-tests.yml | 2 +-
.github/workflows/nightly-benchmarks.yml | 2 +-
.github/workflows/pr-benchmarks.yml | 2 +-
.github/workflows/regenerate-api-diff-otel.yml | 2 +-
.github/workflows/release.yml | 2 +-
.github/workflows/test-release-build.yml | 2 +-
16 files changed, 16 insertions(+), 16 deletions(-)
diff --git a/.github/workflows/acceptance-tests.yml b/.github/workflows/acceptance-tests.yml
index ca7305b363..daee2a9faa 100644
--- a/.github/workflows/acceptance-tests.yml
+++ b/.github/workflows/acceptance-tests.yml
@@ -13,7 +13,7 @@ jobs:
with:
persist-credentials: false
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
- - uses: jdx/mise-action@08ae2a091c038e1e05ec6f5115dc5c69d5a2a6b8 # v5.1.2
+ - uses: jdx/mise-action@9b200bcecbfd6303e69a4a261b2e09e3757440a7 # v5.2.0
with:
version: v2026.10.2
sha256: 8f5f6660336f572830e33cd9b378d3131e529a0d4c4f0c553776be90a1ba302a
diff --git a/.github/workflows/api-diff.yml b/.github/workflows/api-diff.yml
index e4b3837114..76e16afdd2 100644
--- a/.github/workflows/api-diff.yml
+++ b/.github/workflows/api-diff.yml
@@ -32,7 +32,7 @@ jobs:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
with:
persist-credentials: false
- - uses: jdx/mise-action@08ae2a091c038e1e05ec6f5115dc5c69d5a2a6b8 # v5.1.2
+ - uses: jdx/mise-action@9b200bcecbfd6303e69a4a261b2e09e3757440a7 # v5.2.0
with:
version: v2026.10.2
sha256: 8f5f6660336f572830e33cd9b378d3131e529a0d4c4f0c553776be90a1ba302a
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index c3167e9944..6937560244 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -12,7 +12,7 @@ jobs:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
with:
persist-credentials: false
- - uses: jdx/mise-action@08ae2a091c038e1e05ec6f5115dc5c69d5a2a6b8 # v5.1.2
+ - uses: jdx/mise-action@9b200bcecbfd6303e69a4a261b2e09e3757440a7 # v5.2.0
with:
version: v2026.10.2
sha256: 8f5f6660336f572830e33cd9b378d3131e529a0d4c4f0c553776be90a1ba302a
diff --git a/.github/workflows/bump-api-diff-baseline.yml b/.github/workflows/bump-api-diff-baseline.yml
index 6906f93eec..29d5e1bddc 100644
--- a/.github/workflows/bump-api-diff-baseline.yml
+++ b/.github/workflows/bump-api-diff-baseline.yml
@@ -33,7 +33,7 @@ jobs:
with:
ref: ${{ env.SNAPSHOT_BRANCH }}
persist-credentials: true
- - uses: jdx/mise-action@08ae2a091c038e1e05ec6f5115dc5c69d5a2a6b8 # v5.1.2
+ - uses: jdx/mise-action@9b200bcecbfd6303e69a4a261b2e09e3757440a7 # v5.2.0
with:
version: v2026.10.2
sha256: 8f5f6660336f572830e33cd9b378d3131e529a0d4c4f0c553776be90a1ba302a
diff --git a/.github/workflows/generate-protobuf.yml b/.github/workflows/generate-protobuf.yml
index 169174ab50..3b20d9dfb1 100644
--- a/.github/workflows/generate-protobuf.yml
+++ b/.github/workflows/generate-protobuf.yml
@@ -18,7 +18,7 @@ jobs:
with:
ref: ${{ github.ref }}
persist-credentials: false
- - uses: jdx/mise-action@08ae2a091c038e1e05ec6f5115dc5c69d5a2a6b8 # v5.1.2
+ - uses: jdx/mise-action@9b200bcecbfd6303e69a4a261b2e09e3757440a7 # v5.2.0
with:
version: v2026.10.2
sha256: 8f5f6660336f572830e33cd9b378d3131e529a0d4c4f0c553776be90a1ba302a
diff --git a/.github/workflows/github-pages.yaml b/.github/workflows/github-pages.yaml
index c99c0958e4..b1385069ba 100644
--- a/.github/workflows/github-pages.yaml
+++ b/.github/workflows/github-pages.yaml
@@ -37,7 +37,7 @@ jobs:
persist-credentials: false
fetch-tags: "true"
fetch-depth: 0
- - uses: jdx/mise-action@08ae2a091c038e1e05ec6f5115dc5c69d5a2a6b8 # v5.1.2
+ - uses: jdx/mise-action@9b200bcecbfd6303e69a4a261b2e09e3757440a7 # v5.2.0
with:
version: v2026.10.2
sha256: 8f5f6660336f572830e33cd9b378d3131e529a0d4c4f0c553776be90a1ba302a
diff --git a/.github/workflows/java-version-matrix-tests.yml b/.github/workflows/java-version-matrix-tests.yml
index 6a7632b239..c40a544dff 100644
--- a/.github/workflows/java-version-matrix-tests.yml
+++ b/.github/workflows/java-version-matrix-tests.yml
@@ -31,7 +31,7 @@ jobs:
persist-credentials: false
- name: Set up mise
- uses: jdx/mise-action@08ae2a091c038e1e05ec6f5115dc5c69d5a2a6b8 # v5.1.2
+ uses: jdx/mise-action@9b200bcecbfd6303e69a4a261b2e09e3757440a7 # v5.2.0
with:
version: v2026.10.2
sha256: 8f5f6660336f572830e33cd9b378d3131e529a0d4c4f0c553776be90a1ba302a
diff --git a/.github/workflows/jmx-exporter-compatibility.yml b/.github/workflows/jmx-exporter-compatibility.yml
index 2281392126..3006d0e213 100644
--- a/.github/workflows/jmx-exporter-compatibility.yml
+++ b/.github/workflows/jmx-exporter-compatibility.yml
@@ -22,7 +22,7 @@ jobs:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
with:
persist-credentials: false
- - uses: jdx/mise-action@08ae2a091c038e1e05ec6f5115dc5c69d5a2a6b8 # v5.1.2
+ - uses: jdx/mise-action@9b200bcecbfd6303e69a4a261b2e09e3757440a7 # v5.2.0
with:
version: v2026.10.2
sha256: 8f5f6660336f572830e33cd9b378d3131e529a0d4c4f0c553776be90a1ba302a
diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml
index 0040e23f45..b14c6d54cd 100644
--- a/.github/workflows/lint.yml
+++ b/.github/workflows/lint.yml
@@ -21,7 +21,7 @@ jobs:
fetch-depth: 0 # needed for git diff --merge-base in lint:links
- name: Setup mise
- uses: jdx/mise-action@08ae2a091c038e1e05ec6f5115dc5c69d5a2a6b8 # v5.1.2
+ uses: jdx/mise-action@9b200bcecbfd6303e69a4a261b2e09e3757440a7 # v5.2.0
with:
version: v2026.10.2
sha256: 8f5f6660336f572830e33cd9b378d3131e529a0d4c4f0c553776be90a1ba302a
diff --git a/.github/workflows/micrometer-compatibility.yml b/.github/workflows/micrometer-compatibility.yml
index be6756f99e..3fd34d19ca 100644
--- a/.github/workflows/micrometer-compatibility.yml
+++ b/.github/workflows/micrometer-compatibility.yml
@@ -30,7 +30,7 @@ jobs:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false
- - uses: jdx/mise-action@08ae2a091c038e1e05ec6f5115dc5c69d5a2a6b8 # v5.1.2
+ - uses: jdx/mise-action@9b200bcecbfd6303e69a4a261b2e09e3757440a7 # v5.2.0
with:
version: v2026.10.2
sha256: 8f5f6660336f572830e33cd9b378d3131e529a0d4c4f0c553776be90a1ba302a
diff --git a/.github/workflows/native-tests.yml b/.github/workflows/native-tests.yml
index c326019d90..4960b3b5d8 100644
--- a/.github/workflows/native-tests.yml
+++ b/.github/workflows/native-tests.yml
@@ -13,7 +13,7 @@ jobs:
with:
persist-credentials: false
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
- - uses: jdx/mise-action@08ae2a091c038e1e05ec6f5115dc5c69d5a2a6b8 # v5.1.2
+ - uses: jdx/mise-action@9b200bcecbfd6303e69a4a261b2e09e3757440a7 # v5.2.0
with:
version: v2026.10.2
sha256: 8f5f6660336f572830e33cd9b378d3131e529a0d4c4f0c553776be90a1ba302a
diff --git a/.github/workflows/nightly-benchmarks.yml b/.github/workflows/nightly-benchmarks.yml
index a228313959..a26d50bbc0 100644
--- a/.github/workflows/nightly-benchmarks.yml
+++ b/.github/workflows/nightly-benchmarks.yml
@@ -34,7 +34,7 @@ jobs:
fetch-depth: 0
- name: Setup mise
- uses: jdx/mise-action@08ae2a091c038e1e05ec6f5115dc5c69d5a2a6b8 # v5.1.2
+ uses: jdx/mise-action@9b200bcecbfd6303e69a4a261b2e09e3757440a7 # v5.2.0
with:
version: v2026.10.2
sha256: 8f5f6660336f572830e33cd9b378d3131e529a0d4c4f0c553776be90a1ba302a
diff --git a/.github/workflows/pr-benchmarks.yml b/.github/workflows/pr-benchmarks.yml
index 75d61d9079..0169d2f07c 100644
--- a/.github/workflows/pr-benchmarks.yml
+++ b/.github/workflows/pr-benchmarks.yml
@@ -45,7 +45,7 @@ jobs:
fetch-depth: 0
- name: Setup mise
- uses: jdx/mise-action@08ae2a091c038e1e05ec6f5115dc5c69d5a2a6b8 # v5.1.2
+ uses: jdx/mise-action@9b200bcecbfd6303e69a4a261b2e09e3757440a7 # v5.2.0
with:
version: v2026.10.2
sha256: 8f5f6660336f572830e33cd9b378d3131e529a0d4c4f0c553776be90a1ba302a
diff --git a/.github/workflows/regenerate-api-diff-otel.yml b/.github/workflows/regenerate-api-diff-otel.yml
index dd82b25c75..4dbe5e0b0c 100644
--- a/.github/workflows/regenerate-api-diff-otel.yml
+++ b/.github/workflows/regenerate-api-diff-otel.yml
@@ -18,7 +18,7 @@ jobs:
with:
ref: ${{ github.ref }}
persist-credentials: false
- - uses: jdx/mise-action@08ae2a091c038e1e05ec6f5115dc5c69d5a2a6b8 # v5.1.2
+ - uses: jdx/mise-action@9b200bcecbfd6303e69a4a261b2e09e3757440a7 # v5.2.0
with:
version: v2026.10.2
sha256: 8f5f6660336f572830e33cd9b378d3131e529a0d4c4f0c553776be90a1ba302a
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index b219bc8a13..decd8c4d97 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -72,7 +72,7 @@ jobs:
ref: ${{ inputs.tag }}
persist-credentials: false
- - uses: jdx/mise-action@08ae2a091c038e1e05ec6f5115dc5c69d5a2a6b8 # v5.1.2
+ - uses: jdx/mise-action@9b200bcecbfd6303e69a4a261b2e09e3757440a7 # v5.2.0
with:
version: v2026.10.2
sha256: 8f5f6660336f572830e33cd9b378d3131e529a0d4c4f0c553776be90a1ba302a
diff --git a/.github/workflows/test-release-build.yml b/.github/workflows/test-release-build.yml
index 50f1da27c6..665e78e163 100644
--- a/.github/workflows/test-release-build.yml
+++ b/.github/workflows/test-release-build.yml
@@ -18,7 +18,7 @@ jobs:
persist-credentials: false
fetch-tags: "true"
fetch-depth: 0
- - uses: jdx/mise-action@08ae2a091c038e1e05ec6f5115dc5c69d5a2a6b8 # v5.1.2
+ - uses: jdx/mise-action@9b200bcecbfd6303e69a4a261b2e09e3757440a7 # v5.2.0
with:
version: v2026.10.2
sha256: 8f5f6660336f572830e33cd9b378d3131e529a0d4c4f0c553776be90a1ba302a
From bbf119f3e7348ac49301702df69c315d32e74bae Mon Sep 17 00:00:00 2001
From: Gregor Zeitlinger
Date: Fri, 16 Oct 2026 14:59:50 +0200
Subject: [PATCH 245/255] chore: separate dependency release notes (#2563)
Configure future dependency updates to appear in a dedicated
Dependencies section in Release Please changelogs.
Configure Renovate to use the matching deps conventional commit type.
This is intentionally future-facing and does not modify the current
release PR.
Signed-off-by: Gregor Zeitlinger
---
.github/config/release-please-config.json | 52 ++++++++++++++++++++++-
.github/renovate.json5 | 2 +
2 files changed, 53 insertions(+), 1 deletion(-)
diff --git a/.github/config/release-please-config.json b/.github/config/release-please-config.json
index b7986d08e4..7561bba7d6 100644
--- a/.github/config/release-please-config.json
+++ b/.github/config/release-please-config.json
@@ -4,7 +4,57 @@
"pull-request-footer": "> [!IMPORTANT]\n> Close and reopen this PR to trigger CI checks.",
"packages": {
".": {
- "release-type": "maven"
+ "release-type": "maven",
+ "changelog-sections": [
+ {
+ "type": "feat",
+ "section": "Features"
+ },
+ {
+ "type": "fix",
+ "section": "Bug Fixes"
+ },
+ {
+ "type": "perf",
+ "section": "Performance Improvements"
+ },
+ {
+ "type": "deps",
+ "section": "Dependencies"
+ },
+ {
+ "type": "docs",
+ "section": "Internal"
+ },
+ {
+ "type": "style",
+ "section": "Internal"
+ },
+ {
+ "type": "chore",
+ "section": "Internal"
+ },
+ {
+ "type": "refactor",
+ "section": "Internal"
+ },
+ {
+ "type": "test",
+ "section": "Internal"
+ },
+ {
+ "type": "build",
+ "section": "Internal"
+ },
+ {
+ "type": "ci",
+ "section": "Internal"
+ },
+ {
+ "type": "revert",
+ "section": "Internal"
+ }
+ ]
}
}
}
diff --git a/.github/renovate.json5 b/.github/renovate.json5
index f192fe48ca..6d2af46d9a 100644
--- a/.github/renovate.json5
+++ b/.github/renovate.json5
@@ -6,6 +6,8 @@
'github>grafana/flint#v0.22.14',
],
platformCommit: 'enabled',
+ semanticCommits: 'enabled',
+ semanticCommitType: 'deps',
automerge: true,
ignorePaths: [
'**/simpleclient-archive/**',
From eadfb6d550809340c24ed2a78b33ce30587a0364 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Fri, 16 Oct 2026 18:05:44 +0200
Subject: [PATCH 246/255] fix(deps): update dependency renovate to v44.155.2
(#2566)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This PR contains the following updates:
| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
| [renovate](https://renovatebot.com)
([source](https://redirect.github.com/renovatebot/renovate)) |
[`44.155.1` →
`44.155.2`](https://octochangelog.com/compare?repo=renovatebot%2Frenovate&from=44.155.1&to=44.155.2)
|

|

|
---
### Release Notes
renovatebot/renovate (renovate)
###
[`v44.155.2`](https://redirect.github.com/renovatebot/renovate/releases/tag/44.155.2)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/44.155.1...44.155.2)
##### Bug Fixes
- **datasource/gitea-tags:** return no digest for a missing repo or tag
([#46984](https://redirect.github.com/renovatebot/renovate/issues/46984))
([690da35](https://redirect.github.com/renovatebot/renovate/commit/690da3581f12455326712c2680deb47858b41679))
- **workers/repository:** keep lookup results out of the extract cache
([#46982](https://redirect.github.com/renovatebot/renovate/issues/46982))
([ad515fb](https://redirect.github.com/renovatebot/renovate/commit/ad515fb96264b96495b567bf8177dd359d2c0108))
##### Miscellaneous Chores
- **deps:** update dependency pnpm to v11.28.5 (main)
([#46981](https://redirect.github.com/renovatebot/renovate/issues/46981))
([01303d3](https://redirect.github.com/renovatebot/renovate/commit/01303d3d1f828094ca97e391478e99a731e53067))
- **deps:** update dependency vite to v8.3.3 (main)
([#46980](https://redirect.github.com/renovatebot/renovate/issues/46980))
([bc14d80](https://redirect.github.com/renovatebot/renovate/commit/bc14d8067ecca80ec6c1e346602af6543db89a05))
- **deps:** update python docker tag to v3.15.0 (main)
([#46979](https://redirect.github.com/renovatebot/renovate/issues/46979))
([08721b7](https://redirect.github.com/renovatebot/renovate/commit/08721b76632fd2db0f561fcca4f65d3e50480803))
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/prometheus/client_java).
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
.mise/locks/npm-renovate/44.82.0~026f02c4/package.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.mise/locks/npm-renovate/44.82.0~026f02c4/package.json b/.mise/locks/npm-renovate/44.82.0~026f02c4/package.json
index 5a296b60ad..a0efad07eb 100644
--- a/.mise/locks/npm-renovate/44.82.0~026f02c4/package.json
+++ b/.mise/locks/npm-renovate/44.82.0~026f02c4/package.json
@@ -7,6 +7,6 @@
}
},
"dependencies": {
- "renovate": "44.155.1"
+ "renovate": "44.155.2"
}
}
From e1b4ad2c47ff4e16988ade345b3ec752d6dd04fc Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Mon, 19 Oct 2026 11:25:13 +0200
Subject: [PATCH 247/255] chore(deps): update dependency jdx/mise to
v2026.10.14 (#2575)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
> [!NOTE]
> This PR body was truncated due to platform limits.
This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [jdx/mise](https://redirect.github.com/jdx/mise) | uses-with | patch |
`v2026.10.2` → `v2026.10.14` |
---
### Release Notes
jdx/mise
###
[`v2026.10.14`](https://redirect.github.com/jdx/mise/releases/tag/v2026.10.14):
: Global override config, mise config explain, and stricter tool option
checks
[Compare
Source](https://redirect.github.com/jdx/mise/compare/vfox-v2026.10.13...vfox-v2026.10.14)
A global `config.override.toml` can now take precedence over project
config, and `mise config explain` describes each key in a config file.
Paranoid mode can be turned on per category, and in that mode dotenv
files need their own content-bound trust. Installs now fail when a tool
has an option its backend doesn't read, which affects existing configs
(see Changed).
##### Added
- **Global override files.** `~/.config/mise/config.override.toml`, and
`config..override.toml` for each `MISE_ENV`, rank above every
project file, including `mise.local.toml` and `mise..toml`. This
covers `[env]`, `[tools]`, `[settings]`, `[tasks]`, hooks and the other
sections. Anything the override file doesn't set still comes from the
project. mise never writes to these files by default. To write to one,
pass `--override` to `use`, `unuse`, `set`, `unset`, `settings
set|add|unset` or `config get|set`. A tool declared in an override file
resolves from the global `mise.lock` and is exempt from the project's
`--locked` check. If `MISE_GLOBAL_CONFIG_FILE` is set, override files
are not loaded. `mise config ls` shows a `Tier` column and `mise doctor`
labels the files.
[#14610](https://redirect.github.com/jdx/mise/pull/14610)
([@jdx](https://redirect.github.com/jdx))
```toml
# ~/.config/mise/config.override.toml
[env]
AWS_PROFILE = "personal"
[tools]
node = "24"
```
- **`mise config explain [KEY]`** lists each key a config file sets,
with its line number and its description from the schema. It flags
unknown keys with a "did you mean" suggestion and marks deprecated keys.
It reads the file as plain TOML, so it also works on a config mise
refuses to load. Pass a key such as `tasks` to show only that section,
`--json` for machine-readable output, and `--file`, `--global`,
`--system` or `--override` to pick a file.
[#14642](https://redirect.github.com/jdx/mise/pull/14642)
([@jdx](https://redirect.github.com/jdx))
- **Paranoid mode can be turned on per category.** `paranoid` now
accepts a list of `config`, `env_files`, `plugins` and `provenance` in
addition to `true`/`false`. `MISE_PARANOID=config,env_files` also works.
`true` still turns on all four categories. An unknown category name is
an error.
[#14609](https://redirect.github.com/jdx/mise/pull/14609)
([@jdx](https://redirect.github.com/jdx),
[@thernstig](https://redirect.github.com/thernstig))
```toml
[settings]
paranoid = ["env_files"]
```
- **`env_file` takes several filenames**, for example `env_file =
[".env", ".env.local"]` or `MISE_ENV_FILE=.env:.env.local`. The file
nearest the current directory wins. Within one directory, a name later
in the list wins. A single string still works.
[#14606](https://redirect.github.com/jdx/mise/pull/14606)
([@jdx](https://redirect.github.com/jdx),
[@thernstig](https://redirect.github.com/thernstig))
- **A `find_up` entry in `env._.file` can search several names
together.** Give one entry a `path` list, and mise searches directory by
directory. The closest directory wins, then the later name within a
directory. With two separate entries, a `.env.local` in a parent
directory still overrides the project's `.env`. The docs now explain
this difference and how `env_file` differs from `_.file`.
[#14620](https://redirect.github.com/jdx/mise/pull/14620),
[#14602](https://redirect.github.com/jdx/mise/pull/14602)
([@jdx](https://redirect.github.com/jdx))
```toml
[env]
_.file = { path = [".env", ".env.local"], find_up = true }
```
- **`#MISE` headers in file tasks accept the same keys as
`[tasks.]`**, including `timeout`, `vars` and the
`deny_*`/`allow_*` sandbox keys. Before, these keys were ignored with a
warning. If one header value is invalid, mise warns and skips that key,
and every other task still loads. An invalid `confirm` or `deny_*` value
is still an error, so a typo can't remove a confirmation prompt or a
sandbox restriction. Before, a template named with `extends` overrode a
header's `silent`. Now the header's value wins.
[#14637](https://redirect.github.com/jdx/mise/pull/14637)
([@jdx](https://redirect.github.com/jdx))
- **Interactive `mise.toml` reference** in the docs at
[configuration/reference](https://mise.jdx.dev/configuration/reference.html).
It lists every key with its type, choices and default, and you can
filter keys and link to them directly. Plain Markdown copies are also
published for agents.
[#14641](https://redirect.github.com/jdx/mise/pull/14641)
([@jdx](https://redirect.github.com/jdx))
##### Changed
- **Installs fail on tool options the backend doesn't read.** Before,
such options were silently ignored. A typo or a key meant for another
backend now stops the install, and the error names the option:
`cargo:eza: option 'asset_pattern' is not used by the cargo backend`.
Keys under `platforms` are checked too. So far this applies to the
cargo, conda, gem, github, gitlab, forgejo, go, http, npm, packslip,
pipx, s3, spinel, spm and ubi backends. aqua, plugin and core-language
tools are not checked. The npm backend accepts the `checksum` option
that comes from a `packageManager` field in `package.json`.
[#14629](https://redirect.github.com/jdx/mise/pull/14629),
[#14655](https://redirect.github.com/jdx/mise/pull/14655)
([@jdx](https://redirect.github.com/jdx))
- **Paranoid mode needs content-bound trust for env files.** In paranoid
mode, files loaded through `_.file`, found by the `env_file` setting, or
run by `_.source` each need their own trust. Editing one of these files
revokes its trust. Before, trusting `mise.toml` also approved these
files, and later edits went unchecked. Running `mise trust` with no path
trusts the project's config and every env file it loads. The error names
the file but prints none of its values. To exempt a file by path, add it
to `trusted_config_paths` in your global config. With a category list,
this check belongs to `env_files`.
[#14604](https://redirect.github.com/jdx/mise/pull/14604)
([@jdx](https://redirect.github.com/jdx),
[@thernstig](https://redirect.github.com/thernstig))
- **More specific config error messages.**
- A warning about an unknown `mise.toml` key now gives the line and
column, and suggests a close match, for example `mise.toml:5:1:
settings.experimantal (did you mean experimental?)`.
[#14639](https://redirect.github.com/jdx/mise/pull/14639)
([@jdx](https://redirect.github.com/jdx))
- A wrong value for a hook, a task `run`/`depends` entry or an `[env]`
variable now says which forms are accepted, or names the unknown key.
Before, the error was `data did not match any variant of untagged enum`.
An unknown key in a `run` or `depends` table now gets a warning. Before,
it was silently ignored.
[#14640](https://redirect.github.com/jdx/mise/pull/14640)
([@jdx](https://redirect.github.com/jdx))
- **`[bootstrap.linux.firewall]` is validated on every OS.** macOS and
Windows still skip the section at bootstrap time, but an invalid value
such as `backend = "iptables"` is now an error there too.
[#14615](https://redirect.github.com/jdx/mise/pull/14615)
([@jdx](https://redirect.github.com/jdx))
- **Editor schema updates.** Editors now flag unknown keys in most
`[bootstrap]` tables and in `[dotfiles]` entries. The schema now
documents launchd `keep_alive_on_failure` and `nice`, and dotfile
`autosave` and `enabled`. It also accepts valid configs it used to
reject: templated `login_shell`, `queue_directories` and `umask`, nested
macOS defaults values, and `tools` on `[vars]` entries. On Windows,
`[bootstrap.brew].adopt` no longer causes an unknown-field warning.
[#14616](https://redirect.github.com/jdx/mise/pull/14616),
[#14644](https://redirect.github.com/jdx/mise/pull/14644),
[#14613](https://redirect.github.com/jdx/mise/pull/14613)
([@jdx](https://redirect.github.com/jdx))
- `mise dot status` and `mise dot sync` are faster with many tracked
files. They start one git process per tracked file instead of three,
which took about 10s down to 4s for 860 files.
[#14607](https://redirect.github.com/jdx/mise/pull/14607)
([@waynehoover](https://redirect.github.com/waynehoover))
##### Fixed
- With an external rustup that keeps its proxies in a shared directory,
such as pacman's `/usr/bin`, mise no longer puts that directory ahead of
its own tools. Before, `mise exec -- node` could run the system Node.
Only the Rust proxies are now exposed, through a directory that mise
owns. [#14597](https://redirect.github.com/jdx/mise/pull/14597)
([@jdx](https://redirect.github.com/jdx))
- The cargo backend now honors `rename_exe`. Before, it ignored the
option and installed the executable under its original name.
[#14626](https://redirect.github.com/jdx/mise/pull/14626)
([@jdx](https://redirect.github.com/jdx))
- Locked `pypi:` installs through uv now pass the configured mise Python
to `uv sync`. Before, mise passed an empty path, so uv could pick
another interpreter and fail on `--no-build` tools such as `yamllint`.
[#14593](https://redirect.github.com/jdx/mise/pull/14593)
([@jdx](https://redirect.github.com/jdx),
[@hollow](https://redirect.github.com/hollow))
- When the TLS root store or a CA file can't be loaded, the npm backend
now reports an error instead of crashing mise with a core dump.
[#14595](https://redirect.github.com/jdx/mise/pull/14595)
([@jdx](https://redirect.github.com/jdx))
- On fish, mise no longer recurses until fish hits its call stack limit
after `mise implode`.
[#14594](https://redirect.github.com/jdx/mise/pull/14594)
([@jdx](https://redirect.github.com/jdx),
[@thernstig](https://redirect.github.com/thernstig))
- `mise bootstrap` now finds Nix in `/nix/var/nix/profiles/default/bin`
when a `pre-packages` hook installed it earlier in the same run, so
`nix:` packages install.
[#14596](https://redirect.github.com/jdx/mise/pull/14596)
([@jdx](https://redirect.github.com/jdx))
- `MISE_WATCH_FILES_GIT_REWRITTEN` is no longer set when HEAD stayed on
the same commit, for example after `git checkout -b`, `git reset` or
`git branch -m`. Before, format-on-edit hooks skipped files you had just
edited. [#14585](https://redirect.github.com/jdx/mise/pull/14585)
([@JamBalaya56562](https://redirect.github.com/JamBalaya56562))
- Command wrapper templates can now use `config_root` and
`config_source`. Relative paths in template functions resolve from the
wrapper's config file instead of the current directory.
[#14628](https://redirect.github.com/jdx/mise/pull/14628)
([@JamBalaya56562](https://redirect.github.com/JamBalaya56562))
##### Upgrading
- **Unsupported tool options:** if an install now fails with `option
'...' is not used by the ... backend`, remove the option or fix its
spelling. `mise config explain tools` shows which keys mise doesn't
recognize.
- **Paranoid mode:** after upgrading, run `mise trust` in each project
to approve its env files. Run it again after editing them. If you only
want the env-file check, set `paranoid = ["env_files"]`.
- **Firewall config on macOS and Windows:** if a shared config has an
invalid `[bootstrap.linux.firewall]` value, it now fails to load on
macOS and Windows too. Correct the value.
**Full Changelog**:
##### 💚 Sponsor mise
mise is built and maintained by
[@jdx](https://redirect.github.com/jdx), an open source developer
at [**entire.io**](https://entire.io/), the title sponsor of his open
source work.
If mise saves you or your team time, please consider becoming an
[individual or company sponsor](https://jdx.dev/sponsors.html). Your
support funds ongoing development and helps keep mise fast, free, and
independent.
###
[`v2026.10.13`](https://redirect.github.com/jdx/mise/releases/tag/v2026.10.13):
: Untrusted project configs can no longer change settings
[Compare
Source](https://redirect.github.com/jdx/mise/compare/vfox-v2026.10.12...vfox-v2026.10.13)
mise now ignores `[settings]` in a project config until you trust it.
This release also adds per-version-range backend options to the registry
and template support for command wrappers and `[bootstrap.repos]`. It
fixes several bugs in lockfiles, tasks and multi-version tool options.
##### Security
- **`[settings]` from untrusted project configs is ignored.** Before, a
cloned repo's `mise.toml` could change settings as soon as mise found
it, with no trust prompt. That included settings that redirect downloads
or feed build commands, such as `node.mirror_url`, `python.pyenv_repo`
and `ruby.precompiled_url`. These settings now apply only after `mise
trust`, like `[env]`, `[hooks]` and `[tools]` options already did.
Trusted projects, global and system config, environment variables and
CLI flags work as before. Commands that trust the active config
implicitly (`mise run`, `mise exec`, `mise install`) reload settings
after trusting it, so the project's settings still apply to that same
command. Settings files are now parsed once per load.
[#14538](https://redirect.github.com/jdx/mise/pull/14538),
[#14553](https://redirect.github.com/jdx/mise/pull/14553)
([@jdx](https://redirect.github.com/jdx))
For example, if an untrusted repo sets `[settings.python] pyenv_repo` to
its own URL, `mise settings get python.pyenv_repo` returns the default
pyenv repository until you run `mise trust`.
- mise's own `zip` dependency moved to 9.x, which fixes
GHSA-4684-h2q9-2vcp. Older versions applied Unix permissions through
extracted symlinks without checking that the target stayed inside the
destination. mise uses this code to extract downloaded `.zip` tool
archives.
[#14577](https://redirect.github.com/jdx/mise/pull/14577)
([@jdx](https://redirect.github.com/jdx))
##### Added
- **One registry backend can carry different options for each version
range.** A registry entry can list the same backend more than once, each
time with its own `min_version`/`max_version` and `options`. Tools whose
release assets changed at some version can then stay on one backend. Two
entries can't give the same version different options unless their
`platforms` don't overlap. Table syntax such as `tool = { version =
"1.4.0" }` now takes its registry defaults from the entry that version
selects. Older mise releases apply only the first entry's options to
every version.
[#14543](https://redirect.github.com/jdx/mise/pull/14543)
([@jdx](https://redirect.github.com/jdx))
```toml
backends = [
{ full = "github:example/tool", min_version = "2.0.0", options = {
asset_pattern = "tool-v2-*" } },
{ full = "github:example/tool", max_version = "2.0.0", options = {
asset_pattern = "tool-*" } },
]
```
- **`mise ls-remote` lists every version range of a registry tool.**
When a tool's backends serve different version ranges, mise now lists
each range from the backend that serves it. Before, it listed only the
first backend's range. For example, `mise ls-remote hk` now starts at
0.1.4 instead of 1.58.1. Explicit backends, overrides, `--all` and
`--strict-metadata` behave as before.
[#14544](https://redirect.github.com/jdx/mise/pull/14544)
([@jdx](https://redirect.github.com/jdx))
- **Command wrapper values render as templates.** `command`, `args` and
`env` in `[wrappers]` can use `vars`, `env` and the usual template
functions. `tools` and `config_root` are not available. A command that
renders blank is an error. Use `{% raw %}` to keep literal braces, such
as Docker's `{{.Names}}`.
[#14565](https://redirect.github.com/jdx/mise/pull/14565)
([@jdx](https://redirect.github.com/jdx))
```toml
[wrappers.foo]
command = "foo-real"
args = ["--mode={{ vars.mode }}"]
env = { FOO_HOME = "{{ [xdg_data_home, 'foo'] | join_path }}" }
```
- **`[bootstrap.repos]` supports templated `url`/`ref` and clone
options.** `url` and `ref` render from `[vars]` or the process
environment. Values from a config's `[env]` table are not available.
`filter`, `depth` and `submodules = true` are passed to the first `git
clone` as `--filter`, `--depth` and `--recurse-submodules`. Existing
checkouts are left as they are. `depth` can't be combined with a commit
SHA or a `refs/…` ref.
[#14548](https://redirect.github.com/jdx/mise/pull/14548)
([@jdx](https://redirect.github.com/jdx),
[@ovidiubuligan](https://redirect.github.com/ovidiubuligan))
```toml
[bootstrap.repos]
"~/src/large" = { url = "git@github.com:example/large.git", ref = "{{
vars.branch }}", filter = "blob:none", depth = 1 }
```
- **`{{ system_brew_prefix }}` template variable.** It resolves to the
Homebrew prefix that `mise bootstrap` installs into: `/opt/homebrew` on
macOS and `/home/linuxbrew/.linuxbrew` on Linux, or the value of
`MISE_SYSTEM_BREW_PREFIX`. It does not detect a Homebrew install
somewhere else. `[bootstrap.user].login_shell` now renders templates
too, so `login_shell = "{{ system_brew_prefix }}/bin/zsh"` works.
[#14572](https://redirect.github.com/jdx/mise/pull/14572),
[#14570](https://redirect.github.com/jdx/mise/pull/14570)
([@jdx](https://redirect.github.com/jdx))
- **vfox `PreInstall` hooks can return a `headers` table** next to `url`
and `sha256`. Plugins can now download private or token-gated artifacts
through the normal install path, which handles checksums, retries and
lockfile URLs. Headers are sent only to the origin of `url`, are dropped
on cross-origin redirects, are redacted in debug output and are never
written to `mise.lock`. An explicit `Authorization` header overrides
netrc and the automatic GitHub token.
[#14531](https://redirect.github.com/jdx/mise/pull/14531)
([@jdx](https://redirect.github.com/jdx))
- **`mise doctor` reports a stale `mise-shim.exe` on Windows.** In
`windows_shim_mode = "exe"`, shims are copies of the `mise-shim.exe`
that sits beside `mise.exe`. If that template is older than mise, or has
no version tag (every template built before this release), `mise doctor`
reports it and `mise reshim` warns. To fix it, update mise with the
package manager that installed it, or run `mise self-update`, and then
run `mise reshim --force`.
[#14586](https://redirect.github.com/jdx/mise/pull/14586)
([@jdx](https://redirect.github.com/jdx))
##### Fixed
- **Lockfiles**
- Running `mise lock` on Windows now records `ruby` entries for Windows,
Linux and macOS platforms. Before, it skipped them, and `mise install
--locked` then failed.
[#14520](https://redirect.github.com/jdx/mise/pull/14520),
[#14529](https://redirect.github.com/jdx/mise/pull/14529)
([@jdx](https://redirect.github.com/jdx))
- Commands that rewrite `mise.lock` without locking again, such as `mise
link`, no longer delete other platforms' option variants (for example,
per-platform `asset_pattern` entries).
[#14519](https://redirect.github.com/jdx/mise/pull/14519)
([@jdx](https://redirect.github.com/jdx))
- A `mise link` for one version of a tool no longer makes `mise install
--locked` fail for that tool's other versions. A link now bypasses the
lockfile only when the requested version could select it.
[#14539](https://redirect.github.com/jdx/mise/pull/14539)
([@jdx](https://redirect.github.com/jdx))
- `mise install --locked` for Java no longer fetches the mise-java
catalog when `mise.lock` already has the download URL, so locked
installs work in air-gapped or proxied environments.
[#14534](https://redirect.github.com/jdx/mise/pull/14534)
([@jdx](https://redirect.github.com/jdx))
- **Tasks and shims**
- `mise run` no longer hangs when parallel tasks need to install the
same tool.
[#14536](https://redirect.github.com/jdx/mise/pull/14536)
([@jdx](https://redirect.github.com/jdx))
- Running `mise install` inside a task no longer removes the shims for
that task's `lazy` tools.
[#14533](https://redirect.github.com/jdx/mise/pull/14533)
([@jdx](https://redirect.github.com/jdx))
- Task hooks (such as `postinstall = { task = "setup" }`) and
`watch_files` task hooks now run with mise even when a tool shim
triggered them. Before, they could fail with errors like `jq: Unknown
option --cd`.
[#14550](https://redirect.github.com/jdx/mise/pull/14550)
([@jdx](https://redirect.github.com/jdx),
[@alitas](https://redirect.github.com/alitas))
- `mise watch` exits quietly with status 130 when you interrupt
watchexec with Ctrl+C, instead of printing an error.
[#14541](https://redirect.github.com/jdx/mise/pull/14541)
([@jdx](https://redirect.github.com/jdx))
- **Per-version tool options**
- When a `github:`, `gitlab:` or `forgejo:` tool lists several versions
in config, each version now installs with its own options. Before, an
option such as `rename_exe` set only on the first entry applied to every
version.
[#14537](https://redirect.github.com/jdx/mise/pull/14537)
([@JamBalaya56562](https://redirect.github.com/JamBalaya56562))
- `vfox:` plugin hooks now receive only the options configured for the
version they handle.
[#14562](https://redirect.github.com/jdx/mise/pull/14562)
([@JamBalaya56562](https://redirect.github.com/JamBalaya56562))
- `mise install` now restores `cargo`, `rustc` and the host's `rust-std`
when they are missing from a Rust toolchain with the `minimal` or
`default` profile. Before, mise reported such a toolchain as installed.
[#14525](https://redirect.github.com/jdx/mise/pull/14525)
([@JamBalaya56562](https://redirect.github.com/JamBalaya56562),
[@risu729](https://redirect.github.com/risu729))
- The uv, pip and poetry deps providers now run again after mise
recreates a deleted venv in a later process. Before, the new venv stayed
empty. [#14532](https://redirect.github.com/jdx/mise/pull/14532)
([@halms](https://redirect.github.com/halms))
- vfox plugins now report an error, instead of crashing mise, when the
HTTP client can't be built (for example, when no CA certificates are
installed).
[#14576](https://redirect.github.com/jdx/mise/pull/14576)
([@JamBalaya56562](https://redirect.github.com/JamBalaya56562))
- MCP resource read errors now include the underlying cause, such as the
untrusted-config message and its `mise trust` hint.
[#14566](https://redirect.github.com/jdx/mise/pull/14566)
([@diogochaves](https://redirect.github.com/diogochaves))
##### Registry
- `xcsift` 1.7.0 and later installs from signed Packslip releases and
now supports Linux x64 as well as macOS ARM64.
[#14540](https://redirect.github.com/jdx/mise/pull/14540)
([@jdx](https://redirect.github.com/jdx))
- `protoc-gen-connect-go` 2.x now installs from the `/v2` Go module
path, and 1.x versions keep working.
[#14545](https://redirect.github.com/jdx/mise/pull/14545)
([@jdx](https://redirect.github.com/jdx))
- Added `rea` (`npm:rea-agents`).
[#14421](https://redirect.github.com/jdx/mise/pull/14421)
([@phucisstupid](https://redirect.github.com/phucisstupid))
##### Documentation
- The docs now state that OpenTelemetry export and spinel installs
require `experimental = true`.
[#14552](https://redirect.github.com/jdx/mise/pull/14552)
([@ZainnQureshii](https://redirect.github.com/ZainnQureshii))
##### New Contributors
- [@phucisstupid](https://redirect.github.com/phucisstupid) made
their first contribution in
[#14421](https://redirect.github.com/jdx/mise/pull/14421)
- [@diogochaves](https://redirect.github.com/diogochaves) made
their first contribution in
[#14566](https://redirect.github.com/jdx/mise/pull/14566)
- [@ZainnQureshii](https://redirect.github.com/ZainnQureshii)
made their first contribution in
[#14552](https://redirect.github.com/jdx/mise/pull/14552)
- [@fang2hou](https://redirect.github.com/fang2hou) made their
first contribution in
[#14551](https://redirect.github.com/jdx/mise/pull/14551)
**Full Changelog**:
##### 💚 Sponsor mise
mise is built and maintained by
[@jdx](https://redirect.github.com/jdx), an open source developer
at [**entire.io**](https://entire.io/), the title sponsor of his open
source work.
If mise saves you or your team time, please consider becoming an
[individual or company sponsor](https://jdx.dev/sponsors.html). Your
support funds ongoing development and helps keep mise fast, free, and
independent.
###
[`v2026.10.12`](https://redirect.github.com/jdx/mise/releases/tag/v2026.10.12):
: Per-tool Python runtimes for PyPI tools, Gradle workspace discovery,
and env file find_up
[Compare
Source](https://redirect.github.com/jdx/mise/compare/vfox-v2026.10.11...vfox-v2026.10.12)
PyPI and pipx tools can now choose their own Python runtime, the
workspace graph can read Gradle multi-module builds, and `env._.file`
can search parent directories. When mise-versions is having an outage,
GitHub lookups now retry on `api.github.com`, and `_.source` scripts no
longer pick up `~/.bashrc` when mise is launched from an editor.
##### Added
- **Per-tool Python for `pypi:` tools.** Set `python` to a minor series
or an exact version, and mise installs that runtime and passes it to uv
or pipx for that tool only. The runtime stays private to the tool and
does not become your shell's default Python. `mise lock` records the
selected Python with the tool, and `mise prune` keeps any runtime that a
retained tool environment still uses. You can't combine `python` with
`--python`/`-p` in `uvx_args` or `pipx_args`. Tools that don't set
`python` behave as before.
[#14479](https://redirect.github.com/jdx/mise/pull/14479)
([@jdx](https://redirect.github.com/jdx))
```toml
[tools]
"pypi:black" = { version = "latest", python = "3.12" }
"pypi:ruff" = { version = "latest", python = "3.12.12" }
```
If you change a tool's `python`, mise installs a new environment instead
of reusing the old one. If that install fails, the previous working
environment is left untouched.
[#14504](https://redirect.github.com/jdx/mise/pull/14504)
([@jdx](https://redirect.github.com/jdx))
- **Gradle workspace discovery.** `mise tasks graph` and `mise run
--affected` now find projects listed by `include` in `settings.gradle`
or `settings.gradle.kts`, using Groovy or Kotlin syntax. Project IDs
follow Gradle paths: `:app` becomes `gradle::app`, and the root project
is `gradle::`. Literal `project(":lib")` references in a project's
top-level `dependencies {}` block become graph edges. mise reads the
scripts as text and never runs Gradle. If an `include` is computed or
conditional, a `projectDir` isn't a plain `file("...")` literal, or both
settings files exist, mise reports an error that points to
`[monorepo.projects."gradle:..."]` overrides. Editing the settings
script marks every Gradle project as affected. Based on a prototype by
[@Jarvvski](https://redirect.github.com/Jarvvski).
[#14512](https://redirect.github.com/jdx/mise/pull/14512)
([@jdx](https://redirect.github.com/jdx))
- **`find_up` for `env._.file`.** With `find_up = true`, mise looks for
a relative path in the current directory and in every parent, so a
global config can load each project's `.env` files. Files load from the
root down, so values in closer files win. The default is `false`, and
the option has no effect on absolute paths.
[#14497](https://redirect.github.com/jdx/mise/pull/14497)
([@jdx](https://redirect.github.com/jdx))
```toml
# ~/.config/mise/config.toml
[env]
_.file = [
{ path = ".env", find_up = true },
{ path = ".env.local", find_up = true },
]
```
- **Detect git-rewritten files in `watch_files` hooks.** mise sets
`MISE_WATCH_FILES_GIT_REWRITTEN=1` when every changed file was last
written before git's most recent HEAD move (checkout, pull, rebase).
Commits don't count as HEAD moves. Hooks such as format-on-edit can use
this to skip files the user didn't edit. `git stash pop`/`apply` don't
move HEAD, so mise doesn't detect them.
[#14511](https://redirect.github.com/jdx/mise/pull/14511)
([@jdx](https://redirect.github.com/jdx))
```toml
[[watch_files]]
patterns = ["**/*.go"]
run = '[ -n "$MISE_WATCH_FILES_GIT_REWRITTEN" ] || { IFS=:; hk fix
$MISE_WATCH_FILES_MODIFIED; }'
```
- **`.tera` sources inferred for dotfile group templates.** A `mode =
"template"` entry in `[dotfile_groups]` no longer needs a `source` just
to point at a `.tera` file. If the exact path doesn't exist, mise falls
back to the same path with `.tera` added. An explicit `source` still
takes precedence, and the `.tera` file is not also deployed under its
suffixed name.
[#14502](https://redirect.github.com/jdx/mise/pull/14502)
([@jdx](https://redirect.github.com/jdx))
- **`mise lock` warns about unsupported platforms.** If you name
platforms with `lockfile_platforms` or `mise lock --platform`, mise
prints a warning for each tool version that has no build for one of
them, for example `apko@0.30.0 is not available for windows-x64; it will
not install there`. The default platform set still only logs this at
debug level, and the exit status is unchanged.
[#14500](https://redirect.github.com/jdx/mise/pull/14500)
([@jdx](https://redirect.github.com/jdx))
- Registry: added `martin` (`github:maplibre/martin`).
[#14488](https://redirect.github.com/jdx/mise/pull/14488)
([@ivan-ivkovic](https://redirect.github.com/ivan-ivkovic),
[@jdx](https://redirect.github.com/jdx))
##### Fixed
- **GitHub lookups survive mise-versions outages.** If mise-versions
times out, drops the connection, or returns `429` or `5xx`, mise now
retries the lookup on `api.github.com`, using your GitHub token if one
is set. This covers releases, tags, repository contents, attestations
and `self-update`. A `404`, `403` or empty answer from mise-versions is
still trusted and not retried, so normal use doesn't spend GitHub's
anonymous rate limit. If both sources fail, the error shows both
failures, and a previously cached version list is still used.
[#14501](https://redirect.github.com/jdx/mise/pull/14501)
([@jdx](https://redirect.github.com/jdx))
- **`_.source` no longer loads `~/.bashrc`.** When mise's stdin was a
socket and `SHLVL` was unset, which happens when an editor extension
such as the VS Code mise extension starts it, bash sourced `~/.bashrc`
before the script. That leaked variables into the environment and could
drop the script's `PATH` entries. The script now runs with `--norc`.
[#14487](https://redirect.github.com/jdx/mise/pull/14487)
([@pikeas](https://redirect.github.com/pikeas))
- **Each version entry uses its own options.** When a tool listed
several versions, options set only on the first entry leaked into the
later ones. For example, `prerelease = true` on a `latest` entry made a
separate `"1"` entry resolve to a prerelease.
[#14476](https://redirect.github.com/jdx/mise/pull/14476)
([@JamBalaya56562](https://redirect.github.com/JamBalaya56562),
[@risu729](https://redirect.github.com/risu729))
- **Project overrides now work when a workspace provider fails.**
Previously, if a provider couldn't read its manifest (for example, a
malformed `go.work`), `mise tasks graph` and `mise run --affected`
failed for the whole repo. Declaring a project in that provider's
namespace under `[monorepo.projects]` now replaces the provider's output
and clears its error. Providers with no declared projects still fail
loudly. [#14508](https://redirect.github.com/jdx/mise/pull/14508)
([@jdx](https://redirect.github.com/jdx))
##### Documentation
- Explained why `mise activate` keeps shims on `PATH`
[#14493](https://redirect.github.com/jdx/mise/pull/14493)
([@jdx](https://redirect.github.com/jdx)), and clarified the
platform-specific mise cache paths for CI
[#14506](https://redirect.github.com/jdx/mise/pull/14506)
([@zeitlinger](https://redirect.github.com/zeitlinger)).
**Full Changelog**:
##### 💚 Sponsor mise
mise is built and maintained by
[@jdx](https://redirect.github.com/jdx), an open source developer
at [**entire.io**](https://entire.io/), the title sponsor of his open
source work.
If mise saves you or your team time, please consider becoming an
[individual or company sponsor](https://jdx.dev/sponsors.html). Your
support funds ongoing development and helps keep mise fast, free, and
independent.
###
[`v2026.10.11`](https://redirect.github.com/jdx/mise/releases/tag/v2026.10.11):
: Much faster installs and far fewer GitHub API calls
[Compare
Source](https://redirect.github.com/jdx/mise/compare/vfox-v2026.10.10...vfox-v2026.10.11)
mise is much faster in this release and calls the GitHub API far less.
Version lists, release tags, attestations and other public GitHub
metadata now come from mise-versions, so everyday commands like `mise
install`, `exec`, shims, `outdated`, `lock` and `self-update` are
quicker and users without a GitHub token no longer run into the
60-requests-an-hour limit. Cached version lists are reused for longer,
so repeat installs skip most lookups. It also adds `mise bootstrap
--upgrade` and `mise env --paths`, and closes a trust gap in remote task
files.
##### Speed and GitHub API usage
Cold-cache timings for v2026.10.10 versus v2026.10.11, measured with
hyperfine on one Linux x64 machine with no GitHub token set:
| Command | v2026.10.10 | v2026.10.11 |
| ----------------------------------------------------- | ----------- |
----------- |
| `mise ls-remote python` | 961 ms | 93 ms |
| `mise install` (jq, ripgrep, fd, bat, gh, shellcheck) | 1.49 s | 1.08
s |
| `mise outdated` (same six tools installed) | 433 ms | 272 ms |
The install and `outdated` runs are noisy (±0.1–0.4s over 4 runs) and
the install time includes downloads, so treat them as rough. Requests to
`api.github.com` in a cold `mise install` of `github:` tools dropped
from 2 to 0. Cold `mise outdated` made 8 network requests before and
none now.
- **Public GitHub metadata comes from mise-versions.** With
`use_versions_host` on (the default), release lists, `latest`, git tags
(aqua `github_tag` packages, ubi and go), artifact attestations
(including aqua's `predicate_type` filters) and the digest in the
checksum-mismatch hint are read from mise-versions instead of
`api.github.com`. GitHub is still asked directly for repositories
mise-versions doesn't list when you have a token (the private-repository
case), and in paranoid mode for attestations. The direct API is also
used with `use_versions_host = false`, GitHub `url_replacements` and
custom `api_url`s.
[#14460](https://redirect.github.com/jdx/mise/pull/14460),
[#14461](https://redirect.github.com/jdx/mise/pull/14461),
[#14469](https://redirect.github.com/jdx/mise/pull/14469),
[#14481](https://redirect.github.com/jdx/mise/pull/14481),
[#14477](https://redirect.github.com/jdx/mise/pull/14477),
[#14443](https://redirect.github.com/jdx/mise/pull/14443)
- Other requests also moved off the GitHub API:
- `mise x`, `mise exec`, shims and `hook-env` use mise-versions when
they auto-install a tool.
[#14458](https://redirect.github.com/jdx/mise/pull/14458)
- `mise self-update` reads mise's releases from mise-versions and
downloads the archive from github.com release downloads. Packslip and
zipsign verification are unchanged.
[#14464](https://redirect.github.com/jdx/mise/pull/14464)
- `mise lock` downloads artifacts for provenance checks from github.com
instead of the API asset endpoint.
[#14465](https://redirect.github.com/jdx/mise/pull/14465)
- Aqua registries hosted on GitHub are fetched from
raw\.githubusercontent.com.
[#14470](https://redirect.github.com/jdx/mise/pull/14470)
- Ruby looks up the latest ruby-build release through mise-versions.
[#14471](https://redirect.github.com/jdx/mise/pull/14471)
- **Fewer version-list fetches.** `mise install`, `use` and `run` now
reuse a cached version list for the tool's `minimum_release_age` window
minus one hour, clamped to 1–24h. With the default 24h cutoff, that is
23h. `outdated`, `upgrade`, `ls-remote`, `lock` and `latest` still
refresh after 1h. If you set `fetch_remote_versions_cache` yourself,
your value applies to every command.
[#14484](https://redirect.github.com/jdx/mise/pull/14484),
[#14485](https://redirect.github.com/jdx/mise/pull/14485),
[#14457](https://redirect.github.com/jdx/mise/pull/14457)
- **Faster version resolution:**
- Multi-tool commands such as `mise outdated` can resolve many registry
tools with one request to the mise-versions index.
[#14473](https://redirect.github.com/jdx/mise/pull/14473)
- `latest` is resolved without refetching the list.
[#14456](https://redirect.github.com/jdx/mise/pull/14456)
- Explicit backend args such as `aqua:jqlang/jq` reuse the registry
tool's version list.
[#14459](https://redirect.github.com/jdx/mise/pull/14459)
- Release tags come from the versions host instead of being listed or
guessed.
[#14442](https://redirect.github.com/jdx/mise/pull/14442)
- Packslip installs no longer re-download what resolution already
verified.
[#14466](https://redirect.github.com/jdx/mise/pull/14466)
- Install tracking and the Python version list are served from static
assets. [#14441](https://redirect.github.com/jdx/mise/pull/14441)
- **Python version listing no longer clones pyenv.** `mise ls-remote
python`, `outdated`, `upgrade` and fuzzy `mise use python@3.12` read the
python-build definitions from mise-versions. A cold listing took about
960ms before and about 90ms now. pyenv is still cloned when mise
compiles Python, when `python.pyenv_repo` points at a fork, when you're
offline, or when `use_versions_host = false`. Some definitions that had
no date before now have one, so they are held back by
`minimum_release_age` until they are old enough.
[#14455](https://redirect.github.com/jdx/mise/pull/14455)
- `mise oci build` now requires root for `apt:` packages, as it already
did for apk, and fails up front with a clear message. If apt-get still
fails, the error now includes the last lines of dpkg's output.
[#14447](https://redirect.github.com/jdx/mise/pull/14447)
- Registry: `native-sdk` now installs from npm (`@native-sdk/cli`), so
the `native` command works. It requires Node 24+.
[#14431](https://redirect.github.com/jdx/mise/pull/14431)
##### Security
- **Remote task files now need trust before their headers render.** A
`mise.toml` with only `[tasks]` loads without trust. Before this fix, if
one of those tasks set `file` to a remote URL, `mise tasks ls`, `mise
tasks info` and `mise tasks validate` rendered the file's `#MISE`
headers, so a template like `{{ exec(...) }}` ran without a trust
prompt. Remote files now follow the same rule as local task includes: if
the headers contain template syntax, the config that references them
must be trusted first. Remote files with plain headers still list
without trust, and braces in the script body need no trust.
[#14416](https://redirect.github.com/jdx/mise/pull/14416)
([@JamBalaya56562](https://redirect.github.com/JamBalaya56562),
[@risu729](https://redirect.github.com/risu729))
- Updated rustls to 0.23.46 to address a RustSec advisory.
[#14434](https://redirect.github.com/jdx/mise/pull/14434)
##### Added
- **`mise bootstrap --upgrade`** installs what is missing and then
upgrades what is already installed, in a single run. In the packages
phase it runs the same upgrade as `mise bootstrap packages upgrade`, and
pins are respected. In the tools phase it runs `mise upgrade` without
`--bump`, so configured version ranges hold. Both run before the
matching post hooks and dependent services. `--dry-run` previews both
steps and `--skip` works as before. It does not update mise itself,
repositories or images, and it does not restart services.
[#14433](https://redirect.github.com/jdx/mise/pull/14433)
```sh
mise self-update --yes && mise bootstrap --upgrade
```
- **`mise env --paths`** prints the PATH entries mise manages, one per
line and in PATH order: tool bin directories, `_.path` entries, and
inherited directories that mise moves forward, such as `~/.cargo/bin`.
This lets CI integrations export only mise's additions without diffing
`PATH`. [#14429](https://redirect.github.com/jdx/mise/pull/14429)
```console
$ mise env --paths
/home/me/.local/share/mise/installs/node/24.11.0/bin
/home/me/.cargo/bin
```
- **The install script downloads pinned versions from mise.jdx.dev.**
`curl https://mise.run | MISE_VERSION= sh` now tries
mise.jdx.dev first and falls back to GitHub Releases if that download
fails. Checksums for pinned versions still come only from GitHub's
`SHASUMS256.txt`. If no checksum is found, the script refuses to
install. `MISE_INSTALL_FROM_GITHUB=1` still uses GitHub only.
[#14446](https://redirect.github.com/jdx/mise/pull/14446)
- Registry: `gdal` installs the GDAL/OGR command-line tools from
conda-forge (`conda:libgdal-core`).
[#14440](https://redirect.github.com/jdx/mise/pull/14440)
([@ivan-ivkovic](https://redirect.github.com/ivan-ivkovic))
##### Fixed
- **A bare `mise upgrade` no longer installs lazy tools that have never
been installed.** Naming the tool still installs it. A lazy tool that
already has a version installed upgrades as before. A missing lazy tool
is still installed if an upgraded tool depends on it. `mise outdated`
now marks these tools as `[MISSING] (lazy)`, and the bare upgrade no
longer looks up their versions.
[#14422](https://redirect.github.com/jdx/mise/pull/14422)
([@ryanrhughes](https://redirect.github.com/ryanrhughes)),
[#14444](https://redirect.github.com/jdx/mise/pull/14444)
- Fixed false `stack limit reached` errors on the static musl builds,
for example on Ubuntu 26.04. These errors broke aqua `version_filter`
parsing and made shims such as kubectl's report "not a valid shim".
[#14450](https://redirect.github.com/jdx/mise/pull/14450)
- `mise lock --platform ...` run on Alpine or NixOS no longer records
Node source builds for other platforms. Only an explicit `node.compile`
or `all_compile = true` forces source builds for those targets.
[#14432](https://redirect.github.com/jdx/mise/pull/14432)
- `mise upgrade --bump` and hand-edited version pins no longer drop a
pipx tool's locked uv dependency graph. Before, `mise install --locked`
then failed on a fresh checkout.
[#14426](https://redirect.github.com/jdx/mise/pull/14426)
([@wislertt](https://redirect.github.com/wislertt))
- Packslip prefixes such as `fnox@1` now skip releases this host can't
install, the same way `latest` does. Each skipped release gets a
warning, and if no match can be installed, mise reports a clear error.
[#14467](https://redirect.github.com/jdx/mise/pull/14467)
- A `bash` shim ahead of `/bin` no longer causes a false "shim fallback
recursion detected" error for commands like `bash -c 'bash --version'`.
The docs now recommend installing shells with the system package manager
instead of `[tools]`.
[#14475](https://redirect.github.com/jdx/mise/pull/14475)
- Bootstrap UFW rules with an `interface` now render the incoming
direction (`ufw allow in on tailscale0 ...`), which fixes `Invalid token
'on'` errors.
[#14480](https://redirect.github.com/jdx/mise/pull/14480)
- Dotfiles:
- Before the `files: apply` prompt, mise now lists each file it will
create, overwrite or remove and warns that local edits will be replaced.
The prompt now defaults to No.
[#14430](https://redirect.github.com/jdx/mise/pull/14430)
- `mise dot add --changed` now also captures edited files that a
copy-mode `dotfile_groups` root discovers automatically, not just files
listed explicitly in `entries`.
[#14436](https://redirect.github.com/jdx/mise/pull/14436)
##### Documentation
- The docs now recommend committing `mise.lock`, so CI and Docker builds
skip version lookups.
[#14453](https://redirect.github.com/jdx/mise/pull/14453)
##### New Contributors
- [@ivan-ivkovic](https://redirect.github.com/ivan-ivkovic) made
their first contribution in
[#14440](https://redirect.github.com/jdx/mise/pull/14440)
**Full Changelog**:
##### 💚 Sponsor mise
mise is built and maintained by
[@jdx](https://redirect.github.com/jdx), an open source developer
at [**entire.io**](https://entire.io/), the title sponsor of his open
source work.
If mise saves you or your team time, please consider becoming an
[individual or company sponsor](https://jdx.dev/sponsors.html). Your
support funds ongoing development and helps keep mise fast, free, and
independent.
###
[`v2026.10.10`](https://redirect.github.com/jdx/mise/releases/tag/v2026.10.10):
: Task skip_if, snap and COPR in bootstrap, and dotfiles pull fixes
[Compare
Source](https://redirect.github.com/jdx/mise/compare/vfox-v2026.10.9...vfox-v2026.10.10)
Tasks can now skip themselves with a `skip_if` check, and bootstrap
gains Snap packages, Fedora COPR repositories, and branch selection for
`--adopt`. This release also fixes several `mise dot pull` problems that
could loop, stall, or leave sharing paused on long histories. On the
Windows side, it fixes `.mise-bins` executables and npm installs
restored from a cache.
##### Added
- **`skip_if` for tasks.** Before a task runs, mise runs its `skip_if`
shell command. If the command exits 0, mise skips the task and counts it
as successful. Any other exit status runs the task as usual.
[#14399](https://redirect.github.com/jdx/mise/pull/14399)
```toml
[tasks.setup]
skip_if = "test -f .initialized"
run = "touch .initialized"
```
The check runs after `depends` and before `confirm`. It uses the task's
directory, shell, environment, sandbox and `timeout`, and it supports
Tera templates and task arguments. Its output is discarded and it gets
no stdin. It does not receive the task's `secrets`. File tasks can set
it with `#MISE skip_if="..."`. `mise run --force` skips the check,
`--dry-run` prints it without running it, and `mise tasks info` shows
it. If the check can't start, times out, or is killed, the task fails.
- **Snap packages in bootstrap.** On Linux, you can declare snaps in
`[bootstrap.packages]` alongside apt and flatpak, with optional
`channel` and `classic`, and `state = "absent"` to remove a snap. If a
snap tracks a different channel than you declared, `status` shows it and
`apply` moves it with `snap refresh --channel`. snapd can't install or
hold a specific version, so `apply` and `upgrade` skip entries with a
version pin and print a warning.
[#14402](https://redirect.github.com/jdx/mise/pull/14402)
```toml
[bootstrap.packages]
"snap:jq" = "latest"
"snap:node" = { channel = "22/stable", classic = true }
```
- **COPR repositories with `[bootstrap.dnf.repos]`.** You can declare a
COPR next to the `dnf:` packages that come from it, instead of using a
`pre-packages` hook. mise writes the same `/etc/yum.repos.d` file that
`dnf copr enable` does. It does not need the copr plugin, so this also
works on Fedora Atomic hosts that layer packages. The chroot is chosen
from `/etc/os-release` (Fedora, EL, Amazon Linux). Without `--yes`, mise
asks before enabling any COPR. mise never disables or removes
repositories, but `mise bootstrap unapply` names any leftover files.
[#14401](https://redirect.github.com/jdx/mise/pull/14401)
```toml
[bootstrap.dnf.repos]
ghostty = { copr = "scottames/ghostty" }
[bootstrap.packages]
"dnf:ghostty" = "latest"
```
- **`mise bootstrap --adopt ?ref=`** adopts a branch other
than the default, either for global config or for a setup history. This
also works with `mise bootstrap remote`. The ref must be a branch: tags,
commits and missing branches are refused before anything is cloned. mise
never switches an existing `~/.config/mise` checkout to another branch,
even with `--update`, so use `git switch` first. The docs now also
explain how `mise dot origin set` relates to an adopted global config.
[#14400](https://redirect.github.com/jdx/mise/pull/14400)
- **GitHub OAuth refresh token in the Secure Enclave.** On a Mac with
Touch ID, set `github.oauth_cache_secure_enclave = true` to keep the
native GitHub OAuth refresh token behind Touch ID instead of in
plaintext in `github-oauth-tokens.toml`. Touch ID asks for a fingerprint
only when the token needs refreshing. If you cancel the prompt, mise
skips the refresh and keeps the cached access token. This needs the
Developer ID-signed release build. Homebrew and source builds print a
warning and keep the token in the cache file.
[#14413](https://redirect.github.com/jdx/mise/pull/14413)
##### Changed
- On Windows, `experimental = true` now turns on the [identity install
layout](https://mise.jdx.dev/dev-tools/install-layout.html) by itself,
which keeps deep npm, pipx and Java trees under the 260-character path
limit. Only new installs use it. Existing installs stay where they are,
and `mise installs migrate` can move them. To keep the old layout, set
`install_layout = "legacy"` (or `MISE_INSTALL_LAYOUT=legacy`). Linux and
macOS still need `install_layout = "identity"` set explicitly.
[#14392](https://redirect.github.com/jdx/mise/pull/14392)
##### Fixed
##### Dotfiles
- Machines that share an origin and track an encrypted file no longer
swap ciphertext back and forth forever. age encryption gives different
ciphertext for the same content, so `mise dot watch` could publish
commits endlessly without any real edits. Now mise keeps the ciphertext
that history already has whenever it decrypts to the same content, mode
and recipients. Machines that are already looping settle after one more
sync. [#14405](https://redirect.github.com/jdx/mise/pull/14405)
- `mise dot pull` on long histories is much faster. The number of git
processes no longer grows with the length of the history: in one test
with 2,000 commits, a pull went from 137 s to under 6 s.
[#14407](https://redirect.github.com/jdx/mise/pull/14407),
[#14415](https://redirect.github.com/jdx/mise/pull/14415)
- When a pull's plan went out of date because another operation saved
first, it was treated as a failed apply and paused sharing until someone
ran `mise dot pull` by hand. Now, if nothing has been written yet, mise
retries on the next attempt and the watcher keeps applying changes.
[#14414](https://redirect.github.com/jdx/mise/pull/14414)
- After an interrupted history operation, `mise dot pull --yes` no
longer fails with "local saved history changed since planning". The pull
now recovers the interrupted operation before it plans.
[#14410](https://redirect.github.com/jdx/mise/pull/14410)
- A file that already has the incoming version (content and mode) is no
longer held as an unsaved edit or conflict that pauses sharing. Running
`mise dot pull --take-remote ` again for a path an earlier pull
already resolved no longer fails with "is not a conflict".
[#14411](https://redirect.github.com/jdx/mise/pull/14411)
##### Windows
- `mise x` and shims now run the original executable instead of its copy
in `.mise-bins`, for tools installed with aqua `symlink_bins`, github
`filter_bins`, or packslip. Programs that look for DLLs or data next to
their own executable, such as exiftool, now start correctly. Tools
installed by older versions need `mise install --force` to get this. A
shell from `mise activate` that finds the copy on `PATH` still runs the
copy. [#14397](https://redirect.github.com/jdx/mise/pull/14397)
- npm tools installed with the built-in aube installer are reinstalled
if their dependency links are missing, for example after a CI cache
restore drops NTFS junctions. Before, mise reported them as installed
and they failed at run time with `ERR_MODULE_NOT_FOUND`.
[#14418](https://redirect.github.com/jdx/mise/pull/14418)
##### Tools and installs
- `rust@nightly`, `mise ls-remote rust`, and `mise outdated`/`upgrade`
now read the nightly manifest from `RUSTUP_DIST_SERVER`, so a mirror
such as panamax no longer needs access to `static.rust-lang.org`. If
`[env]` sets `RUSTUP_DIST_SERVER` or `RUSTUP_UPDATE_ROOT`, mise also
passes them to `rustup-init` and `rustup toolchain install`.
[#14384](https://redirect.github.com/jdx/mise/pull/14384)
- With a global `minimum_release_age`, `mise use --tool-option
minimum_release_age=0s ` now installs the actual latest version
instead of the version the global cutoff allows.
[#14398](https://redirect.github.com/jdx/mise/pull/14398)
([@halms](https://redirect.github.com/halms))
- Upgrading a global npm tool that `mise lock --global` locked with a
dependency graph now regenerates the graph for the new version,
including with `--bump`. Before, the upgrade dropped the graph and the
next `mise install --locked` failed.
[#14419](https://redirect.github.com/jdx/mise/pull/14419)
([@altendky](https://redirect.github.com/altendky))
- Reinstalling a packslip tool signed by a shared reusable workflow
works again with its saved pin. In v2026.10.9, mise rejected the
unchanged signer as "not a workflow of" the tool's repository. Signer,
workflow or repository changes are still refused.
[#14408](https://redirect.github.com/jdx/mise/pull/14408)
- Building Erlang from source now shows `compiling with kerl` while the
build runs, instead of staying on `verifying checksum`. kerl's output
now prints above the progress row instead of writing over it.
[#14391](https://redirect.github.com/jdx/mise/pull/14391)
- `mise prune` now shows a progress line while it scans for unused
versions, instead of printing nothing for what could be a long time.
[#14420](https://redirect.github.com/jdx/mise/pull/14420)
- The JSON schema now rejects unknown keys in `env._.python` and its
`venv` options, matching what mise already refused at load time. Editors
now flag these mistakes.
[#14387](https://redirect.github.com/jdx/mise/pull/14387)
([@JamBalaya56562](https://redirect.github.com/JamBalaya56562),
[@risu729](https://redirect.github.com/risu729))
##### Documentation
- The configuration docs now explain how mise searches for config before
listing the per-directory file names.
[#14390](https://redirect.github.com/jdx/mise/pull/14390)
- The bootstrap overview and run order now include
`[bootstrap.apt.sources]`.
[#14396](https://redirect.github.com/jdx/mise/pull/14396)
**Full Changelog**:
##### 💚 Sponsor mise
mise is built and maintained by
[@jdx](https://redirect.github.com/jdx), an open source developer
at [**entire.io**](https://entire.io/), the title sponsor of his open
source work.
If mise saves you or your team time, please consider becoming an
[individual or company sponsor](https://jdx.dev/sponsors.html). Your
support funds ongoing development and helps keep mise fast, free, and
independent.
###
[`v2026.10.9`](https://redirect.github.com/jdx/mise/releases/tag/v2026.10.9):
: path: tool versions require trust; apt repositories, login items and
run0/doas in bootstrap
[Compare
Source](https://redirect.github.com/jdx/mise/compare/vfox-v2026.10.8...vfox-v2026.10.9)
This release fixes a trust bypass: an untrusted `path:` tool version
could put a directory on `PATH`. It also adds several bootstrap
features: apt repositories and PPAs, macOS login items, rpm-ostree
layering on Fedora Atomic, and `run0`/`doas` support. Beyond that, it
improves `mise dot status`, adds GitHub OAuth conveniences, and fixes
problems across npm, prune, brew and dotfiles sync.
#### Se
> [!IMPORTANT]
> ✂ PR body was truncated to here.
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- "before 4am on Monday"
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/prometheus/client_java).
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
.github/workflows/acceptance-tests.yml | 4 ++--
.github/workflows/api-diff.yml | 4 ++--
.github/workflows/build.yml | 4 ++--
.github/workflows/bump-api-diff-baseline.yml | 4 ++--
.github/workflows/generate-protobuf.yml | 4 ++--
.github/workflows/github-pages.yaml | 4 ++--
.github/workflows/java-version-matrix-tests.yml | 4 ++--
.github/workflows/jmx-exporter-compatibility.yml | 4 ++--
.github/workflows/lint.yml | 4 ++--
.github/workflows/micrometer-compatibility.yml | 4 ++--
.github/workflows/native-tests.yml | 4 ++--
.github/workflows/nightly-benchmarks.yml | 4 ++--
.github/workflows/pr-benchmarks.yml | 4 ++--
.github/workflows/regenerate-api-diff-otel.yml | 4 ++--
.github/workflows/release.yml | 4 ++--
.github/workflows/test-release-build.yml | 4 ++--
16 files changed, 32 insertions(+), 32 deletions(-)
diff --git a/.github/workflows/acceptance-tests.yml b/.github/workflows/acceptance-tests.yml
index daee2a9faa..4a9c9de74d 100644
--- a/.github/workflows/acceptance-tests.yml
+++ b/.github/workflows/acceptance-tests.yml
@@ -15,7 +15,7 @@ jobs:
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
- uses: jdx/mise-action@9b200bcecbfd6303e69a4a261b2e09e3757440a7 # v5.2.0
with:
- version: v2026.10.2
- sha256: 8f5f6660336f572830e33cd9b378d3131e529a0d4c4f0c553776be90a1ba302a
+ version: v2026.10.14
+ sha256: 50be7185bcf75929f01cc5630276bcb43ca367f7c5b176e2580903d28c611dc4
- name: Run acceptance tests
run: mise run acceptance-test
diff --git a/.github/workflows/api-diff.yml b/.github/workflows/api-diff.yml
index 76e16afdd2..8461f89e64 100644
--- a/.github/workflows/api-diff.yml
+++ b/.github/workflows/api-diff.yml
@@ -34,8 +34,8 @@ jobs:
persist-credentials: false
- uses: jdx/mise-action@9b200bcecbfd6303e69a4a261b2e09e3757440a7 # v5.2.0
with:
- version: v2026.10.2
- sha256: 8f5f6660336f572830e33cd9b378d3131e529a0d4c4f0c553776be90a1ba302a
+ version: v2026.10.14
+ sha256: 50be7185bcf75929f01cc5630276bcb43ca367f7c5b176e2580903d28c611dc4
- name: Cache local Maven repository
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
with:
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 6937560244..ad09652e26 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -14,8 +14,8 @@ jobs:
persist-credentials: false
- uses: jdx/mise-action@9b200bcecbfd6303e69a4a261b2e09e3757440a7 # v5.2.0
with:
- version: v2026.10.2
- sha256: 8f5f6660336f572830e33cd9b378d3131e529a0d4c4f0c553776be90a1ba302a
+ version: v2026.10.14
+ sha256: 50be7185bcf75929f01cc5630276bcb43ca367f7c5b176e2580903d28c611dc4
- name: Cache local Maven repository
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
with:
diff --git a/.github/workflows/bump-api-diff-baseline.yml b/.github/workflows/bump-api-diff-baseline.yml
index 29d5e1bddc..f7d41d714d 100644
--- a/.github/workflows/bump-api-diff-baseline.yml
+++ b/.github/workflows/bump-api-diff-baseline.yml
@@ -35,8 +35,8 @@ jobs:
persist-credentials: true
- uses: jdx/mise-action@9b200bcecbfd6303e69a4a261b2e09e3757440a7 # v5.2.0
with:
- version: v2026.10.2
- sha256: 8f5f6660336f572830e33cd9b378d3131e529a0d4c4f0c553776be90a1ba302a
+ version: v2026.10.14
+ sha256: 50be7185bcf75929f01cc5630276bcb43ca367f7c5b176e2580903d28c611dc4
- name: Cache local Maven repository
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
with:
diff --git a/.github/workflows/generate-protobuf.yml b/.github/workflows/generate-protobuf.yml
index 3b20d9dfb1..2309402881 100644
--- a/.github/workflows/generate-protobuf.yml
+++ b/.github/workflows/generate-protobuf.yml
@@ -20,8 +20,8 @@ jobs:
persist-credentials: false
- uses: jdx/mise-action@9b200bcecbfd6303e69a4a261b2e09e3757440a7 # v5.2.0
with:
- version: v2026.10.2
- sha256: 8f5f6660336f572830e33cd9b378d3131e529a0d4c4f0c553776be90a1ba302a
+ version: v2026.10.14
+ sha256: 50be7185bcf75929f01cc5630276bcb43ca367f7c5b176e2580903d28c611dc4
- name: Cache local Maven repository
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
with:
diff --git a/.github/workflows/github-pages.yaml b/.github/workflows/github-pages.yaml
index b1385069ba..e3b77773f3 100644
--- a/.github/workflows/github-pages.yaml
+++ b/.github/workflows/github-pages.yaml
@@ -39,8 +39,8 @@ jobs:
fetch-depth: 0
- uses: jdx/mise-action@9b200bcecbfd6303e69a4a261b2e09e3757440a7 # v5.2.0
with:
- version: v2026.10.2
- sha256: 8f5f6660336f572830e33cd9b378d3131e529a0d4c4f0c553776be90a1ba302a
+ version: v2026.10.14
+ sha256: 50be7185bcf75929f01cc5630276bcb43ca367f7c5b176e2580903d28c611dc4
cache: "false"
- name: Setup Pages
id: pages
diff --git a/.github/workflows/java-version-matrix-tests.yml b/.github/workflows/java-version-matrix-tests.yml
index c40a544dff..fa9a6df348 100644
--- a/.github/workflows/java-version-matrix-tests.yml
+++ b/.github/workflows/java-version-matrix-tests.yml
@@ -33,8 +33,8 @@ jobs:
- name: Set up mise
uses: jdx/mise-action@9b200bcecbfd6303e69a4a261b2e09e3757440a7 # v5.2.0
with:
- version: v2026.10.2
- sha256: 8f5f6660336f572830e33cd9b378d3131e529a0d4c4f0c553776be90a1ba302a
+ version: v2026.10.14
+ sha256: 50be7185bcf75929f01cc5630276bcb43ca367f7c5b176e2580903d28c611dc4
- name: Cache local Maven repository
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
diff --git a/.github/workflows/jmx-exporter-compatibility.yml b/.github/workflows/jmx-exporter-compatibility.yml
index 3006d0e213..6e8eed6146 100644
--- a/.github/workflows/jmx-exporter-compatibility.yml
+++ b/.github/workflows/jmx-exporter-compatibility.yml
@@ -24,8 +24,8 @@ jobs:
persist-credentials: false
- uses: jdx/mise-action@9b200bcecbfd6303e69a4a261b2e09e3757440a7 # v5.2.0
with:
- version: v2026.10.2
- sha256: 8f5f6660336f572830e33cd9b378d3131e529a0d4c4f0c553776be90a1ba302a
+ version: v2026.10.14
+ sha256: 50be7185bcf75929f01cc5630276bcb43ca367f7c5b176e2580903d28c611dc4
- name: Cache local Maven repository
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
with:
diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml
index b14c6d54cd..3f19dd0f14 100644
--- a/.github/workflows/lint.yml
+++ b/.github/workflows/lint.yml
@@ -23,8 +23,8 @@ jobs:
- name: Setup mise
uses: jdx/mise-action@9b200bcecbfd6303e69a4a261b2e09e3757440a7 # v5.2.0
with:
- version: v2026.10.2
- sha256: 8f5f6660336f572830e33cd9b378d3131e529a0d4c4f0c553776be90a1ba302a
+ version: v2026.10.14
+ sha256: 50be7185bcf75929f01cc5630276bcb43ca367f7c5b176e2580903d28c611dc4
- name: Lint
env:
diff --git a/.github/workflows/micrometer-compatibility.yml b/.github/workflows/micrometer-compatibility.yml
index 3fd34d19ca..df9a94e8fe 100644
--- a/.github/workflows/micrometer-compatibility.yml
+++ b/.github/workflows/micrometer-compatibility.yml
@@ -32,8 +32,8 @@ jobs:
persist-credentials: false
- uses: jdx/mise-action@9b200bcecbfd6303e69a4a261b2e09e3757440a7 # v5.2.0
with:
- version: v2026.10.2
- sha256: 8f5f6660336f572830e33cd9b378d3131e529a0d4c4f0c553776be90a1ba302a
+ version: v2026.10.14
+ sha256: 50be7185bcf75929f01cc5630276bcb43ca367f7c5b176e2580903d28c611dc4
- name: Cache local Maven repository
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
with:
diff --git a/.github/workflows/native-tests.yml b/.github/workflows/native-tests.yml
index 4960b3b5d8..fb516f9ead 100644
--- a/.github/workflows/native-tests.yml
+++ b/.github/workflows/native-tests.yml
@@ -15,7 +15,7 @@ jobs:
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
- uses: jdx/mise-action@9b200bcecbfd6303e69a4a261b2e09e3757440a7 # v5.2.0
with:
- version: v2026.10.2
- sha256: 8f5f6660336f572830e33cd9b378d3131e529a0d4c4f0c553776be90a1ba302a
+ version: v2026.10.14
+ sha256: 50be7185bcf75929f01cc5630276bcb43ca367f7c5b176e2580903d28c611dc4
- name: Run native tests
run: mise run native-test
diff --git a/.github/workflows/nightly-benchmarks.yml b/.github/workflows/nightly-benchmarks.yml
index a26d50bbc0..4659776a22 100644
--- a/.github/workflows/nightly-benchmarks.yml
+++ b/.github/workflows/nightly-benchmarks.yml
@@ -36,8 +36,8 @@ jobs:
- name: Setup mise
uses: jdx/mise-action@9b200bcecbfd6303e69a4a261b2e09e3757440a7 # v5.2.0
with:
- version: v2026.10.2
- sha256: 8f5f6660336f572830e33cd9b378d3131e529a0d4c4f0c553776be90a1ba302a
+ version: v2026.10.14
+ sha256: 50be7185bcf75929f01cc5630276bcb43ca367f7c5b176e2580903d28c611dc4
- name: Cache local Maven repository
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
diff --git a/.github/workflows/pr-benchmarks.yml b/.github/workflows/pr-benchmarks.yml
index 0169d2f07c..ea971e6e7e 100644
--- a/.github/workflows/pr-benchmarks.yml
+++ b/.github/workflows/pr-benchmarks.yml
@@ -47,8 +47,8 @@ jobs:
- name: Setup mise
uses: jdx/mise-action@9b200bcecbfd6303e69a4a261b2e09e3757440a7 # v5.2.0
with:
- version: v2026.10.2
- sha256: 8f5f6660336f572830e33cd9b378d3131e529a0d4c4f0c553776be90a1ba302a
+ version: v2026.10.14
+ sha256: 50be7185bcf75929f01cc5630276bcb43ca367f7c5b176e2580903d28c611dc4
- name: Cache local Maven repository
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
diff --git a/.github/workflows/regenerate-api-diff-otel.yml b/.github/workflows/regenerate-api-diff-otel.yml
index 4dbe5e0b0c..3c464c4b4a 100644
--- a/.github/workflows/regenerate-api-diff-otel.yml
+++ b/.github/workflows/regenerate-api-diff-otel.yml
@@ -20,8 +20,8 @@ jobs:
persist-credentials: false
- uses: jdx/mise-action@9b200bcecbfd6303e69a4a261b2e09e3757440a7 # v5.2.0
with:
- version: v2026.10.2
- sha256: 8f5f6660336f572830e33cd9b378d3131e529a0d4c4f0c553776be90a1ba302a
+ version: v2026.10.14
+ sha256: 50be7185bcf75929f01cc5630276bcb43ca367f7c5b176e2580903d28c611dc4
- name: Cache local Maven repository
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
with:
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index decd8c4d97..6213b67753 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -74,8 +74,8 @@ jobs:
- uses: jdx/mise-action@9b200bcecbfd6303e69a4a261b2e09e3757440a7 # v5.2.0
with:
- version: v2026.10.2
- sha256: 8f5f6660336f572830e33cd9b378d3131e529a0d4c4f0c553776be90a1ba302a
+ version: v2026.10.14
+ sha256: 50be7185bcf75929f01cc5630276bcb43ca367f7c5b176e2580903d28c611dc4
cache: false
- name: Build release version
diff --git a/.github/workflows/test-release-build.yml b/.github/workflows/test-release-build.yml
index 665e78e163..13bb70ea8d 100644
--- a/.github/workflows/test-release-build.yml
+++ b/.github/workflows/test-release-build.yml
@@ -20,8 +20,8 @@ jobs:
fetch-depth: 0
- uses: jdx/mise-action@9b200bcecbfd6303e69a4a261b2e09e3757440a7 # v5.2.0
with:
- version: v2026.10.2
- sha256: 8f5f6660336f572830e33cd9b378d3131e529a0d4c4f0c553776be90a1ba302a
+ version: v2026.10.14
+ sha256: 50be7185bcf75929f01cc5630276bcb43ca367f7c5b176e2580903d28c611dc4
- name: Cache local Maven repository
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
with:
From 09778a0f547a9185bb3f7e5ba351f6ba9a6f0ac1 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Mon, 19 Oct 2026 11:26:18 +0200
Subject: [PATCH 248/255] chore(deps): update dependency
com.github.siom79.japicmp:japicmp-maven-plugin to v0.26.5 (#2572)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This PR contains the following updates:
| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
|
[com.github.siom79.japicmp:japicmp-maven-plugin](https://redirect.github.com/siom79/japicmp)
| `0.26.3` → `0.26.5` |

|

|
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/prometheus/client_java).
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
pom.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/pom.xml b/pom.xml
index 4b07d1d48d..deecfc5caf 100644
--- a/pom.xml
+++ b/pom.xml
@@ -176,7 +176,7 @@
com.github.siom79.japicmpjapicmp-maven-plugin
- 0.26.3
+ 0.26.5
From 7d79d30e711acb3ab401eff16e050f4caa268aa0 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Mon, 19 Oct 2026 11:26:59 +0200
Subject: [PATCH 249/255] chore(deps): update
otel/opentelemetry-collector-contrib docker tag to v0.163.1 (#2573)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This PR contains the following updates:
| Package | Update | Change |
|---|---|---|
|
[otel/opentelemetry-collector-contrib](https://redirect.github.com/open-telemetry/opentelemetry-collector-releases)
| minor | `0.162.0` → `0.163.1` |
---
### Release Notes
open-telemetry/opentelemetry-collector-releases
(otel/opentelemetry-collector-contrib)
###
[`v0.163.1`](https://redirect.github.com/open-telemetry/opentelemetry-collector-releases/blob/HEAD/CHANGELOG.md#v01631)
[Compare
Source](https://redirect.github.com/open-telemetry/opentelemetry-collector-releases/compare/v0.162.0...v0.163.1)
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/prometheus/client_java).
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
examples/example-exemplars-tail-sampling/docker-compose.yaml | 2 +-
examples/example-exporter-opentelemetry/docker-compose.yaml | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/examples/example-exemplars-tail-sampling/docker-compose.yaml b/examples/example-exemplars-tail-sampling/docker-compose.yaml
index b20d71758b..e7ab066559 100644
--- a/examples/example-exemplars-tail-sampling/docker-compose.yaml
+++ b/examples/example-exemplars-tail-sampling/docker-compose.yaml
@@ -36,7 +36,7 @@ services:
- -jar
- /example-greeting-service.jar
collector:
- image: otel/opentelemetry-collector-contrib:0.162.0@sha256:39923a8e431bd1f57be82411999d389fcfe40857492e4365456d97a4c1f74be6
+ image: otel/opentelemetry-collector-contrib:0.163.1@sha256:1175b03003053962012f5a231f5567f66a3e8fdb960c7835c0e48f7aa1555806
network_mode: host
volumes:
- ./config/otelcol-config.yaml:/config.yaml
diff --git a/examples/example-exporter-opentelemetry/docker-compose.yaml b/examples/example-exporter-opentelemetry/docker-compose.yaml
index 1843b3c557..4b024adb0f 100644
--- a/examples/example-exporter-opentelemetry/docker-compose.yaml
+++ b/examples/example-exporter-opentelemetry/docker-compose.yaml
@@ -13,7 +13,7 @@ services:
#- -agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=*:5005
- /example-exporter-opentelemetry.jar
collector:
- image: otel/opentelemetry-collector-contrib:0.162.0@sha256:39923a8e431bd1f57be82411999d389fcfe40857492e4365456d97a4c1f74be6
+ image: otel/opentelemetry-collector-contrib:0.163.1@sha256:1175b03003053962012f5a231f5567f66a3e8fdb960c7835c0e48f7aa1555806
network_mode: host
volumes:
- ./config/otelcol-config.yaml:/config.yaml
From 7f0e5bc818cfb277fc9047e59626ea8ada2065b1 Mon Sep 17 00:00:00 2001
From: Arnab Nandy
Date: Mon, 19 Oct 2026 14:57:37 +0530
Subject: [PATCH 250/255] docs: explain quoted Unicode metric names (#2571)
## Summary
Clarify how metric names outside the legacy character set are
represented when `escaping=allow-utf-8` is used with the Prometheus and
OpenMetrics 1.0 text formats.
The documentation now:
- Explains that non-legacy metric names must use quoted syntax.
- Clarifies why quoted metric names appear inside braces.
- Includes an example using a Unicode counter name.
- Links to the complete Prometheus exposition format specification.
The reported output is valid text-format syntax rather than an encoding
error.
Closes #1576.
## Testing
NA
Signed-off-by: Arnab Nandy
---
docs/content/exporters/unicode.md | 13 +++++++++++++
1 file changed, 13 insertions(+)
diff --git a/docs/content/exporters/unicode.md b/docs/content/exporters/unicode.md
index 232dcb1a57..15a972e92b 100644
--- a/docs/content/exporters/unicode.md
+++ b/docs/content/exporters/unicode.md
@@ -26,6 +26,19 @@ When `escaping=allow-utf-8` is passed, add valid UTF-8 characters to the metric
without replacing them. This allows you to use dots in metric and label names, as well as
other UTF-8 characters, without any replacements.
+Names outside the legacy character set must use the quoted syntax in the Prometheus and
+OpenMetrics 1.0 text formats. A quoted metric name is written inside braces, followed by its
+labels. For example, a counter named `test_我喜欢茶` with a `test` label is exposed as:
+
+```text
+# TYPE "test_我喜欢茶" counter
+{"test_我喜欢茶_total",test="test_我喜欢茶"} 1.0
+```
+
+The braces do not turn the metric name into a label. They are the required text-format notation
+for a quoted metric name. See the [Prometheus exposition
+format](https://prometheus.io/docs/instrumenting/exposition_formats/) for the complete syntax.
+
OpenMetrics 2.0 supports UTF-8 names natively, so when the OpenMetrics 2.0 writer serves a request
that explicitly asks for `version=2.0.0`, names are not escaped unless the request also contains an
`escaping` parameter.
From 3788feb9e64df6aa60947945bb5ee7520a31e171 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Mon, 19 Oct 2026 09:47:08 +0000
Subject: [PATCH 251/255] fix(deps): update dependency renovate to v44.155.4
(#2570)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This PR contains the following updates:
| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
| [renovate](https://renovatebot.com)
([source](https://redirect.github.com/renovatebot/renovate)) |
[`44.155.2` →
`44.164.9`](https://octochangelog.com/compare?repo=renovatebot%2Frenovate&from=44.155.2&to=44.164.9)
|

|

|
---
### Release Notes
renovatebot/renovate (renovate)
###
[`v44.164.9`](https://redirect.github.com/renovatebot/renovate/releases/tag/44.164.9)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/44.164.8...44.164.9)
##### Bug Fixes
- **platform/scm-manager:** use a fallback username in token clone URLs
([#47084](https://redirect.github.com/renovatebot/renovate/issues/47084))
([b634cdc](https://redirect.github.com/renovatebot/renovate/commit/b634cdc0975d424fdebe42a5898bf28edafa4732))
###
[`v44.164.8`](https://redirect.github.com/renovatebot/renovate/releases/tag/44.164.8)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/44.164.7...44.164.8)
##### Bug Fixes
- **util/exec:** pick tool releases compatible with their parent tool
version
([#47090](https://redirect.github.com/renovatebot/renovate/issues/47090))
([df201a9](https://redirect.github.com/renovatebot/renovate/commit/df201a98ff42af420971217588d1b4cb563c6a3b))
###
[`v44.164.7`](https://redirect.github.com/renovatebot/renovate/releases/tag/44.164.7)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/44.164.6...44.164.7)
##### Bug Fixes
- **deps:** update renovate-base-image to v13.131.2 (main)
([#47094](https://redirect.github.com/renovatebot/renovate/issues/47094))
([df917bb](https://redirect.github.com/renovatebot/renovate/commit/df917bbcd9c994840dc664ae41a5486176d6c1f8))
##### Miscellaneous Chores
- **deps:** update zizmor (main)
([#47095](https://redirect.github.com/renovatebot/renovate/issues/47095))
([501a2a0](https://redirect.github.com/renovatebot/renovate/commit/501a2a0f429eccf7993a2cff4d6dfe3d6d3980f6))
###
[`v44.164.6`](https://redirect.github.com/renovatebot/renovate/releases/tag/44.164.6)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/44.164.5...44.164.6)
##### Build System
- **deps:** update dependency cronstrue to v3.31.0 (main)
([#47091](https://redirect.github.com/renovatebot/renovate/issues/47091))
([47886b6](https://redirect.github.com/renovatebot/renovate/commit/47886b673a8393f0979c511cea9941c9afef6595))
###
[`v44.164.5`](https://redirect.github.com/renovatebot/renovate/releases/tag/44.164.5)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/44.164.4...44.164.5)
##### Bug Fixes
- **workers/repository:** pass `constraints` correctly when applying
`postUpgradeTasks`
([#47069](https://redirect.github.com/renovatebot/renovate/issues/47069))
([08cb221](https://redirect.github.com/renovatebot/renovate/commit/08cb221f4aa2b246eab35e9e4cfd4b2ad21144ee)),
closes
[#47068](https://redirect.github.com/renovatebot/renovate/issues/47068)
[#43633](https://redirect.github.com/renovatebot/renovate/issues/43633)
###
[`v44.164.4`](https://redirect.github.com/renovatebot/renovate/releases/tag/44.164.4)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/44.164.3...44.164.4)
##### Bug Fixes
- **util/git:** use non-empty passwords for token credentials on more
platforms
([#47085](https://redirect.github.com/renovatebot/renovate/issues/47085))
([969b3cb](https://redirect.github.com/renovatebot/renovate/commit/969b3cb162755974958a1963bbb79e3951f693f1))
###
[`v44.164.3`](https://redirect.github.com/renovatebot/renovate/releases/tag/44.164.3)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/44.164.2...44.164.3)
##### Bug Fixes
- **deps:** update renovate-base-image to v13.131.1 (main)
([#47078](https://redirect.github.com/renovatebot/renovate/issues/47078))
([a4628c6](https://redirect.github.com/renovatebot/renovate/commit/a4628c6819bbddc86a20b2be28fe2601baca4bb8))
##### Miscellaneous Chores
- **deps:** update dependency vite to v8.3.4 (main)
([#47082](https://redirect.github.com/renovatebot/renovate/issues/47082))
([b1a78f3](https://redirect.github.com/renovatebot/renovate/commit/b1a78f3c40a3636fec6a66f9328385e4972e06fe))
###
[`v44.164.2`](https://redirect.github.com/renovatebot/renovate/releases/tag/44.164.2)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/44.164.1...44.164.2)
##### Bug Fixes
- **platform/gitea,forgejo:** use a non-empty password in token clone
URLs
([#47076](https://redirect.github.com/renovatebot/renovate/issues/47076))
([99132db](https://redirect.github.com/renovatebot/renovate/commit/99132db4592b7adb244d706a582bf805b8cad6b3))
- **util/git:** use a non-empty password for token-only git credentials
([#47077](https://redirect.github.com/renovatebot/renovate/issues/47077))
([a9677c3](https://redirect.github.com/renovatebot/renovate/commit/a9677c36f458b39f1b70d316c8fbd8fa789aad29))
##### Miscellaneous Chores
- **deps:** update ghcr.io/containerbase/devcontainer docker tag to
v14.41.0 (main)
([#47074](https://redirect.github.com/renovatebot/renovate/issues/47074))
([c49d1be](https://redirect.github.com/renovatebot/renovate/commit/c49d1be4ca276dfae1307b313b925a5c550ec56f))
- **deps:** update github/codeql-action action to v4.39.0 (main)
([#47075](https://redirect.github.com/renovatebot/renovate/issues/47075))
([9602e06](https://redirect.github.com/renovatebot/renovate/commit/9602e069861c50c8a66584aed81171dbe7cfb37a))
###
[`v44.164.1`](https://redirect.github.com/renovatebot/renovate/releases/tag/44.164.1)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/44.164.0...44.164.1)
##### Bug Fixes
- **platform/github:** use `x-access-token` for personal access tokens
in clone URLs
([#47073](https://redirect.github.com/renovatebot/renovate/issues/47073))
([6cc8898](https://redirect.github.com/renovatebot/renovate/commit/6cc889803a44be232802143499d904799f58abc0))
###
[`v44.164.0`](https://redirect.github.com/renovatebot/renovate/releases/tag/44.164.0)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/44.163.0...44.164.0)
##### Features
- **datasource/go:** look up modules from a `go-import` `mod` proxy
([#47044](https://redirect.github.com/renovatebot/renovate/issues/47044))
([0876273](https://redirect.github.com/renovatebot/renovate/commit/0876273a37541cf41b7b831b75f7e03d0973bfc1))
###
[`v44.163.0`](https://redirect.github.com/renovatebot/renovate/releases/tag/44.163.0)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/44.162.0...44.163.0)
##### Features
- **deps:** update renovate-base-image to v13.131.0 (main)
([#47070](https://redirect.github.com/renovatebot/renovate/issues/47070))
([c6c548e](https://redirect.github.com/renovatebot/renovate/commit/c6c548ea929be0839a3117d2c687513364d98bfa))
###
[`v44.162.0`](https://redirect.github.com/renovatebot/renovate/releases/tag/44.162.0)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/44.161.2...44.162.0)
##### Features
- **util/http:** fall back to `go` host rules for `go-proxy` requests
([#47043](https://redirect.github.com/renovatebot/renovate/issues/47043))
([1dce2f8](https://redirect.github.com/renovatebot/renovate/commit/1dce2f8ed067f5dec31b5d6b32980eaba081711a))
###
[`v44.161.2`](https://redirect.github.com/renovatebot/renovate/releases/tag/44.161.2)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/44.161.1...44.161.2)
##### Bug Fixes
- **manager/poetry:** disable implicit PyPI when primary sources exist
([#46977](https://redirect.github.com/renovatebot/renovate/issues/46977))
([ab62282](https://redirect.github.com/renovatebot/renovate/commit/ab622825b595f1c62544ff7cfaf9672f0c965410))
##### Miscellaneous Chores
- **deps:** update zizmor (main)
([#47065](https://redirect.github.com/renovatebot/renovate/issues/47065))
([278f43f](https://redirect.github.com/renovatebot/renovate/commit/278f43fcec26a6bc34b7499a5f65277e4e754ad1))
###
[`v44.161.1`](https://redirect.github.com/renovatebot/renovate/releases/tag/44.161.1)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/44.161.0...44.161.1)
##### Bug Fixes
- **deps:** update renovate-base-image to v13.130.1 (main)
([#47062](https://redirect.github.com/renovatebot/renovate/issues/47062))
([2076755](https://redirect.github.com/renovatebot/renovate/commit/20767551404255f954569588dc1db726dfe791d6))
###
[`v44.161.0`](https://redirect.github.com/renovatebot/renovate/releases/tag/44.161.0)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/44.160.1...44.161.0)
##### Features
- **deps:** update renovate-base-image to v13.130.0 (main)
([#47058](https://redirect.github.com/renovatebot/renovate/issues/47058))
([17eb8c9](https://redirect.github.com/renovatebot/renovate/commit/17eb8c9fe435013e9c16c3cc835dc6fa2df5191f))
##### Miscellaneous Chores
- **deps:** update ghcr.io/containerbase/devcontainer docker tag to
v14.40.0 (main)
([#47057](https://redirect.github.com/renovatebot/renovate/issues/47057))
([1f158f6](https://redirect.github.com/renovatebot/renovate/commit/1f158f6b01b88b85b93670a7d03d3d7f68f312cd))
###
[`v44.160.1`](https://redirect.github.com/renovatebot/renovate/releases/tag/44.160.1)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/44.160.0...44.160.1)
##### Miscellaneous Chores
- **deps:** update ghcr.io/containerbase/devcontainer docker tag to
v14.39.0 (main)
([#47055](https://redirect.github.com/renovatebot/renovate/issues/47055))
([69e9441](https://redirect.github.com/renovatebot/renovate/commit/69e944155456f95e3cec3e3d0ebbefc448d65d21))
##### Build System
- **deps:** update dependency google-auth-library to v11.2.0 (main)
([#47056](https://redirect.github.com/renovatebot/renovate/issues/47056))
([e2c5336](https://redirect.github.com/renovatebot/renovate/commit/e2c533675ea7dc6cc56dc94f5c72904172c1128c))
###
[`v44.160.0`](https://redirect.github.com/renovatebot/renovate/releases/tag/44.160.0)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/44.159.0...44.160.0)
##### Features
- **deps:** update renovate-base-image to v13.129.0 (main)
([#47054](https://redirect.github.com/renovatebot/renovate/issues/47054))
([135919f](https://redirect.github.com/renovatebot/renovate/commit/135919fed8b4010bcf73afd7e1bae728c8df2c21))
###
[`v44.159.0`](https://redirect.github.com/renovatebot/renovate/releases/tag/44.159.0)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/44.158.3...44.159.0)
##### Features
- **deps:** update renovate-base-image to v13.128.0 (main)
([#47053](https://redirect.github.com/renovatebot/renovate/issues/47053))
([7819f72](https://redirect.github.com/renovatebot/renovate/commit/7819f7288d13a4b656382302be71a930fa322fba))
###
[`v44.158.3`](https://redirect.github.com/renovatebot/renovate/releases/tag/44.158.3)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/44.158.2...44.158.3)
##### Bug Fixes
- **deps:** update dependency github/gh-actions-lock to v0.2.0 (main)
([#46976](https://redirect.github.com/renovatebot/renovate/issues/46976))
([129f078](https://redirect.github.com/renovatebot/renovate/commit/129f078880b8daa7fc5aa018ca150f0b1d96e649))
###
[`v44.158.2`](https://redirect.github.com/renovatebot/renovate/releases/tag/44.158.2)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/44.158.1...44.158.2)
##### Miscellaneous Chores
- **deps:** update ghcr.io/containerbase/devcontainer docker tag to
v14.38.0 (main)
([#47051](https://redirect.github.com/renovatebot/renovate/issues/47051))
([943658a](https://redirect.github.com/renovatebot/renovate/commit/943658add5e5984cac7d44c8d402848a12060343))
##### Tests
- **manager/github-actions:** update pinned version of `gh actions-lock`
via Renovate
([#46987](https://redirect.github.com/renovatebot/renovate/issues/46987))
([fc4719b](https://redirect.github.com/renovatebot/renovate/commit/fc4719beca3b9f40d5f711b1f9464187f6b041cf))
##### Build System
- **deps:** update dependency node to v24.22.0 (main)
([#47050](https://redirect.github.com/renovatebot/renovate/issues/47050))
([272121d](https://redirect.github.com/renovatebot/renovate/commit/272121dfb06693237688f0e9ac4ad26f9a403e58))
###
[`v44.158.1`](https://redirect.github.com/renovatebot/renovate/releases/tag/44.158.1)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/44.158.0...44.158.1)
##### Miscellaneous Chores
- **deps:** update ghcr.io/containerbase/devcontainer docker tag to
v14.37.0 (main)
([#47039](https://redirect.github.com/renovatebot/renovate/issues/47039))
([6970c0b](https://redirect.github.com/renovatebot/renovate/commit/6970c0b4cf943b58d6a48e60dd573bd3b9b8137d))
##### Build System
- **deps:** update node.js to v24.22.0 (main)
([#47042](https://redirect.github.com/renovatebot/renovate/issues/47042))
([8fb6dd6](https://redirect.github.com/renovatebot/renovate/commit/8fb6dd6b1bc15cf182711247d4c534d6a1a55bfe))
###
[`v44.158.0`](https://redirect.github.com/renovatebot/renovate/releases/tag/44.158.0)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/44.157.1...44.158.0)
##### Features
- **deps:** update renovate-base-image to v13.126.0 (main)
([#47037](https://redirect.github.com/renovatebot/renovate/issues/47037))
([1e3a80d](https://redirect.github.com/renovatebot/renovate/commit/1e3a80dc6bc15b197439625605543e7816c27a91))
###
[`v44.157.1`](https://redirect.github.com/renovatebot/renovate/releases/tag/44.157.1)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/44.157.0...44.157.1)
##### Bug Fixes
- **prune:** refresh PR state before autoclosing
([#46518](https://redirect.github.com/renovatebot/renovate/issues/46518))
([5b9a6b6](https://redirect.github.com/renovatebot/renovate/commit/5b9a6b62c505c1e4cecdc903864ec2031f56e28c))
##### Miscellaneous Chores
- **deps:** update ghcr.io/containerbase/devcontainer docker tag to
v14.36.0 (main)
([#47029](https://redirect.github.com/renovatebot/renovate/issues/47029))
([b2e0191](https://redirect.github.com/renovatebot/renovate/commit/b2e0191565b9eecbb524eaac65798c5de2db1348))
###
[`v44.157.0`](https://redirect.github.com/renovatebot/renovate/releases/tag/44.157.0)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/44.156.3...44.157.0)
##### Features
- **deps:** update renovate-base-image to v13.125.0 (main)
([#47030](https://redirect.github.com/renovatebot/renovate/issues/47030))
([0de398e](https://redirect.github.com/renovatebot/renovate/commit/0de398e44d745e7eff0acb1605e017d1e72fbbc4))
##### Tests
- **json-schema:** extend timeout in tests
([#47033](https://redirect.github.com/renovatebot/renovate/issues/47033))
([527394e](https://redirect.github.com/renovatebot/renovate/commit/527394e94f918fa39f9fc8b93160a77c67aaf55c))
- **lint:** require hook timeouts to be in sync across files
([#47035](https://redirect.github.com/renovatebot/renovate/issues/47035))
([c91157e](https://redirect.github.com/renovatebot/renovate/commit/c91157e8548aeccfb87f52ce21ac89b61ce12455))
##### Build System
- **deps:** update dependency
[@renovatebot/pgp](https://redirect.github.com/renovatebot/pgp)
to v2.0.3 (main)
([#47032](https://redirect.github.com/renovatebot/renovate/issues/47032))
([9857967](https://redirect.github.com/renovatebot/renovate/commit/985796778abaeff517c3e140f21c523f4273f7fe))
###
[`v44.156.3`](https://redirect.github.com/renovatebot/renovate/releases/tag/44.156.3)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/44.156.2...44.156.3)
##### Bug Fixes
- **datasource/go:** treat modules with `go` host rule credentials as
private
([#47031](https://redirect.github.com/renovatebot/renovate/issues/47031))
([28ed2ee](https://redirect.github.com/renovatebot/renovate/commit/28ed2ee25ee2eac85fc34a7f8f9a39f651a1e3e0))
###
[`v44.156.2`](https://redirect.github.com/renovatebot/renovate/releases/tag/44.156.2)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/44.156.1...44.156.2)
##### Bug Fixes
- **config:** document where `mode` can be used
([#46697](https://redirect.github.com/renovatebot/renovate/issues/46697))
([9ccdc69](https://redirect.github.com/renovatebot/renovate/commit/9ccdc693b03a8fa848ad00bd08684857337ddf39)),
closes
[#43020](https://redirect.github.com/renovatebot/renovate/issues/43020)
- **config:** document where our artifact update options can be used
([#46699](https://redirect.github.com/renovatebot/renovate/issues/46699))
([3fe646d](https://redirect.github.com/renovatebot/renovate/commit/3fe646d83a069fb7c4fc1744b641a178fc1a9676)),
closes
[#43020](https://redirect.github.com/renovatebot/renovate/issues/43020)
- **config:** document where our issue-only options can be used
([#46698](https://redirect.github.com/renovatebot/renovate/issues/46698))
([ead1d7e](https://redirect.github.com/renovatebot/renovate/commit/ead1d7ef3ab59749fd7ffe4a3932a124fad3fb34)),
closes
[#43020](https://redirect.github.com/renovatebot/renovate/issues/43020)
##### Tests
- **json-schema:** extend timeout in tests
([#47028](https://redirect.github.com/renovatebot/renovate/issues/47028))
([a9e3dbe](https://redirect.github.com/renovatebot/renovate/commit/a9e3dbec3c468883888d564ac5f124130a940dc7))
###
[`v44.156.1`](https://redirect.github.com/renovatebot/renovate/releases/tag/44.156.1)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/44.156.0...44.156.1)
##### Bug Fixes
- **config:** document where file matching options can be used
([#46695](https://redirect.github.com/renovatebot/renovate/issues/46695))
([e79dd16](https://redirect.github.com/renovatebot/renovate/commit/e79dd1686725837120e463d9624be7cf27818642)),
closes
[#43020](https://redirect.github.com/renovatebot/renovate/issues/43020)
- **config:** document where our automerge and grouping options can be
used
([#46692](https://redirect.github.com/renovatebot/renovate/issues/46692))
([415e46b](https://redirect.github.com/renovatebot/renovate/commit/415e46bb3057fbb9807b4ea02e9503951be2091d)),
closes
[#43020](https://redirect.github.com/renovatebot/renovate/issues/43020)
- **config:** document where rate limits can be used
([#46696](https://redirect.github.com/renovatebot/renovate/issues/46696))
([677e621](https://redirect.github.com/renovatebot/renovate/commit/677e62193142067f996be741fe24dab76b137bbc)),
closes
[#43020](https://redirect.github.com/renovatebot/renovate/issues/43020)
###
[`v44.156.0`](https://redirect.github.com/renovatebot/renovate/releases/tag/44.156.0)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/44.155.8...44.156.0)
##### Features
- **deps:** update renovate-base-image to v13.122.0 (main)
([#47026](https://redirect.github.com/renovatebot/renovate/issues/47026))
([0eb92be](https://redirect.github.com/renovatebot/renovate/commit/0eb92be53aad7e01543e955a1820932c774fa2c7))
##### Miscellaneous Chores
- **deps:** update dependency astral-sh/uv to v0.13.1 (main)
([#47024](https://redirect.github.com/renovatebot/renovate/issues/47024))
([53b419b](https://redirect.github.com/renovatebot/renovate/commit/53b419bf72501f1075eba5692f44d2df0b2c4fc3))
- **deps:** update dependency uv to v0.13.1 (main)
([#47025](https://redirect.github.com/renovatebot/renovate/issues/47025))
([1d6dd52](https://redirect.github.com/renovatebot/renovate/commit/1d6dd52dd18d6326bc013c5483d4606eaaa611e9))
###
[`v44.155.8`](https://redirect.github.com/renovatebot/renovate/releases/tag/44.155.8)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/44.155.7...44.155.8)
##### Build System
- **deps:** update dependency cronstrue to v3.30.0 (main)
([#47021](https://redirect.github.com/renovatebot/renovate/issues/47021))
([754c581](https://redirect.github.com/renovatebot/renovate/commit/754c581a9635c33efceff0efc2b2dd64064d940f))
###
[`v44.155.7`](https://redirect.github.com/renovatebot/renovate/releases/tag/44.155.7)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/44.155.6...44.155.7)
##### Miscellaneous Chores
- **deps:** update dependency katex@>=0.11.0 <0.18.2 to v0.19.0 (main)
([#47018](https://redirect.github.com/renovatebot/renovate/issues/47018))
([5c074fd](https://redirect.github.com/renovatebot/renovate/commit/5c074fd6edd01fd662396eb897c05c9338289036))
- **deps:** update dependency shell-quote@>=1.8.4 <1.11.0 to v1.12.0
(main)
([#47019](https://redirect.github.com/renovatebot/renovate/issues/47019))
([7c9f750](https://redirect.github.com/renovatebot/renovate/commit/7c9f750150ba023b41a78863f1dc4db18cab74c7))
##### Build System
- **deps:** update dependency execa to v10.1.0 (main)
([#47016](https://redirect.github.com/renovatebot/renovate/issues/47016))
([bf10afc](https://redirect.github.com/renovatebot/renovate/commit/bf10afc01649113fc4a2a438af6817dfef66030d))
- **deps:** update opentelemetry-js-contrib monorepo (main)
([#47015](https://redirect.github.com/renovatebot/renovate/issues/47015))
([2985b37](https://redirect.github.com/renovatebot/renovate/commit/2985b37179a191d769bdadebb2e7017572d7c166))
###
[`v44.155.6`](https://redirect.github.com/renovatebot/renovate/releases/tag/44.155.6)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/44.155.5...44.155.6)
##### Bug Fixes
- **deps:** override transitive dependencies flagged by pnpm audit
([#46996](https://redirect.github.com/renovatebot/renovate/issues/46996))
([66c56b5](https://redirect.github.com/renovatebot/renovate/commit/66c56b514f1d25495520fc93be1e0c9c1be1cc5a))
###
[`v44.155.5`](https://redirect.github.com/renovatebot/renovate/releases/tag/44.155.5)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/44.155.4...44.155.5)
##### Bug Fixes
- **http:** share concurrent identical cache provider requests
([#46627](https://redirect.github.com/renovatebot/renovate/issues/46627))
([4dc30ea](https://redirect.github.com/renovatebot/renovate/commit/4dc30ea9bc69baea806b4ef20da9dcad1f437f67))
###
[`v44.155.4`](https://redirect.github.com/renovatebot/renovate/releases/tag/44.155.4)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/44.155.3...44.155.4)
##### Build System
- **deps:** update opentelemetry-js monorepo (main)
([#47008](https://redirect.github.com/renovatebot/renovate/issues/47008))
([e6e03fd](https://redirect.github.com/renovatebot/renovate/commit/e6e03fdf2f7f5350b548922b50d4126bfa9020e2))
###
[`v44.155.3`](https://redirect.github.com/renovatebot/renovate/releases/tag/44.155.3)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/44.155.2...44.155.3)
##### Bug Fixes
- **workers/reconfigure:** pass default branch to extraction config
([#46997](https://redirect.github.com/renovatebot/renovate/issues/46997))
([5a3bfc0](https://redirect.github.com/renovatebot/renovate/commit/5a3bfc02372185b8ef89de5efe1d7bf9574130b2))
##### Documentation
- Correct platform feature support table for Dependency Dashboard
([#46777](https://redirect.github.com/renovatebot/renovate/issues/46777))
([109fc99](https://redirect.github.com/renovatebot/renovate/commit/109fc99c4c6c643a1f2b37073dd315c8a21d3ace))
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/prometheus/client_java).
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
.mise/locks/npm-renovate/44.82.0~026f02c4/package.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.mise/locks/npm-renovate/44.82.0~026f02c4/package.json b/.mise/locks/npm-renovate/44.82.0~026f02c4/package.json
index a0efad07eb..f8f147bfb1 100644
--- a/.mise/locks/npm-renovate/44.82.0~026f02c4/package.json
+++ b/.mise/locks/npm-renovate/44.82.0~026f02c4/package.json
@@ -7,6 +7,6 @@
}
},
"dependencies": {
- "renovate": "44.155.2"
+ "renovate": "44.164.9"
}
}
From d9babf193374331f5e7d9ea73e6b97f1b2c9891d Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Mon, 19 Oct 2026 10:10:44 +0000
Subject: [PATCH 252/255] chore(deps): update micrometer-metrics/micrometer
digest to 29cfb5c (#2574)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This PR contains the following updates:
| Package | Update | Change |
|---|---|---|
| micrometer-metrics/micrometer | digest | `b1b0dbf` → `29cfb5c` |
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- "on sunday"
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/prometheus/client_java).
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
.github/workflows/micrometer-compatibility.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/micrometer-compatibility.yml b/.github/workflows/micrometer-compatibility.yml
index df9a94e8fe..16f44947a4 100644
--- a/.github/workflows/micrometer-compatibility.yml
+++ b/.github/workflows/micrometer-compatibility.yml
@@ -25,7 +25,7 @@ jobs:
# Follow-up: https://github.com/prometheus/client_java/issues/2182
repository: micrometer-metrics/micrometer
# renovate: datasource=git-refs depName=micrometer-metrics/micrometer packageName=https://github.com/micrometer-metrics/micrometer currentValue=main
- ref: b1b0dbffb54e83ba613c8df1ad4d7cc7cf666eea
+ ref: 29cfb5cf7e251540b7331ed67665bd3ed99c7ad4
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
From 59f50f197ad113bc8ba236fca6fae86aa308598e Mon Sep 17 00:00:00 2001
From: Gregor Zeitlinger
Date: Mon, 19 Oct 2026 12:58:15 +0200
Subject: [PATCH 253/255] ci: speed up PR compatibility checks (#2567)
I am reducing PR feedback time for compatibility checks.
- Run one representative JMX Exporter Paramixel smoke test instead of
the full compatibility suite. This reduced the JMX Exporter check from
about 18m46s to 3m56s in observed runs.
- Build only the native-test reactor and its dependencies instead of the
full Maven reactor. This reduced the native-tests job from about 8m29s
to 5m35s in observed runs.
The full JMX Exporter compatibility matrix is intentionally not run as
part of the PR check.
Signed-off-by: Gregor Zeitlinger
---
.mise/lib/jmx_exporter_compat.py | 5 +++--
mise.toml | 2 +-
2 files changed, 4 insertions(+), 3 deletions(-)
diff --git a/.mise/lib/jmx_exporter_compat.py b/.mise/lib/jmx_exporter_compat.py
index 600c9578c7..8a7b54a033 100755
--- a/.mise/lib/jmx_exporter_compat.py
+++ b/.mise/lib/jmx_exporter_compat.py
@@ -153,8 +153,8 @@ def run_maven_test(
prom_version = get_prom_version()
# Build the full reactor (including the integration_test_suite) the same way
# run-quick-test.sh does, but against our locally installed io.prometheus
- # artifacts. The pinned distribution env vars keep this to the quick (single
- # cell) matrix rather than the full smoke-test matrix.
+ # artifacts. This PR check intentionally runs only one representative smoke
+ # test; the pinned distribution env vars also keep it to a single matrix cell.
env = {**os.environ, **quick_test_images(jmx_exporter_dir)}
cmd = [
"./mvnw",
@@ -162,6 +162,7 @@ def run_maven_test(
"clean",
"install",
f"-Dprometheus.metrics.version={prom_version}",
+ "-Dparamixel.match.class.regex=io.prometheus.jmx.test.core.BasicTest",
f"-Dparamixel.parallelism={os.cpu_count() or 1}",
"-Djacoco.skip=true",
]
diff --git a/mise.toml b/mise.toml
index 80c4242ef0..ba3f3e3c07 100644
--- a/mise.toml
+++ b/mise.toml
@@ -74,10 +74,10 @@ run = "./mvnw install -DskipTests -Dcoverage.skip=true"
[tasks.native-test]
description = "Run GraalVM native tests"
-depends = "build"
tools.java = "oracle-graalvm-25"
# Native Test uses Surefire, so explicitly select the Failsafe-named test class.
run = '''
+./mvnw -pl integration-tests/it-spring-boot-smoke-test -am install -DskipTests -Dcoverage.skip=true
cd "$MISE_CONFIG_ROOT/integration-tests/it-spring-boot-smoke-test"
"$MISE_CONFIG_ROOT/mvnw" test -PnativeTest -Dtest=ApplicationIT
'''
From cbc983d6dab9fa972b148d10bce1ea40e9138543 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Mon, 19 Oct 2026 13:15:44 +0200
Subject: [PATCH 254/255] chore(deps): update jdx/mise-action action to v5.2.1
(#2576)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [jdx/mise-action](https://redirect.github.com/jdx/mise-action) |
action | patch | `v5.2.0` → `v5.2.1` |
---
### Release Notes
jdx/mise-action
###
[`v5.2.1`](https://redirect.github.com/jdx/mise-action/compare/v5.2.0...v5.2.1)
[Compare
Source](https://redirect.github.com/jdx/mise-action/compare/v5.2.0...v5.2.1)
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/prometheus/client_java).
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
.github/workflows/acceptance-tests.yml | 2 +-
.github/workflows/api-diff.yml | 2 +-
.github/workflows/build.yml | 2 +-
.github/workflows/bump-api-diff-baseline.yml | 2 +-
.github/workflows/generate-protobuf.yml | 2 +-
.github/workflows/github-pages.yaml | 2 +-
.github/workflows/java-version-matrix-tests.yml | 2 +-
.github/workflows/jmx-exporter-compatibility.yml | 2 +-
.github/workflows/lint.yml | 2 +-
.github/workflows/micrometer-compatibility.yml | 2 +-
.github/workflows/native-tests.yml | 2 +-
.github/workflows/nightly-benchmarks.yml | 2 +-
.github/workflows/pr-benchmarks.yml | 2 +-
.github/workflows/regenerate-api-diff-otel.yml | 2 +-
.github/workflows/release.yml | 2 +-
.github/workflows/test-release-build.yml | 2 +-
16 files changed, 16 insertions(+), 16 deletions(-)
diff --git a/.github/workflows/acceptance-tests.yml b/.github/workflows/acceptance-tests.yml
index 4a9c9de74d..890b9eadb3 100644
--- a/.github/workflows/acceptance-tests.yml
+++ b/.github/workflows/acceptance-tests.yml
@@ -13,7 +13,7 @@ jobs:
with:
persist-credentials: false
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
- - uses: jdx/mise-action@9b200bcecbfd6303e69a4a261b2e09e3757440a7 # v5.2.0
+ - uses: jdx/mise-action@fc42bcc7ddbf51124c30f95a877a0c5168a3bfde # v5.2.1
with:
version: v2026.10.14
sha256: 50be7185bcf75929f01cc5630276bcb43ca367f7c5b176e2580903d28c611dc4
diff --git a/.github/workflows/api-diff.yml b/.github/workflows/api-diff.yml
index 8461f89e64..91e0d4dd62 100644
--- a/.github/workflows/api-diff.yml
+++ b/.github/workflows/api-diff.yml
@@ -32,7 +32,7 @@ jobs:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
with:
persist-credentials: false
- - uses: jdx/mise-action@9b200bcecbfd6303e69a4a261b2e09e3757440a7 # v5.2.0
+ - uses: jdx/mise-action@fc42bcc7ddbf51124c30f95a877a0c5168a3bfde # v5.2.1
with:
version: v2026.10.14
sha256: 50be7185bcf75929f01cc5630276bcb43ca367f7c5b176e2580903d28c611dc4
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index ad09652e26..d1a778b207 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -12,7 +12,7 @@ jobs:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
with:
persist-credentials: false
- - uses: jdx/mise-action@9b200bcecbfd6303e69a4a261b2e09e3757440a7 # v5.2.0
+ - uses: jdx/mise-action@fc42bcc7ddbf51124c30f95a877a0c5168a3bfde # v5.2.1
with:
version: v2026.10.14
sha256: 50be7185bcf75929f01cc5630276bcb43ca367f7c5b176e2580903d28c611dc4
diff --git a/.github/workflows/bump-api-diff-baseline.yml b/.github/workflows/bump-api-diff-baseline.yml
index f7d41d714d..1f8d306e7b 100644
--- a/.github/workflows/bump-api-diff-baseline.yml
+++ b/.github/workflows/bump-api-diff-baseline.yml
@@ -33,7 +33,7 @@ jobs:
with:
ref: ${{ env.SNAPSHOT_BRANCH }}
persist-credentials: true
- - uses: jdx/mise-action@9b200bcecbfd6303e69a4a261b2e09e3757440a7 # v5.2.0
+ - uses: jdx/mise-action@fc42bcc7ddbf51124c30f95a877a0c5168a3bfde # v5.2.1
with:
version: v2026.10.14
sha256: 50be7185bcf75929f01cc5630276bcb43ca367f7c5b176e2580903d28c611dc4
diff --git a/.github/workflows/generate-protobuf.yml b/.github/workflows/generate-protobuf.yml
index 2309402881..eee0201e2f 100644
--- a/.github/workflows/generate-protobuf.yml
+++ b/.github/workflows/generate-protobuf.yml
@@ -18,7 +18,7 @@ jobs:
with:
ref: ${{ github.ref }}
persist-credentials: false
- - uses: jdx/mise-action@9b200bcecbfd6303e69a4a261b2e09e3757440a7 # v5.2.0
+ - uses: jdx/mise-action@fc42bcc7ddbf51124c30f95a877a0c5168a3bfde # v5.2.1
with:
version: v2026.10.14
sha256: 50be7185bcf75929f01cc5630276bcb43ca367f7c5b176e2580903d28c611dc4
diff --git a/.github/workflows/github-pages.yaml b/.github/workflows/github-pages.yaml
index e3b77773f3..0032c75c5e 100644
--- a/.github/workflows/github-pages.yaml
+++ b/.github/workflows/github-pages.yaml
@@ -37,7 +37,7 @@ jobs:
persist-credentials: false
fetch-tags: "true"
fetch-depth: 0
- - uses: jdx/mise-action@9b200bcecbfd6303e69a4a261b2e09e3757440a7 # v5.2.0
+ - uses: jdx/mise-action@fc42bcc7ddbf51124c30f95a877a0c5168a3bfde # v5.2.1
with:
version: v2026.10.14
sha256: 50be7185bcf75929f01cc5630276bcb43ca367f7c5b176e2580903d28c611dc4
diff --git a/.github/workflows/java-version-matrix-tests.yml b/.github/workflows/java-version-matrix-tests.yml
index fa9a6df348..2747bd2172 100644
--- a/.github/workflows/java-version-matrix-tests.yml
+++ b/.github/workflows/java-version-matrix-tests.yml
@@ -31,7 +31,7 @@ jobs:
persist-credentials: false
- name: Set up mise
- uses: jdx/mise-action@9b200bcecbfd6303e69a4a261b2e09e3757440a7 # v5.2.0
+ uses: jdx/mise-action@fc42bcc7ddbf51124c30f95a877a0c5168a3bfde # v5.2.1
with:
version: v2026.10.14
sha256: 50be7185bcf75929f01cc5630276bcb43ca367f7c5b176e2580903d28c611dc4
diff --git a/.github/workflows/jmx-exporter-compatibility.yml b/.github/workflows/jmx-exporter-compatibility.yml
index 6e8eed6146..135310a139 100644
--- a/.github/workflows/jmx-exporter-compatibility.yml
+++ b/.github/workflows/jmx-exporter-compatibility.yml
@@ -22,7 +22,7 @@ jobs:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
with:
persist-credentials: false
- - uses: jdx/mise-action@9b200bcecbfd6303e69a4a261b2e09e3757440a7 # v5.2.0
+ - uses: jdx/mise-action@fc42bcc7ddbf51124c30f95a877a0c5168a3bfde # v5.2.1
with:
version: v2026.10.14
sha256: 50be7185bcf75929f01cc5630276bcb43ca367f7c5b176e2580903d28c611dc4
diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml
index 3f19dd0f14..099ca1683d 100644
--- a/.github/workflows/lint.yml
+++ b/.github/workflows/lint.yml
@@ -21,7 +21,7 @@ jobs:
fetch-depth: 0 # needed for git diff --merge-base in lint:links
- name: Setup mise
- uses: jdx/mise-action@9b200bcecbfd6303e69a4a261b2e09e3757440a7 # v5.2.0
+ uses: jdx/mise-action@fc42bcc7ddbf51124c30f95a877a0c5168a3bfde # v5.2.1
with:
version: v2026.10.14
sha256: 50be7185bcf75929f01cc5630276bcb43ca367f7c5b176e2580903d28c611dc4
diff --git a/.github/workflows/micrometer-compatibility.yml b/.github/workflows/micrometer-compatibility.yml
index 16f44947a4..7b9591ed64 100644
--- a/.github/workflows/micrometer-compatibility.yml
+++ b/.github/workflows/micrometer-compatibility.yml
@@ -30,7 +30,7 @@ jobs:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false
- - uses: jdx/mise-action@9b200bcecbfd6303e69a4a261b2e09e3757440a7 # v5.2.0
+ - uses: jdx/mise-action@fc42bcc7ddbf51124c30f95a877a0c5168a3bfde # v5.2.1
with:
version: v2026.10.14
sha256: 50be7185bcf75929f01cc5630276bcb43ca367f7c5b176e2580903d28c611dc4
diff --git a/.github/workflows/native-tests.yml b/.github/workflows/native-tests.yml
index fb516f9ead..62078cedce 100644
--- a/.github/workflows/native-tests.yml
+++ b/.github/workflows/native-tests.yml
@@ -13,7 +13,7 @@ jobs:
with:
persist-credentials: false
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
- - uses: jdx/mise-action@9b200bcecbfd6303e69a4a261b2e09e3757440a7 # v5.2.0
+ - uses: jdx/mise-action@fc42bcc7ddbf51124c30f95a877a0c5168a3bfde # v5.2.1
with:
version: v2026.10.14
sha256: 50be7185bcf75929f01cc5630276bcb43ca367f7c5b176e2580903d28c611dc4
diff --git a/.github/workflows/nightly-benchmarks.yml b/.github/workflows/nightly-benchmarks.yml
index 4659776a22..30f9350c54 100644
--- a/.github/workflows/nightly-benchmarks.yml
+++ b/.github/workflows/nightly-benchmarks.yml
@@ -34,7 +34,7 @@ jobs:
fetch-depth: 0
- name: Setup mise
- uses: jdx/mise-action@9b200bcecbfd6303e69a4a261b2e09e3757440a7 # v5.2.0
+ uses: jdx/mise-action@fc42bcc7ddbf51124c30f95a877a0c5168a3bfde # v5.2.1
with:
version: v2026.10.14
sha256: 50be7185bcf75929f01cc5630276bcb43ca367f7c5b176e2580903d28c611dc4
diff --git a/.github/workflows/pr-benchmarks.yml b/.github/workflows/pr-benchmarks.yml
index ea971e6e7e..f549e29ca2 100644
--- a/.github/workflows/pr-benchmarks.yml
+++ b/.github/workflows/pr-benchmarks.yml
@@ -45,7 +45,7 @@ jobs:
fetch-depth: 0
- name: Setup mise
- uses: jdx/mise-action@9b200bcecbfd6303e69a4a261b2e09e3757440a7 # v5.2.0
+ uses: jdx/mise-action@fc42bcc7ddbf51124c30f95a877a0c5168a3bfde # v5.2.1
with:
version: v2026.10.14
sha256: 50be7185bcf75929f01cc5630276bcb43ca367f7c5b176e2580903d28c611dc4
diff --git a/.github/workflows/regenerate-api-diff-otel.yml b/.github/workflows/regenerate-api-diff-otel.yml
index 3c464c4b4a..c3d30a365e 100644
--- a/.github/workflows/regenerate-api-diff-otel.yml
+++ b/.github/workflows/regenerate-api-diff-otel.yml
@@ -18,7 +18,7 @@ jobs:
with:
ref: ${{ github.ref }}
persist-credentials: false
- - uses: jdx/mise-action@9b200bcecbfd6303e69a4a261b2e09e3757440a7 # v5.2.0
+ - uses: jdx/mise-action@fc42bcc7ddbf51124c30f95a877a0c5168a3bfde # v5.2.1
with:
version: v2026.10.14
sha256: 50be7185bcf75929f01cc5630276bcb43ca367f7c5b176e2580903d28c611dc4
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index 6213b67753..2aa8be559c 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -72,7 +72,7 @@ jobs:
ref: ${{ inputs.tag }}
persist-credentials: false
- - uses: jdx/mise-action@9b200bcecbfd6303e69a4a261b2e09e3757440a7 # v5.2.0
+ - uses: jdx/mise-action@fc42bcc7ddbf51124c30f95a877a0c5168a3bfde # v5.2.1
with:
version: v2026.10.14
sha256: 50be7185bcf75929f01cc5630276bcb43ca367f7c5b176e2580903d28c611dc4
diff --git a/.github/workflows/test-release-build.yml b/.github/workflows/test-release-build.yml
index 13bb70ea8d..923a06cb66 100644
--- a/.github/workflows/test-release-build.yml
+++ b/.github/workflows/test-release-build.yml
@@ -18,7 +18,7 @@ jobs:
persist-credentials: false
fetch-tags: "true"
fetch-depth: 0
- - uses: jdx/mise-action@9b200bcecbfd6303e69a4a261b2e09e3757440a7 # v5.2.0
+ - uses: jdx/mise-action@fc42bcc7ddbf51124c30f95a877a0c5168a3bfde # v5.2.1
with:
version: v2026.10.14
sha256: 50be7185bcf75929f01cc5630276bcb43ca367f7c5b176e2580903d28c611dc4
From 16ee4972d1e960a6bcd7a868bc337e6943fd8c00 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Mon, 19 Oct 2026 13:17:03 +0200
Subject: [PATCH 255/255] fix(deps): update dependency renovate to v44.164.10
(#2577)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This PR contains the following updates:
| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
| [renovate](https://renovatebot.com)
([source](https://redirect.github.com/renovatebot/renovate)) |
[`44.164.9` →
`44.164.10`](https://octochangelog.com/compare?repo=renovatebot%2Frenovate&from=44.164.9&to=44.164.10)
|

|

|
---
### Release Notes
renovatebot/renovate (renovate)
###
[`v44.164.10`](https://redirect.github.com/renovatebot/renovate/releases/tag/44.164.10)
[Compare
Source](https://redirect.github.com/renovatebot/renovate/compare/44.164.9...44.164.10)
##### Bug Fixes
- **deps:** update renovate-base-image to v13.131.3 (main)
([#47100](https://redirect.github.com/renovatebot/renovate/issues/47100))
([530fb9c](https://redirect.github.com/renovatebot/renovate/commit/530fb9cf6a8fa0502537450ed142886be054ce48))
##### Miscellaneous Chores
- **deps:** update ghcr.io/containerbase/devcontainer docker tag to
v14.41.1 (main)
([#47099](https://redirect.github.com/renovatebot/renovate/issues/47099))
([fce5e50](https://redirect.github.com/renovatebot/renovate/commit/fce5e504890d4f91e2e89a3a46a3a59344f961dc))
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/prometheus/client_java).
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
.mise/locks/npm-renovate/44.82.0~026f02c4/package.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.mise/locks/npm-renovate/44.82.0~026f02c4/package.json b/.mise/locks/npm-renovate/44.82.0~026f02c4/package.json
index f8f147bfb1..0c0e3651eb 100644
--- a/.mise/locks/npm-renovate/44.82.0~026f02c4/package.json
+++ b/.mise/locks/npm-renovate/44.82.0~026f02c4/package.json
@@ -7,6 +7,6 @@
}
},
"dependencies": {
- "renovate": "44.164.9"
+ "renovate": "44.164.10"
}
}