You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Note: The pre-commit manager in Renovate is not supported by the pre-commit maintainers or community. Please do not report any problems there, instead create a Discussion in the Renovate repository if you have any questions.
Refactor: clean up line formatting and improve spelling. 07ada6f
Fix a failing bump leaving some files already changed. a8a9403
All the file changes are made in memory first and written only when every file could be changed;
several changes to one file still chain. Part of #381.
Test the restore-failure, no-new-version and on-disk search paths. ea9a033
Covers the lines Codecov reported as missing in files.py for #454.
Restore files when a write fails in modify_files. 1b69816
Follow-ups to #432 (part of #381): drop the stale coverage pragma on
make_file_change and document it, replace the tuple dict in modify_files
with two dicts, restore already-written files when a later write raises
OSError, and add tests for ignored files, write failure, make_file_change
writes and do_bump leaving config untouched.
Fix: don't enable pip caching in the GitHub Action. 3245d15
setup-python's pip cache looks for requirements.txt or pyproject.toml in
the caller's checkout and fails when neither exists. The action installs
bump-my-version from PyPI and doesn't need the cache.
Fix: raise FileNotFoundError when a glob matches no files. a83d288
A glob file entry that matched nothing (or whose matches were all
removed by glob_exclude) was silently skipped, while a missing filename raised FileNotFoundError. Glob entries now follow the same rule: raise unless ignore_missing_file (or the global
Other
Test: share no-match glob parametrization and trim helper. 3b935ac
Fix: compare CLI and configured file paths as resolved paths. f36ef5d
Also handle '!' glob_exclude negation when rebasing paths, ignore non-mapping
files entries, simplify config-dir walk, and document discovery and path rules.
Other
Test: add docstrings to discovery and resolution tests. 5001ca1
Test: use posix paths for resolved filenames and skip '|' path test on Windows. b1a2d20
Test: compare resolved filename as Path for Windows separators. ad7b894
Test: expect single entry for symlinked cwd. 2635f8e
Feat: resolve config through repo parents and anchor file paths to config dir. 276dfc4
Search parent directories up to the git/hg repo root for a config file (#8).
Resolve relative filename/glob from the config file's directory and add a
{repo_root} placeholder (#9).
Chore(deps): update uv.lock for Python 3.10+ compatibility and dependency upgrades. 37225f8
Ci: drop Python 3.9 and add Python 3.15 to test matrix. 8d46056
Ci: add Codacy exclusions and ignore local .codacy directory. 1217a32
Ci: make release work for fork PRs and skip fork-incompatible previews. 364b98c
Trigger the release workflow on push to master so merged fork PRs get a
version bump with full permissions. Skip the version-hint and docs-preview
workflows for fork PRs, which only get a read-only token and no secrets.
Bump actions/upload-artifact to v7 and actions/setup-python to v7. ba36db7
Bump python from 3.14-slim-bookworm to 3.15-slim-bookworm. cfed8a8
Bumps python from 3.14-slim-bookworm to 3.15-slim-bookworm.
Fix the --increment examples in the show subcommand docs. bee5795
--increment is an option of show, so it has to come after it: 'bump-my-version --increment patch show' fails with "No such option '--increment'." The examples also name new_version, so that show prints the version each one shows.
Other
Keep the repository root when HEAD is detached. 6f40aee
Since ac7b3ba, the branch is read with git symbolic-ref, which fails on a
detached HEAD (the usual CI checkout). revision_info() then returned early
without the repository root, so the changed files were never staged and
the commit failed. Keep the root and use an empty branch name, as
git branch --show-current did.
Fix git branch detection for older git versions and unborn HEAD. ac7b3ba
git branch --show-current requires git 2.22+; on older versions it
raises an exception that is silently swallowed, causing revision_info()
to return None and skip staging files before commit. Replace it with git symbolic-ref --short HEAD, which works on git 1.x+ and also
resolves correctly on an unborn HEAD (a repo with no commits yet).
Binary wheels are now provided for iOS and Android. This allows the use of
the optimized C tracer on mobile platforms.
Fix: three or more levels of nested with statements could make a with
line look like a branch with an exit that can never happen. Using the
sys.monitoring core, these phantom branches were reported as partial. Other
cores hid the problem but still counted the phantom branches in the total.
Closes issue 1987_.
Fix: a comment or string that merely mentioned if True: or while True: could mark its line as a branch that is known to be partial,
so a branch that never ran was reported as taken. These built-in patterns
now only match at the start of the statement. Closes issue 2314_.
Fix: region detection missed functions defined in unusual places, such as else and except clauses. This is now fixed.
Fix: recent versions of the lcov tool complain if the same function name
appears more than once in a report. Python can have multiple same-named
functions in a few ways, for example, getters/setters or conditionally
defined functions. These are now disambiguated by adding a @<line number>
suffix to the function name. Fixes issue 2335.
Fix: The "Can't combine statement coverage data with branch data" error now
names the two data files it couldn't combine. The :ref:error description <error_cant_combine> in the docs now lists common causes and how to find the
process that wrote the file.
Fix: at coverage totals close to 0 or 100, the XML report could get incorrect line-rate values like 8.333e-05 or 1. This is now fixed, closing issue 2293_ and issue 2294_.
Fix: a parallel data file saved more than once kept the hash of its first
save in its file name. Combining could then skip it as a duplicate of another
file that had the same data at that point, and delete it, losing the data
recorded after the first save. Each save now updates the hash. This had been
a problem since 7.13.1. Fixes issue 2338_.
Fixes for obscure but legal file names:
File names (and plugin names) can contain control characters, which are
legal in POSIX paths but unsafe in reports: in XML 1.0 they make the
document non-well-formed, and in a terminal they act as escape sequences
(colors, title/clipboard sequences, cursor moves that forge output). Now
the XML report, the text and Markdown summary reports, and coverage debug data replace non-printable characters in names. Printable names are
unchanged.
A file pattern (from include, omit, or a [paths] alias)
containing a newline sent the glob-to-regex translation into an infinite
loop, hanging the process. Newlines in patterns are now handled like any
other character.
Fixes in the implementation of the C tracer:
If a plugin's dynamic_source_filename method raised an exception, lines
in that function could be recorded as belonging to a different file. Also
fixed some minor memory leaks in the C tracer.
The refcount of None was mismanaged during function calls, including
comprehensions. This was unlikely to cause an actual problem, but is now
fixed. Thanks, Andrew Dalke.
The C tracer held borrowed references to dictionary values, which was
unsafe on free-threaded Python. Now it takes its own references.
An internal error while recording a new file could be reported as a
confusing SystemError instead of the actual exception.
Performance: the text summary report (coverage report) held on to every
file's parsed source until it finished, so its memory use grew with the size
of the project: ten times or more what 7.14 used on large projects. Now it
keeps only what it needs to print. Fixes issue 2277_.
Performance: HTML reports should be about 5% faster to produce.
Kept the political banner in the README. Closes issue 2344_.
Fix: on Python 3.14 and later, a for loop completing immediately before a
function return could mistakenly report an uncovered branch. This is now
fixed, closing issue 2168_.
Fix: on Python 3.14 and later, the else clause of a try whose body is
a with statement could incorrectly be reported as covered when the with raised. This is now fixed, closing issue 2289_.
Fix: with dynamic_context = test_function, test methods written as @staticmethod or @classmethod were not given a context of their own.
Now they are, on Python 3.11 and later. Closes issue 1923_.
Fix: when the body of an irrefutable case (like case _:) is entirely
excluded, the case line is now excluded too, just as an excluded else: body removes the else: line. Previously the case line was
left behind and reported as missing. Closes issue 1563_ with pull 2269_.
Fix: using :meth:.CoverageData.update twice on an in-memory database would
fail, as described in issue 2279_. This is now fixed.
Fix: the Total row in the footer of the HTML report's index page was
recomputed in JavaScript with rounding that could disagree with the total
the server rendered in the heading, including showing 100% when coverage
was not complete. The footer now clamps values the way the rest of the
report does, and when nothing is filtered out it is shown exactly as the
server rendered it, so the two can't disagree. That also keeps rows the
report omits (--skip-covered drops fully covered files) in the total.
Fixes issue 2256_.
When combining files, now path separator slashes will automatically be
converted to the local file system style. This makes it less necessary to
define [paths] configuration to combine data across operating systems.
Fixes issue 2266_.
The :meth:.Coverage.switch_context method now returns the previous context.
Fix: previously, a [paths] pattern would be replaced everywhere in a file
path when it was only meant to be replaced once, in the leading portion of
the path. This is now fixed, in pull 2268_.
Fixes to validation of options and configuration settings:
Negative precision settings now always cause useful error messages (pull 2261_).
An invalid regex in the --contexts option (or the [report] contexts setting) reported a confusing "Couldn't use data file ...:
user-defined function raised exception" error. Now it raises a proper
configuration error naming the bad regex, like other regex settings do
(pull 2262_).
Non-string values in TOML configuration settings now produce a helpful
error message instead of a traceback. This affects list settings whose
elements aren't strings (like omit, exclude_lines, or a [paths]
entry), file settings like data_file, and any wrong-typed value in the [paths] section (pull 2263_).
coverage run refuses run-affecting command-line options like --branch alongside --concurrency=multiprocessing, since they can't
reach the subprocesses. The check only recognized multiprocessing as
the entire option value, so --concurrency=multiprocessing,thread
slipped through and failed later with "Can't combine statement coverage
data with branch data". Each named concurrency library is now properly
considered (pull 2270_).
Fix: coverage annotate -d DIR raised an AssertionError if any
measured file had an extension other than .py, such as a .pyw file on
Windows. The original extension is now restored on the annotated copy (`pu
Artifact update for types-pyyaml resolved to version 6.0.12.20261030, which is a pending version that has not yet passed the Minimum Release Age threshold.
Renovate was attempting to update to 6.0.12.20260906
This is (likely) not a bug in Renovate, but due to the way your project pins dependencies, _and_ how Renovate calls your package manager to update them.
Until Renovate supports specifying an exact update to your package manager (https://github.com/renovatebot/renovate/issues/41624), it is recommended to directly pin your dependencies (with `rangeStrategy=pin` for apps, or `rangeStrategy=widen` for libraries)
See also: https://docs.renovatebot.com/dependency-pinning/
File name: pyproject.toml
Artifact update for mypy resolved to version 2.4.1, which is a pending version that has not yet passed the Minimum Release Age threshold.
Renovate was attempting to update to 2.4.0
This is (likely) not a bug in Renovate, but due to the way your project pins dependencies, _and_ how Renovate calls your package manager to update them.
Until Renovate supports specifying an exact update to your package manager (https://github.com/renovatebot/renovate/issues/41624), it is recommended to directly pin your dependencies (with `rangeStrategy=pin` for apps, or `rangeStrategy=widen` for libraries)
See also: https://docs.renovatebot.com/dependency-pinning/
File name: pyproject.toml
Artifact update for pandas-stubs resolved to version 3.1.0.261029, which is a pending version that has not yet passed the Minimum Release Age threshold.
Renovate was attempting to update to 3.0.5.260914
This is (likely) not a bug in Renovate, but due to the way your project pins dependencies, _and_ how Renovate calls your package manager to update them.
Until Renovate supports specifying an exact update to your package manager (https://github.com/renovatebot/renovate/issues/41624), it is recommended to directly pin your dependencies (with `rangeStrategy=pin` for apps, or `rangeStrategy=widen` for libraries)
See also: https://docs.renovatebot.com/dependency-pinning/
File name: pyproject.toml
Artifact update for types-pyyaml resolved to version 6.0.12.20261030, which is a pending version that has not yet passed the Minimum Release Age threshold.
Renovate was attempting to update to 6.0.12.20260906
This is (likely) not a bug in Renovate, but due to the way your project pins dependencies, _and_ how Renovate calls your package manager to update them.
Until Renovate supports specifying an exact update to your package manager (https://github.com/renovatebot/renovate/issues/41624), it is recommended to directly pin your dependencies (with `rangeStrategy=pin` for apps, or `rangeStrategy=widen` for libraries)
See also: https://docs.renovatebot.com/dependency-pinning/
File name: pyproject.toml
Artifact update for boto3-stubs resolved to version 1.43.123, which is a pending version that has not yet passed the Minimum Release Age threshold.
Renovate was attempting to update to 1.43.120
This is (likely) not a bug in Renovate, but due to the way your project pins dependencies, _and_ how Renovate calls your package manager to update them.
Until Renovate supports specifying an exact update to your package manager (https://github.com/renovatebot/renovate/issues/41624), it is recommended to directly pin your dependencies (with `rangeStrategy=pin` for apps, or `rangeStrategy=widen` for libraries)
See also: https://docs.renovatebot.com/dependency-pinning/
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
dependenciesPull requests that update a dependency file
0 participants
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Note
This PR body was truncated due to platform limits.
This PR contains the following updates:
v0.15.12→v0.17.30.11.8→0.13.61.43.30→1.43.1201.43.123(+2)1.3.0→1.6.77.13.5→7.17.02.3.1→2.4.02.4.13.0.0.260204→3.0.5.2609143.1.0.26102926.2.1→26.2.24.6.0→4.7.09.0.3→9.2.09.0.3→9.2.03.15.1→3.17.03.15.1→3.17.02.10.0→2.11.00.15.12→0.17.37.2.2.20260518→7.2.2.202609066.0.12.20260408→6.0.12.202609066.0.12.202610304.67.3.20260408→4.70.0.20260906Note: The
pre-commitmanager in Renovate is not supported by thepre-commitmaintainers or community. Please do not report any problems there, instead create a Discussion in the Renovate repository if you have any questions.Release Notes
astral-sh/ruff-pre-commit
v0.17.3Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.17.3
v0.17.2Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.17.2
v0.17.1Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.17.1
v0.17.0Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.17.0
v0.16.10Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.16.10
v0.16.9Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.16.9
v0.16.8Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.16.8
v0.16.7Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.16.7
v0.16.6Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.16.6
v0.16.5Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.16.5
v0.16.4Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.16.4
v0.16.3Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.16.3
v0.16.2Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.16.2
v0.16.1Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.16.1
v0.16.0Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.16.0
v0.15.22Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.15.22
v0.15.21Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.15.21
v0.15.20Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.15.20
v0.15.19Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.15.19
v0.15.18Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.15.18
v0.15.17Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.15.17
v0.15.16Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.15.16
v0.15.15Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.15.15
v0.15.14Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.15.14
v0.15.13Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.15.13
astral-sh/uv-pre-commit
v0.13.6Compare Source
See: https://github.com/astral-sh/uv/releases/tag/0.13.6
v0.13.5Compare Source
See: https://github.com/astral-sh/uv/releases/tag/0.13.5
v0.13.4Compare Source
See: https://github.com/astral-sh/uv/releases/tag/0.13.4
v0.13.3Compare Source
See: https://github.com/astral-sh/uv/releases/tag/0.13.3
v0.13.2Compare Source
See: https://github.com/astral-sh/uv/releases/tag/0.13.2
v0.13.1Compare Source
See: https://github.com/astral-sh/uv/releases/tag/0.13.1
v0.13.0Compare Source
See: https://github.com/astral-sh/uv/releases/tag/0.13.0
v0.12.24Compare Source
See: https://github.com/astral-sh/uv/releases/tag/0.12.24
v0.12.23Compare Source
See: https://github.com/astral-sh/uv/releases/tag/0.12.23
v0.12.22Compare Source
See: https://github.com/astral-sh/uv/releases/tag/0.12.22
v0.12.21Compare Source
See: https://github.com/astral-sh/uv/releases/tag/0.12.21
v0.12.20Compare Source
See: https://github.com/astral-sh/uv/releases/tag/0.12.20
v0.12.19Compare Source
See: https://github.com/astral-sh/uv/releases/tag/0.12.19
v0.12.18Compare Source
See: https://github.com/astral-sh/uv/releases/tag/0.12.18
v0.12.17Compare Source
See: https://github.com/astral-sh/uv/releases/tag/0.12.17
v0.12.16Compare Source
See: https://github.com/astral-sh/uv/releases/tag/0.12.16
v0.12.15Compare Source
See: https://github.com/astral-sh/uv/releases/tag/0.12.15
v0.12.14Compare Source
See: https://github.com/astral-sh/uv/releases/tag/0.12.14
v0.12.13Compare Source
See: https://github.com/astral-sh/uv/releases/tag/0.12.13
v0.12.12Compare Source
See: https://github.com/astral-sh/uv/releases/tag/0.12.12
v0.12.11Compare Source
See: https://github.com/astral-sh/uv/releases/tag/0.12.11
v0.12.10Compare Source
See: https://github.com/astral-sh/uv/releases/tag/0.12.10
v0.12.9Compare Source
See: https://github.com/astral-sh/uv/releases/tag/0.12.9
v0.12.8Compare Source
See: https://github.com/astral-sh/uv/releases/tag/0.12.8
v0.12.7Compare Source
See: https://github.com/astral-sh/uv/releases/tag/0.12.7
v0.12.6Compare Source
See: https://github.com/astral-sh/uv/releases/tag/0.12.6
v0.12.5Compare Source
See: https://github.com/astral-sh/uv/releases/tag/0.12.5
v0.12.4Compare Source
See: https://github.com/astral-sh/uv/releases/tag/0.12.4
v0.12.3Compare Source
See: https://github.com/astral-sh/uv/releases/tag/0.12.3
v0.12.2Compare Source
See: https://github.com/astral-sh/uv/releases/tag/0.12.2
v0.12.1Compare Source
See: https://github.com/astral-sh/uv/releases/tag/0.12.1
v0.12.0Compare Source
See: https://github.com/astral-sh/uv/releases/tag/0.12.0
v0.11.33Compare Source
See: https://github.com/astral-sh/uv/releases/tag/0.11.33
v0.11.32Compare Source
See: https://github.com/astral-sh/uv/releases/tag/0.11.32
v0.11.31Compare Source
See: https://github.com/astral-sh/uv/releases/tag/0.11.31
v0.11.30Compare Source
See: https://github.com/astral-sh/uv/releases/tag/0.11.30
v0.11.29Compare Source
See: https://github.com/astral-sh/uv/releases/tag/0.11.29
v0.11.28Compare Source
See: https://github.com/astral-sh/uv/releases/tag/0.11.28
v0.11.27Compare Source
See: https://github.com/astral-sh/uv/releases/tag/0.11.27
v0.11.26Compare Source
See: https://github.com/astral-sh/uv/releases/tag/0.11.26
v0.11.25Compare Source
See: https://github.com/astral-sh/uv/releases/tag/0.11.25
v0.11.24Compare Source
See: https://github.com/astral-sh/uv/releases/tag/0.11.24
v0.11.23Compare Source
See: https://github.com/astral-sh/uv/releases/tag/0.11.23
v0.11.22Compare Source
See: https://github.com/astral-sh/uv/releases/tag/0.11.22
v0.11.21Compare Source
See: https://github.com/astral-sh/uv/releases/tag/0.11.21
v0.11.20Compare Source
See: https://github.com/astral-sh/uv/releases/tag/0.11.20
v0.11.19Compare Source
See: https://github.com/astral-sh/uv/releases/tag/0.11.19
v0.11.18Compare Source
See: https://github.com/astral-sh/uv/releases/tag/0.11.18
v0.11.17Compare Source
See: https://github.com/astral-sh/uv/releases/tag/0.11.17
v0.11.16Compare Source
See: https://github.com/astral-sh/uv/releases/tag/0.11.16
v0.11.15Compare Source
See: https://github.com/astral-sh/uv/releases/tag/0.11.15
v0.11.14Compare Source
See: https://github.com/astral-sh/uv/releases/tag/0.11.14
v0.11.13Compare Source
See: https://github.com/astral-sh/uv/releases/tag/0.11.13
v0.11.12Compare Source
See: https://github.com/astral-sh/uv/releases/tag/0.11.12
v0.11.11Compare Source
See: https://github.com/astral-sh/uv/releases/tag/0.11.11
v0.11.10Compare Source
See: https://github.com/astral-sh/uv/releases/tag/0.11.10
v0.11.9Compare Source
See: https://github.com/astral-sh/uv/releases/tag/0.11.9
callowayproject/bump-my-version (bump-my-version)
v1.6.7Compare Source
Compare the full difference.
New
Other
Document pyproject.toml discovery by parsing and PEP 621 fallback (#363). 1db7c46
Discover pyproject.toml by parsing; fall back to PEP 621 project.version (#363). 168a7d9
v1.6.6Compare Source
Compare the full difference.
New
Other
Document pyproject.toml discovery by parsing and PEP 621 fallback (#363). 1db7c46
Discover pyproject.toml by parsing; fall back to PEP 621 project.version (#363). 168a7d9
v1.6.5Compare Source
Compare the full difference.
Fixes
Refactor: clean up line formatting and improve spelling. 07ada6f
Fix a failing bump leaving some files already changed. a8a9403
All the file changes are made in memory first and written only when every file could be changed;
several changes to one file still chain. Part of #381.
co-authored-by: Claude Opus 5.5 noreply@anthropic.com
Other
Test the restore-failure, no-new-version and on-disk search paths. ea9a033
Covers the lines Codecov reported as missing in files.py for #454.
Restore files when a write fails in modify_files. 1b69816
Follow-ups to #432 (part of #381): drop the stale coverage pragma on
make_file_change and document it, replace the tuple dict in modify_files
with two dicts, restore already-written files when a later write raises
OSError, and add tests for ignored files, write failure, make_file_change
writes and do_bump leaving config untouched.
v1.6.4Compare Source
Compare the full difference.
Fixes
Fix: don't enable pip caching in the GitHub Action. 3245d15
setup-python's pip cache looks for requirements.txt or pyproject.toml in
the caller's checkout and fails when neither exists. The action installs
bump-my-version from PyPI and doesn't need the cache.
Fixes #320
Other
docs: add Python testing guidelines and examples. 5ad4106
docs/agents/python/for future Python-related references.v1.6.3Compare Source
Compare the full difference.
Fixes
Fix: raise FileNotFoundError when a glob matches no files. a83d288
A
globfile entry that matched nothing (or whose matches were allremoved by
glob_exclude) was silently skipped, while a missingfilenameraised FileNotFoundError. Glob entries now follow the samerule: raise unless
ignore_missing_file(or the globalOther
Test: share no-match glob parametrization and trim helper. 3b935ac
[pre-commit.ci] pre-commit autoupdate. ef27fcd
updates: - github.com/astral-sh/ruff-pre-commit: v0.17.0 → v0.17.1
v1.6.2Compare Source
Compare the full difference.
Fixes
Fix: close review gaps in config discovery and file resolution. aff2341
Fix: don't re-add CLI files already configured; limit '!' handling to glob_exclude. ce16247
Fix: compare CLI and configured file paths as resolved paths. f36ef5d
Also handle '!' glob_exclude negation when rebasing paths, ignore non-mapping
files entries, simplify config-dir walk, and document discovery and path rules.
Other
Test: add docstrings to discovery and resolution tests. 5001ca1
Test: use posix paths for resolved filenames and skip '|' path test on Windows. b1a2d20
Test: compare resolved filename as Path for Windows separators. ad7b894
Test: expect single entry for symlinked cwd. 2635f8e
Feat: resolve config through repo parents and anchor file paths to config dir. 276dfc4
Search parent directories up to the git/hg repo root for a config file (#8).
Resolve relative filename/glob from the config file's directory and add a
{repo_root} placeholder (#9).
Closes #8, closes #9
v1.6.1Compare Source
Compare the full difference.
Fixes
Other
Ci: exclude uv.lock from Codacy analysis. b2732f4
Chore(deps): update
uv.lockfor Python 3.10+ compatibility and dependency upgrades. 37225f8Ci: drop Python 3.9 and add Python 3.15 to test matrix. 8d46056
Ci: add Codacy exclusions and ignore local .codacy directory. 1217a32
Ci: make release work for fork PRs and skip fork-incompatible previews. 364b98c
Trigger the release workflow on push to master so merged fork PRs get a
version bump with full permissions. Skip the version-hint and docs-preview
workflows for fork PRs, which only get a read-only token and no secrets.
Bump
actions/upload-artifactto v7 andactions/setup-pythonto v7. ba36db7Bump python from 3.14-slim-bookworm to 3.15-slim-bookworm. cfed8a8
Bumps python from 3.14-slim-bookworm to 3.15-slim-bookworm.
updated-dependencies: - dependency-name: python
dependency-version: 3.15-slim-bookworm
dependency-type: direct:production
signed-off-by: dependabot[bot] support@github.com
[pre-commit.ci] pre-commit autoupdate. 0640b3e
updates: - github.com/astral-sh/ruff-pre-commit: v0.16.10 → v0.17.0
Bump
build-and-inspect-python-packageaction to version 3.0.1. 8b42383v1.6.0Compare Source
Compare the full difference.
Fixes
Fix the --increment examples in the show subcommand docs. bee5795
--increment is an option of show, so it has to come after it: 'bump-my-version --increment patch show' fails with "No such option '--increment'." The examples also name new_version, so that show prints the version each one shows.
Other
Keep the repository root when HEAD is detached. 6f40aee
Since
ac7b3ba, the branch is read with git symbolic-ref, which fails on adetached HEAD (the usual CI checkout). revision_info() then returned early
without the repository root, so the changed files were never staged and
the commit failed. Keep the root and use an empty branch name, as
git branch --show-current did.
Fixes #438
[pre-commit.ci] pre-commit autoupdate. ed13388
updates: - github.com/astral-sh/ruff-pre-commit: v0.16.9 → v0.16.10
v1.5.1Compare Source
Compare the full difference.
Fixes
Fix git branch detection for older git versions and unborn HEAD. ac7b3ba
git branch --show-currentrequires git 2.22+; on older versions itraises an exception that is silently swallowed, causing revision_info()
to return None and skip staging files before commit. Replace it with
git symbolic-ref --short HEAD, which works on git 1.x+ and alsoresolves correctly on an unborn HEAD (a repo with no commits yet).
Fixes #426
claude-session: https://claude.ai/code/session_01NgKrJnSAZmhGvVcwH32w3z
Other
[pre-commit.ci] pre-commit autoupdate. 1efe237
updates: - github.com/astral-sh/ruff-pre-commit: v0.16.0 → v0.16.6
v1.5.0Compare Source
Compare the full difference.
New
Other
Document
push_tagconfiguration and usage in global settings. e832c97Support pushing tag-only releases in one go. ec14558
v1.4.1Compare Source
Compare the full difference.
Other
Adjust logging levels and add warning for missing configuration files in tests. 4420d9e
Fixes #421
Bump the github-actions group across 1 directory with 2 updates. 0944890
Bumps the github-actions group with 2 updates in the / directory: actions/checkout and actions/setup-python.
Updates
actions/checkoutfrom 6 to 7Updates
actions/setup-pythonfrom 6 to 7updated-dependencies: - dependency-name: actions/checkout
dependency-version: '7'
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: github-actions
signed-off-by: dependabot[bot] support@github.com
[pre-commit.ci] pre-commit autoupdate. 39a2478
updates: - github.com/astral-sh/ruff-pre-commit: v0.15.17 → v0.15.22
Updates
v1.4.0Compare Source
Compare the full difference.
Fixes
Fix colorization of CLI in docs, upgrade to latest
click-extra. ee11fb2Refs #406 (comment)
coveragepy/coveragepy (coverage)
v7.17.0Compare Source
Dropped support for Python 3.10.
Binary wheels are now provided for iOS and Android. This allows the use of
the optimized C tracer on mobile platforms.
Fix: three or more levels of nested
withstatements could make awithline look like a branch with an exit that can never happen. Using the
sys.monitoring core, these phantom branches were reported as partial. Other
cores hid the problem but still counted the phantom branches in the total.
Closes
issue 1987_.Fix: a comment or string that merely mentioned
if True:orwhile True:could mark its line as a branch that is known to be partial,so a branch that never ran was reported as taken. These built-in patterns
now only match at the start of the statement. Closes
issue 2314_.Fix: region detection missed functions defined in unusual places, such as
elseandexceptclauses. This is now fixed.Fix: recent versions of the lcov tool complain if the same function name
appears more than once in a report. Python can have multiple same-named
functions in a few ways, for example, getters/setters or conditionally
defined functions. These are now disambiguated by adding a
@<line number>suffix to the function name. Fixes
issue 2335.Fix: The "Can't combine statement coverage data with branch data" error now
names the two data files it couldn't combine. The :ref:
error description <error_cant_combine>in the docs now lists common causes and how to find theprocess that wrote the file.
Fix: at coverage totals close to 0 or 100, the XML report could get incorrect
line-ratevalues like8.333e-05or1. This is now fixed, closingissue 2293_ andissue 2294_.Fix: a parallel data file saved more than once kept the hash of its first
save in its file name. Combining could then skip it as a duplicate of another
file that had the same data at that point, and delete it, losing the data
recorded after the first save. Each save now updates the hash. This had been
a problem since 7.13.1. Fixes
issue 2338_.Fixes for obscure but legal file names:
File names (and plugin names) can contain control characters, which are
legal in POSIX paths but unsafe in reports: in XML 1.0 they make the
document non-well-formed, and in a terminal they act as escape sequences
(colors, title/clipboard sequences, cursor moves that forge output). Now
the XML report, the text and Markdown summary reports, and
coverage debug datareplace non-printable characters in names. Printable names areunchanged.
A file pattern (from
include,omit, or a[paths]alias)containing a newline sent the glob-to-regex translation into an infinite
loop, hanging the process. Newlines in patterns are now handled like any
other character.
Fixes in the implementation of the C tracer:
If a plugin's
dynamic_source_filenamemethod raised an exception, linesin that function could be recorded as belonging to a different file. Also
fixed some minor memory leaks in the C tracer.
The refcount of
Nonewas mismanaged during function calls, includingcomprehensions. This was unlikely to cause an actual problem, but is now
fixed. Thanks, Andrew Dalke.
The C tracer held borrowed references to dictionary values, which was
unsafe on free-threaded Python. Now it takes its own references.
An internal error while recording a new file could be reported as a
confusing
SystemErrorinstead of the actual exception.Performance: the text summary report (
coverage report) held on to everyfile's parsed source until it finished, so its memory use grew with the size
of the project: ten times or more what 7.14 used on large projects. Now it
keeps only what it needs to print. Fixes
issue 2277_.Performance: HTML reports should be about 5% faster to produce.
Kept the political banner in the README. Closes
issue 2344_... _issue 1987: #1987
.. _issue 2277: #2277
.. _issue 2293: #2293
.. _issue 2294: #2294
.. _issue 2314: #2314
.. _issue 2335: #2335
.. _issue 2338: #2338
.. _issue 2344: #2344
.. _changes_7-16-2:
v7.16.2Compare Source
Fix: on Python 3.14 and later, a
forloop completing immediately before afunction return could mistakenly report an uncovered branch. This is now
fixed, closing
issue 2168_.Fix: on Python 3.14 and later, the
elseclause of atrywhose body isa
withstatement could incorrectly be reported as covered when thewithraised. This is now fixed, closingissue 2289_.Fix: with
dynamic_context = test_function, test methods written as@staticmethodor@classmethodwere not given a context of their own.Now they are, on Python 3.11 and later. Closes
issue 1923_... _issue 1923: #1923
.. _issue 2168: #2168
.. _issue 2289: #2289
.. _changes_7-16-1:
v7.16.1Compare Source
Fix: when the body of an irrefutable
case(likecase _:) is entirelyexcluded, the
caseline is now excluded too, just as an excludedelse:body removes theelse:line. Previously thecaseline wasleft behind and reported as missing. Closes
issue 1563_ withpull 2269_.Fix: using :meth:
.CoverageData.updatetwice on an in-memory database wouldfail, as described in
issue 2279_. This is now fixed.Fix: the Total row in the footer of the HTML report's index page was
recomputed in JavaScript with rounding that could disagree with the total
the server rendered in the heading, including showing
100%when coveragewas not complete. The footer now clamps values the way the rest of the
report does, and when nothing is filtered out it is shown exactly as the
server rendered it, so the two can't disagree. That also keeps rows the
report omits (
--skip-covereddrops fully covered files) in the total.Fixes
issue 2256_... _issue 1563: #1563
.. _issue 2256: #2256
.. _pull 2269: #2269
.. _issue 2279: #2279
.. _changes_7-16-0:
v7.16.0Compare Source
When combining files, now path separator slashes will automatically be
converted to the local file system style. This makes it less necessary to
define
[paths]configuration to combine data across operating systems.Fixes
issue 2266_.The :meth:
.Coverage.switch_contextmethod now returns the previous context.Fix: previously, a
[paths]pattern would be replaced everywhere in a filepath when it was only meant to be replaced once, in the leading portion of
the path. This is now fixed, in
pull 2268_.Fixes to validation of options and configuration settings:
Negative precision settings now always cause useful error messages (
pull 2261_).An invalid regex in the
--contextsoption (or the[report] contextssetting) reported a confusing "Couldn't use data file ...:user-defined function raised exception" error. Now it raises a proper
configuration error naming the bad regex, like other regex settings do
(
pull 2262_).Non-string values in TOML configuration settings now produce a helpful
error message instead of a traceback. This affects list settings whose
elements aren't strings (like
omit,exclude_lines, or a[paths]entry), file settings like
data_file, and any wrong-typed value in the[paths]section (pull 2263_).coverage runrefuses run-affecting command-line options like--branchalongside--concurrency=multiprocessing, since they can'treach the subprocesses. The check only recognized
multiprocessingasthe entire option value, so
--concurrency=multiprocessing,threadslipped through and failed later with "Can't combine statement coverage
data with branch data". Each named concurrency library is now properly
considered (
pull 2270_).Fix:
coverage annotate -d DIRraised anAssertionErrorif anymeasured file had an extension other than
.py, such as a.pywfile onWindows. The original extension is now restored on the annotated copy (`pu