| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| Goa v3.28.0 source code.tar.gz | 2026-06-02 | 1.3 MB | |
| Goa v3.28.0 source code.zip | 2026-06-02 | 2.4 MB | |
| README.md | 2026-06-02 | 2.0 kB | |
| Totals: 3 Items | 3.7 MB | 1 | |
Goa v3.28.0 focuses on faster generation for large designs, more accurate OpenAPI security output, and compatibility with the current Go 1.25 toolchain.
Highlights
- Code generation now avoids repeated import recomputation across generated file batches, significantly reducing generation time for large designs. In downstream testing, a full generation script dropped from about 46 seconds to about 11 seconds. #3932
- OpenAPI v2 and v3 generation now preserves explicit
NoSecurity()declarations on methods. Public health or status endpoints no longer inherit global security requirements in generated OpenAPI documents. #3930
Fixes And Maintenance
- Generated HTTP server shutdown code now uses
context.WithoutCancelso graceful shutdown keeps context values while avoiding inherited cancellation, and passes currentgosecchecks. #3929 - CI now runs against the Go version required by the module after the Go 1.25 update. #3931
- Release preparation also refreshed dependency metadata in Goa, examples, and plugins.
Upgrade Notes
This release changes exported helpers in goa.design/goa/v3/codegen/service used by Goa plugins or other code that imports that package:
service.AddServiceDataMetaTypeImports(header, svcExpr, data)is nowservice.AddServiceDataMetaTypeImports(header, data).service.AddUserTypeImports(genpkg, header, data)is nowservice.AddUserTypeImports(header, data).- New helper
service.SetUserTypeImports(genpkg, data)computes user type imports once before they are added to headers.
Plugins that call these helpers should compute imports once after creating service.ServicesData, then pass only the header and service data when adding imports.
Contributors
Thanks to Raphael Simon, Jesús García Crespo, and Shuntaro Takahashi for the changes in this release.