Add support for `ignore_missing_files` global option in configuration file
Closed this issue · 2 comments
- bump-my-version version:
0.18.1
- Python version:
3.12.2
- Operating System: macOS 14.3.1
Description
Following up on the new --ignore-missing-files
feature (see #38 and #138), I can confirm it works well. To make it even more flexible, it would be nice to have a corresponding ignore_missing_files
option available in the configuration file.
What I Did
Given this pyproject.toml
file in an empty directory:
[tool.bumpversion]
current_version = "3.3.0"
[[tool.bumpversion.files]]
filename = "./citation.cff"
search = "version: {current_version}"
replace = "version: {new_version}"
A call to a bump
action fails as expected because there is no ./citation.cff
file in sight:
$ bump-my-version bump minor
Traceback (most recent call last):
File "/Users/kde/.local/bin/bump-my-version", line 8, in <module>
sys.exit(cli())
^^^^^
File "/Users/kde/.local/pipx/venvs/bump-my-version/lib/python3.12/site-packages/click/core.py", line 1157, in __call__
return self.main(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/kde/.local/pipx/venvs/bump-my-version/lib/python3.12/site-packages/rich_click/rich_command.py", line 126, in main
rv = self.invoke(ctx)
^^^^^^^^^^^^^^^^
File "/Users/kde/.local/pipx/venvs/bump-my-version/lib/python3.12/site-packages/click/core.py", line 1688, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/kde/.local/pipx/venvs/bump-my-version/lib/python3.12/site-packages/click/core.py", line 1434, in invoke
return ctx.invoke(self.callback, **ctx.params)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/kde/.local/pipx/venvs/bump-my-version/lib/python3.12/site-packages/click/core.py", line 783, in invoke
return __callback(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/kde/.local/pipx/venvs/bump-my-version/lib/python3.12/site-packages/bumpversion/cli.py", line 325, in bump
do_bump(version_part, new_version, config, found_config_file, dry_run)
File "/Users/kde/.local/pipx/venvs/bump-my-version/lib/python3.12/site-packages/bumpversion/bump.py", line 97, in do_bump
modify_files(configured_files, version, next_version, ctx, dry_run)
File "/Users/kde/.local/pipx/venvs/bump-my-version/lib/python3.12/site-packages/bumpversion/files.py", line 264, in modify_files
f.make_file_change(current_version, new_version, context, dry_run)
File "/Users/kde/.local/pipx/venvs/bump-my-version/lib/python3.12/site-packages/bumpversion/files.py", line 185, in make_file_change
raise FileNotFoundError(f"File not found: '{self.file_change.filename}'") # pragma: no-coverage
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
FileNotFoundError: File not found: './citation.cff'
Using the new --ignore-missing-files
parameter help the missing file to be ignored, as intended:
$ bump-my-version --verbose --ignore-missing-files bump minor
Starting BumpVersion 0.18.1
Reading configuration
Reading config file: /Users/kde/bump_test/pyproject.toml
Parsing current version '3.3.0'
Attempting to increment part 'minor'
Values are now: major=3, minor=4, patch=0
New version will be '3.4.0'
File ./citation.cff: replace `version: {current_version}` with `version: {new_version}`
File not found, but ignoring
Processing config file: /Users/kde/bump_test/pyproject.toml
Found '3\.3\.0' at line 1: 3.3.0
Changing file /Users/kde/bump_test/pyproject.toml:tool.bumpversion.current_version:
*** before /Users/kde/bump_test/pyproject.toml:tool.bumpversion.current_version
--- after /Users/kde/bump_test/pyproject.toml:tool.bumpversion.current_version
***************
*** 1 ****
! 3.3.0
--- 1 ----
! 3.4.0
Done.
Now I would like to transfer the inline --ignore-missing-files
parameter to the config file. So I update the pyproject.toml
file to:
[tool.bumpversion]
current_version = "3.3.0"
ignore_missing_files = true
[[tool.bumpversion.files]]
filename = "./citation.cff"
search = "version: {current_version}"
replace = "version: {new_version}"
And I expected the CLI to be able to take my new ignore_missing_files = true
configuration into account, but it does not, leading to the same issue as if --ignore-missing-files
parameter wasn't passed to the CLI:
❯ bump-my-version --verbose bump minor
Starting BumpVersion 0.18.1
Reading configuration
Reading config file: /Users/kde/bump_test/pyproject.toml
Parsing current version '3.3.0'
Attempting to increment part 'minor'
Values are now: major=3, minor=4, patch=0
New version will be '3.4.0'
File ./citation.cff: replace `version: {current_version}` with `version: {new_version}`
Traceback (most recent call last):
File "/Users/kde/.local/bin/bump-my-version", line 8, in <module>
sys.exit(cli())
^^^^^
File "/Users/kde/.local/pipx/venvs/bump-my-version/lib/python3.12/site-packages/click/core.py", line 1157, in __call__
return self.main(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/kde/.local/pipx/venvs/bump-my-version/lib/python3.12/site-packages/rich_click/rich_command.py", line 126, in main
rv = self.invoke(ctx)
^^^^^^^^^^^^^^^^
File "/Users/kde/.local/pipx/venvs/bump-my-version/lib/python3.12/site-packages/click/core.py", line 1688, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/kde/.local/pipx/venvs/bump-my-version/lib/python3.12/site-packages/click/core.py", line 1434, in invoke
return ctx.invoke(self.callback, **ctx.params)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/kde/.local/pipx/venvs/bump-my-version/lib/python3.12/site-packages/click/core.py", line 783, in invoke
return __callback(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/kde/.local/pipx/venvs/bump-my-version/lib/python3.12/site-packages/bumpversion/cli.py", line 325, in bump
do_bump(version_part, new_version, config, found_config_file, dry_run)
File "/Users/kde/.local/pipx/venvs/bump-my-version/lib/python3.12/site-packages/bumpversion/bump.py", line 97, in do_bump
modify_files(configured_files, version, next_version, ctx, dry_run)
File "/Users/kde/.local/pipx/venvs/bump-my-version/lib/python3.12/site-packages/bumpversion/files.py", line 264, in modify_files
f.make_file_change(current_version, new_version, context, dry_run)
File "/Users/kde/.local/pipx/venvs/bump-my-version/lib/python3.12/site-packages/bumpversion/files.py", line 185, in make_file_change
raise FileNotFoundError(f"File not found: '{self.file_change.filename}'") # pragma: no-coverage
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
FileNotFoundError: File not found: './citation.cff'
I think 0.18.2 fixed this. There was an error in how the flags were interpreted in the CLI.
Can you check?