Skip to content

RFC: move Spago to the "purescript" org #423

@f-f

Description

@f-f

First of all, a bit of background: when I first came to PureScript-land, I was a bit baffled by its package management story (I was coming from Haskell's stack, which I find having a good UX).
At first I went with bower, later switched to psc-package, then got frustrated about its limitations and started talking with @justinwoo about this. At this point he had a bunch of "alternative tools", so we deployed them at work following his suggestion, but eventually we felt things got messy and the whole experience was not super pleasant (we were onboarding the org to PS at the time, so "pleasantness" was an important aspect).

So I bit the bullet and started adding code to what at the time was called spacchetti-cli to make it nice(r) to use (I initially wanted to contribute to psc-package, but my effort got redirected)
Fast-forward one year and the project is now called spago, includes all psc-package's features plus many other things, has 300 stars here and 1k downloads per week on npm. It makes me happy to see that this small thing I started to address my pains has helped others too 🙂

Now this is cool, but there are some real problems in the current state of things:

  • newcomers find out about psc-package because it's "official" (and as far as I know it gets this status from being under the purescript org on GitHub), then find out about its limitations and rough edges - the biggest one is the inability of declaring project-local additions to the package set - then ask around, and then get redirected to Spago.
    I've seen this happen many times, and I think it does hurt newcomers' experience.
  • moreover, psc-package has been declared as "stable" - as "not going to receive updates" - by its current maintainer @justinwoo; this is cool if you're already using it and have a workflow, but not really if you're picking it up for a new project, because you'd be missing out on whatever improvements would have been done to it if it wasn't code-frozen (improvements that likely went into Spago instead).
  • As far as I know psc-package was started as an experiment to evaluate package sets in PureScript (someone with more historical context please fix any inaccuracies I have here), and at this point I think it has been a pretty successful one 🙂
    Though the fact that psc-package is still around in the current shape also means that we have to spend energy maintaining things for it in various places (e.g. in package-sets, in Spago itself, in all the discussions about packages, etc).

This kind of papercuts/attrition is sometimes fine, but I think at this point Spago has gained enough maturity/usage that doing something about this offers a nice payoff in terms of usability of the ecosystem.

So here I propose that, much in the spirit of https://github.com/purescript/package-sets/issues/270, we:

  1. move spago to the purescript organization (as we already did with spacchetti), to:
  • mark that it's the "state of the art" for package-sets-based package management in PureScript
  • make it more visible to the wider community, so that newcomers would actually stumble on it instead of relying on word of mouth
  1. put a deprecation notice on psc-package, redirecting to spago
  2. change the recommendation to spago in any "official" docs that would recommend psc-package otherwise

I'd be happy to do all these changes if we are fine with this, and I'd like to hear inputs from the core team about it: cc @kritzcreek @garyb @hdgarrood @LiamGoodacre @joneshf @natefaubion

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions