diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 72b9d18..6167eea 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -31,7 +31,7 @@ jobs: steps: - uses: actions/checkout@v4 - id: stack - uses: freckle/stack-action@v4 + uses: freckle/stack-action@v5 with: stack-yaml: ${{ matrix.stack-yaml }} - if: ${{ matrix.stack-yaml == 'stack.yaml' }} diff --git a/LICENSE b/LICENSE index 5a310af..5788a64 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ The MIT License (MIT) -Copyright (c) 2023 Renaissance Learning Inc +Copyright (c) 2024 Renaissance Learning Inc Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/flake.lock b/flake.lock new file mode 100644 index 0000000..7ffc067 --- /dev/null +++ b/flake.lock @@ -0,0 +1,375 @@ +{ + "nodes": { + "flake-utils": { + "inputs": { + "systems": "systems" + }, + "locked": { + "lastModified": 1710146030, + "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_2": { + "inputs": { + "systems": "systems_2" + }, + "locked": { + "lastModified": 1710146030, + "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "freckle": { + "inputs": { + "flake-utils": "flake-utils_2", + "nix-github-actions": "nix-github-actions", + "nixpkgs-22-11": "nixpkgs-22-11", + "nixpkgs-23-05": "nixpkgs-23-05", + "nixpkgs-23-11": "nixpkgs-23-11", + "nixpkgs-haskell-updates": "nixpkgs-haskell-updates", + "nixpkgs-master-2023-05-06": "nixpkgs-master-2023-05-06", + "nixpkgs-master-2023-07-18": "nixpkgs-master-2023-07-18", + "nixpkgs-master-2023-09-15": "nixpkgs-master-2023-09-15", + "nixpkgs-master-2024-01-27": "nixpkgs-master-2024-01-27", + "nixpkgs-stable": "nixpkgs-stable", + "nixpkgs-stable-2023-07-25": "nixpkgs-stable-2023-07-25", + "nixpkgs-unstable-2023-10-21": "nixpkgs-unstable-2023-10-21", + "nixpkgs-unstable-2024-02-20": "nixpkgs-unstable-2024-02-20", + "nixpkgs-unstable-2024-04-03": "nixpkgs-unstable-2024-04-03", + "nixpkgs-unstable-2024-05-30": "nixpkgs-unstable-2024-05-30" + }, + "locked": { + "dir": "main", + "lastModified": 1719604962, + "narHash": "sha256-Nw8KbsdjgOp1IRFm7YYd2sLR2KY0NX/lNRxq+lcbzEg=", + "ref": "refs/heads/main", + "rev": "ffa94bbc1d26ef8ba498fbe6ad4a9bdb2db82337", + "revCount": 46, + "type": "git", + "url": "ssh://git@github.com/freckle/flakes?dir=main" + }, + "original": { + "dir": "main", + "type": "git", + "url": "ssh://git@github.com/freckle/flakes?dir=main" + } + }, + "nix-github-actions": { + "inputs": { + "nixpkgs": [ + "freckle", + "nixpkgs-stable" + ] + }, + "locked": { + "lastModified": 1703863825, + "narHash": "sha256-rXwqjtwiGKJheXB43ybM8NwWB8rO2dSRrEqes0S7F5Y=", + "owner": "nix-community", + "repo": "nix-github-actions", + "rev": "5163432afc817cf8bd1f031418d1869e4c9d5547", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nix-github-actions", + "type": "github" + } + }, + "nixpkgs-22-11": { + "locked": { + "lastModified": 1688392541, + "narHash": "sha256-lHrKvEkCPTUO+7tPfjIcb7Trk6k31rz18vkyqmkeJfY=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "ea4c80b39be4c09702b0cb3b42eab59e2ba4f24b", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-22.11", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-23-05": { + "locked": { + "lastModified": 1704290814, + "narHash": "sha256-LWvKHp7kGxk/GEtlrGYV68qIvPHkU9iToomNFGagixU=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "70bdadeb94ffc8806c0570eb5c2695ad29f0e421", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-23.05", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-23-11": { + "locked": { + "lastModified": 1717530100, + "narHash": "sha256-b4Dn+PnrZoVZ/BoR9JN2fTxXxplJrAsdSUIePf4Cacs=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "a2e1d0414259a144ebdc048408a807e69e0565af", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-23.11", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-haskell-updates": { + "locked": { + "lastModified": 1717667911, + "narHash": "sha256-naJoCoUil31xjrUixCsKFogTkTiI02fv2X/6QukpacA=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "f166c7778ccf61d7f8b89a9a94060dce070458d0", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "haskell-updates", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-master-2023-05-06": { + "locked": { + "lastModified": 1683392273, + "narHash": "sha256-pZTuxvcuDeBG+vvE1zczNyEUzlPbzXVh8Ed45Fzo+tQ=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "16b3b0c53b1ee8936739f8c588544e7fcec3fc60", + "type": "github" + }, + "original": { + "owner": "nixos", + "repo": "nixpkgs", + "rev": "16b3b0c53b1ee8936739f8c588544e7fcec3fc60", + "type": "github" + } + }, + "nixpkgs-master-2023-07-18": { + "locked": { + "lastModified": 1689680872, + "narHash": "sha256-brNix2+ihJSzCiKwLafbyejrHJZUP0Fy6z5+xMOC27M=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "08700de174bc6235043cb4263b643b721d936bdb", + "type": "github" + }, + "original": { + "owner": "nixos", + "repo": "nixpkgs", + "rev": "08700de174bc6235043cb4263b643b721d936bdb", + "type": "github" + } + }, + "nixpkgs-master-2023-09-15": { + "locked": { + "lastModified": 1694760568, + "narHash": "sha256-3G07BiXrp2YQKxdcdms22MUx6spc6A++MSePtatCYuI=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "46688f8eb5cd6f1298d873d4d2b9cf245e09e88e", + "type": "github" + }, + "original": { + "owner": "nixos", + "repo": "nixpkgs", + "rev": "46688f8eb5cd6f1298d873d4d2b9cf245e09e88e", + "type": "github" + } + }, + "nixpkgs-master-2024-01-27": { + "locked": { + "lastModified": 1706367331, + "narHash": "sha256-AqgkGHRrI6h/8FWuVbnkfFmXr4Bqsr4fV23aISqj/xg=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "160b762eda6d139ac10ae081f8f78d640dd523eb", + "type": "github" + }, + "original": { + "owner": "nixos", + "repo": "nixpkgs", + "rev": "160b762eda6d139ac10ae081f8f78d640dd523eb", + "type": "github" + } + }, + "nixpkgs-stable": { + "locked": { + "lastModified": 1717555607, + "narHash": "sha256-WZ1s48OODmRJ3DHC+I/DtM3tDRuRJlNqMvxvAPTD7ec=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "0b8e7a1ae5a94da2e1ee3f3030a32020f6254105", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-24.05", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-stable-2023-07-25": { + "locked": { + "lastModified": 1690271650, + "narHash": "sha256-qwdsW8DBY1qH+9luliIH7VzgwvL+ZGI3LZWC0LTiDMI=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "6dc93f0daec55ee2f441da385aaf143863e3d671", + "type": "github" + }, + "original": { + "owner": "nixos", + "repo": "nixpkgs", + "rev": "6dc93f0daec55ee2f441da385aaf143863e3d671", + "type": "github" + } + }, + "nixpkgs-unstable-2023-10-21": { + "locked": { + "lastModified": 1697793076, + "narHash": "sha256-02e7sCuqLtkyRgrZmdOyvAcQTQdcXj+vpyp9bca6cY4=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "038b2922be3fc096e1d456f93f7d0f4090628729", + "type": "github" + }, + "original": { + "owner": "nixos", + "repo": "nixpkgs", + "rev": "038b2922be3fc096e1d456f93f7d0f4090628729", + "type": "github" + } + }, + "nixpkgs-unstable-2024-02-20": { + "locked": { + "lastModified": 1708296515, + "narHash": "sha256-FyF489fYNAUy7b6dkYV6rGPyzp+4tThhr80KNAaF/yY=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "b98a4e1746acceb92c509bc496ef3d0e5ad8d4aa", + "type": "github" + }, + "original": { + "owner": "nixos", + "repo": "nixpkgs", + "rev": "b98a4e1746acceb92c509bc496ef3d0e5ad8d4aa", + "type": "github" + } + }, + "nixpkgs-unstable-2024-04-03": { + "locked": { + "lastModified": 1712143413, + "narHash": "sha256-kI6WYXuj8/2AtBF4o0gYnkYNO1xtc6PaPbW/qmaV67A=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "62e885a4013446453b10fd7780eba4337f6f42e0", + "type": "github" + }, + "original": { + "owner": "nixos", + "repo": "nixpkgs", + "rev": "62e885a4013446453b10fd7780eba4337f6f42e0", + "type": "github" + } + }, + "nixpkgs-unstable-2024-05-30": { + "locked": { + "lastModified": 1717070961, + "narHash": "sha256-0JN98HVWPMlxj48Ot9K3eF0CWfwvo7/7VAYO+VAHg1Q=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "aa61b27554a5fc282758bf0324781e3464ef2cde", + "type": "github" + }, + "original": { + "owner": "nixos", + "repo": "nixpkgs", + "rev": "aa61b27554a5fc282758bf0324781e3464ef2cde", + "type": "github" + } + }, + "root": { + "inputs": { + "flake-utils": "flake-utils", + "freckle": "freckle", + "stable": "stable" + } + }, + "stable": { + "locked": { + "lastModified": 1719838683, + "narHash": "sha256-Zw9rQjHz1ilNIimEXFeVa1ERNRBF8DoXDhLAZq5B4pE=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "d032c1a6dfad4eedec7e35e91986becc699d7d69", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-24.05", + "repo": "nixpkgs", + "type": "github" + } + }, + "systems": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "systems_2": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..09010f2 --- /dev/null +++ b/flake.nix @@ -0,0 +1,44 @@ +{ + inputs = { + stable.url = "github:nixos/nixpkgs/nixos-24.05"; + freckle.url = "git+ssh://git@github.com/freckle/flakes?dir=main"; + flake-utils.url = "github:numtide/flake-utils"; + }; + outputs = inputs: + inputs.flake-utils.lib.eachDefaultSystem (system: + let + nixpkgsArgs = { inherit system; config = { }; }; + + nixpkgs = { + stable = import inputs.stable nixpkgsArgs; + }; + freckle = inputs.freckle.packages.${system}; + freckleLib = inputs.freckle.lib.${system}; + + in + rec { + packages = { + fourmolu = freckle.fourmolu-0-13-x; + + ghc = freckleLib.haskellBundle { + ghcVersion = "ghc-9-6-5"; + enableHLS = true; + }; + }; + + devShells.default = nixpkgs.stable.mkShell { + buildInputs = with (nixpkgs.stable); [ + zlib + ]; + + nativeBuildInputs = with (packages); [ + fourmolu + ghc + ]; + + shellHook = '' + export STACK_YAML=stack.yaml + ''; + }; + }); +} diff --git a/haskell-library-template.cabal b/haskell-library-template.cabal index 99b64b9..d5104b8 100644 --- a/haskell-library-template.cabal +++ b/haskell-library-template.cabal @@ -1,6 +1,6 @@ cabal-version: 1.18 --- This file has been generated from package.yaml by hpack version 0.35.2. +-- This file has been generated from package.yaml by hpack version 0.36.0. -- -- see: https://github.com/sol/hpack @@ -67,6 +67,8 @@ library ghc-options: -Wno-missing-kind-signatures if impl(ghc >= 8.10) ghc-options: -Wno-missing-safe-haskell-mode -Wno-prepositive-qualified-module + if impl(ghc >= 8.8) + ghc-options: -fwrite-ide-info test-suite readme type: exitcode-stdio-1.0 @@ -107,11 +109,15 @@ test-suite readme ghc-options: -Wno-missing-kind-signatures if impl(ghc >= 8.10) ghc-options: -Wno-missing-safe-haskell-mode -Wno-prepositive-qualified-module + if impl(ghc >= 8.8) + ghc-options: -fwrite-ide-info test-suite spec type: exitcode-stdio-1.0 main-is: Spec.hs other-modules: + SpecHook + WhateverSpec Paths_haskell_library_template hs-source-dirs: tests @@ -144,8 +150,11 @@ test-suite spec build-depends: base <5 , hspec + , hspec-junit-formatter default-language: Haskell2010 if impl(ghc >= 9.2) ghc-options: -Wno-missing-kind-signatures if impl(ghc >= 8.10) ghc-options: -Wno-missing-safe-haskell-mode -Wno-prepositive-qualified-module + if impl(ghc >= 8.8) + ghc-options: -fwrite-ide-info diff --git a/package.yaml b/package.yaml index a707351..934b834 100644 --- a/package.yaml +++ b/package.yaml @@ -37,6 +37,9 @@ when: ghc-options: - -Wno-missing-safe-haskell-mode - -Wno-prepositive-qualified-module + - condition: "impl(ghc >= 8.8)" + ghc-options: + - -fwrite-ide-info dependencies: - base < 5 @@ -78,6 +81,7 @@ tests: dependencies: #- haskell-library-template - hspec + - hspec-junit-formatter readme: main: README.lhs diff --git a/stack-lts-12.26.yaml b/stack-lts-12.26.yaml index e09b3ae..935f2f2 100644 --- a/stack-lts-12.26.yaml +++ b/stack-lts-12.26.yaml @@ -1 +1,15 @@ resolver: lts-12.26 + +extra-deps: + - call-stack-0.2.0 + - hspec-2.10.0 + - hspec-api-2.10.0 + - hspec-core-2.10.0 + - hspec-discover-2.10.0 + - hspec-golden-0.2.1.0 + - hspec-junit-formatter-1.1.2.1 + - QuickCheck-2.14.2@sha256:4ce29211223d5e6620ebceba34a3ca9ccf1c10c0cf387d48aea45599222ee5aa,7736 + - random-1.2.1@sha256:8bee24dc0c985a90ee78d94c61f8aed21c49633686f0f1c14c5078d818ee43a2,6598 + - regex-base-0.94.0.2@sha256:3a76c313f9f75e8e0b3c103c1bff5bbaf754da30cbddedc1d5b7061d001030e0 + - regex-tdfa-1.3.2.2@sha256:cdf462f6280804baa264e42e3e328ba02ec71d9335de706f3dee778890a25c0e,7042 + - splitmix-0.1.0.4@sha256:714a55fd28d3e2533bd5b49e74f604ef8e5d7b06f249c8816f6c54aed431dcf1,6483 diff --git a/stack-lts-12.26.yaml.lock b/stack-lts-12.26.yaml.lock index 6bee1e8..0502586 100644 --- a/stack-lts-12.26.yaml.lock +++ b/stack-lts-12.26.yaml.lock @@ -3,10 +3,94 @@ # For more information, please see the documentation at: # https://docs.haskellstack.org/en/stable/lock_files -packages: [] +packages: +- completed: + hackage: call-stack-0.2.0@sha256:5ce796b78d5f964468ec6fe0717b4e7d0430817f37370c47b3e6b38e345b6643,1202 + pantry-tree: + sha256: 30cc02f50a7f660db6b5c4218b4021cd78cae90b135d893d55f32a1c8b1e1c08 + size: 500 + original: + hackage: call-stack-0.2.0 +- completed: + hackage: hspec-2.10.0@sha256:2d1dc53e361998f002497b7222fdb700cc540b2aaf880e2619a0b5d54abb74e5,1712 + pantry-tree: + sha256: 5d8a184b89267523718e22cc4ded4c980d08af7aa4b53ec027822d0cf5065756 + size: 583 + original: + hackage: hspec-2.10.0 +- completed: + hackage: hspec-api-2.10.0@sha256:68690737181eae90d25e214803d966658e661215ddf5e24f1495b54a71a09364,1509 + pantry-tree: + sha256: 5f40ff2d1b0e137530fd5ea0790e0f8a08ea1552cf570627861e666bd291fad0 + size: 665 + original: + hackage: hspec-api-2.10.0 +- completed: + hackage: hspec-core-2.10.0@sha256:0402831c0af58d182da49f836aef6da9e195d242856ea8ce3f4ce3df245c85b0,6677 + pantry-tree: + sha256: 217e63acceb2c29d07d06b4fad648ed79575bc6d1158619a275677d5902b05ef + size: 5819 + original: + hackage: hspec-core-2.10.0 +- completed: + hackage: hspec-discover-2.10.0@sha256:517d0892217539969c199f9cc30065db7bcd68ff5512095e4f94ff8ef35d1313,2166 + pantry-tree: + sha256: 5e31c43b5c1477987d7321456b3dc69ce0b8f35312c5ea516702f91be42b20ca + size: 828 + original: + hackage: hspec-discover-2.10.0 +- completed: + hackage: hspec-golden-0.2.1.0@sha256:b695ae72685bbb5acd04cdd79d07c43de5ab8867e28662dd1a0002296f2a4940,2635 + pantry-tree: + sha256: d72fec5f2c0568ae958282c7a8b8f5bfba146e3e4ceee0510c0e22be5c8eb740 + size: 495 + original: + hackage: hspec-golden-0.2.1.0 +- completed: + hackage: hspec-junit-formatter-1.1.2.1@sha256:d45e8a6389339dc9e0213387e875a7e52545b1895632b20280942f383715542b,5842 + pantry-tree: + sha256: 4bbe193b2ece70aba1f435e72fa56ea7b30f0517b7405d6798adb4a27fe69c76 + size: 1491 + original: + hackage: hspec-junit-formatter-1.1.2.1 +- completed: + hackage: QuickCheck-2.14.2@sha256:4ce29211223d5e6620ebceba34a3ca9ccf1c10c0cf387d48aea45599222ee5aa,7736 + pantry-tree: + sha256: 2fe423d0ed7cd64f0f165d708779f48814e66c4f181c568468134af55d86a5f8 + size: 2315 + original: + hackage: QuickCheck-2.14.2@sha256:4ce29211223d5e6620ebceba34a3ca9ccf1c10c0cf387d48aea45599222ee5aa,7736 +- completed: + hackage: random-1.2.1@sha256:8bee24dc0c985a90ee78d94c61f8aed21c49633686f0f1c14c5078d818ee43a2,6598 + pantry-tree: + sha256: 8bdc994ce41f43624ab42302a881fe5a0f81d965f5d238841e24943664681a06 + size: 1528 + original: + hackage: random-1.2.1@sha256:8bee24dc0c985a90ee78d94c61f8aed21c49633686f0f1c14c5078d818ee43a2,6598 +- completed: + hackage: regex-base-0.94.0.2@sha256:3a76c313f9f75e8e0b3c103c1bff5bbaf754da30cbddedc1d5b7061d001030e0,2661 + pantry-tree: + sha256: be7123592a3f9d0e5ba7f61d689dfa9b8a9ebd731d5aee0280d2761bdc842edc + size: 531 + original: + hackage: regex-base-0.94.0.2@sha256:3a76c313f9f75e8e0b3c103c1bff5bbaf754da30cbddedc1d5b7061d001030e0 +- completed: + hackage: regex-tdfa-1.3.2.2@sha256:cdf462f6280804baa264e42e3e328ba02ec71d9335de706f3dee778890a25c0e,7042 + pantry-tree: + sha256: fe183406bec992541629cfa079ea3c7bd7946960b09b21fb921a9209d9df1132 + size: 2674 + original: + hackage: regex-tdfa-1.3.2.2@sha256:cdf462f6280804baa264e42e3e328ba02ec71d9335de706f3dee778890a25c0e,7042 +- completed: + hackage: splitmix-0.1.0.4@sha256:714a55fd28d3e2533bd5b49e74f604ef8e5d7b06f249c8816f6c54aed431dcf1,6483 + pantry-tree: + sha256: 79f4645c11b7a3861db0b596297f72804f509444d639a8fd7c0162b1ed80c578 + size: 1519 + original: + hackage: splitmix-0.1.0.4@sha256:714a55fd28d3e2533bd5b49e74f604ef8e5d7b06f249c8816f6c54aed431dcf1,6483 snapshots: - completed: + sha256: 95f014df58d0679b1c4a2b7bf2b652b61da8d30de5f571abb0d59015ef678646 size: 509471 url: https://raw.githubusercontent.com/commercialhaskell/stackage-snapshots/master/lts/12/26.yaml - sha256: 95f014df58d0679b1c4a2b7bf2b652b61da8d30de5f571abb0d59015ef678646 original: lts-12.26 diff --git a/stack-lts-14.27.yaml b/stack-lts-14.27.yaml index 785b146..7615a6f 100644 --- a/stack-lts-14.27.yaml +++ b/stack-lts-14.27.yaml @@ -1 +1,12 @@ resolver: lts-14.27 + +extra-deps: + - call-stack-0.2.0 + - hspec-2.10.0 + - hspec-api-2.10.0 + - hspec-core-2.10.0 + - hspec-discover-2.10.0 + - hspec-golden-0.2.1.0 + - hspec-junit-formatter-1.1.2.1 + - regex-base-0.94.0.2@sha256:3a76c313f9f75e8e0b3c103c1bff5bbaf754da30cbddedc1d5b7061d001030e0 + - regex-tdfa-1.3.2.2@sha256:cdf462f6280804baa264e42e3e328ba02ec71d9335de706f3dee778890a25c0e,7042 diff --git a/stack-lts-14.27.yaml.lock b/stack-lts-14.27.yaml.lock index e24dcac..7a56415 100644 --- a/stack-lts-14.27.yaml.lock +++ b/stack-lts-14.27.yaml.lock @@ -3,10 +3,73 @@ # For more information, please see the documentation at: # https://docs.haskellstack.org/en/stable/lock_files -packages: [] +packages: +- completed: + hackage: call-stack-0.2.0@sha256:5ce796b78d5f964468ec6fe0717b4e7d0430817f37370c47b3e6b38e345b6643,1202 + pantry-tree: + sha256: 30cc02f50a7f660db6b5c4218b4021cd78cae90b135d893d55f32a1c8b1e1c08 + size: 500 + original: + hackage: call-stack-0.2.0 +- completed: + hackage: hspec-2.10.0@sha256:2d1dc53e361998f002497b7222fdb700cc540b2aaf880e2619a0b5d54abb74e5,1712 + pantry-tree: + sha256: 5d8a184b89267523718e22cc4ded4c980d08af7aa4b53ec027822d0cf5065756 + size: 583 + original: + hackage: hspec-2.10.0 +- completed: + hackage: hspec-api-2.10.0@sha256:68690737181eae90d25e214803d966658e661215ddf5e24f1495b54a71a09364,1509 + pantry-tree: + sha256: 5f40ff2d1b0e137530fd5ea0790e0f8a08ea1552cf570627861e666bd291fad0 + size: 665 + original: + hackage: hspec-api-2.10.0 +- completed: + hackage: hspec-core-2.10.0@sha256:0402831c0af58d182da49f836aef6da9e195d242856ea8ce3f4ce3df245c85b0,6677 + pantry-tree: + sha256: 217e63acceb2c29d07d06b4fad648ed79575bc6d1158619a275677d5902b05ef + size: 5819 + original: + hackage: hspec-core-2.10.0 +- completed: + hackage: hspec-discover-2.10.0@sha256:517d0892217539969c199f9cc30065db7bcd68ff5512095e4f94ff8ef35d1313,2166 + pantry-tree: + sha256: 5e31c43b5c1477987d7321456b3dc69ce0b8f35312c5ea516702f91be42b20ca + size: 828 + original: + hackage: hspec-discover-2.10.0 +- completed: + hackage: hspec-golden-0.2.1.0@sha256:b695ae72685bbb5acd04cdd79d07c43de5ab8867e28662dd1a0002296f2a4940,2635 + pantry-tree: + sha256: d72fec5f2c0568ae958282c7a8b8f5bfba146e3e4ceee0510c0e22be5c8eb740 + size: 495 + original: + hackage: hspec-golden-0.2.1.0 +- completed: + hackage: hspec-junit-formatter-1.1.2.1@sha256:d45e8a6389339dc9e0213387e875a7e52545b1895632b20280942f383715542b,5842 + pantry-tree: + sha256: 4bbe193b2ece70aba1f435e72fa56ea7b30f0517b7405d6798adb4a27fe69c76 + size: 1491 + original: + hackage: hspec-junit-formatter-1.1.2.1 +- completed: + hackage: regex-base-0.94.0.2@sha256:3a76c313f9f75e8e0b3c103c1bff5bbaf754da30cbddedc1d5b7061d001030e0,2661 + pantry-tree: + sha256: be7123592a3f9d0e5ba7f61d689dfa9b8a9ebd731d5aee0280d2761bdc842edc + size: 531 + original: + hackage: regex-base-0.94.0.2@sha256:3a76c313f9f75e8e0b3c103c1bff5bbaf754da30cbddedc1d5b7061d001030e0 +- completed: + hackage: regex-tdfa-1.3.2.2@sha256:cdf462f6280804baa264e42e3e328ba02ec71d9335de706f3dee778890a25c0e,7042 + pantry-tree: + sha256: fe183406bec992541629cfa079ea3c7bd7946960b09b21fb921a9209d9df1132 + size: 2674 + original: + hackage: regex-tdfa-1.3.2.2@sha256:cdf462f6280804baa264e42e3e328ba02ec71d9335de706f3dee778890a25c0e,7042 snapshots: - completed: + sha256: 7ea31a280c56bf36ff591a7397cc384d0dff622e7f9e4225b47d8980f019a0f0 size: 524996 url: https://raw.githubusercontent.com/commercialhaskell/stackage-snapshots/master/lts/14/27.yaml - sha256: 7ea31a280c56bf36ff591a7397cc384d0dff622e7f9e4225b47d8980f019a0f0 original: lts-14.27 diff --git a/stack-lts-16.31.yaml b/stack-lts-16.31.yaml index 53095f7..a15bb71 100644 --- a/stack-lts-16.31.yaml +++ b/stack-lts-16.31.yaml @@ -1 +1,11 @@ resolver: lts-16.31 + +extra-deps: + - hspec-2.10.0 + - hspec-api-2.10.0 + - hspec-core-2.10.0 + - hspec-discover-2.10.0 + - hspec-golden-0.2.1.0 + - hspec-junit-formatter-1.1.2.1 + - regex-base-0.94.0.2 + - regex-tdfa-1.3.2.2 diff --git a/stack-lts-16.31.yaml.lock b/stack-lts-16.31.yaml.lock index c222190..b9f78de 100644 --- a/stack-lts-16.31.yaml.lock +++ b/stack-lts-16.31.yaml.lock @@ -3,10 +3,66 @@ # For more information, please see the documentation at: # https://docs.haskellstack.org/en/stable/lock_files -packages: [] +packages: +- completed: + hackage: hspec-2.10.0@sha256:2d1dc53e361998f002497b7222fdb700cc540b2aaf880e2619a0b5d54abb74e5,1712 + pantry-tree: + sha256: 5d8a184b89267523718e22cc4ded4c980d08af7aa4b53ec027822d0cf5065756 + size: 583 + original: + hackage: hspec-2.10.0 +- completed: + hackage: hspec-api-2.10.0@sha256:68690737181eae90d25e214803d966658e661215ddf5e24f1495b54a71a09364,1509 + pantry-tree: + sha256: 5f40ff2d1b0e137530fd5ea0790e0f8a08ea1552cf570627861e666bd291fad0 + size: 665 + original: + hackage: hspec-api-2.10.0 +- completed: + hackage: hspec-core-2.10.0@sha256:0402831c0af58d182da49f836aef6da9e195d242856ea8ce3f4ce3df245c85b0,6677 + pantry-tree: + sha256: 217e63acceb2c29d07d06b4fad648ed79575bc6d1158619a275677d5902b05ef + size: 5819 + original: + hackage: hspec-core-2.10.0 +- completed: + hackage: hspec-discover-2.10.0@sha256:517d0892217539969c199f9cc30065db7bcd68ff5512095e4f94ff8ef35d1313,2166 + pantry-tree: + sha256: 5e31c43b5c1477987d7321456b3dc69ce0b8f35312c5ea516702f91be42b20ca + size: 828 + original: + hackage: hspec-discover-2.10.0 +- completed: + hackage: hspec-golden-0.2.1.0@sha256:b695ae72685bbb5acd04cdd79d07c43de5ab8867e28662dd1a0002296f2a4940,2635 + pantry-tree: + sha256: d72fec5f2c0568ae958282c7a8b8f5bfba146e3e4ceee0510c0e22be5c8eb740 + size: 495 + original: + hackage: hspec-golden-0.2.1.0 +- completed: + hackage: hspec-junit-formatter-1.1.2.1@sha256:d45e8a6389339dc9e0213387e875a7e52545b1895632b20280942f383715542b,5842 + pantry-tree: + sha256: 4bbe193b2ece70aba1f435e72fa56ea7b30f0517b7405d6798adb4a27fe69c76 + size: 1491 + original: + hackage: hspec-junit-formatter-1.1.2.1 +- completed: + hackage: regex-base-0.94.0.2@sha256:0322b2fcd1358f3355e0c8608efa60d27b14d1c9d476451dbcb9181363bd8b27,2601 + pantry-tree: + sha256: c20b2715d5c222d86be55cf991958cfddb9273743a90d522d268f9c9028eda6c + size: 531 + original: + hackage: regex-base-0.94.0.2 +- completed: + hackage: regex-tdfa-1.3.2.2@sha256:e5ea15b2898c62c63fae798784bc402b3862733d97a4f7ee3ec4f9ae6f447478,6997 + pantry-tree: + sha256: 7b02b5c15eaaaa96150e6ed2407cce2653c63d8a73a8bcc4827408300452dfbb + size: 2674 + original: + hackage: regex-tdfa-1.3.2.2 snapshots: - completed: + sha256: 637fb77049b25560622a224845b7acfe81a09fdb6a96a3c75997a10b651667f6 size: 534126 url: https://raw.githubusercontent.com/commercialhaskell/stackage-snapshots/master/lts/16/31.yaml - sha256: 637fb77049b25560622a224845b7acfe81a09fdb6a96a3c75997a10b651667f6 original: lts-16.31 diff --git a/stack-lts-18.28.yaml b/stack-lts-18.28.yaml index 773d5c9..9481656 100644 --- a/stack-lts-18.28.yaml +++ b/stack-lts-18.28.yaml @@ -1 +1,10 @@ resolver: lts-18.28 + +extra-deps: + - hspec-2.10.0 + - hspec-api-2.10.0 + - hspec-core-2.10.0 + - hspec-discover-2.10.0 + - hspec-golden-0.2.1.0 + - hspec-junit-formatter-1.1.2.1 + - regex-tdfa-1.3.2.2 diff --git a/stack-lts-18.28.yaml.lock b/stack-lts-18.28.yaml.lock index 7af0442..77efa81 100644 --- a/stack-lts-18.28.yaml.lock +++ b/stack-lts-18.28.yaml.lock @@ -3,10 +3,59 @@ # For more information, please see the documentation at: # https://docs.haskellstack.org/en/stable/lock_files -packages: [] +packages: +- completed: + hackage: hspec-2.10.0@sha256:2d1dc53e361998f002497b7222fdb700cc540b2aaf880e2619a0b5d54abb74e5,1712 + pantry-tree: + sha256: 5d8a184b89267523718e22cc4ded4c980d08af7aa4b53ec027822d0cf5065756 + size: 583 + original: + hackage: hspec-2.10.0 +- completed: + hackage: hspec-api-2.10.0@sha256:68690737181eae90d25e214803d966658e661215ddf5e24f1495b54a71a09364,1509 + pantry-tree: + sha256: 5f40ff2d1b0e137530fd5ea0790e0f8a08ea1552cf570627861e666bd291fad0 + size: 665 + original: + hackage: hspec-api-2.10.0 +- completed: + hackage: hspec-core-2.10.0@sha256:0402831c0af58d182da49f836aef6da9e195d242856ea8ce3f4ce3df245c85b0,6677 + pantry-tree: + sha256: 217e63acceb2c29d07d06b4fad648ed79575bc6d1158619a275677d5902b05ef + size: 5819 + original: + hackage: hspec-core-2.10.0 +- completed: + hackage: hspec-discover-2.10.0@sha256:517d0892217539969c199f9cc30065db7bcd68ff5512095e4f94ff8ef35d1313,2166 + pantry-tree: + sha256: 5e31c43b5c1477987d7321456b3dc69ce0b8f35312c5ea516702f91be42b20ca + size: 828 + original: + hackage: hspec-discover-2.10.0 +- completed: + hackage: hspec-golden-0.2.1.0@sha256:b695ae72685bbb5acd04cdd79d07c43de5ab8867e28662dd1a0002296f2a4940,2635 + pantry-tree: + sha256: d72fec5f2c0568ae958282c7a8b8f5bfba146e3e4ceee0510c0e22be5c8eb740 + size: 495 + original: + hackage: hspec-golden-0.2.1.0 +- completed: + hackage: hspec-junit-formatter-1.1.2.1@sha256:d45e8a6389339dc9e0213387e875a7e52545b1895632b20280942f383715542b,5842 + pantry-tree: + sha256: 4bbe193b2ece70aba1f435e72fa56ea7b30f0517b7405d6798adb4a27fe69c76 + size: 1491 + original: + hackage: hspec-junit-formatter-1.1.2.1 +- completed: + hackage: regex-tdfa-1.3.2.2@sha256:e5ea15b2898c62c63fae798784bc402b3862733d97a4f7ee3ec4f9ae6f447478,6997 + pantry-tree: + sha256: 7b02b5c15eaaaa96150e6ed2407cce2653c63d8a73a8bcc4827408300452dfbb + size: 2674 + original: + hackage: regex-tdfa-1.3.2.2 snapshots: - completed: + sha256: 428ec8d5ce932190d3cbe266b9eb3c175cd81e984babf876b64019e2cbe4ea68 size: 590100 url: https://raw.githubusercontent.com/commercialhaskell/stackage-snapshots/master/lts/18/28.yaml - sha256: 428ec8d5ce932190d3cbe266b9eb3c175cd81e984babf876b64019e2cbe4ea68 original: lts-18.28 diff --git a/stack-lts-19.33.yaml b/stack-lts-19.33.yaml index f9994e6..9237d4e 100644 --- a/stack-lts-19.33.yaml +++ b/stack-lts-19.33.yaml @@ -1 +1,10 @@ resolver: lts-19.33 + +extra-deps: + - hspec-2.10.0 + - hspec-api-2.10.0 + - hspec-core-2.10.0 + - hspec-discover-2.10.0 + - hspec-golden-0.2.1.0 + - hspec-junit-formatter-1.1.2.1 + - regex-tdfa-1.3.2.2 diff --git a/stack-lts-19.33.yaml.lock b/stack-lts-19.33.yaml.lock index d79c369..3809c90 100644 --- a/stack-lts-19.33.yaml.lock +++ b/stack-lts-19.33.yaml.lock @@ -3,7 +3,56 @@ # For more information, please see the documentation at: # https://docs.haskellstack.org/en/stable/lock_files -packages: [] +packages: +- completed: + hackage: hspec-2.10.0@sha256:2d1dc53e361998f002497b7222fdb700cc540b2aaf880e2619a0b5d54abb74e5,1712 + pantry-tree: + sha256: 5d8a184b89267523718e22cc4ded4c980d08af7aa4b53ec027822d0cf5065756 + size: 583 + original: + hackage: hspec-2.10.0 +- completed: + hackage: hspec-api-2.10.0@sha256:68690737181eae90d25e214803d966658e661215ddf5e24f1495b54a71a09364,1509 + pantry-tree: + sha256: 5f40ff2d1b0e137530fd5ea0790e0f8a08ea1552cf570627861e666bd291fad0 + size: 665 + original: + hackage: hspec-api-2.10.0 +- completed: + hackage: hspec-core-2.10.0@sha256:0402831c0af58d182da49f836aef6da9e195d242856ea8ce3f4ce3df245c85b0,6677 + pantry-tree: + sha256: 217e63acceb2c29d07d06b4fad648ed79575bc6d1158619a275677d5902b05ef + size: 5819 + original: + hackage: hspec-core-2.10.0 +- completed: + hackage: hspec-discover-2.10.0@sha256:517d0892217539969c199f9cc30065db7bcd68ff5512095e4f94ff8ef35d1313,2166 + pantry-tree: + sha256: 5e31c43b5c1477987d7321456b3dc69ce0b8f35312c5ea516702f91be42b20ca + size: 828 + original: + hackage: hspec-discover-2.10.0 +- completed: + hackage: hspec-golden-0.2.1.0@sha256:b695ae72685bbb5acd04cdd79d07c43de5ab8867e28662dd1a0002296f2a4940,2635 + pantry-tree: + sha256: d72fec5f2c0568ae958282c7a8b8f5bfba146e3e4ceee0510c0e22be5c8eb740 + size: 495 + original: + hackage: hspec-golden-0.2.1.0 +- completed: + hackage: hspec-junit-formatter-1.1.2.1@sha256:d45e8a6389339dc9e0213387e875a7e52545b1895632b20280942f383715542b,5842 + pantry-tree: + sha256: 4bbe193b2ece70aba1f435e72fa56ea7b30f0517b7405d6798adb4a27fe69c76 + size: 1491 + original: + hackage: hspec-junit-formatter-1.1.2.1 +- completed: + hackage: regex-tdfa-1.3.2.2@sha256:e5ea15b2898c62c63fae798784bc402b3862733d97a4f7ee3ec4f9ae6f447478,6997 + pantry-tree: + sha256: 7b02b5c15eaaaa96150e6ed2407cce2653c63d8a73a8bcc4827408300452dfbb + size: 2674 + original: + hackage: regex-tdfa-1.3.2.2 snapshots: - completed: sha256: 6d1532d40621957a25bad5195bfca7938e8a06d923c91bc52aa0f3c41181f2d4 diff --git a/stack-lts-20.26.yaml b/stack-lts-20.26.yaml index fc9172f..aa53c3f 100644 --- a/stack-lts-20.26.yaml +++ b/stack-lts-20.26.yaml @@ -1 +1,9 @@ resolver: lts-20.26 + +extra-deps: + - hspec-2.10.0 + - hspec-api-2.10.0 + - hspec-core-2.10.0 + - hspec-discover-2.10.0 + - hspec-junit-formatter-1.1.2.1 + - regex-tdfa-1.3.2.2 diff --git a/stack-lts-20.26.yaml.lock b/stack-lts-20.26.yaml.lock index ea5a850..5b4c1b9 100644 --- a/stack-lts-20.26.yaml.lock +++ b/stack-lts-20.26.yaml.lock @@ -3,7 +3,49 @@ # For more information, please see the documentation at: # https://docs.haskellstack.org/en/stable/lock_files -packages: [] +packages: +- completed: + hackage: hspec-2.10.0@sha256:2d1dc53e361998f002497b7222fdb700cc540b2aaf880e2619a0b5d54abb74e5,1712 + pantry-tree: + sha256: 5d8a184b89267523718e22cc4ded4c980d08af7aa4b53ec027822d0cf5065756 + size: 583 + original: + hackage: hspec-2.10.0 +- completed: + hackage: hspec-api-2.10.0@sha256:68690737181eae90d25e214803d966658e661215ddf5e24f1495b54a71a09364,1509 + pantry-tree: + sha256: 5f40ff2d1b0e137530fd5ea0790e0f8a08ea1552cf570627861e666bd291fad0 + size: 665 + original: + hackage: hspec-api-2.10.0 +- completed: + hackage: hspec-core-2.10.0@sha256:0402831c0af58d182da49f836aef6da9e195d242856ea8ce3f4ce3df245c85b0,6677 + pantry-tree: + sha256: 217e63acceb2c29d07d06b4fad648ed79575bc6d1158619a275677d5902b05ef + size: 5819 + original: + hackage: hspec-core-2.10.0 +- completed: + hackage: hspec-discover-2.10.0@sha256:517d0892217539969c199f9cc30065db7bcd68ff5512095e4f94ff8ef35d1313,2166 + pantry-tree: + sha256: 5e31c43b5c1477987d7321456b3dc69ce0b8f35312c5ea516702f91be42b20ca + size: 828 + original: + hackage: hspec-discover-2.10.0 +- completed: + hackage: hspec-junit-formatter-1.1.2.1@sha256:d45e8a6389339dc9e0213387e875a7e52545b1895632b20280942f383715542b,5842 + pantry-tree: + sha256: 4bbe193b2ece70aba1f435e72fa56ea7b30f0517b7405d6798adb4a27fe69c76 + size: 1491 + original: + hackage: hspec-junit-formatter-1.1.2.1 +- completed: + hackage: regex-tdfa-1.3.2.2@sha256:e5ea15b2898c62c63fae798784bc402b3862733d97a4f7ee3ec4f9ae6f447478,6997 + pantry-tree: + sha256: 7b02b5c15eaaaa96150e6ed2407cce2653c63d8a73a8bcc4827408300452dfbb + size: 2674 + original: + hackage: regex-tdfa-1.3.2.2 snapshots: - completed: sha256: 5a59b2a405b3aba3c00188453be172b85893cab8ebc352b1ef58b0eae5d248a2 diff --git a/stack-nightly.yaml b/stack-nightly.yaml index c5ecde6..d0dca43 100644 --- a/stack-nightly.yaml +++ b/stack-nightly.yaml @@ -1 +1 @@ -resolver: nightly-2023-09-09 +resolver: nightly-2024-07-02 diff --git a/stack-nightly.yaml.lock b/stack-nightly.yaml.lock index eedded3..572fa90 100644 --- a/stack-nightly.yaml.lock +++ b/stack-nightly.yaml.lock @@ -6,7 +6,7 @@ packages: [] snapshots: - completed: - size: 588043 - url: https://raw.githubusercontent.com/commercialhaskell/stackage-snapshots/master/nightly/2022/5/20.yaml - sha256: 7800e52de866bab899c118558f3a48e455f9f57fb3b3595e0002018fbea5ee58 - original: nightly-2022-05-20 + sha256: 38615d864dc3f7e21ccbe3c3934c6c28753285e093a25a0c7e8a9aab49e1daf9 + size: 650205 + url: https://raw.githubusercontent.com/commercialhaskell/stackage-snapshots/master/nightly/2024/7/2.yaml + original: nightly-2024-07-02 diff --git a/stack.yaml b/stack.yaml index 6d0e0d1..5ed2ee4 100644 --- a/stack.yaml +++ b/stack.yaml @@ -1 +1 @@ -resolver: lts-21.11 +resolver: lts-22.27 diff --git a/stack.yaml.lock b/stack.yaml.lock index 30cbd43..c2b206b 100644 --- a/stack.yaml.lock +++ b/stack.yaml.lock @@ -6,7 +6,7 @@ packages: [] snapshots: - completed: - sha256: 64d66303f927e87ffe6b8ccf736229bf608731e80d7afdf62bdd63c59f857740 - size: 640037 - url: https://raw.githubusercontent.com/commercialhaskell/stackage-snapshots/master/lts/21/11.yaml - original: lts-21.11 + sha256: bc144ddf301a5c99f2cf51c7de50279ba144fd4486cb3c66f87ed761d6bbf6e9 + size: 719131 + url: https://raw.githubusercontent.com/commercialhaskell/stackage-snapshots/master/lts/22/27.yaml + original: lts-22.27 diff --git a/tests/SpecHook.hs b/tests/SpecHook.hs new file mode 100644 index 0000000..e064a69 --- /dev/null +++ b/tests/SpecHook.hs @@ -0,0 +1,11 @@ +module SpecHook + ( hook + ) where + +import Prelude + +import Test.Hspec +import Test.Hspec.JUnit.Formatter.Env as Formatter + +hook :: Spec -> Spec +hook = Formatter.whenEnabled Formatter.add . parallel diff --git a/tests/WhateverSpec.hs b/tests/WhateverSpec.hs new file mode 100644 index 0000000..4705b6b --- /dev/null +++ b/tests/WhateverSpec.hs @@ -0,0 +1,8 @@ +module WhateverSpec (spec) where + +import Prelude + +import Test.Hspec + +spec :: Spec +spec = pure () -- Tests go here diff --git a/weeder.toml b/weeder.toml index d867ec0..58d206f 100644 --- a/weeder.toml +++ b/weeder.toml @@ -1,2 +1,2 @@ -roots = [ "Main.main" ] +roots = ["Main.main", "^Paths_.*"] type-class-roots = true