Skip to content

fix: publish extension compatibility matrix - #760

Merged
kang-heewon merged 5 commits into
trunkfrom
fix/625-extension-matrix
Jun 15, 2026
Merged

fix: publish extension compatibility matrix#760
kang-heewon merged 5 commits into
trunkfrom
fix/625-extension-matrix

Conversation

@kang-heewon

@kang-heewon kang-heewon commented Jun 15, 2026

Copy link
Copy Markdown
Member

Fixes #625.

Summary

Croco now publishes an official generated extension and adapter compatibility matrix for provider, integration, transport, and presentation packages. The matrix is rendered into the root README and docs reference page from docs/package-catalog.json, with required configuration, runtime support, peer dependencies, maturity, and CI smoke status shown as separate fields.

변경 사항

  • Added extension matrix metadata for the current provider, integration, transport, and presentation packages in docs/package-catalog.json.
  • Extended the package docs catalog generator to validate matrix coverage, render the README section, render packages/docs/src/content/docs/en/reference/extension-matrix.md, and report matrix coverage by group.
  • Added drift checking so every public package in the configured extension groups must have matrix metadata before pnpm docs:catalog:check passes.
  • Added generator regressions for the generated matrix outputs and missing extension-group metadata.
  • Added the hook-generated patch changeset for @croco/docs.

Verification

  • pnpm docs:catalog:write - passed, generated README/report/docs matrix artifacts.
  • pnpm docs:catalog:check - passed.
  • pnpm exec vitest run scripts/tests/package-docs-check.spec.ts --reporter verbose - passed, 5 tests.
  • pnpm exec oxlint scripts/package-docs-check.mts scripts/tests/package-docs-check.spec.ts - passed.
  • pnpm exec oxfmt --check scripts/package-docs-check.mts scripts/tests/package-docs-check.spec.ts - passed.
  • pnpm --filter @croco/docs docs:build - passed and rendered /en/reference/extension-matrix/index.html; existing Typedoc/Starlight warnings only.
  • pnpm changeset-required:check - passed before the hook-generated changeset.
  • pnpm check - passed.
  • git diff --cached --check - passed before commit.
  • pnpm test && pnpm typecheck - passed sequentially.
  • Pre-commit hook passed: oxlint and oxfmt.
  • Pre-push hook passed: existing changeset found, full pnpm test 197/197 cached tasks, and full pnpm typecheck 196/196 cached tasks.

Self-review

  • Correctness/regression: PASS. Issue [ecosystem] Publish an official extension and adapter compatibility matrix #625 acceptance is covered by a browsable docs reference page, the README matrix, required env/config and peer dependency columns, separate maturity and CI smoke columns, and a regression that fails when an extension-group package lacks matrix metadata.
  • API/security/compatibility/release: PASS. Runtime package behavior, public exports, dependencies, and lockfile entries are unchanged. Matrix values are documentation/catalog metadata, peer dependency values are derived from package manifests, and release metadata is limited to the @croco/docs patch changeset.
  • Maintainability/minimality: PASS. The change extends the existing package catalog generator and generated artifacts instead of adding a new source of truth or dependency. Generated API docs churn from docs builds was excluded from the final diff.

Risk

Low. The main risk is metadata accuracy in the hand-curated matrix, but the generator now prevents new extension-group packages from silently missing matrix coverage.

Summary by CodeRabbit

릴리스 노트

  • 새로운 기능

    • 확장 및 어댑터 호환성 매트릭스 추가: Provider, Integration, Transport, Presentation 범주별로 패키지의 런타임 지원(Node, Lambda, Workers, Frontend) 여부를 확인할 수 있습니다.
  • 문서

    • Extension & Adapter Matrix 참조 페이지 신규 추가
    • README에 패키지-어댑터 호환성 매트릭스 섹션 추가

@coderabbitai

coderabbitai Bot commented Jun 15, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

@kang-heewon, we couldn't start this review because you've reached your PR review rate limit.

More reviews will be available in 45 minutes and 38 seconds. Learn how PR review limits work.

Your organization has used up its prepaid credits, and credit purchases are no longer available. Enable the review add-on in the billing tab to keep reviews running — you're only billed for reviews past your plan's rate limits ($0.25/file).

⌛ How to resolve this issue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans include higher PR review limits than trial, open-source, and free plans. In all cases, reviews become available again over time. During sustained high-volume PR review activity, CodeRabbit may temporarily slow when the next review becomes available.

Please see our Fair Usage Limits Policy for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 8394f3eb-71e4-4e7f-9395-e93ca3daa03a

📥 Commits

Reviewing files that changed from the base of the PR and between 645509b and d3a02a2.

📒 Files selected for processing (3)
  • README.md
  • packages/docs/src/content/docs/en/reference/extension-matrix.md
  • scripts/package-docs-check.mts
