Skip to content

ci(typecheck): every package type-checks or is ledgered — the tsup hole becomes a ratchet (#4311) - #4324

Merged
os-zhuang merged 1 commit into
mainfrom
claude/framework-type-check-missing-1dhwcz
Jul 31, 2026
Merged

ci(typecheck): every package type-checks or is ledgered — the tsup hole becomes a ratchet (#4311)#4324
os-zhuang merged 1 commit into
mainfrom
claude/framework-type-check-missing-1dhwcz

Conversation

@os-zhuang

Copy link
Copy Markdown
Contributor

落地 #4311 的建议 1(覆盖率棘轮,先接入已干净的包)。不动任何 src——纯管线改动,零修复成本,立刻锁死回归。

实测(main @ e5a4d26,即 issue 审计后一个 commit)

逐包 cd && tsc --noEmit(与 issue 同方法),聚合结果与 issue 完全一致:48 干净 / 29 失败 / 1 无 tsconfig(console)。issue 指认的 18 个含 code-tier 错误的包全部在 29 之内;另 11 个仅 config-tier/noise。原始错误合计 858。

改了什么

  1. scripts/check-type-check-coverage.mjs(新,进 CI) —— 声明式覆盖棘轮,对齐 objectui 侧同名 gate 的治理形态(声明式、带理由、只减不增),结构仿 check-published-files.mjs:
    • COVERED:每个 workspace 包要么声明 typecheck script,要么在脚本内置的 DEBT(实测错误数 + note)/ EXEMPT(理由)台账里。新包必须以覆盖状态进场,台账只能变短。
    • REAL:typecheck script 必须真的调 tsc。
    • RUNNABLE:turbo.json 必须声明 typecheck 任务、根 typecheck 必须聚合它、lint.yml 必须执行它(check:generated 台账缺 check:variant-docs 分类——#4177 落地后本地 wrapper 在 main 上直接红 #4203 的教训:只在本地跑的 gate 会烂掉)。
    • RECONCILED:双向对账——已毕业或已消失的包留着台账条目即报错。
    • 自带 --self-test(12 个语义用例),先自测后运行(仓库惯例)。
  2. 42 个干净包新增 "typecheck": "tsc --noEmit"(加上已有的 6 个 = 48 覆盖);turbo run typecheck 任务(dependsOn: ^build,tsc 经各依赖的 dist/*.d.ts 解析 workspace 导入)。
  3. lint.yml typecheck 作业两步:装依赖后立刻跑覆盖 gate(只读 package.json,亚秒);build 后跑 turbo run typecheck --filter='./packages/*' --filter='./packages/*/*' --filter='./apps/*'(裸 ./packages/* 只匹配直接子目录,见 build 步注释;examples 与 downstream-contract 保留各自的专用步骤——它们是语义不同的 gate)。本地已全量验证:105 tasks successful。
  4. DEBT 台账 29 条(28 个包 + workspace root):每条记实测原始数 + issue 的分层注记,避免把 types(107,全 config)/core(91,仅 3 真错)误读成重灾区、或把 driver-sql(241,全真错)误读成配置问题。
  5. AGENTS.md 增补 pnpm typecheck 与棘轮说明;空 changeset(仿 fix(dx): per-package lint scripts stop existing where they can only mislead (#4276) #4304:dev scripts + CI,不发版)。

没做什么(仍归 #4311)

  • 不修任何 code-tier 错误——按 issue 的表烧线(driver-sql 241 独占 63%,单一 playbook,适合单独集中修)。
  • 不做 config-tier 模板(建议 2,tsconfig.test.json 统一消 288 处)。
  • TS7006 的 noImplicitAny 决策(issue 明确要求单独拍板)。

包毕业路径:修完错 → 加 typecheck script → 同一 PR 删台账条目(删漏/删多都会被 gate 拦下)。

本地验证:覆盖 gate + self-test ✅;turbo run typecheck(CI 同命令)105/105 ✅;lint.yml YAML ✅;check:generated --reconcile-only ✅;changeset gates ✅;eslint(新脚本)✅。

Closes 部分不写——本 PR 不关闭 #4311(code-tier 修复与 config 模板仍开放),只落地其建议 1。

🤖 Generated with Claude Code

https://claude.ai/code/session_011m13wbaZziPveBdtQthrXd


Generated by Claude Code

…le becomes a ratchet (#4311)

66 of 77 workspace packages build with tsup (esbuild transpile, no type
check), vitest never type-checks, and the CI typecheck job covered four
targets — so for most packages nothing read src/ or the tests with tsc
at all. #4311 measured the hole: 380 code-tier errors across 18 packages,
241 of them driver-sql tests feeding authored-shape literals into the
freshly narrowed QueryAST.

Re-measured per-package `tsc --noEmit` on main @ e5a4d26; aggregates
match the issue exactly (48 clean / 29 failing / 1 no-tsconfig):

- The 48 clean packages (42 new scripts + 6 pre-existing) now declare
  `typecheck`, run by a new `turbo run typecheck` task (dependsOn ^build)
  wired into lint.yml's typecheck job after the workspace build. The
  clean set is locked against regression from today.
- The 29 failing ones (858 raw errors) are frozen in a DEBT ledger in
  scripts/check-type-check-coverage.mjs, each entry carrying its measured
  count and the issue's code/config/noise triage so a config-tier pile
  (types: 107, core: 91-with-3-real) is never mistaken for real breakage
  or the reverse (driver-sql: 241, all real). @objectstack/console is
  EXEMPT: no TypeScript sources.
- The coverage gate (self-tested, reconciled in both directions) fails
  when a package is neither covered nor ledgered, when a ledger entry
  goes stale, or when the turbo task / root aggregator / CI step is
  deleted — the ledger can only shrink.

Root `pnpm typecheck` aggregates the task locally; AGENTS.md documents
the ratchet. Empty changeset: dev scripts and CI only, releases nothing.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011m13wbaZziPveBdtQthrXd
@vercel

vercel Bot commented Jul 31, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

1 Skipped Deployment
Project Deployment Actions Updated (UTC)
objectstack Ignored Ignored Jul 31, 2026 6:04am

Request Review

@github-actions github-actions Bot added documentation Improvements or additions to documentation ci/cd dependencies Pull requests that update a dependency file tooling labels Jul 31, 2026
@github-actions

Copy link
Copy Markdown
Contributor

📓 Docs Drift Check

This PR changes 41 package(s): @objectstack/account, @objectstack/setup, @objectstack/studio, @objectstack/cli, @objectstack/client-react, @objectstack/client, @objectstack/connector-mcp, @objectstack/connector-openapi, @objectstack/connector-rest, @objectstack/connector-slack, @objectstack/formula, @objectstack/lint, @objectstack/mcp, @objectstack/metadata-core, @objectstack/metadata-fs, @objectstack/objectql, @objectstack/platform-objects, @objectstack/driver-mongodb, @objectstack/embedder-openai, @objectstack/knowledge-memory, @objectstack/plugin-audit, @objectstack/plugin-auth, @objectstack/plugin-dev, @objectstack/plugin-email, @objectstack/plugin-hono-server, @objectstack/plugin-pinyin-search, @objectstack/plugin-reports, @objectstack/plugin-security, @objectstack/plugin-sharing, @objectstack/plugin-webhooks, @objectstack/http-conformance, @objectstack/sdui-parser, @objectstack/service-cluster-redis, @objectstack/service-package, @objectstack/service-sms, @objectstack/spec, @objectstack/trigger-api, @objectstack/trigger-record-change, @objectstack/trigger-schedule, @objectstack/verify, objectstack-vscode.

130 hand-written doc(s) reference the affected code and may need an implementation-accuracy re-verification:

  • content/docs/ai/actions-as-tools.mdx (via @objectstack/mcp)
  • content/docs/ai/agents.mdx (via @objectstack/mcp, @objectstack/spec)
  • content/docs/ai/connect-mcp.mdx (via @objectstack/mcp)
  • content/docs/ai/index.mdx (via @objectstack/mcp)
  • content/docs/ai/knowledge-rag.mdx (via @objectstack/embedder-openai, @objectstack/knowledge-memory)
  • content/docs/ai/natural-language-queries.mdx (via @objectstack/mcp)
  • content/docs/ai/skills-reference.mdx (via packages/cli, packages/client-react, packages/client, @objectstack/spec)
  • content/docs/ai/skills.mdx (via @objectstack/spec)
  • content/docs/api/client-sdk.mdx (via @objectstack/cli, @objectstack/client-react, @objectstack/client, @objectstack/plugin-reports, @objectstack/spec)
  • content/docs/api/data-flow.mdx (via @objectstack/cli, @objectstack/client)
  • content/docs/api/environment-routing.mdx (via @objectstack/cli, @objectstack/client, @objectstack/spec)
  • content/docs/api/error-catalog.mdx (via @objectstack/cli, @objectstack/client, @objectstack/spec)
  • content/docs/api/error-handling-client.mdx (via @objectstack/spec)
  • content/docs/api/error-handling-server.mdx (via @objectstack/spec)
  • content/docs/api/index.mdx (via @objectstack/mcp, @objectstack/spec)
  • content/docs/automation/approvals.mdx (via @objectstack/spec)
  • content/docs/automation/connectors.mdx (via @objectstack/connector-mcp, @objectstack/connector-openapi, @objectstack/connector-rest, @objectstack/spec)
  • content/docs/automation/flows.mdx (via @objectstack/spec)
  • content/docs/automation/hook-bodies.mdx (via packages/cli, @objectstack/lint, packages/spec)
  • content/docs/automation/hooks.mdx (via @objectstack/spec)
  • content/docs/automation/index.mdx (via @objectstack/spec)
  • content/docs/automation/webhooks.mdx (via packages/plugins/plugin-webhooks, @objectstack/spec)
  • content/docs/automation/workflows.mdx (via @objectstack/spec)
  • content/docs/concepts/architecture.mdx (via @objectstack/spec)
  • content/docs/concepts/design-principles.mdx (via packages/spec)
  • content/docs/concepts/index.mdx (via @objectstack/spec)
  • content/docs/concepts/metadata-driven.mdx (via @objectstack/spec)
  • content/docs/concepts/metadata-lifecycle.mdx (via @objectstack/metadata-core, @objectstack/metadata-fs, @objectstack/objectql, packages/spec)
  • content/docs/concepts/north-star.mdx (via packages/apps/account, packages/spec)
  • content/docs/data-modeling/analytics.mdx (via @objectstack/spec)
  • content/docs/data-modeling/drivers.mdx (via @objectstack/driver-mongodb, @objectstack/spec)
  • content/docs/data-modeling/external-datasources.mdx (via @objectstack/spec)
  • content/docs/data-modeling/field-types.mdx (via @objectstack/spec)
  • content/docs/data-modeling/fields.mdx (via @objectstack/spec)
  • content/docs/data-modeling/formulas.mdx (via @objectstack/formula, packages/objectql, @objectstack/spec)
  • content/docs/data-modeling/index.mdx (via @objectstack/spec)
  • content/docs/data-modeling/objects.mdx (via @objectstack/spec)
  • content/docs/data-modeling/queries.mdx (via @objectstack/plugin-pinyin-search, @objectstack/spec)
  • content/docs/data-modeling/schema-design.mdx (via @objectstack/spec)
  • content/docs/data-modeling/seed-data.mdx (via @objectstack/spec)
  • content/docs/data-modeling/validation-rules.mdx (via @objectstack/spec)
  • content/docs/data-modeling/validation.mdx (via @objectstack/formula, @objectstack/spec)
  • content/docs/deployment/backup-restore.mdx (via @objectstack/cli)
  • content/docs/deployment/cli.mdx (via @objectstack/cli, @objectstack/plugin-audit, @objectstack/plugin-auth, @objectstack/plugin-security, @objectstack/spec)
  • content/docs/deployment/environment-variables.mdx (via @objectstack/mcp, @objectstack/plugin-pinyin-search, @objectstack/service-cluster-redis)
  • content/docs/deployment/migration-from-objectql.mdx (via @objectstack/objectql)
  • content/docs/deployment/production-readiness.mdx (via @objectstack/plugin-audit, @objectstack/plugin-auth)
  • content/docs/deployment/self-hosting.mdx (via @objectstack/cli)
  • content/docs/deployment/troubleshooting.mdx (via @objectstack/spec)
  • content/docs/deployment/validating-metadata.mdx (via @objectstack/spec)
  • content/docs/deployment/vercel.mdx (via @objectstack/objectql)
  • content/docs/getting-started/build-with-claude-code.mdx (via @objectstack/spec)
  • content/docs/getting-started/common-patterns.mdx (via @objectstack/spec)
  • content/docs/getting-started/examples.mdx (via @objectstack/spec)
  • content/docs/getting-started/glossary.mdx (via @objectstack/driver-mongodb)
  • content/docs/getting-started/quick-reference.mdx (via @objectstack/spec)
  • content/docs/getting-started/quick-start.mdx (via @objectstack/spec)
  • content/docs/getting-started/your-first-project.mdx (via @objectstack/cli, @objectstack/client, @objectstack/connector-mcp, @objectstack/connector-openapi, @objectstack/connector-rest, @objectstack/plugin-hono-server, @objectstack/spec)
  • content/docs/kernel/cluster.mdx (via @objectstack/service-cluster-redis, @objectstack/spec)
  • content/docs/kernel/contracts/auth-service.mdx (via packages/spec)
  • content/docs/kernel/contracts/cache-service.mdx (via packages/spec)
  • content/docs/kernel/contracts/data-engine.mdx (via @objectstack/spec)
  • content/docs/kernel/contracts/index.mdx (via @objectstack/spec)
  • content/docs/kernel/contracts/metadata-service.mdx (via packages/spec)
  • content/docs/kernel/contracts/storage-service.mdx (via packages/spec)
  • content/docs/kernel/index.mdx (via packages/spec)
  • content/docs/kernel/runtime-services/data-service.mdx (via packages/cli, packages/client)
  • content/docs/kernel/runtime-services/email-service.mdx (via packages/spec)
  • content/docs/kernel/runtime-services/index.mdx (via packages/cli, packages/client, packages/spec)
  • content/docs/kernel/runtime-services/queue-service.mdx (via packages/spec)
  • content/docs/kernel/runtime-services/sharing-service.mdx (via @objectstack/plugin-security, packages/spec)
  • content/docs/kernel/runtime-services/sms-service.mdx (via packages/spec)
  • content/docs/kernel/runtime-services/storage-service.mdx (via packages/spec)
  • content/docs/kernel/services-checklist.mdx (via @objectstack/objectql, @objectstack/driver-mongodb, @objectstack/plugin-auth, @objectstack/spec)
  • content/docs/kernel/services.mdx (via @objectstack/objectql, @objectstack/spec)
  • content/docs/permissions/access-recipes.mdx (via packages/plugins/plugin-security)
  • content/docs/permissions/authentication.mdx (via @objectstack/cli, @objectstack/client, @objectstack/objectql, @objectstack/plugin-auth, @objectstack/plugin-hono-server, @objectstack/service-sms)
  • content/docs/permissions/authorization.mdx (via @objectstack/lint, @objectstack/mcp, @objectstack/plugin-security, packages/plugins/plugin-sharing, @objectstack/spec)
  • content/docs/permissions/explain.mdx (via @objectstack/plugin-security)
  • content/docs/permissions/permission-sets.mdx (via @objectstack/spec)
  • content/docs/permissions/permissions-matrix.mdx (via packages/plugins/plugin-security, packages/plugins/plugin-sharing, @objectstack/spec)
  • content/docs/permissions/positions.mdx (via @objectstack/spec)
  • content/docs/permissions/rls.mdx (via @objectstack/spec)
  • content/docs/permissions/sharing-rules.mdx (via @objectstack/plugin-security, @objectstack/spec)
  • content/docs/permissions/sso.mdx (via @objectstack/plugin-auth)
  • content/docs/plugins/adding-a-metadata-type.mdx (via @objectstack/spec)
  • content/docs/plugins/development.mdx (via @objectstack/spec)
  • content/docs/plugins/index.mdx (via @objectstack/objectql, @objectstack/plugin-auth, @objectstack/plugin-hono-server, @objectstack/plugin-security, @objectstack/spec)
  • content/docs/plugins/packages.mdx (via @objectstack/cli, @objectstack/client-react, @objectstack/client, @objectstack/formula, @objectstack/mcp, @objectstack/objectql, @objectstack/platform-objects, @objectstack/driver-mongodb, @objectstack/plugin-audit, @objectstack/plugin-auth, @objectstack/plugin-dev, @objectstack/plugin-email, @objectstack/plugin-hono-server, @objectstack/plugin-reports, @objectstack/plugin-security, @objectstack/plugin-sharing, @objectstack/plugin-webhooks, @objectstack/service-package, @objectstack/service-sms, @objectstack/spec, objectstack-vscode)
  • content/docs/protocol/backward-compatibility.mdx (via @objectstack/spec)
  • content/docs/protocol/diagram.mdx (via packages/spec)
  • content/docs/protocol/kernel/config-resolution.mdx (via @objectstack/spec)
  • content/docs/protocol/kernel/http-protocol.mdx (via @objectstack/plugin-auth, @objectstack/plugin-hono-server)
  • content/docs/protocol/kernel/i18n-standard.mdx (via @objectstack/spec)
  • content/docs/protocol/kernel/index.mdx (via @objectstack/objectql, @objectstack/spec)
  • content/docs/protocol/kernel/lifecycle.mdx (via @objectstack/spec)
  • content/docs/protocol/kernel/plugin-spec.mdx (via @objectstack/cli, @objectstack/spec)
  • content/docs/protocol/kernel/realtime-protocol.mdx (via @objectstack/cli, @objectstack/client, @objectstack/service-cluster-redis)
  • content/docs/protocol/kernel/runtime-capabilities.mdx (via @objectstack/spec)
  • content/docs/protocol/knowledge.mdx (via @objectstack/mcp, @objectstack/knowledge-memory, @objectstack/spec)
  • content/docs/protocol/objectql/index.mdx (via @objectstack/spec)
  • content/docs/protocol/objectql/query-syntax.mdx (via packages/objectql, @objectstack/driver-mongodb, @objectstack/spec)
  • content/docs/protocol/objectql/schema.mdx (via @objectstack/spec)
  • content/docs/protocol/objectql/security.mdx (via packages/plugins/plugin-sharing, packages/spec)
  • content/docs/protocol/objectql/state-machine.mdx (via @objectstack/objectql, @objectstack/spec)
  • content/docs/protocol/objectui/actions.mdx (via @objectstack/spec)
  • content/docs/protocol/objectui/concept.mdx (via @objectstack/spec)
  • content/docs/protocol/objectui/index.mdx (via @objectstack/spec)
  • content/docs/protocol/objectui/layout-dsl.mdx (via @objectstack/spec)
  • content/docs/protocol/objectui/record-alert.mdx (via @objectstack/formula, @objectstack/spec)
  • content/docs/protocol/objectui/widget-contract.mdx (via @objectstack/spec)
  • content/docs/releases/implementation-status.mdx (via @objectstack/cli, @objectstack/client, @objectstack/mcp, @objectstack/objectql, @objectstack/driver-mongodb, @objectstack/plugin-audit, @objectstack/plugin-auth, @objectstack/plugin-hono-server, @objectstack/plugin-security, @objectstack/plugin-sharing, @objectstack/plugin-webhooks, @objectstack/spec, @objectstack/trigger-api, @objectstack/trigger-record-change, @objectstack/trigger-schedule, @objectstack/verify)
  • content/docs/releases/index.mdx (via @objectstack/spec)
  • content/docs/releases/v12.mdx (via @objectstack/metadata-core, @objectstack/spec)
  • content/docs/releases/v13.mdx (via @objectstack/spec)
  • content/docs/releases/v14.mdx (via @objectstack/service-sms)
  • content/docs/releases/v15.mdx (via @objectstack/formula, @objectstack/plugin-pinyin-search, @objectstack/verify)
  • content/docs/releases/v16.mdx (via @objectstack/cli, @objectstack/client, @objectstack/formula, @objectstack/plugin-hono-server, @objectstack/spec, @objectstack/trigger-schedule)
  • content/docs/releases/v17.mdx (via @objectstack/plugin-dev, @objectstack/spec)
  • content/docs/releases/v9.mdx (via @objectstack/objectql, @objectstack/plugin-auth, @objectstack/spec)
  • content/docs/ui/actions.mdx (via @objectstack/spec)
  • content/docs/ui/audience-based-interfaces.mdx (via packages/plugins/plugin-security)
  • content/docs/ui/create-vs-edit-form.mdx (via @objectstack/spec)
  • content/docs/ui/dashboards.mdx (via @objectstack/plugin-security, @objectstack/spec)
  • content/docs/ui/forms.mdx (via @objectstack/spec)
  • content/docs/ui/index.mdx (via @objectstack/spec)
  • content/docs/ui/public-data-collection.mdx (via @objectstack/spec)
  • content/docs/ui/setup-app.mdx (via @objectstack/setup, @objectstack/platform-objects, @objectstack/spec)
  • content/docs/ui/translations.mdx (via @objectstack/spec)
  • content/docs/ui/views.mdx (via @objectstack/spec)

Advisory only. To re-verify, run the docs-accuracy-audit workflow scoped to these files:
node scripts/docs-audit/affected-docs.mjs origin/main → pass the list as args.docs.

@os-zhuang
os-zhuang marked this pull request as ready for review July 31, 2026 06:28
@os-zhuang
os-zhuang merged commit f292fde into main Jul 31, 2026
19 checks passed
@os-zhuang
os-zhuang deleted the claude/framework-type-check-missing-1dhwcz branch July 31, 2026 06:28
os-zhuang added a commit that referenced this pull request Jul 31, 2026
…ackages were hiding their tests (#4311) (#4348)

#4324 counted a package covered the moment it declared a `typecheck` script.
But `tsc --noEmit` reads the package's own tsconfig.json, and 27 of the 48
packages that gate waved through `exclude` `**/*.test.ts` from exactly that
file — so COVERED and REAL both passed while nothing read the test layer, which
is the source #4311 is actually about. Measured by lifting each exclusion and
re-running the package's own config: 568 test files, 1451 errors, behind a
green check. `spec` alone hid 902 across 272 files; `plugin-approvals` hid 467,
more than driver-sql's 241, with a clean src.

What changed:

1. New TESTS_COVERED invariant + TEST_DEBT ledger in
   scripts/check-type-check-coverage.mjs. A package that excludes its own tests
   must carry a measured entry; RECONCILED runs both ways, so dropping the
   exclusion without deleting the entry fails, and so does the reverse. Test
   files are counted under the tsconfig's `include` roots — `exclude` only
   subtracts from what `include` selected, and several packages keep a sibling
   `test/` tree that `include` never mentions. Six new self-test cases (18
   total). The summary line now prints both layers: reporting only the src
   figure is how 48/77 read as green over 568 unchecked files.

2. Nine packages that were already clean with tests included had the exclusion
   deleted outright: sdui-parser, plugin-audit, plugin-email, plugin-hono-server,
   plugin-pinyin-search, plugin-reports, trigger-api, trigger-schedule,
   connector-slack.

3. 44 relative imports repaired to carry the `.js` extension NodeNext requires.
   This was filed as config-tier noise and is not: an unresolved import degrades
   every symbol it names to `any`, and the callbacks over those symbols then
   report TS7006 "implicitly any". The 44 fixes closed 110 errors across eight
   packages — and exposed 12 real defects in service-settings (manifest action
   handlers called without `namespace`/`actionId`) that the broken imports had
   been masking. Its ledger entry said "no code-tier finding"; it was wrong in
   both directions, and now says so.

4. Nine packages graduate out of DEBT (types, create-objectstack, service-cache,
   service-i18n, service-job, service-messaging, service-queue, service-realtime,
   plugin-approvals). Three tsconfig repairs: `types:["node"]` for types (107
   errors, one line), `exclude: src/templates` for create-objectstack (scaffolding
   copied verbatim by tsup, whose imports resolve in the generated project, not
   this one), `lib: ES2021` for plugin-approvals (String.replaceAll).
   plugin-approvals graduates on src only and carries a TEST_DEBT entry — its 13
   test files are still excluded.

Coverage: 48/77 -> 57/77 src-covered; DEBT 29 -> 20 entries (679 raw errors);
TEST_DEBT 21 entries (652 files, 2243 raw errors) newly visible.
No non-test source file changes. Verified: self-test 18/18, coverage gate,
`turbo run typecheck` 119/119, `pnpm test` 132/132, eslint, check:published-files.


Claude-Session: https://claude.ai/code/session_011m13wbaZziPveBdtQthrXd

Co-authored-by: Claude <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci/cd dependencies Pull requests that update a dependency file documentation Improvements or additions to documentation size/l tooling

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants