@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.
- package/CHANGELOG.md +107 -0
- package/README.md +81 -6
- package/RELEASE_GUIDE.md +36 -0
- package/docs/MQTT_BRIDGE_COMMANDS.md +10 -10
- package/docs/MQTT_BRIDGE_IMPLEMENTATION_SUMMARY.md +1 -1
- package/docs/MQTT_SCHEMA_COMPLIANCE.md +57 -2
- package/docs/PHASE1_GUIDE.md +1 -1
- package/docs/alteriom/overview.md +2 -2
- package/docs/architecture/plugin-system.md +1 -1
- package/docs/archive/RELEASE_SUMMARY.md +1 -1
- package/docs/releases/RELEASE_CHECKLIST_v1.7.6.md +389 -0
- package/docs/releases/RELEASE_SUMMARY_v1.7.7.md +391 -0
- package/docs/v1.7.7_MQTT_IMPROVEMENTS.md +776 -0
- package/docs/wiki/API-Reference.md +2 -2
- package/docs/wiki/Complete-Documentation.md +1 -1
- package/examples/alteriom/README.md +137 -3
- package/examples/alteriom/alteriom.ino +1 -1
- package/examples/alteriom/alteriom_sensor_package.hpp +557 -2
- package/examples/alteriomImproved/alteriom_sensor_package.hpp +1 -1
- package/examples/alteriomImproved/improved_sensor_node.ino +1 -1
- package/examples/alteriomMetricsHealth/alteriom_sensor_package.hpp +796 -0
- package/examples/alteriomMetricsHealth/metrics_health_node.ino +418 -0
- package/examples/alteriomMetricsHealth/platformio.ini +26 -0
- package/examples/alteriomPhase1/alteriom_sensor_package.hpp +1 -1
- package/examples/alteriomPhase1/phase1_features.ino +2 -2
- package/examples/alteriomPhase2/alteriom_sensor_package.hpp +1 -1
- package/examples/alteriomSensorNode/alteriom_sensor_node.ino +1 -1
- package/examples/alteriomSensorNode/alteriom_sensor_package.hpp +1 -1
- package/examples/bridge/enhanced_mqtt_bridge.hpp +610 -0
- package/examples/bridge/enhanced_mqtt_bridge_example.ino +226 -0
- package/examples/meshCommandNode/alteriom_sensor_package.hpp +1 -1
- package/examples/mqttCommandBridge/alteriom_sensor_package.hpp +1 -1
- package/examples/mqttTopologyTest/mqttTopologyTest.ino +5 -1
- package/library.json +1 -1
- package/library.properties +1 -1
- 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
|