feat: auto-generate charmcraft.yaml json schema
Metadata
Current evaluation
Merged. Introduces automated JSON schema generation for charmcraft.yaml, a CI workflow to detect schema changes, and a Makefile recipe for regeneration. Full editor support depends on a separate SchemaStore repository merge.
Suggested action: —
No scores available.
Issue body
Adds plumbing for creating a JSON schema for project files, a CI workflow to check for changes, and a Makefile recipe to regenerate the schema.
Once this is merged, I will have to have a PR in the schema store to point to this repository be merged. Until then, the only way to test this is to locally point your editor to `schema/charmcraft.json` for `**/charmcraft.yaml`.
Corresponding schema store PR: https://github.com/SchemaStore/schemastore/pull/4472
CRAFT-2806.
Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| qwen/qwen3.6-35b-a3b | — | — | Merged. Introduces automated JSON schema generation for charmcraft.yaml, a CI workflow to detect schema changes, and a Makefile recipe for regeneration. Full editor support depends on a separate SchemaStore repository merge. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Merged auto-generation plumbing for charmcraft.yaml JSON schema, adding a CI workflow and Makefile recipe. Enables local editor validation via schema/charmcraft.json. Requires a separate SchemaStore PR for official integration. Resolves CRAFT-2806. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Merged implementation adding automated JSON schema generation for charmcraft.yaml, CI change detection, and a Makefile regeneration recipe. Requires a separate SchemaStore PR for editor integration. Resolves CRAFT-2806. |
Update history
No update history recorded yet.
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #687 Add a jsonschema for charmcraft.yaml in jsonstore | charmcraft | closed | Closed and deferred to internal Jira ticket CRAFT-2806. Maintainers agreed to auto-generate the schema via Pydantic models and submit it to the JSON Schema Store, but the work remains unimplemented. | |
| #680 The charmcraft.yaml is not longer optional for build command (CRAFT-784). | charmcraft | merged | Merged. The type key in charmcraft.yaml is now mandatory for the build command. Config schema validation enforces this during unmarshalling, with a default fallback for empty configs. Approved by two reviewers and passed CI. |