@alteriom/painlessmesh 1.8.14 → 1.9.0

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 (208) hide show
  1. package/BRIDGE_TO_INTERNET.md +229 -0
  2. package/CHANGELOG.md +89 -1
  3. package/CONTRIBUTING.md +79 -0
  4. package/README.md +70 -143
  5. package/docs/README.md +1 -0
  6. package/docs/api/shared-gateway.md +1207 -0
  7. package/docs/troubleshooting/common-issues.md +28 -0
  8. package/docs/troubleshooting/faq.md +113 -12
  9. package/examples/basic/test/simulator/CMakeLists.txt +40 -0
  10. package/examples/basic/test/simulator/README.md +149 -0
  11. package/examples/basic/test/simulator/firmware/basic_firmware.hpp +117 -0
  12. package/examples/basic/test/simulator/scenarios/basic_mesh_test.yaml +81 -0
  13. package/examples/bridge/bridge.ino +17 -4
  14. package/examples/bridge_failover/README.md +81 -0
  15. package/examples/bridge_failover/bridge_failover.ino +51 -6
  16. package/examples/sharedGateway/README.md +235 -0
  17. package/examples/{meshCommandNode → sharedGateway}/platformio.ini +3 -2
  18. package/examples/sharedGateway/sharedGateway.ino +303 -0
  19. package/library.json +3 -22
  20. package/library.properties +1 -1
  21. package/package.json +3 -3
  22. package/src/arduino/wifi.hpp +380 -13
  23. package/src/painlessmesh/gateway.hpp +2120 -0
  24. package/src/painlessmesh/mesh.hpp +1034 -6
  25. package/src/painlessmesh/message_tracker.hpp +311 -0
  26. package/src/painlessmesh/protocol.hpp +6 -0
  27. package/DOCUMENTATION_INDEX.md +0 -146
  28. package/docs/API_DESIGN_GUIDELINES.md +0 -414
  29. package/docs/ARDUINO_LIBRARY_MANAGER_SUBMISSION.md +0 -331
  30. package/docs/BOOLEAN_NAMING_CONVENTION.md +0 -235
  31. package/docs/BRIDGE_FAILOVER.md +0 -512
  32. package/docs/BRIDGE_HEALTH_MONITORING.md +0 -293
  33. package/docs/CHANNEL_SYNCHRONIZATION.md +0 -209
  34. package/docs/CREATE_MISSING_RELEASES.md +0 -321
  35. package/docs/DOCUMENTATION_MIGRATION_PLAN.md +0 -176
  36. package/docs/FAQ_VERSION_NUMBERS.md +0 -152
  37. package/docs/IMPLEMENTATION_PLAN_MESH_TOPOLOGY.md +0 -1062
  38. package/docs/MESH_TOPOLOGY_GUIDE.md +0 -992
  39. package/docs/MESH_TOPOLOGY_PROGRESS.md +0 -422
  40. package/docs/MQTT_BRIDGE_COMMANDS.md +0 -894
  41. package/docs/MQTT_BRIDGE_IMPLEMENTATION_SUMMARY.md +0 -324
  42. package/docs/MQTT_COMMAND_SCHEMA_PROPOSAL.md +0 -576
  43. package/docs/MQTT_SCHEMA_COMPLIANCE.md +0 -340
  44. package/docs/MQTT_SCHEMA_PROPOSALS.md +0 -446
  45. package/docs/MQTT_SCHEMA_REVIEW.md +0 -690
  46. package/docs/OTA_COMMANDS_REFERENCE.md +0 -554
  47. package/docs/PHASE1_GUIDE.md +0 -349
  48. package/docs/PHASE2_GUIDE.md +0 -543
  49. package/docs/QUICK_REFERENCE_VERSIONING.md +0 -127
  50. package/docs/RELEASE_AGENT_SUMMARY.md +0 -386
  51. package/docs/SCHEMA_VALIDATION_CHECKLIST.md +0 -222
  52. package/docs/VERSION_MANAGEMENT.md +0 -213
  53. package/docs/archive/DOCUSAURUS_DEPLOYMENT.md +0 -166
  54. package/docs/archive/FEATURE_PROPOSALS.md +0 -337
  55. package/docs/archive/LIBRARY_JSON_FIX.md +0 -98
  56. package/docs/archive/LIBRARY_STRUCTURE_FIX.md +0 -215
  57. package/docs/archive/PHASE1_IMPLEMENTATION.md +0 -325
  58. package/docs/archive/PHASE2_IMPLEMENTATION.md +0 -567
  59. package/docs/archive/RELEASE_SUMMARY.md +0 -173
  60. package/docs/archive/SCONS_BUILD_FIX.md +0 -313
  61. package/docs/archive/TRIGGER_RELEASE.md +0 -280
  62. package/docs/archive/VECTOR_INCLUDE_FIX.md +0 -129
  63. package/docs/archive/ota-and-status-enhancements.md +0 -911
  64. package/docs/archive/ota-status-architecture-diagrams.md +0 -658
  65. package/docs/archive/ota-status-quick-reference.md +0 -284
  66. package/docs/design/.gitkeep +0 -1
  67. package/docs/design/STATION_CREDENTIALS_DESIGN.md +0 -182
  68. package/docs/development/ARDUINO_COMPLIANCE_SUMMARY.md +0 -71
  69. package/docs/development/CODE_REFACTORING_RECOMMENDATIONS.md +0 -1011
  70. package/docs/development/DOCKER_TESTING.md +0 -196
  71. package/docs/development/PLATFORMIO_USAGE.md +0 -180
  72. package/docs/development/TESTING_SUMMARY.md +0 -126
  73. package/docs/development/contributing.md +0 -301
  74. package/docs/development/documentation.md +0 -583
  75. package/docs/features/DIAGNOSTICS_API.md +0 -534
  76. package/docs/implementation/BRIDGE_ARCHITECTURE_IMPLEMENTATION.md +0 -340
  77. package/docs/implementation/BRIDGE_HEALTH_MONITORING_IMPLEMENTATION.md +0 -213
  78. package/docs/implementation/BRIDGE_STATUS_FEATURE.md +0 -635
  79. package/docs/implementation/DIAGNOSTICS_API_IMPLEMENTATION.md +0 -232
  80. package/docs/implementation/IMPLEMENTATION_COMPLETE.md +0 -228
  81. package/docs/implementation/IMPLEMENTATION_NTP_TIME_SYNC.md +0 -325
  82. package/docs/implementation/IMPLEMENTATION_SUMMARY.md +0 -316
  83. package/docs/implementation/MESSAGE_QUEUE_IMPLEMENTATION.md +0 -405
  84. package/docs/implementation/MULTI_BRIDGE_IMPLEMENTATION.md +0 -520
  85. package/docs/implementation/NTP_TIME_SYNC_FEATURE.md +0 -392
  86. package/docs/improvements/FUTURE_PROPOSALS.md +0 -1016
  87. package/docs/improvements/IMPLEMENTATION_HISTORY.md +0 -1091
  88. package/docs/improvements/OTA_STATUS_ENHANCEMENTS.md +0 -709
  89. package/docs/improvements/README.md +0 -212
  90. package/docs/internal/CUSTOM_AGENT_ANALYSIS.md +0 -391
  91. package/docs/internal/ISSUE_65_VERIFICATION.md +0 -947
  92. package/docs/internal/ISSUE_66_CLOSURE.md +0 -249
  93. package/docs/internal/ISSUE_66_STATUS.md +0 -316
  94. package/docs/internal/PR_SUMMARY.md +0 -315
  95. package/docs/internal/REVIEW_SUMMARY.md +0 -332
  96. package/docs/multi-bridge-setup.md +0 -1025
  97. package/docs/platformio-publishing.md +0 -255
  98. package/docs/platformio-setup-summary.md +0 -121
  99. package/docs/releases/ANNOUNCEMENT_v1.8.6.md +0 -63
  100. package/docs/releases/ANNOUNCEMENT_v1.8.7.md +0 -113
  101. package/docs/releases/BRIDGE_STATUS_SELF_REGISTRATION_FIX.md +0 -221
  102. package/docs/releases/FEATURE_HISTORY.md +0 -543
  103. package/docs/releases/GITHUB_RELEASE_v1.8.6.md +0 -71
  104. package/docs/releases/GITHUB_RELEASE_v1.8.7.md +0 -90
  105. package/docs/releases/PATCH_v1.7.2.md +0 -262
  106. package/docs/releases/PATCH_v1.7.3.md +0 -262
  107. package/docs/releases/PATCH_v1.7.4.md +0 -219
  108. package/docs/releases/PHASE1_SUMMARY.md +0 -246
  109. package/docs/releases/PHASE2_SUMMARY.md +0 -499
  110. package/docs/releases/PUBLISH_v1.8.0_INSTRUCTIONS.md +0 -163
  111. package/docs/releases/QUICK_START_RELEASES.md +0 -113
  112. package/docs/releases/RELEASE_CHECKLIST_1.8.10.md +0 -331
  113. package/docs/releases/RELEASE_CHECKLIST_1.8.9.md +0 -207
  114. package/docs/releases/RELEASE_CHECKLIST_v1.7.4.md +0 -253
  115. package/docs/releases/RELEASE_CHECKLIST_v1.7.5.md +0 -315
  116. package/docs/releases/RELEASE_CHECKLIST_v1.7.6.md +0 -389
  117. package/docs/releases/RELEASE_CHECKLIST_v1.8.0.md +0 -331
  118. package/docs/releases/RELEASE_CHECKLIST_v1.8.2.md +0 -309
  119. package/docs/releases/RELEASE_NOTES_1.7.0.md +0 -539
  120. package/docs/releases/RELEASE_NOTES_1.8.10.md +0 -239
  121. package/docs/releases/RELEASE_NOTES_1.8.9.md +0 -213
  122. package/docs/releases/RELEASE_NOTES_v1.8.0.md +0 -685
  123. package/docs/releases/RELEASE_NOTES_v1.8.1.md +0 -221
  124. package/docs/releases/RELEASE_NOTES_v1.8.2.md +0 -421
  125. package/docs/releases/RELEASE_NOTES_v1.8.3.md +0 -292
  126. package/docs/releases/RELEASE_NOTES_v1.8.4.md +0 -277
  127. package/docs/releases/RELEASE_NOTES_v1.8.6.md +0 -205
  128. package/docs/releases/RELEASE_NOTES_v1.8.7.md +0 -184
  129. package/docs/releases/RELEASE_PLAN_v1.7.6.md +0 -816
  130. package/docs/releases/RELEASE_SUMMARY_1.8.10.md +0 -193
  131. package/docs/releases/RELEASE_SUMMARY_v1.7.4.md +0 -276
  132. package/docs/releases/RELEASE_SUMMARY_v1.7.5.md +0 -322
  133. package/docs/releases/RELEASE_SUMMARY_v1.7.6.md +0 -436
  134. package/docs/releases/RELEASE_SUMMARY_v1.7.7.md +0 -391
  135. package/docs/releases/RELEASE_SUMMARY_v1.7.8.md +0 -523
  136. package/docs/releases/RELEASE_SUMMARY_v1.7.9.md +0 -542
  137. package/docs/troubleshooting/ARDUINO_IDE_VERSION_FIX_SUMMARY.md +0 -229
  138. package/docs/troubleshooting/ARDUINO_LIBRARY_NAME_FIX.md +0 -197
  139. package/docs/troubleshooting/CRASH_QUICK_REF.md +0 -93
  140. package/docs/troubleshooting/ESP32_C6_COMPATIBILITY.md +0 -157
  141. package/docs/troubleshooting/FREERTOS_ASSERTION_FAILURE.md +0 -288
  142. package/docs/troubleshooting/FREERTOS_FIX_IMPLEMENTATION.md +0 -267
  143. package/docs/troubleshooting/NPM_PUBLISHING_ISSUE_SUMMARY.md +0 -110
  144. package/docs/troubleshooting/PAINLESSMESH_V1.7.4_COMPILATION_ISSUES.md +0 -547
  145. package/docs/troubleshooting/QUICK_FIX_FREERTOS.md +0 -164
  146. package/docs/troubleshooting/SENSOR_NODE_CONNECTION_CRASH.md +0 -264
  147. package/docs/troubleshooting/station-reconnection-issues.md +0 -172
  148. package/docs/v1.7.7_MQTT_IMPROVEMENTS.md +0 -794
  149. package/docs/wiki/API-Reference.md +0 -246
  150. package/docs/wiki/Complete-Documentation.md +0 -123
  151. package/examples/alteriomImproved/alteriom_sensor_package.hpp +0 -224
  152. package/examples/alteriomImproved/improved_sensor_node.ino +0 -248
  153. package/examples/alteriomImproved/platformio.ini +0 -32
  154. package/examples/alteriomMetricsHealth/alteriom_sensor_package.hpp +0 -796
  155. package/examples/alteriomMetricsHealth/metrics_health_node.ino +0 -429
  156. package/examples/alteriomMetricsHealth/platformio.ini +0 -26
  157. package/examples/alteriomPhase1/alteriom_sensor_package.hpp +0 -224
  158. package/examples/alteriomPhase1/phase1_features.ino +0 -242
  159. package/examples/alteriomPhase1/platformio.ini +0 -26
  160. package/examples/alteriomPhase2/alteriom_sensor_package.hpp +0 -224
  161. package/examples/alteriomPhase2/phase2_features.ino +0 -186
  162. package/examples/alteriomPhase2/platformio.ini +0 -26
  163. package/examples/alteriomSensorNode/alteriom_sensor_node.ino +0 -186
  164. package/examples/alteriomSensorNode/alteriom_sensor_package.hpp +0 -1227
  165. package/examples/alteriomSensorNode/platformio.ini +0 -26
  166. package/examples/bridge/alteriom_sensor_package.hpp +0 -1170
  167. package/examples/bridge/bridge_health_monitoring_example.ino +0 -188
  168. package/examples/bridge/enhanced_mqtt_bridge.hpp +0 -610
  169. package/examples/bridge/enhanced_mqtt_bridge_example.ino +0 -226
  170. package/examples/bridge/mesh_event_publisher.hpp +0 -253
  171. package/examples/bridge/mesh_topology_reporter.hpp +0 -303
  172. package/examples/bridge/mqtt_command_bridge.hpp +0 -459
  173. package/examples/bridge/mqtt_status_bridge.hpp +0 -519
  174. package/examples/bridgeAwareSensorNode/alteriom_sensor_package.hpp +0 -1227
  175. package/examples/bridgeAwareSensorNode/bridgeAwareSensorNode.ino +0 -342
  176. package/examples/bridgeAwareSensorNode/platformio.ini +0 -26
  177. package/examples/diagnosticsExample/diagnosticsExample.ino +0 -171
  178. package/examples/diagnosticsExample/platformio.ini +0 -26
  179. package/examples/echoNode/echoNode.ino +0 -33
  180. package/examples/echoNode/platformio.ini +0 -26
  181. package/examples/meshCommandNode/alteriom_sensor_package.hpp +0 -235
  182. package/examples/meshCommandNode/meshCommandNode.ino +0 -265
  183. package/examples/mqttCommandBridge/alteriom_sensor_package.hpp +0 -235
  184. package/examples/mqttCommandBridge/mesh_event_publisher.hpp +0 -253
  185. package/examples/mqttCommandBridge/mesh_topology_reporter.hpp +0 -303
  186. package/examples/mqttCommandBridge/mqttCommandBridge.ino +0 -254
  187. package/examples/mqttCommandBridge/mqtt_command_bridge.hpp +0 -462
  188. package/examples/mqttCommandBridge/platformio.ini +0 -27
  189. package/examples/mqttStatusBridge/mqttStatusBridge.ino +0 -218
  190. package/examples/mqttStatusBridge/mqtt_status_bridge.hpp +0 -522
  191. package/examples/mqttStatusBridge/platformio.ini +0 -27
  192. package/examples/mqttTopologyTest/README.md +0 -467
  193. package/examples/mqttTopologyTest/mqttTopologyTest.ino +0 -754
  194. package/examples/mqttTopologyTest/platformio.ini +0 -27
  195. package/examples/multi_bridge/README.md +0 -346
  196. package/examples/multi_bridge/primary_bridge.ino +0 -96
  197. package/examples/multi_bridge/regular_node.ino +0 -141
  198. package/examples/multi_bridge/secondary_bridge.ino +0 -111
  199. package/examples/ntpTimeSyncBridge/alteriom_sensor_package.hpp +0 -1383
  200. package/examples/ntpTimeSyncBridge/ntpTimeSyncBridge.ino +0 -86
  201. package/examples/ntpTimeSyncNode/alteriom_sensor_package.hpp +0 -1383
  202. package/examples/ntpTimeSyncNode/ntpTimeSyncNode.ino +0 -109
  203. package/examples/queued_alarms/README.md +0 -390
  204. package/examples/queued_alarms/queued_alarms.ino +0 -265
  205. package/examples/routing_demo/README.md +0 -172
  206. package/examples/routing_demo/routing_demo.ino +0 -102
  207. package/examples/rtcIntegration/README.md +0 -294
  208. package/examples/rtcIntegration/rtcIntegration.ino +0 -210
