@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.
- package/BRIDGE_TO_INTERNET.md +229 -0
- package/CHANGELOG.md +89 -1
- package/CONTRIBUTING.md +79 -0
- package/README.md +70 -143
- package/docs/README.md +1 -0
- package/docs/api/shared-gateway.md +1207 -0
- package/docs/troubleshooting/common-issues.md +28 -0
- package/docs/troubleshooting/faq.md +113 -12
- package/examples/basic/test/simulator/CMakeLists.txt +40 -0
- package/examples/basic/test/simulator/README.md +149 -0
- package/examples/basic/test/simulator/firmware/basic_firmware.hpp +117 -0
- package/examples/basic/test/simulator/scenarios/basic_mesh_test.yaml +81 -0
- package/examples/bridge/bridge.ino +17 -4
- package/examples/bridge_failover/README.md +81 -0
- package/examples/bridge_failover/bridge_failover.ino +51 -6
- package/examples/sharedGateway/README.md +235 -0
- package/examples/{meshCommandNode → sharedGateway}/platformio.ini +3 -2
- package/examples/sharedGateway/sharedGateway.ino +303 -0
- package/library.json +3 -22
- package/library.properties +1 -1
- package/package.json +3 -3
- package/src/arduino/wifi.hpp +380 -13
- package/src/painlessmesh/gateway.hpp +2120 -0
- package/src/painlessmesh/mesh.hpp +1034 -6
- package/src/painlessmesh/message_tracker.hpp +311 -0
- package/src/painlessmesh/protocol.hpp +6 -0
- package/DOCUMENTATION_INDEX.md +0 -146
- package/docs/API_DESIGN_GUIDELINES.md +0 -414
- package/docs/ARDUINO_LIBRARY_MANAGER_SUBMISSION.md +0 -331
- package/docs/BOOLEAN_NAMING_CONVENTION.md +0 -235
- package/docs/BRIDGE_FAILOVER.md +0 -512
- package/docs/BRIDGE_HEALTH_MONITORING.md +0 -293
- package/docs/CHANNEL_SYNCHRONIZATION.md +0 -209
- package/docs/CREATE_MISSING_RELEASES.md +0 -321
- package/docs/DOCUMENTATION_MIGRATION_PLAN.md +0 -176
- package/docs/FAQ_VERSION_NUMBERS.md +0 -152
- package/docs/IMPLEMENTATION_PLAN_MESH_TOPOLOGY.md +0 -1062
- package/docs/MESH_TOPOLOGY_GUIDE.md +0 -992
- package/docs/MESH_TOPOLOGY_PROGRESS.md +0 -422
- package/docs/MQTT_BRIDGE_COMMANDS.md +0 -894
- package/docs/MQTT_BRIDGE_IMPLEMENTATION_SUMMARY.md +0 -324
- package/docs/MQTT_COMMAND_SCHEMA_PROPOSAL.md +0 -576
- package/docs/MQTT_SCHEMA_COMPLIANCE.md +0 -340
- package/docs/MQTT_SCHEMA_PROPOSALS.md +0 -446
- package/docs/MQTT_SCHEMA_REVIEW.md +0 -690
- package/docs/OTA_COMMANDS_REFERENCE.md +0 -554
- package/docs/PHASE1_GUIDE.md +0 -349
- package/docs/PHASE2_GUIDE.md +0 -543
- package/docs/QUICK_REFERENCE_VERSIONING.md +0 -127
- package/docs/RELEASE_AGENT_SUMMARY.md +0 -386
- package/docs/SCHEMA_VALIDATION_CHECKLIST.md +0 -222
- package/docs/VERSION_MANAGEMENT.md +0 -213
- package/docs/archive/DOCUSAURUS_DEPLOYMENT.md +0 -166
- package/docs/archive/FEATURE_PROPOSALS.md +0 -337
- package/docs/archive/LIBRARY_JSON_FIX.md +0 -98
- package/docs/archive/LIBRARY_STRUCTURE_FIX.md +0 -215
- package/docs/archive/PHASE1_IMPLEMENTATION.md +0 -325
- package/docs/archive/PHASE2_IMPLEMENTATION.md +0 -567
- package/docs/archive/RELEASE_SUMMARY.md +0 -173
- package/docs/archive/SCONS_BUILD_FIX.md +0 -313
- package/docs/archive/TRIGGER_RELEASE.md +0 -280
- package/docs/archive/VECTOR_INCLUDE_FIX.md +0 -129
- package/docs/archive/ota-and-status-enhancements.md +0 -911
- package/docs/archive/ota-status-architecture-diagrams.md +0 -658
- package/docs/archive/ota-status-quick-reference.md +0 -284
- package/docs/design/.gitkeep +0 -1
- package/docs/design/STATION_CREDENTIALS_DESIGN.md +0 -182
- package/docs/development/ARDUINO_COMPLIANCE_SUMMARY.md +0 -71
- package/docs/development/CODE_REFACTORING_RECOMMENDATIONS.md +0 -1011
- package/docs/development/DOCKER_TESTING.md +0 -196
- package/docs/development/PLATFORMIO_USAGE.md +0 -180
- package/docs/development/TESTING_SUMMARY.md +0 -126
- package/docs/development/contributing.md +0 -301
- package/docs/development/documentation.md +0 -583
- package/docs/features/DIAGNOSTICS_API.md +0 -534
- package/docs/implementation/BRIDGE_ARCHITECTURE_IMPLEMENTATION.md +0 -340
- package/docs/implementation/BRIDGE_HEALTH_MONITORING_IMPLEMENTATION.md +0 -213
- package/docs/implementation/BRIDGE_STATUS_FEATURE.md +0 -635
- package/docs/implementation/DIAGNOSTICS_API_IMPLEMENTATION.md +0 -232
- package/docs/implementation/IMPLEMENTATION_COMPLETE.md +0 -228
- package/docs/implementation/IMPLEMENTATION_NTP_TIME_SYNC.md +0 -325
- package/docs/implementation/IMPLEMENTATION_SUMMARY.md +0 -316
- package/docs/implementation/MESSAGE_QUEUE_IMPLEMENTATION.md +0 -405
- package/docs/implementation/MULTI_BRIDGE_IMPLEMENTATION.md +0 -520
- package/docs/implementation/NTP_TIME_SYNC_FEATURE.md +0 -392
- package/docs/improvements/FUTURE_PROPOSALS.md +0 -1016
- package/docs/improvements/IMPLEMENTATION_HISTORY.md +0 -1091
- package/docs/improvements/OTA_STATUS_ENHANCEMENTS.md +0 -709
- package/docs/improvements/README.md +0 -212
- package/docs/internal/CUSTOM_AGENT_ANALYSIS.md +0 -391
- package/docs/internal/ISSUE_65_VERIFICATION.md +0 -947
- package/docs/internal/ISSUE_66_CLOSURE.md +0 -249
- package/docs/internal/ISSUE_66_STATUS.md +0 -316
- package/docs/internal/PR_SUMMARY.md +0 -315
- package/docs/internal/REVIEW_SUMMARY.md +0 -332
- package/docs/multi-bridge-setup.md +0 -1025
- package/docs/platformio-publishing.md +0 -255
- package/docs/platformio-setup-summary.md +0 -121
- package/docs/releases/ANNOUNCEMENT_v1.8.6.md +0 -63
- package/docs/releases/ANNOUNCEMENT_v1.8.7.md +0 -113
- package/docs/releases/BRIDGE_STATUS_SELF_REGISTRATION_FIX.md +0 -221
- package/docs/releases/FEATURE_HISTORY.md +0 -543
- package/docs/releases/GITHUB_RELEASE_v1.8.6.md +0 -71
- package/docs/releases/GITHUB_RELEASE_v1.8.7.md +0 -90
- package/docs/releases/PATCH_v1.7.2.md +0 -262
- package/docs/releases/PATCH_v1.7.3.md +0 -262
- package/docs/releases/PATCH_v1.7.4.md +0 -219
- package/docs/releases/PHASE1_SUMMARY.md +0 -246
- package/docs/releases/PHASE2_SUMMARY.md +0 -499
- package/docs/releases/PUBLISH_v1.8.0_INSTRUCTIONS.md +0 -163
- package/docs/releases/QUICK_START_RELEASES.md +0 -113
- package/docs/releases/RELEASE_CHECKLIST_1.8.10.md +0 -331
- package/docs/releases/RELEASE_CHECKLIST_1.8.9.md +0 -207
- package/docs/releases/RELEASE_CHECKLIST_v1.7.4.md +0 -253
- package/docs/releases/RELEASE_CHECKLIST_v1.7.5.md +0 -315
- package/docs/releases/RELEASE_CHECKLIST_v1.7.6.md +0 -389
- package/docs/releases/RELEASE_CHECKLIST_v1.8.0.md +0 -331
- package/docs/releases/RELEASE_CHECKLIST_v1.8.2.md +0 -309
- package/docs/releases/RELEASE_NOTES_1.7.0.md +0 -539
- package/docs/releases/RELEASE_NOTES_1.8.10.md +0 -239
- package/docs/releases/RELEASE_NOTES_1.8.9.md +0 -213
- package/docs/releases/RELEASE_NOTES_v1.8.0.md +0 -685
- package/docs/releases/RELEASE_NOTES_v1.8.1.md +0 -221
- package/docs/releases/RELEASE_NOTES_v1.8.2.md +0 -421
- package/docs/releases/RELEASE_NOTES_v1.8.3.md +0 -292
- package/docs/releases/RELEASE_NOTES_v1.8.4.md +0 -277
- package/docs/releases/RELEASE_NOTES_v1.8.6.md +0 -205
- package/docs/releases/RELEASE_NOTES_v1.8.7.md +0 -184
- package/docs/releases/RELEASE_PLAN_v1.7.6.md +0 -816
- package/docs/releases/RELEASE_SUMMARY_1.8.10.md +0 -193
- package/docs/releases/RELEASE_SUMMARY_v1.7.4.md +0 -276
- package/docs/releases/RELEASE_SUMMARY_v1.7.5.md +0 -322
- package/docs/releases/RELEASE_SUMMARY_v1.7.6.md +0 -436
- package/docs/releases/RELEASE_SUMMARY_v1.7.7.md +0 -391
- package/docs/releases/RELEASE_SUMMARY_v1.7.8.md +0 -523
- package/docs/releases/RELEASE_SUMMARY_v1.7.9.md +0 -542
- package/docs/troubleshooting/ARDUINO_IDE_VERSION_FIX_SUMMARY.md +0 -229
- package/docs/troubleshooting/ARDUINO_LIBRARY_NAME_FIX.md +0 -197
- package/docs/troubleshooting/CRASH_QUICK_REF.md +0 -93
- package/docs/troubleshooting/ESP32_C6_COMPATIBILITY.md +0 -157
- package/docs/troubleshooting/FREERTOS_ASSERTION_FAILURE.md +0 -288
- package/docs/troubleshooting/FREERTOS_FIX_IMPLEMENTATION.md +0 -267
- package/docs/troubleshooting/NPM_PUBLISHING_ISSUE_SUMMARY.md +0 -110
- package/docs/troubleshooting/PAINLESSMESH_V1.7.4_COMPILATION_ISSUES.md +0 -547
- package/docs/troubleshooting/QUICK_FIX_FREERTOS.md +0 -164
- package/docs/troubleshooting/SENSOR_NODE_CONNECTION_CRASH.md +0 -264
- package/docs/troubleshooting/station-reconnection-issues.md +0 -172
- package/docs/v1.7.7_MQTT_IMPROVEMENTS.md +0 -794
- package/docs/wiki/API-Reference.md +0 -246
- package/docs/wiki/Complete-Documentation.md +0 -123
- package/examples/alteriomImproved/alteriom_sensor_package.hpp +0 -224
- package/examples/alteriomImproved/improved_sensor_node.ino +0 -248
- package/examples/alteriomImproved/platformio.ini +0 -32
- package/examples/alteriomMetricsHealth/alteriom_sensor_package.hpp +0 -796
- package/examples/alteriomMetricsHealth/metrics_health_node.ino +0 -429
- package/examples/alteriomMetricsHealth/platformio.ini +0 -26
- package/examples/alteriomPhase1/alteriom_sensor_package.hpp +0 -224
- package/examples/alteriomPhase1/phase1_features.ino +0 -242
- package/examples/alteriomPhase1/platformio.ini +0 -26
- package/examples/alteriomPhase2/alteriom_sensor_package.hpp +0 -224
- package/examples/alteriomPhase2/phase2_features.ino +0 -186
- package/examples/alteriomPhase2/platformio.ini +0 -26
- package/examples/alteriomSensorNode/alteriom_sensor_node.ino +0 -186
- package/examples/alteriomSensorNode/alteriom_sensor_package.hpp +0 -1227
- package/examples/alteriomSensorNode/platformio.ini +0 -26
- package/examples/bridge/alteriom_sensor_package.hpp +0 -1170
- package/examples/bridge/bridge_health_monitoring_example.ino +0 -188
- package/examples/bridge/enhanced_mqtt_bridge.hpp +0 -610
- package/examples/bridge/enhanced_mqtt_bridge_example.ino +0 -226
- package/examples/bridge/mesh_event_publisher.hpp +0 -253
- package/examples/bridge/mesh_topology_reporter.hpp +0 -303
- package/examples/bridge/mqtt_command_bridge.hpp +0 -459
- package/examples/bridge/mqtt_status_bridge.hpp +0 -519
- package/examples/bridgeAwareSensorNode/alteriom_sensor_package.hpp +0 -1227
- package/examples/bridgeAwareSensorNode/bridgeAwareSensorNode.ino +0 -342
- package/examples/bridgeAwareSensorNode/platformio.ini +0 -26
- package/examples/diagnosticsExample/diagnosticsExample.ino +0 -171
- package/examples/diagnosticsExample/platformio.ini +0 -26
- package/examples/echoNode/echoNode.ino +0 -33
- package/examples/echoNode/platformio.ini +0 -26
- package/examples/meshCommandNode/alteriom_sensor_package.hpp +0 -235
- package/examples/meshCommandNode/meshCommandNode.ino +0 -265
- package/examples/mqttCommandBridge/alteriom_sensor_package.hpp +0 -235
- package/examples/mqttCommandBridge/mesh_event_publisher.hpp +0 -253
- package/examples/mqttCommandBridge/mesh_topology_reporter.hpp +0 -303
- package/examples/mqttCommandBridge/mqttCommandBridge.ino +0 -254
- package/examples/mqttCommandBridge/mqtt_command_bridge.hpp +0 -462
- package/examples/mqttCommandBridge/platformio.ini +0 -27
- package/examples/mqttStatusBridge/mqttStatusBridge.ino +0 -218
- package/examples/mqttStatusBridge/mqtt_status_bridge.hpp +0 -522
- package/examples/mqttStatusBridge/platformio.ini +0 -27
- package/examples/mqttTopologyTest/README.md +0 -467
- package/examples/mqttTopologyTest/mqttTopologyTest.ino +0 -754
- package/examples/mqttTopologyTest/platformio.ini +0 -27
- package/examples/multi_bridge/README.md +0 -346
- package/examples/multi_bridge/primary_bridge.ino +0 -96
- package/examples/multi_bridge/regular_node.ino +0 -141
- package/examples/multi_bridge/secondary_bridge.ino +0 -111
- package/examples/ntpTimeSyncBridge/alteriom_sensor_package.hpp +0 -1383
- package/examples/ntpTimeSyncBridge/ntpTimeSyncBridge.ino +0 -86
- package/examples/ntpTimeSyncNode/alteriom_sensor_package.hpp +0 -1383
- package/examples/ntpTimeSyncNode/ntpTimeSyncNode.ino +0 -109
- package/examples/queued_alarms/README.md +0 -390
- package/examples/queued_alarms/queued_alarms.ino +0 -265
- package/examples/routing_demo/README.md +0 -172
- package/examples/routing_demo/routing_demo.ino +0 -102
- package/examples/rtcIntegration/README.md +0 -294
- package/examples/rtcIntegration/rtcIntegration.ino +0 -210
|
@@ -1,255 +0,0 @@
|
|
|
1
|
-
# PlatformIO Library Publishing Guide
|
|
2
|
-
|
|
3
|
-
This guide explains how to publish the AlteriomPainlessMesh library to the PlatformIO Library Registry.
|
|
4
|
-
|
|
5
|
-
## Prerequisites
|
|
6
|
-
|
|
7
|
-
### 1. PlatformIO Account Setup
|
|
8
|
-
|
|
9
|
-
1. Visit [https://platformio.org/](https://platformio.org/) and create an account
|
|
10
|
-
2. Verify your email address
|
|
11
|
-
3. Log in to your PlatformIO account
|
|
12
|
-
|
|
13
|
-
### 2. Authentication Token
|
|
14
|
-
|
|
15
|
-
1. Go to [https://platformio.org/account/token](https://platformio.org/account/token)
|
|
16
|
-
2. Generate a new Personal Access Token
|
|
17
|
-
3. Copy the token and store it securely
|
|
18
|
-
4. Set up the token in your local environment:
|
|
19
|
-
|
|
20
|
-
```powershell
|
|
21
|
-
# Set environment variable (Windows PowerShell)
|
|
22
|
-
$env:PLATFORMIO_AUTH_TOKEN="YOUR_TOKEN_HERE"
|
|
23
|
-
|
|
24
|
-
# Or for Command Prompt
|
|
25
|
-
set PLATFORMIO_AUTH_TOKEN=YOUR_TOKEN_HERE
|
|
26
|
-
|
|
27
|
-
# Or use login command
|
|
28
|
-
pio account login
|
|
29
|
-
```
|
|
30
|
-
|
|
31
|
-
## Library Configuration
|
|
32
|
-
4. Set up the token in your local environment:
|
|
33
|
-
```powershell
|
|
34
|
-
pio account token --set YOUR_TOKEN_HERE
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
## Library Configuration
|
|
38
|
-
|
|
39
|
-
### Required Files
|
|
40
|
-
Ensure these files are properly configured:
|
|
41
|
-
|
|
42
|
-
#### 1. `library.json` (Primary PlatformIO Configuration)
|
|
43
|
-
```json
|
|
44
|
-
{
|
|
45
|
-
"name": "AlteriomPainlessMesh",
|
|
46
|
-
"keywords": "ethernet, m2m, iot, mesh, alteriom, sensor, esp32, esp8266, json, time-sync, wireless, communication",
|
|
47
|
-
"description": "painlessMesh library with Alteriom extensions for sensor networks",
|
|
48
|
-
"repository": {
|
|
49
|
-
"type": "git",
|
|
50
|
-
"url": "https://github.com/Alteriom/painlessMesh"
|
|
51
|
-
},
|
|
52
|
-
"version": "1.6.1",
|
|
53
|
-
"frameworks": ["arduino"],
|
|
54
|
-
"platforms": ["espressif8266", "espressif32"],
|
|
55
|
-
"dependencies": [...],
|
|
56
|
-
"authors": [...],
|
|
57
|
-
"license": "LGPL-3.0",
|
|
58
|
-
"homepage": "https://github.com/Alteriom/painlessMesh",
|
|
59
|
-
"headers": "painlessMesh.h",
|
|
60
|
-
"examples": ["examples/basic/basic.ino", "examples/alteriom/alteriom_sensor_node.ino"],
|
|
61
|
-
"export": {
|
|
62
|
-
"include": "src"
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
```
|
|
66
|
-
|
|
67
|
-
#### 2. `library.properties` (Arduino Library Manager)
|
|
68
|
-
Should remain compatible for dual publishing:
|
|
69
|
-
```properties
|
|
70
|
-
name=AlteriomPainlessMesh
|
|
71
|
-
version=1.6.1
|
|
72
|
-
author=Coopdis,Scotty Franzyshen,Edwin van Leeuwen,Germán Martín,Maximilian Schwarz,Doanh Doanh,Alteriom
|
|
73
|
-
maintainer=Alteriom
|
|
74
|
-
sentence=A painless way to setup a mesh with ESP8266 and ESP32 devices with Alteriom extensions
|
|
75
|
-
paragraph=...
|
|
76
|
-
category=Communication
|
|
77
|
-
url=https://github.com/Alteriom/painlessMesh
|
|
78
|
-
architectures=esp8266,esp32
|
|
79
|
-
includes=AlteriomPainlessMesh.h
|
|
80
|
-
depends=ArduinoJson, TaskScheduler
|
|
81
|
-
```
|
|
82
|
-
|
|
83
|
-
## Publishing Process
|
|
84
|
-
|
|
85
|
-
### Method 1: Git Tag Publishing (Recommended)
|
|
86
|
-
|
|
87
|
-
This method automatically publishes when you create a Git tag:
|
|
88
|
-
|
|
89
|
-
1. **Ensure all files are committed and pushed:**
|
|
90
|
-
```powershell
|
|
91
|
-
git add .
|
|
92
|
-
git commit -m "Prepare v1.6.1 for PlatformIO Library Registry"
|
|
93
|
-
git push origin main
|
|
94
|
-
```
|
|
95
|
-
|
|
96
|
-
2. **Create and push a Git tag:**
|
|
97
|
-
```powershell
|
|
98
|
-
git tag v1.6.1
|
|
99
|
-
git push origin v1.6.1
|
|
100
|
-
```
|
|
101
|
-
|
|
102
|
-
3. **PlatformIO will automatically detect the new tag and import the library**
|
|
103
|
-
- Monitor at: [https://platformio.org/lib/show/LIBRARY_ID/AlteriomPainlessMesh](https://platformio.org/lib)
|
|
104
|
-
- It may take 5-15 minutes for the library to appear
|
|
105
|
-
|
|
106
|
-
### Method 2: Manual Package Upload
|
|
107
|
-
|
|
108
|
-
If automatic detection doesn't work:
|
|
109
|
-
|
|
110
|
-
1. **Create a tarball of your library:**
|
|
111
|
-
```powershell
|
|
112
|
-
# Create archive excluding unnecessary files
|
|
113
|
-
tar --exclude='.git' --exclude='test' --exclude='bin' --exclude='.vscode' --exclude='node_modules' -czf AlteriomPainlessMesh-1.6.1.tar.gz .
|
|
114
|
-
```
|
|
115
|
-
|
|
116
|
-
2. **Submit via PlatformIO Library Registry:**
|
|
117
|
-
- Visit [https://platformio.org/lib/register](https://platformio.org/lib/register)
|
|
118
|
-
- Upload the created tarball
|
|
119
|
-
- Fill in any additional metadata
|
|
120
|
-
|
|
121
|
-
### Method 3: Using PlatformIO CLI
|
|
122
|
-
|
|
123
|
-
```powershell
|
|
124
|
-
# Ensure you're authenticated
|
|
125
|
-
pio account token --set YOUR_TOKEN_HERE
|
|
126
|
-
|
|
127
|
-
# Publish the library
|
|
128
|
-
pio pkg publish .
|
|
129
|
-
```
|
|
130
|
-
|
|
131
|
-
## Verification
|
|
132
|
-
|
|
133
|
-
### 1. Check Library Status
|
|
134
|
-
```powershell
|
|
135
|
-
# Search for your published library
|
|
136
|
-
pio pkg search "AlteriomPainlessMesh"
|
|
137
|
-
|
|
138
|
-
# View detailed information
|
|
139
|
-
pio pkg show alteriom/AlteriomPainlessMesh
|
|
140
|
-
```
|
|
141
|
-
|
|
142
|
-
### 2. Test Installation
|
|
143
|
-
Create a test project to verify the library can be installed:
|
|
144
|
-
```powershell
|
|
145
|
-
mkdir test_project
|
|
146
|
-
cd test_project
|
|
147
|
-
pio project init --board esp32dev
|
|
148
|
-
|
|
149
|
-
# Add to platformio.ini:
|
|
150
|
-
# lib_deps = alteriom/AlteriomPainlessMesh@^1.6.1
|
|
151
|
-
|
|
152
|
-
pio pkg install
|
|
153
|
-
```
|
|
154
|
-
|
|
155
|
-
## Updating the Library
|
|
156
|
-
|
|
157
|
-
For future releases:
|
|
158
|
-
|
|
159
|
-
1. **Update version numbers:**
|
|
160
|
-
- `library.json` → `"version": "1.6.2"`
|
|
161
|
-
- `library.properties` → `version=1.6.2`
|
|
162
|
-
- `package.json` → `"version": "1.6.2"`
|
|
163
|
-
|
|
164
|
-
2. **Commit changes:**
|
|
165
|
-
```powershell
|
|
166
|
-
git add .
|
|
167
|
-
git commit -m "Bump version to 1.6.2"
|
|
168
|
-
git push origin main
|
|
169
|
-
```
|
|
170
|
-
|
|
171
|
-
3. **Create new tag:**
|
|
172
|
-
```powershell
|
|
173
|
-
git tag v1.6.2
|
|
174
|
-
git push origin v1.6.2
|
|
175
|
-
```
|
|
176
|
-
|
|
177
|
-
4. **Verify update appears in registry**
|
|
178
|
-
|
|
179
|
-
## Troubleshooting
|
|
180
|
-
|
|
181
|
-
### Common Issues
|
|
182
|
-
|
|
183
|
-
1. **Library name conflicts:**
|
|
184
|
-
- Use a unique name like "AlteriomPainlessMesh" instead of "painlessMesh"
|
|
185
|
-
- Check existing libraries: `pio pkg search "painless"`
|
|
186
|
-
|
|
187
|
-
2. **Authentication errors:**
|
|
188
|
-
- Verify token: `pio account show`
|
|
189
|
-
- Regenerate token if needed
|
|
190
|
-
|
|
191
|
-
3. **Dependency resolution errors:**
|
|
192
|
-
- Ensure all dependencies exist in PlatformIO Registry
|
|
193
|
-
- Check version constraints (use `^` for flexible versions)
|
|
194
|
-
|
|
195
|
-
4. **Git repository requirements:**
|
|
196
|
-
- Repository must be publicly accessible
|
|
197
|
-
- Tags must follow semantic versioning (v1.6.1)
|
|
198
|
-
- library.json must be in repository root
|
|
199
|
-
|
|
200
|
-
### Useful Commands
|
|
201
|
-
|
|
202
|
-
```powershell
|
|
203
|
-
# Check authentication status
|
|
204
|
-
pio account show
|
|
205
|
-
|
|
206
|
-
# List all your published packages
|
|
207
|
-
pio pkg search --owner="YOUR_USERNAME"
|
|
208
|
-
|
|
209
|
-
# View package statistics
|
|
210
|
-
pio pkg stats
|
|
211
|
-
|
|
212
|
-
# Update package metadata
|
|
213
|
-
pio pkg update
|
|
214
|
-
```
|
|
215
|
-
|
|
216
|
-
## Best Practices
|
|
217
|
-
|
|
218
|
-
1. **Semantic Versioning:**
|
|
219
|
-
- Use format: MAJOR.MINOR.PATCH (e.g., 1.6.1)
|
|
220
|
-
- Increment MAJOR for breaking changes
|
|
221
|
-
- Increment MINOR for new features
|
|
222
|
-
- Increment PATCH for bug fixes
|
|
223
|
-
|
|
224
|
-
2. **Documentation:**
|
|
225
|
-
- Include comprehensive README.md
|
|
226
|
-
- Provide working examples in examples/ directory
|
|
227
|
-
- Document all public APIs
|
|
228
|
-
|
|
229
|
-
3. **Testing:**
|
|
230
|
-
- Test library installation in clean environments
|
|
231
|
-
- Verify examples compile successfully
|
|
232
|
-
- Test on both ESP8266 and ESP32 platforms
|
|
233
|
-
|
|
234
|
-
4. **Dependency Management:**
|
|
235
|
-
- Specify minimum required versions
|
|
236
|
-
- Use version ranges (^1.6.0) for flexibility
|
|
237
|
-
- Platform-specific dependencies when needed
|
|
238
|
-
|
|
239
|
-
## PlatformIO Library Registry URLs
|
|
240
|
-
|
|
241
|
-
- **Library Registry:** [https://platformio.org/lib](https://platformio.org/lib)
|
|
242
|
-
- **Account Management:** [https://platformio.org/account](https://platformio.org/account)
|
|
243
|
-
- **Submit Library:** [https://platformio.org/lib/register](https://platformio.org/lib/register)
|
|
244
|
-
- **Documentation:** [https://docs.platformio.org/en/latest/librarymanager/index.html](https://docs.platformio.org/en/latest/librarymanager/index.html)
|
|
245
|
-
|
|
246
|
-
---
|
|
247
|
-
|
|
248
|
-
**Note:** After successful publication, users will be able to install your library using:
|
|
249
|
-
```ini
|
|
250
|
-
[env:esp32dev]
|
|
251
|
-
platform = espressif32
|
|
252
|
-
board = esp32dev
|
|
253
|
-
framework = arduino
|
|
254
|
-
lib_deps = alteriom/AlteriomPainlessMesh@^1.6.1
|
|
255
|
-
```
|
|
@@ -1,121 +0,0 @@
|
|
|
1
|
-
# PlatformIO Publishing Setup Summary
|
|
2
|
-
|
|
3
|
-
## ✅ What's Been Implemented
|
|
4
|
-
|
|
5
|
-
### 1. Dedicated PlatformIO Publishing Workflow
|
|
6
|
-
- **File**: `.github/workflows/platformio-publish.yml`
|
|
7
|
-
- **Triggers**: Automatic on releases, manual dispatch for testing
|
|
8
|
-
- **Features**: Complete validation, authentication, and publishing pipeline
|
|
9
|
-
|
|
10
|
-
### 2. Library Configuration Enhanced
|
|
11
|
-
- **Updated `library.json`**: PlatformIO-specific optimizations
|
|
12
|
-
- **Name**: Changed to "AlteriomPainlessMesh" for uniqueness
|
|
13
|
-
- **Dependencies**: All verified available in PlatformIO Registry
|
|
14
|
-
- **Metadata**: Enhanced with license, examples, export configuration
|
|
15
|
-
|
|
16
|
-
### 3. Release Process Integration
|
|
17
|
-
- **Main release workflow** now references PlatformIO publishing
|
|
18
|
-
- **Documentation updated** in `RELEASE_GUIDE.md`
|
|
19
|
-
- **Comprehensive instructions** in `docs/platformio-publishing.md`
|
|
20
|
-
|
|
21
|
-
## 🚀 How It Works
|
|
22
|
-
|
|
23
|
-
### Automatic Publishing
|
|
24
|
-
1. **Release Created**: GitHub release triggers PlatformIO workflow
|
|
25
|
-
2. **Validation**: Library.json format and dependencies checked
|
|
26
|
-
3. **Authentication**: Uses `PLATFORMIO_AUTH_TOKEN` secret
|
|
27
|
-
4. **Publication**: Direct publishing via PlatformIO CLI
|
|
28
|
-
5. **Verification**: Registry confirmation and user notification
|
|
29
|
-
|
|
30
|
-
### Manual Publishing (Alternative)
|
|
31
|
-
1. Go to GitHub Actions → PlatformIO Library Publishing
|
|
32
|
-
2. Click "Run workflow"
|
|
33
|
-
3. Enter version number and optional force publish
|
|
34
|
-
4. Workflow handles the rest
|
|
35
|
-
|
|
36
|
-
## 🔧 Setup Required
|
|
37
|
-
|
|
38
|
-
### One-Time Setup: PlatformIO Account
|
|
39
|
-
|
|
40
|
-
1. **Create Account**: <https://platformio.org/account/register>
|
|
41
|
-
2. **Generate Token**: <https://platformio.org/account/token>
|
|
42
|
-
3. **Add to Secrets**: Repository Settings → Secrets → Actions
|
|
43
|
-
- Name: `PLATFORMIO_AUTH_TOKEN`
|
|
44
|
-
- Value: [your token from step 2]
|
|
45
|
-
|
|
46
|
-
**Local Testing (Optional):**
|
|
47
|
-
```powershell
|
|
48
|
-
# Method 1: Environment variable
|
|
49
|
-
$env:PLATFORMIO_AUTH_TOKEN="YOUR_TOKEN_HERE"
|
|
50
|
-
pio account show # Verify authentication
|
|
51
|
-
|
|
52
|
-
# Method 2: Interactive login (if token doesn't work)
|
|
53
|
-
pio account login
|
|
54
|
-
|
|
55
|
-
# Test publishing
|
|
56
|
-
pio pkg publish . --no-interactive
|
|
57
|
-
```
|
|
58
|
-
|
|
59
|
-
**Troubleshooting Authentication:**
|
|
60
|
-
```powershell
|
|
61
|
-
# If authentication fails:
|
|
62
|
-
1. Go to https://platformio.org/account/token
|
|
63
|
-
2. Copy your existing token OR generate a new one
|
|
64
|
-
3. Set it as environment variable: $env:PLATFORMIO_AUTH_TOKEN="token"
|
|
65
|
-
4. Test: pio account show
|
|
66
|
-
```
|
|
67
|
-
|
|
68
|
-
### Current Status for v1.6.1
|
|
69
|
-
Since v1.6.1 is already released and published to other platforms:
|
|
70
|
-
|
|
71
|
-
#### Option A: Test with Manual Workflow
|
|
72
|
-
```
|
|
73
|
-
1. Go to: https://github.com/Alteriom/painlessMesh/actions/workflows/platformio-publish.yml
|
|
74
|
-
2. Click "Run workflow"
|
|
75
|
-
3. Set version: 1.6.1
|
|
76
|
-
4. Enable force_publish: true
|
|
77
|
-
5. Click "Run workflow"
|
|
78
|
-
```
|
|
79
|
-
|
|
80
|
-
#### Option B: Wait for Next Release
|
|
81
|
-
The PlatformIO workflow will automatically trigger on your next release (v1.6.2, etc.)
|
|
82
|
-
|
|
83
|
-
## 📋 Future Releases
|
|
84
|
-
|
|
85
|
-
For all future releases, PlatformIO publishing is now **fully automated**:
|
|
86
|
-
|
|
87
|
-
```bash
|
|
88
|
-
# Standard release process remains the same
|
|
89
|
-
./scripts/bump-version.sh patch
|
|
90
|
-
# Edit CHANGELOG.md
|
|
91
|
-
git add . && git commit -m "release: v1.6.2" && git push
|
|
92
|
-
```
|
|
93
|
-
|
|
94
|
-
This will now automatically:
|
|
95
|
-
- ✅ Create GitHub release
|
|
96
|
-
- ✅ Publish to NPM
|
|
97
|
-
- ✅ **Publish to PlatformIO Registry**
|
|
98
|
-
- ✅ Update GitHub Wiki
|
|
99
|
-
- ✅ Prepare Arduino Library Manager package
|
|
100
|
-
|
|
101
|
-
## 🔍 Verification
|
|
102
|
-
|
|
103
|
-
After publishing, verify at:
|
|
104
|
-
- **Registry**: <https://registry.platformio.org/libraries>
|
|
105
|
-
- **Search**: Search for "AlteriomPainlessMesh"
|
|
106
|
-
- **Installation**: `pio pkg install --library "alteriom/AlteriomPainlessMesh@^1.6.1"`
|
|
107
|
-
|
|
108
|
-
## 📚 Documentation
|
|
109
|
-
|
|
110
|
-
Complete documentation available:
|
|
111
|
-
- **Publishing Guide**: `docs/platformio-publishing.md`
|
|
112
|
-
- **Release Process**: `RELEASE_GUIDE.md` (updated)
|
|
113
|
-
- **Workflow Details**: `.github/workflows/platformio-publish.yml`
|
|
114
|
-
|
|
115
|
-
## 🎯 Next Steps
|
|
116
|
-
|
|
117
|
-
1. **Add PlatformIO Token**: Set up the `PLATFORMIO_AUTH_TOKEN` secret
|
|
118
|
-
2. **Test Workflow**: Run manual workflow for v1.6.1 (optional)
|
|
119
|
-
3. **Next Release**: PlatformIO publishing will be automatic
|
|
120
|
-
|
|
121
|
-
The PlatformIO publishing is now fully integrated into your release pipeline! 🎉
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
# 🎉 painlessMesh v1.8.6 Released!
|
|
2
|
-
|
|
3
|
-
We're excited to announce **painlessMesh v1.8.6** - a patch release that fixes a critical bridge failover issue.
|
|
4
|
-
|
|
5
|
-
## 🔧 What's Fixed
|
|
6
|
-
|
|
7
|
-
**Bridge Auto-Election** - Meshes now automatically elect a bridge when all nodes start without a designated initial bridge. Previously, the network would remain bridgeless indefinitely in this scenario.
|
|
8
|
-
|
|
9
|
-
### The Problem
|
|
10
|
-
```
|
|
11
|
-
--- Bridge Status ---
|
|
12
|
-
I am bridge: NO
|
|
13
|
-
Internet available: NO
|
|
14
|
-
Known bridges: 0
|
|
15
|
-
No primary bridge available! ❌
|
|
16
|
-
```
|
|
17
|
-
|
|
18
|
-
### The Solution
|
|
19
|
-
After a 60-second startup grace period, the mesh automatically detects the absence of a bridge and triggers an election. The node with the best WiFi signal (RSSI) becomes the bridge. ✅
|
|
20
|
-
|
|
21
|
-
## 🚀 Key Features
|
|
22
|
-
|
|
23
|
-
- **Automatic Recovery** - No manual intervention needed
|
|
24
|
-
- **Smart Timing** - 60s grace period for network stabilization
|
|
25
|
-
- **Randomized Delays** - Prevents election conflicts
|
|
26
|
-
- **Fully Backward Compatible** - Existing setups work unchanged
|
|
27
|
-
|
|
28
|
-
## 📦 Installation
|
|
29
|
-
|
|
30
|
-
```bash
|
|
31
|
-
# PlatformIO
|
|
32
|
-
pio pkg update alteriom/AlteriomPainlessMesh@^1.8.6
|
|
33
|
-
|
|
34
|
-
# NPM
|
|
35
|
-
npm update @alteriom/painlessmesh
|
|
36
|
-
|
|
37
|
-
# Arduino Library Manager
|
|
38
|
-
Search for "AlteriomPainlessMesh" and update
|
|
39
|
-
```
|
|
40
|
-
|
|
41
|
-
## 🎯 Perfect For
|
|
42
|
-
|
|
43
|
-
✅ Dynamic mesh networks with changing topologies
|
|
44
|
-
✅ IoT deployments requiring automatic bridge recovery
|
|
45
|
-
✅ Development environments without pre-configured bridges
|
|
46
|
-
✅ Fault-tolerant systems needing zero-touch setup
|
|
47
|
-
|
|
48
|
-
## 🙏 Thanks
|
|
49
|
-
|
|
50
|
-
Special thanks to **@woodlist** for reporting the issue and providing detailed logs!
|
|
51
|
-
|
|
52
|
-
## 📚 Learn More
|
|
53
|
-
|
|
54
|
-
- 📖 [Full Release Notes](https://github.com/Alteriom/painlessMesh/blob/main/docs/releases/RELEASE_NOTES_v1.8.6.md)
|
|
55
|
-
- 🔗 [GitHub Release](https://github.com/Alteriom/painlessMesh/releases/tag/v1.8.6)
|
|
56
|
-
- 📝 [Changelog](https://github.com/Alteriom/painlessMesh/blob/main/CHANGELOG.md)
|
|
57
|
-
- 💻 [Bridge Failover Example](https://github.com/Alteriom/painlessMesh/tree/main/examples/bridge_failover)
|
|
58
|
-
|
|
59
|
-
---
|
|
60
|
-
|
|
61
|
-
**Upgrade today and enjoy seamless bridge failover! 🎊**
|
|
62
|
-
|
|
63
|
-
#painlessMesh #ESP32 #ESP8266 #IoT #MeshNetwork #Arduino #Alteriom
|
|
@@ -1,113 +0,0 @@
|
|
|
1
|
-
# 🚀 AlteriomPainlessMesh v1.8.7 Released
|
|
2
|
-
|
|
3
|
-
**Date:** November 12, 2025
|
|
4
|
-
|
|
5
|
-
We're pleased to announce the release of **AlteriomPainlessMesh v1.8.7**, a patch release focused on bug fixes and documentation improvements.
|
|
6
|
-
|
|
7
|
-
## 🎯 What's New
|
|
8
|
-
|
|
9
|
-
### Bridge Internet Connectivity Detection Fixed
|
|
10
|
-
|
|
11
|
-
Bridge nodes now correctly detect and report internet connectivity status. The previous implementation only checked WiFi connection status, which led to incorrect reporting when bridges were connected to routers with internet access.
|
|
12
|
-
|
|
13
|
-
**Key Improvements:**
|
|
14
|
-
- ✅ Accurate internet status reporting for bridge nodes
|
|
15
|
-
- ✅ Proper gateway IP validation (not 0.0.0.0)
|
|
16
|
-
- ✅ Fixed false positives on regular nodes
|
|
17
|
-
- ✅ Better bridge failover logic
|
|
18
|
-
|
|
19
|
-
### Version Documentation Clarity
|
|
20
|
-
|
|
21
|
-
We've resolved confusion about version numbers in header files by creating comprehensive documentation and synchronizing all version references.
|
|
22
|
-
|
|
23
|
-
**What Changed:**
|
|
24
|
-
- ✅ All header file version comments now match library version
|
|
25
|
-
- ✅ New VERSION_MANAGEMENT.md document explains versioning
|
|
26
|
-
- ✅ Clear distinction between library version and file modification history
|
|
27
|
-
- ✅ Best practices for version management established
|
|
28
|
-
|
|
29
|
-
## 📚 New Documentation
|
|
30
|
-
|
|
31
|
-
### VERSION_MANAGEMENT.md
|
|
32
|
-
|
|
33
|
-
A comprehensive guide that answers:
|
|
34
|
-
- What do version numbers in header files mean?
|
|
35
|
-
- Where is the official library version defined?
|
|
36
|
-
- How to check if a file has been modified?
|
|
37
|
-
- Best practices for version comments
|
|
38
|
-
- Complete version update workflow
|
|
39
|
-
|
|
40
|
-
**Read it here:** [docs/VERSION_MANAGEMENT.md](https://github.com/Alteriom/painlessMesh/blob/main/docs/VERSION_MANAGEMENT.md)
|
|
41
|
-
|
|
42
|
-
## 🔧 For Developers
|
|
43
|
-
|
|
44
|
-
### Version Comment Best Practices
|
|
45
|
-
|
|
46
|
-
When releasing new versions, remember to update header file version comments:
|
|
47
|
-
|
|
48
|
-
```cpp
|
|
49
|
-
/**
|
|
50
|
-
* @file painlessMesh.h
|
|
51
|
-
* @version 1.8.7 // ← Keep this synchronized with library version
|
|
52
|
-
* @date 2025-11-12
|
|
53
|
-
*/
|
|
54
|
-
```
|
|
55
|
-
|
|
56
|
-
This helps maintain documentation consistency and prevents user confusion.
|
|
57
|
-
|
|
58
|
-
## 📦 How to Update
|
|
59
|
-
|
|
60
|
-
### Arduino Library Manager
|
|
61
|
-
```
|
|
62
|
-
Sketch → Include Library → Manage Libraries →
|
|
63
|
-
Search "AlteriomPainlessMesh" → Update to 1.8.7
|
|
64
|
-
```
|
|
65
|
-
|
|
66
|
-
### PlatformIO
|
|
67
|
-
```ini
|
|
68
|
-
[env:myenv]
|
|
69
|
-
lib_deps =
|
|
70
|
-
alteriom/AlteriomPainlessMesh@^1.8.7
|
|
71
|
-
```
|
|
72
|
-
|
|
73
|
-
### NPM
|
|
74
|
-
```bash
|
|
75
|
-
npm update @alteriom/painlessmesh
|
|
76
|
-
```
|
|
77
|
-
|
|
78
|
-
## ✅ Compatibility
|
|
79
|
-
|
|
80
|
-
This release is **fully backward compatible** with v1.8.6. No breaking changes.
|
|
81
|
-
|
|
82
|
-
- ✅ ESP32 (all variants)
|
|
83
|
-
- ✅ ESP8266 (all variants)
|
|
84
|
-
- ✅ Arduino Core 2.x and 3.x
|
|
85
|
-
- ✅ PlatformIO
|
|
86
|
-
|
|
87
|
-
## 🐛 Bug Reports
|
|
88
|
-
|
|
89
|
-
If you encounter any issues with this release, please:
|
|
90
|
-
|
|
91
|
-
1. Check the [VERSION_MANAGEMENT.md](https://github.com/Alteriom/painlessMesh/blob/main/docs/VERSION_MANAGEMENT.md) for version-related questions
|
|
92
|
-
2. Review the [CHANGELOG.md](https://github.com/Alteriom/painlessMesh/blob/main/CHANGELOG.md) for detailed changes
|
|
93
|
-
3. [Open an issue](https://github.com/Alteriom/painlessMesh/issues) with a detailed description
|
|
94
|
-
|
|
95
|
-
## 🙏 Thank You
|
|
96
|
-
|
|
97
|
-
Thanks to our users for reporting issues and helping improve the library!
|
|
98
|
-
|
|
99
|
-
Special thanks to the user who raised the question about version comments in `painlessMesh.h`, leading to better documentation clarity.
|
|
100
|
-
|
|
101
|
-
## 📖 Resources
|
|
102
|
-
|
|
103
|
-
- **Release Notes:** [RELEASE_NOTES_v1.8.7.md](RELEASE_NOTES_v1.8.7.md)
|
|
104
|
-
- **CHANGELOG:** [CHANGELOG.md](../../CHANGELOG.md)
|
|
105
|
-
- **Documentation:** https://alteriom.github.io/painlessMesh/
|
|
106
|
-
- **GitHub Repository:** https://github.com/Alteriom/painlessMesh
|
|
107
|
-
- **Issues:** https://github.com/Alteriom/painlessMesh/issues
|
|
108
|
-
|
|
109
|
-
---
|
|
110
|
-
|
|
111
|
-
**Happy Meshing!** 🌐
|
|
112
|
-
|
|
113
|
-
— The Alteriom Team
|