Files
lidify/CONTRIBUTING.md
Your Name cc8d0f6969 Release v1.3.0: Multi-source downloads, audio analyzer resilience, mobile improvements
Major Features:
- Multi-source download system (Soulseek/Lidarr with fallback)
- Configurable enrichment speed control (1-5x)
- Mobile touch drag support for seek sliders
- iOS PWA media controls (Control Center, Lock Screen)
- Artist name alias resolution via Last.fm
- Circuit breaker pattern for audio analysis

Critical Fixes:
- Audio analyzer stability (non-ASCII, BrokenProcessPool, OOM)
- Discovery system race conditions and import failures
- Radio decade categorization using originalYear
- LastFM API response normalization
- Mood bucket infinite loop prevention

Security:
- Bull Board admin authentication
- Lidarr webhook signature verification
- JWT token expiration and refresh
- Encryption key validation on startup

Closes #2, #6, #9, #13, #21, #26, #31, #34, #35, #37, #40, #43
2026-01-06 20:07:33 -06:00

64 lines
1.3 KiB
Markdown

# Contributing to Lidify
First off, thanks for taking the time to contribute! 🎉
## Getting Started
1. Fork the repository
2. Clone your fork locally
3. Set up the development environment (see README.md)
4. Create a new branch from `main` for your changes
## Branch Strategy
All development happens on the `main` branch:
- **All PRs should target `main`**
- Every push to `main` triggers a nightly Docker build
- Stable releases are created via version tags
## Making Contributions
### Bug Fixes
1. Check existing issues to see if the bug has been reported
2. If not, open a bug report issue first
3. Fork, branch, fix, and submit a PR referencing the issue
### Small Enhancements
1. Open a feature request issue to discuss first
2. Keep changes focused and minimal
### Large Features
Please open an issue to discuss before starting work.
## Code Style
### Frontend
The frontend uses ESLint. Before submitting a PR:
```bash
cd frontend
npm run lint
```
### Backend
Follow existing code patterns and TypeScript conventions.
## Pull Request Process
1. **Target the `main` branch**
2. Fill out the PR template completely
3. Ensure the Docker build check passes
4. Wait for review - we'll provide feedback or approve
## Questions?
Open a Discussion thread for questions that aren't bugs or feature requests.
Thanks for contributing!