Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions .github/workflows/dependency-refresh-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ name: Dependency Refresh Tests
on:
push:
branches:
- feature/5-units-0.2.2-dependency-refresh
- feature/7-units-0.2.3-dependency-refresh
pull_request:
branches:
- main
Expand All @@ -29,7 +29,7 @@ jobs:
- uses: actions/checkout@v4
with:
repository: Flowduino/ESPressio-Units
ref: 0.2.2
ref: 0.2.3
path: project/dependencies/ESPressio-Units
- uses: actions/checkout@v4
with:
Expand Down Expand Up @@ -73,5 +73,5 @@ jobs:

void loop() {}
EOF
- name: Compile Timing against released Units 0.2.2
- name: Compile Timing against released Units 0.2.3
run: pio run -d project/compile
12 changes: 12 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,17 @@
# Changelog

## 2.2.4 — 2026-08-21

### Changed
- Raised the required ESPressio Units baseline from 0.2.2 to 0.2.3 following the Serializable 0.10.2 dependency refresh.
- Preserved the ESPressio Observable baseline at `>=3.0.1 <4.0.0`.
- Preserved Timing's architecture in which Serializable time representations are supplied through opt-in Serializable Unit types rather than a direct Timing -> Serializable dependency.
- Updated package metadata, README and current dependency documentation for Timing 2.2.4.
- Updated release-candidate validation to exercise the Units 0.2.3 candidate until the corresponding release tag is available.

### Compatibility
- No Timing public API or runtime behaviour changes are introduced by this dependency-maintenance release.

## 2.2.3 — 2026-08-20

### Changed
Expand Down
51 changes: 30 additions & 21 deletions ESPRESSIO_DEPENDENCY_CHART.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,24 +2,24 @@

![ESPressio Library Dependency Chart](ESPRESSIO_DEPENDENCY_CHART.png)

## ESPressio Timing 2.2.3
## ESPressio Timing 2.2.4

Timing has two required ESPressio dependencies:

```text
ESPressio Timing 2.2.3
-> ESPressio Units >= 0.2.2 < 1.0.0
ESPressio Timing 2.2.4
-> ESPressio Units >= 0.2.3 < 1.0.0
-> ESPressio Observable >= 3.0.1 < 4.0.0
```

Timing deliberately has **no direct ESPressio Serializable dependency**.
Applications may choose Serializable time representations through the opt-in
Serializable Unit types supplied by Units 0.2.2:
Serializable Unit types supplied by Units 0.2.3:

```text
Timing
-> Units
- - -> Serializable >= 0.10.1 < 1.0.0
- - -> Serializable >= 0.10.2 < 1.0.0
```

This keeps the dependency cascade one-way and avoids making serialization part
Expand All @@ -29,24 +29,21 @@ of the Timing core.

```text
Observable 3.0.1
Serializable 0.10.1
Units 0.2.2
Serializable 0.10.2
Units 0.2.3 (candidate until released)
|
v
Timing 2.2.3
Timing 2.2.4
|
+--> Threads 3.1.3
+--> Threads 3.1.4 (planned downstream refresh)
|
+--> ESP-Now 0.5.1
|
- - -> Event 5.8.1 (Event transport integration)
+--> ESP-Now 0.5.2 (planned downstream refresh)

Threads 3.1.3
|
v
Event 5.8.1
Event 5.8.2 is the planned downstream convergence release after Threads and
ESP-Now are refreshed.

Serial 0.5.1 remains a downstream opt-in diagnostics/operator layer.
Serial 0.5.1 remains the final downstream diagnostics/operator release
candidate.
```

Security 0.2.0, Command 0.3.0 and Sockets 0.5.0 remain separate branches of
Expand All @@ -57,8 +54,8 @@ the integration graph except where their explicit opt-in adapters are selected.
A dependency should cascade downstream. An upstream/foundational library should
not depend back on a downstream implementation merely to host integration code.

The known Event/ESP-Now reciprocal optional relationship is therefore considered
an architectural exception to resolve:
The known reciprocal optional relationships remain architectural exceptions to
resolve separately:

```text
ESP-Now - - -> Event
Expand All @@ -68,8 +65,20 @@ Event - - -> ESP-Now
ESPNowTransportEventBridge
```

and:

```text
Sockets - - -> Event
socket Event transports

Event - - -> Sockets
SocketWorkerEventBridge
SocketSecuritySessionEventBridge
```

The preferred resolution is to keep Event upstream and 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).
move transport-specific Observer-to-Event bridges downstream alongside each
transport library's Event integration (or a dedicated downstream integration
package).

No new reciprocal dependency should be introduced.
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,14 @@ High-resolution system, stopwatch, and RTC clock abstractions with a generic pub

## Latest Stable Version

The current version is **2.2.3**.
The current version is **2.2.4**.

### Current ESPressio dependencies

- **ESPressio Units >= 0.2.2 < 1.0.0**
- **ESPressio Units >= 0.2.3 < 1.0.0**
- **ESPressio Observable >= 3.0.1 < 4.0.0**

Version 2.2.3 is a dependency-maintenance release. It retains the Timing 2.2.x public API and behaviour while updating the required ESPressio Units baseline to 0.2.2, which in turn carries the optional Serializable 0.10.1 integration. Timing itself remains independent of ESPressio Serializable.
Version 2.2.4 is a dependency-maintenance release. It retains the Timing 2.2.x public API and behaviour while updating the required ESPressio Units baseline to 0.2.3, which in turn carries the optional Serializable 0.10.2 integration. Timing itself remains independent of ESPressio Serializable.

## Version 2.2.0

Expand Down
4 changes: 2 additions & 2 deletions library.json
Original file line number Diff line number Diff line change
Expand Up @@ -16,14 +16,14 @@
"type": "git",
"url": "https://github.com/Flowduino/ESPressio-Timing.git"
},
"version": "2.2.3",
"version": "2.2.4",
"license": "Apache-2.0",
"frameworks": "arduino",
"platforms": "*",
"dependencies": [
{
"name": "Flowduino ESPressio-Units",
"version": ">=0.2.2 <1.0.0",
"version": ">=0.2.3 <1.0.0",
"url": "https://github.com/Flowduino/ESPressio-Units.git",
"platforms": "*"
},
Expand Down
4 changes: 2 additions & 2 deletions library.properties
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
name=Flowduino ESPressio-Timing
version=2.2.3
version=2.2.4
author=Simon J. Stuart
maintainer=Flowduino.com
sentence=Generic high-resolution clocks with synchronization, discipline, and Observer notifications
Expand All @@ -8,4 +8,4 @@ category=Timing
url=https://github.com/Flowduino/ESPressio-Timing
architectures=*
includes=ESPressio_Timing.hpp
depends=Flowduino ESPressio-Units (>=0.2.2 && <1.0.0),ESPressio-Observable (>=3.0.1 && <4.0.0)
depends=Flowduino ESPressio-Units (>=0.2.3 && <1.0.0),ESPressio-Observable (>=3.0.1 && <4.0.0)
Loading