Skip to content

chore: release 2026.4.4#8881

Merged
jdx merged 1 commit intomainfrom
release
Apr 5, 2026
Merged

chore: release 2026.4.4#8881
jdx merged 1 commit intomainfrom
release

Conversation

@mise-en-dev
Copy link
Copy Markdown
Collaborator

@mise-en-dev mise-en-dev commented Apr 4, 2026

🚀 Features

  • (ci) auto-convert external PRs to draft mode by @jdx in #8896
  • (deps) add depends field for user-specified tool dependencies by @cprecioso in #8776
  • (dotnet) support runtime-only installs by @fragon10 in #8524
  • (npm) apply install_before to transitive dependencies by @risu729 in #8851
  • (task) allow passing arguments to task dependencies via {{usage.*}} templates by @jdx in #8893
  • add options field to BackendListVersionsCtx by @esteve in #8875

🐛 Bug Fixes

  • (backend) filter PEP 440 .dev versions in fuzzy version matching by @richardthe3rd in #8849
  • (ci) update COPR BuildRequires rust version to match MSRV 1.88 by @jdx in #8911
  • (ci) add Ruby build dependencies to e2e Docker image by @jdx in #8910
  • (ci) add missing build dependencies to e2e Docker image by @jdx in #8912
  • (ci) add missing build dependencies to e2e Docker image by @jdx in #8914
  • (ci) use Node 24 LTS for corepack e2e test by @jdx in #8915
  • (ci) add libxml2 and pkg-config to e2e Docker image by @jdx in #8917
  • (ci) add libxml2-dev to e2e image and disable Swift SPM tests by @jdx in #8918
  • (docs) use sans-serif font for badges by @jdx in #8887
  • (env) parse --env=VALUE and -E=VALUE flag forms correctly by @jdx in #8889
  • (exec) use i64::from() for seccomp syscall numbers to survive autofix by @jdx in #8882
  • (github) preserve tool options like filter_bins when version specified via CLI by @jdx in #8888
  • (github) use alias-specific options when tool_alias has its own config by @jdx in #8892
  • (install) add locked_verify_provenance setting and detect github attestations at lock time by @jdx in #8901
  • (lock) prune stale version entries during filtered mise lock <tool> runs by @altendky in #8599
  • (python) use lockfile URL for precompiled installs by @hehaoqian in #8750
  • (release) verify all build targets succeed before releasing by @jdx in #8886
  • (ruby) support build revisions for precompiled binaries in mise.lock by @jdx in #8900
  • (swift) fall back to Ubuntu 24.04 for unsupported Ubuntu versions by @jdx in #8916
  • (zsh) avoid duplicate trust warning after cd by @timothysparg in #8898
  • update flake.lock and add fix for rust-bindgen to default.nix by @esteve in #8874
  • when direnv diff is empty, do not try to parse it by @yaleman in #8857
  • skip trust check for plain .tool-versions in task list by @dportalesr in #8876

🚜 Refactor

📚 Documentation

  • (tasks) clarify task_config.includes behavior by @risu729 in #8905

🧪 Testing

  • (ci) run e2e tests inside Docker containers by @jdx in #8899

📦️ Dependency Updates

📦 Registry

Chore

  • (ci) add workflow to warn PRs modifying vendored aqua-registry by @jdx in #8897
  • (ci) use github.token for draft conversion in auto-draft workflow by @jdx in #8903
  • remove deprecated settings older than 12 months by @jdx in #8904

New Contributors

📦 Aqua Registry Updates

New Packages (6)

Updated Packages (1)

Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request updates mise to version 2026.4.4 and adds several new packages to the aqua-registry, including oyo, jiq, dealve-tui, jsongrep, lazyjira, and vize. Feedback was provided to correct registry configurations where override blocks were unintentionally overwriting global architecture mappings or providing redundant definitions. A consistency improvement for environment naming was also suggested.

Comment on lines +27 to +35
overrides:
- goos: linux
goarch: amd64
replacements:
linux: unknown-linux-musl
- goos: linux
goarch: arm64
replacements:
linux: unknown-linux-gnu
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

high

In aqua, providing a replacements map within an override block completely replaces the top-level replacements map for that specific environment. Since your top-level map contains architecture mappings (amd64: x86_64, arm64: aarch64), these will be lost in the Linux overrides, leading to incorrect asset names (e.g., using amd64 instead of x86_64). You should include the architecture replacements in these override blocks to ensure the correct binaries are fetched.

        overrides:
          - goos: linux
            goarch: amd64
            replacements:
              amd64: x86_64
              linux: unknown-linux-musl
          - goos: linux
            goarch: arm64
            replacements:
              arm64: aarch64
              linux: unknown-linux-gnu

Comment on lines +19 to +21
overrides:
- goos: windows
replacements: {}
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