@@ -1,253 +0,0 @@
1
- # v1.7.4 Release Checklist
2
-
3
- **Release Date:** October 19, 2025
4
- **Release Commit:** 7cd66ac
5
- **Git Tag:** v1.7.4
6
-
7
- ## Pre-Release Tasks ✅
8
-
9
- - [x] Update version in `library.json` to 1.7.4
10
- - [x] Update version in `library.properties` to 1.7.4
11
- - [x] Update version in `package.json` to 1.7.4
12
- - [x] Update `CHANGELOG.md` with v1.7.4 entry
13
- - [x] Create `docs/releases/PATCH_v1.7.4.md` release notes
14
- - [x] Create release commit with "release:" prefix
15
- - [x] Create annotated git tag `v1.7.4`
16
- - [x] Push commit to main branch
17
- - [x] Push tag to trigger workflows
18
-
19
- ## Automated Workflows
20
-
21
- ### GitHub Actions (Monitor: https://github.com/Alteriom/painlessMesh/actions)
22
-
23
- - [ ] **Desktop Build Workflow** - Should pass
24
- - [ ] **PlatformIO Build Workflow** - Should pass (ESP32 & ESP8266)
25
- - [ ] **NPM Publish Workflow** - Should trigger on tag push
26
- - [ ] **GitHub Release Creation** - Auto-created from tag
27
-
28
- ### Registry Updates
29
-
30
- - [ ] **GitHub Release** - Check created with correct notes
31
- - [ ] **NPM Registry** - Verify `@alteriom/painlessmesh@1.7.4` published
32
- - [ ] **PlatformIO Registry** - Should sync from GitHub release (may take hours)
33
- - [ ] **Arduino Library Manager** - Indexing may take 24-48 hours
34
-
35
- ## Post-Release Verification
36
-
37
- ### Package Availability
38
-
39
- Check each registry is updated:
40
-
41
- ```bash
42
- # NPM
43
- npm view @alteriom/painlessmesh version
44
- # Expected: 1.7.4
45
-
46
- # PlatformIO
47
- pio pkg search "AlteriomPainlessMesh" --page 1
48
- # Expected: v1.7.4 in results
49
-
50
- # Arduino (check manually)
51
- # https://www.arduino.cc/reference/en/libraries/alteriompainlessmesh/
52
- ```
53
-
54
- ### Installation Testing
55
-
56
- - [ ] Test PlatformIO installation: `pio pkg install --library "alteriom/AlteriomPainlessMesh@^1.7.4"`
57
- - [ ] Test NPM installation: `npm install @alteriom/painlessmesh@^1.7.4`
58
- - [ ] Test Arduino IDE installation (once indexed)
59
- - [ ] Verify example sketches compile with new version
60
-
61
- ### Documentation
62
-
63
- - [ ] Verify GitHub release page created
64
- - [ ] Check release notes display correctly
65
- - [ ] Ensure all links in release notes work
66
- - [ ] Update any external documentation sites (if applicable)
67
-
68
- ## Hardware Testing (Recommended)
69
-
70
- ### ESP32 Testing
71
-
72
- - [ ] **Gateway Node**
73
- - Flash with v1.7.4
74
- - Enable debug output
75
- - Monitor serial for clean startup
76
-
77
- - [ ] **Sensor Node (Single)**
78
- - Connect to gateway
79
- - Verify no FreeRTOS assertion
80
- - Check heap stability
81
-
82
- - [ ] **Multiple Sensor Nodes**
83
- - Connect 5+ nodes simultaneously
84
- - Monitor for crashes
85
- - Verify all connections successful
86
-
87
- - [ ] **Sustained Operation**
88
- - Run for 1+ hour
89
- - Monitor heap every 30 seconds
90
- - Check for memory leaks
91
-
92
- ### ESP8266 Testing (Regression Check)
93
-
94
- - [ ] Verify builds successfully
95
- - [ ] Test basic mesh connectivity
96
- - [ ] Confirm no unexpected behavior changes
97
-
98
- ### Monitoring Script
99
-
100
- Add to test sketches:
101
-
102
- ```cpp
103
- mesh.onNewConnection([](uint32_t nodeId) {
104
- Serial.printf("✅ Connection: Node=%u Heap=%d Stack=%d\n",
105
- nodeId, ESP.getFreeHeap(),
106
- uxTaskGetStackHighWaterMark(NULL));
107
- });
108
-
109
- mesh.onDroppedConnection([](uint32_t nodeId) {
110
- Serial.printf("❌ Dropped: Node=%u Heap=%d\n",
111
- nodeId, ESP.getFreeHeap());
112
- });
113
-
114
- // In loop() or scheduled task
115
- void checkHealth() {
116
- Serial.printf("Health: Nodes=%d Heap=%d Uptime=%lu\n",
117
- mesh.getNodeList().size(),
118
- ESP.getFreeHeap(),
119
- millis() / 1000);
120
- }
121
- ```
122
-
123
- ## Community Communication
124
-
125
- ### Announcements
126
-
127
- - [ ] **GitHub Discussions** - Post release announcement
128
- - [ ] **Discord/Slack** - Share release highlights
129
- - [ ] **Forum Posts** - Update relevant threads about FreeRTOS crashes
130
- - [ ] **README.md** - Ensure latest version badge updated (if applicable)
131
-
132
- ### Social Media (Optional)
133
-
134
- - [ ] Twitter/X announcement
135
- - [ ] LinkedIn post
136
- - [ ] Reddit (r/esp32, r/arduino if relevant)
137
-
138
- ### Sample Announcement
139
-
140
- ```
141
- 🎉 painlessMesh v1.7.4 Released!
142
-
143
- Critical stability release for ESP32 users experiencing mesh connection crashes.
144
-
145
- ✅ FreeRTOS assertion fix - 95% crash reduction
146
- ✅ Complete ArduinoJson v7 compatibility
147
- ✅ Comprehensive troubleshooting documentation
148
-
149
- Upgrade: https://github.com/Alteriom/painlessMesh/releases/tag/v1.7.4
150
-
151
- #ESP32 #IoT #MeshNetwork #Arduino #PlatformIO
152
- ```
153
-
154
- ## Issue Tracking
155
-
156
- ### Close Related Issues
157
-
158
- Search for issues related to:
159
- - FreeRTOS assertion failures
160
- - ESP32 connection crashes
161
- - ArduinoJson v7 compatibility
162
- - `vTaskPriorityDisinheritAfterTimeout`
163
-
164
- Comment on each with:
165
- ```
166
- Fixed in v1.7.4. Please upgrade and retest. If issue persists, reopen with:
167
- - Library version (confirm 1.7.4)
168
- - Full serial output
169
- - ESP32 board type
170
- - Arduino/PlatformIO version
171
- ```
172
-
173
- ### Monitor for New Issues
174
-
175
- Watch for:
176
- - Installation problems
177
- - New crashes or regressions
178
- - Documentation errors
179
- - Build failures
180
-
181
- ## Rollback Plan
182
-
183
- If critical issues discovered:
184
-
185
- ### Minor Issues
186
- - Document in known issues
187
- - Plan for v1.7.5 hotfix
188
-
189
- ### Major Issues
190
- - Create `v1.7.3-lts` branch
191
- - Publish advisory
192
- - Prepare v1.7.5 with revert
193
-
194
- ### Emergency Rollback
195
- ```bash
196
- git tag -d v1.7.4
197
- git push origin :refs/tags/v1.7.4
198
- git revert 7cd66ac
199
- git commit -m "Revert v1.7.4 due to [critical issue]"
200
- git tag -a v1.7.3-hotfix -m "Emergency hotfix"
201
- git push origin main --tags
202
- ```
203
-
204
- ## Next Steps (Future Development)
205
-
206
- ### v1.7.5 (If Needed)
207
- - Hotfixes only
208
- - Release within 1-2 weeks if issues found
209
-
210
- ### v1.8.0 (Next Feature Release)
211
- - [ ] P1: Hop count calculation and tracking
212
- - [ ] P1: Routing table management improvements
213
- - [ ] P2: Deprecated type cleanup
214
- - [ ] P2: OTA semantics improvements
215
- - [ ] Target: 4-6 weeks
216
-
217
- ### Long-term Roadmap
218
- - Documentation website improvements
219
- - Performance benchmarking suite
220
- - Advanced mesh topology features
221
- - Enhanced security options
222
-
223
- ## Notes
224
-
225
- ### Success Criteria
226
-
227
- This release is considered successful if:
228
- - ✅ All CI/CD workflows pass
229
- - ✅ Packages published to all registries
230
- - ✅ No critical bugs reported within 72 hours
231
- - ✅ ESP32 crash reports decrease significantly
232
- - ✅ Positive community feedback
233
-
234
- ### Metrics to Track
235
-
236
- - Download counts per registry
237
- - Issue reports related to v1.7.4
238
- - Community feedback sentiment
239
- - Crash rate reports from users
240
-
241
- ## Completed Checklist
242
-
243
- **Pre-Release:** 8/8 ✅
244
- **Automated Workflows:** 0/4 ⏳ (in progress)
245
- **Post-Release Verification:** 0/7 ⏳ (pending)
246
- **Hardware Testing:** 0/7 ⏳ (recommended)
247
- **Community Communication:** 0/4 ⏳ (pending)
248
-
249
- ---
250
-
251
- **Last Updated:** October 19, 2025
252
- **Release Manager:** Alteriom Team
253
- **Status:** 🚀 Released - Monitoring Workflows
@@ -1,315 +0,0 @@
1
- # Release Checklist - painlessMesh v1.7.5
2
-
3
- **Release Date:** October 19, 2025
4
- **Release Manager:** Alteriom
5
-
6
- ## Pre-Release ✅ COMPLETE
7
-
8
- - [x] All CI/CD tests passing
9
- - [x] Version numbers updated (library.json, library.properties, package.json)
10
- - [x] CHANGELOG.md updated with v1.7.5 changes
11
- - [x] Release summary document created (RELEASE_SUMMARY_v1.7.5.md)
12
- - [x] Git commit created with release changes
13
- - [x] Git tag v1.7.5 created and pushed
14
- - [x] All changes pushed to GitHub main branch
15
-
16
- ## GitHub Release 📦
17
-
18
- - [ ] **Navigate to:** https://github.com/Alteriom/painlessMesh/releases/new
19
- - [ ] **Tag:** Select `v1.7.5` from dropdown
20
- - [ ] **Title:** `v1.7.5 - TaskScheduler Compatibility & CI/CD Fixes`
21
- - [ ] **Description:** Use template below
22
- - [ ] **Set as latest release:** ✅ Checked
23
- - [ ] **Create discussion:** ✅ Checked (optional)
24
- - [ ] Click **Publish Release**
25
-
26
- ### GitHub Release Description Template
27
-
28
- ```markdown
29
- # painlessMesh v1.7.5 - TaskScheduler Compatibility & CI/CD Fixes
30
-
31
- **Release Date:** October 19, 2025
32
- **Release Type:** Patch Release (Critical Bug Fix)
33
-
34
- ## 🚨 Critical Fixes
35
-
36
- This release addresses TaskScheduler compatibility issues and CI/CD build failures discovered during v1.7.4 testing.
37
-
38
- ### Key Changes
39
-
40
- - **Reverted Thread-Safe Mode**: Disabled `_TASK_THREAD_SAFE` due to architectural incompatibility with TaskScheduler v4.0.x
41
- - **Fixed Build System**: Added `lib_ldf_mode = deep+` to all example configurations
42
- - **Corrected Include Order**: Examples now include `painlessTaskOptions.h` before `TaskScheduler.h`
43
- - **FreeRTOS Crash Reduction**: Maintained at ~85% via semaphore timeout increase (Option A)
44
-
45
- ## 📋 What's Changed
46
-
47
- ### TaskScheduler Compatibility
48
-
49
- TaskScheduler v4.0.x cannot use `_TASK_THREAD_SAFE` and `_TASK_STD_FUNCTION` simultaneously. Since painlessMesh requires std::function for lambda callbacks throughout the codebase, we've disabled thread-safe mode and rely solely on the semaphore timeout fix.
50
-
51
- **Trade-off:**
52
- - ✅ Library functionality fully restored
53
- - ✅ All CI/CD builds passing
54
- - ⚠️ FreeRTOS crash reduction: ~85% (vs 95-98% with dual approach)
55
- - ✅ ESP32 crash rate: ~5-8% (acceptable for production)
56
-
57
- ### CI/CD Improvements
58
-
59
- - Fixed PlatformIO Library Dependency Finder configuration
60
- - Corrected include order in 6 example sketches
61
- - Added feature build flags for `alteriomImproved` example
62
- - All 19 examples now build successfully
63
-
64
- ## 🔧 Installation
65
-
66
- ### PlatformIO
67
- ```bash
68
- pio pkg update sparck75/AlteriomPainlessMesh
69
- ```
70
-
71
- ### NPM
72
- ```bash
73
- npm update @alteriom/painlessmesh
74
- ```
75
-
76
- ### Arduino IDE
77
- Library Manager → Search "painlessMesh" → Update to v1.7.5
78
-
79
- ## 📚 Documentation
80
-
81
- - [CHANGELOG.md](CHANGELOG.md) - Full version history
82
- - [Release Summary](docs/releases/RELEASE_SUMMARY_v1.7.5.md) - Technical details
83
- - [Troubleshooting Guide](docs/troubleshooting/SENSOR_NODE_CONNECTION_CRASH.md) - FreeRTOS crash information
84
-
85
- ## ⚙️ Technical Details
86
-
87
- **Commits:** 8869db8, f7ad959, 6f477a0, fe17e72, d8d2ff0
88
- **Files Changed:** 32 files
89
- **Test Status:** ✅ 710+ tests passing
90
- **Build Status:** ✅ All platforms passing
91
-
92
- ## 🆕 What's Next?
93
-
94
- Future releases will explore:
95
- - TaskScheduler v4.1+ compatibility when available
96
- - Alternative task scheduler options
97
- - Custom thread-safe implementation
98
- - Further FreeRTOS crash mitigation strategies
99
-
100
- ## 🙏 Acknowledgments
101
-
102
- Thank you to the community for testing and reporting the v1.7.4 CI/CD issues.
103
-
104
- ---
105
-
106
- **Full Changelog**: https://github.com/Alteriom/painlessMesh/compare/v1.7.4...v1.7.5
107
- ```
108
-
109
- ## NPM Publishing 📦
110
-
111
- ### Prerequisites
112
- - [ ] Verify you're logged in to NPM: `npm whoami`
113
- - [ ] Verify package.json version is 1.7.5
114
- - [ ] Verify you're on main branch with latest changes
115
-
116
- ### Steps
117
-
118
- 1. **Test the package locally** (optional but recommended):
119
- ```bash
120
- npm pack
121
- # This creates alteriom-painlessmesh-1.7.5.tgz
122
- ```
123
-
124
- 2. **Publish to NPM:**
125
- ```bash
126
- npm publish --access public
127
- ```
128
-
129
- 3. **Verify publication:**
130
- ```bash
131
- npm view @alteriom/painlessmesh version
132
- # Should show: 1.7.5
133
- ```
134
-
135
- 4. **Check on NPM website:**
136
- - Visit: https://www.npmjs.com/package/@alteriom/painlessmesh
137
- - Verify version shows 1.7.5
138
- - Check that "Latest" tag is applied
139
-
140
- ### NPM Checklist
141
- - [ ] Package built successfully (npm pack)
142
- - [ ] Published to NPM registry
143
- - [ ] Version 1.7.5 visible on npmjs.com
144
- - [ ] "Latest" tag applied correctly
145
- - [ ] Package downloadable: `npm install @alteriom/painlessmesh@1.7.5`
146
-
147
- ## PlatformIO Registry 📦
148
-
149
- ### Prerequisites
150
- - [ ] Verify PlatformIO account credentials
151
- - [ ] Verify library.json version is 1.7.5
152
-
153
- ### Automatic Registry Update
154
-
155
- PlatformIO automatically detects new GitHub releases and updates the registry within 24 hours.
156
-
157
- **Monitor at:** https://registry.platformio.org/libraries/sparck75/AlteriomPainlessMesh
158
-
159
- ### Manual Trigger (if needed)
160
-
161
- If automatic update doesn't occur within 24 hours:
162
-
163
- 1. **Via PlatformIO CLI:**
164
- ```bash
165
- pio pkg publish .
166
- ```
167
-
168
- 2. **Via Web Interface:**
169
- - Login to https://platformio.org
170
- - Navigate to your library page
171
- - Click "Sync from GitHub"
172
-
173
- ### PlatformIO Checklist
174
- - [ ] Monitored registry for automatic update
175
- - [ ] Version 1.7.5 appears in registry (within 24 hours)
176
- - [ ] Library downloadable: `pio pkg install sparck75/AlteriomPainlessMesh@1.7.5`
177
- - [ ] Verified on: https://registry.platformio.org/libraries/sparck75/AlteriomPainlessMesh
178
-
179
- ## Arduino Library Manager 📦
180
-
181
- ### Automatic Sync
182
-
183
- Arduino Library Manager automatically syncs from GitHub releases within 24-48 hours.
184
-
185
- **No manual action required!**
186
-
187
- ### Verification Steps
188
-
189
- After 24-48 hours:
190
-
191
- 1. **Check Arduino Library Manager:**
192
- - Open Arduino IDE
193
- - Tools → Manage Libraries
194
- - Search: "painlessMesh" or "Alteriom"
195
- - Verify version 1.7.5 is available
196
-
197
- 2. **Check Arduino Library List:**
198
- - Visit: https://www.arduinolibraries.info/libraries/alteriom-painless-mesh
199
- - Verify latest version shows 1.7.5
200
-
201
- ### Arduino Checklist
202
- - [ ] Waited 24-48 hours for automatic sync
203
- - [ ] Version 1.7.5 visible in Arduino IDE Library Manager
204
- - [ ] Library installable from Arduino IDE
205
- - [ ] Verified on arduinolibraries.info
206
-
207
- ## Documentation Updates 📝
208
-
209
- - [ ] Update troubleshooting docs with v1.7.5 reference
210
- - [ ] Update main README.md if needed
211
- - [ ] Verify all internal links work
212
- - [ ] Check docs website (if applicable)
213
-
214
- ## Communication 📢
215
-
216
- ### Announcements
217
-
218
- - [ ] **GitHub Discussions:** Create announcement post
219
- - [ ] **Issues:** Close related issues (#TODO if applicable)
220
- - [ ] **Pull Requests:** Reference in relevant PRs
221
- - [ ] **Social Media:** Announce on relevant platforms (if applicable)
222
-
223
- ### Template for GitHub Discussion
224
-
225
- ```markdown
226
- # painlessMesh v1.7.5 Released! 🎉
227
-
228
- We're pleased to announce painlessMesh v1.7.5, a critical patch release addressing TaskScheduler compatibility and CI/CD build issues.
229
-
230
- ## What's Fixed
231
-
232
- - ✅ TaskScheduler compatibility (reverted thread-safe mode)
233
- - ✅ CI/CD build system configuration
234
- - ✅ Example include order corrections
235
- - ✅ FreeRTOS crash reduction maintained at ~85%
236
-
237
- ## Upgrade Now
238
-
239
- **PlatformIO:** `pio pkg update sparck75/AlteriomPainlessMesh`
240
- **NPM:** `npm update @alteriom/painlessmesh`
241
- **Arduino IDE:** Library Manager → Update
242
-
243
- ## Details
244
-
245
- See the full [Release Notes](https://github.com/Alteriom/painlessMesh/releases/tag/v1.7.5) and [Technical Summary](https://github.com/Alteriom/painlessMesh/blob/main/docs/releases/RELEASE_SUMMARY_v1.7.5.md).
246
-
247
- Questions? Ask below! 👇
248
- ```
249
-
250
- ## Monitoring & Follow-up 👀
251
-
252
- ### First 24 Hours
253
-
254
- - [ ] Monitor GitHub issues for bug reports
255
- - [ ] Check CI/CD for any failures
256
- - [ ] Verify all download links work
257
- - [ ] Respond to community questions
258
-
259
- ### First Week
260
-
261
- - [ ] Verify PlatformIO registry updated
262
- - [ ] Verify Arduino Library Manager sync completed
263
- - [ ] Check download statistics
264
- - [ ] Gather user feedback
265
-
266
- ### First Month
267
-
268
- - [ ] Review crash reports from ESP32 deployments
269
- - [ ] Monitor for TaskScheduler upstream updates
270
- - [ ] Plan next release if issues found
271
- - [ ] Update roadmap based on feedback
272
-
273
- ## Rollback Plan 🔄
274
-
275
- If critical issues are discovered:
276
-
277
- 1. **Immediate:**
278
- - Mark GitHub Release as "Pre-release"
279
- - Add warning to release description
280
- - Create GitHub Discussion with details
281
-
282
- 2. **Within 24 hours:**
283
- - Prepare hotfix release (v1.7.6)
284
- - Or revert to v1.7.4 if necessary
285
- - Publish corrected version
286
-
287
- 3. **Communication:**
288
- - Update all announcements
289
- - Notify users via GitHub Issues
290
- - Update documentation
291
-
292
- ## Success Criteria ✅
293
-
294
- Release is considered successful when:
295
-
296
- - [x] Git tag v1.7.5 pushed to GitHub
297
- - [ ] GitHub Release published
298
- - [ ] NPM package published and downloadable
299
- - [ ] PlatformIO registry updated (within 24 hours)
300
- - [ ] Arduino Library Manager synced (within 48 hours)
301
- - [ ] No critical bugs reported in first 48 hours
302
- - [ ] CI/CD builds passing on all platforms
303
- - [ ] Community feedback positive or neutral
304
-
305
- ## Notes
306
-
307
- **Date Started:** October 19, 2025
308
- **Date Completed:** _To be filled_
309
- **Time to Complete:** _To be filled_
310
- **Issues Encountered:** _To be filled_
311
-
312
- ---
313
-
314
- **Release Manager Signature:** _______________
315
- **Date:** October 19, 2025