Spago 0.9.0 released 🎉

Even if I thought it was better to have a single thread for all Spago releases, it seems nicer to have a separate post for every release, as e.g. having a dedicated thread might help discussing any issues, etc. (though if you think you stumbled on a bug feel free to just open an issue)

This is a huge release, many many thanks to all contributors! :heart:

Spago 0.9.0

As usual you can find it on NPM and in other places:

Breaking changes (:scream:!!!):

  • Rename package-set-upgrade command 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 =

    …but now you’ll have to import it using as Location instead:

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

    You might want to take a look at the new “Monorepo” docs too

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)
  • Support for Dhall v9.0.0 (#301)


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

I’m seriously blown away by Spago on every release. I’ve switched on all personal projects and can’t wait to switch over on libraries, too. Simply a pleasant, consistent, painless experience of package management & build tooling for PureScript. Thanks for all your work @f-f, as well as the rest of the folks working on Spago and contributing the many new features and fixes.


@thomashoneyman thanks for the kind words! :blush:

Btw you can already help us test the new publishing pipeline by using spago bump-version to create new versions for libraries (this replaces pulp version, spago publish is coming soon)


I’d like to give it a try for whatever next project I work on. Thanks for the heads up!

I’m excited about the upcoming spago publish command. I’d like to echo Thomas’ words as well. It’s been a pleasant experience using spago.