purescript / psc-package

A package manager for PureScript based on package sets
https://psc-package.readthedocs.io
Other
229 stars 45 forks source link

Feature request: add an extraDepends section to psc-package.json #135

Closed Dretch closed 5 years ago

Dretch commented 6 years ago

Right now this is the reason I keep using bower instead of psc-package. I want to use a newer version of a library than is available in a public package set, and just using bower is easier than maintaining my own package set.

I just want to be able to say: clone this git repo and add it to the compile path (and ignore the package of the same name in the package set). I can do (essentially) this with bower, but psc-package makes me do extra busy work setting up a package set that I will never re-use in any other project.

Is this a reasonable request?

justinwoo commented 6 years ago

What you describe is already reality in spacchetti with local package set overrides with remote sources: https://spacchetti.readthedocs.io/en/latest/local-setup.html

As for some kind of hacked-in feature to psc-package, I don't want to maintain it, and I would rather that users actually either used spacchetti and improved on it or came up with better solutions themselves.

Dretch commented 6 years ago

I appreciate that spacchetti exists, and conceptually I like it.

I would certainly use it were it easier, but right now continuing to use bower causes less friction than requiring dhall to be installed and adding more build scripts.

f-f commented 6 years ago

If we would support Dhall natively here in psc-package we could basically integrate spacchetti in here (and maintaining one thing is less work than two). It's been a while I'm thinking a psc-package.dhall would be really cool to have anyways (because then we'd have a type for it, we could evolve it, we could support additional stuff wrt its json counterpart - e.g. this extraDeps, etc etc)

@justinwoo would a Dhall integration be welcome here? I could PR+maintain it

justinwoo commented 6 years ago

No, this project only supports a basic package set that can be generated from any tool, e.g. https://spacchetti.readthedocs.io/en/latest/local-setup.html#with-the-cli

justinwoo commented 6 years ago

At least, for the suggestion of using dhall to drive operations, I think https://github.com/justinwoo/spacchetti-cli would be a good playground to throw around bricks in

justinwoo commented 5 years ago

Since this last comment, there is now a full CLI project in https://github.com/spacchetti/spago that can replace many usages of psc-package for some people, if they want to use Dhall to configure package sets. In my own uses, I've sometimes been using this to prepare a local package set for psc-package to consume. See its README for more information.

justinwoo commented 5 years ago

For true tooling perverts there is also Psc-Package2Nix, where you might simply add more dependencies by either defining more derivations to be copied into .psc-package/, or use the bower-style setup and allow Bower to install on top of non-bower deps shimmed into bower_components/: https://github.com/justinwoo/psc-package2nix

Dretch commented 5 years ago

I am closing this because Spago does the job. Thanks @justinwoo !