|
| 1 | +# Contributing to halo |
| 2 | + |
| 3 | +First off, thank you for considering contributing to halo! It's people like you that make halo such a great tool. |
| 4 | + |
| 5 | +## Code of Conduct |
| 6 | + |
| 7 | +This project and everyone participating in it is governed by the [halo Code of Conduct](CODE_OF_CONDUCT.md). By participating, you are expected to uphold this code. |
| 8 | + |
| 9 | +## How Can I Contribute? |
| 10 | + |
| 11 | +### Reporting Bugs |
| 12 | + |
| 13 | +This section guides you through submitting a bug report for halo. Following these guidelines helps maintainers and contributors understand your report, reproduce the behavior, and find related reports. |
| 14 | + |
| 15 | +Before creating bug reports, please check this list as you might find out that you don't need to create one. When you are creating a bug report, please include as many details as possible. |
| 16 | + |
| 17 | +- **Check if your terminal supports True Color.** halo requires a terminal that supports 24-bit color. |
| 18 | +- **Check your Python version.** halo requires Python 3.10 or later. |
| 19 | +- **Check the Issues page** to see if the bug has already been reported. |
| 20 | + |
| 21 | +### Suggesting Enhancements |
| 22 | + |
| 23 | +This section guides you through submitting an enhancement suggestion for halo, including completely new features and minor improvements to existing functionality. |
| 24 | + |
| 25 | +- **Use a clear and descriptive title** for the issue to identify the suggestion. |
| 26 | +- **Provide a step-by-step description of the suggested enhancement** in as many details as possible. |
| 27 | +- **Explain why this enhancement would be useful** to most halo users. |
| 28 | + |
| 29 | +### Your First Code Contribution |
| 30 | + |
| 31 | +Unsure where to begin contributing to halo? You can start by looking through these `good first issue` and `help wanted` issues: |
| 32 | + |
| 33 | +- `good first issue` - issues which should only require a few lines of code, and a test or two. |
| 34 | +- `help wanted` - issues which should be a bit more involved than `good first issue` issues. |
| 35 | + |
| 36 | +#### Local Development |
| 37 | + |
| 38 | +1. Fork the repo and clone it locally. |
| 39 | +2. Create a virtual environment: `python -m venv venv` |
| 40 | +3. Activate the virtual environment: |
| 41 | + - Linux/macOS: `source venv/bin/activate` |
| 42 | + - Windows: `venv\Scripts\activate` |
| 43 | +4. Install dependencies: `pip install -e .` |
| 44 | +5. Run the project: `halo` |
| 45 | + |
| 46 | +### Styleguides |
| 47 | + |
| 48 | +#### Git Commit Messages |
| 49 | + |
| 50 | +- Use the present tense ("Add feature" not "Added feature") |
| 51 | +- Use the imperative mood ("Move cursor to..." not "Moves cursor to...") |
| 52 | +- Limit the first line to 72 characters or less |
| 53 | +- Reference issues and pull requests liberally after the first line |
| 54 | + |
| 55 | +#### Python Styleguide |
| 56 | + |
| 57 | +- Use [ruff](https://github.com/astral-sh/ruff) for linting and formatting. |
| 58 | +- Follow PEP 8 guidelines. |
| 59 | +- Use type hints for all function signatures. |
| 60 | +- Ensure all tests pass before submitting a pull request. |
| 61 | + |
| 62 | +## Pull Requests |
| 63 | + |
| 64 | +- Fill in the required template. |
| 65 | +- Do not include any changes that are not related to the issue. |
| 66 | +- Ensure that the CI/CD pipeline passes. |
| 67 | +- After a pull request is merged, you can safely delete your branch. |
0 commit comments