Skip to content

Publish JSON Schema release asset and notify downstream repositories #500

Open

Description

@jpower432

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.yaml upload 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 gemaraproj consumer.
  • 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-python to 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.yml currently publishes openapi.yaml and dispatches gemara-release to website.
  • gemara-python/tools/generate.py consumes the vendored schemas/gemara-v1.schema.json to generate SDK models.
  • gemara-python/schemas/provenance.json records the upstream Gemara release and schema digest.

Activity

  1. added
    help wantedExtra attention is needed
    and removed
    releasePull requests that trigger a new release
    on Sep 17, 2026
  2. dk5488 commented on Sep 21, 2026

    @dk5488

    Hi, I’m interested in working on adding the JSON Schema asset and downstream dispatch. Could you please assign this issue to me?

  3. jpower432 commented on Sep 21, 2026

    @jpower432
    ContributorAuthor

    Done. Thanks @dk5488! Let me know if you need any more details.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions