Skip to content

feat(http): add version_expr support and Tera templating#7723

Merged
jdx merged 9 commits intomainfrom
http-backend-tera-templates
Jan 17, 2026
Merged

feat(http): add version_expr support and Tera templating#7723
jdx merged 9 commits intomainfrom
http-backend-tera-templates

Conversation

@jdx
Copy link
Owner

@jdx jdx commented Jan 17, 2026

Summary

  • Add version_expr option for HTTP backend using the expr-lang crate to evaluate expressions for extracting version lists
  • Add Tera templating support for URLs with {{ version }}, {{ os() }}, {{ arch() }}
  • Update Flutter and Dart registry entries to use Tera-templated URLs

Changes

  • src/backend/version_list.rs: Added version_expr parameter and expr-lang integration for expression-based version parsing
  • src/backend/static_helpers.rs: Enhanced template_string() to support Tera syntax alongside legacy {version}
  • src/backend/http.rs and src/backend/s3.rs: Updated to pass version_expr to version list functions
  • registry.toml: Updated Flutter entry to use {{ version }} Tera syntax

Test plan

  • Run cargo test backend::version_list - all 20 tests pass
  • Run mise ls-remote dart - verified version listing works
  • Run mise ls-remote flutter - verified version listing works
  • Run mise tool dart and mise tool flutter - verified HTTP backend is used

🤖 Generated with Claude Code


Note

Enables more flexible version discovery and standardized templating across backends.

  • Add version_expr using expr-lang with plumbing in http.rs, s3.rs, and version_list.rs (includes tests and new install-time option)
  • Implement Tera-based rendering for URLs/bin paths (HTTP/S3/GitHub helpers), with legacy {...} support gated by deprecated_at! macro
  • Introduce deprecated_at! macro to schedule deprecation warnings; apply to legacy template placeholders
  • Update docs for GitHub/GitLab/Forgejo/HTTP/S3 to use Tera {{ ... }} and document version_expr
  • Migrate registry.toml entries (e.g., Dart, Flutter, Claude, Flyway, zprint) to new templating; add Dart HTTP backend
  • Add expr-lang dependency in Cargo.toml/lockfile

Written by Cursor Bugbot for commit 7de4b67. This will update automatically on new commits. Configure here.

jdx and others added 2 commits January 17, 2026 11:34
Adds support for Tera expressions like {{ os() }} and {{ arch() }} in
HTTP backend URL templates. This allows a single URL template to work
across all platforms instead of requiring platform-specific sections.

Example:
  url = "https://example.com/{version}/tool-{{ os() }}-{{ arch() }}.tar.gz"

Available functions: os(), arch(), os_family(), num_cpus()

Also updates Dart to use this simpler URL template format as an example.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add expr-lang integration for version list parsing via version_expr option
- Support Tera templating in URLs with {{ version }}, {{ os() }}, {{ arch() }}
- Update Flutter registry entry to use Tera-templated URLs
- Update Dart registry entry with proper Tera URL templating
- Add comprehensive tests for version_expr functionality

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings January 17, 2026 17:59
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR adds expression-based version parsing and Tera templating support to the HTTP backend, enabling more flexible version extraction and URL construction for tool registries.

Changes:

  • Adds version_expr parameter using expr-lang for extracting versions from HTTP responses
  • Extends template_string() to support Tera syntax (e.g., {{ version }}, {{ os() }}, {{ arch() }}) alongside legacy {version} placeholders
  • Updates Dart and Flutter registry entries to use the new HTTP backend with Tera-templated URLs

Reviewed changes

Copilot reviewed 6 out of 7 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
src/backend/version_list.rs Adds version_expr parameter and expr-lang integration for expression-based version parsing
src/backend/static_helpers.rs Enhances template_string() to support Tera templating alongside legacy placeholder replacement
src/backend/s3.rs Updates S3 backend to pass version_expr to version list parser
src/backend/http.rs Updates HTTP backend to pass version_expr to version fetcher
registry.toml Updates Dart entry to use HTTP backend with Tera templates, and Flutter entry to use Tera syntax
Cargo.toml Adds expr-lang dependency
Comments suppressed due to low confidence (1)

src/backend/version_list.rs:1

  • Missing match expression wrapper. The function body should be match value { Value::String(s) => Some(s.clone()), Value::Number(n) => Some(n.to_string()), _ => None, }
