diff --git a/.github/workflows/doctest/action.yml b/.github/workflows/doctest/action.yml new file mode 100644 index 0000000..7e686b5 --- /dev/null +++ b/.github/workflows/doctest/action.yml @@ -0,0 +1,48 @@ +name: "Run doctest on a Cabal package" + +inputs: + ghc: + description: 'Which GHC version to use for doctest' + type: string + required: true + version: + description: 'Which version of doctest to use' + type: string + required: false + default: 'latest' + +outputs: + path: + description: "The path to the doctest executable" + value: ${{ steps.result.outputs.result }} + +runs: + using: "composite" + steps: + - name: "Check for cached executable" + id: cache + uses: actions/github-script@v7 + with: + result-encoding: string + script: | + const tc = require('@actions/tool-cache'); + return null; + + - name: "Setup Haskell environment" + id: setup + uses: haskell-actions/setup@v2.7 + with: + ghc-version: "${{ inputs.ghc }}" + cabal-update: true + + - name: "Result" + id: result + uses: actions/github-script@v7 + with: + result-encoding: string + script: | + if (${{ steps.cache.outputs.result }}) { + return ${{ steps.cache.outputs.result }}; + } else { + return null; + } diff --git a/.github/workflows/linters.yml b/.github/workflows/linters.yml new file mode 100644 index 0000000..1fd86ed --- /dev/null +++ b/.github/workflows/linters.yml @@ -0,0 +1,51 @@ +name: Run linters + +on: + pull_request: {} + push: + branches: + - "main" + +jobs: + cabal-gild: + runs-on: ubuntu-latest + steps: + - name: 'Set up cabal-gild' + uses: tfausak/cabal-gild-setup-action@v2 + + - name: 'Checkout the repository' + uses: actions/checkout@v4 + + - name: 'Check package' + run: cabal-gild --mode check --input os-string-aeson.cabal + + fourmolu: + runs-on: ubuntu-latest + steps: + - name: 'Checkout the repository' + uses: actions/checkout@v4 + + - name: 'Check that the source code is formatted' + uses: fourmolu/fourmolu-action@v10 + with: + pattern: | + src/**/*.hs + os-string-aeson-internal/**/*.hs + examples/**/*.hs + test/**/*.hs + + hlint: + runs-on: ubuntu-latest + steps: + - name: 'Checkout the repository' + uses: actions/checkout@v4 + + - name: 'Set up HLint' + uses: haskell-actions/hlint-setup@v2 + + - name: 'Run HLint' + uses: haskell-actions/hlint-run@v2 + with: + path: '["src", "os-string-aeson-internal", "examples", "test"]' + fail-on: warning + diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 92b5483..d111dce 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -39,6 +39,39 @@ jobs: ghc-version: "${{ matrix.ghc }}" cabal-update: true + - name: "Install doctest" + id: install-doctest + shell: bash + run: | + if [[ "${RUNNER_TEMP}" == '' ]]; then + echo 'Expected $RUNNER_TEMP to be defined' + exit 1 + fi + + if [[ "${RUNNER_TOOL_CACHE}" == '' ]]; then + echo 'Expected $RUNNER_TOOL_CACHE to be defined' + exit 1 + fi + + doctest="doctest-${{ steps.setup.outputs.ghc-version }}" + if [[ "${{ runner.os }}" == 'Windows' ]]; then + doctest="${doctest}.exe" + fi + result="${RUNNER_TOOL_CACHE}/${doctest}" + + if [[ ! -x "${result}" ]]; then + tmpdir="$(mktemp -d "${RUNNER_TEMP}/doctest.XXXX")" + cabal install --ignore-project --installdir "${tmpdir}" --install-method copy doctest + installed="${tmpdir}/doctest" + if [[ "${{ runner.os }}" == 'Windows' ]]; then + installed="${installed}.exe" + fi + cp "${installed}" "${result}" + fi + "${result}" --version + + echo "path=${result}" >> "${GITHUB_OUTPUT}" + - name: "Configure the build" run: | cabal configure --enable-tests --enable-benchmarks --disable-documentation @@ -58,7 +91,9 @@ jobs: - name: "Install dependencies" # If we had an exact cache hit, the dependencies will be up to date. if: steps.cache.outputs.cache-hit != 'true' - run: cabal build all --only-dependencies --enable-documentation + run: | + cabal build all --only-dependencies + cabal build all --only-dependencies --enable-documentation - name: "Save cached dependencies" # Cache dependencies already here, so that we do not have to rebuild them should the subsequent steps fail. @@ -78,16 +113,13 @@ jobs: - name: "Run doctests" shell: bash run: | - if [[ "${{ runner.os }}" == 'Windows' ]] - then - doctest="$HOME/.local/bin/doctest.exe" - else - doctest="$HOME/.local/bin/doctest" - fi - cabal install --ignore-project --installdir "$HOME/.local/bin" doctest - "${doctest}" --version - cabal repl --with-compiler "${doctest}" 'os-string-aeson:lib:os-string-aeson-internal' - cabal repl --with-compiler "${doctest}" 'os-string-aeson:lib:os-string-aeson' + targets=( + 'os-string-aeson:lib:os-string-aeson-internal' + 'os-string-aeson:lib:os-string-aeson' + ) + for target in "${targets[@]}"; do + cabal repl --with-compiler "${{ steps.install-doctest.outputs.path }}" --build-depends aeson "${target}" + done - name: "Check cabal file" run: cabal check diff --git a/.mergify.yml b/.mergify.yml index e92aba5..1238dd8 100644 --- a/.mergify.yml +++ b/.mergify.yml @@ -4,6 +4,8 @@ queue_rules: # See https://docs.mergify.io/conditions/#validating-all-status-checks - 'check-success~=.* on ubuntu-latest' - 'check-success~=.* on windows-latest' + merge_method: squash + pull_request_rules: - name: 'Automatically merge pull requests' conditions: @@ -13,9 +15,9 @@ pull_request_rules: actions: queue: name: default - method: squash + - name: 'Delete head branch after merge' conditions: - - merged + - 'merged' actions: delete_head_branch: {} diff --git a/os-string-aeson.cabal b/os-string-aeson.cabal index 069137a..b116a3a 100644 --- a/os-string-aeson.cabal +++ b/os-string-aeson.cabal @@ -30,7 +30,7 @@ extra-doc-files: tested-with: ghc ==8.10.7 || ==9.0.2 || ==9.2.8 || ==9.4.8 || ==9.6.6 || ==9.8.2 || ==9.10.1 -flag old-os-string +flag os-string description: Use an older version of the os-string library. manual: False default: False @@ -51,6 +51,20 @@ common language default-language: Haskell2010 +common os-string-compat + if flag(os-string) + -- We don't actually need filepath, but we want to make sure that it is not + -- <1.5 if it brought into scope by some tool (Looking at you, doctest). + build-depends: + filepath >=1.5, + os-string >=2.0.0 && <2.1, + else + build-depends: + filepath >=1.4.100.0 && <1.6, + os-string <2, + + ghc-options: -Wno-deprecations + common rts ghc-options: -threaded @@ -59,34 +73,21 @@ common rts library import: language + import: os-string-compat hs-source-dirs: src/ build-depends: base, os-string-aeson-internal, - -- Dependencies for doctests - build-depends: - aeson - -- cabal-gild: discover ./src/ --exclude=Setup.hs --exclude=**/Include.hs exposed-modules: System.OsString.Aeson System.OsString.Aeson.Posix System.OsString.Aeson.Windows - -- Only needed for doctests - if flag(old-os-string) - build-depends: - filepath >=1.4.100.0 && <1.5, - os-string <2, - - ghc-options: -Wno-deprecations - else - build-depends: - os-string >=2.0.0 && <2.1 - library os-string-aeson-internal import: language + import: os-string-compat visibility: public hs-source-dirs: os-string-aeson-internal/ build-depends: @@ -105,18 +106,9 @@ library os-string-aeson-internal System.OsString.Aeson.Internal.Types System.OsString.Aeson.Internal.Windows - if flag(old-os-string) - build-depends: - filepath >=1.4.100.0 && <1.5, - os-string <2, - - ghc-options: -Wno-deprecations - else - build-depends: - os-string >=2.0.0 && <2.1 - test-suite examples import: language + import: os-string-compat import: rts type: exitcode-stdio-1.0 hs-source-dirs: examples @@ -135,18 +127,9 @@ test-suite examples HKD2 Utils - if flag(old-os-string) - build-depends: - filepath >=1.4.100.0 && <1.5, - os-string <2, - - ghc-options: -Wno-deprecations - else - build-depends: - os-string >=2.0.0 && <2.1 - test-suite test import: language + import: os-string-compat import: rts type: exitcode-stdio-1.0 hs-source-dirs: test @@ -170,16 +153,6 @@ test-suite test Units.Posix Units.Windows - if flag(old-os-string) - build-depends: - filepath >=1.4.100.0 && <1.5, - os-string <2, - - ghc-options: -Wno-deprecations - else - build-depends: - os-string >=2.0.0 && <2.1 - source-repository head type: git location: https://github.com/mmhat/os-string-aeson diff --git a/stack.ghc-9.2.yaml b/stack.ghc-9.2.yaml deleted file mode 100644 index 0bb8b24..0000000 --- a/stack.ghc-9.2.yaml +++ /dev/null @@ -1,10 +0,0 @@ -resolver: lts-20.26 - -extra-deps: - - base64-1.0@sha256:ab8084608505f30d6cf7dd790271f927fd8a00956c5e7f5546f5cf56b298022c,2991 - - os-string-2.0.6@sha256:7699e7ae9bf74d056a62f384ceef8dfb2aa660f3f7c8016e9703f3b995e5e030,3259 - - text-2.0.2@sha256:71b5fa8c64d3c1fd0a08f993463220867b08290a2256e94b0952bf0e8f5a45cc,9905 - -flags: - os-string-aeson: - old-os-string: false diff --git a/stack.ghc-9.2.yaml.lock b/stack.ghc-9.2.yaml.lock deleted file mode 100644 index 0943081..0000000 --- a/stack.ghc-9.2.yaml.lock +++ /dev/null @@ -1,33 +0,0 @@ -# This file was autogenerated by Stack. -# You should not edit this file by hand. -# For more information, please see the documentation at: -# https://docs.haskellstack.org/en/stable/lock_files - -packages: -- completed: - hackage: base64-1.0@sha256:ab8084608505f30d6cf7dd790271f927fd8a00956c5e7f5546f5cf56b298022c,2991 - pantry-tree: - sha256: 62150ae24db8e07f966679024406de4cdfe13556c9afce807f4f24d7ec03d0b5 - size: 2229 - original: - hackage: base64-1.0@sha256:ab8084608505f30d6cf7dd790271f927fd8a00956c5e7f5546f5cf56b298022c,2991 -- completed: - hackage: os-string-2.0.6@sha256:7699e7ae9bf74d056a62f384ceef8dfb2aa660f3f7c8016e9703f3b995e5e030,3259 - pantry-tree: - sha256: 4743363ed98362a8541108a2e7febb7ba32acd337d29dbff4472fafbe246589c - size: 2218 - original: - hackage: os-string-2.0.6@sha256:7699e7ae9bf74d056a62f384ceef8dfb2aa660f3f7c8016e9703f3b995e5e030,3259 -- completed: - hackage: text-2.0.2@sha256:71b5fa8c64d3c1fd0a08f993463220867b08290a2256e94b0952bf0e8f5a45cc,9905 - pantry-tree: - sha256: 25f3b6dd211e30f9e0ef5047bb9f30df7a9296cf1043873e31558196dfe78676 - size: 7514 - original: - hackage: text-2.0.2@sha256:71b5fa8c64d3c1fd0a08f993463220867b08290a2256e94b0952bf0e8f5a45cc,9905 -snapshots: -- completed: - sha256: 5a59b2a405b3aba3c00188453be172b85893cab8ebc352b1ef58b0eae5d248a2 - size: 650475 - url: https://raw.githubusercontent.com/commercialhaskell/stackage-snapshots/master/lts/20/26.yaml - original: lts-20.26 diff --git a/stack.ghc-9.4.yaml b/stack.ghc-9.4.yaml deleted file mode 100644 index c159253..0000000 --- a/stack.ghc-9.4.yaml +++ /dev/null @@ -1,8 +0,0 @@ -resolver: lts-21.25 - -extra-deps: - - base64-1.0@sha256:ab8084608505f30d6cf7dd790271f927fd8a00956c5e7f5546f5cf56b298022c,2991 - -flags: - os-string-aeson: - old-os-string: false diff --git a/stack.ghc-9.4.yaml.lock b/stack.ghc-9.4.yaml.lock deleted file mode 100644 index 707d2a6..0000000 --- a/stack.ghc-9.4.yaml.lock +++ /dev/null @@ -1,19 +0,0 @@ -# This file was autogenerated by Stack. -# You should not edit this file by hand. -# For more information, please see the documentation at: -# https://docs.haskellstack.org/en/stable/lock_files - -packages: -- completed: - hackage: base64-1.0@sha256:ab8084608505f30d6cf7dd790271f927fd8a00956c5e7f5546f5cf56b298022c,2991 - pantry-tree: - sha256: 62150ae24db8e07f966679024406de4cdfe13556c9afce807f4f24d7ec03d0b5 - size: 2229 - original: - hackage: base64-1.0@sha256:ab8084608505f30d6cf7dd790271f927fd8a00956c5e7f5546f5cf56b298022c,2991 -snapshots: -- completed: - sha256: a81fb3877c4f9031e1325eb3935122e608d80715dc16b586eb11ddbff8671ecd - size: 640086 - url: https://raw.githubusercontent.com/commercialhaskell/stackage-snapshots/master/lts/21/25.yaml - original: lts-21.25 diff --git a/stack.ghc-9.6.yaml b/stack.ghc-9.6.yaml deleted file mode 100644 index 5ca4c58..0000000 --- a/stack.ghc-9.6.yaml +++ /dev/null @@ -1,8 +0,0 @@ -resolver: lts-22.31 - -extra-deps: - - base64-1.0@sha256:ab8084608505f30d6cf7dd790271f927fd8a00956c5e7f5546f5cf56b298022c,2991 - -flags: - os-string-aeson: - old-os-string: false diff --git a/stack.ghc-9.6.yaml.lock b/stack.ghc-9.6.yaml.lock deleted file mode 100644 index 25e2bdc..0000000 --- a/stack.ghc-9.6.yaml.lock +++ /dev/null @@ -1,19 +0,0 @@ -# This file was autogenerated by Stack. -# You should not edit this file by hand. -# For more information, please see the documentation at: -# https://docs.haskellstack.org/en/stable/lock_files - -packages: -- completed: - hackage: base64-1.0@sha256:ab8084608505f30d6cf7dd790271f927fd8a00956c5e7f5546f5cf56b298022c,2991 - pantry-tree: - sha256: 62150ae24db8e07f966679024406de4cdfe13556c9afce807f4f24d7ec03d0b5 - size: 2229 - original: - hackage: base64-1.0@sha256:ab8084608505f30d6cf7dd790271f927fd8a00956c5e7f5546f5cf56b298022c,2991 -snapshots: -- completed: - sha256: acaab6ca693211938d1542abcb1c83a2f298b9f6b571854a9d38febe39b6408e - size: 719577 - url: https://raw.githubusercontent.com/commercialhaskell/stackage-snapshots/master/lts/22/31.yaml - original: lts-22.31 diff --git a/stack.yaml b/stack.yaml index 84c8558..4572b94 120000 --- a/stack.yaml +++ b/stack.yaml @@ -1 +1 @@ -stack.ghc-9.6.yaml \ No newline at end of file +stack/stack.ghc-9.6.yaml \ No newline at end of file diff --git a/stack.yaml.lock b/stack.yaml.lock index 06be9ba..b3d91aa 120000 --- a/stack.yaml.lock +++ b/stack.yaml.lock @@ -1 +1 @@ -stack.ghc-9.6.yaml.lock \ No newline at end of file +stack/stack.ghc-9.6.yaml.lock \ No newline at end of file diff --git a/stack/stack.ghc-9.2+os-string.yaml b/stack/stack.ghc-9.2+os-string.yaml new file mode 100644 index 0000000..d125405 --- /dev/null +++ b/stack/stack.ghc-9.2+os-string.yaml @@ -0,0 +1,19 @@ +resolver: lts-20.26 + +extra-deps: + - hashable-1.4.7.0 + - base64-1.0@sha256:ab8084608505f30d6cf7dd790271f927fd8a00956c5e7f5546f5cf56b298022c,2991 + - directory-1.3.8.5@sha256:fbeec9ec346e5272167f63dcb86af513b457a7b9fc36dc818e4c7b81608d612b,3166 + - filepath-1.5.3.0@sha256:0c64bc9a4f5946c86a8f0527bf40c8ba51e2c02d36eea0e20ea558c8d94166e8,4945 + - os-string-2.0.6@sha256:7699e7ae9bf74d056a62f384ceef8dfb2aa660f3f7c8016e9703f3b995e5e030,3259 + - process-1.6.21.0@sha256:685bc68759da31b5f152092fe664e1644e84f6dc0ae7a6c143e8564a1d6dafe8,2644 + - text-2.0.2@sha256:71b5fa8c64d3c1fd0a08f993463220867b08290a2256e94b0952bf0e8f5a45cc,9905 + - unix-2.8.5.1@sha256:3f702a252a313a7bcb56e3908a14e7f9f1b40e41b7bdc8ae8a9605a1a8686f06,9808 + +flags: + directory: + os-string: true + os-string-aeson: + os-string: true + unix: + os-string: true diff --git a/stack/stack.ghc-9.2+os-string.yaml.lock b/stack/stack.ghc-9.2+os-string.yaml.lock new file mode 100644 index 0000000..5f47605 --- /dev/null +++ b/stack/stack.ghc-9.2+os-string.yaml.lock @@ -0,0 +1,68 @@ +# This file was autogenerated by Stack. +# You should not edit this file by hand. +# For more information, please see the documentation at: +# https://docs.haskellstack.org/en/stable/lock_files + +packages: +- completed: + hackage: hashable-1.4.7.0@sha256:573f3ab242f75465a0d67ce9d84202650a1606575e6dbd6d31ffcf4767a9a379,6629 + pantry-tree: + sha256: 9ec168505c52fa389b7447a1251b302e32537adeecac88c2aa72beed53beb3bd + size: 1578 + original: + hackage: hashable-1.4.7.0 +- completed: + hackage: base64-1.0@sha256:ab8084608505f30d6cf7dd790271f927fd8a00956c5e7f5546f5cf56b298022c,2991 + pantry-tree: + sha256: 62150ae24db8e07f966679024406de4cdfe13556c9afce807f4f24d7ec03d0b5 + size: 2229 + original: + hackage: base64-1.0@sha256:ab8084608505f30d6cf7dd790271f927fd8a00956c5e7f5546f5cf56b298022c,2991 +- completed: + hackage: directory-1.3.8.5@sha256:fbeec9ec346e5272167f63dcb86af513b457a7b9fc36dc818e4c7b81608d612b,3166 + pantry-tree: + sha256: d11130a0ca9e7c8720ed1ceef4e2f0d9be4b446e67e7d15d634763a5c952877e + size: 3519 + original: + hackage: directory-1.3.8.5@sha256:fbeec9ec346e5272167f63dcb86af513b457a7b9fc36dc818e4c7b81608d612b,3166 +- completed: + hackage: filepath-1.5.3.0@sha256:0c64bc9a4f5946c86a8f0527bf40c8ba51e2c02d36eea0e20ea558c8d94166e8,4945 + pantry-tree: + sha256: a5feb33f17ff131a5bba009abae35761594d62ba6873b2f70992a48db160c9b7 + size: 2274 + original: + hackage: filepath-1.5.3.0@sha256:0c64bc9a4f5946c86a8f0527bf40c8ba51e2c02d36eea0e20ea558c8d94166e8,4945 +- completed: + hackage: os-string-2.0.6@sha256:7699e7ae9bf74d056a62f384ceef8dfb2aa660f3f7c8016e9703f3b995e5e030,3259 + pantry-tree: + sha256: 4743363ed98362a8541108a2e7febb7ba32acd337d29dbff4472fafbe246589c + size: 2218 + original: + hackage: os-string-2.0.6@sha256:7699e7ae9bf74d056a62f384ceef8dfb2aa660f3f7c8016e9703f3b995e5e030,3259 +- completed: + hackage: process-1.6.21.0@sha256:685bc68759da31b5f152092fe664e1644e84f6dc0ae7a6c143e8564a1d6dafe8,2644 + pantry-tree: + sha256: 20d200008cf22d2f0402f900e0f26df17e355947689784852a10c28f03fbbca0 + size: 1790 + original: + hackage: process-1.6.21.0@sha256:685bc68759da31b5f152092fe664e1644e84f6dc0ae7a6c143e8564a1d6dafe8,2644 +- completed: + hackage: text-2.0.2@sha256:71b5fa8c64d3c1fd0a08f993463220867b08290a2256e94b0952bf0e8f5a45cc,9905 + pantry-tree: + sha256: 25f3b6dd211e30f9e0ef5047bb9f30df7a9296cf1043873e31558196dfe78676 + size: 7514 + original: + hackage: text-2.0.2@sha256:71b5fa8c64d3c1fd0a08f993463220867b08290a2256e94b0952bf0e8f5a45cc,9905 +- completed: + hackage: unix-2.8.5.1@sha256:3f702a252a313a7bcb56e3908a14e7f9f1b40e41b7bdc8ae8a9605a1a8686f06,9808 + pantry-tree: + sha256: b961320db69795a16c4ef4eebb0a3e7ddbbbe506fa1e22dde95ee8d8501bfbe5 + size: 5821 + original: + hackage: unix-2.8.5.1@sha256:3f702a252a313a7bcb56e3908a14e7f9f1b40e41b7bdc8ae8a9605a1a8686f06,9808 +snapshots: +- completed: + sha256: 5a59b2a405b3aba3c00188453be172b85893cab8ebc352b1ef58b0eae5d248a2 + size: 650475 + url: https://raw.githubusercontent.com/commercialhaskell/stackage-snapshots/master/lts/20/26.yaml + original: lts-20.26 diff --git a/stack.ghc-9.2+old.yaml b/stack/stack.ghc-9.2.yaml similarity index 93% rename from stack.ghc-9.2+old.yaml rename to stack/stack.ghc-9.2.yaml index af21c38..723fdd8 100644 --- a/stack.ghc-9.2+old.yaml +++ b/stack/stack.ghc-9.2.yaml @@ -9,9 +9,5 @@ extra-deps: - text-2.0.2@sha256:71b5fa8c64d3c1fd0a08f993463220867b08290a2256e94b0952bf0e8f5a45cc,9905 - unix-2.8.5.1@sha256:3f702a252a313a7bcb56e3908a14e7f9f1b40e41b7bdc8ae8a9605a1a8686f06,9808 -flags: - os-string-aeson: - old-os-string: true - ghc-options: os-string-aeson: -Wno-deprecations diff --git a/stack.ghc-9.2+old.yaml.lock b/stack/stack.ghc-9.2.yaml.lock similarity index 100% rename from stack.ghc-9.2+old.yaml.lock rename to stack/stack.ghc-9.2.yaml.lock diff --git a/stack/stack.ghc-9.4+os-string.yaml b/stack/stack.ghc-9.4+os-string.yaml new file mode 100644 index 0000000..fa0a8c1 --- /dev/null +++ b/stack/stack.ghc-9.4+os-string.yaml @@ -0,0 +1,18 @@ +resolver: lts-21.25 + +extra-deps: + - hashable-1.4.7.0 + - base64-1.0@sha256:ab8084608505f30d6cf7dd790271f927fd8a00956c5e7f5546f5cf56b298022c,2991 + - directory-1.3.8.5@sha256:fbeec9ec346e5272167f63dcb86af513b457a7b9fc36dc818e4c7b81608d612b,3166 + - filepath-1.5.3.0@sha256:0c64bc9a4f5946c86a8f0527bf40c8ba51e2c02d36eea0e20ea558c8d94166e8,4945 + - os-string-2.0.6@sha256:7699e7ae9bf74d056a62f384ceef8dfb2aa660f3f7c8016e9703f3b995e5e030,3259 + - process-1.6.21.0@sha256:685bc68759da31b5f152092fe664e1644e84f6dc0ae7a6c143e8564a1d6dafe8,2644 + - unix-2.8.5.1@sha256:3f702a252a313a7bcb56e3908a14e7f9f1b40e41b7bdc8ae8a9605a1a8686f06,9808 + +flags: + directory: + os-string: true + os-string-aeson: + os-string: true + unix: + os-string: true diff --git a/stack/stack.ghc-9.4+os-string.yaml.lock b/stack/stack.ghc-9.4+os-string.yaml.lock new file mode 100644 index 0000000..fca4663 --- /dev/null +++ b/stack/stack.ghc-9.4+os-string.yaml.lock @@ -0,0 +1,61 @@ +# This file was autogenerated by Stack. +# You should not edit this file by hand. +# For more information, please see the documentation at: +# https://docs.haskellstack.org/en/stable/lock_files + +packages: +- completed: + hackage: hashable-1.4.7.0@sha256:573f3ab242f75465a0d67ce9d84202650a1606575e6dbd6d31ffcf4767a9a379,6629 + pantry-tree: + sha256: 9ec168505c52fa389b7447a1251b302e32537adeecac88c2aa72beed53beb3bd + size: 1578 + original: + hackage: hashable-1.4.7.0 +- completed: + hackage: base64-1.0@sha256:ab8084608505f30d6cf7dd790271f927fd8a00956c5e7f5546f5cf56b298022c,2991 + pantry-tree: + sha256: 62150ae24db8e07f966679024406de4cdfe13556c9afce807f4f24d7ec03d0b5 + size: 2229 + original: + hackage: base64-1.0@sha256:ab8084608505f30d6cf7dd790271f927fd8a00956c5e7f5546f5cf56b298022c,2991 +- completed: + hackage: directory-1.3.8.5@sha256:fbeec9ec346e5272167f63dcb86af513b457a7b9fc36dc818e4c7b81608d612b,3166 + pantry-tree: + sha256: d11130a0ca9e7c8720ed1ceef4e2f0d9be4b446e67e7d15d634763a5c952877e + size: 3519 + original: + hackage: directory-1.3.8.5@sha256:fbeec9ec346e5272167f63dcb86af513b457a7b9fc36dc818e4c7b81608d612b,3166 +- completed: + hackage: filepath-1.5.3.0@sha256:0c64bc9a4f5946c86a8f0527bf40c8ba51e2c02d36eea0e20ea558c8d94166e8,4945 + pantry-tree: + sha256: a5feb33f17ff131a5bba009abae35761594d62ba6873b2f70992a48db160c9b7 + size: 2274 + original: + hackage: filepath-1.5.3.0@sha256:0c64bc9a4f5946c86a8f0527bf40c8ba51e2c02d36eea0e20ea558c8d94166e8,4945 +- completed: + hackage: os-string-2.0.6@sha256:7699e7ae9bf74d056a62f384ceef8dfb2aa660f3f7c8016e9703f3b995e5e030,3259 + pantry-tree: + sha256: 4743363ed98362a8541108a2e7febb7ba32acd337d29dbff4472fafbe246589c + size: 2218 + original: + hackage: os-string-2.0.6@sha256:7699e7ae9bf74d056a62f384ceef8dfb2aa660f3f7c8016e9703f3b995e5e030,3259 +- completed: + hackage: process-1.6.21.0@sha256:685bc68759da31b5f152092fe664e1644e84f6dc0ae7a6c143e8564a1d6dafe8,2644 + pantry-tree: + sha256: 20d200008cf22d2f0402f900e0f26df17e355947689784852a10c28f03fbbca0 + size: 1790 + original: + hackage: process-1.6.21.0@sha256:685bc68759da31b5f152092fe664e1644e84f6dc0ae7a6c143e8564a1d6dafe8,2644 +- completed: + hackage: unix-2.8.5.1@sha256:3f702a252a313a7bcb56e3908a14e7f9f1b40e41b7bdc8ae8a9605a1a8686f06,9808 + pantry-tree: + sha256: b961320db69795a16c4ef4eebb0a3e7ddbbbe506fa1e22dde95ee8d8501bfbe5 + size: 5821 + original: + hackage: unix-2.8.5.1@sha256:3f702a252a313a7bcb56e3908a14e7f9f1b40e41b7bdc8ae8a9605a1a8686f06,9808 +snapshots: +- completed: + sha256: a81fb3877c4f9031e1325eb3935122e608d80715dc16b586eb11ddbff8671ecd + size: 640086 + url: https://raw.githubusercontent.com/commercialhaskell/stackage-snapshots/master/lts/21/25.yaml + original: lts-21.25 diff --git a/stack.ghc-9.4+old.yaml b/stack/stack.ghc-9.4.yaml similarity index 92% rename from stack.ghc-9.4+old.yaml rename to stack/stack.ghc-9.4.yaml index 467f237..56940d0 100644 --- a/stack.ghc-9.4+old.yaml +++ b/stack/stack.ghc-9.4.yaml @@ -8,9 +8,5 @@ extra-deps: - process-1.6.20.0@sha256:2a9393de33f18415fb8f4826957a87a94ffe8840ca8472a9b69dca6de45aca03,2790 - unix-2.8.5.1@sha256:3f702a252a313a7bcb56e3908a14e7f9f1b40e41b7bdc8ae8a9605a1a8686f06,9808 -flags: - os-string-aeson: - old-os-string: true - ghc-options: os-string-aeson: -Wno-deprecations diff --git a/stack.ghc-9.4+old.yaml.lock b/stack/stack.ghc-9.4.yaml.lock similarity index 100% rename from stack.ghc-9.4+old.yaml.lock rename to stack/stack.ghc-9.4.yaml.lock diff --git a/stack/stack.ghc-9.6+os-string.yaml b/stack/stack.ghc-9.6+os-string.yaml new file mode 100644 index 0000000..6d093fe --- /dev/null +++ b/stack/stack.ghc-9.6+os-string.yaml @@ -0,0 +1,16 @@ +resolver: lts-22.31 + +extra-deps: + - base64-1.0@sha256:ab8084608505f30d6cf7dd790271f927fd8a00956c5e7f5546f5cf56b298022c,2991 + - directory-1.3.8.5@sha256:fbeec9ec346e5272167f63dcb86af513b457a7b9fc36dc818e4c7b81608d612b,3166 + - filepath-1.5.3.0@sha256:0c64bc9a4f5946c86a8f0527bf40c8ba51e2c02d36eea0e20ea558c8d94166e8,4945 + - process-1.6.21.0@sha256:685bc68759da31b5f152092fe664e1644e84f6dc0ae7a6c143e8564a1d6dafe8,2644 + - unix-2.8.5.1@sha256:3f702a252a313a7bcb56e3908a14e7f9f1b40e41b7bdc8ae8a9605a1a8686f06,9808 + +flags: + directory: + os-string: true + os-string-aeson: + os-string: true + unix: + os-string: true diff --git a/stack/stack.ghc-9.6+os-string.yaml.lock b/stack/stack.ghc-9.6+os-string.yaml.lock new file mode 100644 index 0000000..19d1cd0 --- /dev/null +++ b/stack/stack.ghc-9.6+os-string.yaml.lock @@ -0,0 +1,47 @@ +# This file was autogenerated by Stack. +# You should not edit this file by hand. +# For more information, please see the documentation at: +# https://docs.haskellstack.org/en/stable/lock_files + +packages: +- completed: + hackage: base64-1.0@sha256:ab8084608505f30d6cf7dd790271f927fd8a00956c5e7f5546f5cf56b298022c,2991 + pantry-tree: + sha256: 62150ae24db8e07f966679024406de4cdfe13556c9afce807f4f24d7ec03d0b5 + size: 2229 + original: + hackage: base64-1.0@sha256:ab8084608505f30d6cf7dd790271f927fd8a00956c5e7f5546f5cf56b298022c,2991 +- completed: + hackage: directory-1.3.8.5@sha256:fbeec9ec346e5272167f63dcb86af513b457a7b9fc36dc818e4c7b81608d612b,3166 + pantry-tree: + sha256: d11130a0ca9e7c8720ed1ceef4e2f0d9be4b446e67e7d15d634763a5c952877e + size: 3519 + original: + hackage: directory-1.3.8.5@sha256:fbeec9ec346e5272167f63dcb86af513b457a7b9fc36dc818e4c7b81608d612b,3166 +- completed: + hackage: filepath-1.5.3.0@sha256:0c64bc9a4f5946c86a8f0527bf40c8ba51e2c02d36eea0e20ea558c8d94166e8,4945 + pantry-tree: + sha256: a5feb33f17ff131a5bba009abae35761594d62ba6873b2f70992a48db160c9b7 + size: 2274 + original: + hackage: filepath-1.5.3.0@sha256:0c64bc9a4f5946c86a8f0527bf40c8ba51e2c02d36eea0e20ea558c8d94166e8,4945 +- completed: + hackage: process-1.6.21.0@sha256:685bc68759da31b5f152092fe664e1644e84f6dc0ae7a6c143e8564a1d6dafe8,2644 + pantry-tree: + sha256: 20d200008cf22d2f0402f900e0f26df17e355947689784852a10c28f03fbbca0 + size: 1790 + original: + hackage: process-1.6.21.0@sha256:685bc68759da31b5f152092fe664e1644e84f6dc0ae7a6c143e8564a1d6dafe8,2644 +- completed: + hackage: unix-2.8.5.1@sha256:3f702a252a313a7bcb56e3908a14e7f9f1b40e41b7bdc8ae8a9605a1a8686f06,9808 + pantry-tree: + sha256: b961320db69795a16c4ef4eebb0a3e7ddbbbe506fa1e22dde95ee8d8501bfbe5 + size: 5821 + original: + hackage: unix-2.8.5.1@sha256:3f702a252a313a7bcb56e3908a14e7f9f1b40e41b7bdc8ae8a9605a1a8686f06,9808 +snapshots: +- completed: + sha256: acaab6ca693211938d1542abcb1c83a2f298b9f6b571854a9d38febe39b6408e + size: 719577 + url: https://raw.githubusercontent.com/commercialhaskell/stackage-snapshots/master/lts/22/31.yaml + original: lts-22.31 diff --git a/stack.ghc-9.6+old.yaml b/stack/stack.ghc-9.6.yaml similarity index 87% rename from stack.ghc-9.6+old.yaml rename to stack/stack.ghc-9.6.yaml index 1bd468e..9b14938 100644 --- a/stack.ghc-9.6+old.yaml +++ b/stack/stack.ghc-9.6.yaml @@ -9,9 +9,5 @@ extra-deps: - base64-1.0@sha256:ab8084608505f30d6cf7dd790271f927fd8a00956c5e7f5546f5cf56b298022c,2991 - os-string-1.0.0@sha256:f1582da15c52761681da87d98c854a0db54049f34d59f74cfec4cc56ad8fbc05,1852 -flags: - os-string-aeson: - old-os-string: true - ghc-options: os-string-aeson: -Wno-deprecations diff --git a/stack.ghc-9.6+old.yaml.lock b/stack/stack.ghc-9.6.yaml.lock similarity index 100% rename from stack.ghc-9.6+old.yaml.lock rename to stack/stack.ghc-9.6.yaml.lock diff --git a/stack/test-stack.sh b/stack/test-stack.sh new file mode 100755 index 0000000..6e595ea --- /dev/null +++ b/stack/test-stack.sh @@ -0,0 +1,18 @@ +#!/usr/bin/env bash + +set -eu + +for version in '9.2' '9.4' '9.6'; do + for flag in '+os-string' ''; do + stack_yaml="stack/stack.ghc-${version}${flag}.yaml" + echo "### TESTING ${stack_yaml}" + rm -rf .stack-work stack.yaml stack.yaml.lock + cp "${stack_yaml}" stack.yaml + stack test --pedantic + cp stack.yaml.lock "${stack_yaml}.lock" + done +done + +rm -rf .stack-work stack.yaml stack.yaml.lock +ln -s "${stack_yaml}" stack.yaml +ln -s "${stack_yaml}.lock" stack.yaml.lock