Repository: cocogitto/cocogitto
Pull request #381 (2024-03-16 23:32:02)

chore(deps-dev): bump follow-redirects from 1.15.4 to 1.15.6 in /docs
Bumps [follow-redirects](https://github.com/follow-redirects/follow-redirects) from 1.15.4 to 1.15.6.
<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/follow-redirects/follow-redirects/commit/35a517c5861d79dc8bff7db8626013d20b711b06"><code>35a517c</code></a> Release version 1.15.6 of the npm package.</li>
<li><a href="https://github.com/follow-redirects/follow-redirects/commit/c4f847f85176991f95ab9c88af63b1294de8649b"><code>c4f847f</code></a> Drop Proxy-Authorization across hosts.</li>
<li><a href="https://github.com/follow-redirects/follow-redirects/commit/8526b4a1b2ab3a2e4044299377df623a661caa76"><code>8526b4a</code></a> Use GitHub for disclosure.</li>
<li><a href="https://github.com/follow-redirects/follow-redirects/commit/b1677ce00110ee50dc5da576751d39b281fc4944"><code>b1677ce</code></a> Release version 1.15.5 of the npm package.</li>
<li><a href="https://github.com/follow-redirects/follow-redirects/commit/d8914f7982403ea096b39bd594a00ee9d3b7e224"><code>d8914f7</code></a> Preserve fragment in responseUrl.</li>
<li>See full diff in <a href="https://github.com/follow-redirects/follow-redirects/compare/v1.15.4...v1.15.6">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=follow-redirects&package-manager=npm_and_yarn&previous-version=1.15.4&new-version=1.15.6)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/cocogitto/cocogitto/network/alerts).

</details>

