]> 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:

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