11# Change Log
22
3- ## Unreleased
3+ ## 23.11.0
44
55### Highlights
66
7- <!-- Include any especially major or disruptive changes here -->
8-
97- Support formatting ranges of lines with the new ` --line-ranges ` command-line option
10- (#4020 ).
8+ (#4020 )
119
1210### Stable style
1311
1412- Fix crash on formatting bytes strings that look like docstrings (#4003 )
1513- Fix crash when whitespace followed a backslash before newline in a docstring (#4008 )
1614- Fix standalone comments inside complex blocks crashing Black (#4016 )
17-
1815- Fix crash on formatting code like ` await (a ** b) ` (#3994 )
19-
2016- No longer treat leading f-strings as docstrings. This matches Python's behaviour and
2117 fixes a crash (#4019 )
2218
2319### Preview style
2420
25- - Multiline dictionaries and lists that are the sole argument to a function are now
26- indented less (#3964 )
27- - Multiline list and dict unpacking as the sole argument to a function is now also
21+ - Multiline dicts and lists that are the sole argument to a function are now indented
22+ less (#3964 )
23+ - Multiline unpacked dicts and lists as the sole argument to a function are now also
2824 indented less (#3992 )
29- - In f-string debug expressions preserve quote types that are visible in the final
30- string (#4005 )
25+ - In f-string debug expressions, quote types that are visible in the final string are
26+ now preserved (#4005 )
3127- Fix a bug where long ` case ` blocks were not split into multiple lines. Also enable
3228 general trailing comma rules on ` case ` blocks (#4024 )
3329- Keep requiring two empty lines between module-level docstring and first function or
34- class definition. (#4028 )
30+ class definition (#4028 )
31+ - Add support for single-line format skip with other comments on the same line (#3959 )
3532
3633### Configuration
3734
38- - Add support for single-line format skip with other comments on the same line (#3959 )
3935- Consistently apply force exclusion logic before resolving symlinks (#4015 )
4036- Fix a bug in the matching of absolute path names in ` --include ` (#3976 )
4137
42- ### Packaging
43-
44- <!-- Changes to how Black is packaged, such as dependency requirements -->
45-
46- ### Parser
47-
48- <!-- Changes to the parser or to version autodetection -->
49-
5038### Performance
5139
52- <!-- Changes that improve Black's performance. -->
53-
5440- Fix mypyc builds on arm64 on macOS (#4017 )
5541
56- ### Output
57-
58- <!-- Changes to Black's terminal output and error messages -->
59-
60- ### _ Blackd_
61-
62- <!-- Changes to blackd -->
63-
6442### Integrations
6543
66- <!-- For example, Docker, GitHub Actions, pre-commit, editors -->
67-
6844- Black's pre-commit integration will now run only on git hooks appropriate for a code
6945 formatter (#3940 )
7046
71- ### Documentation
72-
73- <!-- Major changes to documentation and policies. Small docs changes
74- don't need a changelog entry. -->
75-
7647## 23.10.1
7748
7849### Highlights
@@ -327,8 +298,6 @@ versions separately.
327298
328299### Stable style
329300
330- <!-- Changes that affect Black's stable style -->
331-
332301- Introduce the 2023 stable style, which incorporates most aspects of last year's
333302 preview style (#3418 ). Specific changes:
334303 - Enforce empty lines before classes and functions with sticky leading comments
@@ -362,8 +331,6 @@ versions separately.
362331
363332### Preview style
364333
365- <!-- Changes that affect Black's preview style -->
366-
367334- Format hex codes in unicode escape sequences in string literals (#2916 )
368335- Add parentheses around ` if ` -` else ` expressions (#2278 )
369336- Improve performance on large expressions that contain many strings (#3467 )
@@ -394,15 +361,11 @@ versions separately.
394361
395362### Configuration
396363
397- <!-- Changes to how Black can be configured -->
398-
399364- Black now tries to infer its ` --target-version ` from the project metadata specified in
400365 ` pyproject.toml ` (#3219 )
401366
402367### Packaging
403368
404- <!-- Changes to how Black is packaged, such as dependency requirements -->
405-
406369- Upgrade mypyc from ` 0.971 ` to ` 0.991 ` so mypycified _ Black_ can be built on armv7
407370 (#3380 )
408371 - This also fixes some crashes while using compiled Black with a debug build of
@@ -415,8 +378,6 @@ versions separately.
415378
416379### Output
417380
418- <!-- Changes to Black's terminal output and error messages -->
419-
420381- Calling ` black --help ` multiple times will return the same help contents each time
421382 (#3516 )
422383- Verbose logging now shows the values of ` pyproject.toml ` configuration variables
@@ -426,25 +387,18 @@ versions separately.
426387
427388### Integrations
428389
429- <!-- For example, Docker, GitHub Actions, pre-commit, editors -->
430-
431390- Move 3.11 CI to normal flow now that all dependencies support 3.11 (#3446 )
432391- Docker: Add new ` latest_prerelease ` tag automation to follow latest black alpha
433392 release on docker images (#3465 )
434393
435394### Documentation
436395
437- <!-- Major changes to documentation and policies. Small docs changes
438- don't need a changelog entry. -->
439-
440396- Expand ` vim-plug ` installation instructions to offer more explicit options (#3468 )
441397
442398## 22.12.0
443399
444400### Preview style
445401
446- <!-- Changes that affect Black's preview style -->
447-
448402- Enforce empty lines before classes and functions with sticky leading comments (#3302 )
449403- Reformat empty and whitespace-only files as either an empty file (if no newline is
450404 present) or as a single newline character (if a newline is present) (#3348 )
@@ -457,25 +411,19 @@ versions separately.
457411
458412### Configuration
459413
460- <!-- Changes to how Black can be configured -->
461-
462414- Fix incorrectly applied ` .gitignore ` rules by considering the ` .gitignore ` location
463415 and the relative path to the target file (#3338 )
464416- Fix incorrectly ignoring ` .gitignore ` presence when more than one source directory is
465417 specified (#3336 )
466418
467419### Parser
468420
469- <!-- Changes to the parser or to version autodetection -->
470-
471421- Parsing support has been added for walruses inside generator expression that are
472422 passed as function args (for example,
473423 ` any(match := my_re.match(text) for text in texts) ` ) (#3327 ).
474424
475425### Integrations
476426
477- <!-- For example, Docker, GitHub Actions, pre-commit, editors -->
478-
479427- Vim plugin: Optionally allow using the system installation of Black via
480428 ` let g:black_use_virtualenv = 0 ` (#3309 )
481429
0 commit comments