/// Version list parsing utilities for fetching remote versions from URLs.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +50 to +51
if let Ok(extracted) = eval_version_expr(expr_str, trimmed) {
versions = extracted;
Copy link

Copilot AI Jan 17, 2026

Choose a reason for hiding this comment

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

Silent fallthrough on expr evaluation failure may hide configuration errors. Consider logging a warning when expr evaluation fails so users are aware their expression isn't working as expected.

Suggested change
if let Ok(extracted) = eval_version_expr(expr_str, trimmed) {
versions = extracted;
match eval_version_expr(expr_str, trimmed) {
Ok(extracted) => {
versions = extracted;
}
Err(err) => {
eprintln!(
"Warning: failed to evaluate version_expr '{}': {}",
expr_str,
err
);
}

Copilot uses AI. Check for mistakes.
match crate::tera::get_tera(None).render_str(template, &ctx) {
Ok(rendered) => rendered,
Err(e) => {
warn!("Failed to render template '{}': {}", template, e);
Copy link

Copilot AI Jan 17, 2026

Choose a reason for hiding this comment

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

The error message could be more helpful by suggesting the user check their template syntax or providing guidance on valid Tera syntax.

Suggested change
warn!("Failed to render template '{}': {}", template, e);
warn!(
"Failed to render template '{}': {}. This may indicate invalid Tera syntax; \
please double-check your template against valid Tera syntax.",
template,
e
);

Copilot uses AI. Check for mistakes.
autofix-ci bot and others added 3 commits January 17, 2026 18:03
- Update all registry.toml entries to use {{ version }} instead of {version}
- Remove legacy {version} fallback from template_string()
- Update template_string_for_target() to use Tera directly

Affected tools: claude, dome, flyway, zprint

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Update documentation for HTTP, S3, GitHub, GitLab, and Forgejo backends
to use {{ version }} Tera syntax instead of legacy {version}.

Also corrected bin_path documentation - removed undocumented {name} and
{ext} placeholders, documented actual available variables.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Copy link

@cursor cursor bot left a comment

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Bugbot Autofix is OFF. To automatically fix reported issues with Cloud Agents, enable Autofix in the Cursor dashboard.

jdx and others added 3 commits January 17, 2026 12:20
- Add deprecated_at! macro that only emits warnings when mise version >= target
- Re-add legacy {version} support in template_string() and template_string_for_target()
- Deprecation warnings will appear starting in 2026.3.0

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Document the new version_expr option that allows using expr-lang
expressions for complex version extraction from HTTP responses.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Copy link

@cursor cursor bot left a comment

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes and found 3 potential issues.

Bugbot Autofix is OFF. To automatically fix reported issues with Cloud Agents, enable Autofix in the Cursor dashboard.

@github-actions
Copy link

github-actions bot commented Jan 17, 2026

Hyperfine Performance

mise x -- echo

Command Mean [ms] Min [ms] Max [ms] Relative
mise-2026.1.3 x -- echo 20.9 ± 0.5 19.6 24.0 1.00
mise x -- echo 21.3 ± 0.7 19.7 27.8 1.02 ± 0.04

mise env

Command Mean [ms] Min [ms] Max [ms] Relative
mise-2026.1.3 env 20.2 ± 0.7 19.0 28.2 1.00
mise env 20.9 ± 0.6 19.4 22.9 1.03 ± 0.05

mise hook-env

Command Mean [ms] Min [ms] Max [ms] Relative
mise-2026.1.3 hook-env 20.5 ± 0.5 19.2 22.1 1.00
mise hook-env 21.0 ± 0.7 19.4 28.0 1.02 ± 0.04

mise ls

Command Mean [ms] Min [ms] Max [ms] Relative
mise-2026.1.3 ls 18.8 ± 0.7 17.7 24.9 1.00
mise ls 19.3 ± 0.6 17.8 21.6 1.03 ± 0.05

xtasks/test/perf

Command mise-2026.1.3 mise Variance
install (cached) 114ms 114ms +0%
ls (cached) 70ms 70ms +0%
bin-paths (cached) 74ms 75ms -1%
task-ls (cached) 287ms 302ms -4%

1. Fix legacy template detection to check all placeholders ({version}, {os},
   {arch}, {darwin_os}, {amd64_arch}, {x86_64_arch}, {gnu_arch}), not just
   {version}. This fixes bosh-backup-and-restore, cluster-api-provider-aws,
   k3k, and opam which use other placeholders.

2. Make version_expr fail hard on evaluation errors instead of silently
   falling through to text parsing.

3. Add version_expr to install_time_option_keys() in http.rs and s3.rs
   to ensure proper cache invalidation when the option changes.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@jdx jdx merged commit 3d0e211 into main Jan 17, 2026
39 checks passed
@jdx jdx deleted the http-backend-tera-templates branch January 17, 2026 19:00
jdx pushed a commit that referenced this pull request Jan 17, 2026
### 🚀 Features

- **(conda)** add dependency locking for reproducible installations by
@jdx in [#7708](#7708)
- **(http)** add JSON filter syntax for version extraction by @jdx in
[#7707](#7707)
- **(http)** add version_expr support and Tera templating by @jdx in
[#7723](#7723)
- **(task)** add [monorepo].config_roots for explicit config root
listing by @jdx in [#7705](#7705)
- **(task)** support env vars in task dependencies by @jdx in
[#7724](#7724)

### 🐛 Bug Fixes

- **(conda)** fix hardcoded library paths in conda packages by @jdx in
[#7713](#7713)
- **(env)** avoid venv/go backend deadlock during env resolution by
@stk0vrfl0w in [#7696](#7696)
- **(python)** sort CPython versions at end of ls-remote output by @jdx
in [#7721](#7721)
- **(task)** resolve remote task files before display and validation
commands by @yannrouillard in
[#7681](#7681)
- **(task)** support monorepo paths in `mise tasks deps` by @chadxz in
[#7699](#7699)
- **(task)** resolve all monorepo path hints in deps by @chadxz in
[#7698](#7698)

### 📚 Documentation

- remove outdated roadmap page by @jdx in
[#7726](#7726)

### ⚡ Performance

- **(task)** fix task-ls cached performance regression by @jdx in
[#7716](#7716)

### 📦️ Dependency Updates

- replace dependency @tsconfig/node22 with @tsconfig/node24 by
@renovate[bot] in [#7618](#7618)

### 📦 Registry

- add aqua backend for smithy by @jdx in
[#7661](#7661)
- remove low-usage asdf plugins by @jdx in
[#7701](#7701)
- disable mirrord test by @jdx in
[#7703](#7703)
- use vfox-dotnet as default backend by @jdx in
[#7704](#7704)
- use vfox-lua as default lua backend by @jdx in
[#7706](#7706)
- add vfox backend for redis by @jdx in
[#7709](#7709)
- use vfox-postgres as default postgres backend by @jdx in
[#7710](#7710)
- use github backend for kotlin by @jdx in
[#7711](#7711)
- add vfox backend for leiningen by @jdx in
[#7714](#7714)
- use pipx backend for meson by @jdx in
[#7712](#7712)
- use github backend for crystal by @jdx in
[#7715](#7715)
- use conda backend for sqlite by @jdx in
[#7718](#7718)
- use conda backend for make by @jdx in
[#7719](#7719)
- swift-package-list use github backend by @jdx in
[#7720](#7720)

### Chore

- increase macos release build timeout to 90 minutes by @jdx in
[#7725](#7725)

### New Contributors

- @yannrouillard made their first contribution in
[#7681](#7681)
- @stk0vrfl0w made their first contribution in
[#7696](#7696)

## 📦 Aqua Registry Updates

#### New Packages (4)

- [`chevdor/tera-cli`](https://github.com/chevdor/tera-cli)
- [`goforj/wire`](https://github.com/goforj/wire)
- [`gravitational/teleport`](https://github.com/gravitational/teleport)
- [`jackchuka/mdschema`](https://github.com/jackchuka/mdschema)

#### Updated Packages (2)

- [`ollama/ollama`](https://github.com/ollama/ollama)
- [`twpayne/chezmoi`](https://github.com/twpayne/chezmoi)
netbsd-srcmastr pushed a commit to NetBSD/pkgsrc that referenced this pull request Jan 22, 2026
## [2026.1.5](https://github.com/jdx/mise/compare/v2026.1.4..v2026.1.5) - 2026-01-19

### 🚀 Features

- **(complete)** add PowerShell completion support by @jdx in [#7746](jdx/mise#7746)
- **(release)** add LLM-generated prose summary to release notes by @jdx in [#7737](jdx/mise#7737)
- **(vfox)** add semver Lua module for version sorting by @jdx in [#7739](jdx/mise#7739)
- **(vfox)** add rolling release support with checksum tracking by @jdx in [#7757](jdx/mise#7757)
- dry filetask parsing and validation by @makp0 in [#7738](jdx/mise#7738)

### 🐛 Bug Fixes

- **(completions)** bump usage-cli to 2.13.1 for PowerShell support by @jdx in [#7756](jdx/mise#7756)
- schema missing env required string variant by @vadimpiven in [#7734](jdx/mise#7734)
- validate unknown fields in filetask headers by @makp0 in [#7733](jdx/mise#7733)
- disable schemacrawler test by @jdx in [#7743](jdx/mise#7743)
- replace double forward slash with single slash in get_task_lists by @collinstevens in [#7744](jdx/mise#7744)
- require LLM for release notes and include aqua section by @jdx in [#7745](jdx/mise#7745)
- preserve {{ version }} in tool options during config load by @jdx in [#7755](jdx/mise#7755)

### 📚 Documentation

- add documentation URL structure guidance to CLAUDE.md by @jdx in [#7740](jdx/mise#7740)
- add pitchfork promotion by @jdx in [#7747](jdx/mise#7747)

### 📦️ Dependency Updates

- relax version constraints and update dependencies by @jdx in [#7736](jdx/mise#7736)
- lock file maintenance by @renovate[bot] in [#7749](jdx/mise#7749)

### Chore

- bump xx to 2.3.1 by @jdx in [#7753](jdx/mise#7753)

### New Contributors

- @collinstevens made their first contribution in [#7744](jdx/mise#7744)
- @makp0 made their first contribution in [#7738](jdx/mise#7738)
- @vadimpiven made their first contribution in [#7734](jdx/mise#7734)

## [2026.1.4](https://github.com/jdx/mise/compare/v2026.1.3..v2026.1.4) - 2026-01-17

### 🚀 Features

- **(conda)** add dependency locking for reproducible installations by @jdx in [#7708](jdx/mise#7708)
- **(http)** add JSON filter syntax for version extraction by @jdx in [#7707](jdx/mise#7707)
- **(http)** add version_expr support and Tera templating by @jdx in [#7723](jdx/mise#7723)
- **(task)** add [monorepo].config_roots for explicit config root listing by @jdx in [#7705](jdx/mise#7705)
- **(task)** support env vars in task dependencies by @jdx in [#7724](jdx/mise#7724)

### 🐛 Bug Fixes

- **(conda)** fix hardcoded library paths in conda packages by @jdx in [#7713](jdx/mise#7713)
- **(env)** avoid venv/go backend deadlock during env resolution by @stk0vrfl0w in [#7696](jdx/mise#7696)
- **(locked)** exempt tool stubs from lockfile requirements by @jdx in [#7729](jdx/mise#7729)
- **(python)** sort CPython versions at end of ls-remote output by @jdx in [#7721](jdx/mise#7721)
- **(task)** resolve remote task files before display and validation commands by @yannrouillard in [#7681](jdx/mise#7681)
- **(task)** support monorepo paths in `mise tasks deps` by @chadxz in [#7699](jdx/mise#7699)
- **(task)** resolve all monorepo path hints in deps by @chadxz in [#7698](jdx/mise#7698)

### 📚 Documentation

- remove outdated roadmap page by @jdx in [#7726](jdx/mise#7726)

### ⚡ Performance

- **(task)** fix task-ls cached performance regression by @jdx in [#7716](jdx/mise#7716)

### 📦️ Dependency Updates

- replace dependency @tsconfig/node22 with @tsconfig/node24 by @renovate[bot] in [#7618](jdx/mise#7618)

### 📦 Registry

- add aqua backend for smithy by @jdx in [#7661](jdx/mise#7661)
- remove low-usage asdf plugins by @jdx in [#7701](jdx/mise#7701)
- disable mirrord test by @jdx in [#7703](jdx/mise#7703)
- use vfox-dotnet as default backend by @jdx in [#7704](jdx/mise#7704)
- use vfox-lua as default lua backend by @jdx in [#7706](jdx/mise#7706)
- add vfox backend for redis by @jdx in [#7709](jdx/mise#7709)
- use vfox-postgres as default postgres backend by @jdx in [#7710](jdx/mise#7710)
- use github backend for kotlin by @jdx in [#7711](jdx/mise#7711)
- add vfox backend for leiningen by @jdx in [#7714](jdx/mise#7714)
- use pipx backend for meson by @jdx in [#7712](jdx/mise#7712)
- use github backend for crystal by @jdx in [#7715](jdx/mise#7715)
- use conda backend for sqlite by @jdx in [#7718](jdx/mise#7718)
- use conda backend for make by @jdx in [#7719](jdx/mise#7719)
- swift-package-list use github backend by @jdx in [#7720](jdx/mise#7720)

### Chore

- increase macos release build timeout to 90 minutes by @jdx in [#7725](jdx/mise#7725)

### New Contributors

- @yannrouillard made their first contribution in [#7681](jdx/mise#7681)
- @stk0vrfl0w made their first contribution in [#7696](jdx/mise#7696)

## [2026.1.3](https://github.com/jdx/mise/compare/v2026.1.2..v2026.1.3) - 2026-01-16

### 🚀 Features

- **(s3)** add S3 backend for private artifact storage by @jdx in [#7668](jdx/mise#7668)
- **(upgrade)** use installed_tool completer for mise upgrade by @jdx in [#7670](jdx/mise#7670)
- **(upgrade)** add --exclude flag to mise upgrade command by @jdx in [#7669](jdx/mise#7669)
- add no hooks and no env flags by @aacebedo in [#7560](jdx/mise#7560)

### 🐛 Bug Fixes

- **(backend)** allow upgrading vfox backend tools with symlinked installations by @TyceHerrman in [#7012](jdx/mise#7012)
- **(backend)** reject architecture mismatches in asset selection by @jdx in [#7672](jdx/mise#7672)
- **(backend)** canonicalize symlink target before installs check by @jdx in [#7671](jdx/mise#7671)
- **(npm)** avoid circular dependency when npm is in dependencies by @AprilNEA in [#7644](jdx/mise#7644)
- **(self-update)** skip update when already at latest version by @jdx in [#7666](jdx/mise#7666)
- fall back to GITHUB_TOKEN for github.com by @subdigital in [#7667](jdx/mise#7667)
- GitHub token fallback by @subdigital in [#7673](jdx/mise#7673)
- inherit tasks from parent configs in monorepos by @chadxz in [#7643](jdx/mise#7643)

### 📚 Documentation

- **(contributing)** update registry examples by @scop in [#7660](jdx/mise#7660)
- **(contributing)** update registry PR title rule by @scop in [#7663](jdx/mise#7663)
- remove 404 link from contributing by @opswole in [#7692](jdx/mise#7692)
- clarify that backend plugins should sort the version list by @ofalvai in [#7680](jdx/mise#7680)

### 📦️ Dependency Updates

- update ghcr.io/jdx/mise:alpine docker digest to 11f659e by @renovate[bot] in [#7685](jdx/mise#7685)
- update ghcr.io/jdx/mise:copr docker digest to 3adaea4 by @renovate[bot] in [#7686](jdx/mise#7686)
- update ghcr.io/jdx/mise:deb docker digest to 8bbca53 by @renovate[bot] in [#7687](jdx/mise#7687)
- update ghcr.io/jdx/mise:rpm docker digest to de81415 by @renovate[bot] in [#7688](jdx/mise#7688)
- update mcr.microsoft.com/devcontainers/rust:1 docker digest to 282e805 by @renovate[bot] in [#7690](jdx/mise#7690)
- update rust docker digest to bed2d7f by @renovate[bot] in [#7691](jdx/mise#7691)

### 📦 Registry

- add oh-my-posh by @scop in [#7659](jdx/mise#7659)
- add bibtex-tidy (npm:bibtex-tidy) by @3w36zj6 in [#7677](jdx/mise#7677)
- remove misconfigured bin_path option from kscript by @risu729 in [#7693](jdx/mise#7693)

### New Contributors

- @AprilNEA made their first contribution in [#7644](jdx/mise#7644)
- @opswole made their first contribution in [#7692](jdx/mise#7692)
- @subdigital made their first contribution in [#7673](jdx/mise#7673)
- @aacebedo made their first contribution in [#7560](jdx/mise#7560)
netbsd-srcmastr pushed a commit to NetBSD/pkgsrc that referenced this pull request Jan 25, 2026
## [2026.1.5](https://github.com/jdx/mise/compare/v2026.1.4..v2026.1.5) - 2026-01-19

### 🚀 Features

- **(complete)** add PowerShell completion support by @jdx in [#7746](jdx/mise#7746)
- **(release)** add LLM-generated prose summary to release notes by @jdx in [#7737](jdx/mise#7737)
- **(vfox)** add semver Lua module for version sorting by @jdx in [#7739](jdx/mise#7739)
- **(vfox)** add rolling release support with checksum tracking by @jdx in [#7757](jdx/mise#7757)
- dry filetask parsing and validation by @makp0 in [#7738](jdx/mise#7738)

### 🐛 Bug Fixes

- **(completions)** bump usage-cli to 2.13.1 for PowerShell support by @jdx in [#7756](jdx/mise#7756)
- schema missing env required string variant by @vadimpiven in [#7734](jdx/mise#7734)
- validate unknown fields in filetask headers by @makp0 in [#7733](jdx/mise#7733)
- disable schemacrawler test by @jdx in [#7743](jdx/mise#7743)
- replace double forward slash with single slash in get_task_lists by @collinstevens in [#7744](jdx/mise#7744)
- require LLM for release notes and include aqua section by @jdx in [#7745](jdx/mise#7745)
- preserve {{ version }} in tool options during config load by @jdx in [#7755](jdx/mise#7755)

### 📚 Documentation

- add documentation URL structure guidance to CLAUDE.md by @jdx in [#7740](jdx/mise#7740)
- add pitchfork promotion by @jdx in [#7747](jdx/mise#7747)

### 📦️ Dependency Updates

- relax version constraints and update dependencies by @jdx in [#7736](jdx/mise#7736)
- lock file maintenance by @renovate[bot] in [#7749](jdx/mise#7749)

### Chore

- bump xx to 2.3.1 by @jdx in [#7753](jdx/mise#7753)

### New Contributors

- @collinstevens made their first contribution in [#7744](jdx/mise#7744)
- @makp0 made their first contribution in [#7738](jdx/mise#7738)
- @vadimpiven made their first contribution in [#7734](jdx/mise#7734)

## [2026.1.4](https://github.com/jdx/mise/compare/v2026.1.3..v2026.1.4) - 2026-01-17

### 🚀 Features

- **(conda)** add dependency locking for reproducible installations by @jdx in [#7708](jdx/mise#7708)
- **(http)** add JSON filter syntax for version extraction by @jdx in [#7707](jdx/mise#7707)
- **(http)** add version_expr support and Tera templating by @jdx in [#7723](jdx/mise#7723)
- **(task)** add [monorepo].config_roots for explicit config root listing by @jdx in [#7705](jdx/mise#7705)
- **(task)** support env vars in task dependencies by @jdx in [#7724](jdx/mise#7724)

### 🐛 Bug Fixes

- **(conda)** fix hardcoded library paths in conda packages by @jdx in [#7713](jdx/mise#7713)
- **(env)** avoid venv/go backend deadlock during env resolution by @stk0vrfl0w in [#7696](jdx/mise#7696)
- **(locked)** exempt tool stubs from lockfile requirements by @jdx in [#7729](jdx/mise#7729)
- **(python)** sort CPython versions at end of ls-remote output by @jdx in [#7721](jdx/mise#7721)
- **(task)** resolve remote task files before display and validation commands by @yannrouillard in [#7681](jdx/mise#7681)
- **(task)** support monorepo paths in `mise tasks deps` by @chadxz in [#7699](jdx/mise#7699)
- **(task)** resolve all monorepo path hints in deps by @chadxz in [#7698](jdx/mise#7698)

### 📚 Documentation

- remove outdated roadmap page by @jdx in [#7726](jdx/mise#7726)

### ⚡ Performance

- **(task)** fix task-ls cached performance regression by @jdx in [#7716](jdx/mise#7716)

### 📦️ Dependency Updates

- replace dependency @tsconfig/node22 with @tsconfig/node24 by @renovate[bot] in [#7618](jdx/mise#7618)

### 📦 Registry

- add aqua backend for smithy by @jdx in [#7661](jdx/mise#7661)
- remove low-usage asdf plugins by @jdx in [#7701](jdx/mise#7701)
- disable mirrord test by @jdx in [#7703](jdx/mise#7703)
- use vfox-dotnet as default backend by @jdx in [#7704](jdx/mise#7704)
- use vfox-lua as default lua backend by @jdx in [#7706](jdx/mise#7706)
- add vfox backend for redis by @jdx in [#7709](jdx/mise#7709)
- use vfox-postgres as default postgres backend by @jdx in [#7710](jdx/mise#7710)
- use github backend for kotlin by @jdx in [#7711](jdx/mise#7711)
- add vfox backend for leiningen by @jdx in [#7714](jdx/mise#7714)
- use pipx backend for meson by @jdx in [#7712](jdx/mise#7712)
- use github backend for crystal by @jdx in [#7715](jdx/mise#7715)
- use conda backend for sqlite by @jdx in [#7718](jdx/mise#7718)
- use conda backend for make by @jdx in [#7719](jdx/mise#7719)
- swift-package-list use github backend by @jdx in [#7720](jdx/mise#7720)

### Chore

- increase macos release build timeout to 90 minutes by @jdx in [#7725](jdx/mise#7725)

### New Contributors

- @yannrouillard made their first contribution in [#7681](jdx/mise#7681)
- @stk0vrfl0w made their first contribution in [#7696](jdx/mise#7696)

## [2026.1.3](https://github.com/jdx/mise/compare/v2026.1.2..v2026.1.3) - 2026-01-16

### 🚀 Features

- **(s3)** add S3 backend for private artifact storage by @jdx in [#7668](jdx/mise#7668)
- **(upgrade)** use installed_tool completer for mise upgrade by @jdx in [#7670](jdx/mise#7670)
- **(upgrade)** add --exclude flag to mise upgrade command by @jdx in [#7669](jdx/mise#7669)
- add no hooks and no env flags by @aacebedo in [#7560](jdx/mise#7560)

### 🐛 Bug Fixes

- **(backend)** allow upgrading vfox backend tools with symlinked installations by @TyceHerrman in [#7012](jdx/mise#7012)
- **(backend)** reject architecture mismatches in asset selection by @jdx in [#7672](jdx/mise#7672)
- **(backend)** canonicalize symlink target before installs check by @jdx in [#7671](jdx/mise#7671)
- **(npm)** avoid circular dependency when npm is in dependencies by @AprilNEA in [#7644](jdx/mise#7644)
- **(self-update)** skip update when already at latest version by @jdx in [#7666](jdx/mise#7666)
- fall back to GITHUB_TOKEN for github.com by @subdigital in [#7667](jdx/mise#7667)
- GitHub token fallback by @subdigital in [#7673](jdx/mise#7673)
- inherit tasks from parent configs in monorepos by @chadxz in [#7643](jdx/mise#7643)

### 📚 Documentation

- **(contributing)** update registry examples by @scop in [#7660](jdx/mise#7660)
- **(contributing)** update registry PR title rule by @scop in [#7663](jdx/mise#7663)
- remove 404 link from contributing by @opswole in [#7692](jdx/mise#7692)
- clarify that backend plugins should sort the version list by @ofalvai in [#7680](jdx/mise#7680)

### 📦️ Dependency Updates

- update ghcr.io/jdx/mise:alpine docker digest to 11f659e by @renovate[bot] in [#7685](jdx/mise#7685)
- update ghcr.io/jdx/mise:copr docker digest to 3adaea4 by @renovate[bot] in [#7686](jdx/mise#7686)
- update ghcr.io/jdx/mise:deb docker digest to 8bbca53 by @renovate[bot] in [#7687](jdx/mise#7687)
- update ghcr.io/jdx/mise:rpm docker digest to de81415 by @renovate[bot] in [#7688](jdx/mise#7688)
- update mcr.microsoft.com/devcontainers/rust:1 docker digest to 282e805 by @renovate[bot] in [#7690](jdx/mise#7690)
- update rust docker digest to bed2d7f by @renovate[bot] in [#7691](jdx/mise#7691)

### 📦 Registry

- add oh-my-posh by @scop in [#7659](jdx/mise#7659)
- add bibtex-tidy (npm:bibtex-tidy) by @3w36zj6 in [#7677](jdx/mise#7677)
- remove misconfigured bin_path option from kscript by @risu729 in [#7693](jdx/mise#7693)

### New Contributors

- @AprilNEA made their first contribution in [#7644](jdx/mise#7644)
- @opswole made their first contribution in [#7692](jdx/mise#7692)
- @subdigital made their first contribution in [#7673](jdx/mise#7673)
- @aacebedo made their first contribution in [#7560](jdx/mise#7560)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants