-
Notifications
You must be signed in to change notification settings - Fork 134
Description
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-packagebecause it's "official" (and as far as I know it gets this status from being under thepurescriptorg 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-packagehas 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-packagewas 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 thatpsc-packageis still around in the current shape also means that we have to spend energy maintaining things for it in various places (e.g. inpackage-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:
- move
spagoto thepurescriptorganization (as we already did withspacchetti), 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
- put a deprecation notice on
psc-package, redirecting tospago - change the recommendation to
spagoin any "official" docs that would recommendpsc-packageotherwise
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