stack2cabal
stack2cabal copied to clipboard
Convert stack projects to cabal.project + cabal.project.freeze
As cabal constraints are additive, please filter from the generated freeze file any package names that are coming from git `extra-deps`. For instance, inclusion of `any.prometheus ==2.2.3` in the following...
https://docs.haskellstack.org/en/stable/yaml_configuration/#resolver > Note: Starting with Stack 2.0, snapshot is accepted as a synonym for resolver. Only one of these fields is permitted, not both.
https://github.com/commercialhaskell/stack/blob/baa894b12b5b13330e340561cdd1040819498656/doc/pantry.md ```yaml - size: 285152 subdir: wai url: http://github.com/yesodweb/wai/archive/2f8a8e1b771829f4a8a77c0111352ce45a14c30f.zip cabal-file: size: 1717 sha256: 7b46e7a8b121d668351fa8a684810afadf58c39276125098485203ef274fd056 - size: 1442 filepath: acme-missiles-0.3.tar.gz cabal-file: size: 613 sha256: 2ba66a092a32593880a87fb00f3213762d7bca65a687d45965778deb8694c5d1 name: acme-missiles version: '0.3' sha256: e563d8b524017a06b32768c4db8eff1f822f3fb22a90320b7e414402647b735b...
One might want to only freeze hackage index and be independent of the stack snapshot.
E.g. source-repository-package stuff. This would need parsing Cabal file and extracting all deps.
https://github.com/commercialhaskell/stack/blob/baa894b12b5b13330e340561cdd1040819498656/doc/yaml_configuration.md#snapshot-location-base ---- For example: ```yaml snapshot-location-base: https://example.com/snapshots/location/ ``` has the following effect: * `lts-X.Y` expands to `https://example.com/snapshots/location/lts/X/Y.yaml` * `nightly-YYYY-MM-DD` expands to `https://example.com/snapshots/location/nightly/YYYY/M/D.yaml`
We could: 1. cache the repos in `~/.cache` (tedious and hard to manage) 2. try to use the cabal cloned repos if possible
https://github.com/haskell-CI/haskell-ci/issues/405
Only needed to add `aarch64-darwin` to the supported platform list. I did a build and it seems to work just fine. Closes #50