From bcbd4a703239feefa1f166fc303c845f9d512a8e Mon Sep 17 00:00:00 2001 From: archipelago Date: Fri, 7 Aug 2026 18:49:08 -0400 Subject: [PATCH] docs(app-developer-guide): add the missing local manifest-validation step MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The guide walked a developer from manifest to install but never told them how to validate the manifest locally first — despite scripts/validate-app-manifest.sh existing for exactly that. A developer's first signal that their manifest was wrong would have been an install failure on a node. Adds a "Validate Your Manifest" step at the top of Testing, pointing at the script (recently fixed — it had been rejecting every manifest because it shelled out to a missing ruby). Notes the strict behaviour a new submitter hits, e.g. an unpinned :latest tag is rejected, and that the Rust parser is canonical. Verified: the install RPC example in this guide (id + dockerImage) matches the handler; the cargo test target crate name (archipelago-container) is correct. Co-Authored-By: Claude Opus 5 (1M context) --- docs/app-developer-guide.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/docs/app-developer-guide.md b/docs/app-developer-guide.md index eed3bcfe..11378008 100644 --- a/docs/app-developer-guide.md +++ b/docs/app-developer-guide.md @@ -341,6 +341,21 @@ cmp -s app-catalog/catalog.json neode-ui/public/catalog.json ## Testing Your App +### Validate Your Manifest + +Before anything else, check your manifest against the schema and the app-submission +rules: + +```bash +./scripts/validate-app-manifest.sh apps/my-app/manifest.yml +``` + +It reports `STATUS: APPROVED` or `STATUS: REJECTED` with the specific failures — +including the ones that block submission, such as an unpinned `:latest` image +tag (new apps must pin a concrete version). It needs `python3` and PyYAML; it +tells you if either is missing. The Rust parser in `core/container/src/manifest.rs` +remains the canonical validator — this script is the fast local preflight. + ### Local Testing ```bash