📝 Walkthrough

Walkthrough

docs/package-catalog.jsonextensionMatrix 최상위 필드를 추가하고, scripts/package-docs-check.mts 스크립트가 이를 파싱해 Provider/Integration/Transport/Presentation 4개 카테고리의 호환 매트릭스를 README, extension-matrix.md, package-docs-report.md에 자동 생성·drift 검증하도록 확장한다.

Changes

Extension & Adapter Compatibility Matrix

Layer / File(s) Summary
타입 계약 및 카탈로그 데이터 스키마
scripts/package-docs-check.mts, docs/package-catalog.json
PackageJson/PackageInfopeerDependencies 필드, CatalogMetadataextensionMatrix 필드, RuntimeKey/ExtensionMetadata/ExtensionRecord/ExtensionMatrixState 타입이 추가된다. docs/package-catalog.json에 Provider/Integration/Transport/Presentation 그룹과 38개 패키지별 domain/adapter/runtimes/requiredEnv/features 메타데이터가 삽입된다.
parseExtensionMatrix 파싱·검증 로직
scripts/package-docs-check.mts
extensionMatrixDocsPath/runtimeOrder 상수 추가, parseExtensionMatrix/parseExtensionMetadata가 그룹-패키지 매핑 검증 및 ExtensionMatrixState 구성을 담당한다. readDependencyKeyspeerDependencies 객체 키를 정규화하며, 카탈로그 상태 로딩 시 파싱 결과가 포함된다.
문서 생성 및 drift 감지
scripts/package-docs-check.mts
쓰기 모드에서 generateExtensionMatrixDocs/appendExtensionMatrixTablesextension-matrix.md와 README 매트릭스 표를 생성·저장한다. 체크 모드에서 기존 파일과 생성 결과를 비교해 drift 위반을 추가한다. formatRuntimeSupport/formatList/formatSmokeStatus 헬퍼가 표 렌더링을 담당한다.
자동 생성 결과물
README.md, docs/package-docs-report.md, packages/docs/src/content/docs/en/reference/extension-matrix.md
README에 Extension & Adapter Matrix 표, 리포트에 extension matrix packages 메트릭과 Extension Matrix 섹션, extension-matrix.md에 런타임 컬럼 설명 및 4개 카테고리별 호환 매트릭스 표가 생성된다.
테스트 및 지원 파일
scripts/tests/package-docs-check.spec.ts, packages/testing/vitest.config.ts, .changeset/52b493b7.md
spec에서 extension-matrix.md 생성 검증, drift 메시지 기대, 메타데이터 누락 실패 케이스가 추가된다. writeCatalogMetadata 헬퍼가 extensionGroups/extensionPackages 옵션을 받도록 확장된다. packages/testing/vitest.config.ts가 신규 추가된다.

Sequence Diagram(s)

sequenceDiagram
  participant CLI as CLI (write/check)
  participant loadCatalogState
  participant parseExtensionMatrix
  participant generateExtensionMatrixDocs
  participant writeGeneratedFile as writeGeneratedFile / driftCheck

  CLI->>loadCatalogState: package-catalog.json 로드
  loadCatalogState->>parseExtensionMatrix: extensionMatrix 메타데이터 전달
  parseExtensionMatrix-->>loadCatalogState: ExtensionMatrixState 반환
  loadCatalogState-->>CLI: CatalogState (extensionMatrix 포함)

  alt write 모드
    CLI->>generateExtensionMatrixDocs: ExtensionMatrixState 전달
    generateExtensionMatrixDocs-->>CLI: extension-matrix.md 콘텐츠 생성
    CLI->>writeGeneratedFile: extension-matrix.md 저장
    CLI->>writeGeneratedFile: README Extension 섹션 저장
  else check 모드
    CLI->>generateExtensionMatrixDocs: ExtensionMatrixState 전달
    generateExtensionMatrixDocs-->>CLI: 생성 결과 반환
    CLI->>writeGeneratedFile: 기존 파일과 비교 → drift 위반 기록
  end
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

🚥 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
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed PR 제목은 변경의 주요 목표인 'extension compatibility matrix' 발행을 명확하게 요약하고 있으며, 모든 파일 변경사항과 일치합니다.
Linked Issues check ✅ Passed PR은 #625의 모든 코딩 요구사항을 충족합니다: docs에서 탐색 가능한 extension matrix 페이지 생성, package-catalog.json에 required env/peer deps/runtime support 메타데이터 추가, maturity와 CI status 분리, 신규 package에 대한 drift 검증 메커니즘 구현.
Out of Scope Changes check ✅ Passed 모든 변경사항이 extension compatibility matrix 구현과 직접적으로 관련되어 있습니다: 문서 생성, 카탈로그 메타데이터 추가, generator 스크립트 확장, 테스트 추가, vitest 설정 추가가 모두 #625 범위 내에 있습니다.

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

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/625-extension-matrix

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.

