|
| 1 | +# Contributing to OpenBangla Keyboard (OBK) |
| 2 | + |
| 3 | +Thank you for your interest in contributing to OpenBangla Keyboard! We welcome contributions of all kinds, whether it's code, documentation, bug reports, feature requests, or helping fellow contributors. |
| 4 | + |
| 5 | +Please take a moment to review this guide before submitting your contribution. |
| 6 | + |
| 7 | +## Code of Conduct |
| 8 | + |
| 9 | +We expect all contributors to adhere to our [Code of Conduct](CODE_OF_CONDUCT.md). Please read it carefully and ensure you understand and agree to its terms. |
| 10 | + |
| 11 | +## How Can I Contribute? |
| 12 | + |
| 13 | +There are many ways you can contribute to this project: |
| 14 | + |
| 15 | +### Reporting Bugs |
| 16 | + |
| 17 | +If you encounter a bug, please help us by submitting a detailed issue. When reporting a bug, please include: |
| 18 | + |
| 19 | +- **A clear and descriptive title** for the issue. |
| 20 | +- **Steps to reproduce the bug** as precisely as possible. |
| 21 | +- **What you expected to happen** instead of the actual outcome. |
| 22 | +- **Any relevant environment information**, such as your operating system, software versions, and any specific configurations. |
| 23 | +- **If possible, include any error messages or screenshots** that might be helpful. |
| 24 | + |
| 25 | +### Suggesting Enhancements |
| 26 | + |
| 27 | +We are always open to suggestions for new features and improvements. When suggesting an enhancement, please consider: |
| 28 | + |
| 29 | +- **Clearly describe the proposed enhancement** and its benefits. |
| 30 | +- **Explain the use case** and why you believe this enhancement would be valuable. |
| 31 | +- **If possible, suggest how the enhancement might be implemented.** |
| 32 | +- **Check if a similar feature request already exists** before creating a new one. |
| 33 | + |
| 34 | +### Contributing Code |
| 35 | + |
| 36 | +If you'd like to contribute code, please follow these steps: |
| 37 | + |
| 38 | +1. **Fork the repository** on GitHub. |
| 39 | +2. **Clone your fork** to your local machine: |
| 40 | + |
| 41 | + ```bash |
| 42 | + git clone --recursive https://github.com/OpenBangla/OpenBangla-Keyboard.git |
| 43 | + cd OpenBangla-Keyboard |
| 44 | + ``` |
| 45 | + |
| 46 | +3. **Create a new branch** for your changes. Choose a descriptive name: |
| 47 | + |
| 48 | + ```bash |
| 49 | + git checkout -b feature/your-feature-name |
| 50 | + # or |
| 51 | + git checkout -b bugfix/your-bug-fix |
| 52 | + ``` |
| 53 | + |
| 54 | +4. **Make your changes** and ensure your code follows the project's coding style (if any). |
| 55 | +5. **Add your changes** to Git: |
| 56 | +
|
| 57 | + ```bash |
| 58 | + git add . |
| 59 | + ``` |
| 60 | +
|
| 61 | +6. **Commit your changes** with a clear and concise commit message. Follow these guidelines for commit messages: |
| 62 | +
|
| 63 | + - Separate the subject from the body with a blank line. |
| 64 | + - Try limiting the subject line to 50 characters. |
| 65 | + - Do not end the subject line with a period. |
| 66 | + - Use the imperative mood ("Fix bug", "Add feature"). |
| 67 | + - Optionally, provide a more detailed body for context. |
| 68 | +
|
| 69 | + ```bash |
| 70 | + git commit -m "Add feature: Implement bangla spell checker" |
| 71 | + ``` |
| 72 | +
|
| 73 | +7. **Push your branch** to your fork on GitHub: |
| 74 | +
|
| 75 | + ```bash |
| 76 | + git push origin your-feature-name |
| 77 | + ``` |
| 78 | +
|
| 79 | +8. **Create a Pull Request (PR)** through the GitHub website. When creating a PR: |
| 80 | +
|
| 81 | + - Provide a clear and descriptive title for your PR. |
| 82 | + - In the description, explain the changes you've made and the problem they solve (if applicable). |
| 83 | + - Reference any related issues in the PR description (e.g., `Closes #123`, `Fixes #456`). |
| 84 | + |
| 85 | +### Contributing Documentation |
| 86 | + |
| 87 | +Good documentation is crucial! We have a dedicated repository for OpenBangla Keyboard documentation: https://github.com/OpenBangla/manual. Most documentation contributions should be made there, unless it's something that is related to this repository. If you'd like to contribute to the documentation: |
| 88 | + |
| 89 | +- **Submit issues** for any unclear or incorrect documentation you find. |
| 90 | +- **Create pull requests** to fix typos, improve clarity, or add new documentation. Follow the same Git workflow as contributing code. Ensure your documentation changes are well-formatted (e.g., using AsciiDoc or Markdown). |
| 91 | + |
| 92 | +`Note: The contribution guidelines in the OpenBangla/manual repository are the preferred and prioritized source for documentation contributions.` |
| 93 | + |
| 94 | +## Pull Request Guidelines |
| 95 | + |
| 96 | +To ensure your pull request is reviewed and merged efficiently, please follow these guidelines: |
| 97 | + |
| 98 | +- **Target your pull request to the `develop` branch** (or the designated development branch), not the `main` branch. |
| 99 | +- **Keep your PR focused** on a single issue or feature. Avoid making unrelated changes in the same PR. |
| 100 | +- **Ensure your code builds and passes all tests** (if applicable). |
| 101 | +- **Follow the project's coding style** and conventions. |
| 102 | +- **Write clear and concise commit messages.** |
| 103 | +- **Provide a detailed description** in your pull request explaining your changes and their purpose. |
| 104 | +- **Be responsive to feedback** during the code review process. |
| 105 | +
|
| 106 | +## Questions? |
| 107 | +
|
| 108 | +If you have any questions about contributing, feel free to ask in [GitHub Discussions](https://github.com/OpenBangla/OpenBangla-Keyboard/discussions)! |
| 109 | +
|
| 110 | +Thank you again for your contribution! We appreciate your time and effort in making OBK better. |
0 commit comments