Skip to content

Update dependency ranges and lockfiles#766

Merged
dahlia merged 18 commits into
fedify-dev:mainfrom
dahlia:update-deps
May 13, 2026
Merged

Update dependency ranges and lockfiles#766
dahlia merged 18 commits into
fedify-dev:mainfrom
dahlia:update-deps

Conversation

@dahlia
Copy link
Copy Markdown
Member

@dahlia dahlia commented May 12, 2026

Description

This PR updates a set of direct dependencies in small, reviewable batches and refreshes both committed lockfiles. The goal is to bring routine dependencies current while avoiding unnecessary version bumps for framework integration packages that still need to support older framework versions.

The updates cover build and test tooling, type packages, logging packages, parser/image/security utilities, database/runtime dependencies, Cloudflare Workers types, and OpenTelemetry packages. Compatibility-sensitive framework dependencies such as Next.js, Express, Koa, Astro, H3, and Preact were left alone unless they changed indirectly through lockfile peer resolution.

Notable manifest changes:

  • deno.json and pnpm-workspace.yaml now agree on the updated direct dependency ranges.
  • deno.lock and pnpm-lock.yaml were refreshed after each dependency batch.
  • asn1js is now declared from the root deno.json.
  • packages/init/src/json/kv.json and packages/init/src/json/mq.json now generate MySQL projects with the updated mysql2 range.
  • packages/cfworkers/deno.json now points its experimental Workers types import at the updated @cloudflare/workers-types range.

No dependency API migration was needed for these updates, so the source changes are limited to dependency metadata, lockfiles, and generated project templates.

Verification

  • mise run --jobs=1 test
  • mise run test-each mysql
  • mise run test-each cfworkers

I used --jobs=1 for the full test task because the default parallel dependency execution can make the Node and Bun CLI tests share and remove the same relative test_output_* directories. The same full test task passed when its dependent test tasks ran sequentially.

dahlia added 17 commits May 12, 2026 19:49
Update the shared tsdown version used by package builds and Deno
imports.  Migrate tsdown configs from deprecated external and
noExternal options to the deps namespace introduced by newer tsdown
releases.

Assisted-by: Codex:gpt-5.5
Update the shared @logtape/file and @logtape/logtape catalog entries
for Deno and Node/Bun consumers.  Refresh the Deno and pnpm lockfiles
so all workspace packages resolve the newer Logtape patch release.

Assisted-by: Codex:gpt-5.5
Update @types/estree in the lint package and refresh the lockfiles so
Deno, Node.js, and Bun resolve the newer type package consistently.

Assisted-by: Codex:gpt-5.5
Update the shared @types/amqplib catalog entry used by the AMQP
package and docs. Refresh the pnpm lockfile so Node.js and Bun resolve
the newer type package consistently.

Assisted-by: Codex:gpt-5.5
Update the CLI package to depend on smol-toml 1.6.1 in both npm and
Deno manifests. Refresh the lockfiles so all supported runtimes resolve
the same parser version.

Assisted-by: Codex:gpt-5.5
Update the CLI image rendering dependencies in the Jimp package
family to 1.6.1 across npm and Deno manifests. Refresh the lockfiles
for the corresponding image parser transitive updates.

Assisted-by: Codex:gpt-5.5
Update the documentation site's direct sanitize-url dependency to 7.1.2
and refresh the corresponding pnpm lockfile entries.

Assisted-by: Codex:gpt-5.5
Update asn1js to 3.0.10 across npm and Deno dependency
metadata. Move the Deno import to the workspace root so Fedify and
vocab-runtime share the same specifier.

Assisted-by: Codex:gpt-5.5
Update the documentation site's direct dayjs dependency to 1.11.20
and refresh the corresponding pnpm lockfile entries.

Assisted-by: Codex:gpt-5.5
Update yaml for @fedify/vocab-tools while keeping framework
compatibility ranges unchanged.  The lockfiles now resolve yaml 2.9.0
for Deno and npm consumers.

Assisted-by: Codex:gpt-5.5
Update tsx for the Express, Fastify, and Koa examples and for the
Fedify package test tooling.  This keeps framework dependency ranges
unchanged while refreshing the runner used by these packages.

