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

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