chore(docs): switch canonical domain to mise.en.dev#9411
Conversation
Both hostnames serve the same content (symlinked), and we're moving the canonical name to mise.en.dev. This flips every in-repo reference — CLI help text, docs, schemas, install scripts, packaging metadata, e2e fixtures, generated files (man page, mise.usage.kdl, mise.lock) — so the new domain is what users see going forward. The old URL keeps working, so no coordinated cutover is needed. Intentionally left untouched: noreply@mise.jdx.dev / release@mise.jdx.dev email addresses (mailbox routing only exists on the old domain) and the historical CHANGELOG.md entry. scripts/update-redirect.sh: ZONE_ID swapped to the en.dev zone. The RULESET_ID/RULE_ID still need to be re-derived against the new zone before the script is run again. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
There was a problem hiding this comment.
Code Review
This pull request migrates the project domain from mise.jdx.dev to mise.en.dev across all documentation, configuration files, and source code. It also updates the Cloudflare ZONE_ID in the redirect script. A review comment identifies that the RULESET_ID and RULE_ID in the redirect script are still using old values and suggests adding a TODO to prevent script failure.
|
|
||
| # Cloudflare API endpoint for updating redirect rules | ||
| ZONE_ID="90dfd7997bdcfa8579c52d8ee8dd4cd1" # jdx.dev zone ID | ||
| ZONE_ID="531d003297f1f4ae2415b41f7f5da8fa" # en.dev zone ID |
There was a problem hiding this comment.
As noted in the PR description, the RULESET_ID and RULE_ID (on lines 11-12) are still the old values from the jdx.dev zone. Since the ZONE_ID has been updated to the en.dev zone, this script will fail until these IDs are re-derived. Adding a TODO here helps track this requirement within the codebase to prevent accidental execution before the script is fully updated.
| ZONE_ID="531d003297f1f4ae2415b41f7f5da8fa" # en.dev zone ID | |
| # TODO: Update RULESET_ID and RULE_ID for the en.dev zone | |
| ZONE_ID="531d003297f1f4ae2415b41f7f5da8fa" # en.dev zone ID |
Greptile SummaryThis PR performs a mechanical find-and-replace of
Confidence Score: 4/5Safe to merge for runtime behavior; the omission of docs/.vitepress/config.ts means the published docs site will still declare mise.jdx.dev as its canonical domain All 87 changed files are straightforward URL substitutions with no logic changes. The one outstanding P1 — docs/.vitepress/config.ts left with old sitemap.hostname and canonical URL template — was already flagged in prior review comments. Score is capped at 4 by that existing P1. docs/.vitepress/config.ts — not included in this PR, still has 5 hardcoded mise.jdx.dev references controlling the canonical domain Important Files Changed
Flowchart%%{init: {'theme': 'neutral'}}%%
flowchart TD
A[User or Tool] -->|install script| B[mise.run worker]
B -->|redirect| C[mise.en.dev/install.sh]
A -->|version check| D[mise.en.dev/VERSION]
A -->|tarball download| E[mise.en.dev binaries]
F[Docs build] -->|sitemap hostname| G["⚠️ still mise.jdx.dev\ndocs/.vitepress/config.ts not updated"]
F -->|canonical URL per page| G
style G fill:#ffcccc,stroke:#cc0000
Reviews (3): Last reviewed commit: "fix(test): keep gitlab lockfile URL asse..." | Re-trigger Greptile |
There was a problem hiding this comment.
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.
Reviewed by Cursor Bugbot for commit 0b193f4. Configure here.
Restructure the script to iterate over (host, zone, ruleset, rule) tuples so the mise-latest-* redirect can be kept in sync on both jdx.dev and en.dev. Zones whose IDs are still placeholders are skipped with a clear log message rather than producing a silent 404 — the cloudflare-deploy workflow runs this with continue-on-error: true, so a real HTTP failure would be invisible. The en.dev ruleset/rule IDs still need to be filled in; until then only jdx.dev is updated, which matches today's behavior. Addresses review feedback from gemini-code-assist and cursor on #9411. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The Cloudflare redirect rule this script maintained has been disabled, so the script and its workflow step are no longer needed. Removing both also drops the placeholder en.dev IDs introduced earlier in this PR and makes the cloudflare-deploy workflow purely about deploying the worker. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The lockfile URL is whatever the upstream GitLab release asset was published with — that link is registered as mise.jdx.dev and can't be changed from this repo. The user-supplied URLs in mise.toml above can still use mise.en.dev (and the install step proved that works). Caught by e2e-7 on #9411. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Hyperfine Performance
|
| Command | Mean [ms] | Min [ms] | Max [ms] | Relative |
|---|---|---|---|---|
mise-2026.4.22 x -- echo |
21.6 ± 0.2 | 21.1 | 23.5 | 1.00 |
mise x -- echo |
22.1 ± 0.2 | 21.5 | 23.2 | 1.02 ± 0.02 |
mise env
| Command | Mean [ms] | Min [ms] | Max [ms] | Relative |
|---|---|---|---|---|
mise-2026.4.22 env |
21.3 ± 0.6 | 20.6 | 27.5 | 1.00 |
mise env |
21.6 ± 0.2 | 20.9 | 22.5 | 1.01 ± 0.03 |
mise hook-env
| Command | Mean [ms] | Min [ms] | Max [ms] | Relative |
|---|---|---|---|---|
mise-2026.4.22 hook-env |
21.9 ± 0.3 | 21.3 | 24.0 | 1.00 |
mise hook-env |
22.3 ± 0.4 | 21.6 | 25.5 | 1.02 ± 0.02 |
mise ls
| Command | Mean [ms] | Min [ms] | Max [ms] | Relative |
|---|---|---|---|---|
mise-2026.4.22 ls |
22.1 ± 0.2 | 21.5 | 24.1 | 1.00 |
mise ls |
22.8 ± 0.3 | 22.2 | 26.3 | 1.03 ± 0.02 |
xtasks/test/perf
| Command | mise-2026.4.22 | mise | Variance |
|---|---|---|---|
| install (cached) | 162ms | 167ms | -2% |
| ls (cached) | 78ms | 80ms | -2% |
| bin-paths (cached) | 79ms | 81ms | -2% |
| task-ls (cached) | 820ms | 789ms | +3% |
## Summary Add `mise.en.dev` to the list of Cloudflare zones purged at the end of `scripts/publish-s3.sh`. Previously only `jdx.dev` and `mise.run` were being purged. ## Why `install.sh` and `install.sh.minisig` are uploaded to S3 with `cache-control: max-age=86400,s-maxage=86400,public,immutable`. Without an explicit purge per CDN zone, each zone keeps serving the previous release's bytes for up to 24 hours — even after S3 has the new bytes. Since #9411 made `mise.en.dev` the canonical bootstrap host (used by `mise generate tool-stub --bootstrap` and `mise generate bootstrap`), this manifested as: `mise.en.dev/install.sh` serving the v(N-1) script next to a v(N) `install.sh.minisig`, causing minisign verification to fail. Caught today as recurring CI failures on [#9414](#9414) (e2e-0 / e2e-1). The other half — that `scripts/update-redirect.sh` was deleted in #9411 — turned out not to be related; that script only updated a `mise-latest-*` redirect rule, not the install.sh path. The real issue is just the missing purge. ## Test plan - [x] Bash syntax check (`bash -n scripts/publish-s3.sh`) - [x] Verified the en.dev zone ID `531d003297f1f4ae2415b41f7f5da8fa` matches the value previously used in the now-deleted `scripts/update-redirect.sh` (commit `68075d866`) - [ ] On the next release, confirm in the workflow logs that all three purges run, and that `curl https://mise.en.dev/install.sh` returns the new version's content within seconds of the deploy completing 🤖 Generated with [Claude Code](https://claude.com/claude-code) <!-- CURSOR_SUMMARY --> --- > [!NOTE] > **Low Risk** > Low risk: only adjusts post-publish CDN cache purging logic to include an additional zone and reduce duplication; no changes to artifact generation or upload behavior. > > **Overview** > After publishing release artifacts to S3, `scripts/publish-s3.sh` now purges Cloudflare cache for **all** relevant CDN zones via a looped `ZONES` list, adding the missing `en.dev`/`mise.en.dev` zone. > > This replaces the two hardcoded purge calls with a single per-zone purge step to prevent mixed-version `install.sh`/signature artifacts being served from different zones under `immutable` caching. > > <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit e083358. 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.7 (1M context) <noreply@anthropic.com>