Assisted-by: Codex:gpt-5.5
Update dax for the init package and the root Deno import map.  This
keeps framework integration dependency ranges unchanged while refreshing
the shell helper used by init tooling.

Assisted-by: Codex:gpt-5.5
Update Valibot for the CLI configuration schema.  This refreshes
not change any framework integration dependency ranges.

Assisted-by: Codex:gpt-5.5
Refresh mysql2 for the MySQL adapter and init templates.  This keeps
the generated MySQL dependency aligned with the catalog without changing
framework integration dependency ranges.

Assisted-by: Codex:gpt-5.5
Refresh es-toolkit across the workspace catalog, Deno imports, and
package manifests so every direct range resolves to the same current
release.

Assisted-by: Codex:gpt-5.5
Refresh @cloudflare/workers-types across the catalog and Deno imports so
Cloudflare Workers integrations use the current type definitions.

Assisted-by: Codex:gpt-5.5
Refresh the direct OpenTelemetry dependency ranges used by Fedify,
debugger, fixture, docs, and related workspace packages.  This keeps the
2.x SDK packages and semantic conventions aligned with the current
compatible releases.

Assisted-by: Codex:gpt-5.5
@dahlia dahlia added this to the Fedify 2.3 milestone May 12, 2026
@dahlia dahlia self-assigned this May 12, 2026
@dahlia dahlia added the dependencies Dependency updates and issues label May 12, 2026
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 12, 2026

Review Change Stack
No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: a6e4e5f0-c99a-427a-a42a-f7fa5d1bbad7

📥 Commits

Reviewing files that changed from the base of the PR and between b0b663b and e4b9251.

📒 Files selected for processing (1)
  • packages/fedify/tsdown.config.ts

📝 Walkthrough

Walkthrough

This PR updates dependency versions across the codebase and migrates tsdown build configurations. Central catalogs in deno.json and pnpm-workspace.yaml define new version constraints; individual packages reference these updates. The asn1js dependency is removed from fedify and vocab-runtime packages. All tsdown.config.ts files are migrated from external to deps.neverBundle/deps.alwaysBundle configuration options.

Changes

Dependency updates and tsdown configuration migration

