@alteriom/painlessmesh 2.0.0 → 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +59 -0
- package/README.md +7 -5
- package/RELEASE_GUIDE.md +6 -1
- package/examples/sendToInternet/platformio.ini +2 -2
- package/library.json +1 -1
- package/library.properties +1 -1
- package/package.json +1 -1
- package/src/AlteriomPainlessMesh.h +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,60 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [2.0.1] - 2026-09-07
|
|
11
|
+
|
|
12
|
+
A packaging and documentation release. **No library behaviour changed**: the
|
|
13
|
+
mesh, routing, gateway, failover and OTA code of 2.0.1 is 2.0.0's, and the only
|
|
14
|
+
edit under `src/` is the version macro. It exists to repair two defects in what
|
|
15
|
+
2.0.0 *shipped*, both of which cost a user time before they ever compile
|
|
16
|
+
anything.
|
|
17
|
+
|
|
18
|
+
### Fixed
|
|
19
|
+
|
|
20
|
+
- **The installation instructions shipped in 2.0.0 name a PlatformIO package
|
|
21
|
+
that has no 2.0.0.** The README, user guide and documentation site gave
|
|
22
|
+
`alteriom/AlteriomPainlessMesh`, and that registry owner stops at 1.10.0 — its
|
|
23
|
+
account is not one this project can publish from. Every automated release
|
|
24
|
+
since 1.7.6 went out under `sparck75`, which is now what the documentation
|
|
25
|
+
names. **Name the owner in `lib_deps`**: the bare name `AlteriomPainlessMesh`
|
|
26
|
+
matches both owners and PlatformIO warns rather than choosing.
|
|
27
|
+
|
|
28
|
+
```ini
|
|
29
|
+
lib_deps =
|
|
30
|
+
sparck75/AlteriomPainlessMesh@^2.0.0
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
- **The v2.0.0 GitHub release carries no library archive.** This repository
|
|
34
|
+
publishes immutable releases, so the workflow's upload step — which ran after
|
|
35
|
+
the release was created — was refused with HTTP 422. The job failed before its
|
|
36
|
+
release decision, which also skipped the npm, GitHub Packages and PlatformIO
|
|
37
|
+
jobs; those three were published by hand. The archive is now attached in the
|
|
38
|
+
same call that creates the release, and the decision to publish is taken
|
|
39
|
+
before any step that can fail, so a failed upload can no longer suppress the
|
|
40
|
+
publications.
|
|
41
|
+
|
|
42
|
+
- **PlatformIO publication went under the token's account rather than the
|
|
43
|
+
organisation.** `pio pkg publish` files a package under the account unless
|
|
44
|
+
`--owner` names the owner, and the workflow never passed it — which is how the
|
|
45
|
+
duplicate ownership above arose in the first place. It now passes `--owner`,
|
|
46
|
+
checks the version against that owner's own version table (the previous check
|
|
47
|
+
read a `Version:` line `pio pkg show` never prints), publishes the release
|
|
48
|
+
tag's sources rather than whichever branch was dispatched, and treats an
|
|
49
|
+
already-listed version as success instead of a failure.
|
|
50
|
+
|
|
51
|
+
- **`scripts/validate-release.sh` reported a version mismatch that was not
|
|
52
|
+
there.** Without `jq` it fell back to a grep that matches every `"version"`
|
|
53
|
+
line in `library.json`, dependencies included, so the value it compared was
|
|
54
|
+
multi-line. It takes the first match now — the top-level one. CI was never
|
|
55
|
+
affected; it has `jq`.
|
|
56
|
+
|
|
57
|
+
### Upgrading
|
|
58
|
+
|
|
59
|
+
Nothing in the library behaves differently, so upgrading from 2.0.0 is optional.
|
|
60
|
+
Take it if you install through PlatformIO, or if you want the release archive
|
|
61
|
+
attached to the GitHub release. Everything in the 2.0.0 entry below still
|
|
62
|
+
applies, including its *Before you upgrade* section.
|
|
63
|
+
|
|
10
64
|
## [2.0.0] - 2026-09-07
|
|
11
65
|
|
|
12
66
|
painlessMesh 2.0 is a major release. It adds per-message delivery
|
|
@@ -317,6 +371,11 @@ processes scan results from the loop for that reason (see the ESP32 entry).
|
|
|
317
371
|
every PR like the other twenty.
|
|
318
372
|
- `keywords.txt` now lists the bridge, gateway, failover, queue and capacity
|
|
319
373
|
API so the Arduino IDE highlights it.
|
|
374
|
+
- **PlatformIO package owner.** 2.0.0 is published as `sparck75/AlteriomPainlessMesh`,
|
|
375
|
+
the owner every automated release since 1.7.6 went under. The registry also
|
|
376
|
+
holds `alteriom/AlteriomPainlessMesh`, which stops at 1.10.0: its account is
|
|
377
|
+
not one the project can publish from. Name the owner in `lib_deps`; the bare
|
|
378
|
+
name matches both.
|
|
320
379
|
|
|
321
380
|
### Added (post-review series)
|
|
322
381
|
|
package/README.md
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
[](https://github.com/Alteriom/painlessMesh/actions/workflows/release.yml)
|
|
12
12
|
[](https://github.com/Alteriom/painlessMesh/releases)
|
|
13
13
|
[](https://www.npmjs.com/package/@alteriom/painlessmesh)
|
|
14
|
-
[](https://registry.platformio.org/libraries/sparck75/AlteriomPainlessMesh)
|
|
15
15
|
|
|
16
16
|
</div>
|
|
17
17
|
|
|
@@ -410,11 +410,11 @@ git clone https://github.com/Alteriom/painlessMesh.git AlteriomPainlessMesh
|
|
|
410
410
|
|
|
411
411
|
### PlatformIO
|
|
412
412
|
|
|
413
|
-
The library is published on the [PlatformIO registry](https://registry.platformio.org/libraries/
|
|
413
|
+
The library is published on the [PlatformIO registry](https://registry.platformio.org/libraries/sparck75/AlteriomPainlessMesh) as `sparck75/AlteriomPainlessMesh`. The registry also lists an `alteriom/AlteriomPainlessMesh` that stops at 1.10.0; its owner account is not one the project can publish from, so 2.0.0 and later live under `sparck75`, which has carried every automated release since 1.7.6. Name the owner in `lib_deps`, since the bare name matches both:
|
|
414
414
|
|
|
415
415
|
```ini
|
|
416
416
|
lib_deps =
|
|
417
|
-
|
|
417
|
+
sparck75/AlteriomPainlessMesh@^2.0.0
|
|
418
418
|
```
|
|
419
419
|
|
|
420
420
|
### Dependencies
|
|
@@ -596,9 +596,11 @@ These are the message types used by applications built on painlessMesh:
|
|
|
596
596
|
- **Event Coordination** - Synchronized displays, distributed processing
|
|
597
597
|
- **Bridge Networks** - Connect mesh to WiFi/Internet/MQTT - [📖 Bridge Guide](BRIDGE_TO_INTERNET.md)
|
|
598
598
|
|
|
599
|
-
## Latest Release: v2.0.
|
|
599
|
+
## Latest Release: v2.0.1 (September 7, 2026)
|
|
600
600
|
|
|
601
|
-
**
|
|
601
|
+
**A packaging fix over 2.0.0 — no library behaviour changed.** 2.0.0's installation instructions named a PlatformIO package that has no 2.0.0 (`alteriom/…` stops at 1.10.0; releases go out under `sparck75`), and its GitHub release carries no library archive because the upload was refused by an immutable release. Both are fixed; upgrading from 2.0.0 is optional.
|
|
602
|
+
|
|
603
|
+
**2.0.0 — delivery confirmation, a unified send path, and a mesh that holds together on real hardware**
|
|
602
604
|
|
|
603
605
|
- `sendSingle()` and `sendBroadcast()` accept a delivery callback — it fires with `delivered=true` and the round-trip latency on acknowledgment, or `delivered=false` on timeout — and a `SendOptions` struct that carries a priority and a callback in one call. Priority is kept across hops.
|
|
604
606
|
- Thirty-odd defects in gateway failover, channel following, routing and the station scan, every one found in the serial logs of a six-family hardware rig and fixed there: a bridge that stops says so, the mesh follows an elected bridge to its channel and treats it as home, a node is in one place in every neighbour's tree, a dead connection is not a route, a stale scan does not consume a live one.
|
package/RELEASE_GUIDE.md
CHANGED
|
@@ -21,7 +21,12 @@ the version commit reaches `main`.
|
|
|
21
21
|
workflow owns tags and publication.
|
|
22
22
|
|
|
23
23
|
The workflow tags only when the push to `main` carries a version-file
|
|
24
|
-
change or a head commit whose message starts with `release:`.
|
|
24
|
+
change or a head commit whose message starts with `release:`. The
|
|
25
|
+
repository publishes immutable releases: a release takes its assets and
|
|
26
|
+
notes when it is created and cannot be edited afterwards, so a failed
|
|
27
|
+
publication is repaired by `manual-publish.yml` (npm, GitHub Packages) and
|
|
28
|
+
`platformio-publish.yml`, both dispatched with the tag, not by re-running
|
|
29
|
+
the release workflow. When the
|
|
25
30
|
version metadata was bumped earlier in the cycle (as for 2.0.0), merge the
|
|
26
31
|
release pull request with a commit titled `release: vX.Y.Z` — a squash or
|
|
27
32
|
merge commit with that title — or the push is ignored.
|
|
@@ -9,7 +9,7 @@ platform = espressif32
|
|
|
9
9
|
board = esp32dev
|
|
10
10
|
framework = arduino
|
|
11
11
|
lib_deps =
|
|
12
|
-
|
|
12
|
+
sparck75/AlteriomPainlessMesh
|
|
13
13
|
bblanchon/ArduinoJson@^7.0.0
|
|
14
14
|
monitor_speed = 115200
|
|
15
15
|
|
|
@@ -18,6 +18,6 @@ platform = espressif8266
|
|
|
18
18
|
board = nodemcuv2
|
|
19
19
|
framework = arduino
|
|
20
20
|
lib_deps =
|
|
21
|
-
|
|
21
|
+
sparck75/AlteriomPainlessMesh
|
|
22
22
|
bblanchon/ArduinoJson@^7.0.0
|
|
23
23
|
monitor_speed = 115200
|
package/library.json
CHANGED
package/library.properties
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
name=Alteriom PainlessMesh
|
|
2
|
-
version=2.0.
|
|
2
|
+
version=2.0.1
|
|
3
3
|
author=Coopdis,Scotty Franzyshen,Edwin van Leeuwen,Germán Martín,Maximilian Schwarz,Doanh Doanh,Alteriom
|
|
4
4
|
maintainer=Alteriom
|
|
5
5
|
sentence=A painless way to setup a mesh with ESP8266 and ESP32 devices with Alteriom extensions
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@alteriom/painlessmesh",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.1",
|
|
4
4
|
"description": "painlessMesh is a user-friendly library for creating mesh networks with ESP8266 and ESP32 devices. This Alteriom fork includes additional packages for sensor data (SensorPackage), device commands (CommandPackage), and status monitoring (StatusPackage). It handles routing and network management automatically, so you can focus on your application. The library uses JSON-based messaging and syncs time across all nodes, making it ideal for coordinated behaviour like synchronized light displays or sensor networks reporting to a central node.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"arduino",
|
|
@@ -29,10 +29,10 @@
|
|
|
29
29
|
/**
|
|
30
30
|
* @brief AlteriomPainlessMesh library version information
|
|
31
31
|
*/
|
|
32
|
-
#define ALTERIOM_PAINLESS_MESH_VERSION "2.0.
|
|
32
|
+
#define ALTERIOM_PAINLESS_MESH_VERSION "2.0.1"
|
|
33
33
|
#define ALTERIOM_PAINLESS_MESH_VERSION_MAJOR 2
|
|
34
34
|
#define ALTERIOM_PAINLESS_MESH_VERSION_MINOR 0
|
|
35
|
-
#define ALTERIOM_PAINLESS_MESH_VERSION_PATCH
|
|
35
|
+
#define ALTERIOM_PAINLESS_MESH_VERSION_PATCH 1
|
|
36
36
|
|
|
37
37
|
/**
|
|
38
38
|
* @brief Library description and usage information
|