Skip to content

Commit 811394c

Browse files
authored
doc: update readme for 1.24+ (#292)
1 parent fbcdc03 commit 811394c

1 file changed

Lines changed: 56 additions & 7 deletions

File tree

README.md

Lines changed: 56 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -36,11 +36,18 @@ An enum generator for Go that creates type-safe enumerations with useful methods
3636

3737
## Requirements
3838

39-
- Go 1.23.0 or later
39+
- Go 1.24.0 or later (recommended for new tool installation method)
40+
- Go 1.23.0 or later (minimum for legacy installation)
4041

4142
## Quick Start
4243

43-
1. Install go-enum:
44+
1. Install go-enum as a project tool (Go 1.24+):
45+
46+
```shell
47+
go get -tool github.com/abice/go-enum@latest
48+
```
49+
50+
Or for older Go versions:
4451

4552
```shell
4653
go install github.com/abice/go-enum@latest
@@ -58,6 +65,10 @@ An enum generator for Go that creates type-safe enumerations with useful methods
5865
3. Generate the enum:
5966

6067
```shell
68+
# Go 1.24+ (recommended)
69+
go tool go-enum -f your_file.go
70+
71+
# Or for older Go versions
6172
go-enum -f your_file.go
6273
```
6374

@@ -189,7 +200,27 @@ docker run -w /app -v $(pwd):/app abice/go-enum:latest
189200

190201
## Installation
191202

192-
### Using go install (recommended)
203+
### Using go get -tool (Go 1.24+, recommended)
204+
205+
Install go-enum as a project tool with dependency tracking in `go.mod`:
206+
207+
```shell
208+
go get -tool github.com/abice/go-enum@latest
209+
```
210+
211+
This will add a tool dependency to your `go.mod` file:
212+
213+
```mod
214+
tool github.com/abice/go-enum
215+
```
216+
217+
You can then run the tool using:
218+
219+
```shell
220+
go tool go-enum [options]
221+
```
222+
223+
### Using go install (older Go versions)
193224

194225
Install the latest version directly from source:
195226

@@ -226,14 +257,25 @@ docker run -w /app -v $(pwd):/app abice/go-enum:v0.9.0
226257

227258
### Using go generate
228259

229-
1. Add a go:generate line to your file like so... `//go:generate go-enum --marshal`
230-
1. Run go generate like so `go generate ./...`
260+
For Go 1.24+ with tool dependency:
261+
262+
1. Install the tool dependency: `go get -tool github.com/abice/go-enum@latest`
263+
1. Add a go:generate line to your file: `//go:generate go tool go-enum --marshal`
264+
1. Run go generate: `go generate ./...`
265+
1. Enjoy your newly created Enumeration!
266+
267+
For older Go versions:
268+
269+
1. Add a go:generate line to your file: `//go:generate go-enum --marshal`
270+
1. Run go generate: `go generate ./...`
231271
1. Enjoy your newly created Enumeration!
232272

233273
### Using Makefile
234274

235275
If you prefer makefile stuff, you can always do something like this:
236276

277+
For Go 1.24+ with tool dependency:
278+
237279
```Makefile
238280
STANDARD_ENUMS = ./example/animal_enum.go \
239281
./example/color_enum.go
@@ -245,8 +287,15 @@ $(NULLABLE_ENUMS): GO_ENUM_FLAGS=--nocase --marshal --names --sqlnullint --ptr
245287

246288
enums: $(STANDARD_ENUMS) $(NULLABLE_ENUMS)
247289

248-
# The generator statement for go enum files. Files that invalidate the
249-
# enum file: source file, the binary itself, and this file (in case you want to generate with different flags)
290+
# The generator statement for go enum files using go tool (Go 1.24+)
291+
%_enum.go: %.go Makefile
292+
go tool go-enum -f $*.go $(GO_ENUM_FLAGS)
293+
```
294+
295+
For older Go versions:
296+
297+
```Makefile
298+
# The generator statement for go enum files using go-enum binary
250299
%_enum.go: %.go $(GOENUM) Makefile
251300
$(GOENUM) -f $*.go $(GO_ENUM_FLAGS)
252301
```

0 commit comments

Comments
 (0)