CARVIEW |
Select Language
HTTP/2 302
date: Wed, 23 Jul 2025 17:55:57 GMT
content-type: text/html; charset=utf-8
content-length: 0
vary: X-PJAX, X-PJAX-Container, Turbo-Visit, Turbo-Frame, X-Requested-With,Accept-Encoding, Accept, X-Requested-With
location: https://github.com/goadesign/goa/releases/tag/v3.21.5
cache-control: no-cache
strict-transport-security: max-age=31536000; includeSubdomains; preload
x-frame-options: deny
x-content-type-options: nosniff
x-xss-protection: 0
referrer-policy: no-referrer-when-downgrade
content-security-policy: default-src 'none'; base-uri 'self'; child-src github.githubassets.com github.com/assets-cdn/worker/ github.com/assets/ gist.github.com/assets-cdn/worker/; connect-src 'self' uploads.github.com www.githubstatus.com collector.github.com raw.githubusercontent.com api.github.com github-cloud.s3.amazonaws.com github-production-repository-file-5c1aeb.s3.amazonaws.com github-production-upload-manifest-file-7fdce7.s3.amazonaws.com github-production-user-asset-6210df.s3.amazonaws.com *.rel.tunnels.api.visualstudio.com wss://*.rel.tunnels.api.visualstudio.com objects-origin.githubusercontent.com copilot-proxy.githubusercontent.com proxy.individual.githubcopilot.com proxy.business.githubcopilot.com proxy.enterprise.githubcopilot.com *.actions.githubusercontent.com wss://*.actions.githubusercontent.com productionresultssa0.blob.core.windows.net/ productionresultssa1.blob.core.windows.net/ productionresultssa2.blob.core.windows.net/ productionresultssa3.blob.core.windows.net/ productionresultssa4.blob.core.windows.net/ productionresultssa5.blob.core.windows.net/ productionresultssa6.blob.core.windows.net/ productionresultssa7.blob.core.windows.net/ productionresultssa8.blob.core.windows.net/ productionresultssa9.blob.core.windows.net/ productionresultssa10.blob.core.windows.net/ productionresultssa11.blob.core.windows.net/ productionresultssa12.blob.core.windows.net/ productionresultssa13.blob.core.windows.net/ productionresultssa14.blob.core.windows.net/ productionresultssa15.blob.core.windows.net/ productionresultssa16.blob.core.windows.net/ productionresultssa17.blob.core.windows.net/ productionresultssa18.blob.core.windows.net/ productionresultssa19.blob.core.windows.net/ github-production-repository-image-32fea6.s3.amazonaws.com github-production-release-asset-2e65be.s3.amazonaws.com insights.github.com wss://alive.github.com api.githubcopilot.com api.individual.githubcopilot.com api.business.githubcopilot.com api.enterprise.githubcopilot.com; font-src github.githubassets.com; form-action 'self' github.com gist.github.com copilot-workspace.githubnext.com objects-origin.githubusercontent.com; frame-ancestors 'none'; frame-src viewscreen.githubusercontent.com notebooks.githubusercontent.com; img-src 'self' data: blob: github.githubassets.com media.githubusercontent.com camo.githubusercontent.com identicons.github.com avatars.githubusercontent.com private-avatars.githubusercontent.com github-cloud.s3.amazonaws.com objects.githubusercontent.com release-assets.githubusercontent.com secured-user-images.githubusercontent.com/ user-images.githubusercontent.com/ private-user-images.githubusercontent.com opengraph.githubassets.com copilotprodattachments.blob.core.windows.net/github-production-copilot-attachments/ github-production-user-asset-6210df.s3.amazonaws.com customer-stories-feed.github.com spotlights-feed.github.com objects-origin.githubusercontent.com *.githubusercontent.com; manifest-src 'self'; media-src github.com user-images.githubusercontent.com/ secured-user-images.githubusercontent.com/ private-user-images.githubusercontent.com github-production-user-asset-6210df.s3.amazonaws.com gist.github.com; script-src github.githubassets.com; style-src 'unsafe-inline' github.githubassets.com; upgrade-insecure-requests; worker-src github.githubassets.com github.com/assets-cdn/worker/ github.com/assets/ gist.github.com/assets-cdn/worker/
server: github.com
set-cookie: _gh_sess=L5E%2B0NxihxsaWpFnODmrjteS%2FWDEbaUUWuIYzC6blKJsIU6nDKyB0Zu1csM9%2BgKrGLhKkHENMwZbgaPjV7ANCztLQXybQGnZlkmx7Q8HbX%2BjdxGiJaa2PQfgPCj%2BR0LzMJ6jKQRK8k3fwpXJ37Rgnb36ByMEmc70mdBfmgqchYG0BZ7O42HTiS%2FhTkrkIIKTGtq5cZwFu0yJN7zFrp4CCCAoDnxCXWwawtYBj0SsxzS%2B4DnITLkvyic7Kv9Xa2rqViPeI4VmDH53u%2FXG61Hb7w%3D%3D--uwbZmyjnoPlaNpD2--8JyKDr1VQ3XYHaitaMsRpA%3D%3D; Path=/; HttpOnly; Secure; SameSite=Lax
set-cookie: _octo=GH1.1.1177086600.1753293357; Path=/; Domain=github.com; Expires=Thu, 23 Jul 2026 17:55:57 GMT; Secure; SameSite=Lax
set-cookie: logged_in=no; Path=/; Domain=github.com; Expires=Thu, 23 Jul 2026 17:55:57 GMT; HttpOnly; Secure; SameSite=Lax
x-github-request-id: A7DA:26221E:F81140:1255815:6881222D
HTTP/2 200
date: Wed, 23 Jul 2025 17:55:57 GMT
content-type: text/html; charset=utf-8
vary: X-PJAX, X-PJAX-Container, Turbo-Visit, Turbo-Frame, X-Requested-With,Accept-Encoding, Accept, X-Requested-With
etag: W/"7157a229a93727a59e842c8a7ce2d7c3"
cache-control: max-age=0, private, must-revalidate
strict-transport-security: max-age=31536000; includeSubdomains; preload
x-frame-options: deny
x-content-type-options: nosniff
x-xss-protection: 0
referrer-policy: no-referrer-when-downgrade
content-security-policy: default-src 'none'; base-uri 'self'; child-src github.githubassets.com github.com/assets-cdn/worker/ github.com/assets/ gist.github.com/assets-cdn/worker/; connect-src 'self' uploads.github.com www.githubstatus.com collector.github.com raw.githubusercontent.com api.github.com github-cloud.s3.amazonaws.com github-production-repository-file-5c1aeb.s3.amazonaws.com github-production-upload-manifest-file-7fdce7.s3.amazonaws.com github-production-user-asset-6210df.s3.amazonaws.com *.rel.tunnels.api.visualstudio.com wss://*.rel.tunnels.api.visualstudio.com objects-origin.githubusercontent.com copilot-proxy.githubusercontent.com proxy.individual.githubcopilot.com proxy.business.githubcopilot.com proxy.enterprise.githubcopilot.com *.actions.githubusercontent.com wss://*.actions.githubusercontent.com productionresultssa0.blob.core.windows.net/ productionresultssa1.blob.core.windows.net/ productionresultssa2.blob.core.windows.net/ productionresultssa3.blob.core.windows.net/ productionresultssa4.blob.core.windows.net/ productionresultssa5.blob.core.windows.net/ productionresultssa6.blob.core.windows.net/ productionresultssa7.blob.core.windows.net/ productionresultssa8.blob.core.windows.net/ productionresultssa9.blob.core.windows.net/ productionresultssa10.blob.core.windows.net/ productionresultssa11.blob.core.windows.net/ productionresultssa12.blob.core.windows.net/ productionresultssa13.blob.core.windows.net/ productionresultssa14.blob.core.windows.net/ productionresultssa15.blob.core.windows.net/ productionresultssa16.blob.core.windows.net/ productionresultssa17.blob.core.windows.net/ productionresultssa18.blob.core.windows.net/ productionresultssa19.blob.core.windows.net/ github-production-repository-image-32fea6.s3.amazonaws.com github-production-release-asset-2e65be.s3.amazonaws.com insights.github.com wss://alive.github.com api.githubcopilot.com api.individual.githubcopilot.com api.business.githubcopilot.com api.enterprise.githubcopilot.com; font-src github.githubassets.com; form-action 'self' github.com gist.github.com copilot-workspace.githubnext.com objects-origin.githubusercontent.com; frame-ancestors 'none'; frame-src viewscreen.githubusercontent.com notebooks.githubusercontent.com; img-src 'self' data: blob: github.githubassets.com media.githubusercontent.com camo.githubusercontent.com identicons.github.com avatars.githubusercontent.com private-avatars.githubusercontent.com github-cloud.s3.amazonaws.com objects.githubusercontent.com release-assets.githubusercontent.com secured-user-images.githubusercontent.com/ user-images.githubusercontent.com/ private-user-images.githubusercontent.com opengraph.githubassets.com copilotprodattachments.blob.core.windows.net/github-production-copilot-attachments/ github-production-user-asset-6210df.s3.amazonaws.com customer-stories-feed.github.com spotlights-feed.github.com objects-origin.githubusercontent.com *.githubusercontent.com; manifest-src 'self'; media-src github.com user-images.githubusercontent.com/ secured-user-images.githubusercontent.com/ private-user-images.githubusercontent.com github-production-user-asset-6210df.s3.amazonaws.com gist.github.com; script-src github.githubassets.com; style-src 'unsafe-inline' github.githubassets.com; upgrade-insecure-requests; worker-src github.githubassets.com github.com/assets-cdn/worker/ github.com/assets/ gist.github.com/assets-cdn/worker/
server: github.com
content-encoding: gzip
accept-ranges: bytes
x-github-request-id: A7DA:26221E:F81174:125584E:6881222D
Release v3.21.5 · goadesign/goa · GitHub
Loading
Skip to content
Navigation Menu
{{ message }}
-
-
Notifications
You must be signed in to change notification settings - Fork 570
Compare
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)
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)
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
Full Changelog: v3.21.1...v3.21.5
Assets 2
You can’t perform that action at this time.