Layer / File(s) Summary
Central dependency catalog updates
deno.json, pnpm-workspace.yaml
Root imports and catalog entries are bumped for @cloudflare/workers-types, @david/dax, @logtape/*, @opentelemetry/*, @types/amqplib, asn1js, es-toolkit, mysql2, and tsdown.
Package-specific dependency version updates
packages/cli/deno.json, packages/cli/package.json, packages/init/package.json, packages/denokv/deno.json, packages/sqlite/package.json, packages/vocab-tools/{deno.json,package.json}, packages/webfinger/deno.json, packages/cfworkers/deno.json, packages/fedify/package.json, examples/{express,fastify,koa}/package.json, docs/package.json, pnpm-workspace.yaml
Individual packages update tsx, @jimp/*, jimp, valibot, es-toolkit, yaml, mysql2, @david/dax, @types/estree, and other dependency pins to newer versions.
asn1js dependency removal
packages/fedify/deno.json, packages/vocab-runtime/deno.json
Removed asn1js import entries from the Deno manifests.
tsdown configuration API migration
packages/create/tsdown.config.ts, packages/init/tsdown.config.ts, packages/fixture/tsdown.config.ts, packages/fedify/tsdown.config.ts, packages/vocab-runtime/tsdown.config.ts, packages/vocab-tools/tsdown.config.ts, packages/vocab/tsdown.config.ts
All tsdown configs migrated from external to deps.neverBundle and deps.alwaysBundle. packages/fedify adds isTestingHelperImporter() and conditional bundling logic for @fedify/fixture.

🎯 3 (Moderate) | ⏱️ ~20 minutes

Suggested labels

component/build

Suggested reviewers

  • 2chanhaeng
  • sij411
🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title 'Update dependency ranges and lockfiles' clearly and concisely summarizes the main changes in the PR, which involves updating dependencies across multiple files and refreshing lockfiles.
Description check ✅ Passed The description is directly related to the changeset, providing detailed context about dependency updates, affected packages, manifest changes, and verification steps performed.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@dahlia dahlia requested review from 2chanhaeng and sij411 May 12, 2026 16:15
Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@packages/fedify/tsdown.config.ts`:
- Around line 48-61: The neverBundle callback in the deps config uses the wrong
signature; change its parameters to match tsdown v0.22.0 — accept (id: string,
parentId?: string, isResolved?: boolean) — and update internal uses to call
isTestingHelperImporter(parentId) instead of importer, keeping the same return
logic (return true for node: prefix, return for non-@fedify/fixture, otherwise
return !isTestingHelperImporter(parentId)); leave alwaysBundle as-is.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: eb3b9bfd-5654-4b18-b836-1ffcfbc253db

📥 Commits

Reviewing files that changed from the base of the PR and between 74d18f0 and b0b663b.

⛔ Files ignored due to path filters (2)
  • deno.lock is excluded by !**/*.lock
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (28)
  • deno.json
  • docs/package.json
  • examples/express/package.json
  • examples/fastify/package.json
  • examples/koa/package.json
  • packages/cfworkers/deno.json
  • packages/cli/deno.json
  • packages/cli/package.json
  • packages/create/tsdown.config.ts
  • packages/denokv/deno.json
  • packages/fedify/deno.json
  • packages/fedify/package.json
  • packages/fedify/tsdown.config.ts
  • packages/fixture/tsdown.config.ts
  • packages/init/package.json
  • packages/init/src/json/kv.json
  • packages/init/src/json/mq.json
  • packages/init/tsdown.config.ts
  • packages/lint/package.json
  • packages/sqlite/package.json
  • packages/vocab-runtime/deno.json
  • packages/vocab-runtime/tsdown.config.ts
  • packages/vocab-tools/deno.json
  • packages/vocab-tools/package.json
  • packages/vocab-tools/tsdown.config.ts
  • packages/vocab/tsdown.config.ts
  • packages/webfinger/deno.json
  • pnpm-workspace.yaml
💤 Files with no reviewable changes (2)
  • packages/vocab-runtime/deno.json
  • packages/fedify/deno.json

Comment thread packages/fedify/tsdown.config.ts
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 updates various dependencies across the monorepo, including core packages like @cloudflare/workers-types, @opentelemetry, and others, while also refactoring build configurations in packages/fedify, packages/fixture, packages/init, packages/vocab-runtime, packages/vocab-tools, and packages/vocab to use the deps.neverBundle pattern instead of external. I have reviewed the comments provided and determined that they offer specific, actionable guidance on path normalization and build configuration consistency, which are valuable for maintaining the project's build integrity.

Comment thread packages/fedify/tsdown.config.ts
Comment thread packages/fedify/tsdown.config.ts Outdated
@codecov
Copy link
Copy Markdown

codecov Bot commented May 12, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ All tests successful. No failed tests found.
see 1 file with indirect coverage changes

🚀 New features to boost your workflow:
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

The neverBundle callback's second parameter should be `parentId?: string`
(optional) per tsdown/rolldown's ExternalOptionFunction type, not
`importer: string | undefined` (required). While TypeScript's callback
compatibility allows passing fewer parameters, aligning the name and
optionality with the documented API makes the intent clearer and avoids
any future type mismatch if the type is checked strictly.

fedify-dev#766 (comment)

Assisted-by: Claude Code:claude-sonnet-4-6
@dahlia
Copy link
Copy Markdown
Member Author

dahlia commented May 13, 2026

/gemini review

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 performs a comprehensive update of dependencies across the entire monorepo, affecting core packages, examples, and documentation. Key changes include upgrading various libraries such as OpenTelemetry, Cloudflare Workers types, and es-toolkit, alongside refactoring tsdown configurations to align with version 0.22.0 by transitioning from external and noExternal options to the new deps property. I have no feedback to provide.

@dahlia
Copy link
Copy Markdown
Member Author

dahlia commented May 13, 2026

@codex review

@chatgpt-codex-connector
Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Another round soon, please!

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@dahlia dahlia merged commit 36ac23d into fedify-dev:main May 13, 2026
17 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Dependency updates and issues

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants