Thank you for considering contributing to the unofficial Deezer Linux port! This document provides guidelines for contributing to the project.
## Code of Conduct
By participating in this project, you agree to maintain a respectful and inclusive environment for everyone.
## How to Contribute
### Reporting Bugs
- Before creating an issue, please check if it hasn't been reported already
- Use the issue template if available
- Include detailed steps to reproduce the bug
- Specify your system information (OS, architecture, package type)
### Suggesting Enhancements
- Use clear and descriptive titles
- Provide a step-by-step description of the suggested enhancement
- Explain why this enhancement would be useful
### Pull Requests
1. Fork the repository
2. Create a new branch (`git checkout -b feature/your-feature`)
3. Make your changes
4. Build one or more packages
5. Commit your changes (`git commit -m 'feat: Add some feature'`)
6. Push to the branch (`git push origin feature/your-feature`)
7. Open a Pull Request
8. Provide information about the changes made and the packages built and manually tested
### Build Requirements
Ensure you have all required dependencies:
- Node.js (20 recommended)
- npm
- 7z
- make
- wget
## Development Setup
```sh
make install_deps
```
## Patching
### Creating a Patch
To create a patch, clone the repository and run:
```sh
make patch-new
```
Edit the files you want to change in the `app` directory.
> [!TIP]
> You do not need to generate a patch file to test your changes. Open the `app` folder after running `make patch-new` and make your changes. Then run `make build_{target}_{arch}` to try your changes.
When you are done, commit your changes, and then generate the patch:
```sh
make patch-gen
```
The patch will be saved in the `patches` directory. Make sure to rename the patch file to something meaningful and follow the naming convention. Add the patch to the echoed list in the `Makefile`.
> [!TIP]
> If possible, you may want to add a switch to allow the users to use the feature you added or not. Do not forget to [mention it](./README.md#usage).
You can now try your patch by building and executing the package:
```sh
make build_{target}_{arch}
```
### Applying a Patch
To manually apply a patch, run:
```sh
apply -p1 -dapp <patches/{name}.patch
```
> [!NOTE]
> Deezer does not provide all the information needed to implement some features.