…trix

# Conflicts:
#	docs/package-docs-report.md
@github-actions

github-actions Bot commented Jun 15, 2026

Copy link
Copy Markdown

📊 Benchmark Results

❌ Some benchmarks failed

Benchmark p75 Threshold Baseline vs Baseline Status
CrocoApp benchmarks 2.6μs - - - ⚠️
EventBusConfig.start (10 handlers) 1.2μs - 9.0μs -86.4%
EventPublisher.publishNow single event 1.4μs - - - ⚠️
DefaultHandlerResolver.resolve × 10 0.1μs - 0.2μs -65.0%
Container.get singleton (cold) 0.8μs - 0.5μs +54.2%
Container.register × 50 components 8.3μs - 8.0μs +3.8%
Container.validate (50 components) 21.8μs - 25.0μs -12.7%
Container.get singleton (warm) 0.3μs - 0.3μs -3.0%
TelemetryRuntime benchmarks 1.5μs - 2.0μs -24.4%

Updated: 2026-06-15T01:54:13.400Z · Commit: fe71148

coderabbitai[bot]
coderabbitai Bot previously requested changes Jun 15, 2026

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 1

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
scripts/package-docs-check.mts (1)

793-800: ⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Documentation Gate 안내가 실제 체크 범위와 불일치합니다.

현재 체크 모드는 README.md, docs/package-docs-report.md뿐 아니라 packages/docs/src/content/docs/en/reference/extension-matrix.md도 드리프트 검사합니다. 안내 문구도 동일 범위를 반영해야 혼선을 줄일 수 있습니다.

✏️ 제안 수정안
 -    "- `pnpm docs:catalog:check`는 README 카탈로그와 문서 커버리지 리포트 drift를 검증합니다.",
 +    "- `pnpm docs:catalog:check`는 README 카탈로그, extension matrix reference 문서, 문서 커버리지 리포트 drift를 검증합니다.",
🤖 Prompt for 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.

In `@scripts/package-docs-check.mts` around lines 793 - 800, The Documentation
Gate guidance text in the lines.push() section does not accurately reflect all
files being checked for drift. Update the guidance to include all three files
that are validated: README.md, docs/package-docs-report.md, and
packages/docs/src/content/docs/en/reference/extension-matrix.md. Ensure the
documentation text comprehensively describes the actual check scope to prevent
confusion about what files are included in the drift validation.
🤖 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 `@scripts/package-docs-check.mts`:
- Around line 956-958: The `formatSmokeStatus` function returns strings that
suggest active CI smoke test execution ("entrypoint smoke + package tests" or
"entrypoint smoke only"), but the function actually only checks whether test
directories exist via `pkg.hasTests`, not actual CI/smoke test execution status.
Either rename the column and update the return strings to reflect what is
actually being checked (e.g., return "has tests" or "no tests" to indicate test
configuration presence), or modify the implementation to actually report CI
smoke test execution results. Ensure the displayed information accurately
represents whether the code checks for test directory existence versus actual
smoke test execution status.

---

Outside diff comments:
In `@scripts/package-docs-check.mts`:
- Around line 793-800: The Documentation Gate guidance text in the lines.push()
section does not accurately reflect all files being checked for drift. Update
the guidance to include all three files that are validated: README.md,
docs/package-docs-report.md, and
packages/docs/src/content/docs/en/reference/extension-matrix.md. Ensure the
documentation text comprehensively describes the actual check scope to prevent
confusion about what files are included in the drift validation.
🪄 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: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 45b2d4c1-abc2-4f72-abdc-8116e5c92102

📥 Commits

Reviewing files that changed from the base of the PR and between fc3b6c7 and 645509b.

📒 Files selected for processing (8)
  • .changeset/52b493b7.md
  • README.md
  • docs/package-catalog.json
  • docs/package-docs-report.md
  • packages/docs/src/content/docs/en/reference/extension-matrix.md
  • packages/testing/vitest.config.ts
  • scripts/package-docs-check.mts
  • scripts/tests/package-docs-check.spec.ts

Comment thread scripts/package-docs-check.mts Outdated
@kang-heewon
kang-heewon dismissed coderabbitai[bot]’s stale review June 15, 2026 02:03

Dismiss stale CodeRabbit requested-changes review: both actionable comments were addressed in d3a02a2, the remaining CodeRabbit status is a billing/rate-limit failure, and the review thread is resolved/outdated.

@kang-heewon
kang-heewon merged commit e5a5f58 into trunk Jun 15, 2026
7 of 8 checks passed
@kang-heewon
kang-heewon deleted the fix/625-extension-matrix branch June 15, 2026 02:04
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.

[ecosystem] Publish an official extension and adapter compatibility matrix

1 participant