icns

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

commit 0c0aad7db9158bdb75e4d2f22297746205abda52
parent f2cd459c1a8ed591c97139361baf64e1e9046fa3
Author: Jack Mordaunt <jackmordaunt.dev@gmail.com>
Date:   Thu, 17 Sep 2026 07:28:54 -0400

icns: move the module to v4

Folding the CLI into the library module changes its import path, and the
decoder now returns sentinel errors and a different Decode result for JPEG
2000-only files, both breaking for existing callers. A new major version
leaves v3 users untouched; the in-repo commands follow the working tree
through the workspace.

Diffstat:
Mcmd/icnsify/go.mod | 2+-
Mcmd/icnsify/main.go | 2+-
Mcmd/preview/go.mod | 2+-
Mcmd/preview/main.go | 2+-
Mcmd/shell-extension/dll_test.go | 2+-
Mcmd/shell-extension/go.mod | 4+---
Mcmd/shell-extension/internal/provider/provider.go | 2+-
Mgo.mod | 2+-
Mgo.work | 5+++++
9 files changed, 13 insertions(+), 10 deletions(-)

diff --git a/cmd/icnsify/go.mod b/cmd/icnsify/go.mod @@ -3,7 +3,7 @@ module github.com/jackmordaunt/icns/cmd/icnsify go 1.21.5 require ( - github.com/jackmordaunt/icns/v3 v3.0.1 + github.com/jackmordaunt/icns/v4 v4.0.0 github.com/spf13/afero v1.11.0 github.com/spf13/pflag v1.0.5 ) diff --git a/cmd/icnsify/main.go b/cmd/icnsify/main.go @@ -13,7 +13,7 @@ import ( "path/filepath" "strings" - "github.com/jackmordaunt/icns/v3" + "github.com/jackmordaunt/icns/v4" "github.com/spf13/afero" "github.com/spf13/pflag" diff --git a/cmd/preview/go.mod b/cmd/preview/go.mod @@ -5,7 +5,7 @@ go 1.21.5 require ( gioui.org v0.3.1 gioui.org/x v0.3.2 - github.com/jackmordaunt/icns/v3 v3.0.0 + github.com/jackmordaunt/icns/v4 v4.0.0 github.com/ncruces/zenity v0.10.10 ) diff --git a/cmd/preview/main.go b/cmd/preview/main.go @@ -25,7 +25,7 @@ import ( "gioui.org/widget" m "gioui.org/widget/material" c "gioui.org/x/component" - "github.com/jackmordaunt/icns/v3" + "github.com/jackmordaunt/icns/v4" "github.com/ncruces/zenity" ) diff --git a/cmd/shell-extension/dll_test.go b/cmd/shell-extension/dll_test.go @@ -16,7 +16,7 @@ import ( "github.com/jackmordaunt/icns/cmd/shell-extension/internal/com" "github.com/jackmordaunt/icns/cmd/shell-extension/internal/provider" - "github.com/jackmordaunt/icns/v3" + "github.com/jackmordaunt/icns/v4" "golang.org/x/sys/windows" ) diff --git a/cmd/shell-extension/go.mod b/cmd/shell-extension/go.mod @@ -3,9 +3,7 @@ module github.com/jackmordaunt/icns/cmd/shell-extension go 1.21.5 require ( - github.com/jackmordaunt/icns/v3 v3.0.1 + github.com/jackmordaunt/icns/v4 v4.0.0 github.com/nfnt/resize v0.0.0-20180221191011-83c6a9932646 golang.org/x/sys v0.25.0 ) - -replace github.com/jackmordaunt/icns/v3 => ../.. diff --git a/cmd/shell-extension/internal/provider/provider.go b/cmd/shell-extension/internal/provider/provider.go @@ -19,7 +19,7 @@ import ( "unsafe" "github.com/jackmordaunt/icns/cmd/shell-extension/internal/com" - "github.com/jackmordaunt/icns/v3" + "github.com/jackmordaunt/icns/v4" "github.com/nfnt/resize" "golang.org/x/sys/windows" ) diff --git a/go.mod b/go.mod @@ -1,4 +1,4 @@ -module github.com/jackmordaunt/icns/v3 +module github.com/jackmordaunt/icns/v4 go 1.21.5 diff --git a/go.work b/go.work @@ -6,3 +6,8 @@ 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 => ./