Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
179 changes: 179 additions & 0 deletions CONTRIBUTION.md
Original file line number Diff line number Diff line change
@@ -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 #<issue_number>” 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 <needed_packages>
```

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:

```
<type>(<scope>): <short description>

<optional longer description>
```

Where `<type>` 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.