Skip to content

Add manifest.json as the runtime source of truth#15

Merged
FeodorFitsner merged 2 commits into
mainfrom
add-runtime-manifest
Jun 14, 2026
Merged

Add manifest.json as the runtime source of truth#15
FeodorFitsner merged 2 commits into
mainfrom
add-runtime-manifest

Conversation

@FeodorFitsner

Copy link
Copy Markdown
Contributor

What

Introduces a committed manifest.json that is the single source of truth for a runtime release. It is used both ways:

  • Drives the build — CI's new setup job reads [.pythons[].full_version] from it and feeds the build matrix via fromJSON, replacing the hardcoded version list. What gets built is exactly what the manifest lists.
  • Is publishedpublish-release injects the release date (= the YYYYMMDD tag) and uploads the same manifest.json as a release asset.

This lets serious_python and flet consume a single, consistent version set — CPython full version + build date, Pyodide version + platform tag, dart_bridge version, supported short versions — keyed by release date, instead of hand-mirroring versions in multiple places (which had already drifted: e.g. dart_bridge 1.2.3 on Linux vs 1.2.1 elsewhere; unified here to 1.2.3).

Changes

  • manifest.json (new) — source of truth; committed form omits release.
  • .github/workflows/build-python.ymlsetup job derives the matrix from the manifest; publish-release checks out, injects the release date, and uploads manifest.json.
  • README.md — documents the manifest, the date-keyed release flow, and consumers.

After merge

Cut a fresh release via workflow_dispatch (new YYYYMMDD) to rebuild the pythons and publish the manifest; that date becomes serious_python's pinned defaultReleaseDate.

Per-version build specifics (ABIs, 3.12 vs 3.13+ build method) remain in the platform build scripts.

manifest.json now drives the CI build matrix (the setup job reads
[.pythons[].full_version] from it) and is published as a release asset
with the release date injected, so serious_python and flet consume a
single consistent version set (CPython + pyodide + dart_bridge) keyed by
release date instead of hand-mirroring versions.
Update .github/workflows/build-python.yml to use actions/checkout@v6 instead of v4 in both jobs. This brings the workflow up to the newer checkout action version to pick up improvements and fixes.
@FeodorFitsner FeodorFitsner merged commit 255c410 into main Jun 14, 2026
5 of 14 checks passed
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