For small fixes and improvements:
# 1. Make your changes
git add .
git commit -m "Fix: Camera detection for MJPEG formats"
git push origin mainFor significant changes:
# 1. Create a feature branch
git checkout -b feature/camera-detection-v2
# 2. Make your changes and test thoroughly
# ... development work ...
# 3. Commit your changes
git add .
git commit -m "Add: Advanced camera detection with v4l2-ctl integration"
# 4. Push feature branch
git push origin feature/camera-detection-v2
# 5. Create Pull Request on GitHub (optional for review)
# 6. Merge to main when ready
git checkout main
git merge feature/camera-detection-v2
git push origin main
# 7. Clean up
git branch -d feature/camera-detection-v2
git push origin --delete feature/camera-detection-v2Before releasing, update the CHANGELOG.md:
## [1.1.0] - 2025-01-XX
### Added
- Smart camera detection using v4l2-ctl
- Automatic resolution and framerate detection
- Pixel format selection (YUYV, MJPEG, H264)
### Changed
- Replaced "Check Caps" with "Detect Options" button
- Improved FFmpeg command generation
### Fixed
- Better error handling for unsupported cameras# Create and push a tag for major releases
git tag -a v1.1.0 -m "Version 1.1.0 - Camera Detection Improvements"
git push origin v1.1.0Create a GitHub release for major versions:
- Go to your repository on GitHub
- Click "Releases" → "Create a new release"
- Choose your tag (v1.1.0)
- Add release notes
- Publish release
Before publishing:
# Test the update system locally
curl -X POST http://localhost/api/update
# Or use the web interface:
# 1. Click "Test Update Connection"
# 2. Click "Check for Updates"If an update causes issues:
# Revert the last commit
git revert HEAD
git push origin main
# Or reset to a previous commit (destructive)
git reset --hard <previous-commit-hash>
git push --force origin mainThe update system is configured in radxa_stream_manager.py:
# Repository settings
repo_url = "https://github.com/SCSIExpress/RCSM"
api_url = "https://api.github.com/repos/SCSIExpress/RCSM/commits/main"
download_url = "https://github.com/SCSIExpress/RCSM/archive/refs/heads/main.zip"
# Files that get updated
files_to_update = [
"radxa_stream_manager.py",
"templates/index.html",
"setup.sh",
"README.md",
"CHANGELOG.md",
"API.md",
"INSTALLATION.md",
"TROUBLESHOOTING.md",
"CONTRIBUTING.md"
]When users click "Check for Updates":
- System compares local commit with GitHub
- If newer version available, downloads and installs
- Creates backup of old files
- Attempts to restart service
- Shows success/failure message
- Updates only download from your official GitHub repository
- Files are verified before installation
- Backups are created automatically
- Only specific files are updated (not user data)