Problem
Integrators and operators had no single place to see version history or what stability guarantees apply to the Boost endpoint HTTP API, format registration, and settings hooks. GitHub Releases also used auto-generated notes instead of curated, version-aligned release documentation.
Acceptance Criteria
Implementation Notes
- Release workflow uses a Python inline script with regex to slice the changelog section for
PLUGIN_VERSION from pyproject.toml; the job fails if no matching section exists
- Deprecation policy distinguishes guaranteed public surfaces from internal
boost_weblate.utils.* modules and undocumented env vars
gh release create switches from --generate-notes to --notes-file populated from the extracted changelog section
References
CHANGELOG.md
.github/workflows/release.yml
README.md
Problem
Integrators and operators had no single place to see version history or what stability guarantees apply to the Boost endpoint HTTP API, format registration, and settings hooks. GitHub Releases also used auto-generated notes instead of curated, version-aligned release documentation.
Acceptance Criteria
CHANGELOG.mdexists, follows Keep a Changelog format, and documents the initial1.0.0release with an[Unreleased]section for future entriesWEBLATE_FORMATS, documented env vars)release.ymlextracts the matching## [version]section fromCHANGELOG.mdand uses it as GitHub Release notes (with Weblate build version appended)README.mdlinks to the changelog and deprecation policy in the documentation table and notes that release notes come fromCHANGELOG.mdImplementation Notes
PLUGIN_VERSIONfrompyproject.toml; the job fails if no matching section existsboost_weblate.utils.*modules and undocumented env varsgh release createswitches from--generate-notesto--notes-filepopulated from the extracted changelog sectionReferences
CHANGELOG.md.github/workflows/release.ymlREADME.md