← Back to issue list

Use pydantic instead of jsonschema for legacy project

View original Github issue

Metadata

Project
snapcraft
Number
#5653
Type
issue
State
open
Author
bepri
Labels
Status: Triaged Type: Enhancement
Created
Updated
Closed
—

Current evaluation

Obsolete after snapcraft_legacy removal: project parsing no longer uses jsonschema; the remaining store migration is tracked separately in #5655.

Suggested action: close stale

Reason: Commit ffb164b7a ("chore: remove snapcraft_legacy") removed the affected legacy subsystem, making the requested migration obsolete. In the current tree, jsonschema is absent from project parsing and remains only in snapcraft/store/channel_map.py, which is separately covered by #5655.

Evaluated by: mr-cal-bot

Impact: 15 Quick Win: 12 Complexity: 10 Confidence: 92 Actionability: 90

Issue body

### What needs to get done The legacy code for parsing the project should use Pydantic models instead of validating with the `jsonschema` library. ### Why it needs to get done The current legacy code uses a pinned version of jsonschema that is very difficult to upgrade. Instead of upgrading, the code should just move over to using the more modern pydantic models.

Evaluation history

Date Model Scores Action Summary
stealth/space-bunny-alpha
Impact: 15
Quick Win: 12
Complexity: 10
Confidence: 92
Actionability: 90
close stale Obsolete after snapcraft_legacy removal: project parsing no longer uses jsonschema; the remaining store migration is tracked separately in #5655.
stealth/space-bunny-alpha
Impact: 20
Quick Win: 12
Complexity: 10
Confidence: 93
Actionability: 65
close stale Migration is obsolete: current project loading uses craft_application and no project code imports jsonschema; remaining usage is store-only and tracked in #5655.
stealth/space-bunny-alpha
Impact: 45
Quick Win: 12
Complexity: 60
Confidence: 82
Actionability: 67
keep open Triaged enhancement to migrate legacy project parsing from jsonschema to Pydantic. Pydantic project models now exist, but jsonschema 2.6.0 remains pinned and the remaining legacy scope needs verification.
stealth/space-bunny-alpha
Impact: 15
Quick Win: 13
Complexity: 10
Confidence: 96
Actionability: 95
close resolved The legacy project code was removed in commit ffb164b7a, and its dependencies in 995f0a3bc; the requested Pydantic migration is no longer needed.
stealth/space-bunny-alpha
Impact: 8
Quick Win: 8
Complexity: 0
Confidence: 98
Actionability: 98
close stale Legacy project parsing was targeted for migration from jsonschema to Pydantic, but the legacy subsystem was removed; remaining jsonschema validation belongs to separate store work in #5655.
stealth/space-bunny-alpha
Impact: 5
Quick Win: 0
Complexity: 0
Confidence: 92
Actionability: 0
close stale Migrate legacy project parsing from pinned jsonschema 2.6.0 to pydantic. Now moot: snapcraft_legacy was removed and project parsing already uses pydantic. Remaining jsonschema use is store-only (#5655).
qwen/qwen3.6-35b-a3b
Impact: 30
Quick Win: 13
Complexity: 40
Confidence: 70
Actionability: 70
close stale Enhancement to migrate legacy project parsing from jsonschema to Pydantic models. Issue is closed without implementation; codebase still uses pinned jsonschema 2.6.0.
qwen/qwen3.8-27b
Impact: 20
Quick Win: 12
Staleness: 85
Complexity: 40
Confidence: 80
Support Request: 0
close stale Migrate legacy snapcraft project parsing from jsonschema to Pydantic models. Issue was closed as abandoned, but the legacy code (snapcraft_legacy) has since been removed entirely from the codebase, making the issue moot.
qwen/qwen3.6-35b-a3b
Staleness: 85
Complexity: 50
Confidence: 85
Support Request: 5
keep open Enhancement to replace jsonschema with pydantic for legacy project parsing. Currently triaged and linked to an internal Jira ticket, but has seen no maintainer activity in over a year.
qwen3.6-35b-a3b-mtp-q6
Staleness: 75
Complexity: 40
Confidence: 75
Support Request: 5
close stale Enhancement to replace pinned jsonschema with pydantic for legacy project parsing. Triaged but inactive for 329 days with only a Jira sync bot comment.

Update history

No update history recorded yet.

Related work

  • Related To: snapcraft#5655 (confidence 99%)

    Tracks the remaining legacy store migration corresponding to current jsonschema usage.

  • Related To: snapcraft#5654 (confidence 95%)

    Same-title legacy project migration issue, closed without an implementation.

Related issues

Issue Project State Summary Similarity
#5654 Use pydantic instead of jsonschema for legacy project snapcraft closed Closed without the requested Pydantic migration; PR #5690 (f12ce847d) only updated jsonschema to 2.6.0, leaving legacy project validation on the old library.
82%
#5655 Use pydantic instead of jsonschema for legacy store snapcraft open Triaged enhancement to replace legacy store channel-map jsonschema validation with Pydantic; it remains open, and jsonschema 2.6.0 is still pinned.
79%