Skip to content

Bump black from 25.12.0 to 26.1.0#331

Merged
docktermj merged 3 commits into
mainfrom
dependabot/pip/black-26.1.0
Feb 10, 2026
Merged

Bump black from 25.12.0 to 26.1.0#331
docktermj merged 3 commits into
mainfrom
dependabot/pip/black-26.1.0

Conversation

@dependabot
Copy link
Copy Markdown
Contributor

@dependabot dependabot Bot commented on behalf of github Feb 10, 2026

Bumps black from 25.12.0 to 26.1.0.

Release notes

Sourced from black's releases.

26.1.0

Highlights

Introduces the 2026 stable style (#4892), stabilizing the following changes:

  • always_one_newline_after_import: Always force one blank line after import statements, except when the line after the import is a comment or an import statement (#4489)
  • fix_fmt_skip_in_one_liners: Fix # fmt: skip behavior on one-liner declarations, such as def foo(): return "mock" # fmt: skip, where previously the declaration would have been incorrectly collapsed (#4800)
  • fix_module_docstring_detection: Fix module docstrings being treated as normal strings if preceded by comments (#4764)
  • fix_type_expansion_split: Fix type expansions split in generic functions (#4777)
  • multiline_string_handling: Make expressions involving multiline strings more compact (#1879)
  • normalize_cr_newlines: Add \r style newlines to the potential newlines to normalize file newlines both from and to (#4710)
  • remove_parens_around_except_types: Remove parentheses around multiple exception types in except and except* without as (#4720)
  • remove_parens_from_assignment_lhs: Remove unnecessary parentheses from the left-hand side of assignments while preserving magic trailing commas and intentional multiline formatting (#4865)
  • standardize_type_comments: Format type comments which have zero or more spaces between # and type: or between type: and value to # type: (value) (#4645)

The following change was not in any previous stable release:

  • Regenerated the _width_table.py and added tests for the Khmer language (#4253)

This release alo bumps pathspec to v1 and fixes inconsistencies with Git's .gitignore logic (#4958). Now, files will be ignored if a pattern matches them, even if the parent directory is directly unignored. For example, Black would previously format exclude/not_this/foo.py with this .gitignore:

exclude/
!exclude/not_this/

Now, exclude/not_this/foo.py will remain ignored. To ensure exclude/not_this/ and all of it's children are included in formatting (and in Git), use this .gitignore:

*/exclude/*
!*/exclude/not_this/

This new behavior matches Git. The leading */ are only necessary if you wish to ignore matching subdirectories (like the previous behavior did), and not just matching root

... (truncated)

Changelog

Sourced from black's changelog.

26.1.0

Highlights

Introduces the 2026 stable style (#4892), stabilizing the following changes:

  • always_one_newline_after_import: Always force one blank line after import statements, except when the line after the import is a comment or an import statement (#4489)
  • fix_fmt_skip_in_one_liners: Fix # fmt: skip behavior on one-liner declarations, such as def foo(): return "mock" # fmt: skip, where previously the declaration would have been incorrectly collapsed (#4800)
  • fix_module_docstring_detection: Fix module docstrings being treated as normal strings if preceded by comments (#4764)
  • fix_type_expansion_split: Fix type expansions split in generic functions (#4777)
  • multiline_string_handling: Make expressions involving multiline strings more compact (#1879)
  • normalize_cr_newlines: Add \r style newlines to the potential newlines to normalize file newlines both from and to (#4710)
  • remove_parens_around_except_types: Remove parentheses around multiple exception types in except and except* without as (#4720)
  • remove_parens_from_assignment_lhs: Remove unnecessary parentheses from the left-hand side of assignments while preserving magic trailing commas and intentional multiline formatting (#4865)
  • standardize_type_comments: Format type comments which have zero or more spaces between # and type: or between type: and value to # type: (value) (#4645)

The following change was not in any previous stable release:

  • Regenerated the _width_table.py and added tests for the Khmer language (#4253)

This release alo bumps pathspec to v1 and fixes inconsistencies with Git's .gitignore logic (#4958). Now, files will be ignored if a pattern matches them, even if the parent directory is directly unignored. For example, Black would previously format exclude/not_this/foo.py with this .gitignore:

exclude/
!exclude/not_this/

Now, exclude/not_this/foo.py will remain ignored. To ensure exclude/not_this/ and all of it's children are included in formatting (and in Git), use this .gitignore:

*/exclude/*
!*/exclude/not_this/

This new behavior matches Git. The leading */ are only necessary if you wish to ignore

... (truncated)

Commits

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Resolves #4892
Resolves #4489
Resolves #4800
Resolves #4764
Resolves #4777
Resolves #1879
Resolves #4710
Resolves #4720
Resolves #4865
Resolves #4645
Resolves #4253
Resolves #4958
Resolves #4961
Resolves #4952
Resolves #4919
Resolves #4923
Resolves #4922
Resolves #4957
Resolves #4928
Resolves #4933

@dependabot dependabot Bot added dependencies Pull requests that update a dependency file python python programming languagae labels Feb 10, 2026
@dependabot dependabot Bot requested a review from a team as a code owner February 10, 2026 01:13
@dependabot dependabot Bot added python python programming languagae dependencies Pull requests that update a dependency file labels Feb 10, 2026
@github-actions
Copy link
Copy Markdown

🤖 Claude Code Review

Code Review Analysis

Analyzing the pull request diff against the checklist:

✅ Code Quality

✅ Follows style guide - This is a dependency version bump in a configuration file, no code style concerns.

✅ No commented-out code - Clean change, no comments.

✅ Meaningful variable names - N/A for dependency version update.

✅ DRY principle followed - N/A for this change.

✅ No defects identified - This is a straightforward dependency version bump from Black 25.12.0 to 26.1.0 for Python > 3.11. The change:

  • Maintains the existing conditional versioning pattern
  • Only affects the linting toolchain, not runtime behavior
  • Follows semantic versioning (major version bump from 25→26)

✅ Testing

✅ Tests not required - Dependency version updates in pyproject.toml don't require new tests. The existing CI/linting pipeline will validate the new version works correctly.

N/A Test coverage - No functional code changes.

⚠️ Documentation

⚠️ CHANGELOG.md - Location: /home/runner/work/sz-python-tools/sz-python-tools/CHANGELOG.md

The CHANGELOG should be updated to document this dependency change. While it's a dev dependency, major version bumps in tools like Black can introduce formatting changes that affect the codebase.

✅ Other docs - No README or API documentation updates needed for a dev dependency bump.

✅ Security

✅ No hardcoded credentials - None present.

✅ No sensitive data - Clean change.

✅ No license files flagged - Not applicable to this change.

Summary

Overall Assessment: ✅ APPROVED with minor documentation suggestion

This is a clean dependency version bump. The only recommendation is to add a CHANGELOG entry documenting the Black version update from 25.12.0 → 26.1.0 for Python 3.12+.

Suggested CHANGELOG entry:

### Changed
- Bump black from 25.12.0 to 26.1.0 for Python > 3.11

No blocking issues identified. The change is safe to merge.

Automated code review analyzing defects and coding standards

Bumps [black](https://github.com/psf/black) from 25.12.0 to 26.1.0.
- [Release notes](https://github.com/psf/black/releases)
- [Changelog](https://github.com/psf/black/blob/main/CHANGES.md)
- [Commits](psf/black@25.12.0...26.1.0)

---
updated-dependencies:
- dependency-name: black
  dependency-version: 26.1.0
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot force-pushed the dependabot/pip/black-26.1.0 branch from 22c9fa5 to e3dd6f0 Compare February 10, 2026 01:20
@github-actions
Copy link
Copy Markdown

🤖 Claude Code Review

Code Review

Executive Summary

This PR updates the black dependency from version 25.12.0 to 26.1.0 for Python > 3.11. This is a minor dependency bump with no functional code changes.


Detailed Review

Code Quality

Code follows style guide - N/A, this is a dependency version update only

No commented-out code - No code present, only configuration change

Meaningful variable names - N/A, no code changes

DRY principle followed - N/A, no code changes

Identify Defects - No defects identified. This is a straightforward dependency version bump for the Black code formatter. The change maintains the existing pattern of version pinning for different Python versions.

Project memory configuration - The change is consistent with project patterns. Dependency updates are routine maintenance.

Testing

⚠️ Testing Requirements - While dependency updates typically don't require new tests, consider:

  • Running make lint to ensure the new Black version formats code consistently
  • Verifying all existing tests pass with the updated dependency
  • Checking if Black 26.1.0 introduces any new formatting rules that would affect the codebase

Documentation

Readme updated - Not needed for minor dependency updates

API docs updated - Not applicable

Inline comments - Not applicable

⚠️ CHANGELOG.md - Should be updated to document the dependency version bump. Example entry:

### Changed
- Updated black dependency from 25.12.0 to 26.1.0 for Python > 3.11

Markdown formatting - Not applicable to this change

Security

No hardcoded credentials - None present

Input validation - Not applicable

Proper error handling - Not applicable

No sensitive data in logs - Not applicable

No license files with AQAAAD strings - None in this diff


Recommendations

  1. Update CHANGELOG.md - Document this dependency update in pyproject.toml:73-76
  2. Run linting - Execute make lint to verify Black 26.1.0 doesn't introduce formatting changes
  3. Version compatibility - Verify Black 26.1.0 is compatible with Python 3.12+ (the target range for this constraint)

Approval Status

APPROVED with minor documentation suggestion

This is a low-risk maintenance update. The only action item is updating CHANGELOG.md to track the dependency version change.

Automated code review analyzing defects and coding standards

@docktermj docktermj self-assigned this Feb 10, 2026
@github-actions
Copy link
Copy Markdown

🤖 Claude Code Review

Code Review

Analyzing the pull request diff against the checklist...

✅ Code Quality

Style Guide Compliance

Follows style guide - The changes are minimal formatting updates that align with Python conventions.

Commented-out Code

No commented-out code - None present in this diff.

Variable Names

Meaningful names - No new variables introduced.

DRY Principle

DRY followed - The refactoring in sz_tools/_tool_helpers.py:289-300 actually improves code by removing redundant line continuations.

Defects Analysis

No defects identified - Both changes are safe:

  • Dependency version bump (black 25.12.0 → 26.1.0) for Python 3.12+
  • Code formatting improvement maintains identical output behavior

⚠️ Minor observation: The textwrap.dedent() refactoring changes triple-quoted string formatting style. While functionally equivalent, ensure this passes your linters (black/flake8).

✅ Testing

Testing not applicable - This PR contains:

  1. A dependency version bump (should be validated by existing CI)
  2. Whitespace/formatting refactoring with no behavioral changes

Recommendation: Verify CI passes with black==26.1.0, particularly the make lint and make black targets.

⚠️ Documentation

CHANGELOG.md not updated - pyproject.toml:76 updates black dependency but there's no corresponding CHANGELOG entry.

Other docs: Readme/API docs not needed for this change.

✅ Security

No security concerns:

  • No credentials, input validation, or logging changes
  • No sensitive data
  • No .lic files or AQAAAD strings present

📋 Summary

Approve with minor action items:

  1. Required: Add CHANGELOG.md entry for black dependency bump (26.1.0)
  2. Verify: CI/lint passes with new black version
  3. Optional: Consider if the textwrap.dedent() formatting change (sz_tools/_tool_helpers.py:289-300) aligns with team preferences - it's purely stylistic

Risk Level: Low - Changes are cosmetic (formatting) and a minor version dependency update.

Automated code review analyzing defects and coding standards

@github-actions
Copy link
Copy Markdown

🤖 Claude Code Review

Code Review: PR Diff Analysis

Code Quality

✅ Code follows style guide

The changes adhere to the project's formatting standards. The black formatter update and the code reformatting are consistent with Python best practices.

✅ No commented-out code

No commented-out code detected in the diff.

✅ Meaningful variable names

No new variables introduced; existing code maintained.

✅ DRY principle followed

The changes actually improve code conciseness by reducing unnecessary line breaks in the textwrap.dedent() call at sz_tools/_tool_helpers.py:289-300.

✅ Identify Defects

No bugs, logic errors, or security vulnerabilities detected. The changes are:

  1. A dependency version bump (black 25.x → 26.1.0)
  2. Code reformatting that maintains identical functionality

The reformatted print statement at lines 289-300 maintains the exact same output while being more compact. The multiline string content and indentation are preserved.

⚠️ Project memory consideration

The .claude/CLAUDE.md file appropriately contains general project guidance (commands, architecture, dependencies) without local environment specifics. This is correct.

Testing

❌ Unit tests for new functions

N/A - No new functions added. This is a dependency update and formatting change.

❌ Integration tests for new endpoints

N/A - No new endpoints.

❌ Edge cases covered

N/A - No new functionality.

❌ Test coverage > 80%

Cannot verify - No test execution results provided. However, this PR should not impact test coverage as it's purely a dependency update and code reformatting. Based on the CLAUDE.md, you can verify with make coverage.

Documentation

✅ Readme updated if needed

N/A - No readme updates needed for a black version bump and minor formatting change.

✅ API docs updated

N/A - No API changes.

✅ Inline comments for complex logic

No new complex logic; existing code maintained.

❌ CHANGELOG.md updated

Missing - The CHANGELOG.md should be updated to document the black version bump from 25.x to 26.1.0. Dependency updates should be tracked.

Recommendation: Add an entry like:

### Changed
- Bumped black formatter from 25.12.0/25.11.0 to 26.1.0

✅ Markdown files follow CommonMark

No markdown files modified in this PR.

Security

✅ No hardcoded credentials

No credentials detected.

✅ Input validation implemented

N/A - No new input handling.

✅ Proper error handling

Existing error handling maintained; no changes to error handling logic.

✅ No sensitive data in logs

No logging changes.

✅ No license files (.lic) or AQAAAD strings

No license files or suspicious license strings detected in the diff.

Summary

Overall Assessment: ✅ APPROVE with minor documentation suggestion

This is a clean maintenance PR that:

  1. Consolidates black dependency versions (removes Python version-specific pinning)
  2. Applies automatic code reformatting from the new black version
  3. Maintains identical functionality

Recommendations:

  1. Update CHANGELOG.md to document the black version bump
  2. Run the full test suite (make test or make coverage) to verify no unexpected behavior changes from the black upgrade
  3. Consider running make lint to confirm all linters pass with the new black version

The code changes are minimal, safe, and maintain the exact same program behavior.

Automated code review analyzing defects and coding standards

@docktermj docktermj enabled auto-merge (squash) February 10, 2026 14:29
@docktermj docktermj merged commit cb7726c into main Feb 10, 2026
68 of 69 checks passed
@docktermj docktermj deleted the dependabot/pip/black-26.1.0 branch February 10, 2026 14:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file python python programming languagae

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants