Skip to content

Add Deno ecosystem support#14364

Open
sbs44 wants to merge 1 commit intodependabot:mainfrom
sbs44:add-deno-ecosystem
Open

Add Deno ecosystem support#14364
sbs44 wants to merge 1 commit intodependabot:mainfrom
sbs44:add-deno-ecosystem

Conversation

@sbs44
Copy link

@sbs44 sbs44 commented Mar 4, 2026

What are you trying to accomplish?

Adds Deno as a new ecosystem, enabling Dependabot to update dependencies in deno.json and deno.jsonc import maps. Parses both jsr: and npm: specifiers (scoped, unscoped, versionless, and subpath) and queries jsr.io and npmjs.org registries directly for version lookups.

Gated behind enable-beta-ecosystems per NEW_ECOSYSTEMS.md.

Closes #2417

Anything you want to highlight for special attention from reviewers?

  • No lockfile regeneration yet — this PR updates version constraints in deno.json/deno.jsonc only. deno.lock regeneration (artifact updating) is planned as a follow-up.
  • JSONC supportdeno.jsonc files can contain comments and trailing commas. The parser strips these before JSON parsing.
  • Registry approach — queries jsr.io (/@scope/name/meta.json) and npmjs.org (/name) APIs directly rather than shelling out to the Deno CLI.
  • MetadataFinder returns source URLs for npm packages but not jsr packages (jsr.io doesn't expose repository metadata in its API).

How will you know you've accomplished your goal?

45 RSpec tests pass across all components (Version, Requirement, FileFetcher, FileParser, UpdateChecker, FileUpdater, MetadataFinder). Rubocop and Sorbet (typed strict) pass cleanly. Dry-run tested against real Deno projects containing scoped npm packages, versionless specifiers, and subpath imports — all dependencies detected and correct updates proposed.

Checklist

  • I have run the complete test suite to ensure all tests and linters pass.
  • I have thoroughly tested my code changes to ensure they work as expected, including adding additional tests for new functionality.
  • I have written clear and descriptive commit messages.
  • I have provided a detailed description of the changes in the pull request, including the problem it addresses, how it fixes the problem, and any relevant details about the implementation.
  • I have ensured that the code is well-documented and easy to understand.

@sbs44 sbs44 requested a review from a team as a code owner March 4, 2026 23:50
@sbs44 sbs44 force-pushed the add-deno-ecosystem branch 3 times, most recently from 75e0ae8 to 661538f Compare March 4, 2026 23:57
@Hajime-san
Copy link

I think that you could also refer to the implementation in Renovate, although it hasn't been merged yet.
Renovate also supports workspace and node-compat package.json. It does not include support for private registries via .npmrc currently.

Add support for Deno's deno.json/deno.jsonc import maps with jsr: and
npm: specifiers. Queries jsr.io and npmjs.org registries directly for
version lookups. Gated behind beta ecosystems flag.

Handles scoped packages (@scope/name), versionless specifiers, subpath
imports, and JSONC comments.

Closes dependabot#2417
@sbs44 sbs44 force-pushed the add-deno-ecosystem branch from 661538f to bb1cb2e Compare March 5, 2026 05:30
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.

Support deno

2 participants