codecov[bot]: ## [Codecov](https://app.codecov.io/gh/cocogitto/cocogitto/pull/381?dropdown=coverage&src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=cocogitto) Report
All modified and coverable lines are covered by tests :white_check_mark:
> Project coverage is 86.36%. Comparing base [(`5021a13`)](https://app.codecov.io/gh/cocogitto/cocogitto/commit/5021a13bf77faf61afc25c2b8ae70b90f35f70fc?dropdown=coverage&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=cocogitto) to head [(`f9254da`)](https://app.codecov.io/gh/cocogitto/cocogitto/pull/381?dropdown=coverage&src=pr&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=cocogitto).


<details><summary>Additional details and impacted files</summary>


```diff
@@            Coverage Diff             @@
##             main     #381      +/-   ##
==========================================
- Coverage   86.38%   86.36%   -0.02%     
==========================================
  Files          49       49              
  Lines        7072     7072              
==========================================
- Hits         6109     6108       -1     
- Misses        963      964       +1     
```



</details>

[:umbrella: View full report in Codecov by Sentry](https://app.codecov.io/gh/cocogitto/cocogitto/pull/381?dropdown=coverage&src=pr&el=continue&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=cocogitto).   
:loudspeaker: Have feedback on the report? [Share it here](https://about.codecov.io/codecov-pr-comment-feedback/?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=cocogitto).


Patch:
diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml
index 4e17268..74ffe3c 100644
--- a/.github/workflows/CI.yml
+++ b/.github/workflows/CI.yml
@@ -1,4 +1,3 @@
-
 name: CI
 
 on:
@@ -57,8 +56,8 @@ jobs:
         if: ${{matrix.conventional_commit_check }}
         uses: cocogitto/cocogitto-action@v3.5
         with:
-          git-user: 'github-actions'
-          git-user-email: 'github-actions@github.com'
+          git-user: "github-actions"
+          git-user-email: "github-actions@github.com"
 
       - name: Install stable toolchain
         uses: actions-rs/toolchain@v1
@@ -79,8 +78,9 @@ jobs:
 
       - name: Upload coverage to Codecov
         if: ${{matrix.coverage}}
-        uses: codecov/codecov-action@v3
+        uses: codecov/codecov-action@v4
         with:
+          token: ${{ secrets.CODECOV_TOKEN }}
           files: lcov.info
           fail_ci_if_error: true
 
@@ -91,7 +91,6 @@ jobs:
           command: nextest
           args: run
 
-
   lints:
     name: Lints & Format
     runs-on: ubuntu-latest
diff --git a/Cargo.lock b/Cargo.lock
index 4758fee..369fc23 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -4,9 +4,9 @@ version = 3
 
 [[package]]
 name = "aho-corasick"
-version = "1.1.2"
+version = "1.1.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0"
+checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916"
 dependencies = [
  "memchr",
 ]
@@ -28,47 +28,48 @@ dependencies = [
 
 [[package]]
 name = "anstream"
-version = "0.6.13"
+version = "0.6.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d96bd03f33fe50a863e394ee9718a706f988b9079b20c3784fb726e7678b62fb"
+checksum = "418c75fa768af9c03be99d17643f93f79bbba589895012a80e3452a19ddda15b"
 dependencies = [
  "anstyle",
  "anstyle-parse",
  "anstyle-query",
  "anstyle-wincon",
  "colorchoice",
+ "is_terminal_polyfill",
  "utf8parse",
 ]
 
 [[package]]
 name = "anstyle"
-version = "1.0.6"
+version = "1.0.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8901269c6307e8d93993578286ac0edf7f195079ffff5ebdeea6a59ffb7e36bc"
+checksum = "038dfcf04a5feb68e9c60b21c9625a54c2c0616e79b72b0fd87075a056ae1d1b"
 
 [[package]]
 name = "anstyle-parse"
-version = "0.2.3"
+version = "0.2.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c75ac65da39e5fe5ab759307499ddad880d724eed2f6ce5b5e8a26f4f387928c"
+checksum = "c03a11a9034d92058ceb6ee011ce58af4a9bf61491aa7e1e59ecd24bd40d22d4"
 dependencies = [
  "utf8parse",
 ]
 
 [[package]]
 name = "anstyle-query"
-version = "1.0.2"
+version = "1.0.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e28923312444cdd728e4738b3f9c9cac739500909bb3d3c94b43551b16517648"
+checksum = "a64c907d4e79225ac72e2a354c9ce84d50ebb4586dee56c82b3ee73004f537f5"
 dependencies = [
  "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "anstyle-wincon"
-version = "3.0.2"
+version = "3.0.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1cd54b81ec8d6180e24654d0b371ad22fc3dd083b6ff8ba325b72e00c87660a7"
+checksum = "61a38449feb7068f52bb06c12759005cf459ee52bb4adc1d5a7c4322d716fb19"
 dependencies = [
  "anstyle",
  "windows-sys 0.52.0",
@@ -76,9 +77,9 @@ dependencies = [
 
 [[package]]
 name = "anyhow"
-version = "1.0.75"
+version = "1.0.83"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6"
+checksum = "25bdb32cbbdce2b519a9cd7df3a678443100e265d5e25ca763b7572a5104f5f3"
 
 [[package]]
 name = "assert_cmd"
@@ -97,9 +98,9 @@ dependencies = [
 
 [[package]]
 name = "autocfg"
-version = "1.1.0"
+version = "1.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
+checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0"
 
 [[package]]
 name = "bitflags"
@@ -109,9 +110,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
 
 [[package]]
 name = "bitflags"
-version = "2.4.2"
+version = "2.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf"
+checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1"
 
 [[package]]
 name = "block-buffer"
@@ -135,18 +136,19 @@ dependencies = [
 
 [[package]]
 name = "bumpalo"
-version = "3.15.3"
+version = "3.16.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8ea184aa71bb362a1157c896979544cc23974e08fd265f29ea96b59f0b4a555b"
+checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c"
 
 [[package]]
 name = "cc"
-version = "1.0.90"
+version = "1.0.97"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8cd6604a82acf3039f1144f54b8eb34e91ffba622051189e71b781822d5ee1f5"
+checksum = "099a5357d84c4c61eb35fc8eafa9a79a902c2f76911e5747ced4e032edd8d9b4"
 dependencies = [
  "jobserver",
  "libc",
+ "once_cell",
 ]
 
 [[package]]
@@ -157,9 +159,9 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
 
 [[package]]
 name = "chrono"
-version = "0.4.35"
+version = "0.4.38"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8eaf5903dcbc0a39312feb77df2ff4c76387d591b9fc7b04a238dcf8bb62639a"
+checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401"
 dependencies = [
  "android-tzdata",
  "iana-time-zone",
@@ -167,7 +169,7 @@ dependencies = [
  "num-traits",
  "serde",
  "wasm-bindgen",
- "windows-targets 0.52.4",
+ "windows-targets 0.52.5",
 ]
 
 [[package]]
@@ -194,9 +196,9 @@ dependencies = [
 
 [[package]]
 name = "clap"
-version = "4.5.2"
+version = "4.5.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b230ab84b0ffdf890d5a10abdbc8b83ae1c4918275daea1ab8801f71536b2651"
+checksum = "90bc066a67923782aa8515dbaea16946c5bcc5addbd668bb80af688e53e548a0"
 dependencies = [
  "clap_builder",
  "clap_derive",
@@ -216,9 +218,9 @@ dependencies = [
 
 [[package]]
 name = "clap_complete"
-version = "4.5.1"
+version = "4.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "885e4d7d5af40bfb99ae6f9433e292feac98d452dcb3ec3d25dfe7552b77da8c"
+checksum = "dd79504325bf38b10165b02e89b4347300f855f273c4cb30c4a3209e6583275e"
 dependencies = [
  "clap",
 ]
@@ -235,14 +237,14 @@ dependencies = [
 
 [[package]]
 name = "clap_derive"
-version = "4.5.0"
+version = "4.5.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "307bc0538d5f0f83b8248db3087aa92fe504e4691294d0c96c0eabc33f47ba47"
+checksum = "528131438037fd55894f62d6e9f068b8f45ac57ffa77517819645d10aed04f64"
 dependencies = [
  "heck",
  "proc-macro2",
  "quote",
- "syn 2.0.52",
+ "syn 2.0.63",
 ]
 
 [[package]]
@@ -263,9 +265,9 @@ dependencies = [
 
 [[package]]
 name = "cmd_lib"
-version = "1.9.3"
+version = "1.9.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e5f4cbdcab51ca635c5b19c85ece4072ea42e0d2360242826a6fc96fb11f0d40"
+checksum = "718f77610af91e4d648fe9da0150ae58698cbcfb93bf63e764907fbefd56ffe8"
 dependencies = [
  "cmd_lib_macros",
  "env_logger",
@@ -277,9 +279,9 @@ dependencies = [
 
 [[package]]
 name = "cmd_lib_macros"
-version = "1.9.3"
+version = "1.9.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ae881960f7e2a409f91ef0b1c09558cf293031a1d6e8b45f908311f2a43f5fdf"
+checksum = "9a80fac05ed12fe97a70b5dfdd910c9b90b53f4de69002c3179e29ac2d066abc"
 dependencies = [
  "proc-macro-error",
  "proc-macro2",
@@ -323,14 +325,14 @@ dependencies = [
  "tempfile",
  "tera",
  "toml 0.5.11",
- "which 6.0.0",
+ "which 6.0.1",
 ]
 
 [[package]]
 name = "colorchoice"
-version = "1.0.0"
+version = "1.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7"
+checksum = "0b6a852b24ab71dffc585bcb46eaf7959d175cb865a7152e35b348d1b2960422"
 
 [[package]]
 name = "colored"
@@ -352,7 +354,7 @@ dependencies = [
  "nom",
  "pathdiff",
  "serde",
- "toml 0.8.10",
+ "toml 0.8.12",
 ]
 
 [[package]]
@@ -417,9 +419,9 @@ dependencies = [
 
 [[package]]
 name = "deunicode"
-version = "1.4.3"
+version = "1.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b6e854126756c496b8c81dec88f9a706b15b875c5849d4097a3854476b9fdf94"
+checksum = "339544cc9e2c4dc3fc7149fd630c5f22263a4fdf18a98afd0075784968b5cf00"
 
 [[package]]
 name = "diff"
@@ -461,9 +463,9 @@ dependencies = [
 
 [[package]]
 name = "either"
-version = "1.10.0"
+version = "1.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "11157ac094ffbdde99aa67b23417ebdd801842852b500e395a45a9c0aac03e4a"
+checksum = "a47c1c47d2f5964e29c61246e81db715514cd532db6b5116a25ea3c03d6780a2"
 
 [[package]]
 name = "env_logger"
@@ -486,9 +488,9 @@ checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
 
 [[package]]
 name = "errno"
-version = "0.3.8"
+version = "0.3.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245"
+checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba"
 dependencies = [
  "libc",
  "windows-sys 0.52.0",
@@ -507,9 +509,9 @@ dependencies = [
 
 [[package]]
 name = "fastrand"
-version = "2.0.1"
+version = "2.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5"
+checksum = "9fc0510504f03c51ada170672ac806f1f105a88aa97a5281117e1ddc3368e51a"
 
 [[package]]
 name = "float-cmp"
@@ -553,9 +555,9 @@ dependencies = [
 
 [[package]]
 name = "getrandom"
-version = "0.2.12"
+version = "0.2.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5"
+checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7"
 dependencies = [
  "cfg-if",
  "libc",
@@ -564,11 +566,11 @@ dependencies = [
 
 [[package]]
 name = "git2"
-version = "0.18.2"
+version = "0.18.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1b3ba52851e73b46a4c3df1d89343741112003f0f6f13beb0dfac9e457c3fdcd"
+checksum = "232e6a7bfe35766bf715e55a88b39a700596c0ccfd88cd3680b4cdb40d66ef70"
 dependencies = [
- "bitflags 2.4.2",
+ "bitflags 2.5.0",
  "libc",
  "libgit2-sys",
  "log",
@@ -601,15 +603,15 @@ dependencies = [
 
 [[package]]
 name = "hashbrown"
-version = "0.14.3"
+version = "0.14.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604"
+checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1"
 
 [[package]]
 name = "heck"
-version = "0.4.1"
+version = "0.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
+checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
 
 [[package]]
 name = "hermit-abi"
@@ -692,9 +694,9 @@ dependencies = [
 
 [[package]]
 name = "indexmap"
-version = "2.2.5"
+version = "2.2.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7b0b929d511467233429c45a44ac1dcaa21ba0f5ba11e4879e6ed28ddb4f9df4"
+checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26"
 dependencies = [
  "equivalent",
  "hashbrown",
@@ -702,9 +704,9 @@ dependencies = [
 
 [[package]]
 name = "indoc"
-version = "2.0.4"
+version = "2.0.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1e186cfbae8084e513daff4240b4797e342f988cecda4fb6c939150f96315fd8"
+checksum = "b248f5224d1d606005e02c97f5aa4e88eeb230488bcc03bc9ca4d7991399f2b5"
 
 [[package]]
 name = "is-terminal"
@@ -717,6 +719,12 @@ dependencies = [
  "windows-sys 0.52.0",
 ]
 
+[[package]]
+name = "is_terminal_polyfill"
+version = "1.70.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f8478577c03552c21db0e2724ffb8986a5ce7af88107e6be5d2ee6e158c12800"
+
 [[package]]
 name = "itertools"
 version = "0.12.1"
@@ -728,15 +736,15 @@ dependencies = [
 
 [[package]]
 name = "itoa"
-version = "1.0.10"
+version = "1.0.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c"
+checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b"
 
 [[package]]
 name = "jobserver"
-version = "0.1.28"
+version = "0.1.31"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ab46a6e9526ddef3ae7f787c06f0f2600639ba80ea3eade3d8e670a2230f51d6"
+checksum = "d2b099aaa34a9751c5bf0878add70444e1ed2dd73f347be99003d4577277de6e"
 dependencies = [
  "libc",
 ]
@@ -758,9 +766,9 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
 
 [[package]]
 name = "libc"
-version = "0.2.153"
+version = "0.2.154"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd"
+checksum = "ae743338b92ff9146ce83992f766a31066a91a8c84a45e0e9f21e7cf6de6d346"
 
 [[package]]
 name = "libgit2-sys"
@@ -782,9 +790,9 @@ checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058"
 
 [[package]]
 name = "libz-sys"
-version = "1.1.15"
+version = "1.1.16"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "037731f5d3aaa87a5675e895b63ddff1a87624bc29f77004ea829809654e48f6"
+checksum = "5e143b5e666b2695d28f6bca6497720813f699c9602dd7f5cac91008b8ada7f9"
 dependencies = [
  "cc",
  "libc",
@@ -806,9 +814,9 @@ checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c"
 
 [[package]]
 name = "memchr"
-version = "2.7.1"
+version = "2.7.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149"
+checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d"
 
 [[package]]
 name = "minimal-lexical"
@@ -834,9 +842,9 @@ checksum = "61807f77802ff30975e01f4f071c8ba10c022052f98b3294119f3e615d13e5be"
 
 [[package]]
 name = "num"
-version = "0.4.1"
+version = "0.4.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b05180d69e3da0e530ba2a1dae5110317e49e3b7f3d41be227dc5f92e49ee7af"
+checksum = "35bd024e8b2ff75562e5f34e7f4905839deb4b22955ef5e73d2fea1b9813cb23"
 dependencies = [
  "num-bigint",
  "num-complex",
@@ -848,20 +856,19 @@ dependencies = [
 
 [[package]]
 name = "num-bigint"
-version = "0.4.4"
+version = "0.4.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "608e7659b5c3d7cba262d894801b9ec9d00de989e8a82bd4bef91d08da45cdc0"
+checksum = "c165a9ab64cf766f73521c0dd2cfdff64f488b8f0b3e621face3462d3db536d7"
 dependencies = [
- "autocfg",
  "num-integer",
  "num-traits",
 ]
 
 [[package]]
 name = "num-complex"
-version = "0.4.5"
+version = "0.4.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "23c6602fda94a57c990fe0df199a035d83576b496aa29f4e634a8ac6004e68a6"
+checksum = "73f88a1307638156682bada9d7604135552957b7818057dcef22705b4d509495"
 dependencies = [
  "num-traits",
 ]
@@ -877,9 +884,9 @@ dependencies = [
 
 [[package]]
 name = "num-iter"
-version = "0.1.44"
+version = "0.1.45"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d869c01cc0c455284163fd0092f1f93835385ccab5a98a0dcc497b2f8bf055a9"
+checksum = "1429034a0490724d0075ebb2bc9e875d6503c3cf69e235a8941aa757d83ef5bf"
 dependencies = [
  "autocfg",
  "num-integer",
@@ -888,11 +895,10 @@ dependencies = [
 
 [[package]]
 name = "num-rational"
-version = "0.4.1"
+version = "0.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0"
+checksum = "f83d14da390562dca69fc84082e73e548e1ad308d24accdedd2720017cb37824"
 dependencies = [
- "autocfg",
  "num-bigint",
  "num-integer",
  "num-traits",
@@ -900,9 +906,9 @@ dependencies = [
 
 [[package]]
 name = "num-traits"
-version = "0.2.18"
+version = "0.2.19"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a"
+checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841"
 dependencies = [
  "autocfg",
 ]
@@ -925,9 +931,9 @@ dependencies = [
 
 [[package]]
 name = "parse-zoneinfo"
-version = "0.3.0"
+version = "0.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c705f256449c60da65e11ff6626e0c16a0a0b96aaa348de61376b249bc340f41"
+checksum = "1f2a05b18d44e2957b88f96ba460715e295bc1d7510468a2f3d3b44535d26c24"
 dependencies = [
  "regex",
 ]
@@ -946,9 +952,9 @@ checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
 
 [[package]]
 name = "pest"
-version = "2.7.8"
+version = "2.7.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "56f8023d0fb78c8e03784ea1c7f3fa36e68a723138990b8d5a47d916b651e7a8"
+checksum = "560131c633294438da9f7c4b08189194b20946c8274c6b9e38881a7874dc8ee8"
 dependencies = [
  "memchr",
  "thiserror",
@@ -957,9 +963,9 @@ dependencies = [
 
 [[package]]
 name = "pest_derive"
-version = "2.7.8"
+version = "2.7.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b0d24f72393fd16ab6ac5738bc33cdb6a9aa73f8b902e8fe29cf4e67d7dd1026"
+checksum = "26293c9193fbca7b1a3bf9b79dc1e388e927e6cacaa78b4a3ab705a1d3d41459"
 dependencies = [
  "pest",
  "pest_generator",
@@ -967,22 +973,22 @@ dependencies = [
 
 [[package]]
 name = "pest_generator"
-version = "2.7.8"
+version = "2.7.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fdc17e2a6c7d0a492f0158d7a4bd66cc17280308bbaff78d5bef566dca35ab80"
+checksum = "3ec22af7d3fb470a85dd2ca96b7c577a1eb4ef6f1683a9fe9a8c16e136c04687"
 dependencies = [
  "pest",
  "pest_meta",
  "proc-macro2",
  "quote",
- "syn 2.0.52",
+ "syn 2.0.63",
 ]
 
 [[package]]
 name = "pest_meta"
-version = "2.7.8"
+version = "2.7.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "934cd7631c050f4674352a6e835d5f6711ffbfb9345c2fc0107155ac495ae293"
+checksum = "d7a240022f37c361ec1878d646fc5b7d7c4d28d5946e1a80ad5a7a4f4ca0bdcd"
 dependencies = [
  "once_cell",
  "pest",
@@ -1105,9 +1111,9 @@ dependencies = [
 
 [[package]]
 name = "proc-macro2"
-version = "1.0.78"
+version = "1.0.82"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae"
+checksum = "8ad3d49ab951a01fbaafe34f2ec74122942fe18a3f9814c3268f1bb72042131b"
 dependencies = [
  "unicode-ident",
 ]
@@ -1120,9 +1126,9 @@ checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0"
 
 [[package]]
 name = "quote"
-version = "1.0.35"
+version = "1.0.36"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef"
+checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7"
 dependencies = [
  "proc-macro2",
 ]
@@ -1159,9 +1165,9 @@ dependencies = [
 
 [[package]]
 name = "regex"
-version = "1.10.3"
+version = "1.10.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b62dbe01f0b06f9d8dc7d49e05a0785f153b00b2c227856282f671e0318c9b15"
+checksum = "c117dbdfde9c8308975b6a18d71f3f385c89461f7b3fb054288ecf2a2058ba4c"
 dependencies = [
  "aho-corasick",
  "memchr",
@@ -1182,9 +1188,9 @@ dependencies = [
 
 [[package]]
 name = "regex-syntax"
-version = "0.8.2"
+version = "0.8.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f"
+checksum = "adad44e29e4c806119491a7f06f03de4d1af22c3a680dd47f1e6e179439d1f56"
 
 [[package]]
 name = "roff"
@@ -1194,11 +1200,11 @@ checksum = "b833d8d034ea094b1ea68aa6d5c740e0d04bad9d16568d08ba6f76823a114316"
 
 [[package]]
 name = "rustix"
-version = "0.38.31"
+version = "0.38.34"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6ea3e1a662af26cd7a3ba09c0297a31af215563ecf42817c98df621387f4e949"
+checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f"
 dependencies = [
- "bitflags 2.4.2",
+ "bitflags 2.5.0",
  "errno",
  "libc",
  "linux-raw-sys",
@@ -1219,9 +1225,9 @@ dependencies = [
 
 [[package]]
 name = "ryu"
-version = "1.0.17"
+version = "1.0.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1"
+checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f"
 
 [[package]]
 name = "same-file"
@@ -1256,35 +1262,35 @@ dependencies = [
 
 [[package]]
 name = "semver"
-version = "1.0.22"
+version = "1.0.23"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "92d43fe69e652f3df9bdc2b85b2854a0825b86e4fb76bc44d945137d053639ca"
+checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b"
 
 [[package]]
 name = "serde"
-version = "1.0.197"
+version = "1.0.201"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2"
+checksum = "780f1cebed1629e4753a1a38a3c72d30b97ec044f0aef68cb26650a3c5cf363c"
 dependencies = [
  "serde_derive",
 ]
 
 [[package]]
 name = "serde_derive"
-version = "1.0.197"
+version = "1.0.201"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b"
+checksum = "c5e405930b9796f1c00bee880d03fc7e0bb4b9a11afc776885ffe84320da2865"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.52",
+ "syn 2.0.63",
 ]
 
 [[package]]
 name = "serde_json"
-version = "1.0.114"
+version = "1.0.117"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c5f09b1bd632ef549eaa9f60a1f8de742bdbc698e6cee2095fc84dde5f549ae0"
+checksum = "455182ea6142b14f93f4bc5320a2b31c1f266b66a4a5c858b013302a5d8cbfc3"
 dependencies = [
  "itoa",
  "ryu",
@@ -1357,9 +1363,9 @@ dependencies = [
 
 [[package]]
 name = "strsim"
-version = "0.11.0"
+version = "0.11.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5ee073c9e4cd00e28217186dbe12796d692868f432bf2e97ee73bed0c56dfa01"
+checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f"
 
 [[package]]
 name = "syn"
@@ -1374,9 +1380,9 @@ dependencies = [
 
 [[package]]
 name = "syn"
-version = "2.0.52"
+version = "2.0.63"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b699d15b36d1f02c3e7c69f8ffef53de37aefae075d8488d4ba1a7788d574a07"
+checksum = "bf5be731623ca1a1fb7d8be6f261a3be6d3e2337b8a1f97be944d020c8fcb704"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -1434,22 +1440,22 @@ checksum = "3369f5ac52d5eb6ab48c6b4ffdc8efbcad6b89c765749064ba298f2c68a16a76"
 
 [[package]]
 name = "thiserror"
-version = "1.0.57"
+version = "1.0.60"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1e45bcbe8ed29775f228095caf2cd67af7a4ccf756ebff23a306bf3e8b47b24b"
+checksum = "579e9083ca58dd9dcf91a9923bb9054071b9ebbd800b342194c9feb0ee89fc18"
 dependencies = [
  "thiserror-impl",
 ]
 
 [[package]]
 name = "thiserror-impl"
-version = "1.0.57"
+version = "1.0.60"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a953cb265bef375dae3de6663da4d3804eee9682ea80d8e2542529b73c531c81"
+checksum = "e2470041c06ec3ac1ab38d0356a6119054dedaea53e12fbefc0de730a1c08524"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.52",
+ "syn 2.0.63",
 ]
 
 [[package]]
@@ -1488,9 +1494,9 @@ dependencies = [
 
 [[package]]
 name = "toml"
-version = "0.8.10"
+version = "0.8.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9a9aad4a3066010876e8dcf5a8a06e70a558751117a145c6ce2b82c2e2054290"
+checksum = "e9dd1545e8208b4a5af1aa9bbd0b4cf7e9ea08fabc5d0a5c67fcaafa17433aa3"
 dependencies = [
  "serde",
  "serde_spanned",
@@ -1509,9 +1515,9 @@ dependencies = [
 
 [[package]]
 name = "toml_edit"
-version = "0.22.6"
+version = "0.22.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2c1b5fd4128cc8d3e0cb74d4ed9a9cc7c7284becd4df68f5f940e1ad123606f6"
+checksum = "d3328d4f68a705b2a4498da1d580585d39a6510f98318a2cec3018a7ec61ddef"
 dependencies = [
  "indexmap",
  "serde",
@@ -1678,7 +1684,7 @@ dependencies = [
  "once_cell",
  "proc-macro2",
  "quote",
- "syn 2.0.52",
+ "syn 2.0.63",
  "wasm-bindgen-shared",
 ]
 
@@ -1700,7 +1706,7 @@ checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.52",
+ "syn 2.0.63",
  "wasm-bindgen-backend",
  "wasm-bindgen-shared",
 ]
@@ -1725,15 +1731,14 @@ dependencies = [
 
 [[package]]
 name = "which"
-version = "6.0.0"
+version = "6.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7fa5e0c10bf77f44aac573e498d1a82d5fbd5e91f6fc0a99e7be4b38e85e101c"
+checksum = "8211e4f58a2b2805adfbefbc07bab82958fc91e3836339b1ab7ae32465dce0d7"
 dependencies = [
  "either",
  "home",
- "once_cell",
  "rustix",
- "windows-sys 0.52.0",
+ "winsafe",
 ]
 
 [[package]]
@@ -1754,11 +1759,11 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
 
 [[package]]
 name = "winapi-util"
-version = "0.1.6"
+version = "0.1.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596"
+checksum = "4d4cc384e1e73b93bafa6fb4f1df8c41695c8a91cf9c4c64358067d15a7b6c6b"
 dependencies = [
- "winapi",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
@@ -1773,7 +1778,7 @@ version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9"
 dependencies = [
- "windows-targets 0.52.4",
+ "windows-targets 0.52.5",
 ]
 
 [[package]]
@@ -1791,7 +1796,7 @@ version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
 dependencies = [
- "windows-targets 0.52.4",
+ "windows-targets 0.52.5",
 ]
 
 [[package]]
@@ -1811,17 +1816,18 @@ dependencies = [
 
 [[package]]
 name = "windows-targets"
-version = "0.52.4"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7dd37b7e5ab9018759f893a1952c9420d060016fc19a472b4bb20d1bdd694d1b"
+checksum = "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb"
 dependencies = [
- "windows_aarch64_gnullvm 0.52.4",
- "windows_aarch64_msvc 0.52.4",
- "windows_i686_gnu 0.52.4",
- "windows_i686_msvc 0.52.4",
- "windows_x86_64_gnu 0.52.4",
- "windows_x86_64_gnullvm 0.52.4",
- "windows_x86_64_msvc 0.52.4",
+ "windows_aarch64_gnullvm 0.52.5",
+ "windows_aarch64_msvc 0.52.5",
+ "windows_i686_gnu 0.52.5",
+ "windows_i686_gnullvm",
+ "windows_i686_msvc 0.52.5",
+ "windows_x86_64_gnu 0.52.5",
+ "windows_x86_64_gnullvm 0.52.5",
+ "windows_x86_64_msvc 0.52.5",
 ]
 
 [[package]]
@@ -1832,9 +1838,9 @@ checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
 
 [[package]]
 name = "windows_aarch64_gnullvm"
-version = "0.52.4"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bcf46cf4c365c6f2d1cc93ce535f2c8b244591df96ceee75d8e83deb70a9cac9"
+checksum = "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263"
 
 [[package]]
 name = "windows_aarch64_msvc"
@@ -1844,9 +1850,9 @@ checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
 
 [[package]]
 name = "windows_aarch64_msvc"
-version = "0.52.4"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "da9f259dd3bcf6990b55bffd094c4f7235817ba4ceebde8e6d11cd0c5633b675"
+checksum = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6"
 
 [[package]]
 name = "windows_i686_gnu"
@@ -1856,9 +1862,15 @@ checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
 
 [[package]]
 name = "windows_i686_gnu"
-version = "0.52.4"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b474d8268f99e0995f25b9f095bc7434632601028cf86590aea5c8a5cb7801d3"
+checksum = "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670"
+
+[[package]]
+name = "windows_i686_gnullvm"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9"
 
 [[package]]
 name = "windows_i686_msvc"
@@ -1868,9 +1880,9 @@ checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
 
 [[package]]
 name = "windows_i686_msvc"
-version = "0.52.4"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1515e9a29e5bed743cb4415a9ecf5dfca648ce85ee42e15873c3cd8610ff8e02"
+checksum = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf"
 
 [[package]]
 name = "windows_x86_64_gnu"
@@ -1880,9 +1892,9 @@ checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
 
 [[package]]
 name = "windows_x86_64_gnu"
-version = "0.52.4"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5eee091590e89cc02ad514ffe3ead9eb6b660aedca2183455434b93546371a03"
+checksum = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9"
 
 [[package]]
 name = "windows_x86_64_gnullvm"
@@ -1892,9 +1904,9 @@ checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
 
 [[package]]
 name = "windows_x86_64_gnullvm"
-version = "0.52.4"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "77ca79f2451b49fa9e2af39f0747fe999fcda4f5e241b2898624dca97a1f2177"
+checksum = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596"
 
 [[package]]
 name = "windows_x86_64_msvc"
@@ -1904,19 +1916,25 @@ checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
 
 [[package]]
 name = "windows_x86_64_msvc"
-version = "0.52.4"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "32b752e52a2da0ddfbdbcc6fceadfeede4c939ed16d13e648833a61dfb611ed8"
+checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0"
 
 [[package]]
 name = "winnow"
-version = "0.6.5"
+version = "0.6.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dffa400e67ed5a4dd237983829e66475f0a4a26938c4b04c21baede6262215b8"
+checksum = "c3c52e9c97a68071b23e836c9380edae937f17b9c4667bd021973efc689f618d"
 dependencies = [
  "memchr",
 ]
 
+[[package]]
+name = "winsafe"
+version = "0.0.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d135d17ab770252ad95e9a872d365cf3090e3be864a34ab46f48555993efc904"
+
 [[package]]
 name = "yansi"
 version = "0.5.1"
diff --git a/README.md b/README.md
index f94b5c8..49c778f 100644
--- a/README.md
+++ b/README.md
@@ -70,7 +70,7 @@ and [Semver](https://semver.org/) specifications.
 ### Why ?
 
 There are plenty of tools listed on
-the [conventional commits web site](https://www.conventionalcommits.org/en/about/)
+the [conventional commits website](https://www.conventionalcommits.org/en/about/)
 to help you generate changelog, git hooks, commit template etc. Some of them are specifically designed for the
 Conventional Commits specification, and some of them are general purpose. 
 
@@ -150,6 +150,12 @@ git commit -m "feat: add awesome feature"
 
 See [User guide -> Conventional commits](https://docs.cocogitto.io/guide/#conventional-commits).
 
+## Configuration
+
+Use `cog.toml` file to configure your usage of Cocogitto.
+
+For the full list of options, see [User guide ->  Configuration reference](https://docs.cocogitto.io/config/).
+
 ## Auto-bumps
 
 Creating a version with `cog bump` will perform the following actions :
diff --git a/cog.toml b/cog.toml
index 18296da..cf16383 100644
--- a/cog.toml
+++ b/cog.toml
@@ -1,3 +1,5 @@
+# For a reference of possible values: https://docs.cocogitto.io/config/
+
 # A list of glob patterns describing branches on which semver bump are allowed
 branch_whitelist = ["main"]
 
diff --git a/docker/Dockerfile b/docker/Dockerfile
index 3566e75..fbfb485 100644
--- a/docker/Dockerfile
+++ b/docker/Dockerfile
@@ -1,5 +1,5 @@
 # Note that the following build needs binaries to be precompiled for the target
-# architectures. Use the `build-all` just recipies to build for all targets.
+# architectures. Use the `build-all` just recipes to build for all targets.
 FROM alpine as arm-builder
 COPY ./target/armv7-unknown-linux-musleabihf/release/cog /cog
 
diff --git a/docs/package-lock.json b/docs/package-lock.json
index f59bc7c..c3d4503 100644
--- a/docs/package-lock.json
+++ b/docs/package-lock.json
@@ -2362,9 +2362,9 @@
       }
     },
     "node_modules/follow-redirects": {
-      "version": "1.15.4",
-      "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.4.tgz",
-      "integrity": "sha512-Cr4D/5wlrb0z9dgERpUL3LrmPKVDsETIJhaCMeDfuFYcqa5bldGV6wBsAN6X/vxlXQtFBMrXdXxdL8CbDTGniw==",
+      "version": "1.15.6",
+      "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz",
+      "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==",
       "dev": true,
       "funding": [
         {
diff --git a/docs/pnpm-lock.yaml b/docs/pnpm-lock.yaml
index e99a912..6bf2995 100644
--- a/docs/pnpm-lock.yaml
+++ b/docs/pnpm-lock.yaml
@@ -1200,8 +1200,8 @@ packages:
       to-regex-range: 5.0.1
     dev: true
 
-  /follow-redirects@1.15.4:
-    resolution: {integrity: sha512-Cr4D/5wlrb0z9dgERpUL3LrmPKVDsETIJhaCMeDfuFYcqa5bldGV6wBsAN6X/vxlXQtFBMrXdXxdL8CbDTGniw==}
+  /follow-redirects@1.15.6:
+    resolution: {integrity: sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==}
     engines: {node: '>=4.0'}
     peerDependencies:
       debug: '*'
@@ -1331,7 +1331,7 @@ packages:
     engines: {node: '>=8.0.0'}
     dependencies:
       eventemitter3: 4.0.7
-      follow-redirects: 1.15.4
+      follow-redirects: 1.15.6
       requires-port: 1.0.0
     transitivePeerDependencies:
       - debug
diff --git a/docs/website/ci_cd/README.md b/docs/website/ci_cd/README.md
index 4c1ff33..4369b0f 100644
--- a/docs/website/ci_cd/README.md
+++ b/docs/website/ci_cd/README.md
@@ -4,7 +4,7 @@
 check commits against the conventional commits specification and create changelogs. 
 
 ::: warning
-The action runs on x86 linux runner only. 
+The action runs on x86 Linux runner only.
 :::
 
 ### Conventional commits check
@@ -62,8 +62,7 @@ If you need to use the created version number later in your job you can access i
     run: "echo '${{ steps.release.outputs.version }}'"
 ```
 ::: tip
-You can set the `git-user` and `git-user-email` options to override the default git signature 
-for the release commit.
+You can set the `git-user` and `git-user-email` options to override the default git signature for the release commit.
 
 You might also want to use a dedicated GitHub account to perform the release, this can be done using the checkout action:
 ```yaml
@@ -81,8 +80,7 @@ Also see:
 
 ### GitHub release changelog
 
-Depending on the options provided the action will run check and/or create a release but if you need to perform some custom steps
-you can directly use `cog`. 
+Depending on the options provided, the action will run checks and/or create a release. However, if you need to perform custom steps, you can directly use the `cog` command in your workflow.
 
 ```yaml
 on:
@@ -91,10 +89,11 @@ on:
     
 jobs:
   release:
-    name: Perform release
-      - uses: actions/checkout@v3
-          with:
-            fetch-depth: 0
+    steps:
+      - name: Perform release
+        uses: actions/checkout@v3
+        with:
+          fetch-depth: 0
 
       - name: Cocogitto release
         id: release
@@ -134,7 +133,7 @@ Here are all the inputs available through `with`:
 
 ## GitHub Bot
 
-Cocogitto also has a GitHub bot that decorate pull request with status check. 
+Cocogitto also has a GitHub bot that decorates pull request with status check.
 
 To install it just go to [github.com/apps/cocogitto-bot](https://github.com/apps/cocogitto-bot) and click "Configure".
 Add the desired repository and grant the required permission.
@@ -152,6 +151,5 @@ Failure:
 ![cocogitto bot failure example](./cog-bot-ko.png)
 
 ::: tip 
-You can [make status check mandatory](https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/defining-the-mergeability-of-pull-requests/troubleshooting-required-status-checks) 
-to enforce conventional commits in your  pull-requests.  
+You can [make status check mandatory](https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/defining-the-mergeability-of-pull-requests/troubleshooting-required-status-checks) to enforce conventional commits in your pull-requests.
 :::
diff --git a/docs/website/config/README.md b/docs/website/config/README.md
index f871171..30ab2e9 100755
--- a/docs/website/config/README.md
+++ b/docs/website/config/README.md
@@ -4,16 +4,27 @@ The config reference list all value that can be set in the `cog.toml` file at th
 
 ## General
 
+### `from_latest_tag`
+
+- Type: `boolean`
+- Optional: `true`
+- Default: `false`
+- Description: Whether to only consider commits since the latest SemVer tag.
+- Example:
+  ```toml
+  from_latest_tag = true
+  ```
+
 ### `tag_prefix`
 
 - Type: `String`
 - Optional: `true`
-- Description: set a tag prefix value for cocogitto. For instance if you have a `v` as a tag prefix, cocogitto will
-  generate version starting with `v` and commands like `cog changelog` will pick only those versions.
+- Description: Set a tag prefix value for cocogitto. For instance if you have a `v` as a tag prefix, cocogitto will
+  generate versions starting with `v` and commands like `cog changelog` will pick only those versions.
 - Example:
-    ```toml
-    tag_prefix = "v"
-    ```
+  ```toml
+  tag_prefix = "v"
+  ```
 - Also see:
 
   [User guide -> Tag prefix](../guide/#tag-prefix)
@@ -24,23 +35,23 @@ The config reference list all value that can be set in the `cog.toml` file at th
 - Optional: `true`
 - Description: A list of glob patterns to allow bumping only on matching branches.
 - Example:
-    ```toml
-    branch_whitelist = [ "main", "release/**" ]
-    ```
+  ```toml
+  branch_whitelist = [ "main", "release/**" ]
+  ```
 - Also see:
 
-    [User guide -> Branch whitelist](../guide/#branch-whitelist)
+  [User guide -> Branch whitelist](../guide/#branch-whitelist)
 
 ### `ignore_merge_commits`
 
 - Type: `boolean`
 - Optional: `true`
 - Default: `false`
-- Description: whether to ignore or to lint merge commits.
+- Description: Whether to ignore or to lint merge commits.
 - Example:
-    ```toml
-    ignore_merge_commits = true
-    ```
+  ```toml
+  ignore_merge_commits = true
+  ```
 - Also see:
 
   [User guide -> Deal with merge commit](../guide/#deal-with-merge-commit)
@@ -49,62 +60,67 @@ The config reference list all value that can be set in the `cog.toml` file at th
 
 - Type: `Hashmap<String, CommitType>`
 - Optional: `true`
-- Description: extend the allowed commit types, creating a new `cog commit` command and allowing to generate changelog entries for the
-    given type. Can also be used to override the default commit types.
-- Example:
-    ```toml
-    [commit_types]
-    hotfix = { changelog_title = "Hotfixes" }
-    chore = { changelog_title = "Hotfixes", omit_from_changelog = true }
-    release = { changelog_title = "Releases" }
-    ```
+- Description: Extend the allowed commit types, creating a new `cog commit` command, and allowing generation of changelog entries for the
+  given type. Can also be used to override the default commit types.
+- Example:
+  ```toml
+  [commit_types]
+  hotfix = { changelog_title = "Hotfixes" }
+  chore = { changelog_title = "Hotfixes", omit_from_changelog = true }
+  release = { changelog_title = "Releases" }
+  feat = {} # disabled
+  ```
 - Also see:
 
-    [User guide -> Custom commit types](../guide/#custom-commit-types)
+  [User guide -> Custom commit types](../guide/#custom-commit-types)
 
 ### `changelog_title`
+
 - Type: `String`
 - Optional: `false`
-- Description: change the changelog title for the given commit type.
+- Description: Change the changelog title for the given commit type.
 - Example:
-    ```toml
-    [commit_types]
-    chore = { changelog_title = "Misc" }
-    hotfix = { changelog_title = "Hot fix" }
-    ```
+  ```toml
+  [commit_types]
+  chore = { changelog_title = "Misc" }
+  hotfix = { changelog_title = "Hot fix" }
+  ```
 
 ### `omit_from_changelog`
+
 - Type: `Bool`
 - Optional: `true`
 - Default value: `false`
-- Description: do not generate changelog entries for the given commit type.
+- Description: Do not generate changelog entries for the given commit type.
 - Example:
-    ```toml
-    [commit_types]
-    chore = { changelog_title = "Chore", omit_from_changelog = true }
-    ```
+  ```toml
+  [commit_types]
+  chore = { changelog_title = "Chore", omit_from_changelog = true }
+  ```
 
 ### `bump_patch`
+
 - Type: `Bool`
 - Optional: `true`
 - Default value: `false`
-- Description: commits of this type will bump the patch version of a tag.
+- Description: Commits of this type will bump the patch version of a tag.
 - Example:
-    ```toml
-    [commit_types]
-    chore = { changelog_title = "Chore", bump_patch = true }
-    ```
+  ```toml
+  [commit_types]
+  chore = { changelog_title = "Chore", bump_patch = true }
+  ```
 
 ### `bump_minor`
+
 - Type: `Bool`
 - Optional: `true`
 - Default value: `false`
-- Description: commits of this type will bump the minor version of a tag.
+- Description: Commits of this type will bump the minor version of a tag.
 - Example:
-    ```toml
-    [commit_types]
-    chore = { changelog_title = "Chore", bump_minor = true }
-    ```
+  ```toml
+  [commit_types]
+  chore = { changelog_title = "Chore", bump_minor = true }
+  ```
 
 ## Bump config
 
@@ -112,84 +128,85 @@ The config reference list all value that can be set in the `cog.toml` file at th
 
 - Type: `Array<String>`
 - Optional: `true`
-- Description: an array of command to execute before a version bump.
-- Example:
-    ```toml
-    pre_bump_hooks = [
-        "sh -c \"./ci/check_branch.sh\"",
-        "cargo test -- --test-threads 1",
-        "cargo clippy",
-        "cargo build --release",
-        "cargo fmt --all",
-        "cargo bump {{version}}",
-    ]
-    ```
+- Description: An array of commands to execute before a version bump.
+- Example:
+  ```toml
+  pre_bump_hooks = [
+      "sh -c \"./ci/check_branch.sh\"",
+      "cargo test -- --test-threads 1",
+      "cargo clippy",
+      "cargo build --release",
+      "cargo fmt --all",
+      "cargo bump {{version}}",
+  ]
+  ```
 - Also see:
 
-    * [User guide -> Automatic Versioning](../guide/#auto-bump)
-    * [User guide -> Pre-bump hooks](../guide/#pre-bump-hooks)
-    * [User guide -> Version DSL](../guide/#version-dsl)
+  - [User guide -> Automatic Versioning](../guide/#auto-bump)
+  - [User guide -> Pre-bump hooks](../guide/#pre-bump-hooks)
+  - [User guide -> Version DSL](../guide/#version-dsl)
 
 ### `post_bump_hooks`
 
 - Type: `Array<String>`
 - Optional: `true`
-- Description: an array of command to execute after a version bump.
-- Example:
-    ```toml
-    post_bump_hooks = [
-        "git push",
-        "git push origin {{version}}",
-        "cargo package",
-        "cargo publish"
-    ]
-    ```
+- Description: An array of commands to execute after a version bump.
+- Example:
+  ```toml
+  post_bump_hooks = [
+      "git push",
+      "git push origin {{version}}",
+      "cargo package",
+      "cargo publish"
+  ]
+  ```
 - Also see:
 
-    * [User guide -> Automatic Versioning](../guide/#auto-bump)
-    * [User guide -> Post-bump hooks](../guide/#post-bump-hooks)
-    * [User guide -> Version DSL](../guide/#version-dsl)
+  - [User guide -> Automatic Versioning](../guide/#auto-bump)
+  - [User guide -> Post-bump hooks](../guide/#post-bump-hooks)
+  - [User guide -> Version DSL](../guide/#version-dsl)
 
 ### `bump_profiles`
 
-
 - Type: `Hashmap<String, BumpProfile>`
 - Optional: `true`
-- Description: add additional [pre-bump](./#pre_bump_hooks) and [post-bump](./#post_bump_hooks) hooks profile.
+- Description: Add additional [pre-bump](./#pre_bump_hooks) and [post-bump](./#post_bump_hooks) hooks profile.
   a profile can be used with the `cog bump --hook-profile <profile_name>` flag.
 - Example:
-    ```toml
-    [bump_profiles.hotfix]
-    pre_bump_hooks = [
-        "cargo build --release",
-        "cargo fmt --all",
-        "cargo bump {{version}}",
-    ]
-
-    post_bump_hooks = [
-        "cargo package",
-        "cargo publish"
-    ]
-    ```
+
+  ```toml
+  [bump_profiles.hotfix]
+  pre_bump_hooks = [
+      "cargo build --release",
+      "cargo fmt --all",
+      "cargo bump {{version}}",
+  ]
+
+  post_bump_hooks = [
+      "cargo package",
+      "cargo publish"
+  ]
+  ```
+
 - Also see:
 
-    * [User guide -> Automatic Versioning](../guide/#auto-bump)
-    * [User guide -> Post-bump hooks](../guide/#post-bump-hooks)
-    * [User guide -> Pre-bump hooks](../guide/#pre-bump-hooks)
-    * [User guide -> Version DSL](../guide/#version-dsl)
-    * [User guide -> Bump profiles](../guide/guide/#bump-profiles)
+  - [User guide -> Automatic Versioning](../guide/#auto-bump)
+  - [User guide -> Post-bump hooks](../guide/#post-bump-hooks)
+  - [User guide -> Pre-bump hooks](../guide/#pre-bump-hooks)
+  - [User guide -> Version DSL](../guide/#version-dsl)
+  - [User guide -> Bump profiles](../guide/guide/#bump-profiles)
 
 ### `skip_ci`
 
 - Type: `String`
 - Optional: `true`
-- Description: A "skip-ci" string to add to the commits when using the ```bump``` or ```commit``` commands. Default value is ```[skip ci]```.
+- Description: A "skip-ci" string to add to the commits when using the `bump` or `commit` commands. Default value is `[skip ci]`.
 - Example:
-    ```toml
-    skip_ci = "[ci-skip]"
-    ```
+  ```toml
+  skip_ci = "[ci-skip]"
+  ```
 - Also see:
-    * [User guide -> Make Cocogitto skip CI CD](../guide/#make-cocogitto-skip-ci-cd)
+  - [User guide -> Make Cocogitto skip CI CD](../guide/#make-cocogitto-skip-ci-cd)
 
 ### `skip_untracked`
 
@@ -198,11 +215,11 @@ The config reference list all value that can be set in the `cog.toml` file at th
 - Default value: `false`
 - Description: Allows to perform bump even if there are untracked or uncommited changes.
 - Example:
-    ```toml
-    skip_untracked = true
-    ```
+  ```toml
+  skip_untracked = true
+  ```
 - Also see:
-    * [User guide -> Skip untracked or uncommited changes](../guide/#skip-untracked-or-uncommited-changes)
+  - [User guide -> Skip untracked or uncommited changes](../guide/#skip-untracked-or-uncommited-changes)
 
 ### `disable_changelog`
 
@@ -211,9 +228,9 @@ The config reference list all value that can be set in the `cog.toml` file at th
 - Default value: `false`
 - Description: Disable changelog generation when bumping.
 - Example:
-    ```toml
-    disable_changelog = true
-    ```
+  ```toml
+  disable_changelog = true
+  ```
 
 ### `disable_bump_commit`
 
@@ -222,132 +239,171 @@ The config reference list all value that can be set in the `cog.toml` file at th
 - Default value: `false`
 - Description: Cocogitto will not create a bump commit and will instead tag the latest commit.
 - Example:
-    ```toml
-    disable_bump_commit = true
-    ```
+  ```toml
+  disable_bump_commit = true
+  ```
 - Also see:
-    * [User guide -> Disable bump commit creation](../guide/#disable-bump-commit-creation)
+  - [User guide -> Disable bump commit creation](../guide/#disable-bump-commit-creation)
 
 ## Changelog
 
+- Type: `Changelog`
+- Optional: `true`
+- Description: Set the configuration for the changelog generation.
+- Example:
+  ```toml
+  [changelog]
+  path = "CHANGELOG.md"
+  template = "remote"
+  remote = "github.com"
+  repository = "cocogitto"
+  owner = "cocogitto"
+  authors = [
+    { signature = "Paul Delafosse", username = "oknozor" },
+    { signature = "Jack Dorland", username = "jackdorland" },
+    { signature = "Mike Lubinets", username = "mersinvald" },
+    { signature = "Marcin Puc", username = "tranzystorek-io" },
+    { signature = "Renault Fernandes", username = "renaultfernandes" },
+    { signature = "Pieter Joost van de Sande", username = "pjvds" },
+    { signature = "orhun", username = "orhun" },
+    { signature = "Danny Tatom", username = "its-danny" },
+  ]
+  ```
+- Also see:
+  - [User guide -> Changelog](../guide/#changelogs)
+
 ### `path`
 
 - Type: `String`
 - Optional: `true`
 - Default value: `"CHANGELOG.md"`
-- Description: path the repository markdown changelog.
+- Description: Path the repository markdown changelog.
 - Example:
-    ```toml
-    [changelog]
-    path = "my_changelog.md"
-    ```
+  ```toml
+  [changelog]
+  path = "my_changelog.md"
+  ```
 - Also see:
 
-    * [User guide -> Automatic Versioning](../guide/#auto-bump)
-    * [User guide -> Changelog](../guide/#changelogs)
+  - [User guide -> Automatic Versioning](../guide/#auto-bump)
+  - [User guide -> Changelog](../guide/#changelogs)
 
 ### `template`
 
 - Type: `String`
 - Optional: `true`
 - Default value: `"default"`
-- Description: name of the builtin template to use for changelog generation or path to a custom template.
-  Note that `remote`, `repository` and `owner` are mandatory if the "remote" built-in template us used or if your
+- Description: Name of the builtin template to use for changelog generation or path to a custom template.
+  Note that `remote`, `repository` and `owner` are mandatory if the "remote" built-in template is used or if your
   custom template make use of those variables.
 - Built-in templates : `default`, `remote`, `full_hash`
 - Example:
-    ```toml
-    [changelog]
-    template = "full_hash"
-    ```
+  ```toml
+  [changelog]
+  template = "full_hash"
+  ```
 - Also see:
 
-    * [User guide -> Changelog](../guide/#changelogs)
-    * [User guide -> Built-in templates](../guide/#built-in-templates)
-    * [User guide -> Custom templates](../guide/#custom-templates)
+  - [User guide -> Changelog](../guide/#changelogs)
+  - [User guide -> Built-in templates](../guide/#built-in-templates)
+  - [User guide -> Custom templates](../guide/#custom-templates)
+
+### `package_template`
+
+- Type: `String`
+- Optional: `true`
+- Default value: `"package_default"`
+- Description: Name of the builtin template to use for package changelog generation or path to a custom template.
+  Note that `remote`, `repository` and `owner` are mandatory if the "remote" built-in template is used or if your
+  custom template make use of those variables.
+- Built-in templates : `package_default`, `package_remote`, `package_full_hash`
+- Example:
+  ```toml
+  [changelog]
+  package_template = "package_full_hash"
+  ```
 
 ### `remote`
 
 - Type: `String`
 - Optional: `true`
-- Description: domain name of the git platform hosting the repository, used for Markdown link generation in changelogs.
+- Description: Domain name of the git platform hosting the repository, used for Markdown link generation in changelogs.
   when provided `repository` and `owner` are also required.
 - Example:
-    ```toml
-    [changelog]
-    template = "remote"
-    remote = "github.com"
-    repository = "cocogitto"
-    owner = "cocogitto"
-    ```
+  ```toml
+  [changelog]
+  template = "remote"
+  remote = "github.com"
+  repository = "cocogitto"
+  owner = "cocogitto"
+  ```
 - Also see:
 
-    * [User guide -> Changelog](../guide/#changelogs)
-    * [User guide -> Built-in templates](../guide/#buiLt-in-templates)
-    * [User guide -> Custom templates](../guide/#custom-templates)
+  - [User guide -> Changelog](../guide/#changelogs)
+  - [User guide -> Built-in templates](../guide/#buiLt-in-templates)
+  - [User guide -> Custom templates](../guide/#custom-templates)
 
 ### `repository`
 
 - Type: `String`
 - Optional: `true`
-- Description: name of the repository on the remote git platform.
-- Example:
-    ```toml
-    [changelog]
-    template = "remote"
-    remote = "github.com"
-    repository = "cocogitto"
-    owner = "cocogitto"
-    ```
+- Description: Name of the repository on the remote git platform.
+- Example:
+  ```toml
+  [changelog]
+  template = "remote"
+  remote = "github.com"
+  repository = "cocogitto"
+  owner = "cocogitto"
+  ```
 - Also see:
 
-    * [User guide -> Changelog](../guide/#changelogs)
-    * [User guide -> Built-in templates](../guide/#buiLt-in-templates)
-    * [User guide -> Custom templates](../guide/#custom-templates)
+  - [User guide -> Changelog](../guide/#changelogs)
+  - [User guide -> Built-in templates](../guide/#buiLt-in-templates)
+  - [User guide -> Custom templates](../guide/#custom-templates)
 
 ### `owner`
 
 - Type: `String`
 - Optional: `true`
-- Description: owner of the repository on the remote git platform.
-- Example:
-    ```toml
-    [changelog]
-    template = "remote"
-    remote = "github.com"
-    repository = "cocogitto"
-    owner = "cocogitto"
-    ```
+- Description: Owner of the repository on the remote git platform.
+- Example:
+  ```toml
+  [changelog]
+  template = "remote"
+  remote = "github.com"
+  repository = "cocogitto"
+  owner = "cocogitto"
+  ```
 - Also see:
 
-    * [User guide -> Changelog](../guide/#changelogs)
-    * [User guide -> Built-in templates](../guide/#buiLt-in-templates)
-    * [User guide -> Custom templates](../guide/#custom-templates)
+  - [User guide -> Changelog](../guide/#changelogs)
+  - [User guide -> Built-in templates](../guide/#buiLt-in-templates)
+  - [User guide -> Custom templates](../guide/#custom-templates)
 
 ### `authors`
 
-
 - Type: `Array<Author>`
 - Optional: `true`
 - Description: A list of commit authors with their git signature and git platform username to generate Markdown links in changelogs.
 - Example:
-    ```toml
-      [changelog]
-      authors = [
-        { signature = "Paul Delafosse", username = "oknozor" },
-        { signature = "Jack Dorland", username = "jackdorland" },
-        { signature = "Mike Lubinets", username = "mersinvald" },
-        { signature = "Marcin Puc", username = "tranzystorek-io" },
-        { signature = "Renault Fernandes", username = "renaultfernandes" },
-        { signature = "Pieter Joost van de Sande", username = "pjvds" },
-        { signature = "orhun", username = "orhun" },
-        { signature = "Danny Tatom", username = "its-danny" },
-    ]
-    ```
+  ```toml
+    [changelog]
+    authors = [
+      { signature = "Paul Delafosse", username = "oknozor" },
+      { signature = "Jack Dorland", username = "jackdorland" },
+      { signature = "Mike Lubinets", username = "mersinvald" },
+      { signature = "Marcin Puc", username = "tranzystorek-io" },
+      { signature = "Renault Fernandes", username = "renaultfernandes" },
+      { signature = "Pieter Joost van de Sande", username = "pjvds" },
+      { signature = "orhun", username = "orhun" },
+      { signature = "Danny Tatom", username = "its-danny" },
+  ]
+  ```
 - Also see:
 
-    * [User guide -> Changelog](../guide/#changelogs)
-    * [User guide -> Built-in templates](../guide/#buiLt-in-templates)
+  - [User guide -> Changelog](../guide/#changelogs)
+  - [User guide -> Built-in templates](../guide/#buiLt-in-templates)
 
 ## Mono-repository config
 
@@ -355,160 +411,188 @@ The config reference list all value that can be set in the `cog.toml` file at th
 
 - Type: `String`
 - Optional: `true`
-- Description: set a package tag separator. For instance if you have a `-` as package separator, cocogitto will
+- Description: Set a package tag separator. For instance if you have a `-` as package separator, cocogitto will
   generate monorepo package version starting with the package name followed by the optional prefix and package version (ex: `my-package-v1.0.0`)
 - Example:
-    ```toml
-    monorepo_version_separator = "-"
-    ```
+  ```toml
+  monorepo_version_separator = "-"
+  ```
+
 ### `pre_package_bump_hooks`
 
 - Type: `Array<String>`
 - Optional: `true`
-- Description: an array of command executed before every package bump.
+- Description: An array of commands executed before every package bump.
 - Example:
-    ```toml
-    pre_bump_hooks = [
-        "cargo build --release",
-        "cargo fmt --all",
-        "cargo set-version {{version}}",
-    ]
-    ```
+  ```toml
+  pre_bump_hooks = [
+      "cargo build --release",
+      "cargo fmt --all",
+      "cargo set-version {{version}}",
+  ]
+  ```
+
 ### `post_package_bump_hooks`
 
 - Type: `Array<String>`
 - Optional: `true`
-- Description: an array of command executed after every package bump.
+- Description: An array of commands executed after every package bump.
 - Example:
-    ```toml
-    pre_bump_hooks = [
-        "cargo build --release",
-        "cargo fmt --all",
-        "cargo set-version {{version}}",
-    ]
-    ```
+  ```toml
+  post_bump_hooks = [
+      "cargo build --release",
+      "cargo fmt --all",
+      "cargo set-version {{version}}",
+  ]
+  ```
 
 ## Mono-repository packages
 
+- Type: `Hashmap<String, MonoRepoPackage>`
+- Optional: `true`
+- Description: Add packages that will be included when doing `cog bump`.
+- Example:
+  ```toml
+  [packages]
+  my_package = { 
+    path = "packages/my_package",
+    public_api = false,
+    include = [],
+    ignore = [],
+    pre_bump_hooks = [],
+    post_bump_hooks = []
+  }
+  my_other_package = {
+    path = "packages/my_other_package",
+  }
+  ```
+ - See also
+   [User guide -> Packages configuration](../guide/README.md#packages-configuration)
+
 ### `path`
 
 - Type: `String`
 - Optional: `false`
-- Description: set the package path.
+- Description: Set the package path.
 - Example:
-    ```toml
-    [packages]
-    my_package = { path = "packages/my_package" }
-   ```
+  ```toml
+  [packages]
+  my_package = { path = "packages/my_package" }
+  ```
 
 ### `include`
 
 - Type: `Array<String>`
 - Optional: `true`
-- Description: an array of additional path globs to consider part of the package.
+- Description: An array of additional path globs to consider part of the package.
   These additional paths will trigger a package version bump in addition to the path in `path`.
   The globs are evaluated with [globset](https://crates.io/crates/globset) with the `literal_separator` option enabled.
 - Example:
-    ```toml
-    [packages]
-    my_package = { path = "packages/my_package", include = ["common/**"] }
-   ```
+  ```toml
+  [packages]
+  my_package = { path = "packages/my_package", include = ["common/**"] }
+  ```
 
 ### `ignore`
 
 - Type: `Array<String>`
 - Optional: `true`
-- Description: an array of path globs to ignore as part of the package.
+- Description: An array of path globs to ignore as part of the package.
   These paths will never trigger a package version bump (even if they normally would based on `path` and `include`).
   The globs are evaluated with [globset](https://crates.io/crates/globset) with the `literal_separator` option enabled.
 - Example:
-    ```toml
-    [packages]
-    my_package = { path = "packages/my_package", include = ["packages/my_package/.github/**"] }
-   ```
+  ```toml
+  [packages]
+  my_package = { path = "packages/my_package", include = ["packages/my_package/.github/**"] }
+  ```
 
 ### `changelog_path`
 
 - Type: `String`
 - Optional: `true`
 - Default: `{path}/CHANGELOG.md`
-- Description: overrides the default changelog path, allowing to set an absolute path.
+- Description: Overrides the default changelog path, allowing to set an absolute path.
 - Example:
-    ```toml
-    [packages]
-    my_package = { path = "packages/my_package", changelog_path = "changelogs/my_package.md" }
-   ```
+  ```toml
+  [packages]
+  my_package = { path = "packages/my_package", changelog_path = "changelogs/my_package.md" }
+  ```
+
 ### `public_api`
+
 - Type: `boolean`
 - Optional: `true`
 - Default: `true`
-- Description: if set to false package will not trigger global version bump.
+- Description: If set to `false` the package will not trigger global version bump.
 - Example:
-    ```toml
-    [packages]
-    my_package = { path = "packages/my_package", public_api = false }
-    ```
+  ```toml
+  [packages]
+  my_package = { path = "packages/my_package", public_api = false }
+  ```
 - Also see:
 
   [User guide -> Package configuration](../guide/#packages-configuration)
 
 ### `pre_bump_hooks`
+
 - Type: `Array<String>`
 - Optional: `true`
-- Description: an array of command to execute before a package bump.
+- Description: An array of commands to execute before a package bump.
 - Example:
-    ```toml
-    pre_bump_hooks = [
-        "cargo build --release",
-        "cargo fmt --all",
-        "cargo set-version {{version}}",
-    ]
-    ```
+
+  ```toml
+  pre_bump_hooks = [
+      "cargo build --release",
+      "cargo fmt --all",
+      "cargo set-version {{version}}",
+  ]
+  ```
 
 - Also see:
 
-  * [User guide -> Automatic Versioning](../guide/#auto-bump)
-  * [User guide ->  Automatic versioning for monorepo](../guide/#packages-hooks)
-  * [User guide -> Post-bump hooks](../guide/#post-bump-hooks)
-  * [User guide -> Version DSL](../guide/#version-dsl)
+  - [User guide -> Automatic Versioning](../guide/#auto-bump)
+  - [User guide -> Automatic versioning for monorepo](../guide/#packages-hooks)
+  - [User guide -> Post-bump hooks](../guide/#post-bump-hooks)
+  - [User guide -> Version DSL](../guide/#version-dsl)
 
 ### `post_bump_hooks`
 
 - Type: `Array<String>`
 - Optional: `true`
-- Description: an array of command to execute after a version bump.
+- Description: An array of commands to execute after a version bump.
 - Example:
-    ```toml
-    post_bump_hooks = [
-        "echo {{latest}} bumped to {{version}}",
-    ]
-    ```
+  ```toml
+  post_bump_hooks = [
+      "echo {{latest}} bumped to {{version}}",
+  ]
+  ```
 - Also see:
 
-  * [User guide -> Automatic Versioning](../guide/#auto-bump)
-  * [User guide ->  Automatic versioning for monorepo](../guide/#packages-hooks)
-  * [User guide -> Post-bump hooks](../guide/#post-bump-hooks)
-  * [User guide -> Version DSL](../guide/#version-dsl)
+  - [User guide -> Automatic Versioning](../guide/#auto-bump)
+  - [User guide -> Automatic versioning for monorepo](../guide/#packages-hooks)
+  - [User guide -> Post-bump hooks](../guide/#post-bump-hooks)
+  - [User guide -> Version DSL](../guide/#version-dsl)
 
 ### `bump_profiles`
 
 - Type: `Hashmap<String, BumpProfile>`
 - Optional: `true`
-- Description: add additional per package [pre-bump](./#pre_bump_hooks) and [post-bump](./#post_bump_hooks) hooks profile.
+- Description: Add additional per package [pre-bump](./#pre_bump_hooks) and [post-bump](./#post_bump_hooks) hooks profile.
   a profile can be used with the `cog bump --hook-profile <profile_name>` flag.
 - Example:
-    ```toml
-    [packages.my-package]
-    path = "packages/my-package"
-
-    [bump_profiles.hotfix]
-    pre_bump_hooks = [
-        "cargo build --release",
-        "cargo fmt --all",
-        "cargo set-version {{version}}",
-    ]
-
-    post_bump_hooks = [
-        "cargo package",
-    ]
-    ```
+
+  ```toml
+  [packages.my-package]
+  path = "packages/my-package"
+
+  [bump_profiles.hotfix]
+  pre_bump_hooks = [
+      "cargo build --release",
+      "cargo fmt --all",
+      "cargo set-version {{version}}",
+  ]
+
+  post_bump_hooks = [
+      "cargo package",
+  ]
+  ```
diff --git a/docs/website/guide/README.md b/docs/website/guide/README.md
index d8f8ab4..78c3c1d 100644
--- a/docs/website/guide/README.md
+++ b/docs/website/guide/README.md
@@ -35,6 +35,7 @@ Changes to be committed:
   (use "git restore --staged <file>..." to unstage)
 	new file:   cog.toml
 ```
+
 ## Conventional commits
 
 `cog commit` allows you to easily create commits respecting the
@@ -107,7 +108,6 @@ commit : `fix(cli)!: fix a nasty bug`.
 you manually create breaking changes commits with [the footer notation](https://www.conventionalcommits.org/en/v1.0.0/#commit-message-with-description-and-breaking-change-footer)
 cocogitto tools will still pick them.
 
-
 ### Commit Body and footers
 
 If you need to create more complex commit messages with body and footers use the `--edit` flag.
@@ -115,7 +115,7 @@ If you need to create more complex commit messages with body and footers use the
 **Example:**
 
 ```bash
-cog commit refactor -e -B "drop support for Node 6" runtime 
+cog commit refactor -e -B "drop support for Node 6" runtime
 ```
 
 This would open the following commit message template in your `$EDITOR` of choice :
@@ -144,13 +144,14 @@ There are two kinds of footer separators in conventional commits : `token: messa
 GitHub automatically link issues prefixed with a hash.
 
 **Example:**
+
 ```
     feat(changelog): add full_hash changelog template
 
     Closes #127
 ```
-:::
 
+:::
 
 ### Custom commit types
 
@@ -169,7 +170,8 @@ The above config would generate a `cog commit hotfix` and `cog commit release` s
 
 **Overriding existing commit types:**
 
-Existing commit type can be overridden just like custom ones: 
+Existing commit type can be overridden just like custom ones:
+
 ```toml
 [commit_types]
 feat = { changelog_title = "➕ Additional features" }
@@ -178,7 +180,7 @@ fix = { changelog_title = "🪲 Releases" }
 
 **Omit commits from changelog:**
 
-If you want to make changelog more concise you can skip some commit types with the `omit_from_changelog` option. 
+If you want to make changelog more concise you can skip some commit types with the `omit_from_changelog` option.
 
 ```toml
 [commit_types]
@@ -187,17 +189,31 @@ ci = { changelog_title = "", omit_from_changelog = true }
 perf = { changelog_title = "", omit_from_changelog = true }
 ```
 
+**Change the auto-bump behavior for a commit_type:**
+[commit_types]
+build = { changelog_title = "build", bump_patch = true }
+
+**Disabling default commit types:**
+
+While active by default, you can disable any of the default commit types by providing an empty configuration :
+
+```toml
+[commit_types]
+perf = {}
+```
+
 ### Deal with merge commits
 
-By default, git will write the following message to merge commit : `Merge my 'branch'`. These merge commits do not respect 
-the Conventional Commits specification, and we strongly advise avoiding them by setting the following in your `.gitconfig` : 
+By default, git will write the following message to merge commit : `Merge my 'branch'`. These merge commits do not respect
+the Conventional Commits specification, and we strongly advise avoiding them by setting the following in your `.gitconfig` :
 
 ```toml
 [merge]
   ff = only
 ```
 
-That said you can simply make Cocogitto ignore merge commits by setting the following in your `cog.toml`: 
+That said you can simply make Cocogitto ignore merge commits by setting the following in your `cog.toml`:
+
 ```toml
 ignore_merge_commits = true
 ```
@@ -212,11 +228,13 @@ No errored commits
 ```
 
 Let us create an invalid commit :
+
 ```bash
 git commit -m "Your Mother Was A Hamster, And Your Father Smelt Of Elderberries"
 ```
 
 And check our commit history again :
+
 ```bash
 ❯ cog check
 Error:
@@ -227,7 +245,7 @@ ________________________________________________________
 Errored commit: db5151486a41f1b694fd8f90144dd02c87268988 <Paul Delafosse>
 	Commit message: 'Your Mother Was A Hamster, And Your Father Smelt Of Elderberries'
 	Error: Missing commit type separator `:`
-	
+
 	Caused by:
 	     --> 1:5
 	      |
@@ -237,16 +255,15 @@ Errored commit: db5151486a41f1b694fd8f90144dd02c87268988 <Paul Delafosse>
 	      = expected scope or type_separator
 ```
 
-
 ::: tip
-You can check your history, starting from the latest tag using `--from-latest-tag` or `-l` flag.  
+You can check your history, starting from the latest tag using `--from-latest-tag` or `-l` flag.
 This is useful when your git repo started to use conventional commits from a certain point in history and you
 don't care about editing old commits.
 :::
 
 ## Managing git-hooks
 
-Cocogitto provide a way to share [git hooks](https://git-scm.com/book/en/v2/Customizing-Git-Git-Hooks). 
+Cocogitto provide a way to share [git hooks](https://git-scm.com/book/en/v2/Customizing-Git-Git-Hooks).
 
 First you need to set up some hooks in `cog.toml`:
 
@@ -267,18 +284,20 @@ path = "hooks/pre-push.sh"
 ```
 
 ::: warning
-Not that unlike `git commit`, `cog commit` will not pick a default shell when running hooks. Make sure to provide
+Note that unlike `git commit`, `cog commit` will not pick a default shell when running hooks. Make sure to provide
 a shebang in your hook definition.
 :::
 
-Now that our hook are defined in cocogitto's config they can be installed with `cog install-hook`. 
+Now that our hook are defined in cocogitto's config they can be installed with `cog install-hook`.
 
 **Install all git-hooks:**
+
 ```bash
 ❯ cog install-hook --all
 ```
 
 **Install a single hook:**
+
 ```bash
 ❯ cog install-hook commit-msg
 ```
@@ -289,6 +308,7 @@ Now that our hook are defined in cocogitto's config they can be installed with `
 It will not create any commit.
 
 **Example:**
+
 ```bash
 ❯ cog verify "Your Mother Was A Hamster, And Your Father Smelt Of Elderberries"
 Error: Missing commit type separator `:`
@@ -331,10 +351,8 @@ You can use the `--from-latest-tag` or `-l` to edit only commits since the lates
 `cog log` is just like `git log` but it displays additional conventional commit information, such as commit scope,
 commit type etc.
 
-
 [![asciicast](https://asciinema.org/a/ssH4yRSlc28Rb9dHEDN7TowGe.svg)](https://asciinema.org/a/ssH4yRSlc28Rb9dHEDN7TowGe)
 
-
 ::: tip
 You can filter the log content with the following flags :
 
@@ -349,13 +367,14 @@ Those flag can be combined to achieve complex search in your commit history :
 ```bash
 cog log --author "Paul Delafosse" "Mike Lubinets" --type feat --scope cli --no-error
 ```
+
 :::
 
-## Changelogs 
+## Changelogs
 
-`cog changelog` can generate changelog automatically. 
+`cog changelog` can generate changelog automatically.
 
-Let's assume the following history : 
+Let's assume the following history :
 
 ```git
 * e3ff26a - (HEAD -> master) feat!: implement parser specification <Paul Delafosse>
@@ -364,20 +383,29 @@ Let's assume the following history :
 * 6d014b4 - chore: initial commit <Paul Delafosse>
 ```
 
-Let us now get a changelog : 
+Let us now get a changelog :
+
 ```bash
 cog changelog
 ```
 
 ```markdown
 ## 0.2.0 - 2021-11-10
+
 #### Features
+
 - **(hello)** say hello to the galaxy - (da4af95) - Paul Delafosse
+
 #### Refactoring
+
 - **(hello)** say hello to the martians - (22db158) - Paul Delafosse
-- - -
+
+---
+
 ## 0.1.0 - 2021-11-10
+
 #### Features
+
 - implement parser specification - (e3ff26a) - Paul Delafosse
 - a commit - (78dedea) - Paul Delafosse
 - say hello to the world - (c361eea) - Paul Delafosse
@@ -387,6 +415,7 @@ As you can see above a changelog is generated for each semver compliant tag.
 
 ::: tip
 You can specify a custom changelog range or tag like so :
+
 ```bash
 # Display the changelog between `^1` and `2.0.0`
 cog changelog --at 2.0.0
@@ -400,12 +429,13 @@ cog changelog 8806a55..
 # From first commit to `1.0.0`
 cog changelog 8806a5..1.0.0
 ```
+
 :::
 
 ### Built-in templates
 
-A raw changelog is nice, but its even nicer to generate some links for repository hosted on git web platforms 
-such as GitHub. To do this you can use the `--template` or `t` flag. Cocogitto comes with three pre built templates: 
+A raw changelog is nice, but its even nicer to generate some links for repository hosted on git web platforms
+such as GitHub. To do this you can use the `--template` or `t` flag. Cocogitto comes with three pre built templates:
 
 #### `default`
 
@@ -414,23 +444,30 @@ The default template we saw in the previous section
 #### `full_hash`
 
 A changelog template tailored for GitHub releases
+
 ```bash
 cog changelog --template full_hash
 ```
 
 ```markdown
-  #### Features
-  - da4af95b223bb8942ffd289d1a62d930c80d7bbd - **(hello)** say hello to the galaxy - @oknozor
-  #### Refactoring
-  - 22db158f6c75aa5e9e7d4ed4a5b5af7b147453d7 - **(hello)** say hello to the martians - @oknozor
-  - - -
-  #### Features
-  - e3ff26a8247b9690ce241e9843eea595bcac8d06 - implement parser specification - @oknozor
-  - 78dedeaf5e7222cd338627f7ee982e271a3f9a4c - a commit - Paul Delafosse
-  - c361eeae958a0a28041aecfed10091dc0e6768dd - say hello to the world - @oknozor
-```
-  
-Below is the changelog as rendered by GitHub release, notice how the committer git signature as been replaced 
+#### Features
+
+- da4af95b223bb8942ffd289d1a62d930c80d7bbd - **(hello)** say hello to the galaxy - @oknozor
+
+#### Refactoring
+
+- 22db158f6c75aa5e9e7d4ed4a5b5af7b147453d7 - **(hello)** say hello to the martians - @oknozor
+
+---
+
+#### Features
+
+- e3ff26a8247b9690ce241e9843eea595bcac8d06 - implement parser specification - @oknozor
+- 78dedeaf5e7222cd338627f7ee982e271a3f9a4c - a commit - Paul Delafosse
+- c361eeae958a0a28041aecfed10091dc0e6768dd - say hello to the world - @oknozor
+```
+
+Below is the changelog as rendered by GitHub release, notice how the committer git signature as been replaced
 by their github username. To do that you need to tell cocogitto about your contributor's username in `cog.toml`:
 
 ```toml
@@ -438,31 +475,35 @@ by their github username. To do that you need to tell cocogitto about your contr
   authors = [
       { username = "oknozor", signature = "Paul Delafosse" }
   ]
-  ```
+```
+
 <img :src="$withBase('github-release-changelog.png')" alt="Github release changelog screenshot">
 
 #### `remote`
 
 A template generating links for web platform hosted repository.
-  
+
 ```bash
 cog changelog --at 0.1.0 -t remote --remote github.com --owner oknozor --repository  cocogitto
 ```
 
 As you can see below a changelog is generated with full links to issues, tags, diff and usernames according
-to the provided remote, owner and repository flags. 
+to the provided remote, owner and repository flags.
 
 ```markdown
 ## [0.1.0](https://github.com/oknozor/cocogitto/compare/6d014b40f552fc1ad08f574fe33355175b0783ff..0.1.0) - 2021-11-11
+
 #### Features
+
 - implement parser specification - ([e3ff26a](https://github.com/oknozor/cocogitto/commit/e3ff26a8247b9690ce241e9843eea595bcac8d06)) - [@oknozor](https://github.com/oknozor)
 - a commit - ([78dedea](https://github.com/oknozor/cocogitto/commit/78dedeaf5e7222cd338627f7ee982e271a3f9a4c)) - [@oknozor](https://github.com/oknozor)
 - say hello to the world - ([c361eea](https://github.com/oknozor/cocogitto/commit/c361eeae958a0a28041aecfed10091dc0e6768dd)) - [@oknozor](https://github.com/oknozor)
 ```
-::: tip 
-To avoid typing the remote information and changelog template everytime you can set  some default values in `cog.toml`.
 
-Here is the config used by cocogitto itself. 
+::: tip
+To avoid typing the remote information and changelog template everytime you can set some default values in `cog.toml`.
+
+Here is the config used by cocogitto itself.
 
 ```toml
 [changelog]
@@ -482,43 +523,43 @@ authors = [
   { signature = "Danny Tatom", username = "its-danny" },
 ]
 ```
+
 :::
 
 ### Custom templates
 
-If you are not happy with the default you can create your own changelog template. 
-Internally cocogitto uses [tera](https://tera.netlify.app/) template engine to render changelogs. 
+If you are not happy with the default you can create your own changelog template.
+Internally cocogitto uses [tera](https://tera.netlify.app/) template engine to render changelogs.
 
 Also see [template reference](../template).
 
 **Example:**
 
 ```tera
-{% for type, typed_commits in commits | sort(attribute="type")| group_by(attribute="type")%}                            
+{% for type, typed_commits in commits | sort(attribute="type")| group_by(attribute="type")%}
 #### {{ type | upper_first }}
-                                                                                                                        
-    {% for scope, scoped_commits in typed_commits | group_by(attribute="scope") %}                                      
-        {% for commit in scoped_commits | sort(attribute="scope") %}                                                    
-            {% if commit.author %}                                                                                      
-                {% set author = "@" ~ commit.author %}                                                                  
-            {% else %}                                                                                                  
-                {% set author = commit.signature %}                                                                     
-            {% endif %}                                                                                                 
+
+    {% for scope, scoped_commits in typed_commits | group_by(attribute="scope") %}
+        {% for commit in scoped_commits | sort(attribute="scope") %}
+            {% if commit.author %}
+                {% set author = "@" ~ commit.author %}
+            {% else %}
+                {% set author = commit.signature %}
+            {% endif %}
             - {{ commit.id }} - **({{ scope }})** {{ commit.summary }} - {{ author }}
-        {% endfor %}                                                                                                    
-    {% endfor %}                                                                                                        
-    {% for commit in typed_commits | unscoped %}                                                                        
-        {% if commit.author %}                                                                                          
-            {% set author = "@" ~ commit.author %}                                                                      
-        {% else %}                                                                                                      
-            {% set author = commit.signature %}                                                                         
-        {% endif %}                                                                                                     
+        {% endfor %}
+    {% endfor %}
+    {% for commit in typed_commits | unscoped %}
+        {% if commit.author %}
+            {% set author = "@" ~ commit.author %}
+        {% else %}
+            {% set author = commit.signature %}
+        {% endif %}
             - {{ commit.id }} - {{ commit.summary }} - {{ author }}
-    {% endfor %}                                                                                                        
-{% endfor %}                                                                                                            
+    {% endfor %}
+{% endfor %}
 ```
 
-
 ## Automatic versioning
 
 The purpose of conventional commits is to be able to bump your project version and changelog
@@ -536,12 +577,24 @@ The `bump` subcommand will execute the following steps :
 ### Auto bump
 
 `cog bump` will calculate the next version based on your commit history since the latest
-semver tag. Once a tag number as been calculated it will create a tagged commit containing 
-the changelog for this new tag. 
+semver tag. Once a tag number as been calculated it will create a tagged commit containing
+the changelog for this new tag.
+
+#### Auto bump commit types
+By default, only the following commit types will trigger the following auto bumps.
+
+```
+fix: a commit of the type fix patches a bug in your codebase (this correlates with PATCH in Semantic Versioning).
+feat: a commit of the type feat introduces a new feature to the codebase (this correlates with MINOR in Semantic Versioning).
+BREAKING CHANGE: a commit that has a footer BREAKING CHANGE:, or appends a ! after the type/scope, introduces a breaking API change (correlating with MAJOR in Semantic Versioning). A BREAKING CHANGE can be part of commits of any type.
+```
+
+If you want to change this or include other types you can update that in [commit_types] in cog.toml.
 
-**Example:** 
+#### Example
 
 Assuming we are working on the following git repository :
+
 ```git
 * 8e08b78 - (HEAD -> master) feat: another cool feature <Paul Delafosse>
 * 490b846 - docs: add some documentation <Paul Delafosse>
@@ -551,6 +604,7 @@ Assuming we are working on the following git repository :
 ```
 
 Let us now create a version :
+
 ```bash
 ❯ cog bump --auto
 Warning: using 'cog bump' with the default configuration.
@@ -567,28 +621,38 @@ Bumped version: ... -> 0.1.0
 ```
 
 If we look again at our git log :
+
 ```git
 * 76c0ffd - (HEAD -> master, tag: 0.1.0) chore(version): 0.1.0 (2 minutes ago) <Paul Delafosse>
-... 
+...
 ```
 
-Also, a `CHANGELOG.md` file have been created using the `default` template: 
+Also, a `CHANGELOG.md` file have been created using the `default` template:
 
 ```markdown
 # Changelog
+
 All notable changes to this project will be documented in this file. See [conventional commits](https://www.conventionalcommits.org/) for commit guidelines.
-- - -
+
+---
 
 ## 0.1.0 - 2021-11-11
+
 #### Bug Fixes
+
 - fix a ugly bug - (8bc0d28) - Paul Delafosse
+
 #### Documentation
+
 - add some documentation - (490b846) - Paul Delafosse
+
 #### Features
+
 - another cool feature - (8e08b78) - Paul Delafosse
 - add awesome feature - (a0c9050) - Paul Delafosse
 
-- - -
+---
+
 Changelog generated by [cocogitto](https://github.com/cocogitto/cocogitto).
 ```
 
@@ -596,7 +660,8 @@ Also see [template config](/config) if you need to change the default changelog
 
 ::: tip
 Sometimes getting a version number automatically is not what you want.
-Cocogitto let you specify the target version with the following flags : 
+Cocogitto let you specify the target version with the following flags :
+
 - `--auto` : choose the next version for you (based on feature commit, bug fixes commit and BREAKING_CHANGE commit).
 - `--major` : increment the MAJOR version.
 - `--minor` : increment the MINOR version.
@@ -606,10 +671,12 @@ Cocogitto let you specify the target version with the following flags :
 - `--build <metadata>` : set the [build metatada](https://semver.org/#spec-item-10).
 
 **Example:**
+
 ```bash
 cog bump --major --pre "beta.1" --build "foo.bar"
 # 1.2.3 -> 2.0.0-beta.1+foo.bar
 ```
+
 :::
 
 **Note:** `cog bump --auto` treats `0.y.z` versions specially,
@@ -618,19 +685,20 @@ That way, you can keep adding features in the development stage and decide yours
 
 #### Dry run
 
-If you just need to get the next version number without performing the automatic bump use the `--dry-run` flag : 
+If you just need to get the next version number without performing the automatic bump use the `--dry-run` flag :
 
 ```shell
-cog bump --dry-run --auto 
+cog bump --dry-run --auto
 ```
 
 :::tip
-The `dry-run` flag can be helpful when writing shell scritps using cocogitto. Since only the version number will 
-output to stdout so you can do the following: 
+The `dry-run` flag can be helpful when writing shell scritps using cocogitto. Since only the version number will
+output to stdout so you can do the following:
 
 ```shell
 VERSION=$(cog bump --dry-run --auto) # -> VERSION=1.0.0
 ```
+
 :::
 
 ### Bump hooks
@@ -642,22 +710,26 @@ or perform some additional checks before doing so.
 
 A typical example is editing your project manifest in your package manager configuration file.
 You can run pre bump commands with the `latest` and `version` aliases to reference respectively
-the latest known tag and the target version.
+the latest known version and the target version.
+
+In case you are first setting out your project and you don't have a version yet, you can define a default value for the aliases.
+This can be simply done by adding a default value to the alias like: `{{version|0.0.0}}`.
+The same can be done for any of the version aliases.
 
 **Example:**
 
-When adding the following hooks to `cog.toml`, the hook commands will be run before creating the version commit : 
+When adding the following hooks to `cog.toml`, the hook commands will be run before creating the version commit :
 
 ```toml
 # cog.toml
 pre_bump_hooks = [
     "cargo build --release",
-    "echo 'bumping from {{latest}} to {{version}}'",
-    "cargo bump {{version}}",
+    "echo 'bumping from {{latest|0.0.0}} to {{version|0.0.1}}'",
+    "cargo bump {{version|0.0.1}}",
 ]
 ```
 
-And result in the following bump: 
+And result in the following bump:
 
 ```bash
 ❯ cog bump --auto
@@ -670,13 +742,14 @@ bump from 0.1.0 to 0.2.0
 Bumped version: 0.1.0 -> 0.2.0
 ```
 
-::: tip 
-If any of the pre-bump command fails cocogitto will abort the bump. 
+::: tip
+If any of the pre-bump command fails cocogitto will abort the bump.
 Any changes made to the repository during the pre-bump phase will be stashed under `cog_bump_{{version}}`.
 
 **Example:**
 
 cog.toml :
+
 ```toml
 pre_bump_hooks = [
   "cargo build --release",
@@ -686,6 +759,7 @@ pre_bump_hooks = [
 ```
 
 run :
+
 ```bash
 ❯ cog bump --auto
 Skipping irrelevant commits:
@@ -698,12 +772,12 @@ Error: prehook run `exit 1` failed
 	All changes made during hook runs have been stashed on `cog_bump_0.2.1`
 	you can run `git stash apply stash@0` to restore these changes.
 ```
-:::
 
+:::
 
 #### Post bump hooks
 
-Post-bump hooks works exactly like pre-bum hooks. They are run after the version has been created 
+Post-bump hooks works exactly like pre-bump hooks. They are run after the version has been created
 and are typically used to push changes to the remote, publish packages and apply branching model strategies.
 
 ```toml
@@ -713,12 +787,12 @@ post_bump_hooks = [
     "git push origin {{version}}",
     "cargo publish"
 ]
-```  
+```
 
 ::: danger
 There is no rollback procedure for post-bump hook, on failure cog will abort and leave the repository
-in an undefined state. 
-We are working on allowing user to define there rollback procedures, but it is not there yet. 
+in an undefined state.
+We are working on allowing user to define their rollback procedures, but it is not there yet.
 :::
 
 #### Version DSL
@@ -730,17 +804,19 @@ A typical example in the java world would be to bump your maven snapshot on your
 # cog.toml
 post_bump_hooks = [
     "git push",
-    "git push origin {{version}}",
+    "git push origin {{version|1.0.0}}",
     "git checkout develop",
     "git rebase master",
-    "mvn versions:set -DnewVersion={{version+minor-SNAPSHOT}}",
-    "cog commit chore \"bump snapshot to {{version+1minor-SNAPSHOT}}\"",
+    "mvn versions:set -DnewVersion={{version|1.0.0+minor-SNAPSHOT}}",
+    "cog commit chore \"bump snapshot to {{version|1.0.0+1minor-SNAPSHOT}}\"",
     "git push",
 ]
 ```
 
-As you can see we are bumping the manifest using a small DSL. It as only a few keywords :
+As you can see we are bumping the manifest using a small DSL. It only has a few keywords :
+
 - start with the one of `version`,`version_tag`, `latest`, `latest_tag` or `package` keyword.
+- followed by an optional default value (example above: `|1.0.0`) in SemVer format in case the value for the keyword is not available - the default cannot be used with the package keyword.
 - followed by the `+` operator.
 - `major`, `minor` and `patch` to specify the kind of increment you want.
   Then an optional amount, default being one (`version+1minor` and `version+minor` being the same).
@@ -750,7 +826,7 @@ As you can see we are bumping the manifest using a small DSL. It as only a few k
 #### Bump profiles
 
 For some branching model or release cadence you might want to bump your versions with
-different hooks. 
+different hooks.
 
 To do so you can define alternate profile hooks in `cog.toml` :
 
@@ -768,7 +844,7 @@ post_bump_hooks = []
 
 Once your custom hook profile is set you can call it with the `--hook-profile` flag :
 
-```bash 
+```bash
 ❯ cog bump -h hotfix --auto
 Skipping irrelevant commits:
 
@@ -779,8 +855,8 @@ On branch release/0.2.0
 Bumped version: 0.2.0 -> 0.3.0
 ```
 
-Note that for the sake of readability in this documentation, the above example use a oneliner 
-to check the current branch but you would probably want to can a shell script instead :  
+Note that for the sake of readability in this documentation, the above example use a oneliner
+to check the current branch but you would probably want to can a shell script instead :
 
 ```toml
 pre_bump_hooks = [
@@ -793,9 +869,9 @@ pre_bump_hooks = [
 ### Branch whitelist
 
 It is a common practice to bump always from the same set of branches. For instance, you might want to allow bumping only
-on branch `main` and branches prefixed with `release/`. 
+on branch `main` and branches prefixed with `release/`.
 
-To do so add the following to your `cog.toml` : 
+To do so add the following to your `cog.toml` :
 
 ```toml
 branch_whitelist = [
@@ -806,39 +882,38 @@ branch_whitelist = [
 
 ## Automatic versioning for monorepo
 
-Managing versions for mono-repository is slightly different from the standard Cocogitto flow. 
-Instead of the [standard bump steps](#automatic-versioning) using `cog bump --auto` on a mono-repository will 
-perform the following actions: 
+Managing versions for mono-repository is slightly different from the standard Cocogitto flow.
+Instead of the [standard bump steps](#automatic-versioning) using `cog bump --auto` on a mono-repository will
+perform the following actions:
 
 1. Calculate next version for each package based on commits that changes the package content.
-2. Calculate a global version based on the created package versions and the commit that does not belong to a specific package.  
+2. Calculate a global version based on the created package versions and the commit that does not belong to a specific package.
 3. Execute global pre-bump hooks.
 4. Execute per package pre-bump hooks.
 5. Append the changes for each package to `{package_path}/CHANGELOG.md`.
 6. Append global changes and a list of package version to `/CHANGELOG.md`.
 7. Create a version commit containing changes made during the previous steps.
 8. Create global git tag on the version commit.
-9. Create a tag for each new package version on the version commit. 
+9. Create a tag for each new package version on the version commit.
 10. Execute per package post-bump hooks.
 11. Execute global post-bump hooks.
 
 ### Mono-repository bump
 
-When using `cog bump` in a mono-repository context, it behaves slightly differently. 
- 
-- `cog bump --auto`: creates a tag per changed packages since their respective latest releases and creates a global 
-    mono-repository tag.
+When using `cog bump` in a mono-repository context, it behaves slightly differently.
+
+- `cog bump --auto`: creates a tag per changed packages since their respective latest releases and creates a global
+  mono-repository tag.
 - `cog bump` used why manual bump flags such as `--minor`, `--major`, `--patch` or `--version` will only
-    create the monorepo version without bumping packages.
+  create the monorepo version without bumping packages.
 
 - `cog bump --package=my_package --auto` creates a single package tag from the latest package tag
 
 :::tip
-We strongly advise to use automatic bump whenever possible. Manual bump should only be used when there are changes that 
+We strongly advise to use automatic bump whenever possible. Manual bump should only be used when there are changes that
 Cocogitto is not able to detect (ex: a breaking change occurring in a package via updating a global dependency).
 :::
 
-
 ### Packages configuration
 
 To set up mono-repository support you only need to define a list of package in your `cog.toml`
@@ -846,7 +921,7 @@ config. Once packages are defined, `cog` will automatically scan your packages d
 
 **Example:**
 
-A real life example from [oknozor/gill](https://github.com/oknozor/gill/blob/main/cog.toml). 
+A real life example from [oknozor/gill](https://github.com/oknozor/gill/blob/main/cog.toml).
 
 ```toml
 [packages]
@@ -863,17 +938,18 @@ syntect-plugin = { path = "crates/syntect-plugin", public_api = false }
 ```
 
 :::tip
-If some of your packages does not belong to your project public API use `public_api = false` to prevent `--auto` bump 
-from updating the global project version. 
+If some of your packages does not belong to your project public API use `public_api = false` to prevent `--auto` bump
+from updating the global project version.
 :::
 
 #### Packages hooks
 
 When creating a monorepo version Cocogitto will execute the pre-bump and post-bump hooks normally. Additionally, it will
 run `pre_package_bump_hooks` and `post_package_bump_hooks` before and after each package bump.
-To override these you can define per package hooks. 
+To override these you can define per package hooks.
 
 **Example:**
+
 ```shell
 ## Pre hooks executed before each package bump, here we use a cargo command to bump rust package manifest
 pre_package_bump_hooks = [
@@ -943,7 +1019,7 @@ post_bump_hooks = [
 #### Java Maven projects
 
 A recipe for Java Maven projects.
-Notably, the version bump is also included in the `pom.xml` project manifest  by running `mvn versions:set`
+Notably, the version bump is also included in the `pom.xml` project manifest by running `mvn versions:set`
 and then staging the change before creating the bump commit.
 
 You can also run `mvn deploy` if this phase is configured in your `pom.xml`.
@@ -967,20 +1043,19 @@ post_bump_hooks = [
 ## Tag prefix
 
 It is common to use a tag prefix when creating version in your repository. This is described in the [SemVer specification
-FAQ](https://semver.org/#is-v123-a-semantic-version). This convention provide a handy way to distinguish between release 
-versions and tags that does not represent releases. 
+FAQ](https://semver.org/#is-v123-a-semantic-version). This convention provide a handy way to distinguish between release
+versions and tags that does not represent releases.
 
-To tell `cog` to pick only version starting with a prefix set this in your `cog.toml` file : 
+To tell `cog` to pick only version starting with a prefix set this in your `cog.toml` file :
 
 ```toml
 tag_prefix = "v"
 ```
 
-full tag including the prefix can be access in configuration file with {{version_tag}}
+Full tag including the prefix can be accessed the in configuration file with {{version_tag}}
 
 tag_prefix = "v"
 
-
 ```toml
 post_bump_hooks = [
 "git push origin {{version_tag}}"
@@ -989,11 +1064,12 @@ post_bump_hooks = [
 
 ## Make Cocogitto skip CI CD
 
-The ```--skip-ci``` option of the ```bump``` and ```commit``` commands offers the possibility to skip CI/CD by adding a "skip-ci" string your commits. The default string used by Cocogitto is ```[skip ci]``` but you can override it with your own string :
-- Using the ```skip_ci``` configuration in the ```cog.toml```.
-- Using the ```--skip-ci-override``` option of the ```bump``` and ```commit``` commands.
+The `--skip-ci` option of the `bump` and `commit` commands offers the possibility to skip CI/CD by adding a "skip-ci" string your commits. The default string used by Cocogitto is `[skip ci]` but you can override it with your own string :
+
+- Using the `skip_ci` configuration in the `cog.toml`.
+- Using the `--skip-ci-override` option of the `bump` and `commit` commands.
 
-Note that the ```--skip-ci-override``` option has precedence over the ```skip_ci``` configuration in the ```cog.toml```.
+Note that the `--skip-ci-override` option has precedence over the `skip_ci` configuration in the `cog.toml`.
 
 **Example:**
 
@@ -1011,7 +1087,7 @@ Date: Tue Mar 7 15:06:18 2023 +0200
     chore(version): 1.0.0 [skip ci]
 ```
 
-**Example with ```cog.toml``` configuration:**
+**Example with `cog.toml` configuration:**
 
 ```toml
 skip_ci = "[ci-skip]"
@@ -1031,7 +1107,7 @@ Date: Tue Mar 7 15:06:18 2023 +0200
     chore(version): 1.0.0 [ci-skip]
 ```
 
-**Another example using the ```--skip-ci-override``` option:**
+**Another example using the `--skip-ci-override` option:**
 
 ```bash
 ❯ cog bump --skip-ci-override "[ci-skip]"
@@ -1069,8 +1145,8 @@ To disable its creation, you can use the `disable_bump_commit` configuration in
 
 ## Get the current version
 
-It's sometime needed to display the current version for scripting purpose. 
-You can print the latest SemVer tag on your repo with the `get-version` subcommand: 
+It's sometime needed to display the current version for scripting purpose.
+You can print the latest SemVer tag on your repo with the `get-version` subcommand:
 
 ```bash
 ❯ cog get-version
@@ -1078,19 +1154,22 @@ Current version:
 5.3.1
 ```
 
-To silence the additional info and get only the version use the `-v` flag: 
+To silence the additional info and get only the version use the `-v` flag:
+
 ```bash
 ❯ cog -v get-version
 5.3.1
 ```
 
-If working on a monorepo you can also specify the target package: 
+If working on a monorepo you can also specify the target package:
+
 ```bash
 ❯ cog -v get-version --package gill-db
 0.1.0
 ```
 
-Finally, if you need the command to print a version no matter the state of your repository, you can provide a fallback: 
+Finally, if you need the command to print a version no matter the state of your repository, you can provide a fallback:
+
 ```bash
 ❯ cog get-version --fallback 0.1.0
 0.1.0
diff --git a/docs/website/index.md b/docs/website/index.md
index 961cdba..f0a8fe9 100755
--- a/docs/website/index.md
+++ b/docs/website/index.md
@@ -48,6 +48,12 @@ nix-env -iA nixos.cocogitto
 xbps-install cocogitto
 ```
 
+### MacOS
+
+```shell script
+brew install cocogitto
+```
+
 ## Shell completions
 
 Before getting started you might want to install shell completions (Note that this is not needed for the official archlinux package).
@@ -57,7 +63,7 @@ Example installing completions:
 
 ```sh
 # Bash
-cog generate-completions bash > ~/.local/share/bash-completion/completions/cog
+cog generate-completions bash > ~/.local/share/bash-completion/completions/cog.bash-completion
 
 # Bash (macOS/Homebrew)
 cog generate-completions bash > $(brew --prefix)/etc/bash_completion.d/cog.bash-completion
@@ -83,7 +89,7 @@ cog changelog --help
 ```
 
 Note that if you do not care about automatic release, changelog generation and just want
-to create conventional commit message you can jump to the [conventional commits section](./guide/#conventional_commits).
+to create a conventional commit message you can jump to the [conventional commits section](./guide/#conventional_commits).
 
 ## Conventional commits
 
@@ -125,16 +131,9 @@ See [Github integration -> GitHub action](./ci_cd/#github-action) for more info.
 To help your contributors respect the specification [cocogitto-bot](https://github.com/apps/cocogitto-bot)
 can decorate your PR with conventional commits status checks.
 
-See [Github integration -> GitHub bot](./ci_cd/#github-action) for more info.
+See [Github integration -> GitHub bot](./ci_cd/#github-bot) for more info.
 
 ### Docker
 
 There is a docker image for `cog` available [ghcr.io/cocogitto/latest](https://github.com/cocogitto/cocogitto/pkgs/container/cog)
-See [Docker](./docker/#Using-cocogitto-with-docker) for more info.
-
-
-
-
-
-
-
+See [Docker](./docker/#using-cocogitto-with-docker) for more info.
diff --git a/docs/website/template/README.md b/docs/website/template/README.md
index 21bb0c9..d1d85fa 100644
--- a/docs/website/template/README.md
+++ b/docs/website/template/README.md
@@ -119,12 +119,12 @@ You can also take a look at the [built-in templates](https://github.com/cocogitt
 - `repository_url`: `false`
     * **Type:** `String`
     * **Description:** url to the repository in the form `https://{remote}/{owner}/{repository}`(
-      see: [Config -> Changelog -> repository](../config/#owner))
+      see: [Config -> Changelog -> Repository](../config/#owner))
     * **Nullable:** `true`
 
 ## Filters
 
-In addition to the [tera built-in filters](https://tera.netlify.app/docs/#built-ins) you can use the following:
+In addition to the [tera built-in filters](https://tera.netlify.app/docs/#built-ins), you can use the following:
 
 - `unscoped`
   * **Description:** filter unscoped commits from releases commits. Example:
@@ -146,4 +146,4 @@ In addition to the [tera built-in filters](https://tera.netlify.app/docs/#built-
      {% for type, typed_commits in commits | sort(attribute="type")| group_by(attribute="type") %}                           
       #### {{ type | upper_first }}
      {% endfor %}
-  ```
\ No newline at end of file
+  ```
diff --git a/docs/website/template/guide/index.md b/docs/website/template/guide/index.md
deleted file mode 100644
index e224aa2..0000000
--- a/docs/website/template/guide/index.md
+++ /dev/null
@@ -1,1 +0,0 @@
-# TOTO
\ No newline at end of file
diff --git a/docs/yarn.lock b/docs/yarn.lock
index fd72f70..a75bc09 100644
--- a/docs/yarn.lock
+++ b/docs/yarn.lock
@@ -997,9 +997,9 @@ fill-range@^7.0.1:
     to-regex-range "^5.0.1"
 
 follow-redirects@^1.0.0:
-  version "1.15.4"
-  resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.4.tgz#cdc7d308bf6493126b17ea2191ea0ccf3e535adf"
-  integrity sha512-Cr4D/5wlrb0z9dgERpUL3LrmPKVDsETIJhaCMeDfuFYcqa5bldGV6wBsAN6X/vxlXQtFBMrXdXxdL8CbDTGniw==
+  version "1.15.6"
+  resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.6.tgz#7f815c0cda4249c74ff09e95ef97c23b5fd0399b"
+  integrity sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==
 
 fs-extra@^11.2.0:
   version "11.2.0"
diff --git a/src/command/bump/monorepo.rs b/src/command/bump/monorepo.rs
index ca82e0f..a9a6ad3 100644
--- a/src/command/bump/monorepo.rs
+++ b/src/command/bump/monorepo.rs
@@ -62,7 +62,7 @@ impl CocoGitto {
         let bumps = self.get_packages_bumps(opts.pre_release, opts.build)?;
 
         if bumps.is_empty() {
-            print!("No conventional commits found for your packages that required a bump. Changelogs will be updated on the next bump.\nPre-Hooks and Post-Hooks have been skiped.\n");
+            print!("No conventional commits found for your packages that required a bump. Changelogs will be updated on the next bump.\nPre-Hooks and Post-Hooks have been skipped.\n");
             return Ok(());
         }
 
@@ -129,7 +129,7 @@ impl CocoGitto {
         // Get package bumps
         let bumps = self.get_packages_bumps(opts.pre_release, opts.build)?;
         if bumps.is_empty() {
-            print!("No conventional commits found for your packages that required a bump. Changelogs will be updated on the next bump.\nPre-Hooks and Post-Hooks have been skiped.\n");
+            print!("No conventional commits found for your packages that required a bump. Changelogs will be updated on the next bump.\nPre-Hooks and Post-Hooks have been skipped.\n");
             return Ok(());
         }
 
diff --git a/src/command/bump/package.rs b/src/command/bump/package.rs
index bbba7ac..ec7f96b 100644
--- a/src/command/bump/package.rs
+++ b/src/command/bump/package.rs
@@ -21,7 +21,7 @@ impl CocoGitto {
         let current_tag = tag_or_fallback_to_zero(current_tag)?;
         let mut next_version = current_tag.bump(opts.increment, &self.repository)?;
         if current_tag == next_version {
-            print!("No conventional commits found for {} that required a bump. Changelog will be updated on the next bump.\nPre-Hooks and Post-Hooks have been skiped.\n",
+            print!("No conventional commits found for {} that required a bump. Changelog will be updated on the next bump.\nPre-Hooks and Post-Hooks have been skipped.\n",
                    opts.package_name
             );
             return Ok(());
diff --git a/src/command/bump/standard.rs b/src/command/bump/standard.rs
index d7d6c4f..3b5d982 100644
--- a/src/command/bump/standard.rs
+++ b/src/command/bump/standard.rs
@@ -21,7 +21,7 @@ impl CocoGitto {
         let current_tag = tag_or_fallback_to_zero(current_tag)?;
         let mut tag = current_tag.bump(opts.increment, &self.repository)?;
         if current_tag == tag {
-            print!("No conventional commits for your repository that required a bump. Changelogs will be updated on the next bump.\nPre-Hooks and Post-Hooks have been skiped.\n");
+            print!("No conventional commits for your repository that required a bump. Changelogs will be updated on the next bump.\nPre-Hooks and Post-Hooks have been skipped.\n");
             return Ok(());
         }
 
diff --git a/src/conventional/bump.rs b/src/conventional/bump.rs
index 839238d..80afea4 100644
--- a/src/conventional/bump.rs
+++ b/src/conventional/bump.rs
@@ -282,6 +282,7 @@ mod test {
     use crate::git::tag::Tag;
     use crate::settings::{MonoRepoPackage, Settings};
     use crate::test_helpers::{git_init_no_gpg, git_tag};
+    use crate::CommitConfigOrNull;
 
     impl Commit {
         fn commit_fixture(commit_type: CommitType, is_breaking_change: bool) -> Self {
@@ -510,7 +511,10 @@ mod test {
         // Arrange
         git_init_no_gpg()?;
         let mut commit_types = HashMap::new();
-        commit_types.insert("ex".to_string(), CommitConfig::new("Ex").with_minor_bump());
+        commit_types.insert(
+            "ex".to_string(),
+            CommitConfigOrNull::CommitConfig(CommitConfig::new("Ex").with_minor_bump()),
+        );
         let settings = Settings {
             commit_types,
             ..Default::default()
@@ -537,7 +541,10 @@ mod test {
         // Arrange
         git_init_no_gpg()?;
         let mut commit_types = HashMap::new();
-        commit_types.insert("ex".to_string(), CommitConfig::new("Ex").with_patch_bump());
+        commit_types.insert(
+            "ex".to_string(),
+            CommitConfigOrNull::CommitConfig(CommitConfig::new("Ex").with_patch_bump()),
+        );
         let settings = Settings {
             commit_types,
             ..Default::default()
@@ -566,7 +573,7 @@ mod test {
         let mut commit_types = HashMap::new();
         commit_types.insert(
             "perf".to_string(),
-            CommitConfig::new("Perf").with_minor_bump(),
+            CommitConfigOrNull::CommitConfig(CommitConfig::new("Perf").with_minor_bump()),
         );
         let settings = Settings {
             commit_types,
diff --git a/src/hook/mod.rs b/src/hook/mod.rs
index 71587f4..db430b5 100644
--- a/src/hook/mod.rs
+++ b/src/hook/mod.rs
@@ -8,11 +8,12 @@ use std::str::FromStr;
 use std::{fmt, path};
 
 use crate::hook::parser::VersionAccessToken;
-use crate::Tag;
+use crate::{Tag, SETTINGS};
 use parser::Token;
 
 use crate::settings::{BumpProfile, HookType};
 use anyhow::{anyhow, ensure, Result};
+use semver::Version;
 
 pub trait Hooks {
     fn bump_profiles(&self) -> &HashMap<String, BumpProfile>;
@@ -42,6 +43,7 @@ pub trait Hooks {
 pub struct VersionSpan {
     range: Range<usize>,
     tokens: VecDeque<Token>,
+    default_version: Option<Version>,
 }
 
 #[derive(Debug)]
@@ -61,21 +63,35 @@ impl VersionSpan {
         version: Option<&HookVersion>,
         latest: Option<&HookVersion>,
     ) -> Result<String> {
+        let default_tag = self.default_version.clone().map(|version| Tag {
+            package: None,
+            prefix: SETTINGS.tag_prefix.clone(),
+            version,
+            oid: None,
+            target: None,
+        });
+
         // According to the pest grammar, a `version` or `latest_version` token is expected first
         let mut tag = match self.tokens.pop_front() {
             Some(Token::Version) => version
-                .map(|version| version.prefixed_tag.strip_metadata())
+                .map(|version| version.prefixed_tag.clone())
+                .or(default_tag.clone())
+                .map(|tag| tag.strip_metadata())
                 .ok_or_else(|| anyhow!("No previous tag found to replace {{{{version}}}} version")),
             Some(Token::LatestVersion) => latest
-                .map(|version| version.prefixed_tag.strip_metadata())
+                .map(|version| version.prefixed_tag.clone())
+                .or(default_tag.clone())
+                .map(|tag| tag.strip_metadata())
                 .ok_or_else(|| anyhow!("No previous tag found to replace {{{{latest}}}} version")),
             Some(Token::LatestVersionTag) => latest
                 .map(|version| version.prefixed_tag.clone())
+                .or(default_tag.clone())
                 .ok_or_else(|| {
                     anyhow!("No previous tag found to replace {{{{latest_tag}}}} version")
                 }),
             Some(Token::VersionTag) => version
                 .map(|version| version.prefixed_tag.clone())
+                .or(default_tag.clone())
                 .ok_or_else(|| {
                     anyhow!("No previous tag found to replace {{{{version_tag}}}} version")
                 }),
@@ -504,6 +520,48 @@ mod test {
         Ok(())
     }
 
+    #[test]
+    fn replaces_version_with_default_when_no_version_available() -> Result<()> {
+        let mut hook = Hook::from_str("echo \"the latest {{version|1.0.0}}\"")?;
+        hook.insert_versions(None, None).unwrap();
+
+        assert_that!(hook.0.as_str()).is_equal_to("echo \"the latest 1.0.0\"");
+        Ok(())
+    }
+
+    #[test]
+    fn replaces_version_with_default_with_modifiers_when_no_version_available() -> Result<()> {
+        let mut hook = Hook::from_str(
+            "echo \"the latest {{version|1.0.0+1major-pre.alpha-bravo+build.42}}\"",
+        )?;
+        hook.insert_versions(None, None).unwrap();
+
+        assert_that!(hook.0.as_str())
+            .is_equal_to("echo \"the latest 2.0.0-pre.alpha-bravo+build.42\"");
+        Ok(())
+    }
+
+    #[sealed_test]
+    fn replaces_version_tag_with_default_when_no_version_tag_available() -> Result<()> {
+        let settings = Settings {
+            tag_prefix: Some("v".to_string()),
+            ..Default::default()
+        };
+        let settings = toml::to_string(&settings)?;
+
+        let _ = git_init_no_gpg()?;
+
+        run_cmd!(
+            echo $settings > cog.toml;
+        )?;
+
+        let mut hook = Hook::from_str("echo \"the latest {{version_tag|1.0.0}}\"")?;
+        hook.insert_versions(None, None).unwrap();
+
+        assert_that!(hook.0.as_str()).is_equal_to("echo \"the latest v1.0.0\"");
+        Ok(())
+    }
+
     #[test]
     fn replace_version_tag_with_pre_and_build_metadata() -> Result<()> {
         let mut hook =
diff --git a/src/hook/parser.rs b/src/hook/parser.rs
index 065baac..e89f0cd 100644
--- a/src/hook/parser.rs
+++ b/src/hook/parser.rs
@@ -6,7 +6,7 @@ use crate::hook::error::HookParseError;
 use pest::iterators::{Pair, Pairs};
 use pest::Parser;
 use pest_derive::Parser as ParserDerive;
-use semver::{BuildMetadata, Prerelease};
+use semver::{BuildMetadata, Prerelease, Version};
 
 #[doc(hidden)]
 #[derive(ParserDerive)]
@@ -59,7 +59,7 @@ pub fn parse(hook: &str) -> Result<HookSpan, HookParseError> {
 
 fn parse_version(pair: Pair<Rule>) -> Result<VersionSpan, HookParseError> {
     let mut tokens = VecDeque::new();
-
+    let mut default_version: Option<Version> = None;
     let start = pair.as_span().start();
     let end = pair.as_span().end();
 
@@ -90,6 +90,11 @@ fn parse_version(pair: Pair<Rule>) -> Result<VersionSpan, HookParseError> {
             Rule::version_access_patch => {
                 tokens.push_back(Token::VersionAccess(VersionAccessToken::Patch))
             }
+            Rule::default_version => {
+                let identifiers = pair.into_inner().next().unwrap();
+                let defined_version_default = Version::parse(identifiers.as_str())?;
+                default_version = Some(defined_version_default);
+            }
             _ => (),
         }
     }
@@ -97,6 +102,7 @@ fn parse_version(pair: Pair<Rule>) -> Result<VersionSpan, HookParseError> {
     Ok(VersionSpan {
         range: start..end,
         tokens,
+        default_version,
     })
 }
 
@@ -125,7 +131,7 @@ mod test {
     use crate::hook::parser::Token;
     use crate::hook::{parser, VersionSpan};
 
-    use semver::Prerelease;
+    use semver::{Prerelease, Version};
     use speculoos::prelude::*;
 
     #[test]
@@ -142,6 +148,7 @@ mod test {
                     Token::Amount(1),
                     Token::Minor,
                 ]),
+                default_version: None,
             });
     }
 
@@ -158,11 +165,13 @@ mod test {
                 Token::Amount(1),
                 Token::Minor,
             ]),
+            default_version: None,
         });
 
         assert_that!(&span.version_spans).contains(&VersionSpan {
             range: 47..68,
             tokens: VecDeque::from(vec![Token::VersionTag, Token::Add, Token::Patch]),
+            default_version: None,
         });
 
         Ok(())
@@ -182,6 +191,7 @@ mod test {
                     Token::Patch,
                     Token::PreRelease(Prerelease::new("pre.alpha0").unwrap()),
                 ]),
+                default_version: None,
             });
     }
 
@@ -194,6 +204,7 @@ mod test {
             .contains(&VersionSpan {
                 range: 17..28,
                 tokens: VecDeque::from(vec![Token::Package]),
+                default_version: None,
             });
     }
 
@@ -203,4 +214,22 @@ mod test {
 
         assert_that!(result).is_err();
     }
+
+    #[test]
+    fn parse_default_version() {
+        let result = parser::parse("the default {{version|1.0.0+1minor}}");
+        assert_that!(result)
+            .is_ok()
+            .map(|span| &span.version_spans)
+            .contains(&VersionSpan {
+                range: 12..36,
+                tokens: VecDeque::from(vec![
+                    Token::Version,
+                    Token::Add,
+                    Token::Amount(1),
+                    Token::Minor,
+                ]),
+                default_version: Some(Version::new(1, 0, 0)),
+            });
+    }
 }
diff --git a/src/hook/version_dsl.pest b/src/hook/version_dsl.pest
index ab5384b..859457c 100644
--- a/src/hook/version_dsl.pest
+++ b/src/hook/version_dsl.pest
@@ -34,10 +34,12 @@ identifiers = { identifier ~ (dot ~ identifier)* }
 pre_release = { pre_release_separator ~ identifiers }
 build_metadata = { build_metadata_separator ~ identifiers }
 
+default_separator = _{"|"}
+default_version = {  default_separator ~ identifiers }
 
 package = { "package" }
 version = { delimiter_start ~ (
-        ((current_tag | current_version | latest_tag | latest_version) ~ ops* ~ pre_release? ~ build_metadata?)
+        ((current_tag | current_version | latest_tag | latest_version) ~ default_version? ~ ops* ~ pre_release? ~ build_metadata?)
         | package
     ) ~ ( version_access_major | version_access_minor | version_access_patch )? ~ delimiter_end}
 version_dsl = { SOI ~ ( version | (!delimiter_start ~ ANY) )* ~ EOI }
diff --git a/src/lib.rs b/src/lib.rs
index 46ef4bd..f7f55ae 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -4,6 +4,7 @@ use std::process::{Command, Stdio};
 
 use anyhow::Result;
 
+use ::log::warn;
 use conventional_commit_parser::commit::{CommitType, ConventionalCommit};
 use conventional_commit_parser::parse_footers;
 use once_cell::sync::Lazy;
@@ -13,6 +14,7 @@ use conventional::version::IncrementCommand;
 use error::BumpError;
 use git::repository::Repository;
 
+use serde::{Deserialize, Serialize};
 use settings::Settings;
 
 use crate::git::error::{Git2Error, TagError};
@@ -28,22 +30,35 @@ pub mod hook;
 pub mod log;
 pub mod settings;
 
-pub type CommitsMetadata = HashMap<CommitType, CommitConfig>;
+pub type CommitsMetadata = HashMap<CommitType, CommitConfigOrNull>;
+
+#[derive(Debug, Serialize, Deserialize, PartialEq, Eq, Clone)]
+#[serde(untagged)]
+pub enum CommitConfigOrNull {
+    CommitConfig(CommitConfig),
+    None {},
+}
 
 pub const CONFIG_PATH: &str = "cog.toml";
 
 pub static SETTINGS: Lazy<Settings> = Lazy::new(|| {
     if let Ok(repo) = Repository::open(".") {
-        Settings::get(&repo).unwrap_or_default()
-    } else {
-        Settings::default()
+        let settings = Settings::get(&repo);
+        if let Err(err) = settings.as_ref() {
+            warn!("Failed to get config, falling back to default: {err}");
+        }
+
+        return settings.unwrap_or_default();
     }
+
+    Settings::default()
 });
 
 // This cannot be carried by `Cocogitto` struct since we need it to be available in `Changelog`,
 // `Commit` etc. Be sure that `CocoGitto::new` is called before using this  in order to bypass
 // unwrapping in case of error.
-pub static COMMITS_METADATA: Lazy<CommitsMetadata> = Lazy::new(|| SETTINGS.commit_types());
+pub static COMMITS_METADATA: Lazy<HashMap<CommitType, CommitConfig>> =
+    Lazy::new(|| SETTINGS.commit_types());
 
 #[derive(Debug)]
 pub struct CocoGitto {
diff --git a/src/settings/mod.rs b/src/settings/mod.rs
index 35b8b3c..652a1e2 100644
--- a/src/settings/mod.rs
+++ b/src/settings/mod.rs
@@ -5,7 +5,7 @@ use std::path::PathBuf;
 
 use crate::conventional::commit::CommitConfig;
 use crate::git::repository::Repository;
-use crate::{CommitsMetadata, CONFIG_PATH, SETTINGS};
+use crate::{CommitConfigOrNull, CommitsMetadata, CONFIG_PATH, SETTINGS};
 
 use crate::conventional::changelog::error::ChangelogError;
 use crate::conventional::changelog::template::{RemoteContext, Template};
@@ -44,7 +44,7 @@ pub struct Settings {
     pub pre_package_bump_hooks: Vec<String>,
     pub post_package_bump_hooks: Vec<String>,
     pub git_hooks: HashMap<GitHookType, GitHook>,
-    pub commit_types: HashMap<String, CommitConfig>,
+    pub commit_types: HashMap<String, CommitConfigOrNull>,
     pub changelog: Changelog,
     pub bump_profiles: HashMap<String, BumpProfile>,
     pub packages: HashMap<String, MonoRepoPackage>,
@@ -302,47 +302,73 @@ impl Settings {
         repository.try_into()
     }
 
-    pub fn commit_types(&self) -> CommitsMetadata {
+    pub fn commit_types(&self) -> HashMap<CommitType, CommitConfig> {
         let commit_settings = self.commit_types.clone();
         let mut custom_types = HashMap::new();
 
         commit_settings.iter().for_each(|(key, value)| {
             let _ = custom_types.insert(CommitType::from(key.as_str()), value.clone());
         });
-
         let mut default_types = Settings::default_commit_config();
 
         default_types.extend(custom_types);
 
         default_types
+            .into_iter()
+            .filter_map(|(key, value)| match value {
+                CommitConfigOrNull::CommitConfig(config) => Some((key, config)),
+                CommitConfigOrNull::None {} => None,
+            })
+            .collect()
     }
 
     fn default_commit_config() -> CommitsMetadata {
         let mut default_types = HashMap::new();
         default_types.insert(
             CommitType::Feature,
-            CommitConfig::new("Features").with_minor_bump(),
+            CommitConfigOrNull::CommitConfig(CommitConfig::new("Features").with_minor_bump()),
         );
         default_types.insert(
             CommitType::BugFix,
-            CommitConfig::new("Bug Fixes").with_patch_bump(),
+            CommitConfigOrNull::CommitConfig(CommitConfig::new("Bug Fixes").with_patch_bump()),
         );
 
-        default_types.insert(CommitType::Chore, CommitConfig::new("Miscellaneous Chores"));
-        default_types.insert(CommitType::Revert, CommitConfig::new("Revert"));
+        default_types.insert(
+            CommitType::Chore,
+            CommitConfigOrNull::CommitConfig(CommitConfig::new("Miscellaneous Chores")),
+        );
+        default_types.insert(
+            CommitType::Revert,
+            CommitConfigOrNull::CommitConfig(CommitConfig::new("Revert")),
+        );
         default_types.insert(
             CommitType::Performances,
-            CommitConfig::new("Performance Improvements"),
+            CommitConfigOrNull::CommitConfig(CommitConfig::new("Performance Improvements")),
         );
         default_types.insert(
             CommitType::Documentation,
-            CommitConfig::new("Documentation"),
+            CommitConfigOrNull::CommitConfig(CommitConfig::new("Documentation")),
+        );
+        default_types.insert(
+            CommitType::Style,
+            CommitConfigOrNull::CommitConfig(CommitConfig::new("Style")),
+        );
+        default_types.insert(
+            CommitType::Refactor,
+            CommitConfigOrNull::CommitConfig(CommitConfig::new("Refactoring")),
+        );
+        default_types.insert(
+            CommitType::Test,
+            CommitConfigOrNull::CommitConfig(CommitConfig::new("Tests")),
+        );
+        default_types.insert(
+            CommitType::Build,
+            CommitConfigOrNull::CommitConfig(CommitConfig::new("Build system")),
+        );
+        default_types.insert(
+            CommitType::Ci,
+            CommitConfigOrNull::CommitConfig(CommitConfig::new("Continuous Integration")),
         );
-        default_types.insert(CommitType::Style, CommitConfig::new("Style"));
-        default_types.insert(CommitType::Refactor, CommitConfig::new("Refactoring"));
-        default_types.insert(CommitType::Test, CommitConfig::new("Tests"));
-        default_types.insert(CommitType::Build, CommitConfig::new("Build system"));
-        default_types.insert(CommitType::Ci, CommitConfig::new("Continuous Integration"));
         default_types
     }
 
@@ -481,3 +507,27 @@ impl TryFrom<&Repository> for Settings {
         }
     }
 }
+
+#[cfg(test)]
+mod test {
+    use std::fs;
+
+    use conventional_commit_parser::commit::CommitType;
+    use sealed_test::prelude::*;
+    use speculoos::prelude::*;
+
+    use crate::{test_helpers::git_init_no_gpg, COMMITS_METADATA};
+
+    #[sealed_test]
+    fn should_disable_default_commit_type() -> anyhow::Result<()> {
+        git_init_no_gpg()?;
+        let settings = r#"
+[commit_types]
+feat = {}
+"#;
+        fs::write("cog.toml", settings)?;
+        assert_that!(COMMITS_METADATA.keys()).does_not_contain(&CommitType::Feature);
+        assert_that!(COMMITS_METADATA.keys()).contains(&CommitType::BugFix);
+        Ok(())
+    }
+}


Test patch:
diff --git a/tests/cog_tests/commit.rs b/tests/cog_tests/commit.rs
index 5f5587f..3f0093c 100644
--- a/tests/cog_tests/commit.rs
+++ b/tests/cog_tests/commit.rs
@@ -1,5 +1,5 @@
-use std::ffi::OsStr;
 use std::process::Command;
+use std::{ffi::OsStr, fs};
 
 use crate::helpers::*;
 
@@ -281,3 +281,26 @@ fn update_option_git_commit_ok() -> Result<()> {
 
     Ok(())
 }
+
+#[sealed_test]
+fn should_error_on_disabled_commit_error() -> Result<()> {
+    // Arrange
+    git_init()?;
+    git_add("content", "test_file")?;
+    let settings = r#"
+        [commit_types]
+        perf = {}
+        "#;
+
+    fs::write("cog.toml", settings)?;
+
+    // Act
+    Command::cargo_bin("cog")?
+        .arg("commit")
+        .arg("perf")
+        .arg("fails at the speed of light")
+        // Assert
+        .assert()
+        .failure();
+    Ok(())
+}