build(deps): bump pre-commit from 4.5.1 to 4.6.0#20861
Conversation
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit aed4f915f53cb701ccd9d65303690dcb45d01640. Configure here.
🤖 Cursor Dependency AnalysisSupply-Chain Malware ReviewVerdict: benign Why this looks safe
Actionable note for reviewers: If the chia-blockchain PR itself touches Compatibility AnalysisTracing how 1) Where
|
| Area | Role |
|---|---|
pyproject.toml |
Optional dev extra: pre-commit pinned (in your tree: >=4.6.0). |
poetry.lock |
Resolved version for that optional dependency (and transitive mentions in other packages’ extras). |
.github/workflows/pre-commit.yml |
CI installs dev deps, then runs pre-commit run --all-files --verbose. |
.pre-commit-config.yaml |
Hook repos and revisions (normal config; not tied to hook-impl CLI). |
CONTRIBUTING.md |
Tells contributors to install/use pre-commit / pre-commit install. |
chia/_tests/build-init-files.py, chia/_tests/check_sql_statements.py |
Comments only; no programmatic API use. |
There are no tracked custom shell hooks under a repo hooks/ tree; nothing in this repo invokes pre-commit hook-impl by name.
2) Overlap with 4.6.0 behavior
Release changes are only for the pre-commit hook-impl subcommand: optional --hook-dir, --hook-type required.
This repo’s documented and CI path is pre-commit run (plus typical local pre-commit install), which does not match that surface. There is no in-tree Python import pre_commit (only in the vendored .upstream-dependency mirror).
Conclusion: usage sites do not intersect the changed CLI in any identifiable way.
3) Risks / unknowns
- Hand-written git hooks that call
pre-commit hook-implwithout--hook-typecould fail after upgrade (unlikely given standardpre-commit installtemplates; not present in-repo). - Lockfile +
pyprojectshould stay consistent on the PR (Dependabot usually updates both); mismatch would be a workflow issue, not apre-commitAPI issue. - No release-note signal of Python-version or hook-config format breaks for this minor bump.
4) Recommendation
Merge — tooling-only bump; 4.6.0 changes target an internal/advanced entrypoint this project does not use in CI or tracked automation. Green pre-commit workflow on the PR is sufficient validation.
Malware Scan Summary
- Status: warn
- Warn only mode:
true - Changed upstream files scanned:
8 - Resolution strategy:
tag_range - Changed node/vendor paths:
0 - Changed lockfiles:
0 - Resolved upstream range:
8a0630ca1aa7f6d5665effe674ebe2022af17919..f35134b05028ec938ac605ae500fdf95462655d3 - Resolved refs: from=
8a0630ca1aa7f6d5665effe674ebe2022af17919to=f35134b05028ec938ac605ae500fdf95462655d3 - Unicode findings (post-allowlist):
0 - Confusable findings (post-allowlist):
0 - IOC findings (post-allowlist):
0 - Heuristic findings (post-allowlist):
11
Top findings
pre_commit/commands/hook_impl.py:5shell_process_spawn ::import subprocesspre_commit/commands/hook_impl.py:46shell_process_spawn ::return subprocess.run(cmd, input=stdin).returncode, stdinpre_commit/commands/hook_impl.py:117shell_process_spawn ::return not subprocess.call(('git', 'rev-list', '--quiet', rev))pre_commit/commands/hook_impl.py:143shell_process_spawn ::ancestors = subprocess.check_output((pre_commit/commands/hook_impl.py:152shell_process_spawn ::roots = set(subprocess.check_output(cmd).decode().splitlines())pre_commit/commands/hook_impl.py:164shell_process_spawn ::source = subprocess.check_output(rev_cmd).decode().strip()tests/commands/hook_impl_test.py:3shell_process_spawn ::import subprocesstests/commands/hook_impl_test.py:94shell_process_spawn ::with mock.patch.object(subprocess, 'run', call):CHANGELOG.md:1476shell_process_spawn ::- pre-commit run --files ... no longer runs a subprocess per fileCHANGELOG.md:414typosquatting_indicator ::- #2564 PR by @mattp-.pre-commit:0maintainer_drift ::4.5.1->4.6.0
aed4f91 to
763f831
Compare
Coverage Report for CI Build 26267552263Warning No base build found for commit Coverage: 91.472%Details
Uncovered ChangesNo uncovered changes found. Coverage RegressionsRequires a base build to compare against. How to fix this → Coverage Stats💛 - Coveralls |
763f831 to
cebf71b
Compare
🤖 Cursor Dependency AnalysisSupply-Chain Malware ReviewReviewing the dependency update and upstream changes for supply-chain risk. This is a low-risk, patch-level bump of an optional dev dependency with no supply-chain red flags. Scanner vs. manual review: The malware scan returned warn, but all 11 heuristic hits are false positives for this package. There were 0 Unicode/confusable/IOC findings. I agree with that interpretation—the warnings do not indicate compromise. What changed (upstream
Checklist highlights:
Heuristic noise explained:
Recommendation: Approve from a supply-chain perspective. CI passing on the existing Compatibility AnalysisAnalyzing how this repo uses Compatibility & adoption —
|
| Surface | Role |
|---|---|
pyproject.toml |
Optional dev extra: pre-commit = { version = ">=4.6.0", optional = true } |
poetry.lock |
Locked to 4.6.0 (dev group only) |
.pre-commit-config.yaml |
Hook definitions (ruff, local scripts, mirror repos); does not pin the Python package version |
.github/workflows/pre-commit.yml |
CI: pre-commit run --all-files --verbose after dev venv install |
CONTRIBUTING.md |
Documents pre-commit run and pre-commit install for contributors |
chia/_tests/check_sql_statements.py, build-init-files.py |
Comments only — run as hooks, not as imports of the package |
Not used: production/runtime install path, no import pre_commit in application code.
2) Intersection with 4.6.0 API changes
Upstream 4.6.0 only changes the internal pre-commit hook-impl CLI:
--hook-typeis now required--hook-diris optional (Git 2.54+ hook layout)
This repo does not call hook-impl directly (no scripts/workflows reference it).
Relevant paths Chia actually uses:
| Command | Touches changed API? |
|---|---|
pre-commit run (CI + docs) |
No — unchanged |
pre-commit install (docs) |
Indirect — install writes hooks that already pass --hook-type and --hook-dir via hook-tmpl / install_uninstall.py in upstream 4.6.0 |
Generated hook shape (upstream): ARGS=(hook-impl --config=... --hook-type=pre-commit) plus template line ARGS+=(--hook-dir "$HERE" -- "$@"). That remains valid on 4.6.0; optional --hook-dir is additive for newer Git, not a breaking change for existing installs.
3) Risks / unknowns
| Risk | Level |
|---|---|
| Production / node runtime impact | None — dev-only optional dependency |
| CI regression | Low — same pre-commit run entrypoint; confirm 🚨 pre-commit workflow is green on the PR |
Custom/manual hook-impl wrappers omitting --hook-type |
Very low — would fail on 4.6.0; not present in this repo |
| Transitive deps | Unchanged — same five deps (cfgv, identify, nodeenv, pyyaml, virtualenv) |
.pre-commit-config.yaml in scan “changed files” |
Likely incidental to review tooling, not required for this package bump |
4) Recommendation
Merge.
Patch-level, dev-only bump; release notes affect an internal subcommand this repo does not invoke. Primary validation: green pre-commit GitHub Actions job on PR #20861. No code changes expected beyond pyproject.toml / poetry.lock (already at >=4.6.0 / 4.6.0 in this tree). Contributors on Git 2.54+ may benefit from optional --hook-dir; existing pre-commit install hooks keep working.
Malware Scan Summary
- Status: warn
- Warn only mode:
true - Changed upstream files scanned:
8 - Resolution strategy:
tag_range - Changed node/vendor paths:
0 - Changed lockfiles:
0 - Resolved upstream range:
8a0630ca1aa7f6d5665effe674ebe2022af17919..f35134b05028ec938ac605ae500fdf95462655d3 - Resolved refs: from=
8a0630ca1aa7f6d5665effe674ebe2022af17919to=f35134b05028ec938ac605ae500fdf95462655d3 - Unicode findings (post-allowlist):
0 - Confusable findings (post-allowlist):
0 - IOC findings (post-allowlist):
0 - Heuristic findings (post-allowlist):
11
Top findings
pre_commit/commands/hook_impl.py:5shell_process_spawn ::import subprocesspre_commit/commands/hook_impl.py:46shell_process_spawn ::return subprocess.run(cmd, input=stdin).returncode, stdinpre_commit/commands/hook_impl.py:117shell_process_spawn ::return not subprocess.call(('git', 'rev-list', '--quiet', rev))pre_commit/commands/hook_impl.py:143shell_process_spawn ::ancestors = subprocess.check_output((pre_commit/commands/hook_impl.py:152shell_process_spawn ::roots = set(subprocess.check_output(cmd).decode().splitlines())pre_commit/commands/hook_impl.py:164shell_process_spawn ::source = subprocess.check_output(rev_cmd).decode().strip()tests/commands/hook_impl_test.py:3shell_process_spawn ::import subprocesstests/commands/hook_impl_test.py:94shell_process_spawn ::with mock.patch.object(subprocess, 'run', call):CHANGELOG.md:1476shell_process_spawn ::- pre-commit run --files ... no longer runs a subprocess per fileCHANGELOG.md:414typosquatting_indicator ::- #2564 PR by @mattp-.pre-commit:0maintainer_drift ::4.5.1->4.6.0
cebf71b to
b5b536c
Compare
b5b536c to
cb0f85f
Compare
cb0f85f to
8dafcdb
Compare
8dafcdb to
9df0e52
Compare
9df0e52 to
052a0df
Compare
052a0df to
da78c33
Compare
|
@dependabot rebase |
da78c33 to
dd2c67e
Compare
🤖 Cursor Dependency AnalysisSupply-Chain Malware ReviewReviewing how this repo pins and uses pre-commit, and inspecting the upstream 4.5.1→4.6.0 diff for supply-chain risk. This is a routine patch bump (4.5.1 → 4.6.0) of the official PR scope (chia-blockchain): Only dev dependency pins change — Upstream delta (8 files, +34/−8 lines): The functional change is narrowly scoped to
Checklist review:
Scanner disagreement: All 11 heuristic Chia impact: CI runs Recommendation: Approve from a supply-chain perspective. Confirm the repo’s pre-commit CI job passes on the PR branch as the practical validation step. Compatibility AnalysisReviewing how this repo uses pre-commit and whether the 4.6.0 changes affect those usage sites. Compatibility & adoption analysis —
|
| Location | Usage |
|---|---|
pyproject.toml |
Optional dev dependency (pre-commit = { version = ">=4.6.0", ... }) |
poetry.lock |
Locked at 4.6.0 (same five transitive deps: cfgv, identify, nodeenv, pyyaml, virtualenv) |
.pre-commit-config.yaml |
Hook definitions (local system hooks + mirrors for prettier/shfmt/pre-commit-hooks) |
.github/workflows/pre-commit.yml |
CI: pre-commit run --all-files --verbose on Linux/macOS/Windows × Python 3.10–3.14 |
CONTRIBUTING.md |
Docs for pre-commit run / pre-commit install |
| App/test code | No import pre_commit or direct CLI calls beyond comments in hook scripts |
Pre-commit is a dev/CI-only CLI tool here, not a runtime dependency.
2) Intersection with 4.6.0 API changes
Upstream delta (8 files, +34/−8) is entirely scoped to the internal hook-impl subcommand:
--hook-diroptional (Git 2.54+ native hooks)--hook-typenow required when invokinghook-impldirectly
Repo usage vs. changed surface:
| This repo’s path | Touches changed API? |
|---|---|
pre-commit run --all-files (CI) |
No — run unchanged |
.pre-commit-config.yaml |
No — config schema unchanged |
pre-commit install (contributor docs) |
No — install_uninstall.py already emits --hook-type=... in generated git hooks |
Direct pre-commit hook-impl ... |
Not used anywhere in repo |
No usage sites intersect with the changed APIs.
3) Risks / unknowns
- CI (
pre-commit run): Very low risk; primary validation path is unchanged. - Local git hooks: Low risk;
pre-commit installalready passes--hook-type. Developers on Git 2.54+ may actually benefit from optional--hook-dir. - Manual
hook-implwithout--hook-type: Would now fail — not a repo pattern. - Hook behavior / config: No breaking changes to hook execution, languages, or
.pre-commit-config.yamlformat in this release. - Python version: 4.6.0 requires
>=3.10; matches project matrix. - Residual unknown: Full matrix CI (9 OS/arch/Python combos) is the real gate; no functional reason to expect regressions from this patch.
4) Recommendation: merge
Routine patch bump with changes isolated to an internal subcommand this repo never calls directly. Primary usage (pre-commit run in CI) and contributor workflow (pre-commit install) are unaffected. No config or workflow changes required.
Test plan: Confirm the existing 🚨 pre-commit workflow passes on the PR branch (that is sufficient validation).
Malware Scan Summary
- Status: warn
- Warn only mode:
true - Changed upstream files scanned:
8 - Resolution strategy:
tag_range - Changed node/vendor paths:
0 - Changed lockfiles:
0 - Resolved upstream range:
8a0630ca1aa7f6d5665effe674ebe2022af17919..f35134b05028ec938ac605ae500fdf95462655d3 - Resolved refs: from=
8a0630ca1aa7f6d5665effe674ebe2022af17919to=f35134b05028ec938ac605ae500fdf95462655d3 - Unicode findings (post-allowlist):
0 - Confusable findings (post-allowlist):
0 - IOC findings (post-allowlist):
0 - Heuristic findings (post-allowlist):
11
Top findings
pre_commit/commands/hook_impl.py:5shell_process_spawn ::import subprocesspre_commit/commands/hook_impl.py:46shell_process_spawn ::return subprocess.run(cmd, input=stdin).returncode, stdinpre_commit/commands/hook_impl.py:117shell_process_spawn ::return not subprocess.call(('git', 'rev-list', '--quiet', rev))pre_commit/commands/hook_impl.py:143shell_process_spawn ::ancestors = subprocess.check_output((pre_commit/commands/hook_impl.py:152shell_process_spawn ::roots = set(subprocess.check_output(cmd).decode().splitlines())pre_commit/commands/hook_impl.py:164shell_process_spawn ::source = subprocess.check_output(rev_cmd).decode().strip()tests/commands/hook_impl_test.py:3shell_process_spawn ::import subprocesstests/commands/hook_impl_test.py:94shell_process_spawn ::with mock.patch.object(subprocess, 'run', call):CHANGELOG.md:1476shell_process_spawn ::- pre-commit run --files ... no longer runs a subprocess per fileCHANGELOG.md:414typosquatting_indicator ::- #2564 PR by @mattp-.pre-commit:0maintainer_drift ::4.5.1->4.6.0
dd2c67e to
efd74c1
Compare
efd74c1 to
18688e9
Compare
Bumps [pre-commit](https://github.com/pre-commit/pre-commit) from 4.5.1 to 4.6.0. - [Release notes](https://github.com/pre-commit/pre-commit/releases) - [Changelog](https://github.com/pre-commit/pre-commit/blob/main/CHANGELOG.md) - [Commits](pre-commit/pre-commit@v4.5.1...v4.6.0) --- updated-dependencies: - dependency-name: pre-commit dependency-version: 4.6.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
18688e9 to
888da4a
Compare

Bumps pre-commit from 4.5.1 to 4.6.0.
Release notes
Sourced from pre-commit's releases.
Changelog
Sourced from pre-commit's changelog.
Commits
f35134bv4.6.02a51ffcMerge pull request #3662 from pre-commit/hook-impl-optional-hook-dird7dee32make --hook-dir optional for hook-impl965aeb1Merge pull request #3661 from pre-commit/hook-impl-required2eacc06--hook-type is required for hook-implf5678bfMerge pull request #3657 from pre-commit/pre-commit-ci-update-config054cc5b[pre-commit.ci] pre-commit autoupdate5c0f302Merge pull request #3652 from pre-commit/pre-commit-ci-update-configa5d9114[pre-commit.ci] pre-commit autoupdate129a1f5Merge pull request #3641 from pre-commit/mxr-patch-1Note
Low Risk
Low risk dev-tooling change: updates the optional
pre-commitdependency and lockfile without affecting runtime code paths.Overview
Updates the optional dev dependency
pre-commitfrom4.5.1to4.6.0by tightening the version constraint inpyproject.toml.Regenerates
poetry.lockto reflect the newpre-commitartifact hashes and updated lock metadata (content-hash).Reviewed by Cursor Bugbot for commit 888da4a. Bugbot is set up for automated code reviews on this repo. Configure here.