This repository contains index tooling and checks. The
tunaos-org Cloudflare Worker serves the production remote from tuna-os/docs
at https://tunaos.org/flatpak/. Follow this distinction for every lifecycle
change.
tuna-os/docs/static/flatpak/index/static as production. This repository
no longer retains a local index/static snapshot.FLATPAK_INDEX_TOKEN scoped to tuna-os/docs as documented in the
publish workflow. Never put token values in commands or documentation.Configure the application publisher to build an OCI layout, push the image
to GHCR, and update the production index. Prefer the shared
tuna-os/.github/actions/update-flatpak-index action. If using the vendored
script, pass:
python3 .github/scripts/update-index.py \
--oci-dir <app>.oci \
--index-file index-repo/static/flatpak/index/static \
--repo-name tuna-os/<app> \
--require-appstream \
--tags latest
Verify production after publication:
curl -sSfL -o served-index.json \
https://tunaos.org/flatpak/index/static
./scripts/enrich-index.py served-index.json --check
This audit reads registry labels for the digests already named in the served index. It reports missing metadata but does not change the file.
For a reviewed candidate index, run
scripts/update-index.py with --oci-dir, --index-file, --repo-name, and
--tags. Remember that this checkout is not the production source.
The current updater has no --pause operation. Do not silently delete an entry
or change an image tag to simulate a pause.
tuna-os/docs
before you change production. Do not disable or alter a publisher workflow
without maintainer approval.tuna-os/docs.
Follow the normal review path and include the decision.The current updater adds or replaces entries; it has no delete operation. Retirement therefore needs a coordinated, reviewed production change.
tuna-os/docs through review.From this repository, run the test suite, which uses the standard library, after documentation or script changes:
python3 -m unittest discover -s tests -v
If a publication changed metadata, also run the served-index audit. A non-zero
--check result means the live index needs review; it is not proof that the
application build failed.
The production declaration at
https://tunaos.org/flatpak/expected-apps.json is the source of app IDs and
required architectures. When you add, rename, or retire an app, edit
static/flatpak/expected-apps.json in tuna-os/docs. Make this change
together with the production index and publisher changes described above. Use
id for one app or ids for a registry entry that publishes multiple apps
(such as the installer); archs applies to every declared ID. Keep optional
future architectures in archs_planned until the remote serves them.
Update the Available apps table in this repository’s README to match those IDs exactly, including case. Do not add a local copy of the declaration. To check a proposed declaration before the docs deploy publishes it:
python3 scripts/catalog.py ../docs/static/flatpak/expected-apps.json --readme README.md
python3 scripts/catalog.py ../docs/static/flatpak/expected-apps.json --index served-index.json
On each pull request, CI compares the README IDs with the served declaration. The scheduled check of the remote also compares the served index with the declaration. Each served registry and app ID must be in the declaration. The architecture of each ref must match its image. The remote must serve each required pair of ID and architecture. Coordinate changes across the two repositories; a deployment between their merges can temporarily fail parity.