@alteriom/painlessmesh 1.7.6 → 1.7.7

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.
Files changed (36) hide show
  1. package/CHANGELOG.md +107 -0
  2. package/README.md +81 -6
  3. package/RELEASE_GUIDE.md +36 -0
  4. package/docs/MQTT_BRIDGE_COMMANDS.md +10 -10
  5. package/docs/MQTT_BRIDGE_IMPLEMENTATION_SUMMARY.md +1 -1
  6. package/docs/MQTT_SCHEMA_COMPLIANCE.md +57 -2
  7. package/docs/PHASE1_GUIDE.md +1 -1
  8. package/docs/alteriom/overview.md +2 -2
  9. package/docs/architecture/plugin-system.md +1 -1
  10. package/docs/archive/RELEASE_SUMMARY.md +1 -1
  11. package/docs/releases/RELEASE_CHECKLIST_v1.7.6.md +389 -0
  12. package/docs/releases/RELEASE_SUMMARY_v1.7.7.md +391 -0
  13. package/docs/v1.7.7_MQTT_IMPROVEMENTS.md +776 -0
  14. package/docs/wiki/API-Reference.md +2 -2
  15. package/docs/wiki/Complete-Documentation.md +1 -1
  16. package/examples/alteriom/README.md +137 -3
  17. package/examples/alteriom/alteriom.ino +1 -1
  18. package/examples/alteriom/alteriom_sensor_package.hpp +557 -2
  19. package/examples/alteriomImproved/alteriom_sensor_package.hpp +1 -1
  20. package/examples/alteriomImproved/improved_sensor_node.ino +1 -1
  21. package/examples/alteriomMetricsHealth/alteriom_sensor_package.hpp +796 -0
  22. package/examples/alteriomMetricsHealth/metrics_health_node.ino +418 -0
  23. package/examples/alteriomMetricsHealth/platformio.ini +26 -0
  24. package/examples/alteriomPhase1/alteriom_sensor_package.hpp +1 -1
  25. package/examples/alteriomPhase1/phase1_features.ino +2 -2
  26. package/examples/alteriomPhase2/alteriom_sensor_package.hpp +1 -1
  27. package/examples/alteriomSensorNode/alteriom_sensor_node.ino +1 -1
  28. package/examples/alteriomSensorNode/alteriom_sensor_package.hpp +1 -1
  29. package/examples/bridge/enhanced_mqtt_bridge.hpp +610 -0
  30. package/examples/bridge/enhanced_mqtt_bridge_example.ino +226 -0
  31. package/examples/meshCommandNode/alteriom_sensor_package.hpp +1 -1
  32. package/examples/mqttCommandBridge/alteriom_sensor_package.hpp +1 -1
  33. package/examples/mqttTopologyTest/mqttTopologyTest.ino +5 -1
  34. package/library.json +1 -1
  35. package/library.properties +1 -1
  36. package/package.json +2 -2
