‹ Reports
The Dispatch

OSS Report: psf/black


Black Development Team Focuses on Python 3.13 Compatibility and Bug Fixes

Black, the popular Python code formatter, has seen recent activity centered on compatibility with Python 3.13 and addressing specific bugs affecting its functionality. The project, developed by the Python Software Foundation, aims to provide a consistent and automatic code formatting solution for Python developers.

Recent Activity

The recent issues and pull requests in the Black repository indicate a strong focus on maintaining compatibility with the latest Python releases and resolving user-reported bugs. Notably, PR #4436 was merged to support Python 3.13, ensuring that Black remains up-to-date with language developments. Other significant PRs include #4444, which addresses a bug related to comments in return type annotations, and #4441, which enhances error messages for the Vim plugin.

Development Team Contributions

Of Note

Quantified Reports

Quantify Issues



Recent GitHub Issues Activity

Timespan Opened Closed Comments Labeled Milestones
7 Days 0 0 0 0 0
30 Days 4 3 8 0 1
90 Days 32 24 67 2 1
1 Year 262 200 662 14 1
All Time 2617 2260 - - -

Like all software activity quantification, these numbers are imperfect but sometimes useful. Comments, Labels, and Milestones refer to those issues opened in the timespan in question.

Quantify commits



Quantified Commit Activity Over 30 Days

Developer Avatar Branches PRs Commits Files Changes
Terence Honles 1 1/1/0 1 7 30
Ewout ter Hoeven 1 1/1/0 1 6 15
Shantanu 1 1/1/0 1 1 13
dependabot[bot] 3 2/1/1 3 1 6
Richard Si 1 1/1/0 1 1 1
Matej Aleksandrov (AleksMat) 0 1/0/0 0 0 0
Ashton Taylor Stasko (AshSta512) 0 1/0/0 0 0 0
None (Typocalypse) 0 1/0/0 0 0 0
Daniel Krzeminski (dankrzeminski32) 0 1/0/0 0 0 0

PRs: created by that dev and opened/merged/closed-unmerged during the period

Detailed Reports

Report On: Fetch issues



Recent Activity Analysis

The recent activity in the Black GitHub repository indicates a high level of engagement, with 357 open issues and a variety of discussions surrounding enhancements, bugs, and feature requests. Notably, several issues highlight concerns about formatting inconsistencies, particularly with comments and complex expressions. A recurring theme is the handling of long lines and the impact of comments on formatting decisions, suggesting that users are actively seeking improvements in how Black manages code readability while adhering to its strict style guidelines.

Several issues stand out due to their implications for user experience and code maintainability. For instance, issues related to # fmt: skip not functioning as expected reveal frustration among users who rely on these directives for preserving specific formatting. Additionally, the handling of multi-line strings and comments has led to confusion and unexpected outputs, indicating a need for clearer documentation or adjustments in the formatting logic.

Issue Details

Recent Issues

  1. Issue #4438: Support Python 3.13 free-threaded build

    • Priority: Enhancement
    • Status: Open
    • Created: 17 days ago
    • Updated: N/A
  2. Issue #4437: Improve vim plugin error message if vim is too old or python support is missing

    • Priority: Bug
    • Status: Open
    • Created: 22 days ago
    • Updated: 15 days ago
  3. Issue #4430: --line-ranges formats lines outside of range

    • Priority: Bug
    • Status: Open
    • Created: 31 days ago
    • Updated: 17 days ago
  4. Issue #4429: Add more documentation about preview style features

    • Priority: Documentation
    • Status: Open
    • Created: 32 days ago
    • Updated: N/A
  5. Issue #4420: Newlines between classes do not get added when the last method of one ends with ellipses

    • Priority: Style
    • Status: Open
    • Created: 37 days ago
    • Updated: N/A
  6. Issue #4418: Offer more architectures in GitHub releases

    • Priority: Enhancement
    • Status: Open
    • Created: 39 days ago
    • Updated: N/A
  7. Issue #4411: global config not possible if project contains a pyproject.toml

    • Priority: Bug
    • Status: Open
    • Created: 44 days ago
    • Updated: N/A
  8. Issue #4406: Allow valid version specifier when specifying Black version in pyproject.toml

    • Priority: Enhancement
    • Status: Open
    • Created: 49 days ago
    • Updated: 42 days ago
  9. Issue #4399: Black fails with ASTSafetyError on comment line in return type annotation

    • Priority: Bug, Crash
    • Status: Open
    • Created: 60 days ago
    • Updated: N/A
  10. Issue #4389: Combine f-strings which would be placed on the same line

    • Priority: Style
    • Status: Open
    • Created: 72 days ago
    • Updated: N/A

