Skip to content

refactor(clockreceiver): restore convention from PR-B3 drift#213

Merged
trilamsr merged 1 commit into
mainfrom
pr-clockreceiver-convention-cleanup
May 31, 2026
Merged

refactor(clockreceiver): restore convention from PR-B3 drift#213
trilamsr merged 1 commit into
mainfrom
pr-clockreceiver-convention-cleanup

Conversation

@trilamsr

Copy link
Copy Markdown
Contributor

Summary

Cross-cut review cleanup of #205 (clockreceiver port off internal/pipeline). Two convention drifts caught when reviewing the merged PR against peer receivers; both are pure realignment, no behavior change.

Root cause

#205 ported clockreceiver from internal/pipeline+consumer to the upstream receiver.Factory shape. The port worked, but two package-surface decisions diverged from every other component package in the repo:

  1. type Receiver struct exported. Every peer keeps the concrete struct package-private:

    • containerStdoutReceiver (components/receivers/containerstdout)
    • k8sEventsReceiver (components/receivers/k8sevents)
    • kernelEventsReceiver (components/receivers/kernelevents)
    • ncclfrReceiver (components/receivers/nccl_fr)
    • pyspyReceiver (components/receivers/pyspy)

    The factory is the only exported constructor — callers stitch via OCB, never by importing the concrete struct. git grep clockreceiver.Receiver returns zero external hits, confirming no caller depended on the exported name. Restore convention.

  2. Local type componenttest struct{} test stub. The fake component.Host in clockreceiver_test.go shadowed the upstream package go.opentelemetry.io/collector/component/componenttest — which is already in go.mod at v0.153.0 and is what every peer test uses (componenttest.NewNopHost()). The local stub was invented for no reason; peer ports #208 (containerstdout) and #209 (k8sevents) use the upstream helper directly.

Neither drift is a workaround for an upstream blocker — both are pure convention misses caught post-merge. This PR is the root-cause fix.

Changes

  • Rename ReceiverclockReceiver across clockreceiver.go, factory.go (comment), selftel_test.go (type-assertion).
  • Drop local componenttest{} stub from clockreceiver_test.go; replace usage with upstream componenttest.NewNopHost().
  • Add doc comment on clockReceiver explaining the package-private convention so a future drift fails review.

Net diff: 4 files, +23/-23 LOC.

Test plan

  • make check (fmt + tidy + lint + vet + mod-verify) — green
  • go test -race ./components/receivers/clockreceiver/... — green
  • Verified no external clockreceiver.Receiver callers exist (grep -rn 'clockreceiver\.Receiver' --include='*.go' returns nothing)
  • Verified componenttest.NewNopHost() is the peer-receiver pattern (containerstdout, kernelevents, nccl_fr, k8sevents)
NONE

Cross-cut review drift from #205. No behavior change — package surface
realignment to match every other component package in the repo.

1. Rename `clockreceiver.Receiver` -> `clockReceiver` (package-private).
   All peer receivers (containerStdoutReceiver, k8sEventsReceiver,
   kernelEventsReceiver, ncclfrReceiver, pyspyReceiver) keep the concrete
   struct lowercase; the factory is the only exported surface — callers
   stitch via OCB, not by importing the struct. #205 unilaterally went
   exported. Restore convention.

2. Delete local `type componenttest struct{}` test stub that shadowed
   upstream `go.opentelemetry.io/collector/component/componenttest`.
   Replace usage with `componenttest.NewNopHost()` from the upstream
   package (already in go.mod via the v0.153.0 stack). Peer ports #208
   (containerstdout) and #209 (k8sevents) use the upstream helper —
   #205 invented a local stub for no reason.

`make check` + `go test -race ./components/receivers/clockreceiver/...` green.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

Signed-off-by: Tri Lam <tri@maydow.com>
@trilamsr trilamsr enabled auto-merge (squash) May 31, 2026 08:56
@trilamsr trilamsr merged commit ccc2f63 into main May 31, 2026
13 checks passed
@trilamsr trilamsr deleted the pr-clockreceiver-convention-cleanup branch May 31, 2026 09: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.

1 participant