@@ -0,0 +1,389 @@
1
+ # painlessMesh v1.7.6 Release Checklist
2
+
3
+ **Release Date:** October 19, 2025
4
+ **Release Type:** Critical Bug Fix
5
+ **Git Commit:** c17384a
6
+ **Git Tag:** v1.7.6
7
+
8
+ ---
9
+
10
+ ## ✅ Completed Steps
11
+
12
+ ### Code Implementation
13
+ - [x] Removed `src/painlessmesh/scheduler_queue.hpp` (30 lines deleted)
14
+ - [x] Removed `src/painlessmesh/scheduler_queue.cpp` (70 lines deleted)
15
+ - [x] Updated `src/painlessmesh/mesh.hpp` (removed queue includes and initialization)
16
+ - [x] Created comprehensive unit test `test/catch/catch_scheduler_queue_removal.cpp` (200+ lines)
17
+
18
+ ### Version Updates
19
+ - [x] Updated `library.json` version: 1.7.5 → 1.7.6
20
+ - [x] Updated `library.properties` version: 1.7.5 → 1.7.6
21
+ - [x] Updated `package.json` version: 1.7.5 → 1.7.6
22
+
23
+ ### Documentation
24
+ - [x] Updated `CHANGELOG.md` with v1.7.6 section
25
+ - [x] Created `docs/releases/RELEASE_PLAN_v1.7.6.md` (850+ lines)
26
+ - [x] Created `docs/releases/RELEASE_SUMMARY_v1.7.6.md` (comprehensive release notes)
27
+ - [x] Created `docs/troubleshooting/PAINLESSMESH_V1.7.4_COMPILATION_ISSUES.md` (historical reference)
28
+ - [x] Updated `README.md` with v1.7.6 information
29
+
30
+ ### Git Operations
31
+ - [x] Staged all changes (`git add -A`)
32
+ - [x] Committed with detailed message (commit c17384a)
33
+ - [x] Created annotated tag v1.7.6
34
+ - [x] Pushed to GitHub (`git push origin main --tags`)
35
+
36
+ ### Statistics
37
+ - **Files Changed:** 12 files
38
+ - **Insertions:** +2046 lines
39
+ - **Deletions:** -131 lines
40
+ - **Net:** +1915 lines (mostly documentation and tests)
41
+
42
+ ---
43
+
44
+ ## 🔄 Manual Steps Required
45
+
46
+ ### 1. Create GitHub Release
47
+
48
+ **URL:** https://github.com/Alteriom/painlessMesh/releases/new
49
+
50
+ **Release Details:**
51
+ - **Tag:** v1.7.6 (select existing tag)
52
+ - **Title:** `v1.7.6 - Critical Compilation Fix`
53
+ - **Set as latest release:** ✅ Checked
54
+
55
+ **Release Description Template:**
56
+
57
+ ```markdown
58
+ # v1.7.6 - Critical Compilation Fix
59
+
60
+ 🚨 **URGENT**: If you are using v1.7.4 or v1.7.5, upgrade immediately. Those versions fail to compile.
61
+
62
+ ## What's Fixed
63
+
64
+ ✅ **Compilation Failure** - Fixed "_task_request_t was not declared" error
65
+ ✅ **ESP32 Support** - All ESP32 builds now compile successfully
66
+ ✅ **ESP8266 Support** - All ESP8266 builds now compile successfully
67
+ ✅ **FreeRTOS Stability** - Maintained ~85% crash reduction on ESP32
68
+
69
+ ## What Changed
70
+
71
+ This release removes the thread-safe scheduler queue that was causing compilation failures:
72
+
73
+ - **Removed**: `scheduler_queue.hpp` and `scheduler_queue.cpp`
74
+ - **Simplified**: `mesh.hpp` initialization code
75
+ - **Maintained**: Semaphore timeout fix for FreeRTOS crash protection
76
+
77
+ ## Why This Fix
78
+
79
+ The thread-safe scheduler queue required `_TASK_THREAD_SAFE` macro, but:
80
+ - This macro conflicts with `_TASK_STD_FUNCTION` in TaskScheduler v4.0.x
81
+ - painlessMesh **requires** `_TASK_STD_FUNCTION` for lambda callbacks
82
+ - The queue code was disabled but still trying to compile
83
+ - Result: Type definitions were missing, causing compilation errors
84
+
85
+ ## Upgrade Instructions
86
+
87
+ ### PlatformIO
88
+ ```ini
89
+ [env:your_board]
90
+ lib_deps =
91
+ https://github.com/Alteriom/painlessMesh.git#v1.7.6
92
+ ```
93
+
94
+ ### Arduino IDE
95
+ Update through Library Manager: **AlteriomPainlessMesh v1.7.6**
96
+
97
+ ### NPM
98
+ ```bash
99
+ npm update @alteriom/painlessmesh
100
+ ```
101
+
102
+ ## Performance
103
+
104
+ - ✅ ESP32 crash rate: ~5-8% (down from 30-40%)
105
+ - ✅ Crash reduction: ~85% via semaphore timeout increase
106
+ - ✅ No performance impact vs v1.7.2
107
+ - ✅ Full lambda and std::function support maintained
108
+
109
+ ## Testing
110
+
111
+ - ✅ 710+ unit tests passing
112
+ - ✅ All 19 examples compile successfully
113
+ - ✅ ESP32 and ESP8266 platforms verified
114
+ - ✅ CI/CD pipeline passing
115
+
116
+ ## Breaking Changes
117
+
118
+ **None** - This is a pure bug fix release.
119
+
120
+ ## Known Limitations
121
+
122
+ - ESP32 crash protection is ~85% effective (not 95-98% as originally targeted)
123
+ - Thread-safe scheduler queue feature removed (may return in v1.8.0)
124
+ - Requires TaskScheduler v4.1+ for future thread-safe re-implementation
125
+
126
+ ## Documentation
127
+
128
+ 📋 [Complete Release Notes](https://github.com/Alteriom/painlessMesh/blob/main/docs/releases/RELEASE_SUMMARY_v1.7.6.md)
129
+ 📖 [CHANGELOG](https://github.com/Alteriom/painlessMesh/blob/main/CHANGELOG.md)
130
+ 📋 [Implementation Plan](https://github.com/Alteriom/painlessMesh/blob/main/docs/releases/RELEASE_PLAN_v1.7.6.md)
131
+ 🐛 [Compilation Issues (Resolved)](https://github.com/Alteriom/painlessMesh/blob/main/docs/troubleshooting/PAINLESSMESH_V1.7.4_COMPILATION_ISSUES.md)
132
+
133
+ ---
134
+
135
+ **Release Date**: October 19, 2025
136
+ **Build Status**: ✅ All tests passing
137
+ **Upgrade Priority**: 🚨 CRITICAL for v1.7.4/v1.7.5 users
138
+ ```
139
+
140
+ **Action:** Copy the template above and create the release on GitHub.
141
+
142
+ ---
143
+
144
+ ### 2. Publish NPM Package
145
+
146
+ **Prerequisites:**
147
+ - NPM account with publish access
148
+ - Logged in to NPM (`npm whoami` to verify)
149
+
150
+ **Commands:**
151
+
152
+ ```bash
153
+ # 1. Verify login
154
+ npm whoami
155
+
156
+ # 2. (Optional) Test package creation
157
+ npm pack
158
+
159
+ # 3. Publish to NPM
160
+ npm publish --access public
161
+
162
+ # 4. Verify publication
163
+ npm view @alteriom/painlessmesh version
164
+ # Should show: 1.7.6
165
+ ```
166
+
167
+ **NPM Package URL:** https://www.npmjs.com/package/@alteriom/painlessmesh
168
+
169
+ **Checklist:**
170
+ - [ ] Logged in to NPM
171
+ - [ ] Package built successfully
172
+ - [ ] Published to NPM registry
173
+ - [ ] Version 1.7.6 visible on npmjs.com
174
+ - [ ] Installation tested: `npm install @alteriom/painlessmesh@1.7.6`
175
+
176
+ ---
177
+
178
+ ### 3. Monitor PlatformIO Registry
179
+
180
+ **URL:** https://registry.platformio.org/libraries/sparck75/AlteriomPainlessMesh
181
+
182
+ **Update Process:**
183
+ - **Automatic:** PlatformIO scans GitHub releases every 24 hours
184
+ - **Expected:** v1.7.6 should appear within 24 hours of GitHub Release
185
+ - **Manual Trigger (if needed):** `pio pkg publish .`
186
+
187
+ **Checklist:**
188
+ - [ ] Wait 24 hours after GitHub Release
189
+ - [ ] Verify v1.7.6 appears on registry
190
+ - [ ] Test installation: `pio pkg install --library "AlteriomPainlessMesh@1.7.6"`
191
+ - [ ] Verify example compilation
192
+
193
+ ---
194
+
195
+ ### 4. Monitor Arduino Library Manager
196
+
197
+ **Update Process:**
198
+ - **Automatic:** Arduino syncs from `library.properties` in GitHub releases
199
+ - **Expected:** v1.7.6 should appear within 24-48 hours
200
+ - **No manual action required**
201
+
202
+ **Verification:**
203
+ - [ ] Wait 24-48 hours after GitHub Release
204
+ - [ ] Open Arduino IDE Library Manager
205
+ - [ ] Search for "AlteriomPainlessMesh"
206
+ - [ ] Verify v1.7.6 is available
207
+ - [ ] Test installation and example compilation
208
+
209
+ ---
210
+
211
+ ## 📊 Success Criteria
212
+
213
+ ### Immediate (Within 1 Hour)
214
+ - [ ] GitHub Release published successfully
215
+ - [ ] NPM package published and available
216
+ - [ ] CI/CD pipeline status: Green
217
+
218
+ ### First 24 Hours
219
+ - [ ] Zero compilation error reports on GitHub Issues
220
+ - [ ] PlatformIO registry updated to v1.7.6
221
+ - [ ] Positive community feedback (if any)
222
+ - [ ] No critical bugs discovered
223
+
224
+ ### First Week
225
+ - [ ] Arduino Library Manager synced to v1.7.6
226
+ - [ ] ESP32 crash reports show ~5-8% rate (not increasing)
227
+ - [ ] No regression reports from users
228
+ - [ ] CI/CD continues to pass
229
+
230
+ ---
231
+
232
+ ## 🔍 Monitoring Tasks
233
+
234
+ ### GitHub Issues
235
+ Monitor for:
236
+ - Compilation errors (should be zero)
237
+ - Runtime crashes (should be ~5-8% on ESP32)
238
+ - Breaking API changes (should be none)
239
+ - Documentation issues
240
+
241
+ ### CI/CD Pipeline
242
+ Check that:
243
+ - All tests continue to pass
244
+ - ESP32 examples compile
245
+ - ESP8266 examples compile
246
+ - No new lint errors
247
+
248
+ ### Community Feedback
249
+ Watch for:
250
+ - User reports of successful upgrades
251
+ - Questions about migration
252
+ - Feature requests for v1.8.0
253
+ - Reports of improved stability
254
+
255
+ ---
256
+
257
+ ## 🚨 Rollback Plan
258
+
259
+ If critical issues are discovered:
260
+
261
+ ### Immediate (Within 1 Hour)
262
+ 1. **Advise users to downgrade:**
263
+ ```ini
264
+ lib_deps = https://github.com/Alteriom/painlessMesh.git#v1.7.2
265
+ ```
266
+
267
+ 2. **Mark GitHub Release as pre-release** (if possible)
268
+
269
+ ### Short-term (Within 24 Hours)
270
+ 1. **Revert commit:**
271
+ ```bash
272
+ git revert c17384a
273
+ git push origin main
274
+ ```
275
+
276
+ 2. **Delete tag:**
277
+ ```bash
278
+ git tag -d v1.7.6
279
+ git push origin :refs/tags/v1.7.6
280
+ ```
281
+
282
+ 3. **Unpublish NPM package** (if within 72 hours):
283
+ ```bash
284
+ npm unpublish @alteriom/painlessmesh@1.7.6
285
+ ```
286
+
287
+ ### Medium-term (Within 1 Week)
288
+ 1. Investigate root cause of rollback
289
+ 2. Prepare hotfix v1.7.7
290
+ 3. Re-test thoroughly
291
+ 4. Re-release with fixes
292
+
293
+ **Rollback Criteria:**
294
+ - Compilation failures reported
295
+ - Critical functionality broken
296
+ - Crash rate increases significantly
297
+ - Data corruption or security issues
298
+
299
+ ---
300
+
301
+ ## 📝 Communication
302
+
303
+ ### GitHub Discussions (Optional)
304
+
305
+ **Post announcement in Discussions:**
306
+
307
+ **Title:** `v1.7.6 Released - Critical Compilation Fix`
308
+
309
+ **Body:**
310
+ ```markdown
311
+ Hi everyone! 👋
312
+
313
+ We've just released **v1.7.6**, which is a critical emergency fix for compilation issues in v1.7.4 and v1.7.5.
314
+
315
+ ## 🚨 If you're on v1.7.4 or v1.7.5
316
+
317
+ **Please upgrade immediately.** Those versions fail to compile with the error:
318
+ ```
319
+ '_task_request_t' was not declared
320
+ ```
321
+
322
+ ## ✅ What's Fixed
323
+
324
+ - ESP32 and ESP8266 now compile successfully
325
+ - Removed problematic thread-safe queue code
326
+ - Maintained ~85% FreeRTOS crash reduction
327
+ - Zero breaking changes to API
328
+
329
+ ## 📦 How to Upgrade
330
+
331
+ **PlatformIO:**
332
+ ```ini
333
+ lib_deps = https://github.com/Alteriom/painlessMesh.git#v1.7.6
334
+ ```
335
+
336
+ **Arduino IDE:** Update through Library Manager
337
+
338
+ **NPM:** `npm update @alteriom/painlessmesh`
339
+
340
+ ## 📚 Documentation
341
+
342
+ - [Release Notes](https://github.com/Alteriom/painlessMesh/releases/tag/v1.7.6)
343
+ - [Full CHANGELOG](https://github.com/Alteriom/painlessMesh/blob/main/CHANGELOG.md)
344
+
345
+ Thanks for your patience, and apologies for the broken releases! 🙏
346
+ ```
347
+
348
+ ---
349
+
350
+ ## 📋 Post-Release Checklist
351
+
352
+ ### Day 1 (October 19, 2025)
353
+ - [ ] GitHub Release created
354
+ - [ ] NPM package published
355
+ - [ ] CI/CD verified green
356
+ - [ ] No immediate issues reported
357
+
358
+ ### Day 2 (October 20, 2025)
359
+ - [ ] PlatformIO registry check
360
+ - [ ] GitHub Issues monitored
361
+ - [ ] Community feedback reviewed
362
+
363
+ ### Week 1 (October 19-26, 2025)
364
+ - [ ] Arduino Library Manager verified
365
+ - [ ] No critical bugs reported
366
+ - [ ] Crash rate statistics collected
367
+ - [ ] Plan v1.8.0 roadmap
368
+
369
+ ---
370
+
371
+ ## 🎯 Next Steps
372
+
373
+ ### Immediate
374
+ 1. Create GitHub Release (use template above)
375
+ 2. Publish NPM package
376
+ 3. Monitor CI/CD pipeline
377
+
378
+ ### Future (v1.8.0 Planning)
379
+ 1. Monitor TaskScheduler updates for v4.1+
380
+ 2. Collect user feedback on v1.7.6
381
+ 3. Evaluate thread-safe queue re-implementation
382
+ 4. Consider alternative FreeRTOS fixes
383
+
384
+ ---
385
+
386
+ **Release Manager:** Alteriom Development Team
387
+ **Completion Status:** Automated steps complete, manual steps pending
388
+ **Estimated Time for Manual Steps:** 30 minutes
389
+ **Priority:** HIGH - Users are waiting for working version