Skip to content

chore(docs): switch canonical domain to mise.en.dev#9411

Merged
jdx merged 4 commits intomainfrom
claude/reverent-kare-7fa044
Apr 26, 2026
Merged

chore(docs): switch canonical domain to mise.en.dev#9411
jdx merged 4 commits intomainfrom
claude/reverent-kare-7fa044

Conversation

@jdx
Copy link
Copy Markdown
Owner

@jdx jdx commented Apr 26, 2026

Summary

  • Swap every in-repo reference to mise.jdx.dev over to mise.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).
  • 86 files changed; both URLs serve the same content (symlinked), so the old URL keeps working — no coordinated cutover required.
  • scripts/update-redirect.sh: ZONE_ID swapped to the en.dev Cloudflare zone.

Intentionally not changed

  • noreply@mise.jdx.dev / release@mise.jdx.dev email addresses (mailbox routing only exists on the old domain).
  • Historical CHANGELOG.md entry.

Reviewer note

scripts/update-redirect.sh still has the old RULESET_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 build
  • mise run lint
  • Spot-check man/man1/mise.1 and a couple of docs/cli/*.md URLs render correctly
  • Run one HTTP-fixture e2e (mise run test:e2e test_http) to confirm mise.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.dev to mise.en.dev across 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 and mise version checks), 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.

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>
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 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.

Comment thread scripts/update-redirect.sh Outdated

# Cloudflare API endpoint for updating redirect rules
ZONE_ID="90dfd7997bdcfa8579c52d8ee8dd4cd1" # jdx.dev zone ID
ZONE_ID="531d003297f1f4ae2415b41f7f5da8fa" # en.dev zone ID
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

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.

Suggested change
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-apps
Copy link
Copy Markdown
Contributor

greptile-apps Bot commented Apr 26, 2026

Greptile Summary

This PR performs a mechanical find-and-replace of mise.jdx.devmise.en.dev across 87 files (CLI help text, docs, schemas, install scripts, packaging metadata, e2e fixtures, man page), and removes the now-unused scripts/update-redirect.sh and its CI step.

  • docs/.vitepress/config.ts was not updated: this file still contains five mise.jdx.dev references — sitemap.hostname (line 35), OG/Twitter image URLs (lines 393/401), the <link rel=\"canonical\"> href injected on every page (line 406), and the sitemap href (line 419). With hostname still set to https://mise.jdx.dev, the generated sitemap and every page's canonical meta tag will advertise the old domain, directly contradicting the stated goal of switching the canonical domain to mise.en.dev. This was flagged in previous review rounds and remains unresolved.

Confidence Score: 4/5

Safe 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

Filename Overview
docs/.vitepress/config.ts NOT included in this PR — still contains 5 hardcoded mise.jdx.dev references (sitemap.hostname line 35, OG/Twitter image URLs lines 393/401, canonicalUrl line 406, sitemap href line 419) that directly control the site's canonical domain; contradicts the PR's stated goal
scripts/update-redirect.sh File deleted; Cloudflare redirect-update step also removed from the CI workflow, making the previous RULESET_ID/RULE_ID concern moot
.github/workflows/cloudflare-deploy.yml Removes the 'Update Redirect' step that called the now-deleted update-redirect.sh script; clean change
src/cli/version.rs VERSION check URL updated to mise.en.dev; straightforward runtime URL swap
cloudflare/workers/mise-run.js Worker redirect targets updated from mise.jdx.dev to mise.en.dev for install.sh and shell-init routes
packaging/standalone/install.envsubst Tarball download URL updated to mise.en.dev; straightforward change
src/lockfile.rs Lockfile header comment URL updated to mise.en.dev; cosmetic change

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
Loading

Reviews (3): Last reviewed commit: "fix(test): keep gitlab lockfile URL asse..." | Re-trigger Greptile

Copy link
Copy Markdown

@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.

Fix All in Cursor

❌ 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.

Comment thread scripts/update-redirect.sh Outdated
jdx and others added 3 commits April 26, 2026 14:07
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>
@github-actions
Copy link
Copy Markdown

Hyperfine Performance

mise x -- echo

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%

@jdx jdx merged commit 8029ff0 into main Apr 26, 2026
37 checks passed
@jdx jdx deleted the claude/reverent-kare-7fa044 branch April 26, 2026 19:51
This was referenced Apr 26, 2026
jdx added a commit that referenced this pull request Apr 26, 2026
## 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>
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.

1 participant