Skip to content

Releases: purescript/spago

0.14.0

09 Feb 22:18
@f-f f-f
7a99343
Compare
Choose a tag to compare

Breaking changes (😱!!!):

  • Replace list-packages command with ls packages and ls deps (#563)

    This is happening for future extensibility, i.e. so that we can add any
    spago ls $whatever subcommand in a non-breaking way whenever we'll want to
    list more things.

    How things got renamed:

    • spago list-packagesspago ls packages
    • spago list-packages -f directspago ls deps
    • spago list-packages -f transitivespago ls deps -t

    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.

New features:

  • Allow verify-set to work with either a spago.dhall or a packages.dhall (#515)
  • Create .purs-repl file when running spago init (#555, #558)
  • Add --source-maps flag to build commands (#545, #562)
  • Add --quiet and --no-color global flags to better control logging (#548)

Bugfixes:

  • Fix a few watch-mode buffering and concurrency issues (#549)
  • Fix watching relative paths in sources config (e.g. ../src/**/*.purs) (#556)
  • Make the ensureConfig function safe (#561, #531)
  • Retry downloading packages on network errors (#557, #565)

Other improvements:

  • Docs: fix misc typos in README (#566)
  • Docs: fix typo in packages.dhall template (#539)
  • Docs: remove mention of shared output folder in README (#559, #552)
  • Docs: update links: spacchetti/spago → purescript/spago
  • CI: update to purs-0.13.6 (#542)
  • CI: update CI to the new location of the repo (#560)
  • Deps: update to purescript-docs-search-0.0.8 (#543)
  • Deps: update to dhall-1.29 and github-0.24 (#553)

0.13.1

10 Jan 09:35
@f-f f-f
Compare
Choose a tag to compare

New features:

  • Add --before, --then and --else flags to specify commands to run before and after a build (#532, #410)

Other improvements:

  • Docs: fix npm command line argument in README (#537)

0.13.0

20 Dec 02:26
@f-f f-f
4268386
Compare
Choose a tag to compare

Breaking changes (😱!!!):

  • Disable output folder sharing (#526)

    This reverts an (accidentally) breaking changes introduced in 0.11.0, for which
    Spago would take decisions on where the output folder should be in order to
    share some compilation results. This turned out to break some other things, so
    we'll stop trying to be smart about it here.

New features:

  • Enable HTTP(S) proxies on the NPM installation (#460, #522)

Other improvements:

  • Log backend build command when building (#521)
  • Deps: update purescript-docs-search version to 0.0.6 (#525)
  • CI: update purs version to 0.13.5 (#513)
  • CI: fix Haddocks and start testing them in CI (#511, #516)
  • Curator: automate updating purs version (#514)
  • Curator: automate updating the purescript-docs-search version (#519)

0.12.1.0

17 Nov 14:56
@f-f f-f
Compare
Choose a tag to compare

Bugfixes:

  • Fix macOS release artifact (#503, #504)
  • Complete parser implementation for module declarations, for spago test (#499)

Other improvements:

  • Docs: fix typo in README (#498)
  • Errors: use logWarn for all warnings (#501)

0.12.0.0

15 Nov 15:43
@f-f f-f
Compare
Choose a tag to compare

Breaking changes (😱!!!):

  • Revert back to dynamically linked binary on Linux (#502, #500, #497)

    The static binary was still dynamically linking to glibc, causing it to be broken on
    some distros. So for now we're back on a dynamically-linked executable.

0.11.1.0

12 Nov 13:18
@f-f f-f
Compare
Choose a tag to compare

This is identical to 0.11.0, but published under a new version number due to mishaps in the publishing CI process.

0.11.0.0

12 Nov 11:44
@f-f f-f
Compare
Choose a tag to compare

Breaking changes (😱!!!):

  • Remove psc-package-related commands (#423, #425)

    Since we are approaching a stable release and spago feature set is a superset of psc-package ones,
    from this release we do not support the commands to interop with psc-package:
    psc-package-local-setup, psc-package-insdhall and psc-package-clean commands.

  • Start sharing the output folder in monorepos, to reduce build duplication (#377, #422)

    This is a breaking change because your build might stop working if you were relying on the output folder being in a certain place, and if you were passing --output as an option to purs.
    However, you can pass the --no-share-output flag to disable this behavior

  • Build static binaries for Linux (#437, 427)

    This should fix the dynamic-library-compatibility problems on some distributions.
    It should work as well as the old dynamic binary, but it's theoretically a breaking change since
    some behaviours might be different.

  • Move all logging to stderr (#256, #475, #476, #486)

    All "business output" (e.g. spago sources) will stay on stdout, so in practice everything
    should be fine, but this is theoretically a breaking change since someone might be depending
    on the output we had so far.

New features:

  • add support for spago build and spago run with alternate backends (#355, #426, #452, #435)

    E.g: add the key backend = "psgo" in spago.dhall to compile/run with psgo

  • add new command spago path that returns the paths used in the project.

    E.g. spago path output returns the output path so that it can be shared with tools such as purs-loader. (#463)

  • 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)

  • spago init has new --no-comments flag which skips adding tutorial comments to the generated spago.dhall and packages.dhall files (#417, #428)

  • spago verify-set now compiles everything, to detect duplicate module names. This can be disabled with --no-check-modules-unique (#438)

  • 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)

  • spago run now allows to pipe stdin to your running project (#488, #490)

Bugfixes:

  • Fix Ctrl-C handling in REPL when using NPM installation on Windows (#493, #483)
  • Fix confusing warning when trying to spago install a package already present in project dependencies list (#436, #439)
  • Warn (but don't error) when trying to --watch missing directories (#406, #420, #447, #448)
  • Do not watch files in .spago folder when running with --watch (#430, #446)
  • 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)
  • Allow additional fields in the config for local packages (#470)
  • Fix --config option: get the correct paths when config file is in another directory (#478, #484)

Other improvements:

  • Tests: speed up test suite by replacing some end-to-end tests with unit/property tests (#445, #440)
  • Tests: update instructions to run tests (#449)
  • Tests: always run test suites with UTF8 encoding (#482)
  • Docs: various improvements to README (#432, #457, #464, #487)
  • Docs: add "getting started" guides for Parcel, Webpack and Nodemon (#456, #461, #473)
  • Errors: improve cache skipping error (#453, #480, #481)
  • Errors: add a nice error message when trying to run spago test with no test modules (#489, #383, #492)
  • Refactor: fix hlint warnings (#450)
  • Refactor: rewrite Curator for moar maintainability (#458, #419)
  • Deps: update to Dhall 1.27 and Purs 0.13.4 (#469)
  • Deps: revert to GHC 8.4.4 and LTS-12 (#479)
  • CI: fix release code (#494, #495)

0.10.0.0

21 Sep 19:27
@f-f f-f
Compare
Choose a tag to compare

Breaking changes (!!!):

  • Flags and arguments that you want to give to purs are now passed with --purs-args (#353, #366)

    The previous behaviour in which all arguments that could not parse as spago arguments
    were passed along to purs was sometimes confusing (e.g. when using --path and multiple
    arguments).

New features:

  • Support watching js files (#407, #205)
  • New --no-search flag for spago docs to skip patching the documentation using purescript-docs-search (#400)
  • New -x flag for specifying the config path location (#357, #329)
  • New spago login command, to save a GitHub token to the cache so it can be used for various operations hitting GitHub (#391, #403)

Bugfixes:

  • "Quit" command in watch mode now actually quits (#390, #389)
  • Do not compile files twice when using --watch and Vim (#346, #371)
  • Use git clone instead of git fetch when fetching a package, so all tags can be installed (#373, #374)
  • Fix Windows global cache location; now uses LocalAppData as default (#384, #380)
  • Fix naming clash in short flag for repl dependencies (#352, #350)
  • Fix failure to copy to global cache on a different filesystem (#385, #386)
  • Fix watch function on Windows (issue with paths) (#387, #380, #401)
  • Look up remote imports dynamically when doing frozen check, to always find the right packages.dhall (#349, #402)

Other Improvements:

  • Performance: make no-op spago install faster (#409, #412)
  • CI: remove reviews limitation on mergify (#354)
  • CI: various fixes (#362, #368, #382, #388, #418)
  • Docs: fix syntax errors in template comment (#369, #413, #408)
  • Docs: fix link for package-set from commit (#405)
  • Docs: keep README up to date with new features (#398, #347)
  • Deps: upgrade to lts-14 and GHC-8.6 (#395)
  • Deps: upgrade to dhall-1.26.0, v10 of the standard (#411, #358)

0.9.0.0

30 Jul 09:47
@f-f f-f
2d349cc
Compare
Choose a tag to compare

Breaking changes (!!!):

  • Rename package-set-upgrade to upgrade-set (#336)

    You now have to call spago upgrade-set if you wish to upgrade your package-sets version

  • Move the --jobs flag to be global (#338)

    If you were invoking spago in this way: spago install -j 10, you now have to use spago -j 10 install instead

  • Import local packages as Location (#301, #244)

    Before you'd import a local package in this way:

    let additions =
      { foobar =
          mkPackage
            (../foobar/spago.dhall).dependencies
            "../foobar"
            "local-fix-whatever"
      }

    ..but now you'll have to import it using as Location instead:

    let additions =
      { foobar = ../foobar/spago.dhall as Location }

New features:

  • Add searchbar to docs generated with spago docs, and a search command to get a search REPL (#340, #333, #89)
  • Add automatic migration of Bower projects when doing spago init (#159, #272, #342)
  • Add bump-version command, for generating bower.json files and making version tags in Git (#203, #289, #324)
  • Use psa for compiling if installed; you can avoid this with the new --no-psa flag (#305, #283, #252, #327)
  • Add support for starting a repl within a folder which has not been setup as a spago project (#168, #280)
  • Add --format flag to spago docs (#294, #299)
  • Add project sources to spago sources output (#276, #287, #308)
  • Watch all sources, including dependencies, when building with filewatch (#172, #309)
  • Add --deps-only flag to build dependencies alone (#330, #331)

Bugfixes:

  • Fix spago install failing when version branch names differ only by case on case-insensitive filesystems (#285)
  • Change --node-args shortcut to -a to avoid clash (#292, #293)
  • Stop reformatting config files if not necessary (#300, #302, #339)
  • Make spago run write a file and execute it so that args are passed correctly (#297, #295)
  • Add fallback for global cache directory (#314, #312)
  • Do not overwrite spago.dhall when doing spago init twice (#318, #321)
  • Catch exceptions when trying to fetch metadata (#325)
  • Generate hashes when doing psc-package-insdhall (#337, #240)

Other Improvements:

  • Curator: log exceptions to file to monitor eventual issues (#284)
  • Docs: update README with newest features (#286)
  • Docs: add docs about switching from Bower (#317)
  • Errors: improve error message for overriding compiler version (#345, #343)
  • Tests: improve failure messages (#298)
  • Tests: fix packages.dhall fixtures manipulation (#307)
  • Tests: add tests for the list-packages command (#304)
  • Tests: add tests for local dependencies (#310)
  • Config: remove mkPackage function in Dhall configs, and switch to package-sets releases for upstream (#322, #320, #319)
  • Config: update test template to use Effect.Class.Console (#328, #334)
  • CI: fix missing "commit since last release" message (#326)
  • CI: add configuration for Mergify (#332)

0.8.5.0

18 Jun 18:22
@f-f f-f
92e9c64
Compare
Choose a tag to compare

ZuriHac edition 🎉

New features:

  • Add sources key to config to customize the sources used in the build (#273, #173)
  • Add --json flag to the list-packages command to optionally output JSON (#263)
  • Add --clear-screen flag to to clear the screen when watching (#271, #209)
  • Add --no-install flag for build to prevent automatic installation (#274, #269)
  • Add --node-args flag to pass arguments to Node in run/test commands (#267, #275)

Bugfixes:

  • Fix spago install failing when version branch name contains /'s (#257, #258)
  • Report all missing packages together when it's not possible to build an install plan (#264, #223)
  • Pull the latest package-sets version when doing init (#254, #279)
  • Fix spago install not adding new dependencies when list is empty (#282, #281)

Other Improvements:

  • Docs: add visual overview of what Spago does "under the hood" in typical project workflow (#211)
  • Docs: fix outdated references in README (#266)
  • Tests: untangle testcases environments (#265, #214)
  • Tests: improve packages test by checking for missing and circular dependencies (#270)