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/spago → purescript/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