glyptodont 0.3.0 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2da8dbfba96ec9503e38905a40127830fd2418ed24f047547c67d86dd11f3b56
4
- data.tar.gz: cf21cce8ec2f2ba666217176318d6eda32598228a8d6cd5bf68106dfc411de2f
3
+ metadata.gz: b0bdb41b7c944725ff0cc501c8ee3b64d77fd8aa5cee211d1697ce43fe8547d1
4
+ data.tar.gz: 5d1a40a6f07b45b89487775ffad5d92ce3a84982ee19db732d13b8066e56ca68
5
5
  SHA512:
6
- metadata.gz: 05764bd33fd94ed756d475f4273e1369290e0513a222ae1b63a55ed962283bd3ceab321320dedaeb5bdccfa430953f299bdedc02edcf9fc3fe4c4858ef340bdc
7
- data.tar.gz: 2efb6f3cf24915b5ad04b1d3450695e7818badb093eda713587e9a938f64ce2899a331334c2b528afa817234806f93eefe3e7253a13a72dfca2e944af5c5aee9
6
+ metadata.gz: efdfeb5ca64d4c3f41b6320b7d7de4df52d02cc5dd68bf223c036c769c8b8477240e2b57336de69cbdbe8878cda22d7b3dfe56b6fe826d143f2342d11a9deb38
7
+ data.tar.gz: 3672461a3f02c7572bae1289e4db373efde349a1d00ff34ee94cd142efbd1c8accdf3df4622e324395d70af9ee9b5136aba2d31e613f772664f7ca8b8f7812a9
@@ -0,0 +1,29 @@
1
+ #!/bin/sh
2
+ # Validate conventional commit message format.
3
+ # See https://www.conventionalcommits.org/
4
+
5
+ set -e
6
+
7
+ msg_file="$1"
8
+ if [ ! -f "$msg_file" ]; then
9
+ echo "commit-msg: no message file" >&2
10
+ exit 1
11
+ fi
12
+
13
+ first_line=$(head -n 1 "$msg_file")
14
+
15
+ # Allow merge and revert commits
16
+ case "$first_line" in
17
+ Merge\ *) exit 0 ;;
18
+ Revert\ *) exit 0 ;;
19
+ esac
20
+
21
+ # Conventional: type(scope)?!?: description
22
+ # Types: feat, fix, docs, style, refactor, perf, test, build, ci, chore
23
+ if echo "$first_line" | grep -qE '^(feat|fix|docs|style|refactor|perf|test|build|ci|chore)(\([a-zA-Z0-9_.-]+\))?!?: .+'; then
24
+ exit 0
25
+ fi
26
+
27
+ echo "commit-msg: commit message must follow Conventional Commits (e.g. feat: add X, fix: resolve Y)." >&2
28
+ echo " First line: $first_line" >&2
29
+ exit 1
@@ -0,0 +1,13 @@
1
+ #!/bin/sh
2
+ # Run project checks before allowing a commit.
3
+ # Requires Mise and script/test (RuboCop + RSpec).
4
+
5
+ set -e
6
+
7
+ cd "$(git rev-parse --show-toplevel)"
8
+
9
+ if [ -f ".tool-versions" ] && command -v mise >/dev/null 2>&1; then
10
+ mise exec -- ./script/test
11
+ else
12
+ ./script/test
13
+ fi
@@ -0,0 +1 @@
1
+ ffd9343
@@ -0,0 +1,17 @@
1
+ # https://docs.github.com/en/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file
2
+
3
+ version: 2
4
+ updates:
5
+ - package-ecosystem: "bundler"
6
+ directory: "/"
7
+ schedule:
8
+ interval: "weekly"
9
+ commit-message:
10
+ prefix: "deps"
11
+
12
+ - package-ecosystem: "github-actions"
13
+ directory: "/"
14
+ schedule:
15
+ interval: "weekly"
16
+ commit-message:
17
+ prefix: "ci"
@@ -0,0 +1,30 @@
1
+ # Enable auto-merge on Dependabot PRs so GitHub merges them when required status checks pass.
2
+ # Configure "Require status checks to pass before merging" in branch protection for the default branch.
3
+
4
+ name: Dependabot automerge
5
+
6
+ on: pull_request
7
+
8
+ permissions:
9
+ contents: write
10
+ pull-requests: write
11
+
12
+ env:
13
+ FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true
14
+
15
+ jobs:
16
+ dependabot:
17
+ runs-on: ubuntu-latest
18
+ if: github.event.pull_request.user.login == 'dependabot[bot]'
19
+ steps:
20
+ - name: Dependabot metadata
21
+ id: metadata
22
+ uses: dependabot/fetch-metadata@v2
23
+ with:
24
+ github-token: "${{ secrets.GITHUB_TOKEN }}"
25
+
26
+ - name: Enable auto-merge
27
+ run: gh pr merge --auto --merge "$PR_URL"
28
+ env:
29
+ PR_URL: ${{ github.event.pull_request.html_url }}
30
+ GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@@ -1,26 +1,82 @@
1
1
  name: Ruby