Summary
mise.jdx.devover tomise.en.dev(CLI help text, docs, schemas, install scripts, packaging metadata, e2e fixtures, generated files including the man page,mise.usage.kdl, and the lockfile header).scripts/update-redirect.sh:ZONE_IDswapped to the en.dev Cloudflare zone.Intentionally not changed
noreply@mise.jdx.dev/release@mise.jdx.devemail addresses (mailbox routing only exists on the old domain).CHANGELOG.mdentry.Reviewer note
scripts/update-redirect.shstill has the oldRULESET_ID/RULE_ID— those are scoped to the jdx.dev zone and need to be re-derived against the en.dev zone before the script is run again. Flagging here so it isn't forgotten.Test plan
mise run buildmise run lintman/man1/mise.1and a couple ofdocs/cli/*.mdURLs render correctlymise run test:e2e test_http) to confirmmise.en.dev/test-fixtures/...resolves🤖 Generated with Claude Code
Note
Medium Risk
Mostly mechanical URL/hostname rewrites, but it touches distribution-critical paths (install script URLs, version check, packaging repos, Cloudflare worker/test fixtures) where a missed/incorrect domain could break installs or CI/e2e downloads.
Overview
Switches the project’s canonical hostname from
mise.jdx.devtomise.en.devacross the repo, updating docs, CLI help/manpage text, JSON schema$ids, lockfile header generation, and test/fixture URLs.Updates release/install and packaging metadata to fetch assets/keys/repos from
mise.en.dev(including bootstrap/tool-stub generation andmise versionchecks), and adjusts the Cloudflare worker proxy targets accordingly.Removes the Cloudflare deploy workflow’s redirect-update step and deletes
scripts/update-redirect.sh.Reviewed by Cursor Bugbot for commit 57cde68. Bugbot is set up for automated code reviews on this repo. Configure here.