Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
0100a12
Port plugins to Goa generation plans
raphael Aug 25, 2026
1752ccb
Pin plugins to final Goa generation plan
raphael Aug 25, 2026
ee861b8
Use the pinned Goa command in plugin CI
raphael Aug 25, 2026
240d8a0
chore: verify plugins with corrected Goa
raphael Aug 25, 2026
bc0ecf7
Regenerate plugins with corrected Goa
raphael Aug 25, 2026
b63938e
Pin plugins to final Goa generation plan
raphael Aug 25, 2026
430d3dc
chore: pin plugins to final Goa generator
raphael Aug 25, 2026
38c87b2
chore: verify plugins with scoped Goa transforms
raphael Aug 25, 2026
63f5d72
chore: pin plugins to final scoped Goa transforms
raphael Aug 25, 2026
e9dddc7
chore: refresh plugin example checksums
raphael Aug 25, 2026
0523f72
chore: pin plugins to final Goa generation plan
raphael Aug 26, 2026
ad5f79a
chore: regenerate plugins with final Goa plan
raphael Aug 26, 2026
ca3013c
chore: repin plugins to final Goa plan
raphael Aug 26, 2026
7c4ade0
chore: repin plugins to path alias fix
raphael Aug 26, 2026
bd3599a
chore: repin plugins to primitive path fix
raphael Aug 26, 2026
b6ffdf1
chore: pin plugins to latest Goa generation plan
raphael Aug 26, 2026
5356fa4
chore: pin plugins to final Goa generation plan
raphael Aug 26, 2026
d52274c
chore: pin plugins to shared transform helpers
raphael Aug 26, 2026
cf00935
docs: fix plugin registration example
raphael Aug 26, 2026
ce7dbff
chore: pin plugins to final Goa generation fixes
raphael Aug 26, 2026
4cabf1e
chore: pin plugins to final Goa API
raphael Aug 26, 2026
1cecea5
chore: pin plugins to latest Goa API
raphael Aug 26, 2026
5ec2ec8
chore: pin plugins to wrapped transform fix
raphael Aug 26, 2026
3a4b508
chore: pin plugins to shared gRPC helpers
raphael Aug 26, 2026
ed5a289
Validate plugins against Goa preview
raphael Aug 30, 2026
f5f325a
Pin plugins to latest Goa preview
raphael Aug 30, 2026
15a6cf5
chore: pin plugins to final Goa preview
raphael Aug 30, 2026
75c6422
chore: use Goa preview 2
raphael Aug 31, 2026
b89aecc
Pin Goa v3.31.0-preview.3
raphael Aug 31, 2026
3eadd7e
Merge stable dependency updates into the preview
raphael Sep 16, 2026
da88124
Sync plugins with the stable Goa generation candidate
raphael Sep 16, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 6 additions & 13 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,13 @@
# Makefile for goa v3 plugins

GOOS=$(shell go env GOOS)
GOA:=$(shell goa version 2> /dev/null)
GOA_VERSION:=$(shell go list -m -f '{{.Version}}' goa.design/goa/v3)

# Only list test and build dependencies
# Standard dependencies are installed via go get
# These commands install the tools used to build and test the plugins.
DEPEND=\
google.golang.org/protobuf/cmd/protoc-gen-go@latest \
google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest \
honnef.co/go/tools/cmd/staticcheck@latest \
goa.design/goa/v3/cmd/goa@v3
honnef.co/go/tools/cmd/staticcheck@latest

# Add new plugins here to enable make
PLUGINS=\
Expand Down Expand Up @@ -64,15 +62,10 @@ depend:
fi

check-goa:
ifdef GOA
@# Use the Goa version in go.mod so generation and compilation use the same API.
go install goa.design/goa/v3/cmd/goa@$(GOA_VERSION)
go mod download
@echo $(GOA)
else
go get -u goa.design/goa/v3@v3
go get -u goa.design/goa/v3/...@v3
go mod download
@echo $(GOA)
endif
@echo "Goa $(GOA_VERSION)"

tidy:
@go mod tidy
Expand Down
15 changes: 15 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,19 @@ This repository contains plugins for
Each sub-directory README contains the information and usage for the given
plugin.

Plugins v3.31.0 accompanies Goa v3.31.0 and requires Go 1.26 or later.
Upgrade both modules together:

```shell
go get goa.design/goa/v3@v3.31.0 goa.design/plugins/v3@v3.31.0
go install goa.design/goa/v3/cmd/goa@v3.31.0
```

