From 45b93527cff5e17710b01af723782b482d2704ca Mon Sep 17 00:00:00 2001 From: Josix Date: Thu, 29 Feb 2024 22:14:32 +0800 Subject: [PATCH 1/2] fix(commands/bump): prevent using incremental changelog when it is set to false in config --- commitizen/commands/bump.py | 8 ++++++-- commitizen/config/base_config.py | 5 +++++ commitizen/config/json_config.py | 1 + commitizen/config/toml_config.py | 1 + commitizen/config/yaml_config.py | 1 + 5 files changed, 14 insertions(+), 2 deletions(-) diff --git a/commitizen/commands/bump.py b/commitizen/commands/bump.py index c29c4c35c5..3975218660 100644 --- a/commitizen/commands/bump.py +++ b/commitizen/commands/bump.py @@ -293,7 +293,9 @@ def __call__(self) -> None: # noqa: C901 "unreleased_version": new_tag_version, "template": self.template, "extras": self.extras, - "incremental": True, + "incremental": self.config.mutated_settings.get( + "changelog_incremental", True + ), "dry_run": True, }, ) @@ -305,7 +307,9 @@ def __call__(self) -> None: # noqa: C901 self.config, { "unreleased_version": new_tag_version, - "incremental": True, + "incremental": self.config.mutated_settings.get( + "changelog_incremental", True + ), "dry_run": dry_run, "template": self.template, "extras": self.extras, diff --git a/commitizen/config/base_config.py b/commitizen/config/base_config.py index 478691aa14..d3500cab8d 100644 --- a/commitizen/config/base_config.py +++ b/commitizen/config/base_config.py @@ -10,11 +10,16 @@ def __init__(self): self._settings: Settings = DEFAULT_SETTINGS.copy() self.encoding = self.settings["encoding"] self._path: Path | None = None + self._settings_from_configs: Settings = {} @property def settings(self) -> Settings: return self._settings + @property + def mutated_settings(self) -> Settings: + return self._settings_from_configs + @property def path(self) -> Path | None: return self._path diff --git a/commitizen/config/json_config.py b/commitizen/config/json_config.py index cf554922d6..9087dbd5a7 100644 --- a/commitizen/config/json_config.py +++ b/commitizen/config/json_config.py @@ -52,5 +52,6 @@ def _parse_setting(self, data: bytes | str) -> None: try: self.settings.update(doc["commitizen"]) + self.mutated_settings.update(doc["commitizen"]) except KeyError: self.is_empty_config = True diff --git a/commitizen/config/toml_config.py b/commitizen/config/toml_config.py index d45860d650..4dd2989387 100644 --- a/commitizen/config/toml_config.py +++ b/commitizen/config/toml_config.py @@ -58,5 +58,6 @@ def _parse_setting(self, data: bytes | str) -> None: try: self.settings.update(doc["tool"]["commitizen"]) # type: ignore + self.mutated_settings.update(doc["tool"]["commitizen"]) # type: ignore except exceptions.NonExistentKey: self.is_empty_config = True diff --git a/commitizen/config/yaml_config.py b/commitizen/config/yaml_config.py index 396e2eba11..5beec3220a 100644 --- a/commitizen/config/yaml_config.py +++ b/commitizen/config/yaml_config.py @@ -38,6 +38,7 @@ def _parse_setting(self, data: bytes | str) -> None: try: self.settings.update(doc["commitizen"]) + self.mutated_settings.update(doc["commitizen"]) except (KeyError, TypeError): self.is_empty_config = True From d439c380d154ef90ed7687e44cd073bc28479768 Mon Sep 17 00:00:00 2001 From: josix Date: Fri, 8 Mar 2024 19:29:48 +0800 Subject: [PATCH 2/2] docs(BaseConfig): add elaboration on the mutated_settings property --- commitizen/config/base_config.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/commitizen/config/base_config.py b/commitizen/config/base_config.py index d3500cab8d..5a3f237ab0 100644 --- a/commitizen/config/base_config.py +++ b/commitizen/config/base_config.py @@ -18,6 +18,11 @@ def settings(self) -> Settings: @property def mutated_settings(self) -> Settings: + """It is used to record the changes from the config file defined by users, + which helps distinguish the ambiguous default behavior of + `changelog_incremental`. + Please refer to https://github.com/commitizen-tools/commitizen/pull/996 + """ return self._settings_from_configs @property pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy