Repository navigation
Expand file tree
/
Copy pathcliff.toml
More file actions
170 lines (158 loc) Β· 7.89 KB
/
Copy pathcliff.toml
File metadata and controls
170 lines (158 loc) Β· 7.89 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
# git-cliff ~ configuration file
# https://git-cliff.org/docs/configuration
[remote.github]
owner = "videojs"
repo = "video.js"
[changelog]
# A Tera template to be rendered for each release in the changelog.
# See https://keats.github.io/tera/docs/#introduction
header = """
# Changelog\n
All notable changes to this project will be documented in this file.\n
"""
# A Tera template to be rendered for each release in the changelog.
# See https://keats.github.io/tera/docs/#introduction
body = """
{#- Video.js 10 was released from videojs/v10 until it moved into videojs/video.js on
2026-10-06 (Unix time 1791320657); contributor links for those releases stay there. -#}
{%- macro remote_url(version, timestamp) -%}
{%- if version and version is starting_with("@videojs/") and timestamp < 1791320657 -%}
https://github.com/videojs/v10
{%- else -%}
https://github.com/videojs/video.js
{%- endif -%}
{%- endmacro -%}
{% if version -%}
## [{{ version | trim_start_matches(pat="v") }}] - {{ timestamp | date(format="%Y-%m-%d") }}
{% else -%}
## [Unreleased]
{% endif -%}
{% for group, commits in commits | group_by(attribute="group") %}
### {{ group | striptags | trim | upper_first }}
{%- for commit in commits %}
- {% if commit.scope %}*({{ commit.scope }})* {% endif %}\
{% if commit.breaking %}[**breaking**] {% endif %}\
{{ commit.message | split(pat="\n") | first | upper_first | trim }}\
{% if commit.remote.username %} by [@{{ commit.remote.username }}](https://github.com/{{ commit.remote.username }}){%- endif -%}
{% endfor %}
{% endfor %}
{%- if github.contributors | filter(attribute="is_first_time", value=true) | length != 0 %}
### New Contributors
{%- endif -%}
{% for contributor in github.contributors | filter(attribute="is_first_time", value=true) %}
* @{{ contributor.username }} made their first contribution
{%- if contributor.pr_number %} in \
[#{{ contributor.pr_number }}]({{ self::remote_url(version=version, timestamp=timestamp) }}/pull/{{ contributor.pr_number }}) \
{%- endif %}
{%- endfor %}\n
{%- if github.contributors | filter(attribute="is_first_time", value=true) | length != 0 %}{% raw %}\n{% endraw -%}{% endif %}
"""
# A Tera template to be rendered as the changelog's footer.
# See https://keats.github.io/tera/docs/#introduction
footer = """
{#- Video.js 10 was released from videojs/v10 until it moved into videojs/video.js on
2026-10-06 (Unix time 1791320657); compare links for those releases stay there. -#}
{%- macro remote_url(version, timestamp) -%}
{%- if version is starting_with("@videojs/") and timestamp < 1791320657 -%}
https://github.com/videojs/v10
{%- else -%}
https://github.com/videojs/video.js
{%- endif -%}
{%- endmacro -%}
{% for release in releases -%}
{% if release.version -%}
{% if release.previous.version -%}
[{{ release.version | trim_start_matches(pat="v") }}]: \
{{ self::remote_url(version=release.version, timestamp=release.timestamp) }}/compare/{{ release.previous.version }}...{{ release.version }}
{% endif -%}
{% else -%}
[unreleased]: https://github.com/videojs/video.js/compare/{{ release.previous.version }}...HEAD
{% endif -%}
{% endfor %}
<!-- generated by git-cliff -->
"""
# Remove leading and trailing whitespaces from the changelog's body.
trim = true
# Render body even when there are no releases to process.
render_always = true
# An array of regex based postprocessors to modify the changelog.
postprocessors = [
# Replace the placeholder <REPO> with a URL.
#{ pattern = '<REPO>', replace = "https://github.com/orhun/git-cliff" },
]
# render body even when there are no releases to process
# render_always = true
# output file path
# output = "test.md"
[git]
# Video.js 10 releases. `build/scripts/generate-changelog.mjs` runs git-cliff once over
# `history/v8-tip..HEAD` and once over the 8.x branch with `--tag-pattern` for v8 tags.
tag_pattern = "^@videojs/core@[0-9].*"
# Parse commits according to the conventional commits specification.
# See https://www.conventionalcommits.org
conventional_commits = true
# Exclude commits that do not match the conventional commits specification.
filter_unconventional = true
# Require all commits to be conventional.
# Takes precedence over filter_unconventional.
require_conventional = false
# Split commits on newlines, treating each line as an individual commit.
split_commits = false
# An array of regex based parsers to modify commit messages prior to further processing.
commit_preprocessors = [
# Replace issue numbers with link templates to be updated in `changelog.postprocessors`.
#{ pattern = '\((\w+\s)?#([0-9]+)\)', replace = "([#${2}](<REPO>/issues/${2}))"},
# Replace (#NNN) with a Markdown link to the GitHub PR. Video.js 10 was developed in
# videojs/v10 until it moved into videojs/video.js, whose PRs start at #9248, so
# lower numbers still belong to videojs/v10.
{ pattern = '\(#(924[89]|92[5-9][0-9]|9[3-9][0-9]{2}|[1-9][0-9]{4,})\)', replace = "([#${1}](https://github.com/videojs/video.js/pull/${1}))" },
{ pattern = '\(#([0-9]+)\)', replace = "([#${1}](https://github.com/videojs/v10/pull/${1}))" },
# #9391 changed internal SPF APIs only, so it shipped in a minor release; its PR body
# carries a matching release-please commit override. Keep this: the changelog is
# regenerated from history on every run, so removing it re-marks 10.2.0 as breaking.
{ pattern = '^refactor\(spf\)!: derive engine types from their behaviors and drop shareSignals', replace = "refactor(spf): derive engine types from their behaviors and drop shareSignals" },
# Check spelling of the commit message using https://github.com/crate-ci/typos.
# If the spelling is incorrect, it will be fixed automatically.
#{ pattern = '.*', replace_command = 'typos --write-changes -' },
]
# Prevent commits that are breaking from being excluded by commit parsers.
protect_breaking_commits = false
# An array of regex based parsers for extracting data from the commit message.
# Assigns commits to groups.
# Optionally sets the commit's scope and can decide to exclude commits from further processing.
commit_parsers = [
{ message = "^feat", group = "<!-- 0 -->π Features" },
{ message = "^fix", group = "<!-- 1 -->π Bug Fixes" },
{ message = "^doc", group = "<!-- 3 -->π Documentation" },
{ message = "^perf", group = "<!-- 4 -->β‘ Performance" },
{ message = "^refactor", group = "<!-- 2 -->π Refactor" },
{ message = "^style", group = "<!-- 5 -->π¨ Styling" },
{ message = "^test", group = "<!-- 6 -->π§ͺ Testing" },
{ message = "^chore\\(release\\): prepare for", skip = true },
{ message = "^chore: release main", skip = true },
{ message = "^chore\\(release\\): update root changelog", skip = true },
{ message = "^chore\\(deps.*\\)", skip = true },
{ message = "^chore\\(pr\\)", skip = true },
{ message = "^chore\\(pull\\)", skip = true },
{ message = "^chore|^ci", group = "<!-- 7 -->βοΈ Miscellaneous Tasks" },
{ body = ".*security", group = "<!-- 8 -->π‘οΈ Security" },
{ message = "^revert", group = "<!-- 9 -->βοΈ Revert" },
{ message = ".*", group = "<!-- 10 -->πΌ Other" },
]
# Exclude commits that are not matched by any commit parser.
filter_commits = false
# Fail on a commit that is not matched by any commit parser.
fail_on_unmatched_commit = false
# An array of link parsers for extracting external references, and turning them into URLs, using regex.
link_parsers = []
# Include only the tags that belong to the current branch.
use_branch_tags = false
# Order releases topologically instead of chronologically.
topo_order = false
# Order commits topologically instead of chronologically.
topo_order_commits = true
# Order of commits in each group/release within the changelog.
# Allowed values: newest, oldest
sort_commits = "oldest"
# Process submodules commits
recurse_submodules = false