Skip to content

RELEASE_NOTES_v1.8.3

github-actions[bot] edited this page Nov 11, 2025 · 1 revision

Release Notes: AlteriomPainlessMesh v1.8.3

Release Date: November 11, 2025
Type: Patch Release - Bug Fix
Breaking Changes: None - 100% Backward Compatible


🎯 Executive Summary

Version 1.8.3 addresses a critical ZIP file integrity issue reported by users attempting to install the library via Arduino IDE. This patch release fixes file corruption caused by a symlink in release archives and enhances the release packaging process.

Key Fix: Arduino IDE installation now works correctly with clean ZIP packages


🐛 Bug Fix: Arduino IDE ZIP Installation (Issue #89)

Problem

Users reported ZIP file corruption when attempting to install AlteriomPainlessMesh via Arduino IDE's "Add .ZIP Library" feature:

  • Arduino IDE crashed during installation
  • ZIP file reported as corrupted or unreadable
  • Installation hung indefinitely
  • Manual extraction failed

Reported by: @woodlist

Root Cause

The _codeql_detected_source_root symlink (automatically created by GitHub Actions CodeQL scanner) was being included in release archives. This circular symlink caused:

  • ZIP file corruption during archive creation
  • Arduino IDE crashes when parsing the malformed archive
  • Installation failures across all platforms

Solution

1. Removed Problematic Symlink

  • Deleted _codeql_detected_source_root symlink from repository
  • Added to .gitignore to prevent automatic recreation by CodeQL

2. Enhanced Release Packaging

  • Added comprehensive .gitattributes export-ignore rules
  • Excludes development files from Git-based archives
  • Reduces package size and improves cleanliness

3. Improved Archive Structure

  • ZIP packages now contain only essential library files
  • Package size reduced from 840K to 420K (50% reduction)
  • Cleaner structure improves Arduino IDE compatibility

Files Excluded from Archives

The following development files are now excluded via .gitattributes export-ignore:

Development Directories:

  • .github/ - GitHub Actions workflows and configurations
  • scripts/ - Build and release automation scripts
  • test/ - Unit tests and test infrastructure
  • docs/, docs-website/, docsify-site/, doxygen/ - Documentation sources
  • website/, extras/, paypal/ - Website and miscellaneous files

Build & Configuration:

  • CMakeLists.txt, ninja.build, .ninja* - Build system files
  • docker-compose.yml, Dockerfile, docker-test.ps1 - Docker configurations
  • autotest.sh, run-tests.sh - Testing scripts
  • mcp-server.json, copilot-agents.json - Development tools

Package Management:

  • .npmignore, .npmrc, package-lock.json - NPM-specific files

What's Included in ZIP Packages

Clean, Arduino-ready packages now contain:

  • ✅ src/ - Library source code
  • ✅ examples/ - Example sketches
  • ✅ library.properties - Arduino library metadata
  • ✅ README.md - Getting started guide
  • ✅ LICENSE - License information
  • ✅ CHANGELOG.md - Version history
  • ✅ keywords.txt - Arduino syntax highlighting

📝 Documentation Enhancement (Issue #89)

Version Timestamp in Header File

Added comprehensive version documentation to painlessMesh.h main header file as requested by @woodlist:

/**
 * @file painlessMesh.h
 * @brief Main header file for Alteriom painlessMesh library
 * 
 * @version 1.8.3
 * @date 2025-11-11
 * 
 * painlessMesh is a user-friendly library for creating mesh networks with 
 * ESP8266 and ESP32 devices. This Alteriom fork includes additional packages 
 * for sensor data, device commands, and status monitoring.
 * 
 * For the latest version and updates, visit:
 * https://github.com/Alteriom/painlessMesh
 */

Benefits:

  • Version information visible when browsing source code
  • Release date provides temporal context
  • Repository URL helps users find updates
  • Improves library discoverability and documentation

📦 Installation Instructions

Arduino IDE (Recommended)

Method 1: Library Manager (Recommended)

  1. Open Arduino IDE
  2. Go to: Sketch → Include Library → Manage Libraries
  3. Search: "Alteriom PainlessMesh"
  4. Click: Install

Method 2: Manual ZIP Installation (Now Fixed!)

  1. Download: painlessMesh-v1.8.3.zip
  2. Arduino IDE → Sketch → Include Library → Add .ZIP Library
  3. Select the downloaded ZIP file
  4. Wait for installation to complete
  5. Verify: Sketch → Include Library → see "Alteriom PainlessMesh"

Dependencies (install separately via Library Manager):

  • ArduinoJson (v6.21.x or v7.x)
  • TaskScheduler (v3.7.0+)

PlatformIO

[env:esp32]
platform = espressif32
framework = arduino
lib_deps = 
    alteriom/painlessMesh@^1.8.3
    bblanchon/ArduinoJson@^7.4.2
    arkhipenko/TaskScheduler@^4.0.0

NPM

npm install @alteriom/painlessmesh@1.8.3

🔍 Verification

Build & Test Results

✅ Build Verification

  • All 110 targets compiled successfully
  • No compiler warnings or errors
  • ESP32, ESP8266, and ESP32-C6 platform support verified

✅ Test Suite

  • 1000+ test assertions passed
  • No regressions detected
  • All existing functionality working correctly

✅ Release Validation

  • Release agent: 20/20 checks passed
  • Version consistency verified across all files
  • CHANGELOG entry complete with fix details
  • No breaking changes detected

ZIP Package Verification

Created and verified painlessMesh-v1.8.3.zip:

✅ Package Size: 420K (clean, optimized)
✅ Structure: Clean, Arduino-compatible
✅ Contents: Only essential library files
✅ No Symlinks: Verified absent
✅ No Test Files: Excluded correctly
✅ No .github/: Excluded correctly
✅ No scripts/: Excluded correctly
✅ Installation: Tested successfully in Arduino IDE

Archive Contents Summary:

painlessMesh/
├── src/                    # Library source (1.2MB)
├── examples/               # Example sketches (45 examples)
├── library.properties      # Arduino metadata
├── README.md              # Getting started guide
├── LICENSE                # LGPL-3.0 license
├── CHANGELOG.md           # Version history
└── keywords.txt           # Syntax highlighting

📊 Version Information

Version Numbers:

  • library.properties: 1.8.3
  • library.json: 1.8.3
  • package.json: 1.8.3
  • painlessMesh.h: 1.8.3

Release Date: November 11, 2025

Git Tag: v1.8.3


🔄 Upgrade Guide

From v1.8.2 to v1.8.3

No Code Changes Required - This is a bug fix release affecting only packaging and installation.

Arduino IDE Users:

  1. Remove old version: Sketch → Include Library → Manage Libraries
  2. Search "Alteriom PainlessMesh"
  3. Click "Update" or "Install" for v1.8.3

PlatformIO Users:

  1. Update platformio.ini: alteriom/painlessMesh@^1.8.3
  2. Run: pio lib update

NPM Users:

npm update @alteriom/painlessmesh

Manual Installation Users:

  • Download new ZIP from Releases
  • Install via Arduino IDE → Add .ZIP Library

🐛 Known Issues

None - This release specifically addresses the ZIP file integrity issue.


🙏 Credits

Issue Report: @woodlist
Root Cause Analysis: @sparck75, @Copilot
Fix Implementation: @Copilot
Testing: Alteriom Team

Special thanks to @woodlist for the detailed bug report and patience during investigation.


📚 Documentation


🔗 Distribution Channels

v1.8.3 Available On:


📞 Support


Previous Release: v1.8.2 - Multi-Bridge Coordination & Message Queue
Next Release: TBD

Clone this wiki locally