-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
3,112 changed files
with
185,806 additions
and
1 deletion.
The diff you're trying to view is too large. We only load the first 3000 changed files.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,88 @@ | ||
### Please do **not** open pull requests for *new features* now, as we are planning to rewrite large chunks of the code. Only bugfix PRs will be accepted. More details will be announced soon! | ||
|
||
NewPipe contribution guidelines | ||
=============================== | ||
|
||
## Crash reporting | ||
|
||
Report crashes through the **automated crash report system** of NewPipe. | ||
This way all the data needed for debugging is included in your bugreport for GitHub. | ||
You'll see *exactly* what is sent, be able to add **your comments**, and then send it. | ||
|
||
## Issue reporting/feature requests | ||
|
||
* **Already reported**? Browse the [existing issues](https://github.com/TeamNewPipe/NewPipe/issues) to make sure your issue/feature hasn't been reported/requested. | ||
* **Already fixed**? Check whether your issue/feature is already fixed/implemented. | ||
* **Still relevant**? Check if the issue still exists in the latest release/beta version. | ||
* **Can you fix it**? If you are an Android/Java developer, you are always welcome to fix an issue or implement a feature yourself. PRs welcome! See [Code contribution](#code-contribution) for more info. | ||
* **Is it in English**? Issues in other languages will be ignored unless someone translates them. | ||
* **Is it one issue**? Multiple issues require multiple reports, that can be linked to track their statuses. | ||
* **The template**: Fill it out, everyone wins. Your issue has a chance of getting fixed. | ||
|
||
|
||
## Translation | ||
|
||
* NewPipe is translated via [Weblate](https://hosted.weblate.org/projects/newpipe/strings/). Log in there with your GitHub account, or register. | ||
* Add the language you want to translate if it is not there already: see [How to add a new language](https://github.com/TeamNewPipe/NewPipe/wiki/How-to-add-a-new-language-to-NewPipe) in the wiki. | ||
* NewPipe uses the [PrettyTime](https://github.com/ocpsoft/prettytime) library to display localized versions of dates and times. It needs to be translated, too. Read [these instructions to add a new language](https://www.ocpsoft.org/prettytime/#section-14) and [this issue](https://github.com/TeamNewPipe/NewPipe/issues/9134) for more info. | ||
|
||
## Code contribution | ||
|
||
### Guidelines | ||
|
||
* Stick to NewPipe's *style conventions* of [checkStyle](https://github.com/checkstyle/checkstyle) and [ktlint](https://github.com/pinterest/ktlint). They run each time you build the project. | ||
* Stick to [F-Droid contribution guidelines](https://f-droid.org/wiki/page/Inclusion_Policy). | ||
* In particular **do not bring non-free software** (e.g. binary blobs) into the project. Make sure you do not introduce any closed-source library from Google. | ||
|
||
### Before starting development | ||
|
||
* If you want to help out with an existing bug report or feature request, **leave a comment** on that issue saying you want to try your hand at it. | ||
* If there is no existing issue for what you want to work on, **open a new one** describing the changes you are planning to introduce. This gives the team and the community a chance to give **feedback** before you spend time on something that is already in development, should be done differently, or should be avoided completely. | ||
* Please show **intention to maintain your features** and code after you contribute a PR. Unmaintained code is a hassle for core developers. If you do not intend to maintain features you plan to contribute, please rethink your submission, or clearly state that in the PR description. | ||
* Create PRs that cover only **one specific issue/solution/bug**. Do not create PRs that are huge monoliths and could have been split into multiple independent contributions. | ||
* NewPipe uses [NewPipeExtractor](https://github.com/TeamNewPipe/NewPipeExtractor) to fetch data from services. If you need to change something there, you must test your changes in NewPipe. Telling NewPipe to use your extractor version can be accomplished by editing the `app/build.gradle` file: the comments under the "NewPipe libraries" section of `dependencies` will help you out. | ||
|
||
### Kotlin in NewPipe | ||
* NewPipe will remain mostly Java for time being | ||
* Contributions containing a simple conversion from Java to Kotlin should be avoided. Conversions to Kotlin should only be done if Kotlin actually brings improvements like bug fixes or better performance which are not, or only with much more effort, implementable in Java. The core team sees Java as an easier to learn and generally well adopted programming language. | ||
|
||
### Creating a Pull Request (PR) | ||
|
||
* Make changes on a **separate branch** with a meaningful name, not on the _master_ branch or the _dev_ branch. This is commonly known as *feature branch workflow*. You may then send your changes as a pull request (PR) on GitHub. | ||
* Please **test** (compile and run) your code before submitting changes! Ideally, provide test feedback in the PR description. Untested code will **not** be merged! | ||
* Respond if someone requests changes or otherwise raises issues about your PRs. | ||
* 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 must *rebase* your branch on the `dev` branch manually and resolve the conflicts on your own. You can find help [on the wiki](https://github.com/TeamNewPipe/NewPipe/wiki/How-to-merge-a-PR). Doing this makes the maintainers' job way easier. | ||
|
||
## IDE setup & building the app | ||
|
||
### Basic setup | ||
|
||
NewPipe is developed using [Android Studio](https://developer.android.com/studio/). Learn more about how to install it and how it works in the [official documentation](https://developer.android.com/studio/intro). In particular, make sure you have accepted Android Studio's SDK licences. Once Android Studio is ready, setting up the NewPipe project is fairly simple: | ||
- Clone the NewPipe repository with `git clone https://github.com/TeamNewPipe/NewPipe.git` (or use the link from your own fork, if you want to open a PR). | ||
- Open the folder you just cloned with Android Studio. | ||
- Build and run it just like you would do with any other app, with the green triangle in the top bar. | ||
|
||
You may find [SonarLint](https://www.sonarlint.org/intellij)'s **inspections** useful in helping you to write good code and prevent bugs. | ||
|
||
### checkStyle setup | ||
|
||
The [checkStyle](https://github.com/checkstyle/checkstyle) plugin verifies that Java code abides by the project style. It runs automatically each time you build the project. If you want to view errors directly in the editor, instead of having to skim through the build output, you can install an Android Studio plugin: | ||
- Go to `File -> Settings -> Plugins`, search for `checkstyle` and install `CheckStyle-IDEA`. | ||
- Go to `File -> Settings -> Tools -> Checkstyle`. | ||
- Add NewPipe's configuration file by clicking the `+` in the right toolbar of the "Configuration File" list. | ||
- Under the "Use a local Checkstyle file" bullet, click on `Browse` and, enter `checkstyle` folder under the project's root path and pick the file named `checkstyle.xml`. | ||
- Enable "Store relative to project location" so that moving the directory around does not create issues. | ||
- Insert a description in the top bar, then click `Next` and then `Finish`. | ||
- Activate the configuration file you just added by enabling the checkbox on the left. | ||
- Click `Ok` and you are done. | ||
|
||
### ktlint setup | ||
|
||
The [ktlint](https://github.com/pinterest/ktlint) plugin does the same job as checkStyle for Kotlin files. Installing the related plugin is as simple as going to `File -> Settings -> Plugins`, searching for `ktlint` and installing `Ktlint (unofficial)`. | ||
|
||
## Communication | ||
|
||
* The #newpipe channel on Libera Chat (`ircs://irc.libera.chat:6697/newpipe`) has the core team and other developers in it. [Click here for webchat](https://web.libera.chat/#newpipe)! | ||
* You can also use a Matrix account to join the NewPipe channel at [#newpipe:libera.chat](https://matrix.to/#/#newpipe:libera.chat). Some convenient clients, available both for phone and desktop, are listed at that link. | ||
* You can post your suggestions, changes, ideas etc. on either GitHub or IRC. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,34 @@ | ||
body: | ||
- type: markdown | ||
attributes: | ||
value: | | ||
Thanks for taking the time to fill out this form! :hugs: | ||
Note that you can also ask questions on our [IRC channel](https://web.libera.chat/#newpipe). | ||
- type: checkboxes | ||
id: checklist | ||
attributes: | ||
label: "Checklist" | ||
options: | ||
- label: "I made sure that there are *no existing issues or discussions* - [open](https://github.com/TeamNewPipe/NewPipe/issues) or [closed](https://github.com/TeamNewPipe/NewPipe/issues?q=is%3Aissue+is%3Aclosed) - which I could contribute my information to." | ||
required: true | ||
- label: "I have read the [FAQ](https://newpipe.net/FAQ/) and my question isn't listed." | ||
required: true | ||
- label: "I have taken the time to fill in all the required details. I understand that the question will be dismissed otherwise." | ||
required: true | ||
- label: "I have read and understood the [contribution guidelines](https://github.com/TeamNewPipe/NewPipe/blob/dev/.github/CONTRIBUTING.md)." | ||
required: true | ||
|
||
- type: textarea | ||
id: what-is-the-question | ||
attributes: | ||
label: What is/are your question(s)? | ||
validations: | ||
required: true | ||
|
||
- type: textarea | ||
id: additional-information | ||
attributes: | ||
label: Additional information | ||
description: Any other information you'd like to include, for instance sketches, mockups, pictures of cats, etc. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
liberapay: TeamNewPipe | ||
custom: 'https://newpipe.net/donate/' |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,115 @@ | ||
name: Bug report | ||
description: Create a bug report to help us improve | ||
labels: [bug, needs triage] | ||
body: | ||
- type: markdown | ||
attributes: | ||
value: | | ||
Thank you for helping to make NewPipe better by reporting a bug. :hugs: | ||
Please fill in as much information as possible about your bug so that we don't have to play "information ping-pong" and can help you immediately. | ||
- type: checkboxes | ||
id: checklist | ||
attributes: | ||
label: "Checklist" | ||
options: | ||
- label: "I am able to reproduce the bug with the latest version given here: [CLICK THIS LINK](https://github.com/TeamNewPipe/NewPipe/releases/latest)." | ||
required: true | ||
- label: "I made sure that there are *no existing issues* - [open](https://github.com/TeamNewPipe/NewPipe/issues) or [closed](https://github.com/TeamNewPipe/NewPipe/issues?q=is%3Aissue+is%3Aclosed) - which I could contribute my information to." | ||
required: true | ||
- label: "I have read the [FAQ](https://newpipe.net/FAQ/) and my problem isn't listed." | ||
required: true | ||
- label: "I have taken the time to fill in all the required details. I understand that the bug report will be dismissed otherwise." | ||
required: true | ||
- label: "This issue contains only one bug." | ||
required: true | ||
- label: "I have read and understood the [contribution guidelines](https://github.com/TeamNewPipe/NewPipe/blob/dev/.github/CONTRIBUTING.md)." | ||
required: true | ||
|
||
- type: input | ||
id: app-version | ||
attributes: | ||
label: Affected version | ||
description: "In which NewPipe version did you encounter the bug?" | ||
placeholder: "x.xx.x - Can be seen in the app from the 'About' section in the sidebar" | ||
validations: | ||
required: true | ||
|
||
- type: textarea | ||
id: steps-to-reproduce | ||
attributes: | ||
label: Steps to reproduce the bug | ||
description: | | ||
What did you do for the bug to show up? | ||
If you can't cause the bug to show up again reliably (and hence don't have a proper set of steps to give us), please still try to give as many details as possible on how you think you encountered the bug. | ||
placeholder: | | ||
1. Go to '...' | ||
2. Press on '....' | ||
3. Swipe down to '....' | ||
validations: | ||
required: true | ||
|
||
- type: textarea | ||
id: expected-behavior | ||
attributes: | ||
label: Expected behavior | ||
description: | | ||
Tell us what you expect to happen. | ||
- type: textarea | ||
id: actual-behavior | ||
attributes: | ||
label: Actual behavior | ||
description: | | ||
Tell us what happens with the steps given above. | ||
- type: textarea | ||
id: screen-media | ||
attributes: | ||
label: Screenshots/Screen recordings | ||
description: | | ||
A picture or video is worth a thousand words. | ||
If applicable, add screenshots or a screen recording to help explain your problem. | ||
GitHub supports uploading them directly in the text box. | ||
If your file is too big for Github to accept, try to compress it (ZIP-file) or feel free to paste a link to an image/video hoster here instead. | ||
:heavy_exclamation_mark: DON'T POST SCREENSHOTS OF THE ERROR PAGE. | ||
Instead, follow the instructions in the "Logs" section below. | ||
- type: textarea | ||
id: logs | ||
attributes: | ||
label: Logs | ||
description: | | ||
If your bug includes a crash (where you're shown the Error Report page with a bunch of info), tap on "Copy formatted report" at the bottom and paste it here. | ||
- type: input | ||
id: device-os-info | ||
attributes: | ||
label: Affected Android/Custom ROM version | ||
description: | | ||
With what operating system (+ version) did you encounter the bug? | ||
placeholder: "Example: Android 12 / LineageOS 18.1" | ||
|
||
- type: input | ||
id: device-model-info | ||
attributes: | ||
label: Affected device model | ||
description: | | ||
On what device did you encounter the bug? | ||
placeholder: "Example: Huawei P20 lite (ANE-LX1) / Samsung Galaxy S20" | ||
|
||
- type: textarea | ||
id: additional-information | ||
attributes: | ||
label: Additional information | ||
description: | | ||
Any other information you'd like to include, for instance that | ||
* the affected device is foldable or a TV | ||
* you have disabled all animations on your device | ||
* your cat disabled your network connection | ||
* ... | ||
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
blank_issues_enabled: false | ||
contact_links: | ||
- name: ❓ Question | ||
url: https://github.com/TeamNewPipe/NewPipe/discussions/new?category=questions | ||
about: Ask about anything NewPipe-related | ||
- name: 💬 IRC | ||
url: https://web.libera.chat/#newpipe | ||
about: Chat with us via IRC for quick Q/A | ||
- name: 💬 Matrix | ||
url: https://matrix.to/#/#newpipe:libera.chat | ||
about: Chat with us via Matrix for quick Q/A |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,52 @@ | ||
name: Feature request | ||
description: Suggest an idea for this project | ||
labels: [feature request, needs triage] | ||
body: | ||
- type: markdown | ||
attributes: | ||
value: | | ||
Thank you for helping to make NewPipe better by suggesting a feature. :hugs: | ||
Your ideas are highly welcome! The app is made for you, the users, after all. | ||
- type: checkboxes | ||
id: checklist | ||
attributes: | ||
label: "Checklist" | ||
options: | ||
- label: "I made sure that there are *no existing issues* - [open](https://github.com/TeamNewPipe/NewPipe/issues) or [closed](https://github.com/TeamNewPipe/NewPipe/issues?q=is%3Aissue+is%3Aclosed) - which I could contribute my information to." | ||
required: true | ||
- label: "I have read the [FAQ](https://newpipe.net/FAQ/) and my problem isn't listed." | ||
required: true | ||
- label: "I'm aware that this is a request for NewPipe itself and that requests for adding a new service need to be made at [NewPipeExtractor](https://github.com/TeamNewPipe/NewPipeExtractor/issues)." | ||
required: true | ||
- label: "I have taken the time to fill in all the required details. I understand that the feature request will be dismissed otherwise." | ||
required: true | ||
- label: "This issue contains only one feature request." | ||
required: true | ||
- label: "I have read and understood the [contribution guidelines](https://github.com/TeamNewPipe/NewPipe/blob/dev/.github/CONTRIBUTING.md)." | ||
required: true | ||
|
||
|
||
- type: textarea | ||
id: feature-description | ||
attributes: | ||
label: Feature description | ||
description: | | ||
Explain how you want the app's look or behavior to change to suit your needs. | ||
validations: | ||
required: true | ||
|
||
- type: textarea | ||
id: why-is-the-feature-requested | ||
attributes: | ||
label: Why do you want this feature? | ||
description: | | ||
Describe any problem or limitation you come across while using the app which would be solved by this feature. | ||
validations: | ||
required: true | ||
|
||
- type: textarea | ||
id: additional-information | ||
attributes: | ||
label: Additional information | ||
description: Any other information you'd like to include, for instance sketches, mockups, pictures of cats, etc. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,34 @@ | ||
<!-- Hey there. Thank you so much for improving NewPipe, and filling out the details. Having roughly the same layout helps everyone considerably :)--> | ||
|
||
#### What is it? | ||
- [ ] Bugfix (user facing) | ||
- [ ] Feature (user facing) | ||
- [ ] Codebase improvement (dev facing) | ||
- [ ] Meta improvement to the project (dev facing) | ||
|
||
#### Description of the changes in your PR | ||
<!-- While bullet points are the norm in this section, feel free to write free-form text instead of a list --> | ||
- record videos | ||
- create clones | ||
- take over the world | ||
|
||
#### Before/After Screenshots/Screen Record | ||
<!-- If your PR changes the app's UI in any way, please include screenshots or a video showing exactly what changed, so that developers and users can pinpoint it easily. Delete this if it doesn't apply to your PR.--> | ||
- Before: | ||
- After: | ||
|
||
#### Fixes the following issue(s) | ||
<!-- Prefix issues with "Fixes" so that GitHub closes them when the PR is merged (note that each "Fixes #" should be in its own item). Also add any other relevant links. --> | ||
- Fixes # | ||
|
||
#### Relies on the following changes | ||
<!-- Delete this if it doesn't apply to your PR. --> | ||
- | ||
|
||
#### APK testing | ||
<!-- Use a new, meaningfully named branch. The name is used as a suffix for the app ID to allow installing and testing multiple versions of NewPipe, e.g. "commentfix", if your PR implements a bugfix for comments. (No names like "patch-0" and "feature-1".) --> | ||
<!-- Remove the following line if you directly link the APK created by the CI pipeline. Directly linking is preferred if you need to let users test.--> | ||
The APK can be found by going to the "Checks" tab below the title. On the left pane, click on "CI", scroll down to "artifacts" and click "app" to download the zip file which contains the debug APK of this PR. You can find more info and a video demonstration [on this wiki page](https://github.com/TeamNewPipe/NewPipe/wiki/Download-APK-for-PR). | ||
|
||
#### Due diligence | ||
- [ ] I read the [contribution guidelines](https://github.com/TeamNewPipe/NewPipe/blob/HEAD/.github/CONTRIBUTING.md). |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
# Add 'size/small' label to any changes with less than 50 lines | ||
size/small: | ||
max: 49 | ||
|
||
# Add 'size/medium' label to any changes between 50 and 249 lines | ||
size/medium: | ||
min: 50 | ||
max: 249 | ||
|
||
# Add 'size/large' label to any changes between 250 and 749 lines | ||
size/large: | ||
min: 250 | ||
max: 749 | ||
|
||
# Add 'size/giant' label to any changes for more than 749 lines | ||
size/giant: | ||
min: 750 |
Oops, something went wrong.