Merge branch 'main' into refactor/abstraction-layer

Resolve merge conflicts by:
- Keeping version 0.2.2 from refactor branch (next release)
- Using fixed gh CLI release workflow from main (atomic release creation)
- Merging CHANGELOG histories: installer releases (0.1.x) and protocol work (2.x)

Conflicts resolved:
- .github/workflows/release.yml: Use gh CLI for atomic releases
- CHANGELOG.md: Merged both release histories chronologically
- pyproject.toml: Keep 0.2.2 for next refactor release

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
torlando-tech 2025-11-10 16:58:01 -05:00
commit 621e2d0c50
2 changed files with 50 additions and 10 deletions

View file

@ -326,17 +326,13 @@ jobs:
name: release-notes
- name: Create GitHub Release
uses: softprops/action-gh-release@v1
with:
tag_name: ${{ needs.validate.outputs.tag }}
name: "BLE-Reticulum ${{ needs.validate.outputs.tag }}"
body_path: RELEASE_NOTES.md
draft: false
prerelease: false
files: |
release-artifacts/*
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
gh release create "${{ needs.validate.outputs.tag }}" \
release-artifacts/* \
--title "BLE-Reticulum ${{ needs.validate.outputs.tag }}" \
--notes-file RELEASE_NOTES.md
- name: Release summary
run: |

View file

@ -26,6 +26,50 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Fixes issue where devices could not reconnect after multiple failed attempts due to corrupted BlueZ state
- Files: `src/RNS/Interfaces/linux_bluetooth_driver.py` (lines 786-830, 980-1069), `src/RNS/Interfaces/BLEInterface.py` (lines 1475-1490)
## [0.1.1] - 2025-11-10
### Fixed
- **Release workflow**: Use `gh release create` for atomic release creation to prevent asset upload failures with immutable releases. Previously, `softprops/action-gh-release` created releases and uploaded assets in separate operations, which failed when repository rules made releases immutable immediately.
## [0.1.0] - 2025-11-10
### Added
- **Installation system**
- Cross-platform installer script (`install.sh`) supporting Debian, Ubuntu, Arch Linux, and Raspberry Pi OS
- ARM architecture support (32-bit armhf and 64-bit arm64)
- Custom configuration directory support via `--config` flag
- Python symlink resolution for correct interpreter detection
- Automatic PATH configuration for user installations
- **BlueZ configuration automation**
- Automatic BlueZ experimental mode enablement (fixes BLE connection issues)
- Bluetooth adapter auto-power-on functionality
- rfkill auto-unblocking for Bluetooth devices
- Systemd service integration with proper permissions
- **CI/CD infrastructure**
- GitHub Actions workflows for automated testing
- Multi-distribution testing matrix (Debian, Ubuntu, Arch, Raspberry Pi OS)
- ARM architecture testing on Raspberry Pi OS
- Non-interactive installation mode for CI environments
- **Installer robustness**
- Root/non-root detection with appropriate sudo handling
- Graceful degradation when systemd unavailable
- Virtual environment detection and support
- Compatibility with PEP 668 (externally-managed-environment)
- Platform-specific dependency handling (libffi-dev for 32-bit ARM)
### Changed
- Improved error messages and user feedback during installation
- Enhanced logging for troubleshooting installation issues
### Fixed
- Path handling for system vs. user installations
- Permission issues with Bluetooth capabilities (setcap)
- Dependency resolution across different Linux distributions
- PyGObject version conflicts on Arch Linux
## [2.2.0] - 2025-11-06
### Added