2
2
 
3
- on: [push,pull_request]
3
+ on: [push, pull_request]
4
+
5
+ env:
6
+ FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true
4
7
 
5
8
  jobs:
9
+ glyptodont:
10
+ runs-on: ubuntu-latest
11
+ steps:
12
+ - name: Checkout
13
+ uses: actions/checkout@v4
14
+
15
+ - name: Set up Ruby
16
+ uses: ruby/setup-ruby@v1
17
+ with:
18
+ ruby-version: "3.2"
19
+ bundler-cache: false
20
+
21
+ - name: Install Glyptodont
22
+ run: gem install glyptodont
23
+
24
+ - name: Check TODOs
25
+ run: glyptodont
26
+
27
+ commit-messages:
28
+ runs-on: ubuntu-latest
29
+ steps:
30
+ - name: Checkout
31
+ uses: actions/checkout@v6
32
+ with:
33
+ fetch-depth: 0
34
+
35
+ - name: Check commit messages
36
+ run: |
37
+ if [ "${{ github.event_name }}" = "pull_request" ]; then
38
+ range="${{ github.event.pull_request.base.sha }}..${{ github.event.pull_request.head.sha }}"
39
+ else
40
+ before="${{ github.event.before }}"
41
+ if [ "$before" = "0000000000000000000000000000000000000000" ] || [ -z "$before" ]; then
42
+ range="${{ github.sha }}"
43
+ else
44
+ range="$before..${{ github.sha }}"
45
+ fi
46
+ fi
47
+ ./script/check-commit-messages "$range"
48
+
6
49
  build:
50
+ needs: commit-messages
7
51
  strategy:
8
52
  fail-fast: false
9
53
  matrix:
10
- ruby: ['2.5', '2.6', '2.7', '3.0', '3.1']
54
+ ruby: ["3.2", "3.3", "3.4", "4.0"]
11
55
  runs-on: ubuntu-latest
12
56
  steps:
