-
-
Notifications
You must be signed in to change notification settings - Fork 157
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Revamp the configuration file #541
Comments
Thanks for opening your first issue at git-cliff! Be sure to follow the issue template! ⛰️ |
I overall like it. I think we can have a subcommand such as A couple of comments:
That's just initial feedback, I will give this more thought over time. What do you think? |
|
I made a small adjustment in changing To be exact, I would also consider changing the template context to use |
That's good, or maybe
Do you mean the configuration file or the internal types? |
I'd also like to ping @MarcoIeni for getting some thoughts on this, since he's using |
Is there an existing issue or pull request for this?
Feature description
The current configuration lacks clear structure. The naming is inconsistent and some names are fairly non-descriptive. I believe git-cliff would profit from a refactor of the configuration options, command line parameters and update of the respective documentation.
This issue is intended as a basis for discussion. I have prepared a mock-up of how I would structure the configuration when starting from scratch. Below that is a numbered list of all of the changes such they can be discussed.
Any changes to the configuration will likely be breaking changes. Thus the target should be well defined, such that it is a one-off and not the start of many smaller changes.
Desired solution
Mock-up of the new config file
List of changes:
changelog.footer
tochangelog.footer_template
to match naming forchangelog.body_template
.changelog.trim
tochangelog.trim_body_whitespace
to be more descriptive.git.filter_unconventional
:a Renamed to
exclude_unconventional_commits
, becausefilter
can be misunderstood to be inclusive.b Moved from
[git]
to[changelog]
, because it excluding changes is a function of the changelog.git.protect_breaking_commits
:a Renamed to
retain_breaking_changes
to be more descriptive.b Moved from
[git]
to[changelog]
, because retaining changes is a function of the changelog.git.filter_commits
:a Renamed to
exclude_ungrouped_changes
to be more descriptive. Due tosplit_commits
being a thing, it makes more sense to refer to it working on changes instead of commits.b Moved from
[git]
to[changelog]
, because retaining changes is a function of the changelog.[release]
for options that act on the level of releases.git.tag_pattern
:a Renamed to
tags_pattern
to be more descriptive by including the purpose of the tags.b Moved to
[release]
.git.ignore_tags
:a Renamed to
skip_tags_pattern
to be more descriptive.b Moved to
[releases]
.git.topo_order
:a Renamed to
order_by
to be more descriptive.b Changed type to an enum with options
time
andtopology
.c Moved to
[releases]
.[git]
to[commit]
to reflect that these options relate to operations on the level of commits.git.sort_commits
a Renamed to
sort_order
to be more descriptive.b Renamed possible values to
newest_first
andoldest_first
to be more descriptive.git.split_commits
tosplit_commits_by_newline
to include that they operate on a line by line basis.git.skip_tags
toexclude_tags_pattern
._pattern
is used on all regex patterns.exclude
is more descriptive becauseskip
has a different meaning in the contest of releases.git.commit_preprocessors
tomessage_preprocessors
to emphasize them modifying the message and no other property of the commit.git.conventional_commits
toparse_conventional_commits
to be more descriptive.Tasks
config.rs
-- rename properties
-- update descriptions
-- rearrange sections
config.toml
Alternatives considered
none
Additional context
No response
The text was updated successfully, but these errors were encountered: