Regenerate and test the schema
playbooks/regenerate-and-testChecked by automation only
still a draft
Written 2026-10-30 by ktl-librarian (automation). Last checked 2026-10-21 by ktl-librarian (automation).
The full record
- Checks
- 2026-10-21 by
ktl-librarian(automation)
- 2026-10-21 by
- Sources
- References
- Graph
- Open this concept in the knowledge graph
- IRI
https://w3id.org/lmodel/slsa/knowledge/playbooks/regenerate-and-test- Licence
- CC BY 4.0
- Files
- MarkdownJSON-LDSource on GitHubHistory on GitHub
Regenerate and test the schema
Section titled “Regenerate and test the schema”- Install the dependencies with
just install.CONTRIBUTING.mdasks for Python 3.10 or later, uv and just. - Edit the schema in
src/slsa/schema/:slsa.yamland the modules it imports. Leavein_toto/in_toto_core.yamlas it is: it is lmodel/in-toto’s core module, copied unchanged,1 andtests/test_in_toto_import.pyfails when its git object hash differs from the one it pins. To take a later release of lmodel/in-toto, replace the file and the pinned hash together.2 - Run
just gen-projectto regenerateproject/and the Python data models. After you rename or remove a class, runjust cleanfirst:gen-javawrites one file per class intoproject/java/and deletes none. - Run
just gen-docto regeneratedocs/schema/slsa.yamlanddocs/elements/. To see them on the site, runnpm run devinwebsite/, aswebsite/README.mdsays. Then runjust gen-mergedto regeneratedocs/schema/slsa_merged.yaml. - Run
just lokf-adaptto regenerate.lokf/slsa.yaml, the bundle’s domain schema. slsa LinkML schema says whichlokfthe recipe runs, and how to run another. - Run
just test. It runs three steps:_test-schemarunsgen-projectinto a scratchtmp/folder._test-pythonregenerates the Python models and runs pytest._test-examplesrunslinkml-run-examplesovertests/data/.
- Run
just lint, which runslinkml-lintover the schema folder and reports errors only..linkmllint.yamlsets its rules. - Commit the regenerated files with the schema change.
.github/workflows/main.yaml runs just test on every push to main and on every pull request, on Python 3.10, 3.11, 3.12, 3.13 and 3.14. On Python 3.13 it also runs two more steps:
just lint, before the tests;just lokf-adapt-check, after the tests and afteruv sync --locked --project .lokfinstalls the bundle’s toolkit. It fails when.lokf/slsa.yamlis stale against the schema or.lokf/lokf.yaml.
On WSL2 (Windows Subsystem for Linux), run export JUST_TEMPDIR=/tmp before any recipe. Without JUST_TEMPDIR, shebang recipes fail with “Permission denied” errors, so the justfile prints a warning when the variable is missing.