Spago 0.20 released 🎉

A new Spago release is out!

The main news in this edition is that we now error out if you import “hidden” dependencies without declaring them in your project config. This finally solves the long-standing issue of incorrect dependency lists in our config files - they should now be correct, as we also warn about any unused dependency :slightly_smiling_face:
Special credits to @colinwahl as he’s been driving the implementation of all the main features that shipped over the last major releases. Great work!

Since 0.20.1 is already out, the changelog below includes the changes that shipped there too.


As usual you can install Spago from NPM and other places.
Please test it out, and if you find any problems with it don’t hesitate to open an issue.

npm install -g spago

Changelog

Breaking changes (:scream:!!!)

  • spago build fails when source files directly import transitive dependencies (#730, #598)
    Fortunately an install command to add the missing dependencies will be printed out together with the error (#770, #769, #776)

Features

  • spago build now detects and warns about unused dependencies (#730, #598)

Bugfixes

  • Properly call psa to avoid warnings (#730)
  • Color output now works correctly or is disabled on Windows (#768, #749)
  • Fix spago docs for PureScript 0.14, by updating docs-search to 0.0.11 (#775, #752)

Other improvements

  • Color output is now automatically disabled when output is redirected to a file. Also respects a NO_COLOR environment variable (#768)
  • Fixes tests failing if the test platform has psa installed (#772)
  • Refactor the graph support to remove the custom module name parser (#773)
28 Likes

Very cool! It’s always appreciated when an application outputs a suggestion to fix an error instead of printing just the error (referring to the new transitive dependency error).

4 Likes

Hello, thanks for this feature, but how do you disable it? Preferably for specific packages, not for everything. Usecase: debug packages such as debug and undefined are necessary for everyday development, but of course they should not be used for the code that’s being committed. But having to manually add these two packages every time you need to debug something and then to remove it is waay too much of a hassle. So how do you make spago ignore these two?

1 Like