CHANGELOG.md 24.5 KB
Newer Older
1
2
# Changelog

Hardy Jones's avatar
Hardy Jones committed
3
4
5
6
## Unreleased

### Additions

Hardy Jones's avatar
Hardy Jones committed
7
8
### Changes

Hardy Jones's avatar
Hardy Jones committed
9
10
### Deletions

Hardy Jones's avatar
Hardy Jones committed
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
## 7.0.0

This is the first release that supports the 0.14.0 compiler and its syntactical changes.

Overall, not much has changed.
The new syntactic constructs are kind signatures and roles.
Kind signatures are formatted like type signatures.
Roles are are all on a single line for now.

This release will likely still work for most 0.13.x code.
Though there's no explicit support for the 0.13.x series at the moment.
The breaking changes are for some edge cases that it doesn't seem like many would run into,
but they're breaking for a reason.

### Additions

### Changes

* [Support 0.14.0](https://gitlab.com/joneshf/purty/-/issues/234)
* [Use POSIX-compatible flags in bash scripts](https://gitlab.com/joneshf/purty/-/issues/235)

### Deletions

Hardy Jones's avatar
Hardy Jones committed
34
35
36
37
38
39
40
41
42
43
44
## 6.3.1

This is a small release with all internal-facing changes.

This is mostly updating dependencies and fixing some CI issues.
There should be no behavioral change from the previous version.

### Additions

### Changes

Hardy Jones's avatar
Hardy Jones committed
45
* [Fix AppVeyor image again](https://gitlab.com/joneshf/purty/-/issues/228)
Hardy Jones's avatar
Hardy Jones committed
46
* [Change formatting goals/non-goals to have links](https://gitlab.com/joneshf/purty/-/issues/227)
Hardy Jones's avatar
Hardy Jones committed
47
* [Update dependencies](https://gitlab.com/joneshf/purty/-/issues/218)
Hardy Jones's avatar
Hardy Jones committed
48
* [Update even more dependencies](https://gitlab.com/joneshf/purty/-/issues/229)
Hardy Jones's avatar
Hardy Jones committed
49

Hardy Jones's avatar
Hardy Jones committed
50
51
52
53
54
55
56
57
58
59
### Deletions

## 6.3.0

This is a small release to address the formatting of nested conditionals.

### Additions

### Changes

60
* [Fix Chained if statments indent every time](https://gitlab.com/joneshf/purty/-/issues/207)
Hardy Jones's avatar
Hardy Jones committed
61
* [Fix AppVeyor image](https://gitlab.com/joneshf/purty/-/issues/219)
62

Hardy Jones's avatar
Hardy Jones committed
63
64
### Deletions

Hardy Jones's avatar
Hardy Jones committed
65
66
67
68
69
70
71
72
73
74
75
76
## 6.2.1

This is a small release with internal project changes.

### Additions

### Changes

* [Use `ormolu` binary](https://gitlab.com/joneshf/purty/-/issues/216)

### Deletions

Hardy Jones's avatar
Hardy Jones committed
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
## 6.2.0

This is a bug fix release to address a long standing bug.

Trailing comments in a module have been formatted incorrectly since 4.0.0.
It was largely tangled up in all trailing comments being formatted incorrectly since 4.0.0.
We took some time to dig in further and found a way to address at least this one part.

### Additions

### Changes

* [Fix trailing module comments](https://gitlab.com/joneshf/purty/-/issues/143)

### Deletions

Hardy Jones's avatar
Hardy Jones committed
93
94
95
96
97
98
99
100
101
## 6.1.3

Another small release.
More internal project changes.

### Additions

### Changes

Hardy Jones's avatar
Hardy Jones committed
102
* [Fix `prepack.sh` script](https://gitlab.com/joneshf/purty/issues/191)
Hardy Jones's avatar
Hardy Jones committed
103
* [Split build into packages](https://gitlab.com/joneshf/purty/issues/192)
Hardy Jones's avatar
Hardy Jones committed
104

Hardy Jones's avatar
Hardy Jones committed
105
106
107
108
### Deletions

## 6.1.2

Hardy Jones's avatar
Hardy Jones committed
109
110
111
Another small release.
This should all be internal project changes.

Hardy Jones's avatar
Hardy Jones committed
112
113
114
115
### Additions

### Changes

Hardy Jones's avatar
Hardy Jones committed
116
117
118
* [Put version under `bazel`s control](https://gitlab.com/joneshf/purty/issues/184)
* [Move more tests to bazel](https://gitlab.com/joneshf/purty/issues/186)
* [Remove platform handling in `make`](https://gitlab.com/joneshf/purty/issues/187)
119
* [Fix `make package.json` rule](https://gitlab.com/joneshf/purty/issues/188)
120

Hardy Jones's avatar
Hardy Jones committed
121
122
### Deletions

Hardy Jones's avatar
Hardy Jones committed
123
124
125
126
127
128
129
130
131
132
133
134
135
## 6.1.1

Another small release.
This should all be internal project changes related to using `bazel` as the bulk of the build system.

### Additions

### Changes

* [Use bazel for majority of the build system](https://gitlab.com/joneshf/purty/issues/164)

### Deletions

Hardy Jones's avatar
Hardy Jones committed
136
137
138
139
140
141
142
143
144
145
146
147
## 6.1.0

This is a small release to fix an oddity of formatting.

### Additions

### Changes

* [Remove erroneous whitespace in empty open row](https://gitlab.com/joneshf/purty/issues/181)

### Deletions

Hardy Jones's avatar
Hardy Jones committed
148
149
150
151
152
153
154
155
156
157
158
159
160
161
## 6.0.2

This is a bugfix due to recent changes.
We were accidentally dropping code coverage information whenever `purty` was run.
That should be taken care of, now.

### Additions

### Changes

* [Stop dumping `purty.tix` files in the cwd](https://gitlab.com/joneshf/purty/issues/178)

### Deletions

Hardy Jones's avatar
Hardy Jones committed
162
163
164
165
166
167
168
169
170
171
## 6.0.1

This release is all internal project changes.

### Additions

### Changes

* [Start moving the build to bazel](https://gitlab.com/joneshf/purty/issues/164)
* [Move tests to bazel](https://gitlab.com/joneshf/purty/issues/164)
Hardy Jones's avatar
Hardy Jones committed
172
* [Fix Bintray deploy on AppVeyor](https://gitlab.com/joneshf/purty/issues/177)
Hardy Jones's avatar
Hardy Jones committed
173
174
175

### Deletions

Hardy Jones's avatar
Hardy Jones committed
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
## 6.0.0

This release smooths out some rough edges.

First, we added a `version` mode so you can know which version of `purty` you're using.
It's pretty impressive tha we went this long without it, but it wasn't intentional.
In any case, by default it outputs a verbose, human-readable version information.
There is also a `--numeric` flag if you need a more machine-friendly version.

Next, we added a `validate` mode so you can check whether a file is formatted correctly.
This mode is useful for using `purty` as a lint step.
We hope to expand this mode with more useful output (like a diff of what's unformatted).

Finally, we added a `format` mode so you can format a file or directory.
This works exactly like using `purty` without the `format` mode.
I.e. `purty foo` is exactly the same as `purty format foo`.

Because these two new modes–`validate` and `version`–act as commands on the `purty` binary, it's entirely possible that they might shadow existing files or directories that would have been formatted before.
E.g. if you had a directory named `version` with PureScript files in it, it would no longer be formatted when you said `purty version --write`.
To address this breaking change, we added a `format` mode to bring back the ability to format any file or directory shadowed by a mode the `purty` binary uses.
This even works if there's a file or directory named `format` you'd like to format: `purty format format`.

### Additions

200
* [Add a `version` mode](https://gitlab.com/joneshf/purty/issues/169)
Hardy Jones's avatar
Hardy Jones committed
201
202
* [Add a `validate` mode](https://gitlab.com/joneshf/purty/issues/17)

Hardy Jones's avatar
Hardy Jones committed
203
204
### Changes

Hardy Jones's avatar
Hardy Jones committed
205
* [Install `hlint` binary](https://gitlab.com/joneshf/purty/issues/173)
Hardy Jones's avatar
Hardy Jones committed
206
207
208

### Deletions

Hardy Jones's avatar
Hardy Jones committed
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
## 5.0.1

This is a smaller release.
All of the changes here should be internal to the project.

### Additions

### Changes

* [Switch from `stylish-haskell` to `ormolu`](https://gitlab.com/joneshf/purty/issues/157)
* [Update `hlint`](https://gitlab.com/joneshf/purty/issues/163)
* [Drop `path-io` in exchange for `pathwalk`](https://gitlab.com/joneshf/purty/issues/165)
* [Move language extensions to the files](https://gitlab.com/joneshf/purty/issues/166)
* [Clean up argument handling](https://gitlab.com/joneshf/purty/issues/170)
* [Validate with `ormolu`](https://gitlab.com/joneshf/purty/issues/171)

### Deletions

Hardy Jones's avatar
Hardy Jones committed
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
## 5.0.0

This is a big one! There are three important differences from previous verions of `purty:

1. Configuration files are no longer supported.
    The configuration never panned out how it was supposed to.
    It was never meant to be for altering formatting, but for configuring the CLI.
    It was also meant to be an example of using Dhall.

1. Binaries are statically linked.
    The binaries we were creating up until now have been dynamically linked.
    We were privvy to the same issues that the PureScript compiler runs into from time to time (runtime libraries not existing).
    We decide to link binaries statically, so we can mitigate runtime issues.
    We also can do more interesting things (like creating minimal Docker images) with statically linked binaries.

1. Directories are supported.
    If you've used `purty` on any non-trivial codebase, you've probably run into an issue with trying to format multiple files.
    Up until now, you've had to script your own way to run all of these files.
    Depending on how you run `purty`, this could be a slow and tedious process.
    Now we support formatting all `.purs` recursively in a directory.
    This should make it easier to use `purty` in larger projects.

There were some other minor changes for dependencies in this release as well.

### Additions

* [Support directories](https://gitlab.com/joneshf/purty/issues/11)

### Changes

* [Update `purescript` to 0.13.6](https://gitlab.com/joneshf/purty/issues/153)
* [Depend on exact `purescript` modules](https://gitlab.com/joneshf/purty/issues/154)
* [Use minimal PureScript parser package](https://gitlab.com/joneshf/purty/issues/156)
* [Update `rio`](https://gitlab.com/joneshf/purty/issues/158)
* [Compile static binaries](https://gitlab.com/joneshf/purty/issues/80)
Hardy Jones's avatar
Hardy Jones committed
262
263
* [Fix Bintray deploy on TravisCI](https://gitlab.com/joneshf/purty/issues/161)
* [Fix uploaded filename for Bintray deployment](https://gitlab.com/joneshf/purty/issues/162)
Hardy Jones's avatar
Hardy Jones committed
264
265
266
267
268

### Deletions

* [Drop configuration](https://gitlab.com/joneshf/purty/issues/159)

Hardy Jones's avatar
Hardy Jones committed
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
## 4.6.0

There's been a process change.
We're not accepting external merge requests for the time being.

This decision has been a long time coming, and it's almost entirely an internally motivated change.
This long and short is that I'm burned out from open source work, and would like to try a different approach to developing this project.
There's more details in the [issue](https://gitlab.com/joneshf/purty/issues/151).

In other news, we've got a couple of small fixes to formatting.

### Additions

### Changes

* [Fix row kind formatting](https://gitlab.com/joneshf/purty/issues/139)
* [Fix indentation in record values](https://gitlab.com/joneshf/purty/issues/142)
* [Disable external merge requests for now](https://gitlab.com/joneshf/purty/issues/151)

### Deletions

Hardy Jones's avatar
Hardy Jones committed
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
## 4.5.2

We've started working on the emacs integration.
So far, there's a elisp file that allows formatting on save.
In the coming releases, we hope to make installing and using it easier.

We're not officially supporting the emacs integration, but we're starting work on it!

### Additions

* [Add `purty-format` Emacs minor-mode](https://gitlab.com/joneshf/purty/merge_requests/124)
* [Run CI for !124](https://gitlab.com/joneshf/purty/merge_requests/132)

### Changes

### Deletions

Hardy Jones's avatar
Hardy Jones committed
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
## 4.5.1

Mostly infrastructure changes.
There should be no breaking changes or formatting changes in this version

### Additions

* [Create a Makefile](https://gitlab.com/joneshf/purty/issues/90)

### Changes

* [Update copy in the README](https://gitlab.com/joneshf/purty/merge_requests/129)

### Deletions

Hardy Jones's avatar
Hardy Jones committed
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
## 4.5.0

A couple of formatting changes and a bit of documentation.
The formatting changes should make the output a bit more compatible with compilers older than 0.13.0.

### Additions

* [Document the factors behind formatting](https://gitlab.com/joneshf/purty/issues/113)

### Changes

* [Fix conditional formatting](https://gitlab.com/joneshf/purty/issues/136)
* [Fix instance head formating](https://gitlab.com/joneshf/purty/merge_requests/126)

### Deletions

Hardy Jones's avatar
Hardy Jones committed
338
339
340
341
342
343
344
345
346
347
348
349
## 4.4.2

A bug fix for the formatting of unicode and escape characters.

### Additions

### Changes

* [Fix emoji and escaped characters](https://gitlab.com/joneshf/purty/issues/118)

### Deletions

Hardy Jones's avatar
Hardy Jones committed
350
351
352
353
354
355
356
357
358
359
360
361
## 4.4.1

A bug fix for the formatting of multi-line renamed imports.

### Additions

### Changes

* [Fix formatting of multiline renamed imports](https://gitlab.com/joneshf/purty/issues/131)

### Deletions

Hardy Jones's avatar
Hardy Jones committed
362
363
364
365
366
367
368
369
370
371
372
373
## 4.4.0

A fix to the formatting of type annotations.

### Additions

### Changes

* [Fix spaces in type annotations](https://gitlab.com/joneshf/purty/issues/128)

### Deletions

Hardy Jones's avatar
Hardy Jones committed
374
375
376
377
378
379
380
381
382
383
384
385
386
## 4.3.0

A fix to the formatting of parenthesized expressions.

### Additions

### Changes

* [Use `install-stack.sh` in GitLab CI](https://gitlab.com/joneshf/purty/merge_requests/115)
* [Indent multiline parenthesized expressions properly](https://gitlab.com/joneshf/purty/issues/125)

### Deletions

Hardy Jones's avatar
Hardy Jones committed
387
388
389
390
391
392
393
394
395
396
397
398
399
400
## 4.2.0

Small change to display the file name when reporting errors.

### Additions

* [Display file name in errors](https://gitlab.com/joneshf/purty/issues/121)

### Changes

* [Lock down version of `stack` for GitLab CI](https://gitlab.com/joneshf/purty/merge_requests/113)

### Deletions

Hardy Jones's avatar
Hardy Jones committed
401
402
403
404
405
406
407
408
409
410
411
412
## 4.1.1

Quick bug fix to get STDIN working over the npm interface.

### Additions

### Changes

* [Fix STDIN for npm package](https://gitlab.com/joneshf/purty/issues/115)

### Deletions

Hardy Jones's avatar
Hardy Jones committed
413
414
## 4.1.0

415
416
417
418
419
420
421
422
Some cleanup to formatting.
Thanks for all the feedback from the last big release.

We also add support for reading over STDIN.
If the binary is invoked with `-`, it will read data over STDIN instead of expecting a file.
E.g. `purty -` will read input over STDIN.
Hopefully, this is useful for other tools and integrations to use.

Hardy Jones's avatar
Hardy Jones committed
423
424
425
426
427
428
429
430
431
432
433
434
435
436
### Additions

* [Support STDIN](https://gitlab.com/joneshf/purty/issues/43)

### Changes

* [Fix record indentation](https://gitlab.com/joneshf/purty/issues/104)
* [Cleanup the program runners](https://gitlab.com/joneshf/purty/merge_requests/102)
* [Preserve span in application of expressions](https://gitlab.com/joneshf/purty/issues/106)
* [Insert spaces around all arrays and records](https://gitlab.com/joneshf/purty/issues/109)
* [Revert changes to conditional formatting](https://gitlab.com/joneshf/purty/issues/108)

### Deletions

Hardy Jones's avatar
Hardy Jones committed
437
438
439
440
441
442
443
444
445
446
447
448
## 4.0.1

A quick bug fix for formatting string literals.

### Additions

### Changes

* [Fix newlines in string literals](https://gitlab.com/joneshf/purty/issues/101)

### Deletions

Hardy Jones's avatar
Hardy Jones committed
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
## 4.0.0

First release in a while. We've moved over to interactive formatting!

We're now based off of the 0.13.x version of the `purescript` package.
That means we've got a parser that gives us as close to source code as possible.
Using the newer version, we can format a module much more carefully.

Interactive formatting is something that `elm-format` does.
It's not clear if there's an official name for it.
It could also be called VonderHaar-style formatting (after the author of `elm-format`).
The way it works is by taking hints from the structure of the file to direct the formatting.
If you have some syntactic construct that could be put on one line,
and there are no line breaks in the construct, `purty` will format it on one line.
If you have some syntactic construct that could be put on one line,
and there is at least one line break in the construct,
`purty` will format the entire construct as multiple lines.
The formatting does not reach beneath the construct but may reach above it.

For example:
```PureScript
foo = [[1, 2, 3], [4,
  5, 6, 7]]
```

would be formatted as:
```PureScript
foo =
  [ [1, 2, 3]
  , [ 4
    , 5
    , 6
    , 7
    ]
  ]
```

The array `[1, 2, 3]` was formatted on a single line,
since it was initially all on one line.
The array `[4, 5, 6, 7]` was formatted over multiple lines,
as it had at least one line break.
Finally, the overall array `[[1, 2, 3], [4, 5, 6, 7]]` was formatted over multiple lines,
as it also had at least one line break.

The long and short of the changes here are that the control of formatting is given more to the author of the code.
This should still keep with the idea of formatting that works nicely,
but it should also give a bit of freedom to people to structure the code a little bit differently if need be.

Bear in mind, almost all of the code is re-written so it's likely to contain a new set of bugs.
Please feel free to report any bugs you find.

### Additions

* [Support interactive formatting](https://gitlab.com/joneshf/purty/issues/39)

### Changes

* [Update stack to 1.9.3](https://gitlab.com/joneshf/purty/merge_requests/93)
* [Remove duplicate comments in most expressions](https://gitlab.com/joneshf/purty/issues/61)
* [Format multi-line guards better](https://gitlab.com/joneshf/purty/issues/78)
* [Retain comments at end of file](https://gitlab.com/joneshf/purty/issues/94)
* [Retail lines over infix values](https://gitlab.com/joneshf/purty/issues/95)
* [Retain comments in data declarations](https://gitlab.com/joneshf/purty/issues/96)
* [Fix file path handling](https://gitlab.com/joneshf/purty/issues/98)
* [Fix derived instance formatting](https://gitlab.com/joneshf/purty/issues/99)
* [Add some more tests](https://gitlab.com/joneshf/purty/merge_requests/94)

### Deletions

* [Drop support for dynamic/static formatting](https://gitlab.com/joneshf/purty/issues/39)

Hardy Jones's avatar
Hardy Jones committed
520
521
522
523
524
525
526
527
528
529
530
531
## 3.0.7

Re-publishing to npm. There was a problem with the previous version.

There shouldn't be any changes with `purty` itself.

### Additions

### Changes

### Deletions

Hardy Jones's avatar
Hardy Jones committed
532
533
534
535
536
537
538
539
540
541
542
543
544
## 3.0.6

Internal code cleanup. There shouldn't be any changes with `purty` itself.

### Additions

### Changes

* [Prefer `Member` over `Members`](https://gitlab.com/joneshf/purty/merge_requests/86)
* [Cleanup golden test suite](https://gitlab.com/joneshf/purty/merge_requests/87)

### Deletions

Hardy Jones's avatar
Hardy Jones committed
545
546
547
548
549
550
551
552
553
554
555
556
## 3.0.5

Patch release with a bug fix.

### Additions

### Changes

* [ado might not have statements](https://gitlab.com/joneshf/purty/issues/83)

### Deletions

Hardy Jones's avatar
Hardy Jones committed
557
558
559
560
561
562
563
564
565
566
567
568
569
## 3.0.4

Patch release with bug fixes.

### Additions

### Changes

* [Functional dependency indexes are wrong](https://gitlab.com/joneshf/purty/issues/84)
* [Allow building just the dependencies only in Travis](https://gitlab.com/joneshf/purty/merge_requests/82)

### Deletions

Hardy Jones's avatar
Hardy Jones committed
570
571
572
573
574
575
576
577
578
579
580
581
## 3.0.3

Patch release with CI changes.

### Additions

### Changes

* [Publish Bintray artifact immediately from AppVeyor](https://gitlab.com/joneshf/purty/issues/79)

### Deletions

Hardy Jones's avatar
Hardy Jones committed
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
## 3.0.2

Squashing another boug from 3.0.0 changes.

This one was record puns not being formatted correctly.
There were also some infrastructure changes.

### Additions

### Changes

* [Automate more stuff in CI](https://gitlab.com/joneshf/purty/issues/65)
* [Re-add support for record literal puns in expressions](https://gitlab.com/joneshf/purty/issues/72)
* [Update release documentation](https://gitlab.com/joneshf/purty/merge_requests/76)

### Deletions

Hardy Jones's avatar
Hardy Jones committed
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
## 3.0.1

Those huge changes from 3.0.0 contained a few bugs :).

This is a quick patch release to address them. If there are more, please report them!

### Additions

### Changes

* [Add missing npm file](https://gitlab.com/joneshf/purty/issues/66)
* [Fix printing of functions in parentheses](https://gitlab.com/joneshf/purty/issues/67)
* [Support bound value declarations](https://gitlab.com/joneshf/purty/issues/68)
* [Print top level comments](https://gitlab.com/joneshf/purty/issues/69)

### Deletions

Hardy Jones's avatar
Hardy Jones committed
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
## 3.0.0

Huge changes to the internals. We've got our own AST! Now, we can format things a bit purty-er.

It's already made some things easier and removed some bugs with the formatting. It should make other formatting easier and also will make implementing [interactive formatting](https://gitlab.com/joneshf/purty/issues/39) much easier.

### Additions

### Changes

* [Print nested lambdas with a single lambda expression](https://gitlab.com/joneshf/purty/issues/31)
* [Make a pretty print AST](https://gitlab.com/joneshf/purty/issues/35)
* [Remove extra newlines in let bindings](https://gitlab.com/joneshf/purty/issues/49)
* Fix [Trailing spaces in output](https://gitlab.com/joneshf/purty/issues/54)

### Deletions

Hardy Jones's avatar
Hardy Jones committed
633
634
635
636
637
638
639
640
641
642
643
644
645
646
## 2.0.1

Internal changes to the code base. Feature-wise, everything should be the same.

### Additions

### Changes

* [Cleanup most of the logic](https://gitlab.com/joneshf/purty/merge_requests/64)
* [Switch over to extensible effects](https://gitlab.com/joneshf/purty/merge_requests/65)
* [Clean up effects more](https://gitlab.com/joneshf/purty/merge_requests/66)

### Deletions

Hardy Jones's avatar
Hardy Jones committed
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
## 2.0.0

Lots more bug fixes.

Thanks to everyone who reported them. Keep 'em coming!

### Additions

### Changes

* Fix [Quoted key names unquoted incorrectly](https://gitlab.com/joneshf/purty/issues/55)
* Fix [List pattern matching in case statements breaks](https://gitlab.com/joneshf/purty/issues/56)
* Fix [Syntax error with `if` expression in `do`](https://gitlab.com/joneshf/purty/issues/58)
* Fix [Infix expressions can lose their back-ticks](https://gitlab.com/joneshf/purty/issues/60)

### Deletions

Hardy Jones's avatar
Hardy Jones committed
664
665
666
667
668
669
670
671
672
673
674
675
676
677
## 1.0.1

Minor bug fix.

A fix for boolean literals.

### Additions

### Changes

* [fix printing of booleans](https://gitlab.com/joneshf/purty/issues/53)

### Deletions

Hardy Jones's avatar
Hardy Jones committed
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
## 1.0.0

Official release

It's finally here! The 1.0.0 release!

Let's talk about what 1.0.0 **doesn't** mean: `purty` is now "done," `purty` has now become "stable," `purty` is now "production ready," `purty` generates "nice looking code."
* `purty` will probably never be "done." A project like this is almost never "done." There will always be some improvement to make, a bug to fix, or a syntax to update. Just as languages continue to evolve, so do do styles of those languages.
* `purty` will not be stable for quite some time. There are many new features in the future and most of these will alter the way modules are formatted.
* `purty` has been "production ready" since about the 0.3.0 or 0.4.0 release. There are still bugs, there are still improvements to make for the formatting. But, running `purty` should not "eat your code", change the semantics of a module, or break in an otherwise bad way.
* Generating "nice looking code" is entirely subjective. There's probably a consensus around what most people would consider nice, but there's no way to put a stamp on things and say `purty` generates "nice looking code."

1.0.0 is only the beginning. `purty` does enough now to be "useful." It's no longer a proof of concept, it's a useful tool. It will still have bugs, they will still get fixed. It will still have improvements.

This version also supports PureScript 0.12.0. It _should_ be backwards compatible with PureScript 0.11.7, but there are no guarantees.

### Additions

### Changes

* [Support `where` clauses](https://gitlab.com/joneshf/purty/issues/20)

### Deletions

Hardy Jones's avatar
Hardy Jones committed
702
703
704
705
706
707
708
709
710
711
712
713
714
715
## 0.6.0

Tiny release

One small addition for configuration.

### Additions

* [Provide a default configuration](https://gitlab.com/joneshf/purty/issues/46)

### Changes

### Deletions

Hardy Jones's avatar
Hardy Jones committed
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
## 0.5.0

Small bug fixes

Not much happened in this release. There were a couple of bug fixes and a change to import sorting.

### Additions

### Changes

* [`Char`s are not printed properly](https://gitlab.com/joneshf/purty/issues/45)
* [Let bindings with type signatures print incorrectly](https://gitlab.com/joneshf/purty/issues/41)
* [Sort imported values in import lists](https://gitlab.com/joneshf/purty/issues/44)

### Deletions

Hardy Jones's avatar
Hardy Jones committed
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
## 0.4.0

Configuration and customization

This release had only a few additions, but they were big! 

The first allows selecting between dynamic and static printing. Dynamic printing is what most people think of when they think of a pretty printer. Static printing is similar to how `gofmt` and similar tools work.

The second allows configuring `purty` with a file instead of command line arguments. That should allow for more reproducability and ease of use in the future. We're using [Dhall](https://dhall-lang.org) as the configuration language because it should make working with the file easier in the long run.

### Additions

* [Support dynamic and static printing](https://gitlab.com/joneshf/purty/issues/10)
* [Support configuration via Dhall](https://gitlab.com/joneshf/purty/issues/18)

### Changes

* [Travis webhook busted](https://gitlab.com/joneshf/purty/issues/38)
* [Distinguish between infix and prefix versions of operators](https://gitlab.com/joneshf/purty/issues/36)

### Deletions

Hardy Jones's avatar
Hardy Jones committed
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
## 0.3.0

Bug fixes and small features

Most of what happened in this release were bug fixes after being used in a real project.

### Additions

* [Document how to install `purty`](https://gitlab.com/joneshf/purty/issues/34)

### Changes

* [Fix printing of open records](https://gitlab.com/joneshf/purty/issues/30)
* [Handle paths that contain `..`](https://gitlab.com/joneshf/purty/issues/33)
* [Sort import declarations](https://gitlab.com/joneshf/purty/issues/19)
* [Print record puns when possible](https://gitlab.com/joneshf/purty/issues/32)

### Deletions

Hardy Jones's avatar
Hardy Jones committed
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
## 0.2.0

Infrastructure changes

Most of this release was around making the infrastructure of creating `purty`. We had a few features and fixes, but mostly infrastructure.

### Additions

* [Run stylish-haskell on CI](https://gitlab.com/joneshf/purty/issues/9)
* [Pretty print files in place](https://gitlab.com/joneshf/purty/issues/12)
* [Run hlint on CI](https://gitlab.com/joneshf/purty/issues/15)
* [Release `purty` as an NPM package](https://gitlab.com/joneshf/purty/issues/22)

### Changes

* [Return non-zero exit code on parse errors](https://gitlab.com/joneshf/purty/issues/13)
* [Make acceptance tests easier to work with](https://gitlab.com/joneshf/purty/issues/16)
* [Run GitLab CI in one stage](https://gitlab.com/joneshf/purty/merge_requests/22)
* [Remove unnecessary where clause in type class and instance declarations](https://gitlab.com/joneshf/purty/issues/24)
* [Fix Travis CI reporting to pipeline](https://gitlab.com/joneshf/purty/issues/25)
* [Report Travis CI starting on pipeline](https://gitlab.com/joneshf/purty/merge_requests/28)

### Deletions

* [Stop released binaries generating coverage information](https://gitlab.com/joneshf/purty/issues/26)

799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
## 0.1.0

Initial release

### Additions

* Pretty prints PureScript modules
* [Verbose mode](https://gitlab.com/joneshf/purty/merge_requests/7) prints debug logs
* Automatically creates [Linux binary](https://gitlab.com/joneshf/purty/issues/3)
* Automatically creates [OSX binary](https://gitlab.com/joneshf/purty/issues/4)
* Automatically creates [Windows binary](https://gitlab.com/joneshf/purty/issues/5)

### Changes

### Deletions