]> git.madduck.net Git - etc/vim.git/blob - CHANGES.md

madduck's git repository

Every one of the projects in this repository is available at the canonical URL git://git.madduck.net/madduck/pub/<projectpath> — see each project's metadata for the exact URL.

All patches and comments are welcome. Please squash your changes to logical commits before using git-format-patch and git-send-email to patches@git.madduck.net. If you'd read over the Git project's submission guidelines and adhered to them, I'd be especially grateful.

SSH access, as well as push access can be individually arranged.

If you use my repositories frequently, consider adding the following snippet to ~/.gitconfig and using the third clone URL listed for each project:

[url "git://git.madduck.net/madduck/"]
  insteadOf = madduck:

3427fe8e391b71e1ca3e4ef90ebbffc4f141b56a
[etc/vim.git] / CHANGES.md
1 # Change Log
2
3 ## Unreleased
4
5 ### _Black_
6
7 - Correct max string length calculation when there are string operators (#2292)
8 - Fixed option usage when using the `--code` flag (#2259)
9
10 ## 21.5b2
11
12 ### _Black_
13
14 - A space is no longer inserted into empty docstrings (#2249)
15 - Fix handling of .gitignore files containing non-ASCII characters on Windows (#2229)
16 - Respect `.gitignore` files in all levels, not only `root/.gitignore` file (apply
17   `.gitignore` rules like `git` does) (#2225)
18 - Restored compatibility with Click 8.0 on Python 3.6 when LANG=C used (#2227)
19 - Add extra uvloop install + import support if in python env (#2258)
20 - Fix --experimental-string-processing crash when matching parens are not found (#2283)
21 - Make sure to split lines that start with a string operator (#2286)
22 - Fix regular expression that black uses to identify f-expressions (#2287)
23
24 ### _Blackd_
25
26 - Add a lower bound for the `aiohttp-cors` dependency. Only 0.4.0 or higher is
27   supported. (#2231)
28
29 ### Integrations
30
31 - The official Black action now supports choosing what version to use, and supports the
32   major 3 OSes. (#1940)
33
34 ### Packaging
35
36 - Release self-contained x86_64 MacOS binaries as part of the GitHub release pipeline
37   (#2198)
38 - Always build binaries with the latest available Python (#2260)
39
40 ### Documentation
41
42 - Add discussion of magic comments to FAQ page (#2272)
43 - `--experimental-string-processing` will be enabled by default in the future (#2273)
44 - Fix typos discovered by codespell (#2228)
45 - Fix Vim plugin installation instructions. (#2235)
46 - Add new Frequently Asked Questions page (#2247)
47 - Fix encoding + symlink issues preventing proper build on Windows (#2262)
48
49 ## 21.5b1
50
51 ### _Black_
52
53 - Refactor `src/black/__init__.py` into many files (#2206)
54
55 ### Documentation
56
57 - Replaced all remaining references to the
58   [`master`](https://github.com/psf/black/tree/main) branch with the
59   [`main`](https://github.com/psf/black/tree/main) branch. Some additional changes in
60   the source code were also made. (#2210)
61 - Sigificantly reorganized the documentation to make much more sense. Check them out by
62   heading over to [the stable docs on RTD](https://black.readthedocs.io/en/stable/).
63   (#2174)
64
65 ## 21.5b0
66
67 ### _Black_
68
69 - Set `--pyi` mode if `--stdin-filename` ends in `.pyi` (#2169)
70 - Stop detecting target version as Python 3.9+ with pre-PEP-614 decorators that are
71   being called but with no arguments (#2182)
72
73 ### _Black-Primer_
74
75 - Add `--no-diff` to black-primer to suppress formatting changes (#2187)
76
77 ## 21.4b2
78
79 ### _Black_
80
81 - Fix crash if the user configuration directory is inaccessible. (#2158)
82
83 - Clarify
84   [circumstances](https://github.com/psf/black/blob/master/docs/the_black_code_style.md#pragmatism)
85   in which _Black_ may change the AST (#2159)
86
87 - Allow `.gitignore` rules to be overridden by specifying `exclude` in `pyproject.toml`
88   or on the command line. (#2170)
89
90 ### _Packaging_
91
92 - Install `primer.json` (used by `black-primer` by default) with black. (#2154)
93
94 ## 21.4b1
95
96 ### _Black_
97
98 - Fix crash on docstrings ending with "\\ ". (#2142)
99
100 - Fix crash when atypical whitespace is cleaned out of dostrings (#2120)
101
102 - Reflect the `--skip-magic-trailing-comma` and `--experimental-string-processing` flags
103   in the name of the cache file. Without this fix, changes in these flags would not take
104   effect if the cache had already been populated. (#2131)
105
106 - Don't remove necessary parentheses from assignment expression containing assert /
107   return statements. (#2143)
108
109 ### _Packaging_
110
111 - Bump pathspec to >= 0.8.1 to solve invalid .gitignore exclusion handling
112
113 ## 21.4b0
114
115 ### _Black_
116
117 - Fixed a rare but annoying formatting instability created by the combination of
118   optional trailing commas inserted by `Black` and optional parentheses looking at
119   pre-existing "magic" trailing commas. This fixes issue #1629 and all of its many many
120   duplicates. (#2126)
121
122 - `Black` now processes one-line docstrings by stripping leading and trailing spaces,
123   and adding a padding space when needed to break up """". (#1740)
124
125 - `Black` now cleans up leading non-breaking spaces in comments (#2092)
126
127 - `Black` now respects `--skip-string-normalization` when normalizing multiline
128   docstring quotes (#1637)
129
130 - `Black` no longer removes all empty lines between non-function code and decorators
131   when formatting typing stubs. Now `Black` enforces a single empty line. (#1646)
132
133 - `Black` no longer adds an incorrect space after a parenthesized assignment expression
134   in if/while statements (#1655)
135
136 - Added `--skip-magic-trailing-comma` / `-C` to avoid using trailing commas as a reason
137   to split lines (#1824)
138
139 - fixed a crash when PWD=/ on POSIX (#1631)
140
141 - fixed "I/O operation on closed file" when using --diff (#1664)
142
143 - Prevent coloured diff output being interleaved with multiple files (#1673)
144
145 - Added support for PEP 614 relaxed decorator syntax on python 3.9 (#1711)
146
147 - Added parsing support for unparenthesized tuples and yield expressions in annotated
148   assignments (#1835)
149
150 - added `--extend-exclude` argument (PR #2005)
151
152 - speed up caching by avoiding pathlib (#1950)
153
154 - `--diff` correctly indicates when a file doesn't end in a newline (#1662)
155
156 - Added `--stdin-filename` argument to allow stdin to respect `--force-exclude` rules
157   (#1780)
158
159 - Lines ending with `fmt: skip` will now be not formatted (#1800)
160
161 - PR #2053: Black no longer relies on typed-ast for Python 3.8 and higher
162
163 - PR #2053: Python 2 support is now optional, install with
164   `python3 -m pip install black[python2]` to maintain support.
165
166 - Exclude `venv` directory by default (#1683)
167
168 - Fixed "Black produced code that is not equivalent to the source" when formatting
169   Python 2 docstrings (#2037)
170
171 ### _Packaging_
172
173 - Self-contained native _Black_ binaries are now provided for releases via GitHub
174   Releases (#1743)
175
176 ## 20.8b1
177
178 ### _Packaging_
179
180 - explicitly depend on Click 7.1.2 or newer as `Black` no longer works with versions
181   older than 7.0
182
183 ## 20.8b0
184
185 ### _Black_
186
187 - re-implemented support for explicit trailing commas: now it works consistently within
188   any bracket pair, including nested structures (#1288 and duplicates)
189
190 - `Black` now reindents docstrings when reindenting code around it (#1053)
191
192 - `Black` now shows colored diffs (#1266)
193
194 - `Black` is now packaged using 'py3' tagged wheels (#1388)
195
196 - `Black` now supports Python 3.8 code, e.g. star expressions in return statements
197   (#1121)
198
199 - `Black` no longer normalizes capital R-string prefixes as those have a
200   community-accepted meaning (#1244)
201
202 - `Black` now uses exit code 2 when specified configuration file doesn't exit (#1361)
203
204 - `Black` now works on AWS Lambda (#1141)
205
206 - added `--force-exclude` argument (#1032)
207
208 - removed deprecated `--py36` option (#1236)
209
210 - fixed `--diff` output when EOF is encountered (#526)
211
212 - fixed `# fmt: off` handling around decorators (#560)
213
214 - fixed unstable formatting with some `# type: ignore` comments (#1113)
215
216 - fixed invalid removal on organizing brackets followed by indexing (#1575)
217
218 - introduced `black-primer`, a CI tool that allows us to run regression tests against
219   existing open source users of Black (#1402)
220
221 - introduced property-based fuzzing to our test suite based on Hypothesis and
222   Hypothersmith (#1566)
223
224 - implemented experimental and disabled by default long string rewrapping (#1132),
225   hidden under a `--experimental-string-processing` flag while it's being worked on;
226   this is an undocumented and unsupported feature, you lose Internet points for
227   depending on it (#1609)
228
229 ### Vim plugin
230
231 - prefer virtualenv packages over global packages (#1383)
232
233 ## 19.10b0
234
235 - added support for PEP 572 assignment expressions (#711)
236
237 - added support for PEP 570 positional-only arguments (#943)
238
239 - added support for async generators (#593)
240
241 - added support for pre-splitting collections by putting an explicit trailing comma
242   inside (#826)
243
244 - added `black -c` as a way to format code passed from the command line (#761)
245
246 - --safe now works with Python 2 code (#840)
247
248 - fixed grammar selection for Python 2-specific code (#765)
249
250 - fixed feature detection for trailing commas in function definitions and call sites
251   (#763)
252
253 - `# fmt: off`/`# fmt: on` comment pairs placed multiple times within the same block of
254   code now behave correctly (#1005)
255
256 - _Black_ no longer crashes on Windows machines with more than 61 cores (#838)
257
258 - _Black_ no longer crashes on standalone comments prepended with a backslash (#767)
259
260 - _Black_ no longer crashes on `from` ... `import` blocks with comments (#829)
261
262 - _Black_ no longer crashes on Python 3.7 on some platform configurations (#494)
263
264 - _Black_ no longer fails on comments in from-imports (#671)
265
266 - _Black_ no longer fails when the file starts with a backslash (#922)
267
268 - _Black_ no longer merges regular comments with type comments (#1027)
269
270 - _Black_ no longer splits long lines that contain type comments (#997)
271
272 - removed unnecessary parentheses around `yield` expressions (#834)
273
274 - added parentheses around long tuples in unpacking assignments (#832)
275
276 - added parentheses around complex powers when they are prefixed by a unary operator
277   (#646)
278
279 - fixed bug that led _Black_ format some code with a line length target of 1 (#762)
280
281 - _Black_ no longer introduces quotes in f-string subexpressions on string boundaries
282   (#863)
283
284 - if _Black_ puts parenthesis around a single expression, it moves comments to the
285   wrapped expression instead of after the brackets (#872)
286
287 - `blackd` now returns the version of _Black_ in the response headers (#1013)
288
289 - `blackd` can now output the diff of formats on source code when the `X-Diff` header is
290   provided (#969)
291
292 ## 19.3b0
293
294 - new option `--target-version` to control which Python versions _Black_-formatted code
295   should target (#618)
296
297 - deprecated `--py36` (use `--target-version=py36` instead) (#724)
298
299 - _Black_ no longer normalizes numeric literals to include `_` separators (#696)
300
301 - long `del` statements are now split into multiple lines (#698)
302
303 - type comments are no longer mangled in function signatures
304
305 - improved performance of formatting deeply nested data structures (#509)
306
307 - _Black_ now properly formats multiple files in parallel on Windows (#632)
308
309 - _Black_ now creates cache files atomically which allows it to be used in parallel
310   pipelines (like `xargs -P8`) (#673)
311
312 - _Black_ now correctly indents comments in files that were previously formatted with
313   tabs (#262)
314
315 - `blackd` now supports CORS (#622)
316
317 ## 18.9b0
318
319 - numeric literals are now formatted by _Black_ (#452, #461, #464, #469):
320
321   - numeric literals are normalized to include `_` separators on Python 3.6+ code
322
323   - added `--skip-numeric-underscore-normalization` to disable the above behavior and
324     leave numeric underscores as they were in the input
325
326   - code with `_` in numeric literals is recognized as Python 3.6+
327
328   - most letters in numeric literals are lowercased (e.g., in `1e10`, `0x01`)
329
330   - hexadecimal digits are always uppercased (e.g. `0xBADC0DE`)
331
332 - added `blackd`, see
333   [its documentation](https://github.com/psf/black/blob/18.9b0/README.md#blackd) for
334   more info (#349)
335
336 - adjacent string literals are now correctly split into multiple lines (#463)
337
338 - trailing comma is now added to single imports that don't fit on a line (#250)
339
340 - cache is now populated when `--check` is successful for a file which speeds up
341   consecutive checks of properly formatted unmodified files (#448)
342
343 - whitespace at the beginning of the file is now removed (#399)
344
345 - fixed mangling [pweave](http://mpastell.com/pweave/) and
346   [Spyder IDE](https://www.spyder-ide.org/) special comments (#532)
347
348 - fixed unstable formatting when unpacking big tuples (#267)
349
350 - fixed parsing of `__future__` imports with renames (#389)
351
352 - fixed scope of `# fmt: off` when directly preceding `yield` and other nodes (#385)
353
354 - fixed formatting of lambda expressions with default arguments (#468)
355
356 - fixed `async for` statements: _Black_ no longer breaks them into separate lines (#372)
357
358 - note: the Vim plugin stopped registering `,=` as a default chord as it turned out to
359   be a bad idea (#415)
360
361 ## 18.6b4
362
363 - hotfix: don't freeze when multiple comments directly precede `# fmt: off` (#371)
364
365 ## 18.6b3
366
367 - typing stub files (`.pyi`) now have blank lines added after constants (#340)
368
369 - `# fmt: off` and `# fmt: on` are now much more dependable:
370
371   - they now work also within bracket pairs (#329)
372
373   - they now correctly work across function/class boundaries (#335)
374
375   - they now work when an indentation block starts with empty lines or misaligned
376     comments (#334)
377
378 - made Click not fail on invalid environments; note that Click is right but the
379   likelihood we'll need to access non-ASCII file paths when dealing with Python source
380   code is low (#277)
381
382 - fixed improper formatting of f-strings with quotes inside interpolated expressions
383   (#322)
384
385 - fixed unnecessary slowdown when long list literals where found in a file
386
387 - fixed unnecessary slowdown on AST nodes with very many siblings
388
389 - fixed cannibalizing backslashes during string normalization
390
391 - fixed a crash due to symbolic links pointing outside of the project directory (#338)
392
393 ## 18.6b2
394
395 - added `--config` (#65)
396
397 - added `-h` equivalent to `--help` (#316)
398
399 - fixed improper unmodified file caching when `-S` was used
400
401 - fixed extra space in string unpacking (#305)
402
403 - fixed formatting of empty triple quoted strings (#313)
404
405 - fixed unnecessary slowdown in comment placement calculation on lines without comments
406
407 ## 18.6b1
408
409 - hotfix: don't output human-facing information on stdout (#299)
410
411 - hotfix: don't output cake emoji on non-zero return code (#300)
412
413 ## 18.6b0
414
415 - added `--include` and `--exclude` (#270)
416
417 - added `--skip-string-normalization` (#118)
418
419 - added `--verbose` (#283)
420
421 - the header output in `--diff` now actually conforms to the unified diff spec
422
423 - fixed long trivial assignments being wrapped in unnecessary parentheses (#273)
424
425 - fixed unnecessary parentheses when a line contained multiline strings (#232)
426
427 - fixed stdin handling not working correctly if an old version of Click was used (#276)
428
429 - _Black_ now preserves line endings when formatting a file in place (#258)
430
431 ## 18.5b1
432
433 - added `--pyi` (#249)
434
435 - added `--py36` (#249)
436
437 - Python grammar pickle caches are stored with the formatting caches, making _Black_
438   work in environments where site-packages is not user-writable (#192)
439
440 - _Black_ now enforces a PEP 257 empty line after a class-level docstring (and/or
441   fields) and the first method
442
443 - fixed invalid code produced when standalone comments were present in a trailer that
444   was omitted from line splitting on a large expression (#237)
445
446 - fixed optional parentheses being removed within `# fmt: off` sections (#224)
447
448 - fixed invalid code produced when stars in very long imports were incorrectly wrapped
449   in optional parentheses (#234)
450
451 - fixed unstable formatting when inline comments were moved around in a trailer that was
452   omitted from line splitting on a large expression (#238)
453
454 - fixed extra empty line between a class declaration and the first method if no class
455   docstring or fields are present (#219)
456
457 - fixed extra empty line between a function signature and an inner function or inner
458   class (#196)
459
460 ## 18.5b0
461
462 - call chains are now formatted according to the
463   [fluent interfaces](https://en.wikipedia.org/wiki/Fluent_interface) style (#67)
464
465 - data structure literals (tuples, lists, dictionaries, and sets) are now also always
466   exploded like imports when they don't fit in a single line (#152)
467
468 - slices are now formatted according to PEP 8 (#178)
469
470 - parentheses are now also managed automatically on the right-hand side of assignments
471   and return statements (#140)
472
473 - math operators now use their respective priorities for delimiting multiline
474   expressions (#148)
475
476 - optional parentheses are now omitted on expressions that start or end with a bracket
477   and only contain a single operator (#177)
478
479 - empty parentheses in a class definition are now removed (#145, #180)
480
481 - string prefixes are now standardized to lowercase and `u` is removed on Python 3.6+
482   only code and Python 2.7+ code with the `unicode_literals` future import (#188, #198,
483   #199)
484
485 - typing stub files (`.pyi`) are now formatted in a style that is consistent with PEP
486   484 (#207, #210)
487
488 - progress when reformatting many files is now reported incrementally
489
490 - fixed trailers (content with brackets) being unnecessarily exploded into their own
491   lines after a dedented closing bracket (#119)
492
493 - fixed an invalid trailing comma sometimes left in imports (#185)
494
495 - fixed non-deterministic formatting when multiple pairs of removable parentheses were
496   used (#183)
497
498 - fixed multiline strings being unnecessarily wrapped in optional parentheses in long
499   assignments (#215)
500
501 - fixed not splitting long from-imports with only a single name
502
503 - fixed Python 3.6+ file discovery by also looking at function calls with unpacking.
504   This fixed non-deterministic formatting if trailing commas where used both in function
505   signatures with stars and function calls with stars but the former would be
506   reformatted to a single line.
507
508 - fixed crash on dealing with optional parentheses (#193)
509
510 - fixed "is", "is not", "in", and "not in" not considered operators for splitting
511   purposes
512
513 - fixed crash when dead symlinks where encountered
514
515 ## 18.4a4
516
517 - don't populate the cache on `--check` (#175)
518
519 ## 18.4a3
520
521 - added a "cache"; files already reformatted that haven't changed on disk won't be
522   reformatted again (#109)
523
524 - `--check` and `--diff` are no longer mutually exclusive (#149)
525
526 - generalized star expression handling, including double stars; this fixes
527   multiplication making expressions "unsafe" for trailing commas (#132)
528
529 - _Black_ no longer enforces putting empty lines behind control flow statements (#90)
530
531 - _Black_ now splits imports like "Mode 3 + trailing comma" of isort (#127)
532
533 - fixed comment indentation when a standalone comment closes a block (#16, #32)
534
535 - fixed standalone comments receiving extra empty lines if immediately preceding a
536   class, def, or decorator (#56, #154)
537
538 - fixed `--diff` not showing entire path (#130)
539
540 - fixed parsing of complex expressions after star and double stars in function calls
541   (#2)
542
543 - fixed invalid splitting on comma in lambda arguments (#133)
544
545 - fixed missing splits of ternary expressions (#141)
546
547 ## 18.4a2
548
549 - fixed parsing of unaligned standalone comments (#99, #112)
550
551 - fixed placement of dictionary unpacking inside dictionary literals (#111)
552
553 - Vim plugin now works on Windows, too
554
555 - fixed unstable formatting when encountering unnecessarily escaped quotes in a string
556   (#120)
557
558 ## 18.4a1
559
560 - added `--quiet` (#78)
561
562 - added automatic parentheses management (#4)
563
564 - added [pre-commit](https://pre-commit.com) integration (#103, #104)
565
566 - fixed reporting on `--check` with multiple files (#101, #102)
567
568 - fixed removing backslash escapes from raw strings (#100, #105)
569
570 ## 18.4a0
571
572 - added `--diff` (#87)
573
574 - add line breaks before all delimiters, except in cases like commas, to better comply
575   with PEP 8 (#73)
576
577 - standardize string literals to use double quotes (almost) everywhere (#75)
578
579 - fixed handling of standalone comments within nested bracketed expressions; _Black_
580   will no longer produce super long lines or put all standalone comments at the end of
581   the expression (#22)
582
583 - fixed 18.3a4 regression: don't crash and burn on empty lines with trailing whitespace
584   (#80)
585
586 - fixed 18.3a4 regression: `# yapf: disable` usage as trailing comment would cause
587   _Black_ to not emit the rest of the file (#95)
588
589 - when CTRL+C is pressed while formatting many files, _Black_ no longer freaks out with
590   a flurry of asyncio-related exceptions
591
592 - only allow up to two empty lines on module level and only single empty lines within
593   functions (#74)
594
595 ## 18.3a4
596
597 - `# fmt: off` and `# fmt: on` are implemented (#5)
598
599 - automatic detection of deprecated Python 2 forms of print statements and exec
600   statements in the formatted file (#49)
601
602 - use proper spaces for complex expressions in default values of typed function
603   arguments (#60)
604
605 - only return exit code 1 when --check is used (#50)
606
607 - don't remove single trailing commas from square bracket indexing (#59)
608
609 - don't omit whitespace if the previous factor leaf wasn't a math operator (#55)
610
611 - omit extra space in kwarg unpacking if it's the first argument (#46)
612
613 - omit extra space in
614   [Sphinx auto-attribute comments](http://www.sphinx-doc.org/en/stable/ext/autodoc.html#directive-autoattribute)
615   (#68)
616
617 ## 18.3a3
618
619 - don't remove single empty lines outside of bracketed expressions (#19)
620
621 - added ability to pipe formatting from stdin to stdin (#25)
622
623 - restored ability to format code with legacy usage of `async` as a name (#20, #42)
624
625 - even better handling of numpy-style array indexing (#33, again)
626
627 ## 18.3a2
628
629 - changed positioning of binary operators to occur at beginning of lines instead of at
630   the end, following
631   [a recent change to PEP 8](https://github.com/python/peps/commit/c59c4376ad233a62ca4b3a6060c81368bd21e85b)
632   (#21)
633
634 - ignore empty bracket pairs while splitting. This avoids very weirdly looking
635   formattings (#34, #35)
636
637 - remove a trailing comma if there is a single argument to a call
638
639 - if top level functions were separated by a comment, don't put four empty lines after
640   the upper function
641
642 - fixed unstable formatting of newlines with imports
643
644 - fixed unintentional folding of post scriptum standalone comments into last statement
645   if it was a simple statement (#18, #28)
646
647 - fixed missing space in numpy-style array indexing (#33)
648
649 - fixed spurious space after star-based unary expressions (#31)
650
651 ## 18.3a1
652
653 - added `--check`
654
655 - only put trailing commas in function signatures and calls if it's safe to do so. If
656   the file is Python 3.6+ it's always safe, otherwise only safe if there are no `*args`
657   or `**kwargs` used in the signature or call. (#8)
658
659 - fixed invalid spacing of dots in relative imports (#6, #13)
660
661 - fixed invalid splitting after comma on unpacked variables in for-loops (#23)
662
663 - fixed spurious space in parenthesized set expressions (#7)
664
665 - fixed spurious space after opening parentheses and in default arguments (#14, #17)
666
667 - fixed spurious space after unary operators when the operand was a complex expression
668   (#15)
669
670 ## 18.3a0
671
672 - first published version, Happy 🍰 Day 2018!
673
674 - alpha quality
675
676 - date-versioned (see: <https://calver.org/>)