|
| 1 | +# Contributing to lv |
| 2 | + |
| 3 | +First off, thanks for taking the time to contribute! |
| 4 | + |
| 5 | +The following is a set of guidelines for contributing to `lv`, which is hosted on GitHub. These are mostly guidelines, not rules. Use your best judgment, and feel free to propose changes to this document in a pull request. |
| 6 | + |
| 7 | +## Table of Contents |
| 8 | + |
| 9 | +- [Code of Conduct](#code-of-conduct) |
| 10 | +- [I Have a Question](#i-have-a-question) |
| 11 | +- [I Want To Contribute](#i-want-to-contribute) |
| 12 | + - [Reporting Bugs](#reporting-bugs) |
| 13 | + - [Suggesting Enhancements](#suggesting-enhancements) |
| 14 | + - [Your First Code Contribution](#your-first-code-contribution) |
| 15 | + - [Pull Requests](#pull-requests) |
| 16 | +- [Styleguides](#styleguides) |
| 17 | + - [Git Commit Messages](#git-commit-messages) |
| 18 | + |
| 19 | +## Code of Conduct |
| 20 | + |
| 21 | +This project and everyone participating in it is governed by a Code of Conduct. By participating, you are expected to uphold this code. |
| 22 | + |
| 23 | +## I Have a Question |
| 24 | + |
| 25 | +If you have questions, please search the existing [Issues](https://github.com/rajeshkannanramakrishnan/lv/issues) to see if someone else has asked the same thing. If you don't find an answer, feel free to open a new issue. |
| 26 | + |
| 27 | +## I Want To Contribute |
| 28 | + |
| 29 | +### Reporting Bugs |
| 30 | + |
| 31 | +This section guides you through submitting a bug report for `lv`. Following these guidelines helps maintainers and the community understand your report, reproduce the behavior, and find related reports. |
| 32 | + |
| 33 | +- **Use a clear and descriptive title** for the issue to identify the problem. |
| 34 | +- **Describe the exact steps to reproduce the problem** in as many details as possible. |
| 35 | +- **Provide specific examples to demonstrate the steps**. Include links to files or GitHub projects, or copy/pasteable snippets, which you use in those examples. |
| 36 | +- **Describe the behavior you observed after following the steps** and point out what exactly is the problem with that behavior. |
| 37 | +- **Explain which behavior you expected to see instead and why.** |
| 38 | +- **Include screenshots and animated GIFs** which show you following the reproduction steps. |
| 39 | + |
| 40 | +### Suggesting Enhancements |
| 41 | + |
| 42 | +This section guides you through submitting an enhancement suggestion for `lv`, including completely new features and minor improvements to existing functionality. |
| 43 | + |
| 44 | +- **Use a clear and descriptive title** for the issue to identify the suggestion. |
| 45 | +- **Provide a step-by-step description of the suggested enhancement** in as many details as possible. |
| 46 | +- **Explain why this enhancement would be useful** to most `lv` users. |
| 47 | + |
| 48 | +### Your First Code Contribution |
| 49 | + |
| 50 | +Unsure where to begin contributing to `lv`? You can look through these generic `help wanted` and `good first issue` labels: |
| 51 | + |
| 52 | +- [Good first issue](https://github.com/rajeshkannanramakrishnan/lv/labels/good%20first%20issue) - these should only require a few lines of code, and a test or two. |
| 53 | +- [Help wanted](https://github.com/rajeshkannanramakrishnan/lv/labels/help%20wanted) - issues which should be a bit more involved than `good first issue`. |
| 54 | + |
| 55 | +### Pull Requests |
| 56 | + |
| 57 | +The process described here has several goals: |
| 58 | + |
| 59 | +- Maintain `lv`'s quality |
| 60 | +- Fix problems that are important to users |
| 61 | +- Engage the community in working toward the best possible `lv` |
| 62 | +- Enable a sustainable system for `lv`'s maintainers to review contributions |
| 63 | + |
| 64 | +Please follow these steps to have your contribution considered by the maintainers: |
| 65 | + |
| 66 | +1. Follow all instructions in [the template](.github/PULL_REQUEST_TEMPLATE.md) (if available). |
| 67 | +2. Follow the [styleguides](#styleguides) |
| 68 | +3. After you submit your pull request, verify that all status checks are passing <details><summary>What if the status checks are failing?</summary>If a status check is failing, and you believe that the failure is unrelated to your change, please leave a comment on the pull request explaining why you believe the failure is unrelated. A maintainer will re-run the status check for you. If we conclude that the failure was a false positive, then we will open an issue to track that problem with our status check suite.</details> |
| 69 | + |
| 70 | +## Styleguides |
| 71 | + |
| 72 | +### Git Commit Messages |
| 73 | + |
| 74 | +- Use the present tense ("Add feature" not "Added feature") |
| 75 | +- Use the imperative mood ("Move cursor to..." not "Moves cursor to...") |
| 76 | +- Limit the first line to 72 characters or less |
| 77 | +- Reference issues and pull requests liberally after the first line |
| 78 | + |
| 79 | +## Development Setup |
| 80 | + |
| 81 | +To set up your development environment: |
| 82 | + |
| 83 | +1. **Prerequisites**: Ensure you have Go installed (version 1.20+ recommended). |
| 84 | +2. **Clone the repository**: |
| 85 | + ```bash |
| 86 | + git clone https://github.com/rajeshkannanramakrishnan/lv.git |
| 87 | + cd lv |
| 88 | + ``` |
| 89 | +3. **Build**: |
| 90 | + ```bash |
| 91 | + go build -o lv main.go |
| 92 | + ``` |
| 93 | +4. **Run Tests**: |
| 94 | + ```bash |
| 95 | + go test ./... |
| 96 | + ``` |
| 97 | + |
| 98 | +## Dependencies |
| 99 | + |
| 100 | +`lv` uses the following key libraries: |
| 101 | +- [Bubbletea](https://github.com/charmbracelet/bubbletea) for the TUI framework. |
| 102 | +- [Lipgloss](https://github.com/charmbracelet/lipgloss) for styling. |
| 103 | +- [Cobra](https://github.com/spf13/cobra) for CLI commands. |
| 104 | + |
| 105 | +Happy coding! |
0 commit comments