Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: prometheus/client_java
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v1.6.0
Choose a base ref
...
head repository: prometheus/client_java
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: v1.6.1
Choose a head ref
  • 9 commits
  • 97 files changed
  • 3 contributors

Commits on Apr 27, 2026

  1. chore: fix release workflow dispatch repo resolution (#2057)

    ## What changed
    Pass `--repo "${GITHUB_REPOSITORY}"` to the `gh workflow run
    release.yml` call in `release-please.yml`.
    
    ## Why
    The `Release Please` workflow dispatch step runs without a checkout, so
    `gh` cannot infer the repository from `.git`. The failed run for
    `v1.6.0` stopped with `fatal: not a git repository` before `release.yml`
    was dispatched.
    
    ## Impact
    This allows the existing release workflow to be triggered from the
    `Release Please` job without adding an unnecessary checkout step.
    
    ## Validation
    - Inspected the failing Actions job `73146303246` and confirmed the
    dispatch step was the failure point.
    - Verified comparable repositories commonly pass `--repo` explicitly
    when dispatching workflows from Actions.
    - Ran `mise run lint` locally.
    
    ## Follow-up
    After this lands, `release.yml` can be manually dispatched with
    `tag=v1.6.0` to publish the existing tag.
    zeitlinger authored Apr 27, 2026
    Configuration menu
    Copy the full SHA
    29e9b01 View commit details
    Browse the repository at this point in the history
  2. chore(deps): update dependency lychee to v0.24.1 (#2048)

    This PR contains the following updates:
    
    | Package | Update | Change |
    |---|---|---|
    | [lychee](https://redirect.github.com/lycheeverse/lychee) | minor |
    `0.23.0` → `0.24.1` |
    
    ---
    
    ### Release Notes
    
    <details>
    <summary>lycheeverse/lychee (lychee)</summary>
    
    ###
    [`v0.24.1`](https://redirect.github.com/lycheeverse/lychee/releases/tag/lychee-v0.24.1)
    
    [Compare
    Source](https://redirect.github.com/lycheeverse/lychee/compare/lychee-v0.24.0...lychee-v0.24.1)
    
    **Breaking**: with v0.24.0 the structure of the released archive files
    has changed.
    
    ##### Fixed
    
    - Restore naming convention of released files
    ([#&#8203;2161](https://redirect.github.com/lycheeverse/lychee/issues/2161))
    - Fix Docker build
    ([#&#8203;2163](https://redirect.github.com/lycheeverse/lychee/issues/2163))
    
    ###
    [`v0.24.0`](https://redirect.github.com/lycheeverse/lychee/releases/tag/lychee-v0.24.0)
    
    [Compare
    Source](https://redirect.github.com/lycheeverse/lychee/compare/lychee-v0.23.0...lychee-v0.24.0)
    
    **Breaking**: in v0.24.0 the release names are scrambled. See v0.24.1
    where the previous naming convention are restored.
    **Breaking**: with v0.24.0 the structure of the released archive files
    has changed.
    
    ##### Added
    
    - Check text fragments
    ([#&#8203;2138](https://redirect.github.com/lycheeverse/lychee/pull/2138))
    - Allow bool flag merging
    ([#&#8203;2137](https://redirect.github.com/lycheeverse/lychee/pull/2137))
    - Show redirects & remaps
    ([#&#8203;2094](https://redirect.github.com/lycheeverse/lychee/pull/2094))
    - Hide progress bar if input is `stdin` only
    ([#&#8203;1938](https://redirect.github.com/lycheeverse/lychee/pull/1938))
    - Support sitemap.xml
    ([#&#8203;2071](https://redirect.github.com/lycheeverse/lychee/pull/2071))
    - Allow accepting timeouts
    ([#&#8203;2063](https://redirect.github.com/lycheeverse/lychee/pull/2063))
    - Support multiple config files
    ([#&#8203;2007](https://redirect.github.com/lycheeverse/lychee/pull/2007))
    - Show line & column numbers
    ([#&#8203;2056](https://redirect.github.com/lycheeverse/lychee/pull/2056))
    - Add JUnit format
    ([#&#8203;2066](https://redirect.github.com/lycheeverse/lychee/pull/2066))
    - Respect HTTP error codes in CLI inputs
    ([#&#8203;2101](https://redirect.github.com/lycheeverse/lychee/pull/2101))
    - Add shell completions for lychee
    ([#&#8203;1972](https://redirect.github.com/lycheeverse/lychee/pull/1972))
    - Document file format support
    ([#&#8203;2052](https://redirect.github.com/lycheeverse/lychee/pull/2052))
    - Increase value for --max-redirects
    ([#&#8203;2087](https://redirect.github.com/lycheeverse/lychee/pull/2087))
    
    ##### Fixed
    
    - Prevent 0 value for max-concurrency and threads
    ([#&#8203;2145](https://redirect.github.com/lycheeverse/lychee/pull/2145))
    - Use the remapped URI for the cache key
    ([#&#8203;1818](https://redirect.github.com/lycheeverse/lychee/pull/1818))
    ([#&#8203;2109](https://redirect.github.com/lycheeverse/lychee/pull/2109))
    - *(cli)* bump open files limit on macOS and Linux
    ([#&#8203;2106](https://redirect.github.com/lycheeverse/lychee/pull/2106))
    - Fix matching logic for glob hidden files
    ([#&#8203;2130](https://redirect.github.com/lycheeverse/lychee/pull/2130))
    - Fix output path not validated before the run
    ([#&#8203;2148](https://redirect.github.com/lycheeverse/lychee/pull/2148))
    - Fix double count
    ([#&#8203;2088](https://redirect.github.com/lycheeverse/lychee/pull/2088))
    - Prevent duplicate requests to the same URLs
    ([#&#8203;2067](https://redirect.github.com/lycheeverse/lychee/pull/2067))
    - Fix Windows Absolute Path Parsing and Remove HTTP Assumption
    ([#&#8203;1837](https://redirect.github.com/lycheeverse/lychee/pull/1837))
    
    ##### Other
    
    - Make website checker return Status always, rather than Result
    ([#&#8203;2140](https://redirect.github.com/lycheeverse/lychee/pull/2140))
    - Remove the `Redirect` and `Remapped` wrapper variants from the
    `Status` enum.
    ([#&#8203;2129](https://redirect.github.com/lycheeverse/lychee/pull/2129))
    - Allow root-dir that doesn't exist
    ([#&#8203;2127](https://redirect.github.com/lycheeverse/lychee/pull/2127))
    - Unify input URL fetching with the link-checker's HostPool
    ([#&#8203;2100](https://redirect.github.com/lycheeverse/lychee/pull/2100))
    - Unify Releases Across Operating Systems
    ([#&#8203;1957](https://redirect.github.com/lycheeverse/lychee/pull/1957))
    - Remove raw mode
    ([#&#8203;2086](https://redirect.github.com/lycheeverse/lychee/pull/2086))
    - Always show full config parse errors with full details in output
    ([#&#8203;2149](https://redirect.github.com/lycheeverse/lychee/pull/2149))
    - Add tests for the current state of "Checking a Local Folder with URL
    Remapping"
    ([#&#8203;1965](https://redirect.github.com/lycheeverse/lychee/pull/1965))
    - Move caching logic to cache
    ([#&#8203;2123](https://redirect.github.com/lycheeverse/lychee/pull/2123))
    - Support multiple config file formats and refactor config module
    ([#&#8203;2104](https://redirect.github.com/lycheeverse/lychee/pull/2104))
    - Never cache errors on disk
    - Report input source errors rather than tokio panics
    ([#&#8203;2074](https://redirect.github.com/lycheeverse/lychee/pull/2074))
    - Add WaitGroup for waiting for a dynamic set of tasks
    ([#&#8203;2046](https://redirect.github.com/lycheeverse/lychee/pull/2046))
    - \[**breaking**] add BaseInfo for resolving links, delete Base, cleanup
    utils
    ([#&#8203;2005](https://redirect.github.com/lycheeverse/lychee/pull/2005))
    
    </details>
    
    ---
    
    ### 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.
    
    ---
    
    - [ ] <!-- rebase-check -->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).
    
    <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xMzkuNyIsInVwZGF0ZWRJblZlciI6IjQzLjE0MS4zIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiXX0=-->
    
    Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
    renovate[bot] authored Apr 27, 2026
    Configuration menu
    Copy the full SHA
    37f89a0 View commit details
    Browse the repository at this point in the history
  3. chore(deps): update dependency mise to v2026.4.23 (#2053)

    This PR contains the following updates:
    
    | Package | Update | Change |
    |---|---|---|
    | [mise](https://redirect.github.com/jdx/mise) | patch | `v2026.4.18` →
    `v2026.4.23` |
    
    ---
    
    ### Release Notes
    
    <details>
    <summary>jdx/mise (mise)</summary>
    
    ###
    [`v2026.4.23`](https://redirect.github.com/jdx/mise/releases/tag/v2026.4.23):
    : Pre-releases, libc preference, and a Node musl fix
    
    [Compare
    Source](https://redirect.github.com/jdx/mise/compare/v2026.4.22...v2026.4.23)
    
    A patch release that adds a global `libc` preference and pre-release
    opt-in for `github:`/`aqua:` backends, alongside fixes for Node musl
    downloads, read-only system installs, and `mise prune` network hangs.
    
    #### Added
    
    - **(backend)** Per-tool `prerelease = true` opt-in for the `github:`
    and `aqua:` backends
    ([#&#8203;9329](https://redirect.github.com/jdx/mise/pull/9329)) by
    [@&#8203;jakedgy](https://redirect.github.com/jakedgy). When set, GitHub
    releases flagged `prerelease: true` show up in `mise ls-remote`,
    `latest` resolves against the full list including pre-releases, and
    fuzzy queries like `1.2` can match pre-release tags. Default behavior is
    unchanged; draft releases are still excluded.
    
      ```toml
      [tools]
      "github:myorg/mytool" = { version = "latest", prerelease = true }
      "aqua:owner/tool"     = { version = "latest", prerelease = true }
      ```
    
    - **(backend)** Global `libc` setting for selecting Linux precompiled
    binary variants
    ([#&#8203;9404](https://redirect.github.com/jdx/mise/pull/9404)) by
    [@&#8203;jdx](https://redirect.github.com/jdx). Accepts `musl`, `glibc`,
    or `gnu` and threads through `Platform::current()`/`PlatformTarget` so
    generic GitHub asset matching, aqua registry replacements (e.g.
    `unknown-linux-gnu` ↔ `unknown-linux-musl`), Bun, Python precompiled
    builds, Node, and vfox `envType` all honor the preference.
    
      ```sh
      export MISE_LIBC=musl
      ```
    
    #### Fixed
    
    - **(install)** Stop rewriting healthy runtime symlinks
    ([#&#8203;9410](https://redirect.github.com/jdx/mise/pull/9410)) by
    [@&#8203;jdx](https://redirect.github.com/jdx). The rebuild path was
    unconditionally `remove_all` + recreating every `latest -> X.Y.Z`
    symlink, which became a hard failure under the common Docker pattern
    where root populates `/usr/local/share/mise/installs/` at build time and
    a non-root user runs `mise install` at runtime. Healthy symlinks now
    take a no-op path; the read-only system dir is no longer touched. If a
    write is genuinely required and can't happen, the install fails loudly
    instead of silently leaving a stale `latest`.
    
    - **(node)** Route musl tarball URLs to `unofficial-builds.nodejs.org`
    ([#&#8203;9409](https://redirect.github.com/jdx/mise/pull/9409)) by
    [@&#8203;jdx](https://redirect.github.com/jdx). After
    [#&#8203;9404](https://redirect.github.com/jdx/mise/pull/9404) Node
    started appending `-musl` to filenames but kept routing through
    `nodejs.org/dist/` (which doesn't host them), causing 404s and lockfiles
    where the URL had a `-musl` suffix while the checksum was still pinned
    to the glibc tarball. The tarball URL and matching `SHASUMS256.txt` now
    come from the same host, and a custom `node.mirror_url` still passes
    through unchanged. Lockfile merging is also hardened to drop stale
    `checksum`/`size`/`url_api` when URLs disagree.
    
    - **(prune)** Skip remote version resolution for tracked configs
    ([#&#8203;9406](https://redirect.github.com/jdx/mise/pull/9406)) by
    [@&#8203;jdx](https://redirect.github.com/jdx). `mise prune` was hitting
    npm, the Go proxy, and the GitHub API to resolve tracked-config tool
    versions, which could hang on slow or failing registries. Since prune
    only protects *installed* versions from deletion, an `offline` flag is
    now threaded through `ResolveOptions` for prune. `mise upgrade` is
    unchanged and still queries fresh remote data. Closes
    [#&#8203;9405](https://redirect.github.com/jdx/mise/discussions/9405).
    
    - **(backend)** Allow unresolved `latest` opt-in
    ([#&#8203;9401](https://redirect.github.com/jdx/mise/pull/9401)) by
    [@&#8203;jdx](https://redirect.github.com/jdx). `latest` now falls back
    to an unresolved selector only when a backend's unfiltered remote
    version list is empty *and* the backend opts in via
    `unresolved_latest_version()`. `pipx` opts in for git-backed requests;
    backends that require concrete versions continue to fail rather than
    create literal `latest/` installs. If `minimum_release_age` filters all
    candidates out, mise still reports no matching version.
    
    - **(schema)** Allow array values in tool `additionalProperties`
    ([#&#8203;9400](https://redirect.github.com/jdx/mise/pull/9400)) by
    [@&#8203;JP-Ellis](https://redirect.github.com/JP-Ellis). Configs like
    `rust = { version = "1.77", components = ["rustfmt", "clippy"] }` are no
    longer flagged as invalid by linters such as tombi.
    
    #### Registry
    
    - Use aqua for `rumdl`
    ([#&#8203;9397](https://redirect.github.com/jdx/mise/pull/9397)) by
    [@&#8203;scop](https://redirect.github.com/scop)
    - Add `llmfit`
    ([#&#8203;9412](https://redirect.github.com/jdx/mise/pull/9412)) by
    [@&#8203;jylenhof](https://redirect.github.com/jylenhof)
    
    #### New Contributors
    
    - [@&#8203;JP-Ellis](https://redirect.github.com/JP-Ellis) made their
    first contribution in
    [#&#8203;9400](https://redirect.github.com/jdx/mise/pull/9400)
    
    **Full Changelog**:
    <jdx/mise@v2026.4.22...v2026.4.23>
    
    ###
    [`v2026.4.22`](https://redirect.github.com/jdx/mise/releases/tag/v2026.4.22):
    : Repaired latest resolution and clearer deps output
    
    [Compare
    Source](https://redirect.github.com/jdx/mise/compare/v2026.4.21...v2026.4.22)
    
    A focused patch release that repairs two `@latest` regressions, gives
    `mise deps` clearer per-provider output labels, and renames the
    `install_before` setting to `minimum_release_age` to match the wider
    ecosystem.
    
    #### Highlights
    
    - `@latest` resolution is fixed for Go modules that only publish
    pseudo-versions, and stale `installs/<tool>/latest/` directories are now
    repaired automatically.
    - The `install_before` setting has been renamed to
    `minimum_release_age`; the old name keeps working as a deprecated alias.
    - `mise deps` output is now labeled by provider (e.g. `[deps.codegen]`)
    instead of repeating the raw command.
    - Fedora 44 and Rawhide are now supported in the COPR build.
    
    #### Fixed
    
    - **(backend)** Two separate `@latest` issues are repaired in
    [#&#8203;9383](https://redirect.github.com/jdx/mise/pull/9383) by
    [@&#8203;jdx](https://redirect.github.com/jdx):
    - Go modules that enumerate zero versions now resolve `@latest` via `go
    list -m -json <module>@&#8203;latest`, so modules that only publish
    pseudo-versions still install a concrete version.
    - Stale real `installs/<tool>/latest/` directories are now repaired
    generically by the runtime symlink migration. The migration reruns under
    a new marker and refreshes only `install_state` after rewriting
    directories, so the current process picks up the repaired layout without
    rebuilding the backend map (which previously broke config aliases).
    Numeric partial-version dirs such as `installs/<tool>/25/` are left
    alone, and real direct-URL `latest` installs (e.g. UBI URL installs) are
    preserved when there is no concrete version to replace them with.
    
    - **(task)** `mise deps` output is now labeled with a stable
    `[deps.<provider>]` prefix on stdout/stderr (and in the progress
    message) instead of using the raw `run` command as the prefix, making
    repeated output from commands like `pip install -r requirements.txt`
    much easier to follow. `mise deps add/remove` continues to run
    unprefixed.
    ([#&#8203;9385](https://redirect.github.com/jdx/mise/pull/9385)) by
    [@&#8203;jdx](https://redirect.github.com/jdx)
    
    #### Changed
    
    - **(config)** The `install_before` setting and per-tool option have
    been renamed to `minimum_release_age`, matching pnpm's terminology. The
    old `install_before` name is preserved as a hidden, deprecated alias —
    global settings are migrated at load time, per-tool options resolve
    through the new key, and the JSON schema marks the old name as
    deprecated. Precedence is unchanged: `--before` > per-tool > global.
    ([#&#8203;9384](https://redirect.github.com/jdx/mise/pull/9384)) by
    [@&#8203;jdx](https://redirect.github.com/jdx)
    
    #### Added
    
    - **(copr)** Fedora 44 and Rawhide are now supported by the COPR build
    script. ([#&#8203;9391](https://redirect.github.com/jdx/mise/pull/9391))
    by [@&#8203;bestagi](https://redirect.github.com/bestagi)
    
    #### Documentation
    
    - The docs site nav now displays the current release version (read from
    `Cargo.toml` at build time), linking to the GitHub releases page. The
    build emits a warning if the version cannot be parsed instead of
    silently falling back.
    ([#&#8203;9388](https://redirect.github.com/jdx/mise/pull/9388),
    [#&#8203;9389](https://redirect.github.com/jdx/mise/pull/9389)) by
    [@&#8203;jdx](https://redirect.github.com/jdx)
    
    #### Aqua Registry
    
    Updated
    [aqua-registry](https://redirect.github.com/aquaproj/aqua-registry) from
    [v4.498.0](https://redirect.github.com/aquaproj/aqua-registry/releases/tag/v4.498.0)
    to
    [v4.499.0](https://redirect.github.com/aquaproj/aqua-registry/releases/tag/v4.499.0).
    
    #### Sponsor mise
    
    mise is built by [@&#8203;jdx](https://redirect.github.com/jdx) under
    [**en.dev**](https://en.dev) — an independent studio making developer
    tooling (mise, [aube](https://aube.en.dev/), and more). Development is
    funded by sponsors. If mise saves you or your team time, please consider
    sponsoring at [en.dev](https://en.dev).
    
    **Full Changelog**:
    <jdx/mise@v2026.4.21...v2026.4.22>
    
    ###
    [`v2026.4.21`](https://redirect.github.com/jdx/mise/releases/tag/v2026.4.21):
    : untrust command and prune lockfile fixes
    
    [Compare
    Source](https://redirect.github.com/jdx/mise/compare/v2026.4.20...v2026.4.21)
    
    A patch release that adds a new `mise untrust` command, teaches `mise
    prune` to skip tools tracked in lockfiles, and tightens GitHub asset
    auto-detection.
    
    > \[!NOTE]
    > This release was tagged but the publish job failed before assets were
    uploaded. v2026.4.22 ships the same fixes alongside additional changes —
    install that release instead. These notes are preserved here for the
    changelog.
    
    #### Highlights
    
    - New `mise untrust` command revokes trust on a config file.
    - `mise prune` now respects tracked lockfiles and no longer removes
    tools listed in them.
    - GitHub asset auto-detection prefers the shortest asset name as a
    tiebreaker, avoiding spurious matches on longer-named variants.
    - New `--security` flag on `mise registry` includes security info in
    JSON output.
    
    #### Added
    
    - **(registry)** `--security` flag on `mise registry` includes security
    info in JSON output.
    ([#&#8203;9364](https://redirect.github.com/jdx/mise/pull/9364)) by
    [@&#8203;jdx](https://redirect.github.com/jdx)
    - **(trust)** New `mise untrust` command.
    ([#&#8203;9370](https://redirect.github.com/jdx/mise/pull/9370)) by
    [@&#8203;jdx](https://redirect.github.com/jdx)
    
    #### Fixed
    
    - **(config)** Resolved backend opts are now limited to aliases.
    ([#&#8203;9315](https://redirect.github.com/jdx/mise/pull/9315)) by
    [@&#8203;risu729](https://redirect.github.com/risu729)
    - **(github)** Asset auto-detection prefers the shortest asset name as a
    tiebreaker.
    ([#&#8203;9361](https://redirect.github.com/jdx/mise/pull/9361)) by
    [@&#8203;jdx](https://redirect.github.com/jdx)
    - **(java)** Newer Zulu versions are detected correctly — they use a
    different directory structure than older releases.
    ([#&#8203;9365](https://redirect.github.com/jdx/mise/pull/9365)) by
    [@&#8203;roele](https://redirect.github.com/roele)
    - **(prune)** `mise prune` now respects tracked lockfiles.
    ([#&#8203;9373](https://redirect.github.com/jdx/mise/pull/9373)) by
    [@&#8203;jdx](https://redirect.github.com/jdx)
    - **(task)** Tool installation is skipped for missing naked tasks
    instead of failing the run.
    ([#&#8203;9374](https://redirect.github.com/jdx/mise/pull/9374)) by
    [@&#8203;jdx](https://redirect.github.com/jdx)
    
    #### Documentation
    
    - The docs site dismissible banner stacks its message and link on
    mobile. ([#&#8203;9362](https://redirect.github.com/jdx/mise/pull/9362))
    by [@&#8203;jdx](https://redirect.github.com/jdx)
    - Ruby compile message updated.
    ([#&#8203;9338](https://redirect.github.com/jdx/mise/pull/9338)) by
    [@&#8203;fladson](https://redirect.github.com/fladson)
    
    #### Registry
    
    - Fix `flux-operator-mcp` aqua path.
    ([#&#8203;9357](https://redirect.github.com/jdx/mise/pull/9357)) by
    [@&#8203;monotek](https://redirect.github.com/monotek)
    - Remove `openshift-install`.
    ([#&#8203;9372](https://redirect.github.com/jdx/mise/pull/9372)) by
    [@&#8203;jdx](https://redirect.github.com/jdx)
    - Remove `go-sdk`.
    ([#&#8203;9371](https://redirect.github.com/jdx/mise/pull/9371)) by
    [@&#8203;jdx](https://redirect.github.com/jdx)
    
    #### New Contributors
    
    - [@&#8203;fladson](https://redirect.github.com/fladson) made their
    first contribution in
    [#&#8203;9338](https://redirect.github.com/jdx/mise/pull/9338)
    
    #### Sponsor mise
    
    mise is built by [@&#8203;jdx](https://redirect.github.com/jdx) under
    [**en.dev**](https://en.dev) — an independent studio making developer
    tooling (mise, [aube](https://aube.en.dev/), and more). Development is
    funded by sponsors. If mise saves you or your team time, please consider
    sponsoring at [en.dev](https://en.dev).
    
    **Full Changelog**:
    <jdx/mise@v2026.4.20...v2026.4.21>
    
    ###
    [`v2026.4.20`](https://redirect.github.com/jdx/mise/releases/tag/v2026.4.20):
    : Lockfile cleanup and path: fixes
    
    [Compare
    Source](https://redirect.github.com/jdx/mise/compare/v2026.4.19...v2026.4.20)
    
    A focused patch release that cleans up two long-standing lockfile and
    path-resolution bugs, makes GitHub attestation verification tolerant of
    regex-based aqua registry URLs, and reworks how the aqua registry is
    baked into mise.
    
    #### Highlights
    
    - `mise lock tool@latest` now writes a concrete version and heals
    lockfiles already poisoned with `version = "latest"`.
    - `path:` tool versions with relative paths resolve correctly against
    the config root.
    - Aqua registry is now baked from the upstream merged `registry.yaml`,
    pinned by tag.
    - GitHub artifact attestation works for registry entries that use regex
    URLs.
    
    #### Fixed
    
    - **(config)** Relative `path:` tool versions are now resolved at parse
    time against the config's root directory (or CWD for CLI args), with
    `~/` expansion and leading `./` stripped. Previously, a value like
    `path:./packages/logr` was joined with `installs_path` at install time
    and produced a bogus directory such as
    `~/.local/share/mise/installs/logr/./packages/logr`.
    ([#&#8203;9320](https://redirect.github.com/jdx/mise/pull/9320)) by
    [@&#8203;jdx](https://redirect.github.com/jdx)
    
    - **(lock)** `mise lock` handling of `@latest` has been overhauled
    ([#&#8203;9321](https://redirect.github.com/jdx/mise/pull/9321) by
    [@&#8203;jdx](https://redirect.github.com/jdx)):
    - `mise lock tool@latest` now resolves `latest` to the newest installed
    version instead of writing the literal string `"latest"` into the
    lockfile.
    - `mise lock` no longer produces duplicate `[[tools.<name>]]` entries
    when the config uses `tool = "latest"`.
    - Lockfiles already poisoned with `version = "latest"` are cleaned up in
    a single `mise lock` run.
    
    - GitHub artifact attestation verification now works when the aqua
    registry entry uses a regex in the workflow URL, unblocking installs
    such as `aqua:updatecli/updatecli`.
    ([#&#8203;9327](https://redirect.github.com/jdx/mise/pull/9327)) by
    [@&#8203;monotek](https://redirect.github.com/monotek)
    
    #### Changed
    
    - **(aqua)** The baked aqua registry source has been swapped for the
    upstream merged `registry.yaml`, pinned by tag via
    `crates/aqua-registry/aqua-registry/metadata.json`. The build script
    generates a canonical package-id map plus an alias lookup table, so
    runtime lookups only parse the selected package YAML. The pinned tag is
    now visible in `mise doctor`.
    ([#&#8203;9043](https://redirect.github.com/jdx/mise/pull/9043)) by
    [@&#8203;risu729](https://redirect.github.com/risu729)
    
    #### Added
    
    - New registry entry: `grafana-kubernetes-plugin`.
    ([#&#8203;9300](https://redirect.github.com/jdx/mise/pull/9300)) by
    [@&#8203;monotek](https://redirect.github.com/monotek)
    
    #### Documentation
    
    - A dismissible announcement banner has been added to the docs site,
    driven by a remote JSON config. Link schemes are restricted to
    `http`/`https`, dismissals persist per-id in `localStorage`, and the
    banner height is kept in sync with `--vp-layout-top-height` via a
    `ResizeObserver`. The `expires` field is respected so banners
    automatically hide after a given date.
    ([#&#8203;9326](https://redirect.github.com/jdx/mise/pull/9326),
    [#&#8203;9330](https://redirect.github.com/jdx/mise/pull/9330),
    [#&#8203;9334](https://redirect.github.com/jdx/mise/pull/9334)) by
    [@&#8203;jdx](https://redirect.github.com/jdx)
    
    #### Aqua Registry
    
    Updated
    [aqua-registry](https://redirect.github.com/aquaproj/aqua-registry) from
    [v4.492.0](https://redirect.github.com/aquaproj/aqua-registry/releases/tag/v4.492.0)
    to
    [v4.498.0](https://redirect.github.com/aquaproj/aqua-registry/releases/tag/v4.498.0),
    which includes:
    
    -
    [v4.493.0](https://redirect.github.com/aquaproj/aqua-registry/releases/tag/v4.493.0)
    -
    [v4.494.0](https://redirect.github.com/aquaproj/aqua-registry/releases/tag/v4.494.0)
    -
    [v4.494.1](https://redirect.github.com/aquaproj/aqua-registry/releases/tag/v4.494.1)
    -
    [v4.495.0](https://redirect.github.com/aquaproj/aqua-registry/releases/tag/v4.495.0)
    -
    [v4.496.0](https://redirect.github.com/aquaproj/aqua-registry/releases/tag/v4.496.0)
    -
    [v4.497.0](https://redirect.github.com/aquaproj/aqua-registry/releases/tag/v4.497.0)
    -
    [v4.498.0](https://redirect.github.com/aquaproj/aqua-registry/releases/tag/v4.498.0)
    
    #### Sponsor mise
    
    mise is built by [@&#8203;jdx](https://redirect.github.com/jdx) under
    [**en.dev**](https://en.dev) — an independent studio making developer
    tooling (mise, [aube](https://aube.en.dev/), and more). Development is
    funded by sponsors.
    
    If mise saves you or your team time, please consider sponsoring at
    [en.dev](https://en.dev). Individual and company sponsorships keep mise
    fast, free, and independent.
    
    **Full Changelog**:
    <jdx/mise@v2026.4.19...v2026.4.20>
    
    ###
    [`v2026.4.19`](https://redirect.github.com/jdx/mise/releases/tag/v2026.4.19):
    : OCI images, aqua templates, and more resilient installs
    
    [Compare
    Source](https://redirect.github.com/jdx/mise/compare/v2026.4.18...v2026.4.19)
    
    This release adds a new way to package environments as OCI images,
    improves backend flexibility with aqua variable templating, and tightens
    several authentication and concurrency edge cases that were causing
    friction in real workflows.
    
    The biggest addition is `mise` support for building OCI images directly
    from `mise.toml`, with per-tool layering to make image rebuilds more
    efficient. Alongside that, aqua-backed tools can now use templated
    variables, which should make more registries and package definitions
    work cleanly without custom glue. On the reliability side, fixes in
    conda, GitHub auth handling, vfox token usage, and interactive CLI
    cancellation should make automation and authenticated installs behave
    more predictably.
    
    #### Highlights
    
    - Build OCI images directly from `mise.toml` with per-tool image layers.
    - Support aqua variable templates in backends.
    - Fix several GitHub and token-handling issues affecting authenticated
    requests.
    - Improve install reliability for conda and backend path handling.
    - Add new registry entries including `gsudo`, `kiro-cli`, `llama.cpp`,
    and Flux operator tooling.
    
    #### Changes
    
    ##### Features
    
    - **(oci)** build OCI images from `mise.toml` with per-tool layers by
    [@&#8203;jdx](https://redirect.github.com/jdx) in
    [#&#8203;9273](https://redirect.github.com/jdx/mise/pull/9273)
    - **(backend)** support aqua vars templates by
    [@&#8203;jdx](https://redirect.github.com/jdx) in
    [#&#8203;9110](https://redirect.github.com/jdx/mise/pull/9110)
    - add `gsudo` (Sudo for Windows) to registry by
    [@&#8203;jdx](https://redirect.github.com/jdx) in
    [#&#8203;9281](https://redirect.github.com/jdx/mise/pull/9281)
    
    ##### Bug Fixes
    
    - **(cli)** suppress error output after interactive cancel by
    [@&#8203;jdx](https://redirect.github.com/jdx) in
    [#&#8203;9294](https://redirect.github.com/jdx/mise/pull/9294)
    - **(backend)** stop fuzzy requests installing literal dirs by
    [@&#8203;jdx](https://redirect.github.com/jdx) in
    [#&#8203;9276](https://redirect.github.com/jdx/mise/pull/9276)
    - **(conda)** avoid temp file collisions during parallel package
    downloads by [@&#8203;jdx](https://redirect.github.com/jdx) in
    [#&#8203;9293](https://redirect.github.com/jdx/mise/pull/9293)
    - **(github)** scope auth headers to API URLs by
    [@&#8203;jdx](https://redirect.github.com/jdx) in
    [#&#8203;9271](https://redirect.github.com/jdx/mise/pull/9271)
    - **(cli)** retrieve token from github helper for `self-update` command
    by [@&#8203;jdx](https://redirect.github.com/jdx) in
    [#&#8203;9259](https://redirect.github.com/jdx/mise/pull/9259)
    - **(vfox)** use github token for lua http requests by
    [@&#8203;jdx](https://redirect.github.com/jdx) in
    [#&#8203;9257](https://redirect.github.com/jdx/mise/pull/9257)
    
    ##### Registry
    
    - add `flux-operator` & `flux-operator-mcp` by
    [@&#8203;tiyee](https://redirect.github.com/tiyee) in
    [#&#8203;8852](https://redirect.github.com/jdx/mise/pull/8852)
    - add `kiro-cli` by [@&#8203;jdx](https://redirect.github.com/jdx) in
    [#&#8203;9274](https://redirect.github.com/jdx/mise/pull/9274)
    - add `llama.cpp` (`github:ggml-org/llama.cpp`) by
    [@&#8203;jdx](https://redirect.github.com/jdx) in
    [#&#8203;9282](https://redirect.github.com/jdx/mise/pull/9282)
    
    #### 💚 Sponsor mise
    
    mise is built by [@&#8203;jdx](https://redirect.github.com/jdx) under
    [**en.dev**](https://en.dev) — an independent studio making developer
    tooling (mise, [aube](https://aube.en.dev/), and more). Development is
    funded by sponsors.
    
    If mise saves you or your team time, please consider sponsoring at
    [en.dev](https://en.dev). Individual and company sponsorships keep mise
    fast, free, and independent.
    
    </details>
    
    ---
    
    ### 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.
    
    ---
    
    - [ ] <!-- rebase-check -->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).
    
    <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xNDEuMyIsInVwZGF0ZWRJblZlciI6IjQzLjE0MS4zIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiXX0=-->
    
    Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
    renovate[bot] authored Apr 27, 2026
    Configuration menu
    Copy the full SHA
    1dd2189 View commit details
    Browse the repository at this point in the history
  4. docs: Document semantic PR title guidance (#2060)

    ## Summary
    
    Document PR title expectations for AI coding agents working in this
    repository.
    
    - Require semantic/conventional PR title prefixes such as `feat:`,
    `fix:`, `docs:`, `chore:`, or `test:`.
    - Tell agents not to use `[codex]` in PR titles.
    - Ask agents to match the title type to the primary user-facing change.
    
    ## Validation
    
    - `mise run lint`
    - `git diff --check`
    
    Signed-off-by: Gregor Zeitlinger <[email protected]>
    zeitlinger authored Apr 27, 2026
    Configuration menu
    Copy the full SHA
    7277889 View commit details
    Browse the repository at this point in the history
  5. chore: ignore internal Prometheus BOM in Renovate (#2063)

    ## Summary
    - add `io.prometheus:prometheus-metrics-bom` to the existing Renovate
    ignore rule for internal project modules
    - prevent Renovate PRs that update examples to consume the repo's own
    just-released BOM while release-please is already moving the repo to the
    next snapshot
    
    ## Testing
    - `mise exec -- renovate-config-validator .github/renovate.json5`
    zeitlinger authored Apr 27, 2026
    Configuration menu
    Copy the full SHA
    3cbc665 View commit details
    Browse the repository at this point in the history
  6. fix: Preserve original metric names in OM2 output (#2058)

    Refs #1954.
    
    ## Summary
    
    This fixes OM2 name preservation in the text writer.
    
    - Use original metric metadata names in OM2 output instead of OM1
    exposition base names.
    - Preserve original names for default classic histogram output instead
    of delegating that path to OM1.
    - Keep the OM2 `_info` exception for info metrics.
    - Add builder-based regression coverage for counters and classic/native
    histograms with `.unit(...)`.
    
    ## Why
    
    `openmetrics2.enabled=true` is documented as preserving metric names as
    written by the application. The writer still used OM1-derived names in
    several paths, and classic histograms delegated to the OM1 writer, so
    `.unit(...)` could still leak unit-suffixed names into OM2 output.
    
    ## Smoking gun
    
    
    `prometheus-metrics-core/src/test/java/io/prometheus/metrics/core/metrics/OpenMetrics2TextFormatWriterTest.java`
    adds `counterPreservesOriginalNameWhenUnitIsConfigured()`.
    
    That test builds a real counter through the public builder API:
    
    ```java
    Counter.builder().name("my_counter").unit(Unit.SECONDS)
    ```
    
    It then asserts that OM1 still emits the legacy name
    `my_counter_seconds_total`, while OM2 emits
    `my_counter` and does not contain `my_counter_seconds`.
    
    I verified this test fails against pre-fix `origin/main` when only the
    test is applied:
    
    ```text
    OpenMetrics2TextFormatWriterTest.counterPreservesOriginalNameWhenUnitIsConfigured
    
    Expecting actual:
      "# TYPE my_counter_seconds counter
    # UNIT my_counter_seconds seconds
    # HELP my_counter_seconds Test counter
    my_counter_seconds{method="GET"} 42.0 st@...
    # EOF
    "
    to contain:
      "# TYPE my_counter counter
    "
    ```
    
    That is the bug this PR fixes: OM2 was still using the OM1 unit-suffixed
    metric name.
    
    ## Validation
    
    - `./mvnw test -pl
    prometheus-metrics-core,prometheus-metrics-exposition-textformats -am
    -Dtest=OpenMetrics2TextFormatWriterTest -Dcoverage.skip=true
    -Dcheckstyle.skip=true -Dsurefire.failIfNoSpecifiedTests=false`
    - `mise run build`
    - `mise run lint`
    - `git diff --check`
    
    Signed-off-by: Gregor Zeitlinger <[email protected]>
    zeitlinger authored Apr 27, 2026
    Configuration menu
    Copy the full SHA
    59a7a6d View commit details
    Browse the repository at this point in the history
  7. docs: clarify 1.6.0 release notes (#2062)

    ## Summary
    - remove OM2-related entries from the `1.6.0` changelog because that
    work should be punted from these release notes for now
    - keep a short note that OpenMetrics 2.0 support is still in progress
    and not ready for general use yet
    - keep `#1985` under `Features` because it is a real user-facing feature
    
    ## Why
    The `v1.6.0` release notes were mixing in OM2 work that should not be
    listed as released yet, and this PR should not include the unrelated
    `AGENTS.md` change.
    
    ## Validation
    - `mise run lint`
    
    ---------
    
    Signed-off-by: Gregor Zeitlinger <[email protected]>
    zeitlinger authored Apr 27, 2026
    Configuration menu
    Copy the full SHA
    9e5d591 View commit details
    Browse the repository at this point in the history
  8. chore(main): release 1.6.1-SNAPSHOT (#2056)

    🤖 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>
    github-actions[bot] authored Apr 27, 2026
    Configuration menu
    Copy the full SHA
    60a1fbc View commit details
    Browse the repository at this point in the history
  9. chore(main): release 1.6.1 (#2064)

    🤖 I have created a release *beep* *boop*
    ---
    
    
    ##
    [1.6.1](v1.6.0...v1.6.1)
    (2026-04-27)
    
    
    ### Bug Fixes
    
    * Preserve original metric names in OM2 output
    ([#2058](#2058))
    ([59a7a6d](59a7a6d))
    
    
    ### Documentation
    
    * clarify 1.6.0 release notes
    ([#2062](#2062))
    ([9e5d591](9e5d591))
    * Document semantic PR title guidance
    ([#2060](#2060))
    ([7277889](7277889))
    
    ---
    > [!IMPORTANT]
    > Close and reopen this PR to trigger CI checks.
    
    ---------
    
    Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
    Co-authored-by: Gregor Zeitlinger <[email protected]>
    github-actions[bot] and zeitlinger authored Apr 27, 2026
    Configuration menu
    Copy the full SHA
    fa68aa7 View commit details
    Browse the repository at this point in the history
Loading