Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update CONTRIBUTING.md #3853

Open
wants to merge 4 commits into
base: release/4.0
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
75 changes: 44 additions & 31 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,42 +1,55 @@
Amaze was created with a vision to provide all the basic and advanced features a file manager in Android is supposed to have, with a friendly material design.
As with any other open source project, contributions are the key to achieve this goal of ours.
# Contributing to Amaze

Happy to see you in here! Amaze was created with a vision to provide all the basic and advanced features a file manager in Android is supposed to have, with a friendly material design. As with any other open source project, contributions are the key to achieve this goal of ours. :)

Contributions are always welcome!

To start contributing, we assume you know how to use git and write and debug Android apps - don't expect we can teach you ;)
> ### Imposter's syndrome disclaimer: We want your help. No, really! Any contribution counts, no matter how small it be!

# How to contribute?

- **Translation**: We use [Transifex](https://www.transifex.com/amaze/amaze-file-manager/) for our translations, feel free to contribute translations there.
- **Monetary Contributions**: You can do monetary contributions via [OpenCollective](https://opencollective.com/TeamAmaze), [LiberaPay](https://liberapay.com/Team-Amaze/donate) or PayPal](https://www.paypal.me/vishalnehra).
- **Bug Reports**: Reporting bugs clearly & concisely helps us improve Amaze. It would be great for us to pinpoint the cause of a bug if there are logs attached to the bug report. Or clearcut steps to reproduce the issue you are facing. Yes, good bug reports are considered as contributions too!
- **Code Contributions**: This file discusses about code contributions.

To start contributing, we assume you know how to use git and write and debug Android apps.

## How to get started?

- You can use GitHub web interface to fork `TeamAmaze/AmazeFileManager` to `<YOUR-USERNAME>/AmazeFileManager`.
- The next step is to import it into Android Studio by `New Project -> Get from Version Control`.
- There you can paste the link to your fork.
- Let Android Studio import the project & download all the necessary dependencies
- Now you can build & run the project on an emulator/real device.

## What to do next?

- Go to [issues]() section & have a look at [good-first-issues](https://github.com/TeamAmaze/AmazeFileManager/issues?q=is%3Aopen+is%3Aissue+label%3A%22Issue-Easy+%28good+first+issue%29%22). These are low hanging fruits ready to be picked up!
- Have a look at [NPE Crashes](https://github.com/TeamAmaze/AmazeFileManager/issues?q=is%3Aopen+is%3Aissue+label%3ACrash-NullPointerException) too. These must be literally one line fixes to bugs.
- Or if you wanna work on a feature, please make sure no one's working on it by commenting on the thread (we'll assign it to you then).
- Once you have made all the necessary changes, and everything works as expected, please run `./gradlew spotlessCheck` on your local and handle any resulting formatting issues. Most of them can be fixed by running `./gradlew spotlessApply` (others would need lil manual changes)
- If everything looks good, push it to your fork & make a PR (please make sure to fill the PR template!)
- We'll look into your PR soon, give feedback, and upon the code working as expected (i.e, fixes the bug/implements feature), the code get merged to the next release branch! Yay!

Please keep in mind the points below before considering contributing to Amaze:
- Make sure to write your name and Email-ID in format ````Name<email>```` in the license declaration above every file you make change to.
You won't be able to claim the license for changes made by you unless you do that.
If there's no license header in any file, please include one from [GNU GPL v3](https://www.gnu.org/licenses/gpl-3.0.en.html) webpage.
- Please follow [Android/JAVA code style](https://source.android.com/source/code-style.html) for writing any code, but do not use the Hungarian notation proposed - discussion [here](https://github.com/TeamAmaze/AmazeFileManager/issues/986).
Also, follow [Android Material Design guidelines](https://m3.material.io/get-started) in case you make changes to any UI element.
- To file a bug report, it is recommended to include the steps to reproduce it; and even better, it helps us a lot if you can capture the error messages in logcat too
It is also recommended to enroll to our beta program from Play Store to test and verify any fix for the same.
If we feel your PR is a significant help to us, we'll award you a bounty with any of your preferred mode of payment.

We work with pull requests, so, for improvements, new features or bugfixes, please submit your changes as pull requests.
We will then:
## Points to note

1. start review of your code for cleanliness and robustness
2. test them to see if they work as you said
3. merge the pull request
- Please follow [Android/JAVA code style](https://source.android.com/docs/setup/contribute/code-style) for writing any code. Please see [this](https://github.com/TeamAmaze/AmazeFileManager/issues/986) issue too.
- Also, follow [Android Material Design guidelines](https://m3.material.io/get-started) in case you make changes to any UI element.

To speed up the review process, please:
## PS: please make sure to

- write your code cleanly. We also have our day time work, we are not able to correct the mistakes in your code.
- before opening PR, run `./gradlew spotlessCheck` and `./gradlew spotlessApply` in your local to check / fix any formatting issues.
- describe clearly what your pull request does
- if you're fixing a particular bug in the issue list, please explicitly say "Fixes #<issue number>" in your description
- once you've opened PR, look out for CI builds, if there is any code smell / bug - CI will complain, please work on it to keep the code clean.
- while not required (because automated tests can't test everything), it's recommended you to include [Robolectric](http://robolectric.org/)/[Espresso](https://developer.android.com/training/testing/espresso/) tests in your pull request
- Follow best practices & to write _clean code_.
- Before opening a PR, run `./gradlew spotlessCheck` on your local and handle any resulting formatting issues. Most of them can be fixed by running `./gradlew spotlessApply` (others would need lil manual changes)
- Fill in the pull request template clearly (for eg: `fixes #XXXX` for bugfixes)
- Once you've opened PR, look out for CI builds (`Checks` section on the top of your PR). If it's all green, you're good to go! Else, please fix the issues specified in the logs (you can get logs by clicking on the failed workflow & then the failed action).
- Include tests (either Unit tests or automated tests like [Robolectric](http://robolectric.org/)/[Espresso](https://developer.android.com/training/testing/espresso/)) if possible to your PR

Finally:
### Finally!

- we have our day time work, so except security vulnerabilities, your submission may be left cold for a couple of days before being picked up by us
- it's good to start a new branch to start your work. Not just for a shiny branch name, but also for your own good
- we can be harsh when reviewing your work but because we want to have good code in our codebase. Be patient and carefully read our comments
- we can be wrong. Again, be patient when discuss with us - we accept reason, but we never accept hate speech
- We have our day time work, so except security vulnerabilities, your submission may be left cold for a lil while before being picked up by us :)
- Please be patient with us while we review our code. Try to avoid favoritism, hate speech & adhere to our [code of conduct](https://github.com/TeamAmaze/AmazeFileManager/blob/release/4.0/CODE_OF_CONDUCT.md).

If we feel your PR is a significant help to us, we'll award you a bounty with any of your preferred mode of payment.
Please provide the details for the same once asked.
Ready to roll? Start forking ;)
## Ready to roll? Start [forking](https://github.com/TeamAmaze/AmazeFileManager/fork)! ;)