commit 2ef5d8986afe812b9ce7bfb02cdf750d969a02a6
parent bde1f4becb27779504bf3a986dbb62254606c0f0
Author: Jack Mordaunt <jackmordaunt.dev@gmail.com>
Date: Thu, 17 Sep 2026 07:31:54 -0400
docs: name each module when testing the workspace
The previous wording claimed ./... spans every module in workspace mode. It
does not: the pattern only matches the module containing the current
directory, so a reader following it would silently skip preview and the
shell extension.
Diffstat:
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/readme.md b/readme.md
@@ -131,7 +131,13 @@ The repository is a Go workspace of three modules:
| `github.com/jackmordaunt/icns/cmd/preview` | The Gio GUI | Keeps Gio's dependency tree out of library consumers' module graphs |
| `github.com/jackmordaunt/icns/cmd/shell-extension` | The Windows DLL | Windows-only and needs cgo (mingw) |
-`go.work` ties them together, so from the repository root `go build ./...` and `go test ./...` cover every module against the working-tree library, and gopls sees the whole repository. The two command modules require the library at its latest tag; the versioned `replace` in `go.work` resolves that tag to the working tree inside the checkout, which is also what lets the tree build before the tag exists.
+`go.work` ties them together, so every build inside the checkout uses the working-tree library and gopls sees the whole repository. Note that `./...` only matches the module you are in; to cover all three from the root, name them:
+
+```
+go test ./... ./cmd/preview/... ./cmd/shell-extension/...
+```
+
+The two command modules require the library at its latest tag; the versioned `replace` in `go.work` resolves that tag to the working tree inside the checkout, which is also what lets the tree build before the tag exists.
Releasing: tag the root module (`vX.Y.Z`), which releases the library and `icnsify` together. Then run `go mod tidy` in `cmd/preview` and `cmd/shell-extension` with `GOWORK=off` so their `go.sum` files learn the new version, and bump the `replace` line in `go.work` to match.