diff --git a/CONTRIBUTION.md b/CONTRIBUTION.md new file mode 100644 index 0000000..4470eec --- /dev/null +++ b/CONTRIBUTION.md @@ -0,0 +1,179 @@ + +# Contributing to Kali-Linux-for-Android + +First off, **thank you** for considering contributing! Every bit of help makes the project stronger. + +This document outlines how to contribute, what to expect, and guidelines to make the process smooth. + +--- + +## Table of Contents + +1. [Code of Conduct](#code-of-conduct) +2. [How to Contribute](#how-to-contribute) + - Reporting bugs + - Suggesting features + - Submitting pull requests +3. [Development Setup](#development-setup) +4. [Commit & Pull Request Guidelines](#commit--pull-request-guidelines) +5. [Coding Style & Best Practices](#coding-style--best-practices) +6. [Testing](#testing) +7. [License & Copyright](#license--copyright) +8. [Getting Help](#getting-help) + +--- + +## Code of Conduct + +We want this project to be a welcoming space for everyone. By participating, you agree to abide by the **Contributor Covenant Code of Conduct** (or your choice of code of conduct). +- Treat others with respect and courtesy. +- Be open to feedback and discussion. +- Avoid harassment, discrimination, or personal attacks. + +If you see any behavior that violates this, please notify the maintainers. + +--- + +## How to Contribute + +Here are ways you can help: + +### Reporting bugs + +- Check existing issues to see if your bug is already reported. +- If not, open a new issue with: + 1. A clear, descriptive title. + 2. Steps to reproduce the issue. + 3. Expected vs. actual behavior. + 4. Screenshots or logs (if applicable). + 5. Environment details (Android version, device model, app version, etc.) + +### Suggesting features / enhancements + +- Search existing issues and pull requests to avoid duplicates. +- Open a new issue with: + - What you want to see (clear description). + - Why it’s important / what problem it solves. + - Any rough ideas on how it could be implemented. + +### Submitting pull requests (PRs) + +1. Fork the repository. +2. Create a feature branch (`git checkout -b my-feature`). +3. Make commits with meaningful messages. +4. Ensure your changes include tests (if applicable). +5. Run existing tests and ensure nothing breaks. +6. Push your branch to your fork. +7. Open a PR against the **main** branch of this repository. +8. In the PR description, include: + - What changes you made. + - Why the changes are needed. + - Any related issues (use “Closes #” if your PR fixes an issue). + +A maintainer will review and provide feedback. Be patient; reviews may take time. + +--- + +## Development Setup + +Here is a suggested setup (you may adjust as needed): + +1. **Clone the repository** + ```sh + git clone https://github.com/AryanVBW/Kali-Linux-for-Android.git + cd Kali-Linux-for-Android + +2. **Install dependencies / tools** + + * (List out any dependencies, SDKs, libraries, commands, e.g. `apt-get`, `pkg`, Python modules, Android NDK, etc.) + * Eg: + + ```sh + sudo apt-get install + ``` + +3. **Build / Run locally / On device** + + * Steps to build the Android app / scripts / components. + * How to test on an emulator or physical device. + +4. **Testing / Validation** + + * Run unit tests (if any). + * Manual testing guidelines. + * Linting, static analysis, etc. + +You can add a `docs/` folder or `scripts/` folder for setup scripts and documentation to help contributors. + +--- + +## Commit & Pull Request Guidelines + +* Use **clear, concise commit messages**, usually in the format: + + ``` + (): + + + ``` + + Where `` can be: + + * `feat` — a new feature + * `fix` — bug fix + * `docs` — documentation changes + * `style` — formatting / style changes (doesn’t affect functionality) + * `refactor` — code change that neither fixes a bug nor adds a feature + * `test` — adding or changing tests + * `chore` — maintenance or tooling changes + +* Keep changes in one PR focused. Avoid mixing unrelated changes. + +* Write code such that it is readable, maintainable, and tested (where applicable). + +* If your change is large or complex, discuss via issue first before implementing. + +--- + +## Coding Style & Best Practices + +While this may depend on the language(s) in use (shell, Python, Java/Kotlin, etc.), here are general guidelines: + +* Use consistent indentation (tabs vs spaces) — pick one and stick to it. +* Name variables, functions, classes meaningfully. +* Write small, well-purposed functions / modules. +* Document public APIs, modules, and complex logic with comments or docstrings. +* Avoid global state when possible. +* Handle errors gracefully. +* Be careful about security — in an environment dealing with low-level or root operations (as in Kali tools), validate inputs, minimize privilege escalation, etc. + +You may include or link to language-specific linters or style guides (e.g. `.eslintrc`, `pylintrc`, `ktlint`, etc). + +--- + +## Testing + +* Wherever possible, include unit tests or integration tests. +* Ensure PRs do not break existing tests. +* Use automation (CI / GitHub Actions) to run tests, linting, and checks on every push/PR. +* If you add a test, describe how to run it in documentation. + +--- + +## License & Copyright + +By contributing, you agree that your contributions will be licensed under the same license as this project (specify — e.g. **MIT**, **GPLv3**, etc.). +Make sure to indicate any file headers or copyright notices as needed. + +--- + +## Getting Help / Contact + +* If you have questions, post in Issues or Discussions. +* You can tag maintainers or people who are active in the project. +* Feel free to ask for review or guidance before implementing big features. + +--- + +Thank you for helping make **Kali-Linux-for-Android** better! We appreciate your time, effort, and ideas. +