Releases and publishing
GitHub Actions builds tagged releases and opens them as drafts.
The repository is ultreia-io/emby-library-hub, with develop as its default branch.
Publishing is a separate maintainer action after review. Local checks do not push, tag, or publish anything.
Prepare a release locally
- Set the version in
Directory.Build.props. - Add the changelog entry and
docs/release-notes/<version>.md. - Run the checks below and inspect the generated package and bilingual documentation.
- Verify the package on the target Emby server before approving publication.
./tools/check
./tools/package
.venv-docs/bin/mkdocs build --strict
python3 tools/check-docs.py
python3 tools/check-package.py
python3 tools/check-package.py --tag-only "v<version>"
Replace <version> with the version from Directory.Build.props.
The --tag-only check validates the version string and notes. It does not create a Git tag.
Directory.Build.props is the version source. A release tag must be exactly v followed by that version.
The source license is GPL-3.0-only. Embedded dependencies retain their own notices.
GitHub workflows
| Workflow | Trigger | Result |
|---|---|---|
| CI | Push to develop; pull requests; manual dispatch | Build, tests, docs checks, package artifact |
| Website | Push to develop; manual dispatch | Strict bilingual docs build, then GitHub Pages deployment |
| Release | Push a v* tag |
Validate version, build and test, create a draft release with assets |
Actions are pinned to commit hashes. Pull requests do not receive publication credentials.
The release workflow refuses to overwrite an existing release.
Publish an approved release
After review and successful CI, create and push the matching tag from the reviewed commit.
For a tag named v<version>, the workflow uploads:
Emby.LibraryHub-<version>.dllfor manual installation.emby-library-hub-<version>.zipwith the DLL, English/French installation guides, license, and notices.emby-library-hub-<version>.sha256for the exact downloadable assets.
Install the downloaded DLL as Emby.LibraryHub.dll, replacing the previous file.
The draft release uses docs/release-notes/<version>.md.
Inspect the draft and its artifacts before manually publishing it.
Do not move a published tag or replace its versioned files.