We try to keep things idiomatic. Here's how you can contribute.
This project uses the Version Release Tool in our CI. So it relies on Git commit messages to indicate when to increment the semantic version. So Git commit messages are VERY important in this repo.
- Using Conventional Commits is required.
- Create meaningful Git commit messages, but keep it simple by just stating what the change does. Don't put garbage or your life story in there.
- Make an effort to keep your commits changes small; try to keep your commits changes to 1-49 lines, 50-99 is also fine, 100 and over is pushing it.
- If you touch a lot of files try to make multiple commits that make sense. Grouping them based on what belongs together. This can be tricky and knowing how to do it comes with experience over time; but it helps organize your commits, keeps them small, and reduced conflicts.
- Be mindful of the dependencies that you pull in. Investigate them, make sure
they do not go overboard with pulling in other dependencies creating a
nightmare chain of yet more dependencies or licenses. The ideal dependency
would not pull in another dependency, but it's fine if they do. It becomes
unmanageable if they pull in 10 or more which also pull in yet even more.
When you add a dependency, check the number of lines it adds to the "go.mod"
file or look at its graph by running
go mod graphin a terminal. From there judge if it is worth pulling in based on what you need from it. - Mind the licenses of the dependencies, for example MIT is O.K. What our for anything other than that.