@alteriom/painlessmesh 1.6.1

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 (80) hide show
  1. package/CHANGELOG.md +144 -0
  2. package/LICENSE +674 -0
  3. package/README.md +434 -0
  4. package/RELEASE_GUIDE.md +419 -0
  5. package/docs/DOCUMENTATION_MIGRATION_PLAN.md +176 -0
  6. package/docs/README.md +71 -0
  7. package/docs/alteriom/overview.md +508 -0
  8. package/docs/api/core-api.md +607 -0
  9. package/docs/architecture/mesh-architecture.md +379 -0
  10. package/docs/architecture/plugin-system.md +517 -0
  11. package/docs/getting-started/first-mesh.md +410 -0
  12. package/docs/getting-started/installation.md +275 -0
  13. package/docs/getting-started/quickstart.md +158 -0
  14. package/docs/improvements/README.md +69 -0
  15. package/docs/troubleshooting/common-issues.md +521 -0
  16. package/docs/troubleshooting/faq.md +473 -0
  17. package/docs/tutorials/basic-examples.md +718 -0
  18. package/docs/wiki/API-Reference.md +246 -0
  19. package/docs/wiki/Complete-Documentation.md +123 -0
  20. package/examples/alteriom/README.md +82 -0
  21. package/examples/alteriom/alteriom.ino +186 -0
  22. package/examples/alteriom/alteriom_sensor_node.ino +184 -0
  23. package/examples/alteriom/alteriom_sensor_package.hpp +128 -0
  24. package/examples/alteriom/improved_sensor_node.ino +246 -0
  25. package/examples/alteriom/platformio.ini +25 -0
  26. package/examples/basic/basic.ino +66 -0
  27. package/examples/basic/platformio.ini +25 -0
  28. package/examples/bridge/bridge.ino +51 -0
  29. package/examples/bridge/platformio.ini +25 -0
  30. package/examples/echoNode/echoNode.ino +33 -0
  31. package/examples/echoNode/platformio.ini +25 -0
  32. package/examples/logClient/logClient.ino +109 -0
  33. package/examples/logClient/platformio.ini +25 -0
  34. package/examples/logServer/logServer.ino +81 -0
  35. package/examples/logServer/platformio.ini +25 -0
  36. package/examples/mqttBridge/mqttBridge.ino +118 -0
  37. package/examples/mqttBridge/platformio.ini +26 -0
  38. package/examples/namedMesh/namedMesh.ino +97 -0
  39. package/examples/namedMesh/platformio.ini +25 -0
  40. package/examples/otaReceiver/otaReceiver.ino +79 -0
  41. package/examples/otaReceiver/platformio.ini +25 -0
  42. package/examples/otaSender/nodemcu32s_connections.JPG +0 -0
  43. package/examples/otaSender/otaSender.ino +151 -0
  44. package/examples/otaSender/platformio.ini +25 -0
  45. package/examples/startHere/platformio.ini +25 -0
  46. package/examples/startHere/startHere.ino +159 -0
  47. package/examples/webServer/platformio.ini +27 -0
  48. package/examples/webServer/webServer.ino +89 -0
  49. package/keywords.txt +49 -0
  50. package/library.json +34 -0
  51. package/library.properties +11 -0
  52. package/package.json +78 -0
  53. package/src/AlteriomPainlessMesh.h +98 -0
  54. package/src/arduino/wifi.hpp +365 -0
  55. package/src/boost/asynctcp.hpp +279 -0
  56. package/src/painlessMesh.h +70 -0
  57. package/src/painlessMeshSTA.cpp +236 -0
  58. package/src/painlessMeshSTA.h +58 -0
  59. package/src/painlessTaskOptions.h +4 -0
  60. package/src/painlessmesh/base64.hpp +111 -0
  61. package/src/painlessmesh/buffer.hpp +229 -0
  62. package/src/painlessmesh/callback.hpp +91 -0
  63. package/src/painlessmesh/configuration.hpp +77 -0
  64. package/src/painlessmesh/connection.hpp +192 -0
  65. package/src/painlessmesh/layout.hpp +188 -0
  66. package/src/painlessmesh/logger.hpp +158 -0
  67. package/src/painlessmesh/memory.hpp +120 -0
  68. package/src/painlessmesh/mesh.hpp +560 -0
  69. package/src/painlessmesh/metrics.hpp +323 -0
  70. package/src/painlessmesh/ntp.hpp +263 -0
  71. package/src/painlessmesh/ota.hpp +553 -0
  72. package/src/painlessmesh/plugin.hpp +188 -0
  73. package/src/painlessmesh/protocol.hpp +813 -0
  74. package/src/painlessmesh/router.hpp +322 -0
  75. package/src/painlessmesh/tcp.hpp +71 -0
  76. package/src/painlessmesh/validation.hpp +239 -0
  77. package/src/plugin/performance.hpp +214 -0
  78. package/src/plugin/remote.hpp +64 -0
  79. package/src/scheduler.cpp +10 -0
  80. package/src/wifi.cpp +2 -0
