Skip to content

feat(release): attach OpenAPI spec to GitHub releases#294

Merged
vredchenko merged 1 commit into
mainfrom
fix/release-attach-openapi-spec
Jun 2, 2026
Merged

feat(release): attach OpenAPI spec to GitHub releases#294
vredchenko merged 1 commit into
mainfrom
fix/release-attach-openapi-spec

Conversation

@vredchenko

Copy link
Copy Markdown
Collaborator

Summary

Fulfils the ADR 0020 clause that the canonical OpenAPI spec be attached to GitHub Releases for version pinning — which the original #292 implementation missed (the create-release job only uploaded dist/*, and the spec lives at docs/api/openapi.json).

  • build-wheel generates spec/openapi-<version>.json from app.openapi() (clean tag version; --extra all so all imports resolve) and uploads it as a separate openapi-spec artifact — kept out of dist/ so it never reaches PyPI/twine.
  • create-release downloads it and adds spec/*.json to the release files.

The current smartem-decisions-v0.1.1rc48 release was patched by hand (openapi-0.1.1rc48.json is attached now); this makes it automatic for every future cut.

Test plan

  • Workflow YAML validates
  • Confirmed on the next release tag (the release workflow only runs on tag/main, not on PRs)

Fulfils the ADR 0020 clause that the canonical spec be attached to releases
for version pinning. build-wheel generates spec/openapi-<version>.json (clean
tag version, kept out of dist/ so it never reaches PyPI) and uploads it as an
artifact; create-release downloads it and adds spec/*.json to the release files.

The rc48 release was patched manually; this automates it for future cuts.
@vredchenko vredchenko merged commit 8b65699 into main Jun 2, 2026
21 checks passed
@vredchenko vredchenko deleted the fix/release-attach-openapi-spec branch June 2, 2026 21:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant