1# Changelog
2
3All notable changes to this project will be documented in this file.
4
5The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
8## [Unreleased]
9
10Bugfixes:
11- Fix `docs` command error due to bad templates (#792)
12
13## [0.20.2] - 2021-05-06
14
15Bugfixes:
16- Remove `npm install` from release CI to prevent overwriting the install script with the Linux binary (#783, #786)
17- Use spago.cabal instead of package.yaml to get version number (#787, #788)
18- Assume compatibility with newer minor versions of `purs` (#782, #777)
19- Fix `test` command not working on `purs` older than `v0.14.0` (#790, #789)
20
21Other improvements:
22- Docs: add more useful comments in spago.dhall (#778, 708)
23- Dev: remove package.yaml, use only cabal file (#780)
24- Dev: use make to orchestrate builds (#781)
25- Deps: upgrade to GHC8.10 and lts-17 (#743)
26
27## [0.20.1] - 2021-04-20
28
29Bugfixes:
30- Color output now works correctly or is disabled on Windows (#768, #749)
31- Fix `spago docs` for PureScript 0.14, by updating `docs-search` to `0.0.11` (#775, #752)
32
33Other improvements:
34- Color output is now automatically disabled when output is redirected to a file.
35  Also respects a [`NO_COLOR`](https://no-color.org/) environment variable (#768)
36- Fixes tests failing if the test platform has `psa` installed (#772)
37- Print `spago install` command to fix missing transitive dependencies (#770, #769, #776)
38- Refactor the graph support to remove the custom module name parser (#773)
39
40## [0.20.0] - 2021-04-07
41
42Breaking changes (��!!!):
43- `spago build` fails when source files directly import transitive dependencies (#730, #598)
44
45Bugfixes:
46- Properly call `psa` to avoid warnings (#730)
47
48Other improvements:
49- `spago build` now detects and warns about unused dependencies (#730, #598)
50
51## [0.19.2] - 2021-03-31
52
53New features:
54- Allow `verify` and `verify-set` to work with alternate backends, when run in the context of a `spago.dhall` with `backend` set (#754)
55
56Bugfixes:
57- Don't fail `bump-version` if the packages don't exist in the Bower registry (#682)
58
59Other improvements:
60- CI: bump `purescript` version to 0.14.0 (#759)
61- Docs: add FreeBSD installation instructions (#760)
62- Docs: clarify description for `--path` flag (#762, #761)
63
64## [0.19.1] - 2021-02-22
65
66Bugfixes:
67- Fix `psa` not being found on Windows (#740, #693)
68- Use the correct path when erroring out about alternate configurations missing (#746, #747)
69
70Other improvements:
71- Bump `dhall` dependency from 1.37.1 to 1.38.0 (#739)
72- Fix caching on Windows CI (#728, #741)
73
74## [0.19.0] - 2021-01-06
75
76Breaking changes (��!!!):
77- **Deprecate `-d` flag for `deps-only` (#712)** - instead only support the `--deps-only` long form
78- **Switch from `-D` to `-d` as shorthand for specifying dependencies within `spago repl` (#712)**
79
80New features:
81- Add `spago script` command. It can be used to run standalone PureScript files as scripts (#712, #724, #683)
82
83Other improvements:
84- `spago repl` will no longer create a (mostly unused) full project skeleton in a temporary directory when a config is not found (#712)
85- `spago init` and `spago upgrade-set` will now pick the latest set for the available compiler, rathen than just the latest (#721, #687, #657, #666)
86
87## [0.18.1] - 2020-12-22
88
89Breaking changes (��!!!):
90- **Remove `login` command (#705)**
91
92  It was introduced in preparation for a `publish` command that would require a GitHub token to be provided,
93  but it is obsolete now, as the new Registry workflow will not require it.
94  While it's technically a breaking change, it should be of very low impact since no one should be using this anyways.
95
96- **Upgrade to Dhall 20.0.0 and GHC 8.6.5 (#695, #685)**
97
98  The upgrade fixes several bugs related to the upstream dhall-haskell implementation, but introduces
99  a breaking change in the parser, as reserved words are not accepted anymore in certain positions.
100  While the upstream package sets have been patched to be compatible with the change, this is a breaking change
101  for all the existing configurations that make use of Dhall reserved words (such as `assert`, `let`, etc).
102
103New features:
104- Add `exec-args` as alias to `node-args`, to clarify that the args are
105  forwarded to whichever backend is being targeted (go, js, etc), not
106  exclusively NodeJS (#710, #709)
107
108Bugfixes:
109- Don't create the global cache folder at all if the user specifies `--global-cache=skip` (#705, 704)
110- Don't require a `spago.dhall` anymore when the `--no-build` flag is passed (#705, 634)
111
112Other improvements:
113- CI: switch from Travis to GitHub Actions (#695)
114
115## [0.17.0] - 2020-10-29
116
117Breaking changes (��!!!):
118- **Specify the package set version via `--tag` (#680)**
119
120  Example usage: `spago init --tag psc-0.13.2-20190725` and `spago upgrade-set --tag psc-0.13.2-20190725`.
121  This is a breaking change because we are removing support for the old spacchetti/spacchetti-style location (i.e. in the src/packages.dhall) for the upgrade-set command.
122
123Bugfixes:
124- Remove dependency on `libtinfo`, removing the biggest cause of friction for using the precompiled binary on various Linux distros (#684)
125- Correctly parse flags to be passed to the compiler (#688)
126
127## [0.16.0] - 2020-08-14
128
129Breaking changes (��!!!):
130- **Remove shorthands for `color`, `before`, `then`, and `else` flags (#670, #664)**
131
132  Both `then` and `target` had the shorthand `t`, so the shorthand for `then` was removed.
133  Since `then`, `before`, and `else` are all shared between several commands, it seemed
134  natural to remove the shorthands for the other shared commands too, so as to not cause
135  future shorthand name conflicts.
136  A similar collision problem happened with the `color` flag, so its shorthand was removed.
137- **Pass main function argument to `--run` for alternate backends (#668)**
138
139  This is a braking change because now alternate backends are expected to accept
140  an argument to their `run` flag. This change was coordinated among various backends
141  so the migration should be relatively smooth, but you should check if your backend
142  it able to support this.
143
144New features:
145- Upgrade to `docs-search@v0.0.10`, that introduces grouping by package in local docs (#679)
146- Ignore `.gitignore`d files in `--watch` by default - you can disable this with `--allow-ignored` (#665)
147- Support `upgrade-set` for alternative package-set repositories (#671)
148
149Bugfixes:
150- Make the output of `spago --version` the same with `spago version` (#675)
151- Ensure the existence of the global cache directory (#672, #667)
152
153Other improvements:
154- Docs: updated package addition/overriding syntax to use `with` syntax (#661, #663)
155- Docs: fix Webpack template (#653)
156- Docs: document how to pass arguments to `main` (#655)
157- Error messages: do not print "Installation complete" if nothing was installed (#676)
158
159## [0.15.3] - 2020-06-15
160
161New features:
162- Add `--version` flag to print the version (in addition to the `version` command) (#628)
163
164Bugfixes:
165- Actually run `else` commands when `spago run` fails (#632)
166- Don't use absolute paths for executables in Windows (#639)
167
168Other improvements:
169- Docs: note that `build` also runs `install` (#624)
170- Docs: document how to install all the packages in the set (#625)
171- Docs: stop suggesting using Parcel and Spago at the same time (#626)
172- Docs: document how to install bash and zsh autocompletions (#627)
173- Docs: fix explanation in monorepo example (#631)
174- Docs: add note about using single quotes for `purs-args` (#637)
175- Docs: add quotes for all OSes with `purs-args` (#638)
176- Docs: fix typos in `spago bundle-app` help message (#641)
177- Deps: upgrade `rio` to `0.1.13.0` (#616)
178- CI: upgrade to `purs` v.13.8 (#642)
179- CI: stop upgrading broken static binary on release (#620)
180
181
182## [0.15.2] - 2020-04-15
183
184Breaking changes (��!!!):
185- **Remove the deprecated `--no-share-output` flag (#610)**
186
187  It has been disabled since some time now, so you can just remove it from your build commands.
188
189New features:
190- Add the `spago path global-cache` subcommand to output the location of the global cache (#613, #591)
191
192Bugfixes:
193- Fix encoding issues causing crashes when running in various locales (#595, #533, #507, #576)
194- Respect TERM=dumb by disabling colors when set (#581, #579)
195- Run package set commands without a project config being present (#393, #610)
196- Fail as soon as possible when not finding a necessary executable (#578, #610)
197- Don't exclude the `metadata` package from the set (#609, #610)
198- Ensure `psci-support` is installed when starting the repl (#612, #550)
199- Ensure dependencies are installed before starting the repl (#611, #610)
200
201Other improvements:
202- Errors: make the "dropping the 'purescript-' prefix" warning milder (#571, #570)
203- Docs: update README example to include source files (#574)
204- Docs: add info about SPDX license for publishing (#606)
205- CI: update Travis deployment to `dpl-v2` (#569, #617)
206- Deps: upgrade `dhall` to `1.31.1` (#600)
207- Curator: move to its own repo (#586)
208
209## [0.14.0] - 2020-02-09
210
211Breaking changes (��!!!):
212- **Replace `list-packages` command with `ls packages` and `ls deps` (#563)**
213
214  This is happening for future extensibility, i.e. so that we can add any
215  `spago ls $whatever` subcommand in a non-breaking way whenever we'll want to
216  list more things.
217
218  How things got renamed:
219  - `spago list-packages` → `spago ls packages`
220  - `spago list-packages -f direct` → `spago ls deps`
221  - `spago list-packages -f transitive` → `spago ls deps -t`
222
223  Note: the `list-packages` command is still there to provide a semi-gracious transition path for folks, and will be removed in a future release.
224
225New features:
226- Allow `verify-set` to work with either a `spago.dhall` or a `packages.dhall` (#515)
227- Create `.purs-repl` file when running `spago init` (#555, #558)
228- Add `--source-maps` flag to build commands (#545, #562)
229- Add `--quiet` and `--no-color` global flags to better control logging (#548)
230
231Bugfixes:
232- Fix a few watch-mode buffering and concurrency issues (#549)
233- Fix watching relative paths in sources config (e.g. `../src/**/*.purs`) (#556)
234- Make the `ensureConfig` function safe (#561, #531)
235- Retry downloading packages on network errors (#557, #565)
236
237Other improvements:
238- Docs: fix misc typos in README (#566)
239- Docs: fix typo in `packages.dhall` template (#539)
240- Docs: remove mention of shared output folder in README (#559, #552)
241- Docs: update links: spacchetti/spagopurescript/spago
242- CI: update to `purs-0.13.6` (#542)
243- CI: update CI to the new location of the repo (#560)
244- Deps: update to `purescript-docs-search-0.0.8` (#543)
245- Deps: update to `dhall-1.29` and `github-0.24` (#553)
246
247## [0.13.1] - 2020-01-10
248
249New features:
250- Add `--before`, `--then` and `--else` flags to specify commands to run before and after a build (#532, #410)
251
252Other improvements:
253- Docs: fix npm command line argument in README (#597)
254
255## [0.13.0] - 2019-12-19
256
257Breaking changes (��!!!):
258- **Disable `output` folder sharing (#526)**
259
260  This reverts an (accidentally) breaking changes introduced in `0.11.0`, for which
261  Spago would take decisions on where the `output` folder should be in order to
262  share some compilation results. This turned out to break some other things, so
263  we'll stop trying to be smart about it here.
264
265New features:
266- Enable HTTP(S) proxies on the NPM installation (#460, #522)
267
268Other improvements:
269- Log backend build command when building (#521)
270- Deps: update `purescript-docs-search` version to `0.0.6` (#525)
271- CI: update `purs` version to `0.13.5` (#513)
272- CI: fix Haddocks and start testing them in CI (#511, #516)
273- Curator: automate updating `purs` version (#514)
274- Curator: automate updating the `purescript-docs-search` version (#519)
275
276## [0.12.1] - 2019-11-17
277
278Bugfixes:
279- Fix macOS release artifact (#503, #504)
280- Complete parser implementation for module declarations, for `spago test` (#499)
281
282Other improvements:
283- Docs: fix typo in README (#498)
284- Errors: use `logWarn` for all warnings (#501)
285
286## [0.12.0] - 2019-11-15
287
288Breaking changes (��!!!):
289- **Revert back to dynamically linked binary on Linux (#502, #500, #497)**
290
291  The static binary was still dynamically linking to `glibc`, causing it to be broken on
292  some distros. So for now we're back on a dynamically-linked executable.
293
294## [0.11.1] - 2019-11-12
295
296This is identical to `0.11.0`, but published under a new version number due to mishaps in the publishing CI process.
297
298## [0.11.0] - 2019-11-12
299
300Breaking changes (��!!!):
301- **Remove `psc-package`-related commands (#423, #425)**
302
303  Since we are approaching a stable release and `spago` feature set is a superset of `psc-package` ones,
304  from this release we do not support the commands to interop with `psc-package`:
305  `psc-package-local-setup`, `psc-package-insdhall` and `psc-package-clean` commands.
306- **Start sharing the output folder in monorepos, to reduce build duplication (#377, #422)**
307
308  This is a breaking change because your build might stop working if you were relying
309  on the `output` folder being in a certain place, and if you were passing `--output`
310  as an option to `purs`.
311  However, you can pass the `--no-share-output` flag to disable this behavior
312- **Build static binaries for Linux (#437, 427)**
313
314  This should fix the dynamic-library-compatibility problems on some distributions.
315  It should work as well as the old dynamic binary, but it's theoretically a breaking change since
316  some behaviours might be different.
317- **Move all logging to `stderr` (#256, #475, #476, #486)**
318
319  All "business output" (e.g. `spago sources`) will stay on `stdout`, so in practice everything
320  should be fine, but this is theoretically a breaking change since someone might be depending
321  on the output we had so far.
322
323
324New features:
325- add support for `spago build` and `spago run` with alternate backends (#355, #426, #452, #435)
326
327  E.g: add the key `backend = "psgo"` in `spago.dhall` to compile/run with `psgo`
328- add new command `spago path` that returns the paths used in the project.
329
330  E.g. `spago path output` returns the output path so that it can be shared with tools such as `purs-loader`. (#463)
331- `spago docs` now displays a link to the generated docs' `index.html`, and opens them in the browser when passed the `--open` flag (#379, #421)
332- `spago init` has new `--no-comments` flag which skips adding tutorial comments to the generated `spago.dhall` and `packages.dhall` files (#417, #428)
333- `spago verify-set` now compiles everything, to detect duplicate module names. This can be disabled with `--no-check-modules-unique` (#438)
334- `spago install purescript-XYZ` will now strip `purescript-` prefix and install XYZ (if it exists in package set) instead of just failing with a warning (#367, #443)
335- `spago run` now allows to pipe `stdin` to your running project (#488, #490)
336
337Bugfixes:
338- Fix Ctrl-C handling in REPL when using NPM installation on Windows (#493, #483)
339- Fix confusing warning when trying to `spago install` a package already present in project dependencies list (#436, #439)
340- Warn (but don't error) when trying to `--watch` missing directories (#406, #420, #447, #448)
341- Do not watch files in `.spago` folder when running with `--watch` (#430, #446)
342- The `--clear-screen` flag (usable e.g. with `spago build --watch`) now also resets cursor position, so the rebuild message always appears at top left of the screen (#465, #466)
343- Allow additional fields in the config for local packages (#470)
344- Fix `--config` option: get the correct paths when config file is in another directory (#478, #484)
345
346Other improvements:
347- Tests: speed up test suite by replacing some end-to-end tests with unit/property tests (#445, #440)
348- Tests: update instructions to run tests (#449)
349- Tests: always run test suites with UTF8 encoding (#482)
350- Docs: various improvements to README (#432, #457, #464, #487)
351- Docs: add "getting started" guides for Parcel, Webpack and Nodemon (#456, #461, #473)
352- Errors: improve cache skipping error (#453, #480, #481)
353- Errors: add a nice error message when trying to run `spago test` with no test modules (#489, #383, #492)
354- Refactor: fix `hlint` warnings (#450)
355- Refactor: rewrite Curator for moar maintainability (#458, #419)
356- Deps: update to Dhall 1.27 and Purs 0.13.4 (#469)
357- Deps: revert to GHC 8.4.4 and LTS-12 (#479)
358- CI: fix release code (#494, #495)
359
360
361## [0.10.0] - 2019-09-21
362
363Breaking changes (��!!!):
364- **Flags and arguments that you want to give to `purs` are now passed with `--purs-args` (#353, #366)**
365
366  The previous behaviour in which all arguments that could not parse as `spago` arguments
367  were passed along to `purs` was sometimes confusing (e.g. when using `--path` and multiple
368  arguments).
369
370New features:
371- Support watching js files (#407, #205)
372- New `--no-search` flag for `spago docs` to skip patching the documentation using `purescript-docs-search` (#400)
373- New `-x` flag for specifying the config path location (#357, #329)
374- New `spago login` command, to save a GitHub token to the cache so it can be used for various operations hitting GitHub (#391, #403)
375
376Bugfixes:
377- "Quit" command in watch mode now actually quits (#390, #389)
378- Do not compile files twice when using `--watch` and Vim (#346, #371)
379- Use `git clone` instead of `git fetch` when fetching a package, so all tags can be installed (#373, #374)
380- Fix Windows global cache location; now uses `LocalAppData` as default (#384, #380)
381- Fix naming clash in short flag for repl dependencies (#352, #350)
382- Fix failure to copy to global cache on a different filesystem (#385, #386)
383- Fix watch function on Windows (issue with paths) (#387, #380, #401)
384- Look up remote imports dynamically when doing frozen check, to always find the right `packages.dhall` (#349, #402)
385
386Other Improvements:
387- Performance: make no-op `spago install` faster (#409, #412)
388- CI: remove reviews limitation on mergify (#354)
389- CI: various fixes (#362, #368, #382, #388, #418)
390- Docs: fix syntax errors in template comment (#369, #413, #408)
391- Docs: fix link for package-set from commit (#405)
392- Docs: keep README up to date with new features (#398, #347)
393- Deps: upgrade to lts-14 and GHC-8.6 (#395)
394- Deps: upgrade to dhall-1.26.0, v10 of the standard (#411, #358)
395
396## [0.9.0] - 2019-07-30
397
398Breaking changes (!!!):
399- **Rename `package-set-upgrade` to `upgrade-set` (#336)**
400
401  You now have to call `spago upgrade-set` if you wish to upgrade your package-sets version
402
403- **Move the `--jobs` flag to be global (#338)**
404
405  If you were invoking spago in this way: `spago install -j 10`, you now have to use `spago -j 10 install` instead
406
407- **Import local packages `as Location` (#301, #244)**
408
409  Before you'd import a local package in this way:
410
411  ```dhall
412  let additions =
413    { foobar =
414        mkPackage
415          (../foobar/spago.dhall).dependencies
416          "../foobar"
417          "local-fix-whatever"
418    }
419  ```
420
421  ..but now you'll have to import it using `as Location` instead:
422
423  ```dhall
424  let additions =
425    { foobar = ../foobar/spago.dhall as Location }
426  ```
427
428
429New features:
430- Add searchbar to docs generated with `spago docs` (#340, #333, #89)
431- Add automatic migration of Bower projects when doing `spago init` (#159, #272, #342)
432- Add `bump-version` command, for generating `bower.json` files and making version tags in Git (#203, #289, #324)
433- Use `psa` for compiling if installed; you can avoid this with the new `--no-psa` flag (#305, #283, #252, #327)
434- Add support for starting a repl within a folder which has not been setup as a spago project (#168, #280)
435- Add `--format` flag to `spago docs` (#294, #299)
436- Add project sources to `spago sources` output (#276, #287, #308)
437- Watch all sources, including dependencies, when building with filewatch (#172, #309)
438- Add `--deps-only` flag to build dependencies alone (#330, #331)
439
440Bugfixes:
441- Fix `spago install` failing when version branch names differ only by case on case-insensitive filesystems (#285)
442- Change `--node-args` shortcut to `-a` to avoid clash (#292, #293)
443- Stop reformatting config files if not necessary (#300, #302, #339)
444- Make `spago run` write a file and execute it so that args are passed correctly (#297, #295)
445- Add fallback for global cache directory (#314, #312)
446- Do not overwrite `spago.dhall` when doing `spago init` twice (#318, #321)
447- Catch exceptions when trying to fetch metadata (#325)
448- Generate hashes when doing `psc-package-insdhall` (#337, #240)
449
450Other Improvements:
451- Curator: log exceptions to file to monitor eventual issues (#284)
452- Docs: update README with newest features (#286)
453- Docs: add docs about switching from Bower (#317)
454- Errors: improve error message for overriding compiler version (#345, #343)
455- Tests: improve failure messages (#298)
456- Tests: fix `packages.dhall` fixtures manipulation (#307)
457- Tests: add tests for the `list-packages` command (#304)
458- Tests: add tests for local dependencies (#310)
459- Config: remove `mkPackage` function in Dhall configs, and switch to package-sets releases for upstream (#322, #320, #319)
460- Config: update test template to use `Effect.Class.Console` (#328, #334)
461- CI: fix missing "commit since last release" message (#326)
462- CI: add configuration for Mergify (#332)
463
464
465## [0.8.5] - 2019-06-18
466
467ZuriHac edition ��
468
469New features:
470- Add `sources` key to config to customize the sources used in the build (#273, #173)
471- Add `--json` flag to the `list-packages` command to optionally output JSON (#263)
472- Add `--clear-screen` flag to to clear the screen when watching (#271, #209)
473- Add `--no-install` flag for build to prevent automatic installation (#274, #269)
474- Add `--node-args` flag to pass arguments to Node in `run/test` commands (#267, #275)
475
476Bugfixes:
477- Fix `spago install` failing when version branch name contains `/`'s (#257, #258)
478- Report all missing packages together when it's not possible to build an install plan (#264, #223)
479- Pull the latest package-sets version when doing `init` (#254, #279)
480- Fix `spago install` not adding new dependencies when list is empty (#282, #281)
481
482Other Improvements:
483- Docs: add visual overview of what Spago does "under the hood" in typical project workflow (#211)
484- Docs: fix outdated references in README (#266)
485- Tests: untangle testcases environments (#265, #214)
486- Tests: improve packages test by checking for missing and circular dependencies (#270)
487
488## [0.8.4] - 2019-06-12
489
490New features:
491- Add option to clear the screen to spago build/run (#209)
492- Add option to pass args to node when doing spago test/run (#267)
493
494Bugfixes:
495- Produce an error message when asserting directory permissions (#250)
496- Read purs version from inside the set instead of its GitHub tag (#253, #225)
497- Skip copy to global cache when encountering a permissions problem (#220, #260)
498
499Other improvements:
500- Errors: add many debug logs (#251)
501- CI: rewrite Curator in Haskell (#239)
502- CI: build only `master` and tags on Travis (#247)
503- Dev: add Nix section to stack.yaml (#248)
504- Dev: tidy up the various executables, sources and dependencies (#251)
505
506## [0.8.3] - 2019-06-03
507
508Bugfixes:
509- Fix `spago psc-package-clean` on Windows (#224)
510- Fix `spago repl` starting on Windows where PureScript was installed with NPM (#235, #227)
511- Fix missing filenames when encountering parse errors in Dhall files (#241, #222)
512- Download packages in local repo instead of global tempdir (#243, #220)
513
514Other improvements:
515- Tests: test suite now works fully on Windows (#224)
516- CI: parametrize LTS version (#236)
517- CI: get PureScript binary for Travis from GitHub releases (#234)
518- Error messages: fix whitespace (#221)
519
520## [0.8.1] - 2019-05-29
521
522New features:
523- Add global cache to avoid redownloading dependencies (#188, #133)
524- Add ability to pin a version to a commit hash in addition to branches and tags (#188, #200)
525
526Bugfixes:
527- Another attempt to fix NPM and Yarn installations on Windows (#215, #187)
528
529Other improvements:
530- The test suite is now written in Haskell rather than Python (#212, #177)
531- Add `spago-curator` tool to generate metadata from the package set (#202)
532- Improve docs (#208, #207, #218, #217)
533
534## [0.8.0] - 2019-05-16
535
536Breaking changes:
537- Rename "bundle" to "bundle-app" and "make-module" to "bundle-module" for consistency (#175, #147)
538
539Bugfixes:
540- Don't fail `init` if a `packages.dhall` is already there, as it's the case of psc-package projects with local spacchetti (#180)
541
542Other improvements:
543- Remove CI check for package-sets version, add cron script to update it instead (#185)
544- Fill in CHANGELOG from release notes (#186)
545- Fix LICENSE file so GitHub recognizes it (#197)
546- Add a CONTRIBUTING file (#198, #189)
547- Improve README (#199, #194, #196, #201, #193, #192, #187, #178, #191, #150, #142)
548
549## [0.7.7] - 2019-04-28
550
551New features:
552- Install "psci-support" on project init (#174)
553
554## [0.7.5] - 2019-03-30
555
556Bugfixes:
557- Fix NPM and Yarn installations on Linux and Windows (#157, #167, #166)
558
559## [0.7.4] - 2019-03-27
560
561Bugfixes:
562- correctly parse package-set release tag to avoid generating unnecessary warnings (#160, #161)
563- skip 0.7.3.0 as I forgot to update the version field (#164)
564
565## [0.7.2] - 2019-03-21
566
567New features:
568- introduce a `--verbose` flag to print debug information - e.g. `purs` commands being called by Spago (#154, #155)
569
570## [0.7.1] - 2019-03-19
571
572New features:
573- Add `--watch` flag to `build`, `test`, `run`, `bundle` and `make-module` commands (#65, #126, #153)
574- Add `spago docs` command, to generate documentation from the project and all dependencies (#127)
575- Add `spago run` command, to run your project (#131, #137)
576
577Other fixes and improvements:
578- Automatically build in commands that require the project to be built (#146, #149)
579- Don't automatically create a configuration if not found (#139, #144)
580- Always ensure that the package-set has a hash on it, for speed and security reasons (#128)
581- Improvements to documentation and FAQ (#132, #125, #119, #123, #104, #135)
582- Improvements to errors, messages and logging (#143, #145, #133, #151, #148, #129, #130, #136)
583- Improvements to tests (#95, #91, #138, #141, #140)
584- Format Dhall files with ASCII instead of Unicode (#124)
585
586## [0.7.0] - 2019-03-03
587
588Breaking changes:
589- The NPM package `purescript-spago` is now deprecated. New releases will be published only to the package `spago` (#115, #44)
590- [Spacchetti has been merged in the official package-set](https://github.com/purescript/package-sets/pull/271): this means that `spago` will now use that as the reference package-set. (#120)
591
592  As a result of this, the command `spago spacchetti-upgrade` has been renamed to `spago package-set-upgrade`.
593
594New features:
595- Support Windows in NPM install (#121, #109)
596- Add `spago freeze` command to recompute hashes of the package-set (#113)
597- Add `spago verify` and `spago verify-set` commands (#108, #14)
598- Add the `--filter` flag to `spago list-packages`, to filter by direct and transitive deps (#106, #108)
599- Check that the version of the installed compiler is at least what the package-set requires (#101, #107, #117, #116)
600
601Other improvements:
602- Improve the installation: do less work and print less useless stuff (#110, #112, #114)
603- Skip the copy of template files if the source directories exist (#102, #105)
604
605## [0.6.4] - 2019-02-07
606
607New features:
608- [`spago init` will search for a `psc-package.json`, and try to port it to your new `spago.dhall` config](https://github.com/purescript/spago/tree/6947bf1e9721b4e8a5e87ba8a546a7e9c83153e9#switching-from-psc-package) (#76)
609- [Add the `spacchetti-upgrade` command, to automatically upgrade to the latest Package Set](https://github.com/purescript/spago/tree/6947bf1e9721b4e8a5e87ba8a546a7e9c83153e9#upgrading-the-package-set) (#93, #73)
610- [You can now add local packages to the Package Set ��](https://github.com/purescript/spago/tree/6947bf1e9721b4e8a5e87ba8a546a7e9c83153e9#adding-and-overriding-dependencies-in-the-package-set) (#96, #88)
611- [Now it's possible to run `spago install foo bar` to add new dependencies to your project](https://github.com/purescript/spago/tree/6947bf1e9721b4e8a5e87ba8a546a7e9c83153e9#adding-a-dependency) (#74)
612- Now every time you try to build, Spago will also check that dependencies are installed (#75, #82)
613
614Bugfixes:
615- Spago would crash if `$HOME` was not set, now it doesn't anymore (#85, #90)
616- `spago test` now actually works on Windows (#79)
617
618Other improvements:
619- Maany docs improvements (#83, #76, #93, #96, #99, #100)
620- From this release we are publishing an experimental Windows build (#81)
621- Add a PR checklista, so we don't forgetti (#86)
622
623## [0.6.3] - 2019-01-18
624
625New features:
626- `spago repl` will now spawn a PureScript repl in your project (#46, #62)
627- `spago list-packages` will list all the packages available in your package-set (#71)
628
629## [0.6.2] - 2019-01-07
630
631New features:
632- `spago build` and `spago test` now have the `--path` option to specify custom source paths to include (#68, #69)
633- `spago build` and `spago test` can now pass options straight to `purs compile` (#66, #49)
634
635## [0.6.1] - 2018-12-26
636
637New features:
638- Add initial windows support (#47, #48, #58): now `spago` should run fine on Windows. Unfortunately we're not distributing binaries yet, but the only installation method available is from source (with e.g. `stack install`)
639
640Bugfixes:
641- Don't overwrite files when doing `init`, just skip the copy if some file exists (#56)
642- Print `git` output in case of failure when doing `install` (#54, #59)
643- Include building `src/*` when running `test` (#50, #53)
644- Make file embedding indipendent of the locale when compiling; now we just use Unicode
645
646## [0.6.0] - 2018-12-16
647
648First release under the name "spago".
649
650Main changes from the previous "spacchetti-cli" incarnation:
651- Rename `spacchetti-cli` → `spago` (#23)
652- Publish on NPM under the new name `purescript-spago` (#35)
653- Add some commands from `psc-package`:
654  - `init` (#12): initialize a new sample project with a `spago.dhall` and a `packages.dhall` config files
655  - `install` (#11, #32): concurrently fetch dependencies declared in `spago.dhall` file
656  - `sources` (#13): print source globs
657  - `build`: compile the project with `purs`
658- Migrate old commands from `spacchetti-cli` that are specific to local psc-package projects:
659  - `local-setup` is now `psc-package-local-setup`
660  - `insdhall` is now `psc-package-insdhall`
661  - `clean` is now `psc-package-clean`
662- Add some commands from `purp` (#26):
663  - `test`: compile and run a module from the `test/` folder
664  - `bundle`: bundle all sources in a single file
665  - `make-module`: export the above bundle so it can be `require`d from js
666- Stop depending on `dhall` and `dhall-to-json` commands and instead depend on `dhall` and `dhall-json` libraries
667- Freeze `spacchetti` package-set import in `packages.dhall`, so `dhall` caching works for subsequent executions
668- Move to v4.0.0 of `dhall`
669- Add integration tests for most of the commands (#31, #30)
670