Build¶
Compiling Themerr-jellyfin requires the following:
Clone¶
Ensure git is installed and run the following:
git clone https://github.com/lizardbyte/themerr-jellyfin.git
cd ./themerr-jellyfin
Setup Python¶
Python dependencies are managed with uv. Install uv outside this repository’s .venv if it is not already
available:
pipx install uv
# or
python -m pip install --user uv
If Python 3.14 is not already installed, install it with uv:
uv python install 3.14
Install Dependencies¶
Create or update the project .venv environment, including build dependencies:
uv sync --only-group dev --no-install-project
Compile¶
uv run --no-sync python ./scripts/build_plugin.py --output ./build
The generated build.yaml is printed to stdout before JPRM runs and is left in the repository root
by default. Use --remove-build-yaml to delete it after the script finishes.
Release builds can pass an explicit plugin version:
uv run --no-sync python ./scripts/build_plugin.py --version v1.2.3 --output ./build
Any generated build.yaml field can be overridden with a THEMERR_ environment variable.
Use the field name in upper snake case, such as THEMERR_NAME, THEMERR_TARGET_ABI,
THEMERR_FRAMEWORK, THEMERR_VERSION, or THEMERR_CHANGELOG. THEMERR_ARTIFACTS accepts
a YAML list, a JSON string array, a newline-separated list, or a comma-separated list. CI sets
THEMERR_CHANGELOG from the release body automatically.
When Python dependencies change, update the lock file and include it in the same pull request:
uv lock
CI installs from uv.lock with uv sync --frozen. To check the lock file and install build dependencies locally,
run:
uv lock --check
uv sync --frozen --only-group dev --no-install-project
Remote Build¶
It may be beneficial to build remotely in some cases. This will enable easier building on different operating systems.
Fork the project
Activate workflows
Trigger the CI workflow manually
Download the artifacts from the workflow run summary