13
- - name: Checkout
14
- uses: actions/checkout@v2
15
-
16
- - name: Set up Ruby
17
- uses: ruby/setup-ruby@v1
18
- with:
19
- ruby-version: ${{ matrix.ruby }}
20
-
21
- - name: Run The CI Build
22
- run: |
23
- gem install bundler
24
- sudo apt install cmake
25
- bundle install
26
- ./script/cibuild
57
+ - name: Checkout
58
+ uses: actions/checkout@v6
59
+
60
+ - name: Set up Mise
61
+ uses: jdx/mise-action@v3
62
+ with:
63
+ tool_versions: |
64
+ ruby ${{ matrix.ruby }}
65
+ cmake
66
+ cache: true
67
+
68
+ - name: Cache Bundler
69
+ uses: actions/cache@v5
70
+ with:
71
+ path: vendor/bundle
72
+ key: bundle-${{ runner.os }}-${{ matrix.ruby }}-${{ hashFiles('**/Gemfile.lock') }}
73
+ restore-keys: |
74
+ bundle-${{ runner.os }}-${{ matrix.ruby }}-
75
+
76
+ - name: Install Bundler and gems
77
+ run: |
78
+ bundle config set path vendor/bundle
79
+ bundle install --jobs 4 --retry 3
80
+
81
+ - name: Run the CI build
82
+ run: ./script/cibuild
@@ -0,0 +1,42 @@
1
+ # Publish to RubyGems.org when a version tag is pushed (e.g. by merging a Release Please PR).
2
+ # Uses RubyGems Trusted Publishing (OIDC); no API key needed.
3
+ # One-time setup: add this repo and workflow on https://rubygems.org (Trusted Publishers).
4
+
5
+ name: Publish gem
6
+
7
+ on:
8
+ push:
9
+ tags:
10
+ - "v*"
11
+
12
+ env:
13
+ FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true
14
+
15
+ jobs:
16
+ push:
17
+ runs-on: ubuntu-latest
18
+ permissions:
19
+ contents: read
20
+ id-token: write
21
+
22
+ steps:
23
+ - name: Checkout
24
+ uses: actions/checkout@v6
25
+ with:
26
+ persist-credentials: false
27
+
28
+ - name: Set up Mise
29
+ uses: jdx/mise-action@v3
30
+ with:
31
+ tool_versions: |
32
+ ruby 4.0
33
+ cmake
34
+ cache: true
35
+
36
+ - name: Install Bundler and gems
37
+ run: |
38
+ bundle config set path vendor/bundle
39
+ bundle install --jobs 4 --retry 3
40
+
41
+ - name: Publish to RubyGems.org
42
+ uses: rubygems/release-gem@v1
@@ -0,0 +1,28 @@
1
+ name: Release Please
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - main
7
+ - master
8
+
9
+ permissions:
10
+ contents: write
11
+ pull-requests: write
12
+
13
+ env:
14
+ FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true
15
+
16
+ jobs:
17
+ release-please:
18
+ runs-on: ubuntu-latest
19
+ steps:
20
+ - name: Checkout
21
+ uses: actions/checkout@v6
22
+ with:
23
+ fetch-depth: 0
24
+
25
+ - name: Release Please
26
+ uses: googleapis/release-please-action@v4
27
+ with:
28
+ token: ${{ secrets.GITHUB_TOKEN }}
@@ -0,0 +1,3 @@
1
+ {
2
+ ".": "1.0.0"
3
+ }
data/.rubocop.yml CHANGED
@@ -1,6 +1,10 @@
1
1
  AllCops:
2
2
  NewCops: enable
3
- TargetRubyVersion: 2.5
3
+ TargetRubyVersion: 3.2
4
+
5
+ plugins:
6
+ - rubocop-rake
7
+ - rubocop-rspec
4
8
 
5
9
  Style/StringLiterals:
6
10
  Enabled: true
