NewPipe/.github/CONTRIBUTING.md

4.7 KiB

NewPipe contribution guidelines

PLEASE READ THESE GUIDELINES CAREFULLY BEFORE ANY CONTRIBUTION!

Crash reporting

Do not report crashes in the GitHub issue tracker. NewPipe has an automated crash report system that will ask you to send a report via e-mail when a crash occurs. This contains all the data we need for debugging, and allows you to even add a comment to it. You'll see exactly what is sent, the system is 100% transparent.

Issue reporting/feature requests

  • Search the existing issues first to make sure your issue/feature hasn't been reported/requested before.
  • Check whether your issue/feature is already fixed/implemented.
  • Check if the issue still exists in the latest release/beta version.
  • If you are an Android/Java developer, you are always welcome to fix an issue or implement a feature yourself. PRs welcome!
  • We use English for development. Issues in other languages will be closed and ignored.
  • Please only add one issue at a time. Do not put multiple issues into one thread.
  • Follow the template! Issues or feature requests not matching the template might be closed.

Bug Fixing

  • If you want to help NewPipe to become free of bugs (this is our utopic goal for NewPipe), you can send us an email to tnp@newpipe.schabi.org to let us know that you intend to help. We'll send you further instructions. You may, on request, register at our Sentry instance (see section "Crash reporting" for more information).

Translation

  • NewPipe is translated via Weblate. You can log in there with your GitHub account.
  • If the language you want to translate is not on Weblate, you can add it: see How to add a new language in the wiki.

Code contribution

  • If you want to add a feature or change one, please open an issue describing your change. This gives the team and community a chance to give feedback before you spend any time on something that could be done differently or not done at all. It also prevents two contributors from working on the same thing and one being disappointed when only one user's code can be added.
  • Stick to NewPipe's style conventions: follow checkStyle. It will run each time you build the project.
  • Do not bring non-free software (e.g. binary blobs) into the project. Also, make sure you do not introduce Google libraries.
  • Stick to F-Droid contribution guidelines.
  • Make changes on a separate branch with a meaningful name, not on the master neither dev branch. This is commonly known as feature branch workflow. You may then send your changes as a pull request (PR) on GitHub.
  • When submitting changes, you confirm that your code is licensed under the terms of the GNU General Public License v3.
  • Please test (compile and run) your code before you submit changes! Ideally, provide test feedback in the PR description. Untested code will not be merged!
  • Try to figure out yourself why builds on our CI fail.
  • Make sure your PR is up-to-date with the rest of the code. Often, a simple click on "Update branch" will do the job, but if not, you are asked to rebase the dev branch manually and resolve the problems on your own. You can find help on the wiki. That will make the maintainers' jobs way easier.
  • Please show intention to maintain your features and code after you contributed it. Unmaintained code is a hassle for the core developers, and just adds work. If you do not intend to maintain features you contributed, please think again about submission, or clearly state that in the description of your PR.
  • Respond yourselves if someone requests changes or otherwise raises issues about your PRs.
  • Send PR that only cover one specific issue/solution/bug. Do not send PRs that are huge and consists of multiple independent solutions.

Communication

  • There is an IRC channel on Freenode which is regularly visited by the core team and other developers: #newpipe. Click here for Webchat!
  • If you want to get in touch with the core team or one of our other contributors you can send an email to tnp@newpipe.schabi.org. Please do not send issue reports, they will be ignored and remain unanswered! Use the GitHub issue tracker described above!
  • Feel free to post suggestions, changes, ideas etc. on GitHub or IRC!