Skip to content
Open
Show file tree
Hide file tree
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
141 changes: 141 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,141 @@
# Contributing to Tech for Palestine Projects

Thank you for your interest in contributing to a Tech for Palestine (T4P) project! We welcome contributors of all backgrounds and experience levels. This guide will help you get started, understand our expectations, and ensure a positive, productive experience for everyone.

---

## Table of Contents

- [Code of Conduct](#code-of-conduct)
- [How to Contribute](#how-to-contribute)
- [Reporting Issues](#reporting-issues)
- [Submitting Pull Requests](#submitting-pull-requests)
- [Feature Requests and Proposals](#feature-requests-and-proposals)
- [Development Process](#development-process)
- [Tools & Best Practices](#tools--best-practices)
- [Style Guides](#style-guides)
- [Security & Privacy](#security--privacy)
- [Community & Support](#community--support)
- [License](#license)
- [Acknowledgments](#acknowledgments)

---

## Code of Conduct

All contributors must adhere to our [Code of Conduct](https://github.com/TechForPalestine/code-of-conduct). Please review it to ensure a welcoming and safe environment for everyone.

---

## How to Contribute

There are many ways to contribute:

- Reporting bugs or issues
- Suggesting features or improvements
- Submitting pull requests (PRs)
- Improving documentation
- Helping triage issues
- Providing feedback and reviews

### Reporting Issues

- Search [existing issues](../../issues) before creating a new one.
- Clearly describe the issue, steps to reproduce, and expected/actual behavior.
- Add relevant labels (e.g., `bug`, `enhancement`, `help wanted`).
- If reporting a security vulnerability, please see the [Security & Privacy](#security--privacy) section below.

### Submitting Pull Requests

1. **Fork** the repository and create your branch from `main` (or the default branch).
2. **Write clear, concise commits**. One feature/fix per PR is ideal.
3. **Add or update tests** if applicable.
4. **Document** any new public APIs or features.
5. **Open a pull request** and describe your changes. Reference related issues if applicable.
6. **Participate in code review**. Address feedback as needed.

> **Tip:** Look for issues labeled `good first issue` or `help wanted` if you're new!

### Feature Requests and Proposals

- Open an issue using the `feature request` template if available.
- Describe your proposal, motivation, and possible alternatives.
- We encourage discussion before you start implementation.

---

## Development Process

- We use [GitHub issues](../../issues) and [pull requests](../../pulls) to track work.
- CI/CD and linting may be enabled; check the repo for `.github/workflows` and linter configs.
- Please keep PRs focused and limited in scope.
- See project-specific README for setup and local development instructions.

---

## Tools & Best Practices

We encourage all contributors to use the following tools and practices to ensure code quality, maintainability, and a collaborative workflow:

### Recommended Tools

- **Version Control**: [Git](https://git-scm.com/) (use feature branches, rebase or squash commits before merging if asked).
- **Code Editors**: [VS Code](https://code.visualstudio.com/) or your preferred editor, with recommended extensions for linting and formatting.
- **Linters & Formatters**: Respect `.editorconfig`, `.prettierrc`, `.eslintrc`, or language-specific linter configs in the repo.
- **Testing**: Use the project’s preferred testing framework (see `README.md` or `CONTRIBUTING.md` in subfolders).
- **Pre-commit Hooks**: Set up [pre-commit](https://pre-commit.com/) or other git hooks if provided.
- **CI/CD**: Monitor CI checks on your PR for failures and fix them promptly.

### Best Practices

- **Keep PRs Small and Focused**: Smaller changes are easier to review and merge.
- **Write Descriptive Commit Messages**: Explain what and why, not just how.
- **Code Reviews**: Be constructive and kind. Ask questions if unsure.
- **Documentation**: Update or add documentation for new features, APIs, or installation steps.
- **Stay DRY**: Avoid duplicating code or logic.
- **Accessibility and Inclusivity**: Where applicable, ensure UIs are accessible and documentation is inclusive.
- **Security**: Do not commit secrets or credentials. See [Security & Privacy](#security--privacy).

---

## Style Guides

- Follow the coding style used in the repository (see `.editorconfig`, `.prettierrc`, or linter configuration).
- Write clear, concise commit messages and PR descriptions.
- Document code, especially public interfaces and complex logic.

---

## Security & Privacy

- Do **NOT** include secrets or sensitive data in code, issues, or PRs.
- If you find a security vulnerability, **do not open a public issue**. Instead, email [security@techforpalestine.org](mailto:security@techforpalestine.org) or follow instructions in [`SECURITY.md`](./SECURITY.md) if present.
- Contributors may use pseudonymous or anonymized accounts if they wish.

---

## Community & Support

- Join our [Discord](https://techforpalestine.org/discord-invite) to connect with maintainers and other contributors.
- Be respectful and collaborative in all interactions.
- Mentorship and pairing opportunities may be available—ask in the community!

---

## License

Unless otherwise specified, contributions are made under the repository's license. See [`LICENSE`](./LICENSE) in each repo for details.

---

## Acknowledgments

We appreciate your commitment to advancing Palestinian liberation through technology. Your work helps build impactful, open-source tools for justice and advocacy.

---

For questions, feel free to open an issue or reach out via [Discord](https://techforpalestine.org/discord-invite).

---

*Adapted for the Tech for Palestine community. Thank you for contributing!*
1 change: 0 additions & 1 deletion README.md

This file was deleted.