Spago 0.17 released 🎉

New Spago release out! It’s quite small, but we add another long-awaited feature for specifying the package set to use for init and upgrade-set :slightly_smiling_face:

So please test it out, and if you find any problems with it don’t hesitate to open an issue

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

npm install -g spago

Changelog

Breaking changes (:scream:!!!):

  • Specify the package set version via --tag (#680) Example usage: spago init --tag psc-0.13.2-20190725 and spago upgrade-set --tag psc-0.13.2-20190725 .
    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.

Bugfixes:

  • Remove dependency on libtinfo , removing the biggest cause of friction for using the precompiled binary on various Linux distros (#684)
  • Correctly parse flags to be passed to the compiler (#688)
10 Likes

Amazing! libtinfo has caused me a lot of pain in the previous few weeks (I just started using Linux recently), and it’s great to hear that it’s not necessary for Spago anymore. Now only if PureScript removes the dependency too… (if it’s possible.)

It is possible to remove the libtinfo dependency on the purs binary too, it’ll just make the repl UX a bit worse. I’m leaning towards doing it but I haven’t gotten around to it yet. See https://twitter.com/hdgarrood/status/1282437296592166918 for a comparison

2 Likes

Ok, that’s worse than I expected. I think the main reason why many people have issues with libtinfo and installing PureScript on Linux is that the solution to this issue in the installation guide doesn’t cover all the mainstream distros (only Debian-based), like RedHat Linux-based distros and Arch-based distros. If we added instructions for all mainstream distros, I think people wouldn’t have as mamy issues. I can help with distros that use dnf since I faced and fixed this issue on Fedora recently.

In addition, I faced a similar issue compiling purs from source on Fedora, but I actually needed to install the development edition of curses, so that is another thing to note.

2 Likes

The problem with adding instructions for different distros is that realistically they will very rarely be tested or updated when they stop working, and as far as I’m aware none of the core team actually use RedHat or Arch-based distros so we won’t be able to do that. I don’t want to maintain install instructions if they are likely to provide no benefit or even net negative benefit in the long run (which I think is likely).

I guess you have a point.

At least, do you think it’s a good idea to note in the CONTRIBUTING.md of the PureScript repo that you need to install the development version of curses? There’s no mention of that anywhere.

It should be in INSTALL.md rather than CONTRIBUTING.md, but yes.

Fwiw +1 for removing libtinfo from the purs binary also. libtinfo is not installed on the newer AWS codepipeline build images.

1 Like