Release the schema
playbooks/releaseChecked 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
- Graph
- Open this concept in the knowledge graph
- IRI
https://w3id.org/lmodel/github-actions/knowledge/playbooks/release- Licence
- CC BY 4.0
- Files
- MarkdownJSON-LDSource on GitHubHistory on GitHub
Release the schema
Section titled “Release the schema”CONTRIBUTING.md’s Releasing section and the Semantic release workflow say how a release is cut.1 The release tags are the schema’s own versions, vX.Y.Z, and no file carries the version. The package github-actions-linkml takes its version from git through uv-dynamic-versioning, and a comment in pyproject.toml says that PyPI publishing is off.2
Before the first release
Section titled “Before the first release”- Push the
v0.0.0baseline tag onmainbefore the first releasing merge, which then releases 0.1.0. Both release jobs refuse to run without av*tag, because semantic-release would otherwise make the first release 1.0.0.CHANGELOG.mdcallsv0.0.0a baseline, not a release.3 - Configure required reviewers on the
releaseGitHub Environment in the repository’s settings, or every qualifying merge is released with no human step. SECURITY.md says that this setting is not yet in force.4 - Leave off any branch rule that requires pull requests, status checks or signed commits on
main, because it would reject the release job’s own push.
For each change
Section titled “For each change”- Write the change under
## [Unreleased]inCHANGELOG.mdas you go. The release refuses an empty section, throughnode .github/scripts/changelog-release.mjs check. - Type the commit with Conventional Commits for what the change is. Only
feat:,fix:,security:and a breaking!start a release, and other types leave their entries for the next release that does. When a pull request would release, give it a releasing type in its title too, since a squash merge takes its subject from the title. - Merge to
main. semantic-release retitles the section to## [X.Y.Z] - YYYY-MM-DD, commitsCHANGELOG.md, tagsvX.Y.Zand publishes the GitHub Release with the section’s text as its notes. Once the repository variableKNOWLEDGE_RELEASE_ENABLEDistrue, it then dispatches Knowledge Release for the tag, which attaches the schema copy and the bundle when the bundle changed. Run that workflow by hand withforcewhen only the schema changed.
Staying below 1.0.0
Section titled “Staying below 1.0.0”.releaserc.json maps a breaking change to a minor release and a security commit to a patch release.5 So the schema stays in 0.x until someone removes the first rule, which CONTRIBUTING.md asks to be done in a pull request of its own. The release commit’s message is chore(release): ${nextRelease.version} - changelog promoted [skip ci], so the commit skips CI.