Regenerate and test the schema
playbooks/regenerate-and-testChecked by automation only
still a draft
Written 2026-10-28 by ktl-librarian (automation). Last checked 2026-10-28 by ktl-librarian (automation).
The full record
- Checks
- 2026-10-28 by
ktl-librarian(automation)
- 2026-10-28 by
- Sources
- References
- About
- Graph
- Open this concept in the knowledge graph
- IRI
https://w3id.org/lmodel/github-actions/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”Set up
Section titled “Set up”CONTRIBUTING.md asks for Python 3.10 or later, uv and just.1 Clone the repository, run uv sync --group dev, and list the recipes with just --list. On WSL2, run export JUST_TEMPDIR=/tmp first, because the justfile’s shebang recipes otherwise fail.2 .copier-answers.yml records that the project was made from gh:linkml/linkml-project-copier at v0.5.0-8-ga2117fc.3 just update runs copier update and upgrades linkml and linkml-runtime in uv.lock.
Change the schema
Section titled “Change the schema”- Edit the files in
src/github_actions/schema/. Leavesrc/github_actions/schema/schemastore/as upstream wrote it: Move the upstream pins says how to replace it. - Follow the schema’s conventions: UpperCamelCase classes and enums, snake_case slots, GitHub’s strings as permissible values, attributes unless two classes share a field, and a short description on every element. Name in
see_alsothe page each description renders, and keep every name apart from LOKF’s and slsa’s, as Element names and the shared namespace explains. - Regenerate.
just gen-projectwritesproject/and the Python models,just gen-docwritesdocs/schema/github_actions.yamland the pages indocs/elements/,just gen-mergedwritesdocs/schema/github_actions_merged.yaml, andjust lokf-adaptwrites.lokf/github-actions.yaml. Commit the output. Generated artefacts lists what each writes. - Add example data to
tests/data/valid/andtests/data/invalid/, namedClassName-###.yaml, with an invalid example for each constraint. Test data and schema tests describes the folders. - If the change alters behaviour and not just wording, add an entry under
## [Unreleased]inCHANGELOG.md.
Check it
Section titled “Check it”just testruns_test-schema,_test-pythonand_test-examples: it generates the project intotmp/, regenerates the Python models and runs pytest, and runslinkml-run-examplesover the example data.just lintrunslinkml-lint --ignore-warningson the schema directory, so it fails on errors only..linkmllint.yamlapplies LinkML’s recommended rules withstandard_namingat warning level.just lokf-adapt-checkfails when.lokf/github-actions.yamlis stale against the schema or.lokf/lokf.yaml.uvx pre-commit runruns the hooks on what is staged, which CONTRIBUTING.md names as ruff, yamllint, codespell, typos and theuv.lockcheck. The hooks leave alone the SchemaStore copy, the generated files,.lokf/lokf.yamland the adapt copy,.lokf/scripts/and.lokf/m365/, andtests/neighbours/.- Update
uv.lock, or.lokf/uv.lock, in the same change as a dependency edit, because CI installs withuv sync --lockedand fails otherwise. - Run
cd .lokf && just lokf-validateafter a change to.lokf/.
Build and test runs just test on Python 3.10 to 3.14, and just lint and just lokf-adapt-check on Python 3.13 only.4 Lint & docs runs ShellCheck, actionlint, markdownlint, lychee and codespell. CONTRIBUTING.md says that these checks are easy to trip locally.