Download Latest Version v3.21.5 source code.tar.gz (1.1 MB)
Email in envelope

Get an email when there's a new version of Goa

Home / v3.21.5
Name Modified Size InfoDownloads / Week
Parent folder
README.md 2025-07-21 4.0 kB
v3.21.5 source code.tar.gz 2025-07-21 1.1 MB
v3.21.5 source code.zip 2025-07-21 1.5 MB
Totals: 3 Items   2.5 MB 5

Goa v3.21.5 Release Notes

Major Architectural Improvements

Eliminated Global Dependencies in Code Generation (#3721)

by @raphael

The code generation architecture has been significantly refactored to remove global state dependencies, improving maintainability and testability: - Non-global root expressions: Code generation now passes root expressions as parameters instead of relying on global variables - Restructured ServicesData: Eliminated confusing nested ServicesData structures, creating clear separation between service and transport layer data - Streamlined file generation: Improved naming conventions and modularity throughout the codebase - Maintains full backward compatibility - no changes required for existing applications

Bug Fixes

gRPC Streaming Error Handling (#3731)

by @raphael

Fixed a critical issue where gRPC streaming Recv() methods were not properly decoding custom error types: - Streaming methods now decode errors consistently with unary methods - Clients can now properly handle custom service errors defined in the DSL - Applies to all streaming patterns: server, client, and bidirectional - Fixes issue [#3320]

Example Generation for UserTypes (#3730)

by @raphael

Corrected example generation for UserTypes to respect validation rules and custom examples: - UserTypes with format validation (e.g., FormatURI) now generate format-appropriate examples - Custom examples defined on UserTypes are now properly used - Fixes issue [#3716]

HTTP Error Handler Code Generation (#3741)

by @nitinmohan87

Fixed multiple issues in HTTP code generation: - Properly generate error handler function parameter with validation attributes - Fixed missing generation of errhandler function in HTTP handlers (since it's optional) - Improved overall error handling code generation

Type Handling Improvements

  • Primitive alias types (#3742) by @raphael: Fixed casting to use underlying types instead of service types (e.g., string instead of UUID) in request building logic
  • Import generation (#3744) by @raphael: Added missing import statement generation in certain edge cases
  • Example compilation (#3743) by @raphael: Fixed various issues discovered while building the framework examples

OpenAPI Specification Enhancements

Improved MapOf Schema Generation (#3732)

by @fzyukio

Enhanced OpenAPI 3.0 schema generation for MapOf types: - All map values now have fully-typed schemas regardless of key type - Replaced ambiguous additionalProperties: true with proper type references - Improves compatibility with OpenAPI code generators like oapi-codegen - Maps with non-string keys now generate correct schemas (since OpenAPI only supports string keys)

Code Quality Improvements

Modern Error Handling (#3736)

by @tchssk

Updated generated code to use Go's modern error handling patterns: - Templates now use errors.Is() for error comparisons - Improves compatibility with wrapped errors - Related to issue [#3541]

Defensive Programming (#3727)

by @nitinmohan87

Added safety checks for nil interceptors: - Endpoints are now only wrapped with interceptors when they are actually provided - Prevents potential nil pointer dereferences

New Contributors

  • @fzyukio made their first contribution in [#3732] 🎉

Full Changelog: https://github.com/goadesign/goa/compare/v3.21.1...v3.21.5

Source: README.md, updated 2025-07-21