diff --git a/app/presets.py b/app/presets.py index 667ad6a..059bb76 100644 --- a/app/presets.py +++ b/app/presets.py @@ -11,12 +11,13 @@ log = logging.getLogger(__name__) -ORANGE = (255, 152, 0, 0) +ORANGE = (255, 126, 0, 0) PURPLE = (128, 0, 255, 0) RED = (255, 0, 0, 0) GREEN = (0, 255, 0, 0) WHITE = (0, 0, 0, 255) BLUE = (0, 0, 255, 0) +YELLOW = (255, 236, 0, 0) def default_presets() -> dict[str, Pattern]: @@ -27,7 +28,13 @@ def default_presets() -> dict[str, Pattern]: load with both sliders at the far left. """ return { - "Halloween": Pattern(slots=[Slot(rgbw=ORANGE, weight=80), Slot(rgbw=PURPLE, weight=20)]), + "Halloween": Pattern( + slots=[ + Slot(rgbw=ORANGE, weight=80), + Slot(rgbw=PURPLE, weight=15), + Slot(rgbw=YELLOW, weight=5), + ] + ), "Christmas": Pattern( slots=[ Slot(rgbw=RED, weight=40), diff --git a/docs/releases/0.5.1.md b/docs/releases/0.5.1.md new file mode 100644 index 0000000..0b10c6d --- /dev/null +++ b/docs/releases/0.5.1.md @@ -0,0 +1,15 @@ +Halloween gets a little yellow. + +## What's changed + +- **The built-in Halloween preset now has three colors:** a deeper orange (80%), purple (15%) and a touch of yellow (5%), where it used to be just orange and purple. + +New installs start with the new Halloween. If you already run Dapple, your presets stay exactly as you left them, including Halloween. To get the new one, open Halloween in the pattern editor, add a yellow color, set the shares to 80, 15 and 5, and save it over the old one. + +## Upgrading + +`docker compose up -d` picks this up if you have `pull_policy: always`. Otherwise run `docker compose pull && docker compose up -d`. Your settings and saved presets carry over. To stay on this release, set the image line to: + +```yaml + image: afraley/dapple:0.5.1 +``` diff --git a/docs/ui.png b/docs/ui.png index 9130331..3d00f1a 100644 Binary files a/docs/ui.png and b/docs/ui.png differ diff --git a/frontend/package-lock.json b/frontend/package-lock.json index 6de193a..4e45120 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -1,12 +1,12 @@ { "name": "dapple-ui", - "version": "0.5.0", + "version": "0.5.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "dapple-ui", - "version": "0.5.0", + "version": "0.5.1", "license": "MIT", "dependencies": { "@emotion/react": "^11.13.3", diff --git a/frontend/package.json b/frontend/package.json index e01c285..6ab69b3 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -2,7 +2,7 @@ "name": "dapple-ui", "private": true, "license": "MIT", - "version": "0.5.0", + "version": "0.5.1", "type": "module", "scripts": { "dev": "vite", diff --git a/pyproject.toml b/pyproject.toml index f7b3ef0..f51a12f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "dapple" -version = "0.5.0" +version = "0.5.1" description = "Static multi-color patterns for Twinkly light strands, with a REST API for Home Assistant" requires-python = ">=3.12" dependencies = [ diff --git a/tests/test_api.py b/tests/test_api.py index 9969fb4..d84e243 100644 --- a/tests/test_api.py +++ b/tests/test_api.py @@ -10,7 +10,7 @@ from app.config import AppConfig, ConfigStore, DeviceConfig, MqttConfig, load_config from app.main import app from app.models import DeviceInfo, DeviceResult, StrandSegment -from app.presets import PresetStore +from app.presets import PresetStore, default_presets from app.state import StateStore PATTERN = { @@ -432,7 +432,7 @@ def test_apply_a_preset_to_a_group(client, manager): assert body["ok"] is True assert manager.applied[0][0] == "tree" - assert len(manager.applied[0][1].slots) == 2 + assert manager.applied[0][1] == default_presets()["Halloween"] def test_applying_a_preset_records_its_name(client): diff --git a/uv.lock b/uv.lock index 171af2a..d5c45f9 100644 --- a/uv.lock +++ b/uv.lock @@ -393,7 +393,7 @@ wheels = [ [[package]] name = "dapple" -version = "0.5.0" +version = "0.5.1" source = { editable = "." } dependencies = [ { name = "aiomqtt" },