What goadesign/goa shipped
Written by FoxPlug from the repository's own releases; not affiliated with Goa. Paste your own repository in the box below and FoxPlug writes the same weekly update for your product. This page is an automatic summary of the releases, pull requests and commits in github.com/goadesign/goa; Goa did not write it and does not use or endorse FoxPlug. Every line links to the change it describes.
Get a weekly update like this for your product, free
Week of October 19, 2026
What shipped
- Released Goa version 3.35.0, which requires Go 1.27.3, cuts generation time and expands OneOf union modeling across HTTP, JSON-RPC, gRPC and OpenAPI. Release
- Sped up code generation and generator test compilation by removing repeated attribute deep copies, template re-parsing, full-file import formatting, reflection path allocations and sequential test subprocesses. Pull request #4067
- Generation time dropped 6.5x across real-world multi-service repositories. Release
- Generated validation now checks selected union branches before fields, so a union with an unknown branch kind or a nil selected object branch is rejected instead of passing validation and failing at encoding. Pull request #4070
- Generated gRPC converters now preserve null entries for named objects inside ArrayOf and MapOf collections instead of passing nil to object conversion helpers and panicking. Pull request #4071
- GRPC errors forwarded through another service are now preserved, so a wrapped deadline no longer turns into a permanent service failure with a non-temporary generic fault. Pull request #4066
- Prepared-design snapshots now retain shared paths instead of copying ancestor paths into every descendant, which made saved path data grow quadratically with depth. Pull request #4065
- HTTP type planning no longer revisits shared nested definitions once per path through a response, cutting the allocations spent collecting type records. Pull request #4064
- Release builds now warm proxy.golang.org and sum.golang.org with a reusable target that polls for the newly pushed tag, replacing the fixed sleep in the release and preview workflows. Pull request #4069
- Upgrade documentation now covers the v3.35.0 upgrade order and rollback, the Go 1.27.3 requirement and updated installation instructions and plugin version. Pull request #4068
Why it matters
Version 3.35.0 changes the minimum Go version to 1.27.3, so generated services pick up standard-library certificate-chain and HTTP/2 security fixes automatically; users should read the upgrading notes for the order and rollback steps. The same release makes code generation about 6.5x faster on multi-service repositories and widens OneOf union modeling across the supported transports. The remaining fixes close cases where generated code panicked, validated values that encoding rejected, or lost gRPC errors forwarded through another service.
Changelog entry
- Release Goa v3.35.0 requiring Go 1.27.3, with faster generation and wider OneOf union modeling. Release
- Speed up code generation and test compilation and raise the minimum Go version to 1.27.3. Pull request #4067
- Validate selected union branches before fields so unknown branch kinds and nil selected objects fail validation. Pull request #4070
- Preserve nullable named objects in ArrayOf and MapOf gRPC collections to prevent converter panics. Pull request #4071
- Preserve gRPC errors forwarded through another service instead of turning them into permanent failures. Pull request #4066
- Retain shared paths in prepared-design snapshots to stop path data growing quadratically with depth. Pull request #4065
- Avoid revisiting collected HTTP type descendants, reducing allocations in HTTP type planning. Pull request #4064
- Warm proxy.golang.org and sum.golang.org during release with a reusable warm-proxy target. Pull request #4069
- Document the v3.35.0 upgrade order, rollback, Go 1.27.3 requirement and installation instructions. Pull request #4068
Goa v3.35.0 is out: requires Go 1.27.3 for certificate-chain and HTTP/2 fixes, generation about 6.5x faster on multi-service repos, and OneOf unions across HTTP, JSON-RPC, gRPC and OpenAPI. Also fixed nullable named objects in gRPC collections, union branch validation and forward
Goa v3.35.0 is released. It requires Go 1.27.3 so generated services pick up standard-library certificate-chain and HTTP/2 security fixes automatically, cuts generation time by about 6.5x on real-world multi-service repositories, and expands OneOf union modeling across HTTP, JSON-RPC, gRPC and OpenAPI. Upgrade notes cover the order and rollback. This week also fixed generated gRPC converters panicking on null named objects in nullable collections, union validation accepting unknown or nil selected branches, wrapped deadlines being turned into permanent service failures, and shared design and type data being copied repeatedly.
Week of October 12, 2026
What shipped
- Added service-specific HTTP JSON field mappings so a shared type can use different JSON property names in one HTTP service via BodyFieldName. Pull request #4056
- Preserved raw JSON for Bytes fields represented as encoding/json.RawMessage in named types and tagged unions, so values like large numbers are no longer turned into base64 strings. Pull request #4045
- Fixed OpenAPI 2.0, 3.0 and 3.2 to classify mapped HTTP parameters as required path parameters by their HTTP name instead of query parameters. Pull request #4053
- Fixed the generated HTTP client and router so path parameters containing slashes are no longer split into extra route segments and percent sequences are decoded once. Pull request #4052
- Fixed protobuf generation for inline objects inside named payloads and results, which now get complete messages and compiling Go conversions. Pull request #4048
- Qualified protobuf RPC message references so a method named like a message used by another method no longer causes compile failures. Pull request #4047
- Added gRPC support for OneOf branches whose values are maps or arrays, including branches inherited through Extend. Pull request #4046
- Retained service layouts in gRPC conversion plans when a shared service type inherits an inline union through Extend, fixing wrong package references. Pull request #4044
- Fixed generated OpenAPI schemas for MapOf to emit minProperties and maxProperties instead of minLength and maxLength on the resulting object. Pull request #4055
- Fixed a cannot deterministically order preferred type error when BodyFieldName is used on a nested type reused by two HTTP methods. Pull request #4057
Why it matters
This week fixed several generation failures that could block builds: protobuf messages for inline objects, RPC name collisions, collection branches in gRPC unions, and package references for inherited unions. It also corrected OpenAPI output for mapped path parameters and map size constraints, and preserved raw JSON so generated types send values unchanged. Together these reduce cases where generated code, schemas or clients disagree with the DSL.
Changelog entry
- Add service-specific HTTP JSON field mappings through BodyFieldName. Pull request #4056
- Preserve raw JSON in named types and tagged unions for Bytes fields using encoding/json.RawMessage. Pull request #4045
- Classify mapped path parameters by HTTP name in OpenAPI 2.0, 3.0 and 3.2. Pull request #4053
- Preserve path parameter identity in generated HTTP clients and routers. Pull request #4052
- Fix protobuf generation for inline objects inside named payloads and results. Pull request #4048
- Qualify protobuf RPC message references to avoid name lookup collisions. Pull request #4047
- Support collection branches in gRPC unions, including branches inherited through Extend. Pull request #4046
- Retain service layouts in gRPC conversion plans for inherited inline unions. Pull request #4044
- Emit minProperties and maxProperties for MapOf in generated OpenAPI schemas. Pull request #4055
- Preserve mapped HTTP declaration identity across methods using BodyFieldName. Pull request #4057
- Honor primitive field transformation guards in object conversion generation. Pull request #4054
- Share equivalent transform helpers through the registry regardless of generation-only flags. Pull request #4051
This week in Goa: service-specific HTTP JSON field mappings, raw JSON preserved in named types and unions, mapped path parameters fixed in OpenAPI, single decoding of path parameters, and protobuf and gRPC generation fixes for inline objects, RPC name collisions and collection un
This week's Goa changes cover mappings and generation fixes. BodyFieldName now supports service-specific HTTP JSON property names, and Bytes fields represented as encoding/json.RawMessage keep their JSON unchanged in named types and tagged unions. OpenAPI now emits mapped parameters as path parameters by HTTP name and uses minProperties and maxProperties for MapOf. The HTTP client no longer splits path values into extra segments and decodes percent sequences once. Protobuf generates messages for inline objects, RPC references are qualified, gRPC supports map and array OneOf branches, and conversion plans keep service layouts.
Week of October 5, 2026
What shipped
- Goa v3.34.0 was released, adding first-class support for URL-encoded form requests, two new generator building blocks for transport plugins, and fixes for generation and runtime issues from the v3.31 generator rewrite. Release
- Goa can now generate typed clients and servers for URL-encoded form requests, selected with FormRequest() for application/x-www-form-urlencoded, so form APIs no longer need handwritten encoders and decoders. Pull request #4030
- Goa can now generate a typed union whose JSON value is the selected branch itself, without always writing a discriminator and value envelope. Pull request #4037
- Goa can now generate an object union whose selected branch fields sit beside its JSON discriminator, so protocols can use a typed OneOf directly. Pull request #4035
- Fixed the generated HTTP client so it compiles when a result type with views maps a collection or map attribute to the response body using Body("attr"). Pull request #4032
- Generated JSON-RPC servers now run HTTP middleware installed with Server.Use through every HTTP entry point, including mounted ordinary, server-sent-event and mixed services. Pull request #4023
- The runtime now reports a single cancellation or deadline with the standard Canceled or DeadlineExceeded gRPC code instead of Unknown with a new fault. Pull request #4025
- Generated HTTP and JSON-RPC clients and servers now keep the URL name separate from the payload name for mapped URL parameters. Pull request #4026
- Goa now preserves retired protobuf field numbers and names when it builds gRPC request and response messages. Pull request #4040
- Generated Goa unions now expose their selected typed value to Go templates. Pull request #4039
Why it matters
This week brings a new release plus a large batch of generator fixes and union improvements. Form requests, better union JSON mappings and many transport corrections make generated clients and servers more reliable for people using the v3.31 rewrite.
Changelog entry
- Release Goa v3.34.0 with URL-encoded form request support, new plugin generator building blocks and fixes from the v3.31 rewrite. Release
- Generate URL-encoded HTTP form requests with typed clients and servers selected by FormRequest(). Pull request #4030
- Generate typed unions whose JSON value is the selected branch itself. Pull request #4037
- Generate flat object union JSON mappings with branch fields beside the discriminator through native transports. Pull request #4035
- Fix client result constructors for viewed collection and map bodies. Pull request #4032
- Run JSON-RPC middleware through every HTTP entry point in generated servers. Pull request #4023
- Preserve native gRPC cancellation and deadline results with standard codes. Pull request #4025
- Preserve mapped URL parameters across HTTP and JSON-RPC transports. Pull request #4026
- Preserve typed path inputs in generated JSON-RPC transports. Pull request #4024
- Preserve protobuf message reservations during gRPC finalization. Pull request #4040
- Expose selected union values to Go templates. Pull request #4039
- Fix explicit HTTP body construction and mapped validation for form clients. Pull request #4033
Goa v3.34.0 is out: URL-encoded form requests, new plugin generator building blocks, and fixes for generation and runtime issues from the v3.31 rewrite. Union JSON mappings and JSON-RPC middleware handling also improved.
Goa v3.34.0 is released. It adds first-class support for URL-encoded form requests, giving transport plugins two new generator building blocks, and fixes a series of generation and runtime issues reported against the v3.31 generator rewrite. This week also expanded union support: typed unions can now use their selected branch as the JSON value, or place branch fields beside the discriminator. Several transport fixes landed too, covering JSON-RPC middleware on all HTTP entry points, mapped URL parameters, gRPC cancellation codes, and client result constructors for viewed collection and map bodies.
Week of September 28, 2026
What shipped
- Goa v3.33.0 released with HTTP parameters in path segments, fixes for generated types, conversions, validation, and result views. Release
- Service endpoints now identify authentication callback rejections before running the business method, allowing transport adapters to distinguish them from business method errors. Pull request #4019
- Invalid selected service results are now reported as server faults instead of input-validation errors. Pull request #4018
- Fixed result view generation for required named unions from located packages and corrected MethodTypeLayout to describe required view fields as pointers. Pull request #4017
- Fixed panic when goa gen processes HTTP bodies containing maps of required-only objects. Pull request #4014
- Fixed missing goa import in generated HTTP clients that select response bodies by view. Pull request #4016
- GRPC error encoding now preserves merge inputs and avoids mixing status from one child with fields from another. Pull request #4012
- Fixed shared type generation to consistently choose Go packages and names, include required imports, and preserve values across transport conversions. Pull request #4010
Why it matters
V3.33.0 addresses critical issues in code generation affecting authentication handling, error reporting, result views, and type conversions across HTTP and gRPC transports. These fixes resolve panics, compilation errors, and behavioral inconsistencies that users encounter when working with complex service definitions.
Changelog entry
- HTTP parameters within path segments now supported Release
- Authentication rejections identified before service method dispatch Pull request #4019
- Invalid selected result views reported as server faults Pull request #4018
- Result view generation fixed for required named unions from located packages Pull request #4017
- Nested validator panic fixed for maps of required-only objects Pull request #4014
- Missing goa import added to HTTP clients selecting response bodies by view Pull request #4016
- GRPC error encoding preserves merge inputs and original error causes Pull request #4012
- Shared type generation consistency improved with correct package selection and imports Pull request #4010
Goa v3.33.0 is out. Better auth rejection handling, fixed result views, gRPC error encoding improvements, and critical panic fixes.
Goa v3.33.0 is available now. This release strengthens authentication handling by identifying callback rejections before method dispatch, fixes result view generation for complex types, improves gRPC error encoding to prevent field mixing, and resolves generation panics with required-only object maps. Updates address both HTTP and gRPC concerns with fixes to type ownership, conversions, and validation across transports.
Week of September 21, 2026
What shipped
- Goa v3.32.0 released with fixes for client interceptors, generation panics, and custom defaults on current Go toolchains. Release
- Path parameters can now occupy the middle of a path segment, supporting patterns like /user/@{username}. Pull request #3994
- Conversions are now generated for named recursive collections like self-referential maps and slices. Pull request #4002
- Collection conversions and validators now preserve declared Go types, fixing pointer and nil handling for union elements. Pull request #4005
- Generated gRPC clients preserve the original RPC error when decoding generic service errors. Pull request #4001
- Generated gRPC clients distinguish between RPC errors and encoding/decoding errors, retrying only actual RPC calls. Pull request #4000
- Fixed panic when generating examples for arrays with small maximum lengths like MaxLength. Pull request #4009
- Generated HTTP clients now correctly import all packages required by response validation and conversions. Pull request #4006
- Validation of optional named scalars with defaults now generates correct field layouts and nil handling. Pull request #4008
- Plugins can now emit private validation functions for types declared in other packages. Pull request #4003
Why it matters
This week's fixes address correctness issues in code generation across HTTP, gRPC, and example generation, while also extending path parameter support and improving how conversions handle recursive types. Developers using client interceptors, complex validation scenarios, or gRPC error handling will see bugs resolved in v3.32.0.
Changelog entry
- Release v3.32.0 with client interceptor import fixes and custom defaults support Release
- Add support for path parameters in the middle of path segments Pull request #3994
- Generate conversions for named recursive collections Pull request #4002
- Preserve collection layouts and named union method ownership in generated code Pull request #4005
- Preserve gRPC causes when decoding generic service errors Pull request #4001
- Preserve local gRPC client errors and retry only RPC calls Pull request #4000
- Fix generated examples panic with small array maximum lengths Pull request #4009
- Fix generated HTTP client imports for response checks and conversions Pull request #4006
- Use generated field layouts when validating defaulted aliases Pull request #4008
- Allow private validation functions for original types in plugins Pull request #4003
- Validate named definitions against retained Go structure Pull request #4004
- Expose original types to plugins and preserve validation import aliases Pull request #4007
- Fix HTTP CLI imports for MapParams payload fields Pull request #3998
- Update service designer skill for released Goa contracts Pull request #3997
Goa v3.32.0 is out. Fixes for client interceptors, path parameters in path segments, recursive collection conversions, gRPC error preservation, and generation correctness across HTTP and CLI.
Goa v3.32.0 released with significant correctness improvements. This version fixes client interceptor generation, adds support for path parameters in the middle of segments, correctly generates conversions for recursive collections, preserves gRPC error details, and resolves validation issues across HTTP and CLI generation. Updates include v3.32.0 release with custom defaults corrections and Go 1.26 minimum support.
Week of September 14, 2026
What shipped
- Goa v3.31.1 stabilizes the generation preview with more expressive gRPC contracts, a unified generator, and improvements across HTTP, gRPC, and JSON-RPC. Release
- Goa v3.31.0 promotes the generation preview to stable, recording the complete design and generated choices before writing files so all services, transports, commands, examples, and plugins use consistent decisions. Pull request #3971
- Fixed a panic in v3.31 generation when scoped client interceptors on API or method declarations need import planning. Pull request #3995
- Fixed stack overflow and infinite code expansion when generating recursive gRPC collections and maps. Pull request #3990
- README now features a banner matching goa.design with updated typography, navy and blue palette, and visual examples of HTTP, gRPC, and JSON-RPC generation. Pull request #3992
- README explains why Goa works well with coding agents: one explicit design, less repetitive code, predictable edit locations, and compiler feedback. Pull request #3991
Why it matters
Goa v3.31 and v3.31.1 stabilize the generation preview, eliminating disagreements between generator passes that could produce code failing to compile. Critical bug fixes prevent panics and stack overflows in recursive structures. The updated README better communicates Goa's value to both traditional developers and coding agents.
Changelog entry
- V3.31.1: Generation preview stable with more expressive gRPC contracts, unified generator, and improvements across HTTP, gRPC, JSON-RPC; examples and plugins updated Release
- V3.31.0: Generation preview promoted to stable; one design determines all declarations, imports, conversions, validators, transport code Release
- Fixed panic in client interface generation when scoped interceptors need import planning Pull request #3995
- Fixed stack overflow and infinite expansion in recursive gRPC collection and map generation Pull request #3990
- README banner updated to match goa.design with Manrope typography, navy/blue palette, and generation examples Pull request #3992
- README highlights 'Let Goa generate' in blue accent colors with regenerated desktop and mobile images Pull request #3993
- README documents Goa's value for coding agents: explicit design, less repetitive code, predictable edit locations, compiler feedback Pull request #3991
Goa v3.31.1 is out. The generation preview is now stable—one design determines all generated code across HTTP, gRPC, and JSON-RPC. Recursive structures and scoped interceptors now work correctly.
We've released Goa v3.31 and v3.31.1, promoting the generation preview to stable. One complete design now determines declarations, imports, conversions, validators, and transport code across your entire application—HTTP, gRPC, and JSON-RPC all use the same decisions. This eliminates disagreements between generator passes that used to produce code that wouldn't compile. Plus fixes for recursive gRPC collections and scoped client interceptors.