package/CHANGELOG.md ADDED
@@ -0,0 +1,144 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+ ## [Unreleased]
9
+
10
+ ### Added
11
+
12
+ - TBD
13
+
14
+ ### Changed
15
+
16
+ - TBD
17
+
18
+ ### Fixed
19
+
20
+ - TBD
21
+
22
+ ## [1.6.1] - 2025-09-29
23
+
24
+ ### Added
25
+
26
+ - **Arduino Library Manager Support**: Updated library name to "Alteriom PainlessMesh" for better discoverability
27
+ - **NPM Package Publishing**: Complete NPM publication setup with dual registry support
28
+ - Public NPM registry: `@alteriom/painlessmesh`
29
+ - GitHub Packages registry: `@alteriom/painlessmesh` (scoped)
30
+ - Automated version consistency across library.properties, library.json, and package.json
31
+ - **GitHub Wiki Automation**: Automatic wiki synchronization on releases
32
+ - Home page generated from README.md
33
+ - API Reference with auto-generated documentation
34
+ - Examples page with links to repository examples
35
+ - Installation guide for multiple platforms
36
+ - **Enhanced Release Workflow**: Comprehensive publication automation
37
+ - NPM publishing to both public and GitHub Packages registries
38
+ - GitHub Wiki updates with structured documentation
39
+ - Arduino Library Manager submission instructions
40
+ - Release validation with multi-file version consistency
41
+ - **Arduino IDE Support**: Added keywords.txt for syntax highlighting
42
+ - **Distribution Documentation**: Complete guides for all publication channels
43
+ - RELEASE_SUMMARY.md template for release notes
44
+ - TRIGGER_RELEASE.md for step-by-step release instructions
45
+ - Enhanced RELEASE_GUIDE.md with comprehensive publication workflow
46
+ - **Version Management**: Enhanced bump-version script
47
+ - Updates all three version files simultaneously (library.properties, library.json, package.json)
48
+ - Comprehensive version consistency validation
49
+ - Clear instructions for NPM and GitHub Packages publication
50
+
51
+ ### Changed
52
+ - **Library Name**: Updated from "Painless Mesh" to "Alteriom PainlessMesh" for Arduino Library Manager
53
+ - **Release Process**: Streamlined to support multiple package managers
54
+ - Single commit with "release:" prefix triggers full publication pipeline
55
+ - Automated testing, building, and publishing across all channels
56
+ - Wiki documentation automatically synchronized
57
+ - **CI/CD Pipeline**: Enhanced with NPM publication capabilities
58
+ - Dual NPM registry publishing (public + GitHub Packages)
59
+ - Automated wiki updates with generated content
60
+ - Comprehensive pre-release validation
61
+ - **Documentation Structure**: Reorganized for multi-channel distribution
62
+ - Clear separation between automatic and manual processes
63
+ - Platform-specific installation instructions
64
+ - Troubleshooting guides for each distribution channel
65
+
66
+ ### Fixed
67
+ - **NPM Publishing**: Fixed registry configuration issues that prevented NPM publication
68
+ - **GitHub Pages**: Improved workflow to handle cases where Pages is not configured
69
+ - **PlatformIO Build**: Fixed include paths in improved_sensor_node.ino example
70
+ - **Package Configuration**: Consistent version management across all package files
71
+ - **Release Documentation**: Complete coverage of all distribution channels
72
+ - **Version Validation**: Prevents releases with inconsistent version numbers
73
+
74
+ ## [1.6.0] - 2025-09-29
75
+
76
+ ### Added
77
+ - Enhanced Alteriom-specific package documentation and examples
78
+ - Updated repository URLs and metadata for Alteriom fork
79
+ - Improved release process documentation
80
+ - Fixed deprecated GitHub Actions in release workflow
81
+ - Added concurrency controls to prevent duplicate workflow runs
82
+ - Comprehensive Alteriom package documentation and quick start guide
83
+
84
+ ### Changed
85
+ - Migrated from deprecated `actions/create-release@v1` to GitHub CLI for releases
86
+ - Updated library.properties and library.json to reflect Alteriom ownership
87
+ - Enhanced package descriptions to highlight Alteriom extensions
88
+
89
+ ### Fixed
90
+ - Fixed deprecated GitHub Actions in release workflow
91
+ - Corrected undefined variable references in upload workflow steps
92
+ - Updated repository URLs from GitLab to GitHub in library files
93
+
94
+ ## [1.5.6] - Current Release
95
+
96
+ ### Features
97
+ - painlessMesh is a user-friendly library for creating mesh networks with ESP8266 and ESP32 devices
98
+ - Automatic routing and network management
99
+ - JSON-based messaging system
100
+ - Time synchronization across all nodes
101
+ - Support for coordinated behaviors like synchronized displays
102
+ - Sensor network patterns for IoT applications
103
+
104
+ ### Platforms Supported
105
+ - ESP32 (espressif32)
106
+ - ESP8266 (espressif8266)
107
+
108
+ ### Dependencies
109
+ - ArduinoJson ^7.4.2
110
+ - TaskScheduler ^3.8.5
111
+ - AsyncTCP ^3.4.7 (ESP32)
112
+ - ESPAsyncTCP ^2.0.0 (ESP8266)
113
+
114
+ ### Alteriom Extensions
115
+ - SensorPackage for environmental monitoring
116
+ - CommandPackage for device control
117
+ - StatusPackage for health monitoring
118
+ - Type-safe message handling
119
+
120
+ ---
121
+
122
+ ## Release Notes
123
+
124
+ ### How to Release
125
+
126
+ 1. Update version in both `library.properties` and `library.json`
127
+ 2. Add changes to this CHANGELOG.md under the new version
128
+ 3. Commit with message starting with `release:` (e.g., `release: v1.6.0`)
129
+ 4. Push to main branch
130
+ 5. GitHub Actions will automatically:
131
+ - Create a git tag
132
+ - Generate GitHub release
133
+ - Package library for distribution
134
+ - Update documentation
135
+
136
+ ### Version Numbering
137
+
138
+ This project follows [Semantic Versioning](https://semver.org/):
139
+
140
+ - **MAJOR** version when you make incompatible API changes
141
+ - **MINOR** version when you add functionality in a backwards compatible manner
142
+ - **PATCH** version when you make backwards compatible bug fixes
143
+
144
+ Additional labels for pre-release and build metadata are available as extensions to the MAJOR.MINOR.PATCH format.