Files
Freedom-Loader/CONTRIBUTING.md

164 lines
4.5 KiB
Markdown

# Contributing to Freedom Loader
Welcome! Thanks for your interest in Freedom Loader. Your contributions—bug reports, feature ideas, or code improvements—are always appreciated. Every contribution makes Freedom Loader better.
---
## Quick Links
- [Code of Conduct](CODE_OF_CONDUCT.md)
- [Issue Templates](.github/ISSUE_TEMPLATE/)
- [Pull Request Templates](.github/PULL_REQUEST_TEMPLATE/)
- [Security Policy](SECURITY.md)
---
## Ways to Contribute
### 1. Report a Bug
Found a bug or unexpected behavior? Open an [**issue**](https://github.com/MasterAcnolo/Freedom-Loader/issues) using the **Bug Report** template.
**Please include:**
- Clear description of the bug
- Steps to reproduce
- App version and environment (Windows version, Firefox version if relevant)
- Logs from: `C:\Users\[USERNAME]\AppData\Local\FreedomLoader\logs\LOGS-YYYY-MM-DD.log`
- Screenshots if applicable
### 2. Request a Feature
Have an idea to improve Freedom Loader? Open a [**Feature Request**](https://github.com/MasterAcnolo/Freedom-Loader/issues/new/choose).
**Tips:**
- Describe the problem it solves
- Explain your proposed solution
- Include use cases and examples
### 3. Submit Code Changes
**Before starting:**
- Check existing issues and PRs to avoid duplicates
- For major changes, open an issue first to discuss
- Follow the project's code style and conventions
**Process:**
1. Fork the repository
2. Create a feature branch: `git checkout -b feature/your-feature-name`
3. Make your changes
4. Test thoroughly on Windows 10/11
5. Commit with clear messages: `git commit -m "Add feature X"`
6. Push to your fork: `git push origin feature/your-feature-name`
7. Open a Pull Request using the appropriate template
**Code Guidelines:**
- Use camelCase for variables and functions
- Comment complex logic
- Keep commits focused and atomic
- Update documentation if needed
- Don't modify version numbers (done during release)
### 4. Improve Documentation
Documentation improvements are always welcome:
- Fix typos or unclear sections
- Add missing examples
- Update outdated information
- Improve README, wiki, or guides
Small contributions matter—don't hesitate to submit documentation PRs.
---
## Development Setup
### Prerequisites
- Node.js 16.x or higher
- npm or yarn
- Git
- Windows 10/11 (for testing)
### Setup
```bash
# Clone your fork
git clone https://github.com/YOUR-USERNAME/Freedom-Loader.git
cd Freedom-Loader
# Install dependencies
npm install
# Run in development mode
npm start
# Build for production
npm run build
```
### Project Structure
```
Freedom-Loader/
├── main.js # Electron main process
├── preload.js # Electron preload script
├── config.js # Global configuration
├── server/ # Express backend
│ ├── routes/ # API routes
│ ├── controller/ # Business logic
│ └── helpers/ # Utility functions
├── public/ # Frontend (HTML, CSS, JS)
└── ressources/ # Binaries (yt-dlp, ffmpeg, etc.)
```
---
## Testing
Before submitting a PR, verify:
- [ ] Download functionality works (video/audio)
- [ ] Playlist downloads work
- [ ] Settings panel functions correctly
- [ ] Custom path selection works
- [ ] No errors in application logs
- [ ] UI changes work on all themes (if applicable)
- [ ] Tested on Windows 10 and/or Windows 11
---
## Pull Request Review Process
1. **Submission**: Open PR with clear description using the template
2. **Review**: Maintainers review code and provide feedback
3. **Updates**: Address feedback and push updates
4. **Approval**: Once approved, PR will be merged
5. **Release**: Changes included in next release
**Response times:**
- Bug fixes: Usually reviewed within 2-3 days
- Features: May take longer depending on complexity
- Documentation: Often reviewed quickly
---
## Code of Conduct
Be respectful and constructive in all interactions. We welcome everyone as long as discussions remain polite and productive.
See [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md) for details.
---
## Questions?
- Check the [FAQ](https://masteracnolo.github.io/Freedom-Loader-Site/faq)
- Review the [Wiki](https://masteracnolo.github.io/Freedom-Loader-Site/wiki)
- Open a [Question issue](https://github.com/MasterAcnolo/Freedom-Loader/issues/new/choose)
---
## Credits
Thanks to **Zakaria** for the website icon design.
Check out his work: [IG @designmark_studio](https://www.instagram.com/designmark_studio/)
---
**Thank you for contributing to Freedom Loader!**