Repository navigation
Publish JSON Schema release asset and notify downstream repositories #500
Description
Problem / Motivation
gemara-python currently vendors schemas/gemara-v1.schema.json from a tagged gemaraproj/gemara release so it can generate its models reproducibly. The canonical repository release publishes only openapi.yaml; the JSON Schema creation and release distribution should live with the CUE source of truth instead of being maintained in the Python SDK.
The release workflow also dispatches only to website. Downstream gemaraproj repositories that consume generated release assets need a reliable, authenticated notification after every successful release.
Proposed Solution
Port the JSON Schema generation currently used by gemaraproj/gemara-python into gemaraproj/gemara, and extend the release workflow to publish the generated schema as a versioned release asset. Generalize the existing post-release repository dispatch so designated downstream gemaraproj consumers receive the released tag only after all generated assets have uploaded.
Acceptance Criteria
- Generate the canonical JSON Schema from the tagged Gemara CUE source in
gemaraproj/gemara; generation is deterministic and covered by tests. - Attach the generated JSON Schema to each GitHub release alongside
openapi.yaml, using a stable, documented asset filename. - Preserve the existing
openapi.yamlupload and CUE module publication behavior. - Run downstream notification only after every generated release asset is available.
- Use the existing GitHub App-token approach and least-privilege repository access to dispatch a release event containing the release tag to each designated downstream
gemaraprojconsumer. - Document the dispatch event type and payload contract, plus the maintained recipient list, so downstream repositories can subscribe without coupling to workflow internals.
- Update
gemara-pythonto consume the release JSON Schema asset rather than creating or maintaining an independently produced canonical schema. - Add workflow-level or integration coverage for asset publication and dispatch payload construction, including a failure path that prevents notification when generation or asset upload fails.
Related
.github/workflows/release.ymlcurrently publishesopenapi.yamland dispatchesgemara-releasetowebsite.gemara-python/tools/generate.pyconsumes the vendoredschemas/gemara-v1.schema.jsonto generate SDK models.gemara-python/schemas/provenance.jsonrecords the upstream Gemara release and schema digest.
Metadata
Metadata
Assignees
Labels
Type
Projects
- StatusShow more project fieldsTodo
Activity
dk5488 commentedon Sep 21, 2026
Hi, I’m interested in working on adding the JSON Schema asset and downstream dispatch. Could you please assign this issue to me?
jpower432 commentedon Sep 21, 2026
Done. Thanks @dk5488! Let me know if you need any more details.