home / open-source / contributing

Over the years I have develop a few habits that have enabled me to move faster and break less things.


No merge commits. Branches should be rebased before being merged. Squash or no squash is up to you, but I prefer not to squash commits. Using rebase -i to better organize the commits and write better commit messages is encouraged.


When working with open source repositories, I have found that the best way is to fork the repository and then do your work in a new branch. Depending on the Git hosting service where your code lives, there are instructions to be found for all of them.

Conventional Commits

A specification for adding human and machine readable meaning to commit messages. I recommend using this and I usually enforce this when working with multiple developers, but when working on a solo project it is optional.
Learn about it here.


To make it easier for users and contributors to see precisely what notable changes have been made between each release (or version) of the project. This is mostly optional, but I have found situations where keeping a manual/automatic changelog was useful.
Learn about it here