Skip to content

ci: pin Lint workflow to Deno v2.x stable#3128

Merged
bartlomieju merged 1 commit into
mainfrom
orch/fix-ci-deno-canary
May 14, 2026
Merged

ci: pin Lint workflow to Deno v2.x stable#3128
bartlomieju merged 1 commit into
mainfrom
orch/fix-ci-deno-canary

Conversation

@fibibot
Copy link
Copy Markdown
Contributor

@fibibot fibibot commented May 14, 2026

Summary

The lint and link check workflow has been failing on every recent PR
with an MDX rendering error in /styleguide/typography.mdx:

TypeError: Cannot resolve module "lume/jsx-runtime":
relative URL with a cannot-be-a-base base
  at MDXEngine.render (https://cdn.jsdelivr.net/gh/lumeland/lume@3.1.2/plugins/mdx.ts:96:21)

Root cause

.github/workflows/lint.yml sets deno-version: canary. The lume MDX
plugin compiles MDX to JS, wraps the output in URL.createObjectURL(new Blob(...)),
and dynamic-imports the resulting blob: URL. The compiled output references
"lume/jsx-runtime", which is supposed to be resolved via the import map in
deno.json:

"lume/jsx-runtime": "https://cdn.jsdelivr.net/gh/oscarotero/ssx@0.1.14/jsx-runtime.ts"

A recent canary regression broke bare-specifier resolution when the importer
is a blob: URL — Deno now tries to resolve "lume/jsx-runtime" as a relative
URL against the blob: referrer (which is a cannot-be-a-base URL) and errors out before the import map is consulted.

The same build succeeds locally on deno 2.7.14 (stable). The deploy/deno/docs
preview build (which doesn't use canary) has been green throughout.

Fix

Pin to the v2.x stable channel. This keeps automatic stable-version uptake
without exposure to unreleased regressions. Drop-in change — no other workflow
uses canary.

When canary stabilises this regression (likely in the next stable bump that
includes the underlying URL resolver change), v2.x will pick it up naturally.

cc @bartlomieju — fixes the CI breakage you flagged on #3114.

Closes bartlomieju/orchid-inbox#57

Test plan

`deno-version: canary` started failing all PRs with an MDX rendering
error in /styleguide/typography.mdx:

  TypeError: Cannot resolve module "lume/jsx-runtime":
  relative URL with a cannot-be-a-base base
    at MDXEngine.render (.../lume@3.1.2/plugins/mdx.ts:96:21)

The MDX plugin dynamic-imports compiled output from a `blob:` URL; a
canary regression broke bare-specifier resolution from `blob:` referrers,
so the import map's `lume/jsx-runtime` entry no longer applies. The same
build succeeds locally on `deno 2.7.14` stable.

Pin to the v2.x stable channel so the workflow tracks stable releases
without exposure to unreleased regressions.
@bartlomieju bartlomieju merged commit 6e32e0c into main May 14, 2026
2 checks passed
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