icns

Easily create .icns files (Mac Icons) with this Go library or the included CLI.
Log | Files | Refs | LICENSE

commit 837e875b4288649db869f8a9754d40b494ccccb8
parent 8129feb383c4d21a59dd37b2453e43e6d8bd943a
Author: Jack Mordaunt <jackmordaunt.dev@gmail.com>
Date:   Thu, 17 Sep 2026 11:55:35 -0400

build: drop the go.work replace now that v4.0.0 is published

The version-specific replace existed only because workspace mode fetches the
go.mod of a required version, which failed while v4.0.0 was untagged. The tag
is on the proxy now, so the workspace resolves it on its own and the extra
indirection would only confuse readers.

Diffstat:
Mgo.work | 5-----
Mgo.work.sum | 1+
Mreadme.md | 6+++---
3 files changed, 4 insertions(+), 8 deletions(-)

diff --git a/go.work b/go.work @@ -5,8 +5,3 @@ use ( ./cmd/preview ./cmd/shell-extension ) - -// The commands require the library at a tagged version so that go install -// works outside this checkout. Inside it, resolve that version to the working -// tree, which also lets the tree build before the tag exists. -replace github.com/jackmordaunt/icns/v4 v4.0.0 => ./ diff --git a/go.work.sum b/go.work.sum @@ -1,3 +1,4 @@ +github.com/jackmordaunt/icns/v4 v4.0.0/go.mod h1:HakgKguVAB9QWZWj7Fb9YZlhIaH/mpKXIhQycPygcRQ= golang.org/x/mod v0.17.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/sync v0.8.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d/go.mod h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk= diff --git a/readme.md b/readme.md @@ -137,12 +137,12 @@ The repository is a Go workspace of three modules: 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. +The two command modules require the library at a published tag. Inside the workspace that requirement only shapes the module graph; the code always comes from the working tree, so the tag can lag behind without affecting development. -Releasing: tag the root module (`vX.Y.Z`), which releases the library and `icnsify` together. Then tidy the two command modules outside the workspace so their `go.sum` files learn the new version, and bump the `replace` line in `go.work` to match: +Releasing: tag the root module (`vX.Y.Z`), which releases the library and `icnsify` together. When `go install .../cmd/preview@latest`, or a shell extension built outside the checkout, should pick up a newer library, bump that module's requirement and tidy it outside the workspace: ```powershell -$env:GOWORK = 'off'; go mod tidy; Remove-Item Env:GOWORK # in cmd/preview, then cmd/shell-extension +$env:GOWORK = 'off'; go get github.com/jackmordaunt/icns/v4@latest; go mod tidy; Remove-Item Env:GOWORK ``` ## Roadmap