@alteriom/painlessmesh 1.8.2 → 1.8.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +32 -0
- package/README.md +62 -11
- package/RELEASE_GUIDE.md +57 -16
- package/docs/ARDUINO_LIBRARY_MANAGER_SUBMISSION.md +331 -0
- package/docs/features/DIAGNOSTICS_API.md +534 -0
- package/docs/getting-started/arduino-manual-install.md +313 -0
- package/docs/implementation/BRIDGE_ARCHITECTURE_IMPLEMENTATION.md +340 -0
- package/docs/implementation/BRIDGE_HEALTH_MONITORING_IMPLEMENTATION.md +213 -0
- package/docs/implementation/BRIDGE_STATUS_FEATURE.md +635 -0
- package/docs/implementation/DIAGNOSTICS_API_IMPLEMENTATION.md +232 -0
- package/docs/implementation/IMPLEMENTATION_COMPLETE.md +228 -0
- package/docs/implementation/IMPLEMENTATION_NTP_TIME_SYNC.md +325 -0
- package/docs/implementation/IMPLEMENTATION_SUMMARY.md +316 -0
- package/docs/implementation/MESSAGE_QUEUE_IMPLEMENTATION.md +405 -0
- package/docs/implementation/MULTI_BRIDGE_IMPLEMENTATION.md +520 -0
- package/docs/implementation/NTP_TIME_SYNC_FEATURE.md +392 -0
- package/docs/internal/CUSTOM_AGENT_ANALYSIS.md +391 -0
- package/docs/internal/ISSUE_65_VERIFICATION.md +947 -0
- package/docs/internal/ISSUE_66_CLOSURE.md +249 -0
- package/docs/internal/ISSUE_66_STATUS.md +316 -0
- package/docs/internal/PR_SUMMARY.md +315 -0
- package/docs/internal/REVIEW_SUMMARY.md +332 -0
- package/docs/releases/PUBLISH_v1.8.0_INSTRUCTIONS.md +163 -0
- package/docs/releases/QUICK_START_RELEASES.md +113 -0
- package/docs/releases/RELEASE_CHECKLIST_v1.8.0.md +331 -0
- package/docs/releases/RELEASE_CHECKLIST_v1.8.2.md +309 -0
- package/docs/releases/RELEASE_NOTES_v1.8.0.md +685 -0
- package/docs/releases/RELEASE_NOTES_v1.8.1.md +221 -0
- package/docs/releases/RELEASE_NOTES_v1.8.2.md +421 -0
- package/docs/releases/RELEASE_NOTES_v1.8.3.md +292 -0
- package/docs/troubleshooting/ARDUINO_IDE_VERSION_FIX_SUMMARY.md +229 -0
- package/docs/troubleshooting/ARDUINO_LIBRARY_NAME_FIX.md +197 -0
- package/docs/troubleshooting/NPM_PUBLISHING_ISSUE_SUMMARY.md +110 -0
- package/docs/troubleshooting/station-reconnection-issues.md +172 -0
- package/examples/priority/README.md +274 -0
- package/examples/priority/priority_basic_example.ino +115 -0
- package/examples/priority/priority_with_queue.ino +249 -0
- package/examples/routing_demo/README.md +172 -0
- package/examples/routing_demo/routing_demo.ino +102 -0
- package/library.json +1 -1
- package/library.properties +3 -3
- package/package.json +1 -1
- package/src/arduino/wifi.hpp +49 -16
- package/src/painlessMesh.h +15 -0
- package/src/painlessMeshSTA.cpp +7 -1
- package/src/painlessmesh/buffer.hpp +218 -37
- package/src/painlessmesh/connection.hpp +21 -1
- package/src/painlessmesh/mesh.hpp +253 -19
- package/src/painlessmesh/router.hpp +31 -0
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
# Publishing painlessMesh v1.8.0 to NPM and PlatformIO
|
|
2
|
+
|
|
3
|
+
## Background
|
|
4
|
+
|
|
5
|
+
The GitHub release for v1.8.0 was successfully created on November 9, 2025, but the automated publishing to NPM and PlatformIO did not complete due to a workflow error ("Cannot upload assets to an immutable release").
|
|
6
|
+
|
|
7
|
+
## Current Status
|
|
8
|
+
|
|
9
|
+
- ✅ **GitHub Release v1.8.0**: Published successfully
|
|
10
|
+
- ❌ **NPM Package**: Currently at version 1.7.9 (needs update to 1.8.0)
|
|
11
|
+
- ❌ **PlatformIO Library**: Currently at version 1.7.9 (needs update to 1.8.0)
|
|
12
|
+
|
|
13
|
+
## Manual Publishing Instructions
|
|
14
|
+
|
|
15
|
+
### Step 1: Publish to NPM
|
|
16
|
+
|
|
17
|
+
1. Navigate to the [Manual Package Publishing workflow](https://github.com/Alteriom/painlessMesh/actions/workflows/manual-publish.yml)
|
|
18
|
+
2. Click the **"Run workflow"** button (top right)
|
|
19
|
+
3. Configure the workflow:
|
|
20
|
+
- **Branch**: Select `main`
|
|
21
|
+
- **Publish to NPM Registry**: ✅ Check this box
|
|
22
|
+
- **Publish to GitHub Packages**: (Optional - check if needed)
|
|
23
|
+
4. Click **"Run workflow"**
|
|
24
|
+
5. Monitor the workflow execution at https://github.com/Alteriom/painlessMesh/actions
|
|
25
|
+
6. Verify success (all jobs should show green checkmarks)
|
|
26
|
+
|
|
27
|
+
**Prerequisites:**
|
|
28
|
+
- The `NPM_TOKEN` secret must be configured in repository settings
|
|
29
|
+
- The token must have publishing permissions for `@alteriom/painlessmesh`
|
|
30
|
+
|
|
31
|
+
### Step 2: Publish to PlatformIO
|
|
32
|
+
|
|
33
|
+
1. Navigate to the [PlatformIO Library Publishing workflow](https://github.com/Alteriom/painlessMesh/actions/workflows/platformio-publish.yml)
|
|
34
|
+
2. Click the **"Run workflow"** button (top right)
|
|
35
|
+
3. Configure the workflow:
|
|
36
|
+
- **Branch**: Select `main`
|
|
37
|
+
- **Version to publish**: Enter `1.8.0`
|
|
38
|
+
- **Force publish**: Leave unchecked (unless the version already exists)
|
|
39
|
+
4. Click **"Run workflow"**
|
|
40
|
+
5. Monitor the workflow execution at https://github.com/Alteriom/painlessMesh/actions
|
|
41
|
+
6. Verify success (all jobs should show green checkmarks)
|
|
42
|
+
|
|
43
|
+
**Prerequisites:**
|
|
44
|
+
- The `PLATFORMIO_AUTH_TOKEN` secret must be configured in repository settings
|
|
45
|
+
- The token must have publishing permissions for the library
|
|
46
|
+
|
|
47
|
+
## Verification
|
|
48
|
+
|
|
49
|
+
### Verify NPM Publication
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
# Check the latest version
|
|
53
|
+
npm view @alteriom/painlessmesh version
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
Expected output: `1.8.0`
|
|
57
|
+
|
|
58
|
+
Or visit: https://www.npmjs.com/package/@alteriom/painlessmesh
|
|
59
|
+
|
|
60
|
+
### Verify PlatformIO Publication
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
# Install PlatformIO if not already installed
|
|
64
|
+
pip install platformio
|
|
65
|
+
|
|
66
|
+
# Search for the library
|
|
67
|
+
pio pkg search AlteriomPainlessMesh
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
The output should show version `1.8.0` for `alteriom/AlteriomPainlessMesh`
|
|
71
|
+
|
|
72
|
+
Or visit: https://registry.platformio.org/libraries/alteriom/AlteriomPainlessMesh
|
|
73
|
+
|
|
74
|
+
## Alternative Method: Re-trigger Release
|
|
75
|
+
|
|
76
|
+
If manual workflows encounter issues:
|
|
77
|
+
|
|
78
|
+
1. **Delete the GitHub release** (but keep the tag):
|
|
79
|
+
- Go to https://github.com/Alteriom/painlessMesh/releases/tag/v1.8.0
|
|
80
|
+
- Click "Delete release" (this keeps the git tag)
|
|
81
|
+
|
|
82
|
+
2. **Recreate the release**:
|
|
83
|
+
- Go to https://github.com/Alteriom/painlessMesh/releases/new
|
|
84
|
+
- Select tag: `v1.8.0`
|
|
85
|
+
- Fill in the release notes (copy from previous release)
|
|
86
|
+
- Click "Publish release"
|
|
87
|
+
|
|
88
|
+
3. **Monitor the automated workflows**:
|
|
89
|
+
- The release event should trigger both npm and PlatformIO publishing workflows
|
|
90
|
+
- Check https://github.com/Alteriom/painlessMesh/actions
|
|
91
|
+
|
|
92
|
+
**Note:** This approach will send duplicate notifications to watchers and should only be used if manual triggering fails.
|
|
93
|
+
|
|
94
|
+
## Root Cause & Future Prevention
|
|
95
|
+
|
|
96
|
+
### What Went Wrong
|
|
97
|
+
|
|
98
|
+
The automated release workflow (`release.yml`) failed at the "Upload library package" step with this error:
|
|
99
|
+
|
|
100
|
+
```
|
|
101
|
+
HTTP 422: Cannot upload assets to an immutable release.
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
This occurs because:
|
|
105
|
+
1. The release was created and published
|
|
106
|
+
2. GitHub marked it as "immutable"
|
|
107
|
+
3. The workflow tried to upload additional assets after publication
|
|
108
|
+
4. GitHub rejected the upload
|
|
109
|
+
5. The workflow failed, preventing npm and PlatformIO jobs from running
|
|
110
|
+
|
|
111
|
+
### Recommended Fix
|
|
112
|
+
|
|
113
|
+
Update `.github/workflows/release.yml` to:
|
|
114
|
+
|
|
115
|
+
1. **Check if release already has assets** before uploading:
|
|
116
|
+
```yaml
|
|
117
|
+
- name: Check if assets already uploaded
|
|
118
|
+
id: check_assets
|
|
119
|
+
run: |
|
|
120
|
+
ASSETS=$(gh release view "v${{ steps.version.outputs.version }}" --json assets --jq '.assets | length')
|
|
121
|
+
echo "asset_count=$ASSETS" >> $GITHUB_OUTPUT
|
|
122
|
+
|
|
123
|
+
- name: Upload library package
|
|
124
|
+
if: steps.check_assets.outputs.asset_count == '0'
|
|
125
|
+
run: |
|
|
126
|
+
gh release upload "v${{ steps.version.outputs.version }}" \
|
|
127
|
+
"./painlessMesh-v${{ steps.version.outputs.version }}.zip" \
|
|
128
|
+
--repo ${{ github.repository }}
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
2. **Or make asset upload non-blocking**:
|
|
132
|
+
```yaml
|
|
133
|
+
- name: Upload library package
|
|
134
|
+
continue-on-error: true # Don't fail workflow if upload fails
|
|
135
|
+
run: |
|
|
136
|
+
gh release upload "v${{ steps.version.outputs.version }}" \
|
|
137
|
+
"./painlessMesh-v${{ steps.version.outputs.version }}.zip" \
|
|
138
|
+
--repo ${{ github.repository }}
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
## Related Files
|
|
142
|
+
|
|
143
|
+
- `.github/workflows/manual-publish.yml` - Manual NPM/GitHub Packages publishing workflow
|
|
144
|
+
- `.github/workflows/platformio-publish.yml` - PlatformIO library publishing workflow
|
|
145
|
+
- `.github/workflows/release.yml` - Automated release workflow (contains the bug)
|
|
146
|
+
- `library.json` - PlatformIO library metadata (version: 1.8.0)
|
|
147
|
+
- `package.json` - NPM package metadata (version: 1.8.0)
|
|
148
|
+
- `library.properties` - Arduino library metadata (version: 1.8.0)
|
|
149
|
+
|
|
150
|
+
## Completion Checklist
|
|
151
|
+
|
|
152
|
+
Once publishing is complete:
|
|
153
|
+
|
|
154
|
+
- [ ] NPM package at v1.8.0 verified
|
|
155
|
+
- [ ] PlatformIO library at v1.8.0 verified
|
|
156
|
+
- [ ] Update this document with completion timestamp
|
|
157
|
+
- [ ] (Optional) Fix release.yml workflow to prevent future occurrences
|
|
158
|
+
- [ ] (Optional) Delete this instruction file once no longer needed
|
|
159
|
+
|
|
160
|
+
---
|
|
161
|
+
|
|
162
|
+
**Last Updated**: 2025-11-10
|
|
163
|
+
**Status**: In Progress - Awaiting manual workflow triggers
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
# Quick Start: Create Missing Releases
|
|
2
|
+
|
|
3
|
+
## TL;DR - Create v1.7.8 and v1.7.9 GitHub Releases
|
|
4
|
+
|
|
5
|
+
### Prerequisites
|
|
6
|
+
```bash
|
|
7
|
+
# Install GitHub CLI if not already installed
|
|
8
|
+
# macOS: brew install gh
|
|
9
|
+
# Linux: https://github.com/cli/cli/blob/trunk/docs/install_linux.md
|
|
10
|
+
# Windows: https://github.com/cli/cli#windows
|
|
11
|
+
|
|
12
|
+
# Authenticate (if not already)
|
|
13
|
+
gh auth login
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
### Execute (One Command)
|
|
17
|
+
```bash
|
|
18
|
+
./scripts/create-missing-releases.sh
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
That's it! The script will:
|
|
22
|
+
- ✅ Extract release notes from CHANGELOG.md
|
|
23
|
+
- ✅ Create tags v1.7.8 and v1.7.9
|
|
24
|
+
- ✅ Push tags to GitHub
|
|
25
|
+
- ✅ Create GitHub releases with proper notes
|
|
26
|
+
|
|
27
|
+
### Verify
|
|
28
|
+
```bash
|
|
29
|
+
# Check releases were created
|
|
30
|
+
gh release list --repo Alteriom/painlessMesh
|
|
31
|
+
|
|
32
|
+
# Should show:
|
|
33
|
+
# v1.7.9 painlessMesh v1.7.9 Latest
|
|
34
|
+
# v1.7.8 painlessMesh v1.7.8
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
### Optional: Publish Packages
|
|
38
|
+
```bash
|
|
39
|
+
# If NPM/GitHub Packages weren't published automatically
|
|
40
|
+
gh workflow run manual-publish.yml --repo Alteriom/painlessMesh
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
---
|
|
44
|
+
|
|
45
|
+
## Alternative Methods
|
|
46
|
+
|
|
47
|
+
### Manual via GitHub CLI
|
|
48
|
+
|
|
49
|
+
```bash
|
|
50
|
+
# v1.7.8
|
|
51
|
+
awk '/^## \[1\.7\.8\]/ {flag=1; next} /^## \[/ {flag=0} flag' CHANGELOG.md > /tmp/notes_1.7.8.txt
|
|
52
|
+
git tag -a v1.7.8 -m "painlessMesh v1.7.8" && git push origin v1.7.8
|
|
53
|
+
gh release create v1.7.8 --title "painlessMesh v1.7.8" --notes-file /tmp/notes_1.7.8.txt
|
|
54
|
+
|
|
55
|
+
# v1.7.9
|
|
56
|
+
awk '/^## \[1\.7\.9\]/ {flag=1; next} /^## \[/ {flag=0} flag' CHANGELOG.md > /tmp/notes_1.7.9.txt
|
|
57
|
+
git tag -a v1.7.9 -m "painlessMesh v1.7.9" && git push origin v1.7.9
|
|
58
|
+
gh release create v1.7.9 --title "painlessMesh v1.7.9" --notes-file /tmp/notes_1.7.9.txt
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
### Manual via Web UI
|
|
62
|
+
|
|
63
|
+
1. Go to: https://github.com/Alteriom/painlessMesh/releases/new
|
|
64
|
+
2. **For v1.7.8:**
|
|
65
|
+
- Tag: `v1.7.8`
|
|
66
|
+
- Title: `painlessMesh v1.7.8`
|
|
67
|
+
- Description: Copy from CHANGELOG.md section `[1.7.8]` (lines 58-135)
|
|
68
|
+
- Click "Publish release"
|
|
69
|
+
3. **For v1.7.9:**
|
|
70
|
+
- Tag: `v1.7.9`
|
|
71
|
+
- Title: `painlessMesh v1.7.9`
|
|
72
|
+
- Description: Copy from CHANGELOG.md section `[1.7.9]` (lines 22-56)
|
|
73
|
+
- Click "Publish release"
|
|
74
|
+
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
## Future Releases (Prevention)
|
|
78
|
+
|
|
79
|
+
Always use this workflow to ensure releases are created properly:
|
|
80
|
+
|
|
81
|
+
```bash
|
|
82
|
+
# 1. Update version
|
|
83
|
+
./scripts/bump-version.sh patch # or minor, major
|
|
84
|
+
|
|
85
|
+
# 2. Update CHANGELOG.md with your changes
|
|
86
|
+
|
|
87
|
+
# 3. Validate (optional but recommended)
|
|
88
|
+
./scripts/release-agent.sh
|
|
89
|
+
|
|
90
|
+
# 4. Commit and push (triggers automatic release)
|
|
91
|
+
git add library.properties library.json package.json CHANGELOG.md
|
|
92
|
+
git commit -m "release: vX.Y.Z - Brief description"
|
|
93
|
+
git push origin main
|
|
94
|
+
|
|
95
|
+
# 5. Watch GitHub Actions to confirm
|
|
96
|
+
# https://github.com/Alteriom/painlessMesh/actions/workflows/release.yml
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
The workflow automatically creates:
|
|
100
|
+
- ✅ Git tag
|
|
101
|
+
- ✅ GitHub release
|
|
102
|
+
- ✅ NPM package
|
|
103
|
+
- ✅ GitHub Packages
|
|
104
|
+
- ✅ PlatformIO Library
|
|
105
|
+
- ✅ Wiki updates
|
|
106
|
+
|
|
107
|
+
---
|
|
108
|
+
|
|
109
|
+
## Need More Details?
|
|
110
|
+
|
|
111
|
+
- **Complete Documentation**: `docs/CREATE_MISSING_RELEASES.md`
|
|
112
|
+
- **Release Guide**: `RELEASE_GUIDE.md`
|
|
113
|
+
- **Scripts Reference**: `scripts/README.md`
|
|
@@ -0,0 +1,331 @@
|
|
|
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)
|