Skip to content

[dataloader-core] Runtime OpenTelemetry API import is undeclaredย #562

Description

@kang-heewon

๐Ÿšจ [P2] [dataloader-core] Runtime OpenTelemetry API import is undeclared

Category: Packaging/Public API Effort: S Confidence: High
Evidence: ๋ฐœ๊ฒฌ 1๊ฑด ยท ์˜ํ–ฅ ํŒŒ์ผ 2๊ฐœ ยท hotspot=false ยท bugfix churn=0ํšŒ

๐Ÿ› ์ƒ์„ธ ๋‚ด์šฉ

  • ์ฃผ์š” ์œ„์น˜: packages/dataloader-core/src/libs/BatchLoader.ts:3
  • ์ถ”๊ฐ€ ๋ฐœ์ƒ ์œ„์น˜:
    • packages/dataloader-core/package.json:24-29 โ€” dependencies omit @opentelemetry/api
    • packages/dataloader-core/README.md โ€” documents OpenTelemetry integration and install as pnpm add @croco/dataloader-core
  • ๋ฌธ์ œ ์ฝ”๋“œ:
import { recordError } from '@croco/telemetry-api';
import { context, trace } from '@opentelemetry/api';

@croco/dataloader-core directly imports OpenTelemetry API objects at runtime, but its published dependency list only includes Croco packages such as @croco/telemetry-api; it does not declare @opentelemetry/api directly.

  • ์™œ ๋ฌธ์ œ์ธ๊ฐ€?
    Under pnpm/published-package isolation, a package must declare the packages it imports directly. A clean consumer that installs only @croco/dataloader-core can fail to load BatchLoader unless another incidental dependency hoists @opentelemetry/api. This is a packaging contract issue, distinct from existing dataloader runtime behavior issues.

๐Ÿ›  ์ œ์•ˆ ํ•ด๊ฒฐ ๋ฐฉ์•ˆ

  1. Add @opentelemetry/api to packages/dataloader-core/package.json dependencies or peerDependencies + devDependencies according to the intended consumer contract.
  2. Align the version range with the rest of the monorepo telemetry packages.
  3. Add a pack/install smoke test that imports @croco/dataloader-core from a clean fixture.

โœ… Acceptance Criteria

  • @croco/dataloader-core declares every direct runtime dependency it imports, including @opentelemetry/api.
  • A clean consumer can install and import BatchLoader without relying on transitive/hoisted dependencies.
  • CI has a dependency-boundary or pack/import smoke check for this package.

๐Ÿ›ก Regression Prevention

Add a package dependency audit that compares non-relative runtime imports in packages/*/src with each package's dependencies/peerDependencies.

๐Ÿ”— Related

  • Files: packages/dataloader-core/src/libs/BatchLoader.ts, packages/dataloader-core/package.json, packages/dataloader-core/README.md
  • Related issues: none found by duplicate search

Generated by issue-find v2 (severity=P2, evidence_score=high)

Metadata

Metadata

Assignees

Labels

P2Priority 2 issuetech-debtTechnical debt

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions