Changelog¶
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Unreleased¶
Changed¶
- Loosened
yarlpin from>=1.23.0,<2to>=1.17,<2for older Home Assistant Core compatibility (PR #8, merged after v0.1.1 shipped). Pairs with the same-cycle aiohttp loosen recorded in 0.1.1 below.
Fixed¶
- README's
## Requirementssection was stale — still claimedaiohttp>=3.13.5andyarl>=1.23.0. Updated to match the actual pins inpyproject.toml(aiohttp>=3.10,<4,yarl>=1.17,<2).
0.1.1 - 2026-05-14¶
Changed¶
- Loosened
aiohttppin from>=3.13.5,<4to>=3.10,<4. Lets the library install into Home Assistant Core environments that still ship an older aiohttp than the most recent release.yarl >=1.23.0,<2unchanged. - Development dependencies moved from
[project.optional-dependencies]to[dependency-groups](PEP 735). Thedev,test, anddocsgroups were never user-facing extras; they're for working on the package, not with it. They no longer appear asProvides-Extra:on PyPI. Local install:pip install -e . --group dev --group test --group docs(requires pip ≥ 25.1). CI workflows (test.yml,lint.yml,docs.yml) andCONTRIBUTING.mdupdated accordingly. - License changed from Apache-2.0 to MIT. The
LICENSEfile now contains the canonical MIT License text;pyproject.toml's SPDX expression (license = "MIT") and Trove classifier ("License :: OSI Approved :: MIT License") updated to match. v0.1.0 on PyPI stays as Apache-2.0 (published releases are immutable); from 0.1.1 onwards the package ships as MIT. Downstream consumers should review the new license terms before upgrading.
0.1.0 - 2026-05-12¶
Added¶
- Initial scaffold based on the
proconip-pypistack: hatchling+hatch-vcs build, ruff/mypy strict tooling, mkdocs-material docs site, devcontainer, CI workflows (lint, test, codeql, docs, automerge, release-drafter, PyPI Trusted Publishing). - Apache-2.0 license (chosen for Home Assistant Core compatibility).
- Async
VioletClienttargeting the Pooldigital Violet pool controller API. - Typed view layer (~200 documented fields) over the raw
/getReadingsJSON response, with shared enums (OutputState,CoverState,OnewireState,DmxSceneState,RuleState,SimpleOnOff,YesNo,DosingType,PvSurplusState). - Setpoint validators with vendor-documented ranges.
- Cover control guarded by mandatory
acknowledge_unsafe=Trueopt-in. - Stateful aiohttp mock service in
tools/myviolet_mock/. - Test + coverage summary rendered to the GitHub Actions step summary
via
.github/scripts/summarize_tests.py.