data/.tool-versions CHANGED
@@ -1 +1,3 @@
1
- ruby 3.0.0
1
+ ruby 4.0
2
+ cmake latest
3
+ git-cliff latest
data/CHANGELOG.md CHANGED
@@ -3,50 +3,145 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
 
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
- and this project adheres to
7
- [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
6
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+ ## [1.0.0](https://github.com/johnsyweb/glyptodont/compare/v0.3.0...v1.0.0) (2026-03-11)
9
+
10
+
11
+ ### ⚠ BREAKING CHANGES
12
+
13
+ * drop support for Ruby < 3.2 (EOL); require Ruby 3.2+
14
+
15
+ ### Bug Fixes
16
+
17
+ * do not require bundler/setup in executable ([83d4f0c](https://github.com/johnsyweb/glyptodont/commit/83d4f0ce45654ee683a807860dd28e81f44170e5))
18
+ * use release-please-config.json so Release Please finds config ([c8c7f1b](https://github.com/johnsyweb/glyptodont/commit/c8c7f1b1f3cb6716e47838c2a744c03473c9f77d))
19
+ * use release-please-config.json so Release Please finds config ([16f0f13](https://github.com/johnsyweb/glyptodont/commit/16f0f13a1b9fe6d3f3e03d20b28ea68e3fb31fe0))
20
+
21
+
22
+ ### Miscellaneous Chores
23
+
24
+ * drop support for Ruby &lt; 3.2 (EOL); require Ruby 3.2+ ([0c0fbcd](https://github.com/johnsyweb/glyptodont/commit/0c0fbcde6748c7dca61bb2f8b09955b2b011a8c1))
8
25
 
9
26
  ## [Unreleased]
10
27
 
11
- [Unreleased]: https://github.com/johnsyweb/glyptodont/compare/v0.3.0..main
28
+ ### Changed
29
+
30
+ - xp
31
+ - drop support for Ruby < 3.2 (EOL); require Ruby 3.2+
32
+ - add conventional commits changelog and release workflow
33
+ - enforce conventional commits and run checks before each commit
34
+ - add Release Please release bot
35
+ - publish gem to RubyGems via Trusted Publishing on tag push
36
+ - add documentation page for GitHub Pages
37
+ - set homepage to docs at www.johnsy.com/glyptodont/
38
+ - add Dependabot and automerge workflow for dependency updates
39
+ - remove automerge setup note from README
40
+ - check conventional commits only from first conventional commit onwards
41
+ - add .nojekyll so GitHub Pages does not use Jekyll
42
+
43
+ ## [0.3.1] - 2026-03-11
12
44
 
13
- ## [0.3.0] - 2022-03-23
45
+ ### Fixed
14
46
 
15
- ### Added
47
+ - Do not require `bundler/setup` in the executable. The gem now runs correctly when the current directory has a Gemfile (e.g. in CI or when running in the gem's own repo).
16
48
 
17
- - `keywords` option and configuration for TODO synonyms [[#5]]
49
+ ## [0.3.0] - 2022-03-23
18
50
 
19
51
  ### Changed
20
52
 
21
- - Dropped support for Ruby version older than 2.5 [[#4]]
53
+ - Fix link
54
+
55
+ - tyop
56
+
57
+ - Support Ruby 2.5 through 3.1
58
+
59
+ - Add Rubocop plugins
60
+
61
+ - Improve gem description
62
+
63
+ - Gemspec/RequireMFA
64
+
65
+ - Lint/AmbiguousOperatorPrecedence
66
+
67
+ - Update Changelog
68
+
69
+ - Add keywords option/configuration for TODO synonyms
70
+
71
+ - v0.3.0
72
+
73
+ - 2022
74
+
75
+ - Changelog for v0.3.0
76
+
77
+ - Fix anchor
22
78
 
23
- [#4]: https://github.com/johnsyweb/glyptodont/pull/4
24
- [#5]: https://github.com/johnsyweb/glyptodont/pull/5
25
- [Unreleased]: https://github.com/johnsyweb/glyptodont/compare/v0.2.0..v0.3.0
26
79
 
27
80
  ## [0.2.0] - 2021-03-28
28
81
 
29
- ### Added
82
+ ### Changed
83
+
84
+ - TODOs have moved
85
+
86
+ - Cache the annotator for a file
87
+
88
+ - See also!
89
+
90
+ - return empty hash if the config file is empty
91
+
92
+ - add rspec-its
93
+
94
+ - add cmd-line options into config
95
+
96
+ - pass ARGV to the initializer not the check
97
+
98
+ - report all old TODOs, use age of the youngest in message
99
+
100
+ - passing case wasn't handling the new threshold checking, fixed now
101
+
102
+ - Style
103
+
104
+ - Move requirements around
105
+
106
+ - Extract #stale_todos and #oldest_age
30
107
 
31
- - Configuration settings for `max_age_in_days` and `threshold`, to allow for
32
- setting these per project. [[#3]]
108
+ - Spec for counter
109
+
110
+ - Update configuration file
111
+
112
+ - Document new configuration options
113
+
114
+ - Changelog for v0.2.0
115
+
116
+ - Fake configuration to make tests pass again
117
+
118
+ - Run rubocop in ci
119
+
120
+ - Bump version
121
+
122
+
123
+ ## [0.1.0] - 2021-03-16
33
124
 
34
125
  ### Changed
35
126
 
36
- - Report all old TODOs, use age of the youngest in message [[#2]]
127
+ - Initial version
37
128
 
38
- ### Fixed
129
+ - //xkcd.com/149/
39
130
 
40
- - Handle empty configuration file [[#1]]
131
+ - Allow for excluding certain lines
41
132
 
42
- [#1]: https://github.com/johnsyweb/glyptodont/pull/1
43
- [#2]: https://github.com/johnsyweb/glyptodont/pull/2
44
- [#3]: https://github.com/johnsyweb/glyptodont/pull/3
133
+ - Handle missing / empty configuration
45
134
 
46
- [0.2.0]: https://github.com/johnsyweb/glyptodont/compare/v0.1.0..v0.2.0
135
+ - All or nothing
47
136
 
48
- ## [0.1.0] - 2021-03-13
137
+ - Use OptionParser to document command-line options
49
138
 
50
- - Initial release
139
+ - Please Read Me
51
140
 
141
+ - Test more Rubies
142
+
143
+
144
+ [Unreleased]: https://github.com/johnsyweb/glyptodont/compare/v0.3.0..HEAD
145
+ [0.3.0]: https://github.com/johnsyweb/glyptodont/compare/v0.2.0..v0.3.0
146
+ [0.2.0]: https://github.com/johnsyweb/glyptodont/compare/v0.1.0..v0.2.0
52
147
  [0.1.0]: https://github.com/johnsyweb/glyptodont/releases/tag/v0.1.0
data/Gemfile CHANGED
@@ -4,7 +4,7 @@ source "https://rubygems.org"
4
4
 
5
5
  gemspec
6
6
 
7
- group :developement, :test do
7
+ group :development, :test do
8
8
  gem "rake"
9
9
  gem "rspec"
10
10
  gem "rspec-its"
data/README.md CHANGED
@@ -16,17 +16,40 @@ _done_, this gem is for ***you***!
16
16
  This was written after I was bitten by a TODO not being _done_ at work. I expect
17
17
  to build it into our CI pipeline and see what it catches.
18
18
 
19
- After checking out the project, run `script/setup` to install dependencies. Then,
20
- run `script/tests` to run the tests. You can also run `script/console` for an
21
- interactive prompt that will allow you to experiment.
19
+ [Dependabot](https://docs.github.com/en/code-security/dependabot) is configured
20
+ to open PRs for Bundler and GitHub Actions (weekly). A workflow enables
21
+ auto-merge on those PRs so GitHub merges them when required status checks pass.
22
22
 
23
- To install this gem onto your local machine, run `bundle exec rake install`. To
24
- release a new version, update the version number in `version.rb`, and then run
25
- `bundle exec rake release`, which will create a git tag for the version, push
26
- git commits and the created tag, and push the `.gem` file to
27
- [rubygems.org](https://rubygems.org).
23
+ After checking out the project, install [Mise](https://mise.jdx.dev/) (the only
24
+ external prerequisite). Then run `script/setup`: it installs everything in
25
+ `.tool-versions` (Ruby and CMake), the gem dependencies, and Git hooks that
26
+ enforce [Conventional Commits](https://www.conventionalcommits.org/) and run
27
+ `script/test` (RuboCop + RSpec) before each commit. Run `script/test` manually
28
+ when needed; you can also run `script/console` for an interactive prompt.
28
29
 
29
- ## Getting started [![Gem version](https://img.shields.io/gem/v/glyptodont.svg?style=flat-square)](https://github.com/johnysweb/glyptodont) [![Gem downloads](https://img.shields.io/gem/dt/glyptodont.svg?style=flat-square)](https://rubygems.org/gems/glyptodont)
30
+ To install this gem onto your local machine, run `bundle exec rake install`.
31
+
32
+ ### Releasing
33
+
34
+ This project uses [Conventional Commits](https://www.conventionalcommits.org/).
35
+ Releases can be created in two ways.
36
+
37
+ **Release bot (recommended)**
38
+ [Release Please](https://github.com/googleapis/release-please-action) runs on pushes to
39
+ `main`/`master`. It opens a **Release PR** that updates `lib/glyptodont/version.rb` and
40
+ `CHANGELOG.md` from conventional commits. Merge that PR to create the Git tag and
41
+ GitHub Release; the gem is then published to [rubygems.org](https://rubygems.org) via
42
+ [Trusted Publishing](https://guides.rubygems.org/trusted-publishing/) (no API key in CI).
43
+
44
+ **Manual release**
45
+ With [git-cliff](https://git-cliff.org/) installed (e.g. `mise install`):
46
+
47
+ 1. Bump the version in `lib/glyptodont/version.rb` (e.g. `0.4.0`).
48
+ 2. Commit the version bump.
49
+ 3. Run `bundle exec rake release` to create the tag, push it, and publish the gem.
50
+ 4. Run `rake changelog` (or `mise exec -- rake changelog`), then commit and push the updated `CHANGELOG.md`.
51
+
52
+ ## Getting started [![Gem version](https://img.shields.io/gem/v/glyptodont.svg?style=flat-square)](https://github.com/johnsyweb/glyptodont) [![Gem downloads](https://img.shields.io/gem/dt/glyptodont.svg?style=flat-square)](https://rubygems.org/gems/glyptodont)
30
53
 
31
54
  Add this line to your application's Gemfile:
32
55
 
@@ -46,52 +69,14 @@ Or install it yourself as:
46
69
  gem install glyptodont
47
70
  ```
48
71
 
49
- ## Usage
50
-
51
- ```
52
- Usage: glyptodont [options]
53
- -d, --directory DIRECTORY Git repository to search for TODOs (default '.')
54
- -t, --threshold TODOS Maximum number of TODOs to allow (default 10)
55
- -m, --max-age DAYS Maximum number of days to allow TODOs to stay (default 14)
56
- -k, --keywords TODO,WORDS Keywords to treat as 'TODO' (default FIXME,HACK,TODO,XXX)
57
- --version Show version
58
- ```
59
-
60
- ## Configuration
61
-
62
- glyptodont looks for an optional `.glyptodont.yaml` configuration file in the
63
- root of the directory being scanned.
64
-
65
- ### Sections
66
-
67
- - `threshold`: Maximum number of TODOs to allow. Can be overridden by
68
- command-line options.
69
- - `max_age_in_days`: Maximum number of days to allow TODOs to stay. Can be
70
- overridden by command-line options.
71
- - `ignore`: List of `file_name:line_number` pairs to ignore when researching
72
- TODOs. This may be useful if you have, for example, Spanish language text in
73
- your project or you talk about TODOs a lot :-)
74
- - `keywords`: List of synonyms for TODO in your project. I've seen some
75
- interesting alternatives over the years.
76
-
77
- ### _Exempli gratiā_
78
-
79
- ```yaml
80
- ---
81
- threshold: 1
82
- max_age_in_days: 1
83
- ignore:
84
- - README.md:11
85
- - lib/glyptodont/checkers/counter.rb:30
86
- - lib/glyptodont/todo_researcher.rb:33
87
- - spec/checkers/counter_spec.rb:20
88
- ```
72
+ For usage, command-line options, configuration (`.glyptodont.yaml`), and CI
73
+ examples (GitHub Actions, Buildkite, Docker), see the [documentation](https://www.johnsy.com/glyptodont/).
89
74
 
90
75
  ## Requirements
91
76
 
92
- - Ruby (tested against v2.5 and above)
93
- - Git
94
- - CMake
77
+ - [Mise](https://mise.jdx.dev/) install once; `script/setup` uses it to install
78
+ Ruby and CMake from `.tool-versions`.
79
+ - Git — for development and for the rugged gem at runtime.
95
80
 
96
81
  ## Contributing
97
82
 
data/Rakefile CHANGED
@@ -9,4 +9,9 @@ require "rubocop/rake_task"
9
9
 
10
10
  RuboCop::RakeTask.new
11
11
 
12
+ desc "Regenerate CHANGELOG.md from conventional commits (requires git-cliff, e.g. via mise)"
13
+ task :changelog do
14
+ system("git cliff -o CHANGELOG.md") || abort("changelog task failed")
15
+ end
16
+
12
17
  task default: %i[spec rubocop]
data/cliff.toml ADDED
@@ -0,0 +1,62 @@
1
+ # git-cliff configuration for conventional commits
2
+ # https://git-cliff.org/docs/configuration
3
+
4
+ [changelog]
5
+ header = """
6
+ # Changelog
7
+
8
+ All notable changes to this project will be documented in this file.
9
+
10
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
11
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
12
+
13
+ """
14
+ body = """
15
+ {% if version -%}
16
+ ## [{{ version | trim_start_matches(pat="v") }}] - {{ timestamp | date(format="%Y-%m-%d") }}
17
+ {% else -%}
18
+ ## [Unreleased]
19
+ {% endif -%}
20
+ {% for group, commits in commits | group_by(attribute="group") %}
21
+ ### {{ group | upper_first }}
22
+ {% for commit in commits %}
23
+ - {{ commit.message | split(pat="\n") | first | trim }}
24
+ {% endfor %}
25
+ {% endfor %}
26
+
27
+ """
28
+ footer = """
29
+ {% for release in releases -%}
30
+ {% if release.version -%}
31
+ {% if release.previous.version -%}
32
+ [{{ release.version | trim_start_matches(pat="v") }}]: https://github.com/johnsyweb/glyptodont/compare/{{ release.previous.version }}..{{ release.version }}
33
+ {% else -%}
34
+ [{{ release.version | trim_start_matches(pat="v") }}]: https://github.com/johnsyweb/glyptodont/releases/tag/{{ release.version }}
35
+ {% endif -%}
36
+ {% else -%}
37
+ [Unreleased]: https://github.com/johnsyweb/glyptodont/compare/{{ release.previous.version }}..HEAD
38
+ {% endif -%}
39
+ {% endfor %}
40
+ """
41
+ trim = true
42
+
43
+ [git]
44
+ conventional_commits = true
45
+ filter_unconventional = false
46
+ commit_parsers = [
47
+ { message = "^Merge ", skip = true },
48
+ { message = "^merge ", skip = true },
49
+ { message = "^feat!?", group = "Added" },
50
+ { message = "^fix!?", group = "Fixed" },
51
+ { message = "^perf", group = "Changed" },
52
+ { message = "^refactor", group = "Changed" },
53
+ { message = "^chore", group = "Changed" },
54
+ { message = "^style", group = "Changed" },
55
+ { message = "^docs", group = "Changed" },
56
+ { message = "^test", group = "Changed" },
57
+ { message = "^ci", group = "Changed" },
58
+ { message = "^build", group = "Changed" },
59
+ { message = "^.*!:", group = "Changed" },
60
+ { message = "^.*", group = "Changed" },
61
+ ]
62
+ sort_commits = "oldest"
data/docs/.nojekyll ADDED
File without changes
Binary file