Skip to content

build: install as github.com/emoss08/assay@latest - #2

Merged
emoss08 merged 1 commit into
mainfrom
claude/assay-install-path-9m2bz4
Aug 11, 2026
Merged

emoss08 merged 1 commit into
mainfrom
claude/assay-install-path-9m2bz4

Conversation

@emoss08

@emoss08 emoss08 commented Aug 11, 2026

Copy link
Copy Markdown
Owner

The module ships exactly one binary, so the cmd/assay directory bought nothing but a longer install path. Moving main.go to the module root lets the tool install under the name people already know it by:

go install github.com/emoss08/assay@latest

Changes

  • cmd/assay/main.go → main.go (tracked as a rename); cmd/ is removed
  • README.md — the @latest line, plus go install . and go install -tags assay_plain . for the clone-and-build paths
  • BENCHMARKS.md — the go build -o /tmp/assay . reproduction step
  • .github/workflows/release.yml — cross-compile target for all six platforms

ci.yml needs no change; it builds and tests ./....

Verification

  • go build ./..., the assay_plain variant, and GOOS=windows / GOOS=darwin cross-builds all pass
  • go test -count=1 ./... passes in full
  • The root package now reports [no test files], same as cmd/assay did

Two things worth knowing before this ships

The old install path stops working at the next tag. go install github.com/emoss08/assay/cmd/assay@latest resolves against the newest tagged version, so once a release contains this commit, that command breaks for anyone still using it. Already-installed binaries are unaffected, and pinning an older version (.../cmd/assay@v0.1.0) still works. If assay has users on the old command, the release notes are the place to say so.

The module root is now package main, so nothing can import github.com/emoss08/assay as a library. That costs nothing today — every package under internal/ was already unimportable from outside — but it forecloses ever exporting a public API at the root path. The conventional out, if that's wanted later, is to keep the root binary and add exported packages under a non-internal directory like pkg/.


Generated by Claude Code

The module has exactly one binary, so the cmd/assay directory bought
nothing but a longer install path. Move main.go to the module root and
the tool installs under the name people already know it by:

    go install github.com/emoss08/assay@latest

Update the clone-and-build instructions, the plain-build variant, the
BENCHMARKS reproduction steps, and the release workflow's cross-compile
target to match. CI builds ./... and needs no change.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01YGGGHdy2bd4q7XKKExEDR5
@emoss08
emoss08 merged commit 5c3a6aa into main Aug 11, 2026
1 check passed
@emoss08
emoss08 deleted the claude/assay-install-path-9m2bz4 branch August 11, 2026 18:36
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.

2 participants