# What changed in bump-my-version

> 29 changes in bump-my-version 1 from its official release notes, upgrade guides and advisories: 7 breaking, 1 security, 5 new APIs and options. Each one cited. Sources checked 2026-11-12. HTML: https://unstale.sh/pypi/bump-my-version/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## bump-my-version 1

### Breaking changes

- YY renders the year as the year minus 2000 and parses values it renders, including 0 for the year 2000. (1.8.0) — [release notes](https://github.com/callowayproject/bump-my-version/releases/tag/1.8.0)
- Glob file entries that match no files, or whose matches are all removed by glob_exclude, now raise FileNotFoundError unless missing files are configured to be ignored. (1.6.4) — [release notes](https://github.com/callowayproject/bump-my-version/releases/tag/1.6.4)
- Relative filename and glob paths are anchored to the config file's directory; absolute paths are recognised on every platform. (1.6.3) — [release notes](https://github.com/callowayproject/bump-my-version/releases/tag/1.6.3)
- Non-mapping files entries are ignored during path handling, and invalid non-mapping entries raise ConfigurationError. (1.6.3) — [release notes](https://github.com/callowayproject/bump-my-version/releases/tag/1.6.3)
- Shell hooks are disabled in configuration defaults and models. (1.4.0) — [release notes](https://github.com/callowayproject/bump-my-version/releases/tag/1.4.0)
- Shell syntax in hooks is disallowed by default; it must be explicitly enabled. (1.3.0) — [release notes](https://github.com/callowayproject/bump-my-version/releases/tag/1.3.0)
- Python 3.8 is no longer supported. (1.2.5) — [release notes](https://github.com/callowayproject/bump-my-version/releases/tag/1.2.5)

### Security

- Hook commands can use version placeholders for safe execution; placeholder values are quoted, and context is skipped when shell hooks are allowed. (1.7.0) — [release notes](https://github.com/callowayproject/bump-my-version/releases/tag/1.7.0)

### New APIs and options

- Glob patterns exempt matching files from the dirty check, so generated files like a changelog do not require --allow-dirty. (1.8.0) — [release notes](https://github.com/callowayproject/bump-my-version/releases/tag/1.8.0)
- A new placeholder is available for file paths, alongside resolving relative paths from the config file's directory. (1.6.3) — [release notes](https://github.com/callowayproject/bump-my-version/releases/tag/1.6.3)
- Adds --to to set a version part to a specific value. (1.6.0) — [release notes](https://github.com/callowayproject/bump-my-version/releases/tag/1.6.0)
- A new configuration option controls whether hooks may use shell metacharacters. (1.3.0) — [release notes](https://github.com/callowayproject/bump-my-version/releases/tag/1.3.0)
- Added parsing for breaking changes. (1.0.0) — [release notes](https://github.com/callowayproject/bump-my-version/releases/tag/1.0.0)

### Behavior and default changes

- The warning fires only when the version is behind the tag; versions ahead of the last tag and versions that cannot be compared now log at debug level. (1.8.0) — [release notes](https://github.com/callowayproject/bump-my-version/releases/tag/1.8.0)
- Configuration discovery searches parent directories up to the git or hg repository root. (1.6.3) — [release notes](https://github.com/callowayproject/bump-my-version/releases/tag/1.6.3)
- Supports pushing tag-only releases in one go. (1.5.1) — [release notes](https://github.com/callowayproject/bump-my-version/releases/tag/1.5.1)
- The `--regex` option is now nullable, affecting how CLI flags and configuration can take precedence. (1.3.0) — [release notes](https://github.com/callowayproject/bump-my-version/releases/tag/1.3.0)
- The default is_flag value in click_config is now False, fixing how options are interpreted. (1.2.6) — [release notes](https://github.com/callowayproject/bump-my-version/releases/tag/1.2.6)

### Fixes and other changes

- 0Y calver formatting and parsing now work for years 2000 and 2100+. (1.8.0) — [release notes](https://github.com/callowayproject/bump-my-version/releases/tag/1.8.0)
- A git rename is ignored only when both the old and new paths match the configured patterns. (1.8.0) — [release notes](https://github.com/callowayproject/bump-my-version/releases/tag/1.8.0)
- Pyproject discovery now parses pyproject.toml and falls back to the PEP 621 project.version field. (1.6.7) — [release notes](https://github.com/callowayproject/bump-my-version/releases/tag/1.6.7)
- File changes are prepared in memory and written only when every file can be changed; if a later write raises OSError, already-written files are restored. (1.6.6) — [release notes](https://github.com/callowayproject/bump-my-version/releases/tag/1.6.6)
- The GitHub Action no longer enables pip caching, which can fail when the caller's checkout has neither requirements.txt nor pyproject.toml. (1.6.5) — [release notes](https://github.com/callowayproject/bump-my-version/releases/tag/1.6.5)
- CLI files already configured are not re-added, and CLI and configured file paths are compared as resolved paths. (1.6.3) — [release notes](https://github.com/callowayproject/bump-my-version/releases/tag/1.6.3)
- The '!' negation handling is limited to glob_exclude, including when paths are rebased. (1.6.3) — [release notes](https://github.com/callowayproject/bump-my-version/releases/tag/1.6.3)
- Fixes the BVHOOK_NEW_TAG environment variable in hook environments. (1.6.2) — [release notes](https://github.com/callowayproject/bump-my-version/releases/tag/1.6.2)
- Hook script execution handles platform-specific argument parsing. (1.3.0) — [release notes](https://github.com/callowayproject/bump-my-version/releases/tag/1.3.0)
- Remote movable tags are deleted before pushing. (1.2.7) — [release notes](https://github.com/callowayproject/bump-my-version/releases/tag/1.2.7)
- Compatibility with click 8.3 was improved by handling Sentinel values. (1.2.5) — [release notes](https://github.com/callowayproject/bump-my-version/releases/tag/1.2.5)
