Publish to Curated
Publishing shares the same Packaging Definition you used for Inner Loop — not a second project format. Curated release is optional and does not require prior deploy evidence.
Same files
apps/<package>/
├── compose.yaml
├── synology-app.yaml
├── icon.png
└── README.md Directory name must equal package in synology-app.yaml. CI validates Package Identity uniqueness across the repository.
Workflow
- Fork Community Repository. There is no Publisher portal. Anyone may propose changes to any App.
- Edit or add Packaging Definition. Point Compose at public OCI images with immutable digests for Curated publish. Private registry images are not supported in Curated v1.
- Open Pull Request. Or run synopkgland publish to create or update the PR from your machine.
- PR CI runs validate and preview. Fork code never touches release signing keys.
- Maintainer merge is Publication Approval. Trusted CI rebuilds the thin SPK, allocates Package Build, signs App Package Attestation, and updates the Package Source index on the packages. host.
What publish does not do
- Upload your local SPK or Local Attestation as the Curated artifact.
- Require proof that you ran Inner Loop Deploy first (ADR-0059).
- Grant exclusive App Owner rights — maintainers merge; Publisher does not hold platform signing keys.
Community Repository URL
Placeholder — official GitHub organization not announced: https://github.com/synopackageland/synopkgland-community-apps
After merge, NAS Administrators who already added the Curated Package Source see the App in Package Center. The human website lists Apps for discovery; install still happens only in DSM.