All Versions
Latest Version
Avg Release Cycle
82 days
Latest Release

Changelog History
Page 2

  • v21.5.b2 Changes


    • ๐Ÿ“„ A space is no longer inserted into empty docstrings (#2249)
    • ๐Ÿ›  Fix handling of .gitignore files containing non-ASCII characters on Windows (#2229)
    • Respect .gitignore files in all levels, not only root/.gitignore file (apply .gitignore rules like git does) (#2225)
    • โช Restored compatibility with Click 8.0 on Python 3.6 when LANG=C used (#2227)
    • โž• Add extra uvloop install + import support if in python env (#2258)
    • ๐Ÿ›  Fix --experimental-string-processing crash when matching parens are not found (#2283)
    • ๐Ÿ‘‰ Make sure to split lines that start with a string operator (#2286)
    • ๐Ÿ›  Fix regular expression that black uses to identify f-expressions (#2287)


    • โž• Add a lower bound for the aiohttp-cors dependency. Only 0.4.0 or higher is supported. (#2231)


    • ๐Ÿ‘ The official Black action now supports choosing what version to use, and supports the major 3 OSes. (#1940)


    • ๐Ÿš€ Release self-contained x86_64 MacOS binaries as part of the GitHub release pipeline (#2198)
    • ๐Ÿ— Always build binaries with the latest available Python (#2260)

    ๐Ÿ“š Documentation

    • โž• Add discussion of magic comments to FAQ page (#2272)
    • 0๏ธโƒฃ --experimental-string-processing will be enabled by default in the future (#2273)
    • ๐Ÿ›  Fix typos discovered by codespell (#2228)
    • ๐Ÿ›  Fix Vim plugin installation instructions. (#2235)
    • โž• Add new Frequently Asked Questions page (#2247)
    • ๐Ÿ›  Fix encoding + symlink issues preventing proper build on Windows (#2262)
  • v21.5.b1 Changes


    • Refactor src/black/ into many files (#2206)

    ๐Ÿ“š Documentation

    • Replaced all remaining references to the master branch with the main branch. Some additional changes in the source code were also made. (#2210)
    • ๐Ÿ“š Sigificantly reorganized the documentation to make much more sense. Check them out by heading over to the stable docs on RTD. (#2174)
  • v21.5.b0 Changes


    • Set --pyi mode if --stdin-filename ends in .pyi (#2169)
    • Stop detecting target version as Python 3.9+ with pre-PEP-614 decorators that are being called but with no arguments (#2182)


    • โž• Add --no-diff to black-primer to suppress formatting changes (#2187)
  • v21.4.b2 Changes


    • ๐Ÿ›  Fix crash if the user configuration directory is inaccessible. (#2158)

    • Clarify circumstances in which Black may change the AST (#2159)

    • ๐Ÿ‘ Allow .gitignore rules to be overridden by specifying exclude in pyproject.toml or on the command line. (#2170)


    • 0๏ธโƒฃ Install primer.json (used by black-primer by default) with black. (#2154)
  • v21.4.b1 Changes


    • ๐Ÿ›  Fix crash on docstrings ending with "\ ". (#2142)

    • ๐Ÿ›  Fix crash when atypical whitespace is cleaned out of dostrings (#2120)

    • Reflect the --skip-magic-trailing-comma and --experimental-string-processing flags in the name of the cache file. Without this fix, changes in these flags would not take effect if the cache had already been populated. (#2131)

    • ๐Ÿšš Don't remove necessary parentheses from assignment expression containing assert / return statements. (#2143)


    • โฌ†๏ธ Bump pathspec to >= 0.8.1 to solve invalid .gitignore exclusion handling
  • v21.4.b0 Changes


    • ๐Ÿ›  Fixed a rare but annoying formatting instability created by the combination of optional trailing commas inserted by Black and optional parentheses looking at pre-existing "magic" trailing commas. This fixes issue #1629 and all of its many many duplicates. (#2126)

    • ๐Ÿ“„ Black now processes one-line docstrings by stripping leading and trailing spaces, and adding a padding space when needed to break up """". (#1740)

    • Black now cleans up leading non-breaking spaces in comments (#2092)

    • Black now respects --skip-string-normalization when normalizing multiline docstring quotes (#1637)

    • ๐Ÿšš Black no longer removes all empty lines between non-function code and decorators when formatting typing stubs. Now Black enforces a single empty line. (#1646)

    • Black no longer adds an incorrect space after a parenthesized assignment expression in if/while statements (#1655)

    • โž• Added --skip-magic-trailing-comma / -C to avoid using trailing commas as a reason to split lines (#1824)

    • ๐Ÿ›  fixed a crash when PWD=/ on POSIX (#1631)

    • ๐Ÿ›  fixed "I/O operation on closed file" when using --diff (#1664)

    • Prevent coloured diff output being interleaved with multiple files (#1673)

    • โž• Added support for PEP 614 relaxed decorator syntax on python 3.9 (#1711)

    • โž• Added parsing support for unparenthesized tuples and yield expressions in annotated assignments (#1835)

    • โž• added --extend-exclude argument (PR #2005)

    • speed up caching by avoiding pathlib (#1950)

    • --diff correctly indicates when a file doesn't end in a newline (#1662)

    • โž• Added --stdin-filename argument to allow stdin to respect --force-exclude rules (#1780)

    • Lines ending with fmt: skip will now be not formatted (#1800)

    • PR #2053: Black no longer relies on typed-ast for Python 3.8 and higher

    • ๐Ÿ‘ PR #2053: Python 2 support is now optional, install with python3 -m pip install black[python2] to maintain support.

    • 0๏ธโƒฃ Exclude venv directory by default (#1683)

    • ๐Ÿ›  Fixed "Black produced code that is not equivalent to the source" when formatting Python 2 docstrings (#2037)


    • Self-contained native Black binaries are now provided for releases via GitHub Releases (#1743)
  • v20.8.b1 Changes

    August 26, 2020


    • explicitly depend on Click 7.1.2 or newer as Black no longer works with versions older than 7.0
  • v20.8.b0 Changes

    August 26, 2020


    • ๐Ÿ‘ re-implemented support for explicit trailing commas: now it works consistently within any bracket pair, including nested structures (#1288 and duplicates)

    • ๐Ÿ“„ Black now reindents docstrings when reindenting code around it (#1053)

    • Black now shows colored diffs (#1266)

    • ๐Ÿ“ฆ Black is now packaged using 'py3' tagged wheels (#1388)

    • ๐Ÿ‘ Black now supports Python 3.8 code, e.g. star expressions in return statements (#1121)

    • ๐Ÿ›  Black no longer normalizes capital R-string prefixes as those have a community-accepted meaning (#1244)

    • ๐Ÿ”ง Black now uses exit code 2 when specified configuration file doesn't exit (#1361)

    • Black now works on AWS Lambda (#1141)

    • โž• added --force-exclude argument (#1032)

    • โœ‚ removed deprecated --py36 option (#1236)

    • ๐Ÿ›  fixed --diff output when EOF is encountered (#526)

    • ๐Ÿ›  fixed # fmt: off handling around decorators (#560)

    • ๐Ÿ›  fixed unstable formatting with some # type: ignore comments (#1113)

    • ๐Ÿ›  fixed invalid removal on organizing brackets followed by indexing (#1575)

    • ๐Ÿ‘ท introduced black-primer, a CI tool that allows us to run regression tests against existing open source users of Black (#1402)

    • โœ… introduced property-based fuzzing to our test suite based on Hypothesis and Hypothersmith (#1566)

    • 0๏ธโƒฃ implemented experimental and disabled by default long string rewrapping (#1132), hidden under a --experimental-string-processing flag while it's being worked on; this is an undocumented and unsupported feature, you lose Internet points for depending on it (#1609)

    ๐Ÿ”Œ Vim plugin

    • ๐Ÿ“ฆ prefer virtualenv packages over global packages (#1383)
  • v19.10.b0 Changes

    October 28, 2019
    • โž• added support for PEP 572 assignment expressions (#711)

    • โž• added support for PEP 570 positional-only arguments (#943)

    • โž• added support for async generators (#593)

    • โž• added support for pre-splitting collections by putting an explicit trailing comma inside (#826)

    • โž• added black -c as a way to format code passed from the command line (#761)

    • --safe now works with Python 2 code (#840)

    • ๐Ÿ›  fixed grammar selection for Python 2-specific code (#765)

    • ๐Ÿ›  fixed feature detection for trailing commas in function definitions and call sites (#763)

    • # fmt: off/# fmt: on comment pairs placed multiple times within the same block of code now behave correctly (#1005)

    • Black no longer crashes on Windows machines with more than 61 cores (#838)

    • Black no longer crashes on standalone comments prepended with a backslash (#767)

    • Black no longer crashes on from ... import blocks with comments (#829)

    • Black no longer crashes on Python 3.7 on some platform configurations (#494)

    • Black no longer fails on comments in from-imports (#671)

    • Black no longer fails when the file starts with a backslash (#922)

    • Black no longer merges regular comments with type comments (#1027)

    • Black no longer splits long lines that contain type comments (#997)

    • โœ‚ removed unnecessary parentheses around yield expressions (#834)

    • โž• added parentheses around long tuples in unpacking assignments (#832)

    • โž• added parentheses around complex powers when they are prefixed by a unary operator (#646)

    • fixed bug that led Black format some code with a line length target of 1 (#762)

    • Black no longer introduces quotes in f-string subexpressions on string boundaries (#863)

    • if Black puts parenthesis around a single expression, it moves comments to the wrapped expression instead of after the brackets (#872)

    • blackd now returns the version of Black in the response headers (#1013)

    • blackd can now output the diff of formats on source code when the X-Diff header is provided (#969)

  • v19.3.b0 Changes

    March 14, 2019
    • new option --target-version to control which Python versions Black-formatted code should target (#618)

    • ๐Ÿ—„ deprecated --py36 (use --target-version=py36 instead) (#724)

    • Black no longer normalizes numeric literals to include _ separators (#696)

    • long del statements are now split into multiple lines (#698)

    • type comments are no longer mangled in function signatures

    • ๐Ÿ‘Œ improved performance of formatting deeply nested data structures (#509)

    • Black now properly formats multiple files in parallel on Windows (#632)

    • Black now creates cache files atomically which allows it to be used in parallel pipelines (like xargs -P8) (#673)

    • Black now correctly indents comments in files that were previously formatted with tabs (#262)

    • ๐Ÿ‘ blackd now supports CORS (#622)