canonical / canonical/craft-application

Craft-application should include a schema JSON and a CI job to check the schema.

Open
#875 1 comment 0 reactions 0 assignees View on GitHub
Status: Triaged Type: Enhancement
Dominant language
Python
Stars
14
Forks
29
Avg merge
2d 3h
Merged PRs (30d)
12

Description

### What needs to get done

We should include an upstream version of the [schema generator](https://github.com/canonical/rockcraft/blob/main/tools/schema/schema.py) and a [Schema validator/diff checker](https://github.com/canonical/rockcraft/blob/main/.github/workflows/schema.yaml) CI job in craft-application.

### Why it needs to get done

We should know when a change is going to affect applications' schemas so we can include that fact in the changelog. While this might not cover every possible case, doing it will still improve things significantly.

Perhaps we could generate separate schema files for all of our fakecrafts (testcraft, partitioncraft, platformcraft, witchcraft) to test more scenarios where the schema could change.

Contributor guide

Open the contributing guide

Research direction

Start by comparing the upstream tools/schema/schema.py generator with the .github/workflows/schema.yaml validator and diff checker linked in the issue. Identify where their equivalents belong in craft-application and whether separate schemas can be generated for testcraft, partitioncraft, platformcraft, and witchcraft. Done means the schema JSON and CI check are present and schema-affecting changes are detectable.

Written by the indexing model from the issue text.

Assessment

Tech stack
github-actions, python
Domain
build-system, ci-cd
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.