Skip to content

fix(CommitizenProvider): raise if version is None #1552

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

Merged
merged 1 commit into from
Jun 14, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 1 addition & 6 deletions commitizen/commands/bump.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@
NoPatternMapError,
NotAGitProjectError,
NotAllowed,
NoVersionSpecifiedError,
)
from commitizen.providers import get_provider
from commitizen.tags import TagRules
Expand Down Expand Up @@ -163,11 +162,7 @@ def _find_increment(self, commits: list[git.GitCommit]) -> Increment | None:
def __call__(self) -> None:
"""Steps executed to bump."""
provider = get_provider(self.config)

try:
current_version = self.scheme(provider.get_version())
except TypeError:
raise NoVersionSpecifiedError()
current_version = self.scheme(provider.get_version())

increment = self.arguments["increment"]
prerelease = self.arguments["prerelease"]
Expand Down
32 changes: 17 additions & 15 deletions commitizen/commands/version.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
from commitizen import out
from commitizen.__version__ import __version__
from commitizen.config import BaseConfig
from commitizen.exceptions import NoVersionSpecifiedError
from commitizen.providers import get_provider


Expand All @@ -28,19 +29,20 @@ def __call__(self) -> None:
out.write(f"Commitizen Version: {__version__}")
out.write(f"Python Version: {self.python_version}")
out.write(f"Operating System: {self.operating_system}")
elif self.parameter.get("project"):
version = get_provider(self.config).get_version()
if version:
out.write(f"{version}")
else:
out.error("No project information in this project.")
elif self.parameter.get("verbose"):
out.write(f"Installed Commitizen Version: {__version__}")
version = get_provider(self.config).get_version()
if version:
out.write(f"Project Version: {version}")
else:
return

if (verbose := self.parameter.get("verbose")) or self.parameter.get("project"):
if verbose:
out.write(f"Installed Commitizen Version: {__version__}")

try:
version = get_provider(self.config).get_version()
except NoVersionSpecifiedError:
out.error("No project information in this project.")
else:
# if no argument is given, show installed commitizen version
out.write(f"{__version__}")
return

out.write(f"Project Version: {version}" if verbose else version)
return

# if no argument is given, show installed commitizen version
out.write(f"{__version__}")
5 changes: 4 additions & 1 deletion commitizen/providers/commitizen_provider.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
from __future__ import annotations

from commitizen.exceptions import NoVersionSpecifiedError
from commitizen.providers.base_provider import VersionProvider


Expand All @@ -9,7 +10,9 @@ class CommitizenProvider(VersionProvider):
"""

def get_version(self) -> str:
return self.config.settings["version"] # type: ignore[return-value] # TODO: check if we can fix this by tweaking the `Settings` type
if ret := self.config.settings["version"]:
return ret
raise NoVersionSpecifiedError()

def set_version(self, version: str) -> None:
self.config.set_key("version", version)