Regenerate the complete application after upgrading. This release adapts
declaration-producing plugins to Goa's generation plan and updates generated
commands, transport helpers, and test scenarios. Custom plugins that declare
names must plan those declarations before rendering. Read the
[Goa upgrade guide](https://github.com/goadesign/goa/blob/v3.31.0/UPGRADING.md)
for application changes and the generator API migration.

Goa v2 plugins can be found [here](https://github.com/goadesign/plugins/tree/v2).
4 changes: 1 addition & 3 deletions arnz/example/gen/arnz/service.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion arnz/example/gen/goa.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{
"goa_version": "v3.30.0"
"goa_version": "v3.31.0-preview.5"
}
106 changes: 76 additions & 30 deletions arnz/example/gen/http/arnz/client/encode_decode.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 1 addition & 3 deletions arnz/example/gen/http/arnz/server/types.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion arnz/example/gen/http/openapi.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"swagger":"2.0","info":{"title":"","version":"0.0.1"},"host":"localhost:80","consumes":["application/json","application/xml","application/gob"],"produces":["application/json","application/xml","application/gob"],"paths":{"/":{"get":{"tags":["Arnz"],"summary":"read Arnz","operationId":"Arnz#read","responses":{"200":{"description":"OK response.","schema":{"$ref":"#/definitions/ResponseBody","required":["action"]}}},"schemes":["http"]},"put":{"tags":["Arnz"],"summary":"update Arnz","operationId":"Arnz#update","responses":{"200":{"description":"OK response.","schema":{"$ref":"#/definitions/ResponseBody","required":["action"]}}},"schemes":["http"]},"post":{"tags":["Arnz"],"summary":"create Arnz","operationId":"Arnz#create","responses":{"200":{"description":"OK response.","schema":{"$ref":"#/definitions/ResponseBody","required":["action"]}}},"schemes":["http"]},"delete":{"tags":["Arnz"],"summary":"delete Arnz","operationId":"Arnz#delete","responses":{"200":{"description":"OK response.","schema":{"$ref":"#/definitions/ResponseBody","required":["action"]}}},"schemes":["http"]}},"/health":{"get":{"tags":["Arnz"],"summary":"health Arnz","operationId":"Arnz#health","responses":{"200":{"description":"OK response.","schema":{"$ref":"#/definitions/ResponseBody","required":["action"]}}},"schemes":["http"]}}},"definitions":{"ResponseBody":{"title":"ResponseBody","type":"object","properties":{"action":{"type":"string","example":"Autem eos aut quisquam."}},"example":{"action":"Autem eos aut quisquam."},"required":["action"]}}}
{"swagger":"2.0","info":{"title":"","version":"0.0.1"},"host":"localhost:80","consumes":["application/json","application/xml","application/gob"],"produces":["application/json","application/xml","application/gob"],"paths":{"/":{"get":{"tags":["Arnz"],"summary":"read Arnz","operationId":"Arnz#read","responses":{"200":{"description":"OK response.","schema":{"$ref":"#/definitions/ResponseBody","required":["action"]}}},"schemes":["http"]},"put":{"tags":["Arnz"],"summary":"update Arnz","operationId":"Arnz#update","responses":{"200":{"description":"OK response.","schema":{"$ref":"#/definitions/ResponseBody","required":["action"]}}},"schemes":["http"]},"post":{"tags":["Arnz"],"summary":"create Arnz","operationId":"Arnz#create","responses":{"200":{"description":"OK response.","schema":{"$ref":"#/definitions/ResponseBody","required":["action"]}}},"schemes":["http"]},"delete":{"tags":["Arnz"],"summary":"delete Arnz","operationId":"Arnz#delete","responses":{"200":{"description":"OK response.","schema":{"$ref":"#/definitions/ResponseBody","required":["action"]}}},"schemes":["http"]}},"/health":{"get":{"tags":["Arnz"],"summary":"health Arnz","operationId":"Arnz#health","responses":{"200":{"description":"OK response.","schema":{"$ref":"#/definitions/ResponseBody","required":["action"]}}},"schemes":["http"]}}},"definitions":{"ResponseBody":{"title":"ResponseBody","type":"object","properties":{"action":{"type":"string","example":"Aut sit sit repellendus nesciunt minima."}},"example":{"action":"Aut sit sit repellendus nesciunt minima."},"required":["action"]}}}
4 changes: 2 additions & 2 deletions arnz/example/gen/http/openapi.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -91,8 +91,8 @@ definitions:
properties:
action:
type: string
example: Autem eos aut quisquam.
example: Aut sit sit repellendus nesciunt minima.
example:
action: Autem eos aut quisquam.
action: Aut sit sit repellendus nesciunt minima.
required:
- action
2 changes: 1 addition & 1 deletion arnz/example/gen/http/openapi3.2.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"openapi":"3.2.0","info":{"title":"Goa API","version":"0.0.1"},"servers":[{"url":"http://localhost:80","name":"Arnz","description":"Default server for Arnz"}],"paths":{"/":{"delete":{"tags":["Arnz"],"summary":"delete Arnz","operationId":"Arnz#delete","responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseBody"},"example":{"action":"Quaerat neque commodi cupiditate dignissimos voluptates sed."}}}}}},"get":{"tags":["Arnz"],"summary":"read Arnz","operationId":"Arnz#read","responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseBody"},"example":{"action":"Nulla dolores est sunt autem et est."}}}}}},"post":{"tags":["Arnz"],"summary":"create Arnz","operationId":"Arnz#create","responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseBody"},"example":{"action":"Autem eos aut quisquam."}}}}}},"put":{"tags":["Arnz"],"summary":"update Arnz","operationId":"Arnz#update","responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseBody"},"example":{"action":"Id impedit dolores."}}}}}}},"/health":{"get":{"tags":["Arnz"],"summary":"health Arnz","operationId":"Arnz#health","responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseBody"},"example":{"action":"Voluptatem impedit sunt aliquam."}}}}}}}},"components":{"schemas":{"ResponseBody":{"type":"object","properties":{"action":{"type":"string","example":"Autem eos aut quisquam."}},"example":{"action":"Autem eos aut quisquam."},"required":["action"]}}},"tags":[{"name":"Arnz"}]}
{"openapi":"3.2.0","info":{"title":"Goa API","version":"0.0.1"},"servers":[{"url":"http://localhost:80","name":"Arnz","description":"Default server for Arnz"}],"paths":{"/":{"delete":{"tags":["Arnz"],"summary":"delete Arnz","operationId":"Arnz#delete","responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseBody"},"example":{"action":"Qui illo."}}}}}},"get":{"tags":["Arnz"],"summary":"read Arnz","operationId":"Arnz#read","responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseBody"},"example":{"action":"Accusantium est non molestiae."}}}}}},"post":{"tags":["Arnz"],"summary":"create Arnz","operationId":"Arnz#create","responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseBody"},"example":{"action":"Aut sit sit repellendus nesciunt minima."}}}}}},"put":{"tags":["Arnz"],"summary":"update Arnz","operationId":"Arnz#update","responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseBody"},"example":{"action":"Consectetur recusandae."}}}}}}},"/health":{"get":{"tags":["Arnz"],"summary":"health Arnz","operationId":"Arnz#health","responses":{"200":{"description":"OK response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseBody"},"example":{"action":"Culpa sed."}}}}}}}},"components":{"schemas":{"ResponseBody":{"type":"object","properties":{"action":{"type":"string","example":"Aut sit sit repellendus nesciunt minima."}},"example":{"action":"Aut sit sit repellendus nesciunt minima."},"required":["action"]}}},"tags":[{"name":"Arnz"}]}
14 changes: 7 additions & 7 deletions arnz/example/gen/http/openapi3.2.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ paths:
schema:
$ref: '#/components/schemas/ResponseBody'
example:
action: Quaerat neque commodi cupiditate dignissimos voluptates sed.
action: Qui illo.
get:
tags:
- Arnz
Expand All @@ -35,7 +35,7 @@ paths:
schema:
$ref: '#/components/schemas/ResponseBody'
example:
action: Nulla dolores est sunt autem et est.
action: Accusantium est non molestiae.
post:
tags:
- Arnz
Expand All @@ -49,7 +49,7 @@ paths:
schema:
$ref: '#/components/schemas/ResponseBody'
example:
action: Autem eos aut quisquam.
action: Aut sit sit repellendus nesciunt minima.
put:
tags:
- Arnz
Expand All @@ -63,7 +63,7 @@ paths:
schema:
$ref: '#/components/schemas/ResponseBody'
example:
action: Id impedit dolores.
action: Consectetur recusandae.
/health:
get:
tags:
Expand All @@ -78,17 +78,17 @@ paths:
schema:
$ref: '#/components/schemas/ResponseBody'
example:
action: Voluptatem impedit sunt aliquam.
action: Culpa sed.
components:
schemas:
ResponseBody:
type: object
properties:
action:
type: string
example: Autem eos aut quisquam.
example: Aut sit sit repellendus nesciunt minima.
example:
action: Autem eos aut quisquam.
action: Aut sit sit repellendus nesciunt minima.
required:
- action
tags:
Expand Down
Loading
Loading