{"id":18082701,"url":"https://github.com/juhp/stack-all","last_synced_at":"2025-04-12T17:12:51.898Z","repository":{"id":54431497,"uuid":"307989041","full_name":"juhp/stack-all","owner":"juhp","description":"build Haskell projects over Stackage LTS major versions","archived":false,"fork":false,"pushed_at":"2024-12-13T08:16:02.000Z","size":111,"stargazers_count":5,"open_issues_count":0,"forks_count":2,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-04-12T17:12:46.588Z","etag":null,"topics":["haskell","stack"],"latest_commit_sha":null,"homepage":"https://hackage.haskell.org/package/stack-all","language":"Haskell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/juhp.png","metadata":{"files":{"readme":"README.md","changelog":"ChangeLog.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-10-28T11:04:10.000Z","updated_at":"2025-01-02T23:51:10.000Z","dependencies_parsed_at":"2024-05-31T15:37:22.446Z","dependency_job_id":"81a614a7-04d5-4d4b-a388-3e50cf846b6e","html_url":"https://github.com/juhp/stack-all","commit_stats":{"total_commits":93,"total_committers":3,"mean_commits":31.0,"dds":"0.22580645161290325","last_synced_commit":"7bdea376f10a54e51ad44dcfded7db8be882ef42"},"previous_names":[],"tags_count":20,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/juhp%2Fstack-all","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/juhp%2Fstack-all/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/juhp%2Fstack-all/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/juhp%2Fstack-all/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/juhp","download_url":"https://codeload.github.com/juhp/stack-all/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248602312,"owners_count":21131616,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["haskell","stack"],"created_at":"2024-10-31T14:05:43.548Z","updated_at":"2025-04-12T17:12:51.877Z","avatar_url":"https://github.com/juhp.png","language":"Haskell","readme":"# stack-all\n\nA CLI tool for building Haskell projects easily\nover several Stackage major versions.\n\nI use this to do Haskell build CI for projects locally with stack.\n\n## Usage\n\n`stack-all` by default runs `stack build` over Stackage Nightly and\nLTS major versions\n(the current default range is nightly \u0026 major LTS versions back to lts-18)\ncorresponding to latest major ghc minor versions,\nusing appropriate stack `--resolver` options.\n\nNote that `stack` only works in a project if a `stack.yaml` file exists.\nIf no `stack.yaml` file is found in a .cabal project,\n`stack-all` will create one if there is a .cabal or \"package.yaml\" file.\nOf course it may still fail to build, but this allows for quick attempts\nto build a package that does not include a stack.yaml file.\n\nSince 0.6, stack-all also works outside projects, like stack itself does.\n\n### Help output\n`$ stack-all --version`\n\n```\n0.6.4\n```\n`$ stack-all --help`\n\n```\nBuild project over Stackage major versions\n\nUsage: stack-all [--version] [-k|--keep-going] [-D|--debug] [--refresh-cache] \n                 [-n|--newest MAJOR] [(-o|--oldest MAJOR) | (-a|--all-lts)] \n                 [(-c|--create-config) | (-d|--default-resolver MAJOR) | \n                   (-u|--update-resolver) | (-s|--make-lts MAJOR) | \n                   [MAJORVER... COMMAND...]]\n\n  https://github.com/juhp/stack-all#readme\n\nAvailable options:\n  -h,--help                Show this help text\n  --version                Show version\n  -k,--keep-going          Keep going even if an LTS fails\n  -D,--debug               Verbose stack build output on error\n  --refresh-cache          Force refresh of stackage snapshots.json cache\n  -n,--newest MAJOR        Newest LTS release to build from\n  -o,--oldest MAJOR        Oldest compatible LTS release\n  -a,--all-lts             Try to build back to LTS 1 even\n  -c,--create-config       Create a project .stack-all file\n  -d,--default-resolver MAJOR\n                           Set stack.yaml resolver\n  -u,--update-resolver     Update stack.yaml resolver\n  -s,--make-lts MAJOR      Create a stack-ltsXX.yaml file\n  -S,--make-all-lts        Create all stack-ltsXX.yaml files\n```\n\n### Overriding stack.yaml\n`stack-all` can use `stack-ltsXX.yaml` files to override the default\n`stack.yaml` file for particular Stackage major versions.\nNote that a `stack-ltsXX.yaml` file will also be used for\nolder LTS major versions until another `stack-ltsYY.yaml` file is found.\n`stack-nightly.yaml` is also supported, but used only for nightly.\n\nFor example if you have `stack-lts20.yaml` and `stack-lts18.yaml` files\nin your project,\nthen `stack.yaml` will be used as normal to build nightly, lts-22 and lts-21,\nbut `stack-lts20.yaml` will be used for building lts-20 and lts-19,\nand `stack-lts18.yaml` will be used for lts-18, lts-16 (and older).\nSince `stack-all` overrides the exact resolver with the latest minor snapshot,\nthe exact minor Stackage version specified in the `stack*.yaml` files\ndoesn't actually matter: `stack-all` always uses the latest published\nminor releases of Stackage major versions.\n\n`stack-ltsXX.yaml` files can be easily created using\n`stack-all --make-lts ltsXX` (or `-s ltsXX` for short).\n\n(Other versioned stack.yaml filenames like stack-ghc-8.8.yaml\nare not currently supported.)\n\n### Specifying LTS versions\nYou can abbreviate `lts-XX` args to `ltsXX` on the commandline.\n`lts` is also accepted and resolves to the latest major LTS version.\n\nYou can also use ghc major version aliases:\neg `ghc9.6` corresponds to `lts22` or `ghc-9.2` to `lts-20`.\n\nThere are `--oldest`  and `--newest` options to specify the range of\nlts versions to build over:\n\nYou can specify the oldest major LTS to build for with eg `stack-all -o lts16`.\nOtherwise if not configured the default oldest LTS is currently `lts-18`.\n\nSimilarly you can specify the newest LTS version to build from with\neg `stack-all -n lts20`. (The default is to build from nightly.)\n\nAlternatively, one can give one or more explicit LTS major versions to build\nfor as arguments: eg `stack-all lts19` if you only wish to build that version.\n\n### Configuring the oldest and/or newest LTS to build\nYou can configure the oldest working LTS major version for your project\nby running for example `stack-all -c -o lts-19` which generates a `.stack-all`\nproject config file like this:\n```\n[versions]\n# lts-18 too old\noldest = lts-19\n```\n(the comment line can be used to document why the older LTS doesn't work).\nThis specifies that the oldest LTS version to build for is lts-19.\n\nThe newest LTS to build with stack-all can similarly be configured:\n`stack-all -c -n lts21` or setting `newest = lts-21`.\n\n### Running other stack commands\nBy default `stack-all` just runs the stack `build` command over\nStackage major versions.\n\nYou can also specify a stack command to run with options on the commandline:\neg\n```\n$ stack-all test --no-rerun-tests\n```\nwill run `stack test` over the LTS versions instead.\n\n\nAny stack command can be used, possibly outside a project,\neg: `stack-all list aeson`\n\nHappy stack building!\n\n## Install\nThe project is released on Hackage.\n\nYou can also build from a git clone with `stack install` or `cabal install`.\n\n## Collaboration\nThe project is hosted at https://github.com/juhp/stack-all under a BSD license.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjuhp%2Fstack-all","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjuhp%2Fstack-all","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjuhp%2Fstack-all/lists"}