Skip to main content

Deckr controller runtime with config, routing, rendering, and device management

Project description

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

  1. Update version in pyproject.toml to the stable release number.

  2. If needed, update the deckr dependency constraint to the newly released core version.

  3. Run the validation suite:

    uv run ruff check .
    uv run pytest
    
  4. Refresh the lockfile:

    uv lock --refresh
    
  5. Commit the release, for example:

    git commit -am "chore(deckr-controller): release v0.3.0"
    
  6. Tag the release commit:

    git tag deckr-controller-v0.3.0
    
  7. Build from the tag so the artifacts match the stable version exactly:

    git checkout deckr-controller-v0.3.0
    uv build
    git checkout -
    
  8. Publish the wheel and sdist using your usual PyPI workflow.

  9. Immediately bump pyproject.toml to 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"
    

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

deckr_controller-0.1.0.tar.gz (144.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

deckr_controller-0.1.0-py3-none-any.whl (63.1 kB view details)

Uploaded Python 3

File details

Details for the file deckr_controller-0.1.0.tar.gz.

File metadata

  • Download URL: deckr_controller-0.1.0.tar.gz
  • Upload date:
  • Size: 144.4 kB
  • Tags: Source
  • Uploaded using 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}

File hashes

Hashes for deckr_controller-0.1.0.tar.gz
Algorithm Hash digest
SHA256 4901c01f947323190eec6e19bf11ac5a0b1c35edffaf88cd26976b737875e9cb
MD5 fce5f86443651cb06941ba7ad6c78ff6
BLAKE2b-256 eaf7ed7643cf77ee6b9bc00289c8d171adef5811eedbf662df4b5226cbbcb459

See more details on using hashes here.

File details

Details for the file deckr_controller-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: deckr_controller-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 63.1 kB
  • Tags: Python 3
  • Uploaded using 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}

File hashes

Hashes for deckr_controller-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f350c57145aa6b6aeb37e4c0ecab2e16fc949bf272a07d6b89212972744fcc48
MD5 64d1292692a1805b6cfc80d866e5278a
BLAKE2b-256 f13d435e72f292607c8dffc084cacd68f51761854c1877b9d77d42a76473fc69

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page