high

The override for Windows with replacements: {} is redundant and potentially breaking. In aqua, an empty replacements map in an override replaces the top-level map, which in this case would prevent the amd64 to x86_64 mapping from occurring for Windows users. Since the top-level replacements already handle the architecture mapping correctly and do not interfere with Windows (as there is no windows key in the top-level map), this block should be removed.

supported_envs:
- darwin
- windows
- amd64
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

For consistency with the v0.1.1 block (line 25), amd64 should be specified as linux/amd64. While amd64 is technically valid in aqua to represent the architecture across any OS, being explicit improves maintainability and clarity, especially since darwin and windows are already listed separately.

          - linux/amd64

@greptile-apps
Copy link
Copy Markdown
Contributor

greptile-apps Bot commented Apr 4, 2026

Greptile Summary

This is a routine release PR for mise version 2026.4.4, aggregating a substantial batch of features and bug fixes. Version bumps are consistent across Cargo.toml, default.nix, snapcraft.yaml, and packaging/rpm/mise.spec. The completions, lockfiles, and changelog are auto-generated or auto-updated as expected.

The main substantive changes are seven aqua registry entries (six new tools, one updated). Key items to note:

  • jiq Windows override: The files entry in the Windows override omits src, whereas the parent sets src: "{{.AssetWithoutExt}}/jiq". If the Windows zip shares the same directory structure, binary extraction would fail on Windows.
  • aqua-registry crate version: crates/aqua-registry/Cargo.toml remains at 2026.4.2 while the main crate is at 2026.4.4 — this appears to be intentional independent versioning for that subcrate.
  • oyo: Darwin-only support is expected and matches the upstream tool's scope.
  • cosign: Updated to use the newer sigstore.json bundle-based verification for the latest versions.

Confidence Score: 5/5

This release PR is safe to merge; all version bumps are consistent and the aqua registry entries follow established patterns.

Only P2 style findings remain — the jiq Windows files/src discrepancy may be intentional if the upstream zip is flat, and the aqua-registry version discrepancy appears to be a deliberate independent versioning choice. Neither blocks the release.

crates/aqua-registry/aqua-registry/pkgs/bellicose100xp/jiq/registry.yaml (Windows files src field)

Important Files Changed

Filename Overview
CHANGELOG.md Release notes updated with all features, fixes, and new contributors for 2026.4.4
Cargo.toml Version bumped to 2026.4.4, consistent with other packaging files
Cargo.lock Dependency lockfile updated to reflect bumped deps (ubi 0.8→0.9, zip 3→8)
crates/aqua-registry/Cargo.toml Version remains at 2026.4.2, not bumped to match main crate at 2026.4.4 — may be intentional independent versioning
crates/aqua-registry/aqua-registry/pkgs/ahkohd/oyo/registry.yaml New darwin-only tool entry for the 'oy' viewer; platform limitation matches upstream
crates/aqua-registry/aqua-registry/pkgs/bellicose100xp/jiq/registry.yaml New jiq tool entry; Windows override defines files without src while parent uses src template — could cause extraction failure
crates/aqua-registry/aqua-registry/pkgs/kurama/dealve-tui/registry.yaml New dealve-tui entry; Windows override clears replacements to use raw platform strings
crates/aqua-registry/aqua-registry/pkgs/micahkepe/jsongrep/registry.yaml New jsongrep entry with well-structured version overrides and checksums
crates/aqua-registry/aqua-registry/pkgs/textfuel/lazyjira/registry.yaml New lazyjira entry with checksum verification and Windows zip override
crates/aqua-registry/aqua-registry/pkgs/ubugeeei/vize/registry.yaml New vize entry with standard platform replacements and Windows zip override
crates/aqua-registry/aqua-registry/pkgs/sigstore/cosign/registry.yaml Updated cosign entry with new sigstore bundle-based verification for latest versions
default.nix Version and Nix build inputs updated to 2026.4.4 with rust-bindgen fix
mise.lock Auto-generated lock file updated with new tool checksums and URLs
packaging/rpm/mise.spec RPM spec version bumped to 2026.4.4
snapcraft.yaml Snapcraft version bumped to 2026.4.4

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    A[Release 2026.4.4] --> B[Version Bumps]
    A --> C[Auto-generated Artifacts]
    A --> D[Aqua Registry Changes]
    B --> B1["Cargo.toml → 2026.4.4"]
    B --> B2["default.nix → 2026.4.4"]
    B --> B3["snapcraft.yaml → 2026.4.4"]
    B --> B4["packaging/rpm/mise.spec → 2026.4.4"]
    C --> C1[Cargo.lock]
    C --> C2["completions/*"]
    C --> C3[mise.lock]
    D --> D1["ahkohd/oyo (new, darwin-only)"]
    D --> D2["bellicose100xp/jiq (new, ⚠ Windows files/src?)"]
    D --> D3["kurama/dealve-tui (new)"]
    D --> D4["micahkepe/jsongrep (new)"]
    D --> D5["textfuel/lazyjira (new)"]
    D --> D6["ubugeeei/vize (new)"]
    D --> D7["sigstore/cosign (updated)"]
