Closed mattapet closed 7 months ago
Thanks for your pull request! It looks like this may be your first contribution to a Google open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA).
View this failed invocation of the CLA check for more information.
For the most up to date status, view the checks section at the bottom of the pull request.
Thanks for the fixes. I'm still looking at the code, but my attempt to use stack-9.8.yaml
didn't go well. I tried to run
cd ghc-source-gen && stack build --dry-run --stack-yaml ./stack-9.8.yaml build
and it fails:
Error: [S-4804]
Stack failed to construct a build plan.
While constructing the build plan, Stack encountered the
following errors. The 'Stack configuration' refers to
the set of package versions specified by the snapshot
(after any dropped packages, or pruned GHC boot
packages; if a boot package is replaced, Stack prunes
all other such packages that depend on it) and any
extra-deps:
In the dependencies for build-1.0:
* algebraic-graphs must match >=0.1.1 && <0.2, but
algebraic-graphs-0.7 is in the Stack configuration
(latest matching version is 0.1.1.1).
* containers must match >=0.5.7.1 && <0.6, but
containers-0.6.8 is in the Stack configuration
(latest matching version is 0.5.11.0).
* extra must match >=1.5.3 && <1.7, but extra-1.7.14
is in the Stack configuration (latest matching
version is 1.6.21).
* mtl must match >=2.2.1 && <2.3, but mtl-2.3.1 is in
the Stack configuration (latest matching version is
2.2.2).
* random must match >=1.1 && <1.2, but random-1.2.1.1
is in the Stack configuration (latest matching
version is 1.1).
* transformers must match >=0.5.2.0 && <0.6, but
transformers-0.6.1.0 is in the Stack configuration
(latest matching version is 0.5.6.2).
The exact configuration was created with this Dockerfile
:
# Installed this first https://docs.docker.com/engine/install/debian/
# sudo docker build -t rl .
# sudo docker run --rm -it rl /bin/bash -l
FROM ubuntu:latest
RUN apt -u update && apt -y upgrade
RUN apt -y install curl
RUN curl -sSL https://get.haskellstack.org/ | sh
RUN stack upgrade
# Create a new user "myuser" (without home directory)
RUN useradd -m myuser
# Optionally set a working directory
WORKDIR /home/myuser
COPY . ghc-source-gen
RUN chown -R myuser ghc-source-gen
# Switch to the new user for subsequent actions
USER myuser
#RUN cd ghc-source-gen && stack build --dry-run --stack-yaml ./stack-9.8.yaml build
I spent some time looking into it, but I can't seem to find where such constraints may be coming from 🤔 I also tried bumping tasty
in efforts to make it work, but I was not successful.
I also tried cloning master
again, and running the same Dockerfile
setup with stack build --dry-run --stack-yaml ./stack-9.6.yaml build
rather than 9.8
, which resulted in basically the same set of errors:
Error: [S-4804]
Stack failed to construct a build plan.
While constructing the build plan, Stack encountered the following errors. The 'Stack configuration' refers to the set of package versions specified by the snapshot (after any dropped packages,
or pruned GHC boot packages; if a boot package is replaced, Stack prunes all other such packages that depend on it) and any extra-deps:
In the dependencies for build-1.0:
* algebraic-graphs must match >=0.1.1 && <0.2, but algebraic-graphs-0.7 is in the Stack configuration (latest matching version is 0.1.1.1).
* containers must match >=0.5.7.1 && <0.6, but containers-0.6.7 is in the Stack configuration (latest matching version is 0.5.11.0).
* extra must match >=1.5.3 && <1.7, but extra-1.7.14 is in the Stack configuration (latest matching version is 1.6.21).
* mtl must match >=2.2.1 && <2.3, but mtl-2.3.1 is in the Stack configuration (latest matching version is 2.2.2).
* random must match >=1.1 && <1.2, but random-1.2.1.1 is in the Stack configuration (latest matching version is 1.1).
* transformers must match >=0.5.2.0 && <0.6, but transformers-0.6.1.0 is in the Stack configuration (latest matching version is 0.5.6.2).
The above is/are needed since build is a build target.
Some different approaches to resolving some or all of this:
* To ignore all version constraints and build anyway, in /home/myuser/.stack/config.yaml (global configuration) or /home/myuser/ghc-source-gen/stack-9.6.yaml (project-level configuration),
set allow-newer: true.
* To ignore certain version constraints and build anyway, also add these package names under allow-newer-deps: build.
* Recommended action: try adding the following to your extra-deps in /home/myuser/ghc-source-gen/stack-9.6.yaml (project-level configuration):
- algebraic-graphs-0.1.1.1@sha256:af54e89839521f04f3b4bd980112701a31c7cf0d612776f8aa65083bcd1f3090,7734
- containers-0.5.11.0@sha256:1af9da3baaddc4f4aaea016b07d4c38ddbf702ce3f0df31120531950837996b8,17308
- extra-1.6.21@sha256:25ace0d94971ffd70623dc6d79bd2905e8ad2e343a10ff025097af5f7aeb599d,2774
- mtl-2.2.2@sha256:1050fb71acd9f5d67da7d992583f5bd0eb14407b9dc7acc122af1b738b706ca3,2261
- random-1.1@sha256:7b67624fd76ddf97c206de0801dc7e888097e9d572974be9b9ea6551d76965df,1777
- transformers-0.5.6.2@sha256:6c959d14430f4deffb99579ba019de07c3d852a2122b6f449344386c7d75ff1d,3172
I myself am not that familiar with stack, so the errors don't tell me much. Do you know what might be the best please to look for the dependency mismatches? 🙏
I confirmed the change works fine with cabal. So let's remove the stack-9.8.yaml file that we know doesn't work and submit the rest. Thanks!
Awesome, thanks! I removed the stack-9.8.yaml
. Should we also adjust the CI anyhow as it appears to be using stack
@jinwoo could you merge this?
Hm... All CI jobs seem to have failed after I pushed this: https://github.com/google/ghc-source-gen/actions/runs/8510280488. Can someone take a look?
Alright, so it seems we've got two issues:
stack-9.8.yaml
. If you read the messages above, it seems there are some issues with dependencies, so we were not sure what would be the best course of action there. Do you have any recommendations?@blackgnezdo Any idea? I'm not familiar with GitHub actions. Can we have it use cabal instead of stack?
@mattapet could you try restoring stack-9.8.yaml
but with resolver: nightly-2024-03-29
(late one had it nightly-2023-something
)?