Skip to content

chore: drop plugin/deploy, pin voice-pipeline, scope go.work [skip-tag]#35

Merged
lIang70 merged 4 commits into
mainfrom
chore/cleanup-plugin-deploy-workspace
Apr 23, 2026
Merged

chore: drop plugin/deploy, pin voice-pipeline, scope go.work [skip-tag]#35
lIang70 merged 4 commits into
mainfrom
chore/cleanup-plugin-deploy-workspace

Conversation

@lIang70

@lIang70 lIang70 commented Apr 23, 2026

Copy link
Copy Markdown
Collaborator

[skip-tag] — this PR touches no sdk/sdkx code that warrants a
patch version bump (the one-line sdkx/internal/testenv edit is
env-loading plumbing, not API surface). The marker in the PR title
instructs auto-tag.yml's guard job to skip tagging after merge.
Intended merge strategy: squash (so the PR title becomes the
HEAD commit message the guard inspects).

Summary

Repo-level cleanup in four atomic commits, each reviewable on its own:

  1. drop plugin/ — gRPC plugin protocol is not on the near-term roadmap; delete sources, remove from go.work, drop test-plugin CI job + post-merge vet/build loops, remove from auto-tag module list. The orphan plugin/v0.1.0 tag has been deleted from origin.

  2. drop deploy/ — the directory only held a .env.example, and every env loader probed four candidate paths just to find it. Collapse to a single convention: read a repo-root .env. sdkx/internal/testenv and examples/voice-pipeline/env.go are rewired accordingly.

  3. pin examples/voice-pipeline to sdk v0.1.12 + sdkx v0.1.14, dropping the local replace directives. External consumers now see a reproducible example built against real released versions.

  4. scope go.work to sdk + sdkx — voice-pipeline leaves the workspace (if it stayed in, the workspace would override the pin from commit 3 and we'd never catch "example broken against latest release"). sdk+sdkx stay in the workspace because sdkx imports sdk/recall, sdk/retrieval, sdk/history, which aren't yet in any released sdk tag — the workspace is what lets cross-module edits compile atomically.

Why keep go.work in git at all?

Considered removing it entirely. Verified against reality instead:

  • Last 60 commits on main: 8 (13%) touch both sdk/ and sdkx/, so cross-module atomic edits are a routine need, not a rare one.
  • Kubernetes (the reference Go monorepo with staging modules) commits its go.work; so do most large Go monorepos. The "don't commit go.work" advice is aimed at library authors, not monorepos with tightly-coupled internal modules.
  • Without a committed workspace, sdkx CI would either silently test against stale released sdk (false-green) or require a per-workflow go work init dance.

Committing a narrow workspace (sdk + sdkx only) buys atomic cross-module CI with zero extra CI config.

Test plan

  • make ci green locally (sdk + sdkx via workspace; bench + voice-pipeline via GOWORK=off with pinned deps)
  • CI green on this PR
  • Reviewer spot-checks that removed deploy/ references don't break any other consumer (expected: none — grep deploy only hits test fixtures and the now-updated env loaders)

Made with Cursor

lIang70 added 4 commits April 23, 2026 23:41
The gRPC plugin protocol is not on the roadmap for near-term use and
currently costs CI minutes (test-plugin matrix) without providing
value. Remove the module so the repo matches what is actually shipped:

- delete plugin/ sources (protocol, serve, types, proto gen)
- remove ./plugin from go.work use list
- drop test-plugin job + plugin gate check from ci.yml
- drop plugin from post-merge build/vet loops
- drop plugin from auto-tag module list and Phase 1
- delete local plugin/v0.1.0 tag (remote deletion follows)

Made-with: Cursor
The deploy/ directory only contained a .env.example — no actual
deployment tooling — and forced every env loader to probe four
candidate paths just to find it. Collapse to a single convention:
read a repo-root .env, and let callers export variables directly
if they prefer.

- delete deploy/.env.example
- sdkx/internal/testenv: walk up from cwd to find a repo-root .env
  (no more deploy/ path probing)
- examples/voice-pipeline: drop deploy/.env candidate, keep repo-root
  .env + local .env; update README, main.go error hint, env.go comment
- .gitignore: drop !deploy/** whitelist and !plugin/** (orphaned from
  the previous commit)

Made-with: Cursor
Drop the local `replace` directives that pointed sdk/sdkx back at
../../sdk and ../../sdkx. The example now builds against the latest
released module versions, matching how any external consumer of the
repo would depend on them. This is a prerequisite for removing
go.work: once the workspace is gone, pinning via go.mod is the only
remaining dependency source.

Note: while go.work is still present in the tree it takes precedence
over these require lines; the pin fully takes effect after the
subsequent commit deletes the workspace file.

Made-with: Cursor
voice-pipeline was previously in the workspace so local edits to sdk
reached it automatically. Now that it pins sdk v0.1.12 + sdkx v0.1.14
(from the previous commit), keeping it in the workspace would override
the pin and hide whether the released versions actually compile. Move
it to MODULES_OFFWORK so make runs it with GOWORK=off, same treatment
bench already has. sdk + sdkx remain in the workspace because sdkx
imports sdk packages (sdk/recall, sdk/retrieval, sdk/history) that
aren't yet in any released sdk tag — the workspace is the only way
those cross-module edits compile atomically in the same PR.

Made-with: Cursor
@lIang70 lIang70 changed the title chore: drop plugin/deploy, pin voice-pipeline, scope go.work chore: drop plugin/deploy, pin voice-pipeline, scope go.work [skip-tag] Apr 23, 2026
@lIang70
lIang70 merged commit 06cdee3 into main Apr 23, 2026
7 checks passed
@lIang70
lIang70 deleted the chore/cleanup-plugin-deploy-workspace branch April 23, 2026 15:47
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