@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,389 +0,0 @@
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
@@ -1,331 +0,0 @@
1
- # Release v1.8.0 Checklist
2
-
3
- **Version:** 1.8.0
4
- **Release Date:** 2025-11-09
5
- **Status:** ✅ READY FOR RELEASE
6
-
7
- ---
8
-
9
- ## Pre-Release Verification ✅
10
-
11
- - [x] All tests passing (1,500+ assertions)
12
- - [x] Version numbers updated in all files
13
- - [x] CHANGELOG.md updated with v1.8.0 section
14
- - [x] Release notes created (RELEASE_NOTES_v1.8.0.md)
15
- - [x] All features documented
16
- - [x] Examples provided and working
17
- - [x] No compilation warnings
18
- - [x] No security vulnerabilities
19
- - [x] 100% backward compatible
20
- - [x] No breaking changes
21
-
22
- ---
23
-
24
- ## Release Steps
25
-
26
- ### 1. Merge Pull Request
27
-
28
- ```bash
29
- # Review PR: copilot/review-issues-and-initiate-release
30
- # Merge to main branch via GitHub UI or:
31
- git checkout main
32
- git merge copilot/review-issues-and-initiate-release
33
- git push origin main
34
- ```
35
-
36
- **Files Changed:**
37
- - `CHANGELOG.md`
38
- - `library.json`
39
- - `library.properties`
40
- - `package.json`
41
- - `RELEASE_NOTES_v1.8.0.md` (new)
42
- - `RELEASE_CHECKLIST_v1.8.0.md` (new)
43
-
44
- ### 2. Create Git Tag
45
-
46
- ```bash
47
- # On main branch
48
- git tag -a v1.8.0 -m "Release v1.8.0 - Bridge-centric architecture and monitoring enhancements"
49
- git push origin v1.8.0
50
- ```
51
-
52
- ### 3. Create GitHub Release
53
-
54
- 1. Go to: https://github.com/Alteriom/painlessMesh/releases/new
55
- 2. Select tag: `v1.8.0`
56
- 3. Release title: `painlessMesh v1.8.0`
57
- 4. Copy content from `RELEASE_NOTES_v1.8.0.md`
58
- 5. Check "Set as the latest release"
59
- 6. Click "Publish release"
60
-
61
- ### 4. Publish to npm
62
-
63
- ```bash
64
- # Ensure you're on the v1.8.0 tag
65
- git checkout v1.8.0
66
-
67
- # Verify version
68
- cat package.json | grep version
69
-
70
- # Publish (requires npm login)
71
- npm publish
72
- ```
73
-
74
- **Expected Output:**
75
- ```
76
- + @alteriom/painlessmesh@1.8.0
77
- ```
78
-
79
- ### 5. Verify PlatformIO Registry
80
-
81
- PlatformIO will automatically detect and index the new release within 24 hours.
82
-
83
- **Verify at:** https://registry.platformio.org/libraries/sparck75/AlteriomPainlessMesh
84
-
85
- **Manual trigger (if needed):**
86
- ```bash
87
- pio pkg update
88
- ```
89
-
90
- ### 6. Update Documentation Website
91
-
92
- If you maintain a documentation website:
93
-
94
- ```bash
95
- cd docs-website
96
- # Update version references
97
- # Regenerate docs
98
- # Deploy
99
- ```
100
-
101
- ---
102
-
103
- ## Post-Release Verification
104
-
105
- ### Verify GitHub Release
106
-
107
- - [ ] Release appears at: https://github.com/Alteriom/painlessMesh/releases/tag/v1.8.0
108
- - [ ] Release notes are complete and formatted correctly
109
- - [ ] Assets are attached (if any)
110
- - [ ] "Latest release" badge is updated
111
-
112
- ### Verify npm Package
113
-
114
- ```bash
115
- # Check npm package
116
- npm view @alteriom/painlessmesh version
117
- # Should show: 1.8.0
118
-
119
- # Test installation
120
- npm install @alteriom/painlessmesh
121
- ```
122
-
123
- ### Verify PlatformIO Registry
124
-
125
- **After ~24 hours:**
126
- - [ ] Library appears with v1.8.0 at PlatformIO registry
127
- - [ ] Installation works: `pio pkg install -l sparck75/AlteriomPainlessMesh@^1.8.0`
128
-
129
- ### Verify Arduino Library Manager
130
-
131
- **After ~48 hours:**
132
- - [ ] Library appears with v1.8.0 in Arduino IDE Library Manager
133
- - [ ] Installation works via Arduino IDE
134
-
135
- ---
136
-
137
- ## Communication
138
-
139
- ### GitHub Announcement
140
-
141
- Post in Discussions: https://github.com/Alteriom/painlessMesh/discussions
142
-
143
- **Template:**
144
- ```markdown
145
- # painlessMesh v1.8.0 Released! 🎉
146
-
147
- We're excited to announce painlessMesh v1.8.0, a major feature release focused on bridge operations, monitoring, and time synchronization.
148
-
149
- ## Key Highlights
150
-
151
- ✨ **Bridge-Centric Architecture** - Zero-configuration setup
152
- 📊 **Comprehensive Monitoring** - Real-time health metrics
153
- 🕐 **Time Synchronization** - NTP distribution with RTC backup
154
- 🔍 **Diagnostics Tools** - Deep insights into operations
155
- ⚡ **Production Ready** - 100% backward compatible
156
-
157
- ## 7 Major Features
158
-
159
- 1. Diagnostics API for Bridge Operations
160
- 2. Bridge Health Monitoring & Metrics Collection
161
- 3. RTC Integration for offline timekeeping
162
- 4. Bridge Status Broadcast & Callbacks
163
- 5. NTP Time Synchronization (Type 614)
164
- 6. Bridge-Centric Architecture with Auto Channel Detection
165
- 7. Enhanced Documentation & Examples
166
-
167
- ## Download & Upgrade
168
-
169
- - **GitHub:** https://github.com/Alteriom/painlessMesh/releases/tag/v1.8.0
170
- - **npm:** `npm install @alteriom/painlessmesh@1.8.0`
171
- - **PlatformIO:** Available within 24 hours
172
- - **Arduino IDE:** Available within 48 hours
173
-
174
- ## Documentation
175
-
176
- See [RELEASE_NOTES_v1.8.0.md](RELEASE_NOTES_v1.8.0.md) for:
177
- - Detailed feature descriptions
178
- - Migration guide with code examples
179
- - Configuration examples
180
- - Use cases and benefits
181
-
182
- ## Upgrade
183
-
184
- ✅ **100% backward compatible** - No breaking changes
185
- ✅ **Optional adoption** - All new features are opt-in
186
- ✅ **Simple migration** - See release notes for examples
187
-
188
- ## Questions?
189
-
190
- - Open an [issue](https://github.com/Alteriom/painlessMesh/issues)
191
- - Start a [discussion](https://github.com/Alteriom/painlessMesh/discussions)
192
- - Check the [examples](examples/)
193
-
194
- Happy meshing! 🚀
195
- ```
196
-
197
- ### Social Media (if applicable)
198
-
199
- **Twitter/X:**
200
- ```
201
- 🎉 painlessMesh v1.8.0 is here!
202
-
203
- ✨ Bridge-centric architecture
204
- 📊 Health monitoring & diagnostics
205
- 🕐 NTP time sync + RTC
206
- ⚡ Production-ready
207
-
208
- 100% backward compatible!
209
-
210
- Download: https://github.com/Alteriom/painlessMesh/releases/tag/v1.8.0
211
-
212
- #ESP32 #ESP8266 #IoT #MeshNetwork
213
- ```
214
-
215
- **LinkedIn:**
216
- ```
217
- We're thrilled to announce painlessMesh v1.8.0! 🎉
218
-
219
- This major release brings seven production-ready features for ESP32/ESP8266 mesh networks:
220
-
221
- ✨ Bridge-Centric Architecture with automatic channel detection
222
- 📊 Comprehensive health monitoring and diagnostics
223
- 🕐 NTP time synchronization with RTC backup
224
- 🔍 Deep diagnostic tools for troubleshooting
225
- ⚡ Real-time metrics for Grafana/Prometheus integration
226
-
227
- Perfect for:
228
- • Industrial IoT deployments
229
- • Smart building automation
230
- • Environmental monitoring
231
- • Production mesh networks
232
-
233
- 100% backward compatible with v1.7.x - upgrade with confidence!
234
-
235
- Learn more: https://github.com/Alteriom/painlessMesh/releases/tag/v1.8.0
236
-
237
- #IoT #ESP32 #ESP8266 #MeshNetworking #OpenSource
238
- ```
239
-
240
- ---
241
-
242
- ## Monitoring
243
-
244
- ### Week 1
245
-
246
- Monitor for:
247
- - [ ] Installation issues
248
- - [ ] Compilation errors
249
- - [ ] Feature requests
250
- - [ ] Bug reports
251
- - [ ] Documentation questions
252
-
253
- ### Metrics to Track
254
-
255
- - GitHub downloads
256
- - npm downloads
257
- - PlatformIO downloads
258
- - GitHub stars/forks
259
- - Issue/discussion activity
260
-
261
- ---
262
-
263
- ## Hotfix Process (if needed)
264
-
265
- If critical bugs are discovered:
266
-
267
- 1. Create hotfix branch: `git checkout -b hotfix/v1.8.1`
268
- 2. Fix the issue
269
- 3. Update CHANGELOG.md with v1.8.1
270
- 4. Update version numbers
271
- 5. Create PR and merge
272
- 6. Tag v1.8.1 and release
273
- 7. Communicate to users
274
-
275
- ---
276
-
277
- ## Success Criteria
278
-
279
- ✅ **Release Published**
280
- - GitHub release created
281
- - npm package published
282
- - PlatformIO updated
283
- - Arduino Library Manager synced
284
-
285
- ✅ **No Critical Issues**
286
- - Zero critical bugs in first week
287
- - No breaking changes reported
288
- - Installation works on all platforms
289
-
290
- ✅ **Community Engagement**
291
- - Positive feedback from users
292
- - Feature adoption beginning
293
- - Questions answered promptly
294
-
295
- ---
296
-
297
- ## Next Release Planning (v1.8.1)
298
-
299
- Features planned for v1.8.1:
300
- - Message Queuing for Offline Mode (#66)
301
- - Multi-Bridge Coordination (#65)
302
- - Automatic Bridge Failover (#64)
303
-
304
- **Timeline:** Q1 2026
305
-
306
- ---
307
-
308
- ## Contacts
309
-
310
- **Maintainer:** @sparck75
311
- **Repository:** https://github.com/Alteriom/painlessMesh
312
- **Issues:** https://github.com/Alteriom/painlessMesh/issues
313
- **Discussions:** https://github.com/Alteriom/painlessMesh/discussions
314
-
315
- ---
316
-
317
- ## Notes
318
-
319
- - All pre-release checks passed ✅
320
- - Release is backward compatible ✅
321
- - No breaking changes ✅
322
- - Comprehensive testing complete ✅
323
- - Documentation comprehensive ✅
324
-
325
- **Status: READY TO RELEASE** 🚀
326
-
327
- ---
328
-
329
- **Last Updated:** 2025-11-09
330
- **Prepared by:** GitHub Copilot
331
- **Reviewed by:** (pending maintainer review)