Important Observations

  • The issues reflect a significant focus on improving usability and addressing edge cases where Black's formatting logic may lead to confusion or unexpected results.
  • The presence of multiple bugs related to comment handling suggests that users are encountering practical challenges that could hinder their workflow.
  • Documentation-related issues indicate a desire for clearer guidance on using Black effectively, especially concerning new features like preview styles.
  • The ongoing discussions around Python version support highlight the community's interest in keeping pace with language updates while ensuring backward compatibility.

This analysis underscores the importance of continuous improvement in both functionality and user experience within the Black project as it evolves to meet developer needs.

Report On: Fetch pull requests



Overview

The pull request data for the psf/black repository reveals a total of 34 open pull requests, with a variety of enhancements, bug fixes, and dependency updates. The recent activity indicates a focus on improving compatibility with Python 3.13, enhancing error messages, and refining the handling of f-strings.

Summary of Pull Requests

  1. PR #4445: Fix broken GitHub link to black.schema.json

    • State: Open
    • Created: 1 day ago
    • Significance: Updates a broken link in the documentation, ensuring users can access the schema file correctly.
  2. PR #4444: Fix ASTSafetyError on comment in return type annotation

    • State: Open
    • Created: 3 days ago
    • Significance: Addresses a specific bug (#4399) related to handling comments in return type annotations, improving code parsing reliability.
  3. PR #4441: Enhance error message for Vim plugin

    • State: Open
    • Created: 15 days ago
    • Significance: Improves user experience by providing clearer error messages regarding version compatibility for the Vim plugin.
  4. PR #4440: Fix PEP 646 support of tuple unpacking

    • State: Closed (Merged)
    • Created: 15 days ago
    • Significance: Enhances type hinting capabilities in Black, particularly for tuple unpacking scenarios.
  5. PR #4436: Fully support Python 3.13, including CI testing and wheel building

    • State: Closed (Merged)
    • Created: 23 days ago
    • Significance: Adds support for the latest Python version, ensuring Black remains up-to-date with language developments.
  6. PR #4434: Bump myst-parser from 3.0.1 to 4.0.0 in /docs

    • State: Open
    • Created: 29 days ago
    • Significance: Updates documentation dependencies to maintain compatibility with newer versions.
  7. PR #4432: Add default exclusions and inclusions to docs

    • State: Open
    • Created: 30 days ago
    • Significance: Enhances documentation clarity by specifying default behavior regarding file exclusions.
  8. PR #4380: Fix fmt: skip issues; changed a test case also

    • State: Open
    • Created: 83 days ago
    • Significance: Resolves multiple issues related to formatting skips, improving code handling in various scenarios.
  9. PR #4378: Added Python and grammar versions to parser error message

    • State: Open
    • Created: 91 days ago
    • Significance: Enhances error reporting by including relevant version information, aiding debugging efforts.
  10. PR #4377: Don't remove parentheses around long dictionary values

    • State: Open
    • Created: 92 days ago
    • Significance: Addresses formatting issues that may lead to loss of clarity in complex dictionary structures.

Analysis of Pull Requests

The current set of open pull requests reflects several key themes within the development of Black:

Focus on Compatibility and Bug Fixes

A significant number of recent pull requests are dedicated to ensuring compatibility with newer versions of Python, particularly Python 3.13 (#4436). This is crucial as it allows Black to leverage new language features while maintaining its reputation as a reliable formatter. Additionally, PRs such as #4444 and #4378 focus on fixing specific bugs that affect functionality when dealing with comments and type annotations, which are common pain points for users.

Documentation Improvements

Several pull requests aim to enhance documentation clarity and usability (#4445, #4434, #4432). This is indicative of an ongoing effort to ensure that users have access to accurate and helpful information about how to use Black effectively, which is essential for adoption and user satisfaction.

User Experience Enhancements

Improvements in user experience are evident in PRs like #4441, which enhances error messaging in the Vim plugin, making it easier for users to understand issues they might encounter. This focus on user experience is critical for maintaining a positive relationship with the community and encouraging contributions.

Dependency Management

The presence of multiple dependency updates (#4434, #4401) highlights the importance of keeping third-party libraries up-to-date to avoid security vulnerabilities and ensure compatibility with other tools within the ecosystem. This proactive approach helps maintain the integrity and reliability of Black as a tool for developers.

Anomalies and Old PRs

While most recent PRs show active engagement from contributors, there are older PRs that remain open or have been closed without merging (e.g., PRs related to f-string handling). This could indicate either a lack of consensus on implementation or resource constraints within the maintainers' team. It would be beneficial for project maintainers to address these lingering issues to prevent fragmentation in development focus.

Lack of Recent Merge Activity

Despite a healthy number of open PRs, there seems to be a lag in merging some of them promptly. For instance, several PRs have been open for weeks or even months without resolution or feedback from maintainers. This could lead to contributor frustration and may discourage future contributions if not addressed timely.

In conclusion, while the current set of pull requests reflects a vibrant development environment focused on enhancing functionality and user experience in Black, attention should be given to resolving older issues and maintaining momentum in merging contributions efficiently. The ongoing work demonstrates a commitment to quality and responsiveness that is vital for sustaining community engagement and project success.

Report On: Fetch commits



Repo Commits Analysis

Development Team and Recent Activity

Team Members and Recent Contributions

  1. Ewout ter Hoeven (EwoutH)

    • Recent Activity:
    • Committed 1 change to fully support Python 3.13, including CI testing and wheel building.
    • Collaborated with no other team members on this commit.
    • Files Changed: 6 files with a total of 15 changes.
  2. Terence Honles (terencehonles)

    • Recent Activity:
    • Fixed PEP 646 support of tuple unpacking, enhancing functionality for type variable tuples.
    • No collaborations noted on this commit.
    • Files Changed: 7 files with a total of 30 changes.
  3. Shantanu (hauntsaninja)

    • Recent Activity:
    • Fixed a type error in blackd, addressing a specific bug.
    • No collaborations noted on this commit.
    • Files Changed: 1 file with a total of 13 changes.
  4. Dependabot[bot]

    • Recent Activity:
    • Made three commits related to dependency updates, specifically bumping versions for sphinx and myst-parser.
    • Collaborated with no other team members on these commits.
    • Files Changed: 1 file with a total of 6 changes across three branches.
  5. Richard Si (ichard26)

    • Recent Activity:
    • Removed himself from documentation dependency upgrade reviews.
    • No collaborations noted on this commit.
    • Files Changed: 1 file with a total of 1 change.

Patterns and Themes

  • Active Development: The team has shown consistent activity, particularly in addressing compatibility with the latest Python version (3.13) and fixing bugs related to existing features.
  • Collaboration: Most recent contributions appear to be individual efforts without significant collaboration among team members, indicating focused work on specific issues or features.
  • Dependency Management: Dependabot's activity highlights ongoing maintenance efforts to keep dependencies up to date, which is crucial for project stability and security.
  • Bug Fixes and Feature Enhancements: The recent commits reflect a balance between fixing bugs (e.g., type errors) and enhancing existing features (e.g., tuple unpacking support), showcasing the team's commitment to both quality and functionality.

Conclusion

The development team is actively engaged in maintaining and improving the Black code formatter, with recent contributions focusing on compatibility updates, bug fixes, and dependency management. The lack of collaborative commits suggests that developers are currently working independently on their assigned tasks. Overall, the team's activities reflect a proactive approach to software development within the context of evolving Python standards.