I've been a long time Cask user and I quite like its simplicity when it comes to setting load paths, running binaries (tests, linters...).
However there is many issues with how it works with dependencies. Since Cask tries to support package.el, git cloning and other things it only works "sort of"... in many cases dependencies are broken or not resolved at all, recompilations are broken...
straight.el with its git-first approach seems to pretty much solve all the issues: pinning, resolving to hashes, fetching different branches or tags...
It reminded me very much of the situation in Haskell land where we have stack and cabal and I got thinking maybe we could build a build tool around straight.
For a start what I would want is to have something like:
Have some manifest file for version pinning. straight already seems to have this.
Have ability to download and install the packages in a way that is project-independent so that there is no shadowing. I believe straight can already do this since it operates on git hashes and this is therefore referentially transparent. Ideally they would go to the project directory so they can be independently edited.
<tool> exec <shell command> - this would run the shell command with the EMACSLOADPATH and PATH set so that all the packages and executables are properly resolved.
Have simple command-line interface for use in CI stacks/local development, so things like:
<tool> install
<tool> update
some introspection commands such as <tool> loadpath to produce the load path, <tool> path to produce the path, <tool> files to get the package files and so on.
I would still keep straight.el as pure dep management tool since it's doing that well and not mix it to also be a build tool (maybe a mistake Cask made early on).
I've been a long time Cask user and I quite like its simplicity when it comes to setting load paths, running binaries (tests, linters...).
However there is many issues with how it works with dependencies. Since Cask tries to support package.el, git cloning and other things it only works "sort of"... in many cases dependencies are broken or not resolved at all, recompilations are broken...
straight.el with its git-first approach seems to pretty much solve all the issues: pinning, resolving to hashes, fetching different branches or tags...
It reminded me very much of the situation in Haskell land where we have stack and cabal and I got thinking maybe we could build a build tool around straight.
For a start what I would want is to have something like:
<tool> exec <shell command>
- this would run the shell command with theEMACSLOADPATH
andPATH
set so that all the packages and executables are properly resolved.<tool> install
<tool> update
<tool> loadpath
to produce the load path,<tool> path
to produce the path,<tool> files
to get the package files and so on.I would still keep straight.el as pure dep management tool since it's doing that well and not mix it to also be a build tool (maybe a mistake Cask made early on).