Skip to content

Development

Prerequisites

  • Python 3.13+
  • uv — packaging and dependency management
  • just — task runner (optional but recommended)

Setup

bash
git clone https://github.com/hyperb1iss/signalrgb-python.git
cd signalrgb-python
just install

Common tasks

TaskCommand
Full check suitejust verify
Fast loop (auto-fix)just check
Tests with coveragejust test
Tests without coveragejust test-fast
Run a single testjust test-one test_get_effects
Lintjust lint
Auto-fix lintjust lint-fix
Format Pythonjust fmt
Format prose (md/yaml/json)just prose
Type-checkjust typecheck
Docs dev serverjust docs-serve
Run the CLIjust run effect list
See all tasksjust --list

Toolchain

  • ruff — linting and formatting
  • ty — type checking (Astral's Rust type checker)
  • pytest — test framework with asyncio auto mode and branch coverage
  • prettier — Markdown, YAML, and JSON formatting

Release flow

Releases are driven by GitHub Actions — no local script needed.

bash
just release              # patch bump
just release minor        # minor bump
just release-version 2.0.0

The release.yml workflow bumps the version, commits, tags, and pushes. The tag push triggers publish.yml (PyPI via OIDC) and docs.yml (VitePress → GitHub Pages).

Released under the Apache 2.0 License.