deckr-controller
deckr-controller is the Python controller runtime for the Deckr ecosystem.
It owns the controller-specific parts of the system:
- configuration loading and runtime services
- device management and remote hardware integration
- command routing, navigation, and persistence
- rendering and plugin execution context
The shared contracts it depends on live in the sibling deckr repository:
https://github.com/kws/deckr
Repository Layout
src/deckr/controller/
config/ Configuration models and file-backed services
invariant/ Rendering helpers and invariant integrations
mqtt/ MQTT host integration
plugin/ Controller-side plugin runtime and builtins
tests/
Requirements
- Python 3.11+
uv
Quick Start
Install the project and development tooling:
uv sync
Run the default validation suite:
uv run ruff check .
uv run pytest
Build distributables:
uv build
Relationship To deckr
deckr-controller depends on deckr.
Keep the boundary clean:
- shared contracts and reusable wire models belong in
deckr - controller orchestration and runtime policy belong here
If a controller change needs a new shared contract, release deckr first, then
update the deckr dependency range in this repo before cutting the controller
release.
Releases
This repository releases a single distribution: deckr-controller.
- The source of truth for the published version is the root
pyproject.toml. - Use package tags in the form
deckr-controller-vX.Y.Z. - Stable releases use normal PEP 440 versions such as
0.3.0. - After each stable release, bump immediately to the next development line,
e.g.
0.4.0.dev0, in a separate follow-up commit.
Release Flow
-
Update
versioninpyproject.tomlto the stable release number. -
If needed, update the
deckrdependency constraint to the newly released core version. -
Run the validation suite:
uv run ruff check . uv run pytest
-
Refresh the lockfile:
uv lock --refresh
-
Commit the release, for example:
git commit -am "chore(deckr-controller): release v0.3.0"
-
Tag the release commit:
git tag deckr-controller-v0.3.0
-
Build from the tag so the artifacts match the stable version exactly:
git checkout deckr-controller-v0.3.0 uv build git checkout -
-
Publish the wheel and sdist using your usual PyPI workflow.
-
Immediately bump
pyproject.tomlto the next development version, refresh the lockfile, and commit that separately:uv lock --refresh git commit -am "chore(deckr-controller): bump to development release 0.4.0.dev0"
Metadata
Release files for deckr-controller 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| deckr_controller-0.1.0.tar.gz | 144.4 kB | Without provenance | Details for deckr_controller-0.1.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| deckr_controller-0.1.0-py3-none-any.whl | Python 3 | none | any | Details for deckr_controller-0.1.0-py3-none-any.whl |
Total release size: 207.4 kB
Release files / deckr_controller-0.1.0.tar.gz
| Download URL | deckr_controller-0.1.0.tar.gz |
|---|---|
| Size | 144.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
4901c01f947323190eec6e19bf11ac5a0b1c35edffaf88cd26976b737875e9cb
|
|
BLAKE2b-256 checksum How to use checksums |
eaf7ed7643cf77ee6b9bc00289c8d171adef5811eedbf662df4b5226cbbcb459
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / deckr_controller-0.1.0-py3-none-any.whl
| Download URL | deckr_controller-0.1.0-py3-none-any.whl |
|---|---|
| Size | 63.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
f350c57145aa6b6aeb37e4c0ecab2e16fc949bf272a07d6b89212972744fcc48
|
|
BLAKE2b-256 checksum How to use checksums |
f13d435e72f292607c8dffc084cacd68f51761854c1877b9d77d42a76473fc69
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Security for deckr-controller 0.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.