Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Closed
f-f opened this issue Sep 22, 2019 · 12 comments
Closed

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

f-f opened this issue Sep 22, 2019 · 12 comments
Labels

Comments

@f-f
Copy link
Member

f-f commented Sep 22, 2019

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

@garyb
Copy link
Member

garyb commented Sep 22, 2019

No argument from me. In my head I already thought we promoted spago over psc-package, but indeed it appears not!

@hdgarrood
Copy link
Contributor

Yes, I’m on board. I think we’ll also need to update the purescript.org website and the getting started guide in the documentation repo.

@kritzcreek
Copy link
Member

I'm 100% on board.

I think we should also move psc-package into purescript-deprecated. It was an experiment to see if package-sets were a viable way of going about package management, and @f-f and all the contributors here showed that it is. So psc-package really doesn't fulfill a purpose anymore.

@f-f
Copy link
Member Author

f-f commented Sep 23, 2019

@kritzcreek how about just archiving the repo?

@kritzcreek
Copy link
Member

Yeah if that works that's fine as well. I just want to make it very clear that people shouldn't be picking up psc-package anymore.

@hdgarrood
Copy link
Contributor

Is there any disadvantage to moving it to @purescript-deprecated? That's always how we have deprecated things which previously used to live under @purescript up until now, so unless there's a specific reason to keep it under @purescript I'd prefer to move it. Note that GitHub will set up a redirect so that any existing links should still work.

@joneshf
Copy link
Member

joneshf commented Sep 23, 2019

Anything that makes #288 closer to reality gets a 👍 from me.

@f-f
Copy link
Member Author

f-f commented Sep 23, 2019

Alright, it looks like there is consensus on this, so I started doing things:

I plan to take a closer look at the documentation repo once these all get in, there are things like this document that could do with a refresh

@thomashoneyman
Copy link
Member

I'm a bit late to this discussion, but an enthusiastic 👍 from me as well

@f-f f-f added the RFC label Oct 3, 2019
@csicar
Copy link
Contributor

csicar commented Oct 24, 2019

Might also want to update the documentation (which still refers to pulp as the build tool) https://github.com/purescript/documentation/blob/master/guides/Getting-Started.md#setting-up-the-development-environment

@f-f
Copy link
Member Author

f-f commented Jan 18, 2020

This just happened, thanks everyone 🙂 ❤️ 🎉

@f-f f-f closed this as completed Jan 18, 2020
@f-f
Copy link
Member Author

f-f commented Jan 24, 2020

I'd need to cut a release but I don't have access to CI administration for the project under the purescript org, so I cannot add the various publishing tokens there because I'd need to be a member of purescript, and for some reasons I cannot be pulled in as a member of the org (more info on Discourse)

So until this bureaucracy gets sourted out:

  • I moved the repo back to the spacchetti org so I can publish releases
  • I'll reopen this issue to track this

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

7 participants