diff --git a/.github/workflows/dependency-refresh-tests.yml b/.github/workflows/dependency-refresh-tests.yml index 5ae3c7a..d8187a1 100644 --- a/.github/workflows/dependency-refresh-tests.yml +++ b/.github/workflows/dependency-refresh-tests.yml @@ -3,7 +3,7 @@ name: Dependency Refresh Tests on: push: branches: - - feature/2-serializable-0.10.1-dependency-refresh + - feature/4-serializable-0.10.2-dependency-refresh pull_request: branches: - main @@ -29,7 +29,7 @@ jobs: - uses: actions/checkout@v4 with: repository: Flowduino/ESPressio-Serializable - ref: 0.10.1 + ref: 0.10.2 path: project/dependencies/ESPressio-Serializable - uses: actions/setup-python@v5 with: diff --git a/CHANGELOG.md b/CHANGELOG.md index 6bc387e..9cfaa2a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,26 @@ Versioning](https://semver.org/). > had little or no release-note detail, the entry is intentionally terse > rather than inferring unsupported intent. +## [0.2.3] - 2026-08-21 + +### Changed + +- Updated the optional ESPressio Serializable integration baseline from + `>= 0.10.1 < 1.0.0` to `>= 0.10.2 < 1.0.0`. +- Updated PlatformIO examples and current dependency documentation to target + ESPressio Serializable 0.10.2. +- Updated release-candidate CI to compile Serializable Unit variants against + the released ESPressio Serializable 0.10.2 tag. +- Updated package metadata for ESPressio Units 0.2.3. + +### Compatibility + +- Ordinary Unit types remain dependency-free with respect to ESPressio + Serializable. +- Serializable Unit variants remain opt-in and source-compatible. +- No Units runtime or public API behaviour changes are introduced by this + dependency-maintenance release. + ## [0.2.2] - 2026-08-20 ### Changed diff --git a/ESPRESSIO_DEPENDENCY_CHART.md b/ESPRESSIO_DEPENDENCY_CHART.md index d5262d3..63e5aed 100644 --- a/ESPRESSIO_DEPENDENCY_CHART.md +++ b/ESPRESSIO_DEPENDENCY_CHART.md @@ -5,14 +5,14 @@ ## Purpose This document describes the current ESPressio dependency hierarchy relevant to -ESPressio Units 0.2.2. +ESPressio Units 0.2.3. - **Solid arrow** — required dependency. - **Dashed arrow** — opt-in dependency activated only when the associated integration/header is selected. - Arrows point from the dependent library to the library it consumes. -## ESPressio Units 0.2.2 +## ESPressio Units 0.2.3 **Required ESPressio dependencies: none.** @@ -20,8 +20,8 @@ Ordinary Unit types remain standalone. Serializable variants are explicitly opt-in: ```text -ESPressio Units 0.2.2 - - - -> ESPressio Serializable >= 0.10.1 < 1.0.0 +ESPressio Units 0.2.3 + - - -> ESPressio Serializable >= 0.10.2 < 1.0.0 Serializable Unit variants only ``` @@ -30,8 +30,8 @@ ESPressio Units 0.2.2 ```text FOUNDATIONAL ├── Observable 3.0.1 -├── Serializable 0.10.1 -├── Units 0.2.2 +├── Serializable 0.10.2 +├── Units 0.2.3 ├── Security 0.2.0 └── Command 0.3.0 @@ -51,14 +51,14 @@ TRANSPORT / INTEGRATION └── Event 5.8.1 DIAGNOSTICS / OPERATOR -└── Serial 0.5.1 +└── Serial 0.5.1 (release candidate) ``` ### Important opt-in relationships ```text Units - - - -> Serializable >= 0.10.1 < 1.0.0 + - - -> Serializable >= 0.10.2 < 1.0.0 Serializable Unit variants Sockets @@ -101,7 +101,7 @@ The intended ESPressio rule is that integration dependencies cascade only upstream library, but an upstream library should not acquire a reverse dependency merely to host an integration. -There is one currently known reciprocal optional relationship: +There are two currently known reciprocal optional relationships: ```text ESP-Now - - -> Event @@ -111,11 +111,23 @@ Event - - -> ESP-Now ESPNowTransportEventBridge ``` -Although both edges are opt-in, together they form an architectural cycle. The +and: + +```text +Sockets - - -> Event + socket Event transports + +Event - - -> Sockets + SocketWorkerEventBridge + SocketSecuritySessionEventBridge +``` + +Although these edges are opt-in, each pair forms an architectural cycle. The preferred resolution is to keep Event transport-neutral and move the -ESP-Now-specific Observer-to-Event bridge downstream into ESP-Now's Event -integration (or a dedicated downstream integration package). No new reciprocal -dependency should be introduced while that relocation remains outstanding. +transport-specific Observer-to-Event bridges downstream alongside the concrete +transport library's Event integration (or into a dedicated downstream +integration package). No new reciprocal dependency should be introduced while +those relocations remain outstanding. ## Architectural principle diff --git a/README.md b/README.md index 63a2c77..e14119f 100644 --- a/README.md +++ b/README.md @@ -5,10 +5,10 @@ Flowduino ESPressio Development Platform. ## Current Version -**0.2.2** +**0.2.3** -Version 0.2.2 refreshes the optional Serializable Unit integration baseline to -**ESPressio Serializable >= 0.10.1 < 1.0.0**. Ordinary Unit types remain +Version 0.2.3 refreshes the optional Serializable Unit integration baseline to +**ESPressio Serializable >= 0.10.2 < 1.0.0**. Ordinary Unit types remain independent of Serializable. ## ESPressio Development Platform @@ -57,7 +57,7 @@ counterparts are exposed through separate `*_Serializable.hpp` headers and `ESPressio_SerializableUnits.hpp`; only applications selecting those types acquire the dependency. -Serializable Unit variants target **ESPressio Serializable >= 0.10.1 < 1.0.0**, +Serializable Unit variants target **ESPressio Serializable >= 0.10.2 < 1.0.0**, allowing compatible later 0.x patch releases while preventing an automatic transition to a future 1.x breaking release. @@ -67,15 +67,15 @@ Core Units usage: ```ini lib_deps = - https://github.com/flowduino/ESPressio-Units@^0.2.2 + https://github.com/flowduino/ESPressio-Units@^0.2.3 ``` When using the optional Serializable Unit variants: ```ini lib_deps = - https://github.com/flowduino/ESPressio-Units@^0.2.2 - https://github.com/flowduino/ESPressio-Serializable@^0.10.1 + https://github.com/flowduino/ESPressio-Units@^0.2.3 + https://github.com/flowduino/ESPressio-Serializable@^0.10.2 ``` ## Namespace @@ -164,7 +164,7 @@ ordinary Unit Serializable Unit -> Units - -> Serializable >= 0.10.1 < 1.0.0 + -> Serializable >= 0.10.2 < 1.0.0 ``` This is particularly important to Timing: Timing can use either ordinary diff --git a/library.json b/library.json index 35adccf..77090c6 100644 --- a/library.json +++ b/library.json @@ -17,7 +17,7 @@ "type": "git", "url": "https://github.com/Flowduino/ESPressio-Units.git" }, - "version": "0.2.2", + "version": "0.2.3", "license": "Apache-2.0", "frameworks": "arduino", "platforms": "*", diff --git a/library.properties b/library.properties index ab3dcac..ef8cc4c 100644 --- a/library.properties +++ b/library.properties @@ -1,5 +1,5 @@ name=Flowduino ESPressio-Units -version=0.2.2 +version=0.2.3 author=Simon J. Stuart maintainer=Flowduino.com sentence=Strongly-typed SI unit and physical quantity library intended for use with microcontrollers