Loading

Reviews (37): Last reviewed commit: "chore: release 2026.4.4" | Re-trigger Greptile

@github-actions
Copy link
Copy Markdown

github-actions Bot commented Apr 4, 2026

Hyperfine Performance

mise x -- echo

Command Mean [ms] Min [ms] Max [ms] Relative
mise-2026.4.3 x -- echo 22.8 ± 0.5 21.7 26.1 1.00
mise x -- echo 23.3 ± 0.6 22.3 27.8 1.02 ± 0.03

mise env

Command Mean [ms] Min [ms] Max [ms] Relative
mise-2026.4.3 env 22.0 ± 0.5 21.3 25.8 1.00
mise env 22.8 ± 0.7 21.8 32.3 1.03 ± 0.04

mise hook-env

Command Mean [ms] Min [ms] Max [ms] Relative
mise-2026.4.3 hook-env 22.8 ± 0.5 21.9 26.3 1.00
mise hook-env 23.4 ± 0.5 22.2 24.9 1.03 ± 0.03

mise ls

Command Mean [ms] Min [ms] Max [ms] Relative
mise-2026.4.3 ls 20.5 ± 0.5 19.6 25.6 1.00
mise ls 21.0 ± 0.4 20.1 22.6 1.03 ± 0.03

xtasks/test/perf

Command mise-2026.4.3 mise Variance
install (cached) 150ms 151ms +0%
ls (cached) 79ms 79ms +0%
bin-paths (cached) 83ms 83ms +0%
task-ls (cached) 798ms 797ms +0%

jdx added a commit that referenced this pull request Apr 4, 2026
## Summary
- Adds a verification step to the `release` job that explicitly checks
all upstream jobs (`build-tarball-linux`, `build-tarball-macos`,
`build-tarball-windows`, `e2e-linux`, `rpm`, `deb`) returned `success`
- Prevents releases when matrix variants (e.g. armv7) fail — currently
the `!cancelled() && !failure()` condition treats skipped downstream
jobs as passing, allowing the release to proceed

## Context
PR #8881 (release 2026.4.4) is currently mergeable despite
`build-tarball-linux-armv7` and `build-tarball-linux-armv7-musl`
failing. The armv7 failures cause `e2e-linux`, `rpm`, and `deb` to be
skipped, but `!failure()` doesn't consider skipped jobs as failures.

## Test plan
- [ ] Verify the release workflow still succeeds when all targets build
correctly
- [ ] Verify the release job fails early if any build target fails (e.g.
armv7)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> **Medium Risk**
> Medium risk because it changes release pipeline gating and could block
publishing if any upstream job is skipped or misreported, but it does
not touch product/runtime code.
> 
> **Overview**
> **Prevents publishing releases when prerequisites are incomplete.**
The `release` workflow now runs an explicit verification step that
checks `needs.*.result` for `build-tarball-*`, `e2e-linux`, `rpm`, and
`deb`, and fails the job with a clear error message if any did not
return `success`.
> 
> This closes a gap where `!cancelled() && !failure()` could allow the
release to proceed when upstream jobs were *skipped* (e.g., due to
matrix variant failures) rather than failed.
> 
> <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit
ba5b580. Bugbot is set up for automated
code reviews on this repo. Configure
[here](https://www.cursor.com/dashboard/bugbot).</sup>
<!-- /CURSOR_SUMMARY -->

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@mise-en-dev mise-en-dev force-pushed the release branch 7 times, most recently from fe40254 to 2ba226c Compare April 4, 2026 14:24
@jdx jdx enabled auto-merge (squash) April 4, 2026 14:58
@mise-en-dev mise-en-dev force-pushed the release branch 15 times, most recently from ccbccb9 to 6313db3 Compare April 4, 2026 20:19
@mise-en-dev mise-en-dev force-pushed the release branch 11 times, most recently from 87aca7f to f35402a Compare April 4, 2026 23:30
@jdx jdx disabled auto-merge April 5, 2026 00:36
@jdx jdx enabled auto-merge (squash) April 5, 2026 00:37
@jdx jdx disabled auto-merge April 5, 2026 01:03
@jdx jdx enabled auto-merge (squash) April 5, 2026 01:04
@jdx jdx merged commit b9b962f into main Apr 5, 2026
63 checks passed
@jdx jdx deleted the release branch April 5, 2026 01:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants