# GitLab Flavored Semantic Versionin ### Goal This project tries to achieve automatic semantic versioning not basing the version bump on the conventional commits standars, but rather on a `Changelog` value on the trailer of commit messages. This works well if a project follows a similar workflow to the one used at GitLab, where each change must not be made on a development branch, never on the release branch and needs to get merged through a merge request. The beauty of this project is that you don't need to use the conventional commits specification, so you can have commits more similar to ``` Added new feature A to address this requirement ``` instead of ``` feat(): added new feature A to address this requirement ``` This translates to: - _**no "wasted" characters for that message prefix**_ - more readable commit messages - a nicer `Changelog` ``` New features: - Added new feature A to address this requirement - Added feature B ``` vs ``` New features: - feat(): added new feature A to address this requirement - feat: added feature B ``` ### Setup The only tool you need to setup this project on your local environment is Ruby, which can be downloaded using `asdf`. The Ruby version required is `2.7.5`. Once Ruby is present on your system you can install the dependencies by running ```shell bundle install ``` ### Testing At the moment there's no built-in testing platform, but I'm planning to use `rspec` to add unit tests. ### Using There are two ways to run this tool locally at the moment: ```shell ./bin/gfsm [args] ```