Repository navigation
Make uv.lock optional bump #1383
Description
Activity
- addedissue-status: wait-for-implementationmaintainers agree on the bug / featuremaintainers agree on the bug / feature
on Apr 6, 2025 Hi @Lee-W, I used uv to create a virtual environment while working on another issue. I think I can give this one a try as well.
That would be awesome 🙂
Hi @Lee-W,
I tried to reproduce the issue but everything works fine.
I was able to run cz bump successfully, as shown in the screenshot below.I tested it with both Python 3.10 and 3.12, and the Commitizen version in both cases was 4.5.0.
The only difference I noticed is that my system is Ubuntu 22.04.5.Could youprovide more details about your environment and the issue you're encountering?
Hi @Lee-W, I tried to reproduce the issue but everything works fine. I was able to run cz bump successfully, as shown in the screenshot below.
I tested it with both Python 3.10 and 3.12, and the Commitizen version in both cases was 4.5.0. The only difference I noticed is that my system is Ubuntu 22.04.5.
Could youprovide more details about your environment and the issue you're encountering?
Ah, right, missing one crucial piece 🤦♂️ Just updated the commands above. so the idea is we still need to choose uv provider
Thanks, I will try to reproduce the situation.
Steps to reproduce:
➜ workspace mkdir tmp ➜ workspace cd tmp ➜ tmp git init uv init cz init sed -i -e 's/pep621/uv/g' pyproject.toml pyproject.toml git add . cz commit cz bump Initialized empty Git repository in /Users/bearomorphism/workspace/tmp/.git/ Initialized project `tmp` Welcome to commitizen! Answer the questions to configure your project. For further configuration visit: https://commitizen-tools.github.io/commitizen/config/ ? Please choose a supported config file: .cz.toml ? Please choose a cz (commit rule): (default: cz_conventional_commits) cz_conventional_commits ? Choose the source of the version: uv: Get and Get and set version from pyproject.toml and uv.lock No Existing Tag. Set tag to v0.0.1 ? Choose version scheme: pep440 ? Please enter the correct version format: (default: "$version") ? Create changelog automatically on bump Yes ? Keep major version zero (0.x) during breaking changes Yes ? What types of pre-commit hook you want to install? (Leave blank if you don't want to install) done You can bump the version running: cz bump Configuration complete 🚀 ? Select the type of change you are committing fix: A bug fix. Correlates with PATCH in SemVer ? What is the scope of this change? (class or file name): (press [enter] to skip) a ? Write a short and imperative summary of the code changes: (lower case and no period) a ? Provide additional contextual information about the code changes: (press [enter] to skip) a ? Is this a BREAKING CHANGE? Correlates with MAJOR in SemVer No ? Footer. Information about Breaking Changes and reference issues that this commit closes: (press [enter] to skip) fix(a): a a [main (root-commit) 6329733] fix(a): a 6 files changed, 28 insertions(+) create mode 100644 .cz.toml create mode 100644 .python-version create mode 100644 README.md create mode 100644 main.py create mode 100644 pyproject.toml create mode 100644 pyproject.toml-e Commit successful! No tag matching configuration could not be found. Possible causes: - version in configuration is not the current version - tag_format or legacy_tag_formats is missing, check them using 'git tag --list' ? Is this the first tag created? Yes bump: version 0.1.0 → 0.1.1 tag to create: 0.1.1 increment detected: PATCH Traceback (most recent call last): File "/Users/bearomorphism/.local/bin/cz", line 10, in <module> sys.exit(main()) ~~~~^^ File "/Users/bearomorphism/.local/share/uv/tools/commitizen/lib/python3.13/site-packages/commitizen/cli.py", line 660, in main args.func(conf, arguments)() ~~~~~~~~~~~~~~~~~~~~~~~~~~^^ File "/Users/bearomorphism/.local/share/uv/tools/commitizen/lib/python3.13/site-packages/commitizen/commands/bump.py", line 355, in __call__ provider.set_version(str(new_version)) ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^ File "/Users/bearomorphism/.local/share/uv/tools/commitizen/lib/python3.13/site-packages/commitizen/providers/uv_provider.py", line 28, in set_version self.set_lock_version(version) ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^ File "/Users/bearomorphism/.local/share/uv/tools/commitizen/lib/python3.13/site-packages/commitizen/providers/uv_provider.py", line 34, in set_lock_version document = tomlkit.parse(self.lock_file.read_text()) ~~~~~~~~~~~~~~~~~~~~~~~~^^ File "/Users/bearomorphism/.local/share/uv/python/cpython-3.13.3-macos-aarch64-none/lib/python3.13/pathlib/_local.py", line 546, in read_text return PathBase.read_text(self, encoding, errors, newline) ~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Users/bearomorphism/.local/share/uv/python/cpython-3.13.3-macos-aarch64-none/lib/python3.13/pathlib/_abc.py", line 632, in read_text with self.open(mode='r', encoding=encoding, errors=errors, newline=newline) as f: ~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Users/bearomorphism/.local/share/uv/python/cpython-3.13.3-macos-aarch64-none/lib/python3.13/pathlib/_local.py", line 537, in open return io.open(self, mode, buffering, encoding, errors, newline) ~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ FileNotFoundError: [Errno 2] No such file or directory: 'uv.lock'hmmm... I thought we have it long ago. yep, we'll definitely need it @Yusin0903 would like to know whether you're still working on it. Thanks!
@Lee-W @bearomorphism
Sorry, I’ve been a bit busy lately. If this issue is urgent, feel free to take it over. I’ll focus on other issues later.Note, that I think this is also an issue if you are using uv workspaces, because the uv.lock only applies to the root project.
Traceback (most recent call last): File "<frozen runpy>", line 198, in _run_module_as_main File "<frozen runpy>", line 88, in _run_code File "W:\git\infr-dpe-do\.venv\Scripts\cz.exe\__main__.py", line 10, in <module> File "workspace\.venv\Lib\site-packages\commitizen\cli.py", line 660, in main args.func(conf, arguments)() File "workspace\.venv\Lib\site-packages\commitizen\commands\bump.py", line 355, in __call__ provider.set_version(str(new_version)) File "workspace\.venv\Lib\site-packages\commitizen\providers\uv_provider.py", line 28, in set_version self.set_lock_version(version) File "workspace\.venv\Lib\site-packages\commitizen\providers\uv_provider.py", line 34, in set_lock_version document = tomlkit.parse(self.lock_file.read_text()) ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "pythonpath\python\3.11.10\Lib\pathlib.py", line 1058, in read_text with self.open(mode='r', encoding=encoding, errors=errors) as f: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "pythonpath\python\3.11.10\Lib\pathlib.py", line 1044, in open return io.open(self, mode, buffering, encoding, errors, newline) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ FileNotFoundError: [Errno 2] No such file or directory: 'uv.lock' chore(dpesteps): release 0.0.0 -> 0.1.0.dev0+sharpep [skip ci] tag to create: release/convention-sets/armstrong/0.1.0.dev0+sharpep increment detected: MINORIt does not appear to cause too much of an issue for me, except for the trace output.
I presume I can work around this by using
version_provider = "pep621"rather than uv.I am using uv 0.7.9; cz 4.8.0
- added and removedissue-status: wait-for-implementationmaintainers agree on the bug / featuremaintainers agree on the bug / feature
on May 9, 2026

Description
uv.lockmight not exists when the project is just initializedSteps to reproduce
Current behavior
Desired behavior
It should skip if
uv.lockis not there yet.Screenshots
No response
Environment
Commitizen Version: 4.5.0
Python Version: 3.12.7 (main, Oct 16 2024, 07:12:08) [Clang 18.1.8 ]
Operating System: Darwin