@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,321 +0,0 @@
1
- # Creating Missing GitHub Releases for v1.7.8 and v1.7.9
2
-
3
- ## Problem
4
-
5
- Versions 1.7.8 and 1.7.9 have:
6
- - ✅ CHANGELOG.md entries (complete release notes)
7
- - ✅ Release summary documentation (docs/releases/RELEASE_SUMMARY_v1.7.x.md)
8
- - ✅ Version numbers in library files (library.properties, library.json, package.json)
9
- - ❌ **Missing GitHub Releases** (no tags, no release pages)
10
-
11
- This means:
12
- - Users cannot download these specific versions from GitHub
13
- - Release automation may not have run properly
14
- - NPM/GitHub Packages may not have been published
15
-
16
- ## Solution: Create GitHub Releases Retroactively
17
-
18
- ### Option 1: Automated Script (Recommended)
19
-
20
- We've created a script to automate the process:
21
-
22
- ```bash
23
- ./scripts/create-missing-releases.sh
24
- ```
25
-
26
- **What it does:**
27
- 1. Extracts release notes from CHANGELOG.md
28
- 2. Creates git tags (v1.7.8, v1.7.9)
29
- 3. Pushes tags to GitHub
30
- 4. Creates GitHub releases with proper release notes
31
- 5. Provides links to verify releases
32
-
33
- **Requirements:**
34
- - GitHub CLI (`gh`) installed: https://cli.github.com/
35
- - Authenticated with GitHub: `gh auth login`
36
- - Write access to the repository
37
-
38
- **Running the script:**
39
-
40
- ```bash
41
- # Navigate to repository root
42
- cd /path/to/painlessMesh
43
-
44
- # Run the script
45
- ./scripts/create-missing-releases.sh
46
-
47
- # Follow the prompts
48
- # - Confirm you want to proceed
49
- # - If releases exist, choose whether to recreate them
50
- ```
51
-
52
- ### Option 2: Manual Process
53
-
54
- If you prefer to create releases manually or the script doesn't work:
55
-
56
- #### Step 1: Extract Release Notes
57
-
58
- ```bash
59
- # Extract v1.7.8 notes
60
- awk '/^## \[1\.7\.8\]/ {flag=1; next} /^## \[/ {flag=0} flag' CHANGELOG.md > release_notes_1.7.8.txt
61
-
62
- # Extract v1.7.9 notes
63
- awk '/^## \[1\.7\.9\]/ {flag=1; next} /^## \[/ {flag=0} flag' CHANGELOG.md > release_notes_1.7.9.txt
64
- ```
65
-
66
- #### Step 2: Create Tags and Releases via GitHub CLI
67
-
68
- **For v1.7.8:**
69
- ```bash
70
- # Create and push tag
71
- git tag -a v1.7.8 -m "painlessMesh v1.7.8"
72
- git push origin v1.7.8
73
-
74
- # Create GitHub release
75
- gh release create v1.7.8 \
76
- --repo Alteriom/painlessMesh \
77
- --title "painlessMesh v1.7.8" \
78
- --notes-file release_notes_1.7.8.txt
79
- ```
80
-
81
- **For v1.7.9:**
82
- ```bash
83
- # Create and push tag
84
- git tag -a v1.7.9 -m "painlessMesh v1.7.9"
85
- git push origin v1.7.9
86
-
87
- # Create GitHub release
88
- gh release create v1.7.9 \
89
- --repo Alteriom/painlessMesh \
90
- --title "painlessMesh v1.7.9" \
91
- --notes-file release_notes_1.7.9.txt
92
- ```
93
-
94
- #### Step 3: Create Releases via GitHub Web UI
95
-
96
- If you don't have GitHub CLI:
97
-
98
- 1. **Go to**: https://github.com/Alteriom/painlessMesh/releases/new
99
- 2. **For v1.7.8**:
100
- - Tag: `v1.7.8`
101
- - Release title: `painlessMesh v1.7.8`
102
- - Description: Copy content from `CHANGELOG.md` section `[1.7.8]`
103
- - Click "Publish release"
104
- 3. **For v1.7.9**:
105
- - Tag: `v1.7.9`
106
- - Release title: `painlessMesh v1.7.9`
107
- - Description: Copy content from `CHANGELOG.md` section `[1.7.9]`
108
- - Click "Publish release"
109
-
110
- ## Verification
111
-
112
- After creating the releases, verify:
113
-
114
- ### 1. Check GitHub Releases Page
115
- ```bash
116
- # View releases via CLI
117
- gh release list --repo Alteriom/painlessMesh
118
-
119
- # Or visit in browser
120
- # https://github.com/Alteriom/painlessMesh/releases
121
- ```
122
-
123
- **Expected output:**
124
- ```
125
- v1.7.9 painlessMesh v1.7.9 Latest 2025-11-08
126
- v1.7.8 painlessMesh v1.7.8 2025-11-05
127
- ```
128
-
129
- ### 2. Check Tags
130
- ```bash
131
- git fetch --tags
132
- git tag -l | grep -E "v1.7.[89]"
133
- ```
134
-
135
- **Expected output:**
136
- ```
137
- v1.7.8
138
- v1.7.9
139
- ```
140
-
141
- ### 3. Verify Release Notes
142
- Visit each release page and confirm:
143
- - ✅ Release notes match CHANGELOG.md content
144
- - ✅ Date is correct (v1.7.8: Nov 5, 2025; v1.7.9: Nov 8, 2025)
145
- - ✅ Release is marked as "Latest" for v1.7.9
146
-
147
- ## Publishing Packages
148
-
149
- After creating the GitHub releases, you may want to publish packages to NPM and GitHub Packages.
150
-
151
- ### Check if Already Published
152
-
153
- ```bash
154
- # Check NPM
155
- npm view @alteriom/painlessmesh versions
156
-
157
- # Check if 1.7.8 and 1.7.9 are listed
158
- ```
159
-
160
- ### Publish if Missing
161
-
162
- If versions are not published:
163
-
164
- ```bash
165
- # Option 1: Trigger manual publish workflow
166
- gh workflow run manual-publish.yml --repo Alteriom/painlessMesh
167
-
168
- # Option 2: Manual NPM publish (requires NPM token)
169
- npm publish --access public
170
- ```
171
-
172
- ## Why This Happened
173
-
174
- The releases were likely missed because:
175
-
176
- 1. **Commits didn't trigger release workflow** - The release workflow triggers on:
177
- - Commits to `main` branch
178
- - Changes to version files OR commit message starting with `release:`
179
- - If neither condition was met, no release was created
180
-
181
- 2. **Version was bumped without triggering release** - The version files were updated but:
182
- - Commit message didn't start with `release:`
183
- - Or changes were pushed to a different branch first
184
-
185
- 3. **Workflow may have failed** - Check GitHub Actions history for failed workflows
186
-
187
- ## Preventing Future Issues
188
-
189
- ### Ensure Releases Trigger Properly
190
-
191
- The release workflow (`.github/workflows/release.yml`) triggers when:
192
-
193
- 1. **Automatic trigger** (recommended):
194
- - Modify `library.properties`, `library.json`, or `package.json`
195
- - Commit changes to `main` branch
196
- - Workflow automatically detects version bump and creates release
197
-
198
- 2. **Manual trigger**:
199
- - Commit message starts with `release:`
200
- - Example: `git commit -m "release: v1.8.0 - New features"`
201
-
202
- ### Best Practices for Future Releases
203
-
204
- 1. **Use the bump-version script:**
205
- ```bash
206
- ./scripts/bump-version.sh patch # or minor, major
207
- ```
208
-
209
- 2. **Update CHANGELOG.md** with release notes
210
-
211
- 3. **Use release agent to validate:**
212
- ```bash
213
- ./scripts/release-agent.sh
214
- ```
215
-
216
- 4. **Commit with proper message:**
217
- ```bash
218
- git add library.properties library.json package.json CHANGELOG.md
219
- git commit -m "release: v1.8.0 - Brief description"
220
- git push origin main
221
- ```
222
-
223
- 5. **Verify workflow runs:**
224
- - Go to: https://github.com/Alteriom/painlessMesh/actions
225
- - Watch the "Automated Release" workflow
226
- - Confirm it completes successfully
227
-
228
- 6. **Check release was created:**
229
- ```bash
230
- gh release list --repo Alteriom/painlessMesh
231
- ```
232
-
233
- ### Monitoring Release Success
234
-
235
- After pushing a release commit, verify:
236
-
237
- - ✅ GitHub Actions workflow runs successfully
238
- - ✅ Git tag is created and pushed
239
- - ✅ GitHub release is created with notes
240
- - ✅ NPM package is published
241
- - ✅ GitHub Packages is updated
242
- - ✅ Wiki is synchronized (if enabled)
243
-
244
- View the workflow run:
245
- ```bash
246
- gh run list --workflow=release.yml --repo Alteriom/painlessMesh
247
- ```
248
-
249
- ## Troubleshooting
250
-
251
- ### "Tag already exists" Error
252
-
253
- If tags exist but releases don't:
254
- ```bash
255
- # Delete existing tags (careful!)
256
- git tag -d v1.7.8
257
- git push origin :refs/tags/v1.7.8
258
-
259
- # Then recreate using the script
260
- ./scripts/create-missing-releases.sh
261
- ```
262
-
263
- ### "Permission denied" Error
264
-
265
- You need write access to the repository:
266
- - Verify you're authenticated: `gh auth status`
267
- - Check your permissions on the repository
268
- - Contact repository owner for access
269
-
270
- ### Script Fails
271
-
272
- If the automated script fails:
273
- 1. Check error messages
274
- 2. Verify GitHub CLI is installed: `gh --version`
275
- 3. Verify you're authenticated: `gh auth login`
276
- 4. Try manual process (Option 2 above)
277
-
278
- ### Release Notes Are Empty
279
-
280
- If release notes extraction fails:
281
- 1. Verify CHANGELOG.md format matches expected pattern
282
- 2. Check that version sections exist: `## [1.7.8]` and `## [1.7.9]`
283
- 3. Manually copy content from CHANGELOG.md
284
-
285
- ## Additional Resources
286
-
287
- - **Release Guide**: See `RELEASE_GUIDE.md` for complete release process
288
- - **GitHub Releases**: https://github.com/Alteriom/painlessMesh/releases
289
- - **GitHub CLI Docs**: https://cli.github.com/manual/
290
- - **Release Workflow**: `.github/workflows/release.yml`
291
-
292
- ## Summary
293
-
294
- **To create missing releases:**
295
-
296
- ```bash
297
- # Quick method (automated)
298
- ./scripts/create-missing-releases.sh
299
-
300
- # Verify
301
- gh release list --repo Alteriom/painlessMesh
302
-
303
- # Publish packages if needed
304
- gh workflow run manual-publish.yml --repo Alteriom/painlessMesh
305
- ```
306
-
307
- **To prevent future issues:**
308
-
309
- ```bash
310
- # Always use this workflow for releases:
311
- ./scripts/bump-version.sh patch
312
- # Update CHANGELOG.md
313
- ./scripts/release-agent.sh # Validate
314
- git add . && git commit -m "release: vX.Y.Z - Description"
315
- git push origin main
316
- # Watch GitHub Actions to confirm success
317
- ```
318
-
319
- ---
320
-
321
- **Questions?** Open an issue with the `ci/cd` label.
@@ -1,176 +0,0 @@
1
- # painlessMesh Documentation - Docusaurus Migration
2
-
3
- ## Overview
4
-
5
- This document outlines the migration from the current custom documentation approach to **Docusaurus 3** for better user experience and maintainability.
6
-
7
- ## Current Issues
8
-
9
- ### Broken Links Found
10
- - `docs/tutorials/custom-packages.md` - Missing
11
- - `docs/tutorials/sensor-networks.md` - Missing
12
- - `docs/advanced/performance.md` - Missing
13
- - `docs/architecture/routing.md` - Missing
14
-
15
- ### Problems with Current Approach
16
- 1. **Raw Markdown** - No processing, links break in GitHub Pages
17
- 2. **Manual HTML generation** - Basic and unmaintainable
18
- 3. **Doxygen isolation** - Separate from user documentation
19
- 4. **No link validation** - Broken links undetected
20
- 5. **No search functionality** - Poor discoverability
21
- 6. **Poor mobile experience** - Not responsive
22
-
23
- ## Proposed Solution: Docusaurus 3
24
-
25
- ### Why Docusaurus?
26
- - ✅ **Modern React-based** - Fast, responsive, beautiful
27
- - ✅ **Built-in search** - Algolia integration
28
- - ✅ **API docs integration** - Seamless with Doxygen
29
- - ✅ **Link validation** - Automatic broken link detection
30
- - ✅ **Versioning support** - Multiple library versions
31
- - ✅ **GitHub Pages deployment** - Automated CI/CD
32
- - ✅ **SEO optimized** - Better search engine ranking
33
-
34
- ### Implementation Plan
35
-
36
- #### Phase 1: Setup Docusaurus
37
- ```bash
38
- # Initialize Docusaurus
39
- npx create-docusaurus@latest website classic
40
-
41
- # Configure for painlessMesh
42
- cd website
43
- npm install --save @docusaurus/plugin-client-redirects
44
- npm install --save @docusaurus/theme-mermaid
45
- ```
46
-
47
- #### Phase 2: Content Migration
48
- 1. **Migrate existing docs** to `docs/` folder
49
- 2. **Create missing pages** identified in review
50
- 3. **Fix all broken links**
51
- 4. **Integrate Doxygen** output
52
- 5. **Add interactive examples**
53
-
54
- #### Phase 3: Enhanced Features
55
- 1. **Search integration** with Algolia
56
- 2. **API documentation** with auto-generated content
57
- 3. **Interactive code examples**
58
- 4. **Version management** for releases
59
- 5. **Analytics integration**
60
-
61
- ## File Structure (Proposed)
62
-
63
- ```
64
- website/
65
- ├── docs/ # Main documentation
66
- │ ├── getting-started/
67
- │ │ ├── installation.md
68
- │ │ ├── quickstart.md
69
- │ │ └── first-mesh.md
70
- │ ├── api/
71
- │ │ ├── core-api.md
72
- │ │ └── alteriom-packages.md
73
- │ ├── tutorials/
74
- │ │ ├── basic-examples.md
75
- │ │ ├── custom-packages.md # NEW - Currently missing
76
- │ │ └── sensor-networks.md # NEW - Currently missing
77
- │ ├── architecture/
78
- │ │ ├── mesh-architecture.md
79
- │ │ ├── plugin-system.md
80
- │ │ └── routing.md # NEW - Currently missing
81
- │ ├── advanced/
82
- │ │ └── performance.md # NEW - Currently missing
83
- │ └── troubleshooting/
84
- │ ├── faq.md
85
- │ └── common-issues.md
86
- ├── src/
87
- │ ├── components/ # React components
88
- │ └── pages/ # Custom pages
89
- ├── static/ # Static assets
90
- ├── docusaurus.config.js # Main configuration
91
- └── sidebars.js # Navigation structure
92
- ```
93
-
94
- ## Benefits
95
-
96
- ### For Users
97
- - 🚀 **Faster navigation** - Single-page app performance
98
- - 🔍 **Powerful search** - Find anything instantly
99
- - 📱 **Mobile-friendly** - Responsive design
100
- - 🎯 **Better organization** - Clear navigation
101
- - 💡 **Interactive examples** - Live code demos
102
-
103
- ### For Maintainers
104
- - 🔗 **Link validation** - Automatic broken link detection
105
- - 📝 **Easy content management** - Simple Markdown workflow
106
- - 🚀 **Automated deployment** - GitHub Actions integration
107
- - 📊 **Analytics** - Usage insights
108
- - 🔄 **Version control** - Git-based workflow
109
-
110
- ## Migration Timeline
111
-
112
- ### Week 1: Setup & Configuration
113
- - [ ] Initialize Docusaurus project
114
- - [ ] Configure for painlessMesh branding
115
- - [ ] Set up build pipeline
116
-
117
- ### Week 2: Content Migration
118
- - [ ] Migrate existing documentation
119
- - [ ] Create missing pages
120
- - [ ] Fix all broken links
121
- - [ ] Integrate Doxygen output
122
-
123
- ### Week 3: Enhancement & Testing
124
- - [ ] Add search functionality
125
- - [ ] Create interactive examples
126
- - [ ] Mobile testing
127
- - [ ] Performance optimization
128
-
129
- ### Week 4: Deployment & Cleanup
130
- - [ ] Deploy to GitHub Pages
131
- - [ ] Update all repository links
132
- - [ ] Archive old documentation
133
- - [ ] Team training
134
-
135
- ## Implementation Commands
136
-
137
- ```bash
138
- # 1. Create Docusaurus site
139
- npx create-docusaurus@latest docs-website classic
140
- cd docs-website
141
-
142
- # 2. Install additional plugins
143
- npm install --save @docusaurus/plugin-client-redirects
144
- npm install --save @docusaurus/theme-mermaid
145
- npm install --save @docusaurus/plugin-google-analytics
146
-
147
- # 3. Configure build for GitHub Pages
148
- npm run build
149
-
150
- # 4. Deploy
151
- npm run deploy
152
- ```
153
-
154
- ## Cost-Benefit Analysis
155
-
156
- ### Current Approach Costs
157
- - ❌ **Developer time** - Manual HTML maintenance
158
- - ❌ **User frustration** - Broken links, poor UX
159
- - ❌ **SEO penalty** - Poor search ranking
160
- - ❌ **Mobile users** - Bad mobile experience
161
-
162
- ### Docusaurus Benefits
163
- - ✅ **Time savings** - Automated builds
164
- - ✅ **Better UX** - Professional documentation
165
- - ✅ **SEO boost** - Optimized for search engines
166
- - ✅ **Future-proof** - Modern, maintained framework
167
-
168
- ## Recommendation
169
-
170
- **Immediate Action**: Implement Docusaurus 3 migration
171
-
172
- **Priority**: High - Current documentation has critical usability issues
173
-
174
- **Timeline**: 2-4 weeks for full migration
175
-
176
- **ROI**: High - Significantly better user experience with minimal ongoing maintenance
@@ -1,152 +0,0 @@
1
- # FAQ: Version Numbers in Header Files
2
-
3
- ## ❓ Question: Does the version in `painlessMesh.h` mean the file hasn't been altered since that version?
4
-
5
- ### Short Answer
6
-
7
- **No.** The version comment in header files indicates the library version when the documentation was last reviewed, not when the file was last modified.
8
-
9
- ### Detailed Explanation
10
-
11
- When you see this in `painlessMesh.h`:
12
-
13
- ```cpp
14
- /**
15
- * @file painlessMesh.h
16
- * @version 1.8.7
17
- * @date 2025-11-12
18
- */
19
- ```
20
-
21
- This means:
22
- - ✅ The library version is 1.8.7
23
- - ✅ The header documentation was reviewed as of version 1.8.7
24
- - ❌ It does NOT mean the file hasn't changed since 1.8.7
25
-
26
- ### Why This Can Be Confusing
27
-
28
- During active development, code files may be modified in multiple releases, but documentation comments might not be updated every time. This led to the situation where:
29
-
30
- - `library.properties` showed version 1.8.6
31
- - `library.json` showed version 1.8.6
32
- - `package.json` showed version 1.8.6
33
- - But `painlessMesh.h` header comment still showed 1.8.4
34
-
35
- This created confusion about whether the file had been modified in versions 1.8.5 and 1.8.6.
36
-
37
- ### How to Find When a File Was Last Modified
38
-
39
- Use Git to see the actual modification history:
40
-
41
- ```bash
42
- # See all commits that modified a file
43
- git log --oneline -- src/painlessMesh.h
44
-
45
- # See when a file was last modified
46
- git log -1 --format="%ai %an" -- src/painlessMesh.h
47
-
48
- # See detailed changes to a file
49
- git log -p -- src/painlessMesh.h
50
- ```
51
-
52
- ### Where to Find the Official Library Version
53
-
54
- The official library version is always defined in these three files (and they must match):
55
-
56
- 1. **`library.properties`** - Arduino Library Manager
57
- ```properties
58
- version=1.8.7
59
- ```
60
-
61
- 2. **`library.json`** - PlatformIO Registry
62
- ```json
63
- "version": "1.8.7"
64
- ```
65
-
66
- 3. **`package.json`** - NPM Package
67
- ```json
68
- "version": "1.8.7"
69
- ```
70
-
71
- ### Best Practice Going Forward
72
-
73
- As of version 1.8.7, we've established a best practice:
74
-
75
- 1. **Update header version comments during releases** to keep them synchronized with the library version
76
- 2. **Refer to VERSION_MANAGEMENT.md** for complete versioning guidelines
77
- 3. **Use Git for file history** to track actual modifications
78
- 4. **Check library.properties** for the official version number
79
-
80
- ### Complete Version Management Documentation
81
-
82
- For comprehensive information about version management in this library, see:
83
-
84
- **📖 [VERSION_MANAGEMENT.md](VERSION_MANAGEMENT.md)**
85
-
86
- This document covers:
87
- - Official version file locations
88
- - Header comment meanings and purpose
89
- - How to track file modifications
90
- - Version update workflow
91
- - Best practices for contributors
92
-
93
- ## Related Questions
94
-
95
- ### Q: Why were the header versions out of sync?
96
-
97
- **A:** During rapid development cycles, header documentation comments were not updated every release. We've now established a process to keep them synchronized.
98
-
99
- ### Q: Will this happen again?
100
-
101
- **A:** We've updated the release process (see RELEASE_GUIDE.md) to include header version updates as a standard step, and created comprehensive documentation to prevent future confusion.
102
-
103
- ### Q: What about other version numbers I see in the code?
104
-
105
- **A:** If you see version numbers in implementation files (`.cpp`, `.hpp`), those should generally be removed. Version information should only be in:
106
- - Official version files (library.properties, library.json, package.json)
107
- - Header documentation comments (as library version references)
108
- - CHANGELOG.md (for release history)
109
-
110
- ### Q: How do I know if my library is up to date?
111
-
112
- **A:** Check your installed version against the latest release:
113
-
114
- **Arduino IDE:**
115
- ```
116
- Sketch → Include Library → Manage Libraries → Search "AlteriomPainlessMesh"
117
- ```
118
-
119
- **PlatformIO:**
120
- ```bash
121
- pio pkg show alteriom/AlteriomPainlessMesh
122
- ```
123
-
124
- **NPM:**
125
- ```bash
126
- npm view @alteriom/painlessmesh version
127
- ```
128
-
129
- **GitHub:**
130
- Visit https://github.com/Alteriom/painlessMesh/releases
131
-
132
- ## Summary
133
-
134
- | File Location | Purpose | Meaning |
135
- |---------------|---------|---------|
136
- | `library.properties` | Official version | **Source of truth** for library version |
137
- | `library.json` | Official version | **Source of truth** for library version |
138
- | `package.json` | Official version | **Source of truth** for library version |
139
- | Header comments (`@version`) | Documentation | Library version when docs were reviewed |
140
- | Git history (`git log`) | File tracking | **Actual modification history** |
141
- | `CHANGELOG.md` | Release history | Human-readable version changes |
142
-
143
- **Remember:** Always check `library.properties` for the official library version, and use `git log` to see actual file modification history.
144
-
145
- ---
146
-
147
- **See Also:**
148
- - [VERSION_MANAGEMENT.md](VERSION_MANAGEMENT.md) - Complete version management guide
149
- - [RELEASE_GUIDE.md](../RELEASE_GUIDE.md) - Release process documentation
150
- - [CHANGELOG.md](../CHANGELOG.md) - Release history
151
-
152
- **Last Updated:** November 12, 2025