learningequality / learningequality/le-utils

Upgrade jsonschema dependency and schema versions

Open
#159 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
7
Forks
36
PR merge metrics
No merged PRs in 30d

Description

Overview

Currently, le-utils does not directly require jsonschema directly, but does provide code to use schemas in the Kolibri ecosystem. The current JSON schemas are limited to Draft-07 because the latest version of jsonschema to support Python 3.6 only supports up to that draft. The le-utils project must continue to support Python 3.6 until it is deprecated in Kolibri. Once that happens, we can upgrade jsonschema (used in tests) and update the existing schemas to user a newer schema version, 2019 or 2020.

Prerequisite
  • le-utils drops support for Python 3.6
Description and outcomes
  • Update the jsonschema version to the latest release that aligns with le-utils python version requirements
  • Update all JSON schemas to reference a newer schema version
  • Ensure the updated schemas still validate
  • Replace any UUID regexes with "format": "uuid" (added in 2019-09)

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

After Python 3.6 support is dropped, locate the jsonschema dependency declaration and the existing JSON schemas, then inspect the tests that validate them. Update the dependency and schema references together, replace the specified UUID regexes, and run the schema validation tests to confirm the updated schemas still validate.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
tooling
Issue type
Refactor
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.