Files
libre-bible-data/docs/resource-manifest.md
T
2026-07-11 21:36:31 -05:00

31 lines
1.2 KiB
Markdown

# Resource Manifest
Each `sources/*.json` file describes one upstream resource.
Required fields:
- `id`: Stable package id used by apps.
- `title`: Human-readable title.
- `abbreviation`: Short label.
- `language`: BCP-47-ish language code.
- `source.provider`: Upstream publisher or repository.
- `source.url`: Human-facing upstream page.
- `source.download_url`: Machine download URL used by importers.
- `source.format`: Upstream source format, such as `usfm-zip`.
- `license.name`: License or rights label.
- `license.redistribution`: Whether this repo may redistribute normalized outputs.
- `license.notes`: Practical rights notes.
- `checks.expected_sha256`: Last accepted source archive checksum.
- `checks.last_checked_at`: Last automated check timestamp.
- `importer.name`: Script/importer id.
- `importer.version`: Importer version.
- `packages`: Generated package paths.
Update flow:
1. Download the upstream artifact to `cache/<resource-id>/`.
2. Calculate SHA-256.
3. Compare against `checks.expected_sha256`.
4. If unchanged, update `checks.last_checked_at` only when intentionally accepting that metadata churn.
5. If changed, inspect upstream release notes/license, regenerate packages, verify counts/checksums, then update the manifest in the same commit.