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

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