Contributing
First off, thanks for taking the time to contribute! Every bit helps, whether it's fixing a typo or adding a new feature.
Before you start
- Check the open issues to see if your idea or bug is already being tracked
- For big changes, open an issue first to discuss — this avoids wasted effort if the direction doesn't fit the project
- For small fixes (typos, docs, minor bugs), just open a PR directly
Setting up the project
Requirements:
- Go 1.21+
- Git
Clone and build:
git clone https://github.com/gabrielEFagundes/commita
cd commita
go mod download
go build -o /path/to/commita/commita.exe core.go
Making changes
Branching
Create a branch from main with the first letters of your username and what the branch does:
git checkout -b gef/some-bug
git checkout -b gef/some-feature
git checkout -b gef/improve-readme
Code style
This project follows standard Go conventions, we have to keep it the Go Way!
# format your code before committing
gofmt -w .
# run the linter
go vet ./...
Tip
If you use VS Code, install the Go extension — it formats on save automatically.
Commits
Keep commits focused and use clear messages:
feat: add support for X
fix: handle nil pointer in Y
docs: update installation steps
test: add coverage for Z
refactor: simplify X logic
Emojis are optional, you can use them if you want!
Submitting a pull request
- Make sure all tests pass;
- Make sure the code is formatted:
gofmt -w . - Push your branch and open a PR against
main - Fill in the PR description — check out the Template
- Wait for review — I'll get back to you as soon as possible
Note
PRs that don't work on my local machine will be put on stand-by until the reason for that is found.
Reporting bugs
Open an issue and include:
- Go version (
go version) - OS and architecture
- A minimal example that shows off the bug
- What you expected vs what actually happened
Check out for the Issue Template
Suggesting features
Open an issue with the enhancement label and describe:
- The problem you're trying to solve
- How you'd expect the feature to work
- Any alternatives you've considered
License
By contributing, you agree that your contributions will be licensed under the same MIT License as the project.