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

Add support for Haskell (Stack) #49

Open
ode opened this issue Aug 26, 2020 · 1 comment
Open

Add support for Haskell (Stack) #49

ode opened this issue Aug 26, 2020 · 1 comment
Labels
question Further information is requested

Comments

@ode
Copy link

ode commented Aug 26, 2020

I'm working on haskell(stack) support on my repo.

Stack works differently than most other package management tools. Instead of giving a version to each dependency, Stack uses curated sets to packages that work well together as "resolvers". packages not on stack can be specified with versions.

Stack therefore uses a minimum of two files: one for configuration and version specification of non-stackage packages and one for listing all dependencies. Additionally, one file for storing sha256 sums of the packages to ensure safe builds.
a reference

I've listed the first file (stack.yaml) as lockfile and second (project.cabal) as the specfile. While they are close, they do not fit into the traditional idea of lockfiles and specfiles. Therefore, ListSpecFile will return package names only without version and ListLockFile will return some packages names along with version. What side-effects will this have?

Also, I need to know how repl.it's package manager UI uses the upm add command: with or without the version specification provided by PkgInfo.

@blast-hardcheese blast-hardcheese added the question Further information is requested label Dec 23, 2023
@blast-hardcheese
Copy link
Collaborator

Hey! Pardon the delay in response, I'm trying to work through the languishing issues here.

What I'm gathering is that there may need to be the concept of specfile and lockfile groups, at the very least an array of possible lockfile and specfile locations, since from a cursory glance at the documentation there's a stack.yaml at the project root, and then a *.cabal for each package defined inside a project.

This doesn't sound too onerous, other than the --upgrade argument to a number of commands just deletes whatever lockfile you have specified, which seems like it could cause some problems. Can the cabal files be regenerated from the stack.yaml in all cases?

@blast-hardcheese blast-hardcheese changed the title questions about usage Add support for Haskell (Stack) Dec 29, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question Further information is requested
Projects
None yet
Development

No branches or pull requests

3 participants
@blast-hardcheese @ode and others