diff --git a/.github/workflows/check.yml b/.github/workflows/check.yml
index fe6bd94..9efb621 100644
--- a/.github/workflows/check.yml
+++ b/.github/workflows/check.yml
@@ -13,10 +13,10 @@ jobs:
- name: xrefcheck
run: nix run github:serokell/xrefcheck
- - name: reuse
- run: nix build -L .#checks.x86_64-linux.reuse-lint
- # Run step even if the previous one has failed
- if: success() || failure()
+ # - name: reuse
+ # run: nix build -L .#checks.x86_64-linux.reuse-lint
+ # # Run step even if the previous one has failed
+ # if: success() || failure()
- name: hlint
run: nix build -L .#checks.x86_64-linux.hlint
@@ -26,9 +26,9 @@ jobs:
run: nix build -L .#checks.x86_64-linux.stylish-haskell
if: success() || failure()
- - name: check-trailing-whitespace
- run: nix build -L .#checks.x86_64-linux.trailing-whitespace
- if: success() || failure()
+ # - name: check-trailing-whitespace
+ # run: nix build -L .#checks.x86_64-linux.trailing-whitespace
+ # if: success() || failure()
- name: check-hpack
run: nix build -L .#checks.x86_64-linux.hpack
@@ -43,11 +43,11 @@ jobs:
- uses: actions/checkout@v3
- id: set-matrix
- run: echo "matrix=$(nix eval --json .#ghc-matrix.x86_64-linux)" >> $GITHUB_OUTPUT
+ run: echo "matrix=$(nix eval --json .#build-matrix.x86_64-linux)" >> $GITHUB_OUTPUT
build-and-test:
needs: ghc-versions
- name: ghc${{ matrix.ghc }}
+ name: ${{ matrix.prefix }}
runs-on: [self-hosted, nix]
strategy:
fail-fast: false
@@ -57,8 +57,8 @@ jobs:
- uses: actions/checkout@v3
- name: build
- run: nix build -L .#checks.x86_64-linux.ghc${{ matrix.ghc }}:build-all --keep-going
+ run: nix build -L .#checks.x86_64-linux.${{ matrix.prefix }}:build-all --keep-going
- name: test
- run: nix build -L .#checks.x86_64-linux.ghc${{ matrix.ghc }}:test-all --keep-going
+ run: nix build -L .#checks.x86_64-linux.${{ matrix.prefix }}:test-all --keep-going
if: success() || failure()
diff --git a/cabal.project b/cabal.project
new file mode 100644
index 0000000..014ebd7
--- /dev/null
+++ b/cabal.project
@@ -0,0 +1,3 @@
+packages:
+ ./with-utf8/
+ ./test-package/
\ No newline at end of file
diff --git a/flake.lock b/flake.lock
index 0a82daa..032ed11 100644
--- a/flake.lock
+++ b/flake.lock
@@ -16,6 +16,22 @@
"type": "github"
}
},
+ "HTTP_2": {
+ "flake": false,
+ "locked": {
+ "lastModified": 1451647621,
+ "narHash": "sha256-oHIyw3x0iKBexEo49YeUDV1k74ZtyYKGR2gNJXXRxts=",
+ "owner": "phadej",
+ "repo": "HTTP",
+ "rev": "9bc0996d412fef1787449d841277ef663ad9a915",
+ "type": "github"
+ },
+ "original": {
+ "owner": "phadej",
+ "repo": "HTTP",
+ "type": "github"
+ }
+ },
"blank": {
"locked": {
"lastModified": 1625557891,
@@ -48,6 +64,23 @@
"type": "github"
}
},
+ "cabal-32_2": {
+ "flake": false,
+ "locked": {
+ "lastModified": 1603716527,
+ "narHash": "sha256-X0TFfdD4KZpwl0Zr6x+PLxUt/VyKQfX7ylXHdmZIL+w=",
+ "owner": "haskell",
+ "repo": "cabal",
+ "rev": "48bf10787e27364730dd37a42b603cee8d6af7ee",
+ "type": "github"
+ },
+ "original": {
+ "owner": "haskell",
+ "ref": "3.2",
+ "repo": "cabal",
+ "type": "github"
+ }
+ },
"cabal-34": {
"flake": false,
"locked": {
@@ -65,6 +98,23 @@
"type": "github"
}
},
+ "cabal-34_2": {
+ "flake": false,
+ "locked": {
+ "lastModified": 1645834128,
+ "narHash": "sha256-wG3d+dOt14z8+ydz4SL7pwGfe7SiimxcD/LOuPCV6xM=",
+ "owner": "haskell",
+ "repo": "cabal",
+ "rev": "5ff598c67f53f7c4f48e31d722ba37172230c462",
+ "type": "github"
+ },
+ "original": {
+ "owner": "haskell",
+ "ref": "3.4",
+ "repo": "cabal",
+ "type": "github"
+ }
+ },
"cabal-36": {
"flake": false,
"locked": {
@@ -82,6 +132,23 @@
"type": "github"
}
},
+ "cabal-36_2": {
+ "flake": false,
+ "locked": {
+ "lastModified": 1669081697,
+ "narHash": "sha256-I5or+V7LZvMxfbYgZATU4awzkicBwwok4mVoje+sGmU=",
+ "owner": "haskell",
+ "repo": "cabal",
+ "rev": "8fd619e33d34924a94e691c5fea2c42f0fc7f144",
+ "type": "github"
+ },
+ "original": {
+ "owner": "haskell",
+ "ref": "3.6",
+ "repo": "cabal",
+ "type": "github"
+ }
+ },
"cardano-shell": {
"flake": false,
"locked": {
@@ -98,11 +165,27 @@
"type": "github"
}
},
+ "cardano-shell_2": {
+ "flake": false,
+ "locked": {
+ "lastModified": 1608537748,
+ "narHash": "sha256-PulY1GfiMgKVnBci3ex4ptk2UNYMXqGjJOxcPy2KYT4=",
+ "owner": "input-output-hk",
+ "repo": "cardano-shell",
+ "rev": "9392c75087cb9a3d453998f4230930dea3a95725",
+ "type": "github"
+ },
+ "original": {
+ "owner": "input-output-hk",
+ "repo": "cardano-shell",
+ "type": "github"
+ }
+ },
"deploy-rs": {
"inputs": {
- "flake-compat": "flake-compat_4",
- "nixpkgs": "nixpkgs_6",
- "utils": "utils_2"
+ "flake-compat": "flake-compat_3",
+ "nixpkgs": "nixpkgs_3",
+ "utils": "utils"
},
"locked": {
"lastModified": 1648475189,
@@ -120,12 +203,14 @@
"devshell": {
"inputs": {
"flake-utils": [
+ "serokell-nix",
"haskell-nix",
"tullia",
"std",
"flake-utils"
],
"nixpkgs": [
+ "serokell-nix",
"haskell-nix",
"tullia",
"std",
@@ -149,12 +234,14 @@
"dmerge": {
"inputs": {
"nixlib": [
+ "serokell-nix",
"haskell-nix",
"tullia",
"std",
"nixpkgs"
],
"yants": [
+ "serokell-nix",
"haskell-nix",
"tullia",
"std",
@@ -210,11 +297,11 @@
"flake-compat_3": {
"flake": false,
"locked": {
- "lastModified": 1650374568,
- "narHash": "sha256-Z+s0J8/r907g149rllvwhb4pKi8Wam5ij0st8PwAh+E=",
+ "lastModified": 1648199409,
+ "narHash": "sha256-JwPKdC2PoVBkG6E+eWw3j6BMR6sL3COpYWfif7RVb8Y=",
"owner": "edolstra",
"repo": "flake-compat",
- "rev": "b4a34015c698c7793d592d66adbab377907a2be8",
+ "rev": "64a525ee38886ab9028e6f61790de0832aa3ef03",
"type": "github"
},
"original": {
@@ -226,32 +313,49 @@
"flake-compat_4": {
"flake": false,
"locked": {
- "lastModified": 1648199409,
- "narHash": "sha256-JwPKdC2PoVBkG6E+eWw3j6BMR6sL3COpYWfif7RVb8Y=",
+ "lastModified": 1627913399,
+ "narHash": "sha256-hY8g6H2KFL8ownSiFeMOjwPC8P0ueXpCVEbxgda3pko=",
"owner": "edolstra",
"repo": "flake-compat",
- "rev": "64a525ee38886ab9028e6f61790de0832aa3ef03",
+ "rev": "12c64ca55c1014cdc1b16ed5a804aa8576601ff2",
"type": "github"
},
"original": {
- "owner": "edolstra",
+ "id": "flake-compat",
+ "type": "indirect"
+ }
+ },
+ "flake-compat_5": {
+ "flake": false,
+ "locked": {
+ "lastModified": 1672831974,
+ "narHash": "sha256-z9k3MfslLjWQfnjBtEtJZdq3H7kyi2kQtUThfTgdRk0=",
+ "owner": "input-output-hk",
+ "repo": "flake-compat",
+ "rev": "45f2638735f8cdc40fe302742b79f248d23eb368",
+ "type": "github"
+ },
+ "original": {
+ "owner": "input-output-hk",
+ "ref": "hkm/gitlab-fix",
"repo": "flake-compat",
"type": "github"
}
},
- "flake-compat_5": {
+ "flake-compat_6": {
"flake": false,
"locked": {
- "lastModified": 1627913399,
- "narHash": "sha256-hY8g6H2KFL8ownSiFeMOjwPC8P0ueXpCVEbxgda3pko=",
+ "lastModified": 1650374568,
+ "narHash": "sha256-Z+s0J8/r907g149rllvwhb4pKi8Wam5ij0st8PwAh+E=",
"owner": "edolstra",
"repo": "flake-compat",
- "rev": "12c64ca55c1014cdc1b16ed5a804aa8576601ff2",
+ "rev": "b4a34015c698c7793d592d66adbab377907a2be8",
"type": "github"
},
"original": {
- "id": "flake-compat",
- "type": "indirect"
+ "owner": "edolstra",
+ "repo": "flake-compat",
+ "type": "github"
}
},
"flake-utils": {
@@ -270,6 +374,36 @@
}
},
"flake-utils_2": {
+ "locked": {
+ "lastModified": 1679360468,
+ "narHash": "sha256-LGnza3cfXF10Biw3ZTg0u9o9t7s680Ww200t5KkHTh8=",
+ "owner": "hamishmack",
+ "repo": "flake-utils",
+ "rev": "e1ea268ff47ad475443dbabcd54744b4e5b9d4f5",
+ "type": "github"
+ },
+ "original": {
+ "owner": "hamishmack",
+ "ref": "hkm/nested-hydraJobs",
+ "repo": "flake-utils",
+ "type": "github"
+ }
+ },
+ "flake-utils_3": {
+ "locked": {
+ "lastModified": 1631561581,
+ "narHash": "sha256-3VQMV5zvxaVLvqqUrNz3iJelLw30mIVSfZmAaauM3dA=",
+ "owner": "numtide",
+ "repo": "flake-utils",
+ "rev": "7e5bf3925f6fbdfaf50a2a7ca0be2879c4261d19",
+ "type": "github"
+ },
+ "original": {
+ "id": "flake-utils",
+ "type": "indirect"
+ }
+ },
+ "flake-utils_4": {
"locked": {
"lastModified": 1667395993,
"narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=",
@@ -284,7 +418,7 @@
"type": "github"
}
},
- "flake-utils_3": {
+ "flake-utils_5": {
"locked": {
"lastModified": 1653893745,
"narHash": "sha256-0jntwV3Z8//YwuOjzhV2sgJJPt+HY6KhU7VZUL0fKZQ=",
@@ -299,7 +433,7 @@
"type": "github"
}
},
- "flake-utils_4": {
+ "flake-utils_6": {
"locked": {
"lastModified": 1659877975,
"narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=",
@@ -314,18 +448,21 @@
"type": "github"
}
},
- "flake-utils_5": {
+ "get-tested-src": {
+ "flake": false,
"locked": {
- "lastModified": 1631561581,
- "narHash": "sha256-3VQMV5zvxaVLvqqUrNz3iJelLw30mIVSfZmAaauM3dA=",
- "owner": "numtide",
- "repo": "flake-utils",
- "rev": "7e5bf3925f6fbdfaf50a2a7ca0be2879c4261d19",
+ "lastModified": 1687355864,
+ "narHash": "sha256-yQ4coxfnp2Jsw1kvwf2/Zn72Kltze2WrfHN54eLR070=",
+ "owner": "Sereja313",
+ "repo": "get-tested",
+ "rev": "455bbd047374ed907900b49641a4ea7f0a905709",
"type": "github"
},
"original": {
- "id": "flake-utils",
- "type": "indirect"
+ "owner": "Sereja313",
+ "ref": "issue-8-emit-ghc-versions",
+ "repo": "get-tested",
+ "type": "github"
}
},
"ghc-8.6.5-iohk": {
@@ -345,6 +482,23 @@
"type": "github"
}
},
+ "ghc-8.6.5-iohk_2": {
+ "flake": false,
+ "locked": {
+ "lastModified": 1600920045,
+ "narHash": "sha256-DO6kxJz248djebZLpSzTGD6s8WRpNI9BTwUeOf5RwY8=",
+ "owner": "input-output-hk",
+ "repo": "ghc",
+ "rev": "95713a6ecce4551240da7c96b6176f980af75cae",
+ "type": "github"
+ },
+ "original": {
+ "owner": "input-output-hk",
+ "ref": "release/8.6.5-iohk",
+ "repo": "ghc",
+ "type": "github"
+ }
+ },
"gitignore-nix": {
"flake": false,
"locked": {
@@ -363,8 +517,8 @@
},
"gomod2nix": {
"inputs": {
- "nixpkgs": "nixpkgs_2",
- "utils": "utils"
+ "nixpkgs": "nixpkgs_5",
+ "utils": "utils_2"
},
"locked": {
"lastModified": 1655245309,
@@ -395,6 +549,22 @@
"type": "indirect"
}
},
+ "hackage_2": {
+ "flake": false,
+ "locked": {
+ "lastModified": 1678926579,
+ "narHash": "sha256-5t1QRBTsEM2wREtDf3xrHp9Kphs+AdQZKAEltaylIJQ=",
+ "owner": "input-output-hk",
+ "repo": "hackage.nix",
+ "rev": "fb58b0ba5773c5f0211f284b0fae061426cf8267",
+ "type": "github"
+ },
+ "original": {
+ "owner": "input-output-hk",
+ "repo": "hackage.nix",
+ "type": "github"
+ }
+ },
"haskell-nix": {
"inputs": {
"HTTP": "HTTP",
@@ -408,6 +578,8 @@
"hackage": [
"hackage"
],
+ "hls-1.10": "hls-1.10",
+ "hls-2.0": "hls-2.0",
"hpc-coveralls": "hpc-coveralls",
"hydra": "hydra",
"iserv-proxy": "iserv-proxy",
@@ -420,11 +592,53 @@
"nixpkgs-2111": "nixpkgs-2111",
"nixpkgs-2205": "nixpkgs-2205",
"nixpkgs-2211": "nixpkgs-2211",
+ "nixpkgs-2305": "nixpkgs-2305",
"nixpkgs-unstable": "nixpkgs-unstable",
"old-ghc-nix": "old-ghc-nix",
"stackage": [
"stackage"
+ ]
+ },
+ "locked": {
+ "lastModified": 1689209503,
+ "narHash": "sha256-9U73sWQ/JKbBhOcij8/2/M/7MfoNZxTtek5Zws840Bs=",
+ "owner": "input-output-hk",
+ "repo": "haskell.nix",
+ "rev": "50e7b671ca73ea9ab350d7f18ba434bf8393051a",
+ "type": "github"
+ },
+ "original": {
+ "id": "haskell-nix",
+ "type": "indirect"
+ }
+ },
+ "haskell-nix_2": {
+ "inputs": {
+ "HTTP": "HTTP_2",
+ "cabal-32": "cabal-32_2",
+ "cabal-34": "cabal-34_2",
+ "cabal-36": "cabal-36_2",
+ "cardano-shell": "cardano-shell_2",
+ "flake-compat": "flake-compat_5",
+ "flake-utils": "flake-utils_4",
+ "ghc-8.6.5-iohk": "ghc-8.6.5-iohk_2",
+ "hackage": "hackage_2",
+ "hpc-coveralls": "hpc-coveralls_2",
+ "hydra": "hydra_2",
+ "iserv-proxy": "iserv-proxy_2",
+ "nixpkgs": [
+ "serokell-nix",
+ "haskell-nix",
+ "nixpkgs-unstable"
],
+ "nixpkgs-2003": "nixpkgs-2003_2",
+ "nixpkgs-2105": "nixpkgs-2105_2",
+ "nixpkgs-2111": "nixpkgs-2111_2",
+ "nixpkgs-2205": "nixpkgs-2205_2",
+ "nixpkgs-2211": "nixpkgs-2211_2",
+ "nixpkgs-unstable": "nixpkgs-unstable_2",
+ "old-ghc-nix": "old-ghc-nix_2",
+ "stackage": "stackage",
"tullia": "tullia"
},
"locked": {
@@ -440,6 +654,40 @@
"type": "indirect"
}
},
+ "hls-1.10": {
+ "flake": false,
+ "locked": {
+ "lastModified": 1680000865,
+ "narHash": "sha256-rc7iiUAcrHxwRM/s0ErEsSPxOR3u8t7DvFeWlMycWgo=",
+ "owner": "haskell",
+ "repo": "haskell-language-server",
+ "rev": "b08691db779f7a35ff322b71e72a12f6e3376fd9",
+ "type": "github"
+ },
+ "original": {
+ "owner": "haskell",
+ "ref": "1.10.0.0",
+ "repo": "haskell-language-server",
+ "type": "github"
+ }
+ },
+ "hls-2.0": {
+ "flake": false,
+ "locked": {
+ "lastModified": 1687698105,
+ "narHash": "sha256-OHXlgRzs/kuJH8q7Sxh507H+0Rb8b7VOiPAjcY9sM1k=",
+ "owner": "haskell",
+ "repo": "haskell-language-server",
+ "rev": "783905f211ac63edf982dd1889c671653327e441",
+ "type": "github"
+ },
+ "original": {
+ "owner": "haskell",
+ "ref": "2.0.0.1",
+ "repo": "haskell-language-server",
+ "type": "github"
+ }
+ },
"hpc-coveralls": {
"flake": false,
"locked": {
@@ -456,6 +704,22 @@
"type": "github"
}
},
+ "hpc-coveralls_2": {
+ "flake": false,
+ "locked": {
+ "lastModified": 1607498076,
+ "narHash": "sha256-8uqsEtivphgZWYeUo5RDUhp6bO9j2vaaProQxHBltQk=",
+ "owner": "sevanspowell",
+ "repo": "hpc-coveralls",
+ "rev": "14df0f7d229f4cd2e79f8eabb1a740097fdfa430",
+ "type": "github"
+ },
+ "original": {
+ "owner": "sevanspowell",
+ "repo": "hpc-coveralls",
+ "type": "github"
+ }
+ },
"hydra": {
"inputs": {
"nix": "nix",
@@ -479,9 +743,34 @@
"type": "indirect"
}
},
+ "hydra_2": {
+ "inputs": {
+ "nix": "nix_2",
+ "nixpkgs": [
+ "serokell-nix",
+ "haskell-nix",
+ "hydra",
+ "nix",
+ "nixpkgs"
+ ]
+ },
+ "locked": {
+ "lastModified": 1671755331,
+ "narHash": "sha256-hXsgJj0Cy0ZiCiYdW2OdBz5WmFyOMKuw4zyxKpgUKm4=",
+ "owner": "NixOS",
+ "repo": "hydra",
+ "rev": "f48f00ee6d5727ae3e488cbf9ce157460853fea8",
+ "type": "github"
+ },
+ "original": {
+ "id": "hydra",
+ "type": "indirect"
+ }
+ },
"incl": {
"inputs": {
"nixlib": [
+ "serokell-nix",
"haskell-nix",
"tullia",
"std",
@@ -519,6 +808,23 @@
"url": "https://gitlab.haskell.org/hamishmack/iserv-proxy.git"
}
},
+ "iserv-proxy_2": {
+ "flake": false,
+ "locked": {
+ "lastModified": 1670983692,
+ "narHash": "sha256-avLo34JnI9HNyOuauK5R69usJm+GfW3MlyGlYxZhTgY=",
+ "ref": "hkm/remote-iserv",
+ "rev": "50d0abb3317ac439a4e7495b185a64af9b7b9300",
+ "revCount": 10,
+ "type": "git",
+ "url": "https://gitlab.haskell.org/hamishmack/iserv-proxy.git"
+ },
+ "original": {
+ "ref": "hkm/remote-iserv",
+ "type": "git",
+ "url": "https://gitlab.haskell.org/hamishmack/iserv-proxy.git"
+ }
+ },
"lowdown-src": {
"flake": false,
"locked": {
@@ -535,7 +841,23 @@
"type": "github"
}
},
- "lowdown-src_2": {
+ "lowdown-src_2": {
+ "flake": false,
+ "locked": {
+ "lastModified": 1633514407,
+ "narHash": "sha256-Dw32tiMjdK9t3ETl5fzGrutQTzh2rufgZV4A/BbxuD4=",
+ "owner": "kristapsdz",
+ "repo": "lowdown",
+ "rev": "d2c2b44ff6c27b936ec27358a2653caaef8f73b8",
+ "type": "github"
+ },
+ "original": {
+ "owner": "kristapsdz",
+ "repo": "lowdown",
+ "type": "github"
+ }
+ },
+ "lowdown-src_3": {
"flake": false,
"locked": {
"lastModified": 1632468475,
@@ -554,12 +876,14 @@
"n2c": {
"inputs": {
"flake-utils": [
+ "serokell-nix",
"haskell-nix",
"tullia",
"std",
"flake-utils"
],
"nixpkgs": [
+ "serokell-nix",
"haskell-nix",
"tullia",
"std",
@@ -603,8 +927,9 @@
},
"nix-nomad": {
"inputs": {
- "flake-compat": "flake-compat_3",
+ "flake-compat": "flake-compat_6",
"flake-utils": [
+ "serokell-nix",
"haskell-nix",
"tullia",
"nix2container",
@@ -612,11 +937,13 @@
],
"gomod2nix": "gomod2nix",
"nixpkgs": [
+ "serokell-nix",
"haskell-nix",
"tullia",
"nixpkgs"
],
"nixpkgs-lib": [
+ "serokell-nix",
"haskell-nix",
"tullia",
"nixpkgs"
@@ -638,8 +965,8 @@
},
"nix2container": {
"inputs": {
- "flake-utils": "flake-utils_3",
- "nixpkgs": "nixpkgs_3"
+ "flake-utils": "flake-utils_5",
+ "nixpkgs": "nixpkgs_6"
},
"locked": {
"lastModified": 1658567952,
@@ -658,7 +985,28 @@
"nix_2": {
"inputs": {
"lowdown-src": "lowdown-src_2",
- "nixpkgs": "nixpkgs_7"
+ "nixpkgs": "nixpkgs_4",
+ "nixpkgs-regression": "nixpkgs-regression_2"
+ },
+ "locked": {
+ "lastModified": 1661606874,
+ "narHash": "sha256-9+rpYzI+SmxJn+EbYxjGv68Ucp22bdFUSy/4LkHkkDQ=",
+ "owner": "NixOS",
+ "repo": "nix",
+ "rev": "11e45768b34fdafdcf019ddbd337afa16127ff0f",
+ "type": "github"
+ },
+ "original": {
+ "owner": "NixOS",
+ "ref": "2.11.0",
+ "repo": "nix",
+ "type": "github"
+ }
+ },
+ "nix_3": {
+ "inputs": {
+ "lowdown-src": "lowdown-src_3",
+ "nixpkgs": "nixpkgs_8"
},
"locked": {
"lastModified": 1633098935,
@@ -676,18 +1024,21 @@
"nixago": {
"inputs": {
"flake-utils": [
+ "serokell-nix",
"haskell-nix",
"tullia",
"std",
"flake-utils"
],
"nixago-exts": [
+ "serokell-nix",
"haskell-nix",
"tullia",
"std",
"blank"
],
"nixpkgs": [
+ "serokell-nix",
"haskell-nix",
"tullia",
"std",
@@ -740,6 +1091,22 @@
"type": "github"
}
},
+ "nixpkgs-2003_2": {
+ "locked": {
+ "lastModified": 1620055814,
+ "narHash": "sha256-8LEHoYSJiL901bTMVatq+rf8y7QtWuZhwwpKE2fyaRY=",
+ "owner": "NixOS",
+ "repo": "nixpkgs",
+ "rev": "1db42b7fe3878f3f5f7a4f2dc210772fd080e205",
+ "type": "github"
+ },
+ "original": {
+ "owner": "NixOS",
+ "ref": "nixpkgs-20.03-darwin",
+ "repo": "nixpkgs",
+ "type": "github"
+ }
+ },
"nixpkgs-2105": {
"locked": {
"lastModified": 1659914493,
@@ -756,6 +1123,22 @@
"type": "github"
}
},
+ "nixpkgs-2105_2": {
+ "locked": {
+ "lastModified": 1659914493,
+ "narHash": "sha256-lkA5X3VNMKirvA+SUzvEhfA7XquWLci+CGi505YFAIs=",
+ "owner": "NixOS",
+ "repo": "nixpkgs",
+ "rev": "022caabb5f2265ad4006c1fa5b1ebe69fb0c3faf",
+ "type": "github"
+ },
+ "original": {
+ "owner": "NixOS",
+ "ref": "nixpkgs-21.05-darwin",
+ "repo": "nixpkgs",
+ "type": "github"
+ }
+ },
"nixpkgs-2111": {
"locked": {
"lastModified": 1659446231,
@@ -772,7 +1155,39 @@
"type": "github"
}
},
+ "nixpkgs-2111_2": {
+ "locked": {
+ "lastModified": 1659446231,
+ "narHash": "sha256-hekabNdTdgR/iLsgce5TGWmfIDZ86qjPhxDg/8TlzhE=",
+ "owner": "NixOS",
+ "repo": "nixpkgs",
+ "rev": "eabc38219184cc3e04a974fe31857d8e0eac098d",
+ "type": "github"
+ },
+ "original": {
+ "owner": "NixOS",
+ "ref": "nixpkgs-21.11-darwin",
+ "repo": "nixpkgs",
+ "type": "github"
+ }
+ },
"nixpkgs-2205": {
+ "locked": {
+ "lastModified": 1682600000,
+ "narHash": "sha256-ha4BehR1dh8EnXSoE1m/wyyYVvHI9txjW4w5/oxsW5Y=",
+ "owner": "NixOS",
+ "repo": "nixpkgs",
+ "rev": "50fc86b75d2744e1ab3837ef74b53f103a9b55a0",
+ "type": "github"
+ },
+ "original": {
+ "owner": "NixOS",
+ "ref": "nixpkgs-22.05-darwin",
+ "repo": "nixpkgs",
+ "type": "github"
+ }
+ },
+ "nixpkgs-2205_2": {
"locked": {
"lastModified": 1672580127,
"narHash": "sha256-3lW3xZslREhJogoOkjeZtlBtvFMyxHku7I/9IVehhT8=",
@@ -789,6 +1204,22 @@
}
},
"nixpkgs-2211": {
+ "locked": {
+ "lastModified": 1685314633,
+ "narHash": "sha256-8LXBPqTQXl5ofkjpJ18JcbmLJ/lWDoMxtUwiDYv0wro=",
+ "owner": "NixOS",
+ "repo": "nixpkgs",
+ "rev": "c8a17ce7abc03c50cd072e9e6c9b389c5f61836b",
+ "type": "github"
+ },
+ "original": {
+ "owner": "NixOS",
+ "ref": "nixpkgs-22.11-darwin",
+ "repo": "nixpkgs",
+ "type": "github"
+ }
+ },
+ "nixpkgs-2211_2": {
"locked": {
"lastModified": 1675730325,
"narHash": "sha256-uNvD7fzO5hNlltNQUAFBPlcEjNG5Gkbhl/ROiX+GZU4=",
@@ -804,86 +1235,87 @@
"type": "github"
}
},
- "nixpkgs-regression": {
+ "nixpkgs-2305": {
"locked": {
- "lastModified": 1643052045,
- "narHash": "sha256-uGJ0VXIhWKGXxkeNnq4TvV3CIOkUJ3PAoLZ3HMzNVMw=",
+ "lastModified": 1685338297,
+ "narHash": "sha256-+Aq4O0Jn1W1q927ZHc3Zn6RO7bwQGmb6O8xYoGy0KrM=",
"owner": "NixOS",
"repo": "nixpkgs",
- "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2",
+ "rev": "6287b47dbfabbb8bfbb9b1b53d198ad58a774de4",
"type": "github"
},
"original": {
"owner": "NixOS",
+ "ref": "nixpkgs-23.05-darwin",
"repo": "nixpkgs",
- "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2",
"type": "github"
}
},
- "nixpkgs-unstable": {
+ "nixpkgs-regression": {
"locked": {
- "lastModified": 1675758091,
- "narHash": "sha256-7gFSQbSVAFUHtGCNHPF7mPc5CcqDk9M2+inlVPZSneg=",
+ "lastModified": 1643052045,
+ "narHash": "sha256-uGJ0VXIhWKGXxkeNnq4TvV3CIOkUJ3PAoLZ3HMzNVMw=",
"owner": "NixOS",
"repo": "nixpkgs",
- "rev": "747927516efcb5e31ba03b7ff32f61f6d47e7d87",
+ "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2",
"type": "github"
},
"original": {
"owner": "NixOS",
- "ref": "nixpkgs-unstable",
"repo": "nixpkgs",
+ "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2",
"type": "github"
}
},
- "nixpkgs_2": {
+ "nixpkgs-regression_2": {
"locked": {
- "lastModified": 1653581809,
- "narHash": "sha256-Uvka0V5MTGbeOfWte25+tfRL3moECDh1VwokWSZUdoY=",
+ "lastModified": 1643052045,
+ "narHash": "sha256-uGJ0VXIhWKGXxkeNnq4TvV3CIOkUJ3PAoLZ3HMzNVMw=",
"owner": "NixOS",
"repo": "nixpkgs",
- "rev": "83658b28fe638a170a19b8933aa008b30640fbd1",
+ "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2",
"type": "github"
},
"original": {
"owner": "NixOS",
- "ref": "nixos-unstable",
"repo": "nixpkgs",
+ "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2",
"type": "github"
}
},
- "nixpkgs_3": {
+ "nixpkgs-unstable": {
"locked": {
- "lastModified": 1654807842,
- "narHash": "sha256-ADymZpr6LuTEBXcy6RtFHcUZdjKTBRTMYwu19WOx17E=",
+ "lastModified": 1685347552,
+ "narHash": "sha256-9woSppRyUFo26yUffORTzttJ+apOt8MmCv6RxpPNTU4=",
"owner": "NixOS",
"repo": "nixpkgs",
- "rev": "fc909087cc3386955f21b4665731dbdaceefb1d8",
+ "rev": "f2f1ec390714d303cf84ba086e34e45b450dd8c4",
"type": "github"
},
"original": {
"owner": "NixOS",
+ "ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
- "nixpkgs_4": {
+ "nixpkgs-unstable_2": {
"locked": {
- "lastModified": 1665087388,
- "narHash": "sha256-FZFPuW9NWHJteATOf79rZfwfRn5fE0wi9kRzvGfDHPA=",
- "owner": "nixos",
+ "lastModified": 1675758091,
+ "narHash": "sha256-7gFSQbSVAFUHtGCNHPF7mPc5CcqDk9M2+inlVPZSneg=",
+ "owner": "NixOS",
"repo": "nixpkgs",
- "rev": "95fda953f6db2e9496d2682c4fc7b82f959878f7",
+ "rev": "747927516efcb5e31ba03b7ff32f61f6d47e7d87",
"type": "github"
},
"original": {
- "owner": "nixos",
+ "owner": "NixOS",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
- "nixpkgs_5": {
+ "nixpkgs_2": {
"locked": {
"lastModified": 1677407201,
"narHash": "sha256-3blwdI9o1BAprkvlByHvtEm5HAIRn/XPjtcfiunpY7s=",
@@ -896,7 +1328,7 @@
"type": "indirect"
}
},
- "nixpkgs_6": {
+ "nixpkgs_3": {
"locked": {
"lastModified": 1648219316,
"narHash": "sha256-Ctij+dOi0ZZIfX5eMhgwugfvB+WZSrvVNAyAuANOsnQ=",
@@ -912,7 +1344,70 @@
"type": "github"
}
},
+ "nixpkgs_4": {
+ "locked": {
+ "lastModified": 1657693803,
+ "narHash": "sha256-G++2CJ9u0E7NNTAi9n5G8TdDmGJXcIjkJ3NF8cetQB8=",
+ "owner": "NixOS",
+ "repo": "nixpkgs",
+ "rev": "365e1b3a859281cf11b94f87231adeabbdd878a2",
+ "type": "github"
+ },
+ "original": {
+ "owner": "NixOS",
+ "ref": "nixos-22.05-small",
+ "repo": "nixpkgs",
+ "type": "github"
+ }
+ },
+ "nixpkgs_5": {
+ "locked": {
+ "lastModified": 1653581809,
+ "narHash": "sha256-Uvka0V5MTGbeOfWte25+tfRL3moECDh1VwokWSZUdoY=",
+ "owner": "NixOS",
+ "repo": "nixpkgs",
+ "rev": "83658b28fe638a170a19b8933aa008b30640fbd1",
+ "type": "github"
+ },
+ "original": {
+ "owner": "NixOS",
+ "ref": "nixos-unstable",
+ "repo": "nixpkgs",
+ "type": "github"
+ }
+ },
+ "nixpkgs_6": {
+ "locked": {
+ "lastModified": 1654807842,
+ "narHash": "sha256-ADymZpr6LuTEBXcy6RtFHcUZdjKTBRTMYwu19WOx17E=",
+ "owner": "NixOS",
+ "repo": "nixpkgs",
+ "rev": "fc909087cc3386955f21b4665731dbdaceefb1d8",
+ "type": "github"
+ },
+ "original": {
+ "owner": "NixOS",
+ "repo": "nixpkgs",
+ "type": "github"
+ }
+ },
"nixpkgs_7": {
+ "locked": {
+ "lastModified": 1665087388,
+ "narHash": "sha256-FZFPuW9NWHJteATOf79rZfwfRn5fE0wi9kRzvGfDHPA=",
+ "owner": "nixos",
+ "repo": "nixpkgs",
+ "rev": "95fda953f6db2e9496d2682c4fc7b82f959878f7",
+ "type": "github"
+ },
+ "original": {
+ "owner": "nixos",
+ "ref": "nixpkgs-unstable",
+ "repo": "nixpkgs",
+ "type": "github"
+ }
+ },
+ "nixpkgs_8": {
"locked": {
"lastModified": 1632864508,
"narHash": "sha256-d127FIvGR41XbVRDPVvozUPQ/uRHbHwvfyKHwEt5xFM=",
@@ -927,7 +1422,7 @@
"type": "indirect"
}
},
- "nixpkgs_8": {
+ "nixpkgs_9": {
"locked": {
"lastModified": 1674736538,
"narHash": "sha256-/DszFMkAgYyB9dTWKkoZa9i0zcrA6Z4hYrOr/u/FSxY=",
@@ -973,40 +1468,77 @@
"type": "github"
}
},
+ "old-ghc-nix_2": {
+ "flake": false,
+ "locked": {
+ "lastModified": 1631092763,
+ "narHash": "sha256-sIKgO+z7tj4lw3u6oBZxqIhDrzSkvpHtv0Kki+lh9Fg=",
+ "owner": "angerman",
+ "repo": "old-ghc-nix",
+ "rev": "af48a7a7353e418119b6dfe3cd1463a657f342b8",
+ "type": "github"
+ },
+ "original": {
+ "owner": "angerman",
+ "ref": "master",
+ "repo": "old-ghc-nix",
+ "type": "github"
+ }
+ },
"root": {
"inputs": {
"flake-compat": "flake-compat",
"flake-utils": "flake-utils",
"hackage": "hackage",
"haskell-nix": "haskell-nix",
- "nixpkgs": "nixpkgs_5",
+ "nixpkgs": "nixpkgs_2",
"serokell-nix": "serokell-nix",
- "stackage": "stackage"
+ "stackage": "stackage_2"
}
},
"serokell-nix": {
"inputs": {
"deploy-rs": "deploy-rs",
- "flake-compat": "flake-compat_5",
- "flake-utils": "flake-utils_5",
+ "flake-compat": "flake-compat_4",
+ "flake-utils": "flake-utils_3",
+ "get-tested-src": "get-tested-src",
"gitignore-nix": "gitignore-nix",
- "nix": "nix_2",
- "nixpkgs": "nixpkgs_8"
+ "haskell-nix": "haskell-nix_2",
+ "nix": "nix_3",
+ "nixpkgs": "nixpkgs_9"
},
"locked": {
- "lastModified": 1679645506,
- "narHash": "sha256-6hGH98lt8Q/0eEwNVBVJrOu4/hDstMXFDOM04GJy40M=",
+ "lastModified": 1691574243,
+ "narHash": "sha256-8mtvIdgU7ZmgXJBTNNNxcnP/vao0hLkvQ0fbvWyQ/R0=",
"owner": "serokell",
"repo": "serokell.nix",
- "rev": "c4ac9aee348e2325e0a3abdee381e86820ec116b",
+ "rev": "bc7c852903c592750b53b6e63974c912d4d44355",
"type": "github"
},
"original": {
- "id": "serokell-nix",
- "type": "indirect"
+ "owner": "serokell",
+ "ref": "sereja/OPS-1458-ci-wrapper",
+ "repo": "serokell.nix",
+ "type": "github"
}
},
"stackage": {
+ "flake": false,
+ "locked": {
+ "lastModified": 1678925630,
+ "narHash": "sha256-rl8qnpAUJl4tRZpaZ5DpgSueNfreArW09t4zTnOaoYA=",
+ "owner": "input-output-hk",
+ "repo": "stackage.nix",
+ "rev": "bf29b23fb77017e78c6e7b199b2c7bfb5079c4cd",
+ "type": "github"
+ },
+ "original": {
+ "owner": "input-output-hk",
+ "repo": "stackage.nix",
+ "type": "github"
+ }
+ },
+ "stackage_2": {
"flake": false,
"locked": {
"lastModified": 1679011783,
@@ -1024,6 +1556,7 @@
"std": {
"inputs": {
"arion": [
+ "serokell-nix",
"haskell-nix",
"tullia",
"std",
@@ -1032,15 +1565,17 @@
"blank": "blank",
"devshell": "devshell",
"dmerge": "dmerge",
- "flake-utils": "flake-utils_4",
+ "flake-utils": "flake-utils_6",
"incl": "incl",
"makes": [
+ "serokell-nix",
"haskell-nix",
"tullia",
"std",
"blank"
],
"microvm": [
+ "serokell-nix",
"haskell-nix",
"tullia",
"std",
@@ -1048,7 +1583,7 @@
],
"n2c": "n2c",
"nixago": "nixago",
- "nixpkgs": "nixpkgs_4",
+ "nixpkgs": "nixpkgs_7",
"nosys": "nosys",
"yants": "yants"
},
@@ -1071,6 +1606,7 @@
"nix-nomad": "nix-nomad",
"nix2container": "nix2container",
"nixpkgs": [
+ "serokell-nix",
"haskell-nix",
"nixpkgs"
],
@@ -1092,11 +1628,11 @@
},
"utils": {
"locked": {
- "lastModified": 1653893745,
- "narHash": "sha256-0jntwV3Z8//YwuOjzhV2sgJJPt+HY6KhU7VZUL0fKZQ=",
+ "lastModified": 1648297722,
+ "narHash": "sha256-W+qlPsiZd8F3XkzXOzAoR+mpFqzm3ekQkJNa+PIh1BQ=",
"owner": "numtide",
"repo": "flake-utils",
- "rev": "1ed9fb1935d260de5fe1c2f7ee0ebaae17ed2fa1",
+ "rev": "0f8662f1319ad6abf89b3380dd2722369fc51ade",
"type": "github"
},
"original": {
@@ -1107,11 +1643,11 @@
},
"utils_2": {
"locked": {
- "lastModified": 1648297722,
- "narHash": "sha256-W+qlPsiZd8F3XkzXOzAoR+mpFqzm3ekQkJNa+PIh1BQ=",
+ "lastModified": 1653893745,
+ "narHash": "sha256-0jntwV3Z8//YwuOjzhV2sgJJPt+HY6KhU7VZUL0fKZQ=",
"owner": "numtide",
"repo": "flake-utils",
- "rev": "0f8662f1319ad6abf89b3380dd2722369fc51ade",
+ "rev": "1ed9fb1935d260de5fe1c2f7ee0ebaae17ed2fa1",
"type": "github"
},
"original": {
@@ -1123,6 +1659,7 @@
"yants": {
"inputs": {
"nixpkgs": [
+ "serokell-nix",
"haskell-nix",
"tullia",
"std",
diff --git a/flake.nix b/flake.nix
index 3beb11a..2274afb 100644
--- a/flake.nix
+++ b/flake.nix
@@ -15,6 +15,7 @@
inputs.hackage.follows = "hackage";
inputs.stackage.follows = "stackage";
};
+ serokell-nix.url = "github:serokell/serokell.nix/sereja/OPS-1458-ci-wrapper";
hackage = {
flake = false;
};
@@ -36,76 +37,28 @@
lib = pkgs.lib;
- hs-package-name = "with-utf8";
-
- ghc-versions = [ "884" "8107" "902" "926" "944" ];
-
- # invoke haskell.nix for each ghc version listed in ghc-versions
- pkgs-per-ghc = lib.genAttrs (map (v: "ghc${v}") ghc-versions)
- (ghc: haskellPkgs.haskell-nix.cabalProject {
- src = haskellPkgs.haskell-nix.haskellLib.cleanGit {
- name = hs-package-name;
- src = ./.;
- };
- compiler-nix-name = ghc;
-
- # haskell.nix configuration
- modules = [{
- packages.${hs-package-name} = {
- ghcOptions = [
- # fail on warnings
- "-Werror"
- # disable optimisations, we don't need them if we don't package or deploy the executable
- "-O0"
- ];
- };
-
- }];
- });
-
- # returns the list of all components for a package
- get-package-components = pkg:
- # library
- lib.optional (pkg ? library) pkg.library
- # haddock
- ++ lib.optional (pkg ? library) pkg.library.haddock
- # exes, tests and benchmarks
- ++ lib.attrValues pkg.exes
- ++ lib.attrValues pkg.tests
- ++ lib.attrValues pkg.benchmarks;
-
- # all components for each specified ghc version
- build-all = lib.mapAttrs'
- (ghc: pkg:
- let components = get-package-components pkg.${hs-package-name}.components;
- in lib.nameValuePair "${ghc}:build-all"
- (pkgs.linkFarmFromDrvs "build-all" components)) pkgs-per-ghc;
+ ci = serokell-nix.lib.haskell.makeCI haskellPkgs {
+ src = ./.;
+ stackFiles = ["stack-lts-20-7.yaml"];
+ resolvers = ["lts-19.13"];
+ };
- # all tests for each specified ghc version
- test-all = lib.mapAttrs'
- (ghc: pkg:
- let tests = lib.filter lib.isDerivation
- (lib.attrValues pkg.${hs-package-name}.checks);
- in lib.nameValuePair "${ghc}:test-all"
- (pkgs.linkFarmFromDrvs "test-all" tests)) pkgs-per-ghc;
in {
# nixpkgs revision pinned by this flake
legacyPackages = pkgs;
devShells.default = pkgs.mkShell {
- buildInputs = [ pkgs.hpack ];
- };
+ buildInputs = [ pkgs.hpack ];
+ };
# used to dynamically build a matrix in the GitHub pipeline
- ghc-matrix = {
- include = map (ver: { ghc = ver; }) ghc-versions;
- };
+ inherit (ci) build-matrix ;
# derivations that we can run from CI
- checks = build-all // test-all // {
+ checks = ci.build-all // ci.test-all // {
- trailing-whitespace = pkgs.build.checkTrailingWhitespace ./.;
- reuse-lint = pkgs.build.reuseLint ./.;
+ # trailing-whitespace = pkgs.build.checkTrailingWhitespace ./.;
+ # reuse-lint = pkgs.build.reuseLint ./.;
hlint = pkgs.build.haskell.hlint ./.;
stylish-haskell = pkgs.build.haskell.stylish-haskell ./.;
diff --git a/stack-lts-20-7.yaml b/stack-lts-20-7.yaml
new file mode 100644
index 0000000..cd4a1e0
--- /dev/null
+++ b/stack-lts-20-7.yaml
@@ -0,0 +1,23 @@
+# SPDX-FileCopyrightText: 2021 Serokell
+#
+# SPDX-License-Identifier: MPL-2.0
+
+resolver: lts-20.7
+packages:
+ - with-utf8
+ - test-package
+
+extra-deps:
+ # Required for GHC >= 9
+ - th-env-0.1.0.3
+
+ # Required for GHC >= 9.2
+ - constraints-0.13.1
+ - hashable-1.3.5.0
+ - random-1.2.1
+
+ # text-2.0
+ #- hashable-1.4.0.1
+ #- text-2.0
+
+#allow-newer: true # text-2.0: some of our deps (incorrectly) say they don’t like it
diff --git a/stack.yaml b/stack.yaml
index 5f3d46a..ae439b8 100644
--- a/stack.yaml
+++ b/stack.yaml
@@ -3,7 +3,9 @@
# SPDX-License-Identifier: MPL-2.0
resolver: lts-18.14
-packages: [.]
+packages:
+ - with-utf8
+ - test-package
extra-deps:
# Required for GHC >= 9
diff --git a/test-package/.gitignore b/test-package/.gitignore
new file mode 100644
index 0000000..c368d45
--- /dev/null
+++ b/test-package/.gitignore
@@ -0,0 +1,2 @@
+.stack-work/
+*~
\ No newline at end of file
diff --git a/test-package/CHANGELOG.md b/test-package/CHANGELOG.md
new file mode 100644
index 0000000..e0bbd4c
--- /dev/null
+++ b/test-package/CHANGELOG.md
@@ -0,0 +1,11 @@
+# Changelog for `test-package`
+
+All notable changes to this project will be documented in this file.
+
+The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
+and this project adheres to the
+[Haskell Package Versioning Policy](https://pvp.haskell.org/).
+
+## Unreleased
+
+## 0.1.0.0 - YYYY-MM-DD
diff --git a/test-package/LICENSE b/test-package/LICENSE
new file mode 100644
index 0000000..c5b6c16
--- /dev/null
+++ b/test-package/LICENSE
@@ -0,0 +1,30 @@
+Copyright Author name here (c) 2023
+
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ * Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided
+ with the distribution.
+
+ * Neither the name of Author name here nor the names of other
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/test-package/README.md b/test-package/README.md
new file mode 100644
index 0000000..efb2f18
--- /dev/null
+++ b/test-package/README.md
@@ -0,0 +1 @@
+# test-package
diff --git a/test-package/Setup.hs b/test-package/Setup.hs
new file mode 100644
index 0000000..9a994af
--- /dev/null
+++ b/test-package/Setup.hs
@@ -0,0 +1,2 @@
+import Distribution.Simple
+main = defaultMain
diff --git a/test-package/app/Main.hs b/test-package/app/Main.hs
new file mode 100644
index 0000000..4c6b30f
--- /dev/null
+++ b/test-package/app/Main.hs
@@ -0,0 +1,6 @@
+module Main (main) where
+
+import Lib
+
+main :: IO ()
+main = someFunc
diff --git a/test-package/package.yaml b/test-package/package.yaml
new file mode 100644
index 0000000..0aca137
--- /dev/null
+++ b/test-package/package.yaml
@@ -0,0 +1,60 @@
+name: test-package
+version: 0.1.0.0
+github: "githubuser/test-package"
+license: BSD3
+author: "Author name here"
+maintainer: "example@example.com"
+copyright: "2023 Author name here"
+
+extra-source-files:
+- README.md
+- CHANGELOG.md
+
+# Metadata used when publishing your package
+# synopsis: Short description of your package
+# category: Web
+
+# To avoid duplicated efforts in documentation and dealing with the
+# complications of embedding Haddock markup inside cabal files, it is
+# common to point users to the README.md file.
+description: Please see the README on GitHub at
+tested-with: GHC == 9.2.6, GHC == 9.4.4
+
+dependencies:
+- base >= 4.7 && < 5
+
+ghc-options:
+- -Wall
+- -Wcompat
+- -Widentities
+- -Wincomplete-record-updates
+- -Wincomplete-uni-patterns
+- -Wmissing-export-lists
+- -Wmissing-home-modules
+- -Wpartial-fields
+- -Wredundant-constraints
+
+library:
+ source-dirs: src
+
+executables:
+ test-package-exe:
+ main: Main.hs
+ source-dirs: app
+ ghc-options:
+ - -threaded
+ - -rtsopts
+ - -with-rtsopts=-N
+ dependencies:
+ - test-package
+
+tests:
+ test-package-test:
+ main: Spec.hs
+ source-dirs: test
+ ghc-options:
+ - -threaded
+ - -rtsopts
+ - -with-rtsopts=-N
+ dependencies:
+ - test-package
diff --git a/test-package/src/Lib.hs b/test-package/src/Lib.hs
new file mode 100644
index 0000000..d36ff27
--- /dev/null
+++ b/test-package/src/Lib.hs
@@ -0,0 +1,6 @@
+module Lib
+ ( someFunc
+ ) where
+
+someFunc :: IO ()
+someFunc = putStrLn "someFunc"
diff --git a/test-package/test-package.cabal b/test-package/test-package.cabal
new file mode 100644
index 0000000..9f0d562
--- /dev/null
+++ b/test-package/test-package.cabal
@@ -0,0 +1,63 @@
+cabal-version: 1.12
+
+-- This file has been generated from package.yaml by hpack version 0.35.2.
+--
+-- see: https://github.com/sol/hpack
+
+name: test-package
+version: 0.1.0.0
+description: Please see the README on GitHub at
+homepage: https://github.com/githubuser/test-package#readme
+bug-reports: https://github.com/githubuser/test-package/issues
+author: Author name here
+maintainer: example@example.com
+copyright: 2023 Author name here
+license: BSD3
+license-file: LICENSE
+build-type: Simple
+tested-with:
+ GHC == 9.2.6, GHC == 9.4.4
+extra-source-files:
+ README.md
+ CHANGELOG.md
+
+source-repository head
+ type: git
+ location: https://github.com/githubuser/test-package
+
+library
+ exposed-modules:
+ Lib
+ other-modules:
+ Paths_test_package
+ hs-source-dirs:
+ src
+ ghc-options: -Wall -Wcompat -Widentities -Wincomplete-record-updates -Wincomplete-uni-patterns -Wmissing-export-lists -Wmissing-home-modules -Wpartial-fields -Wredundant-constraints
+ build-depends:
+ base >=4.7 && <5
+ default-language: Haskell2010
+
+executable test-package-exe
+ main-is: Main.hs
+ other-modules:
+ Paths_test_package
+ hs-source-dirs:
+ app
+ ghc-options: -Wall -Wcompat -Widentities -Wincomplete-record-updates -Wincomplete-uni-patterns -Wmissing-export-lists -Wmissing-home-modules -Wpartial-fields -Wredundant-constraints -threaded -rtsopts -with-rtsopts=-N
+ build-depends:
+ base >=4.7 && <5
+ , test-package
+ default-language: Haskell2010
+
+test-suite test-package-test
+ type: exitcode-stdio-1.0
+ main-is: Spec.hs
+ other-modules:
+ Paths_test_package
+ hs-source-dirs:
+ test
+ ghc-options: -Wall -Wcompat -Widentities -Wincomplete-record-updates -Wincomplete-uni-patterns -Wmissing-export-lists -Wmissing-home-modules -Wpartial-fields -Wredundant-constraints -threaded -rtsopts -with-rtsopts=-N
+ build-depends:
+ base >=4.7 && <5
+ , test-package
+ default-language: Haskell2010
diff --git a/test-package/test/Spec.hs b/test-package/test/Spec.hs
new file mode 100644
index 0000000..cd4753f
--- /dev/null
+++ b/test-package/test/Spec.hs
@@ -0,0 +1,2 @@
+main :: IO ()
+main = putStrLn "Test suite not yet implemented"
diff --git a/app/utf8-troubleshoot/Main.hs b/with-utf8/app/utf8-troubleshoot/Main.hs
similarity index 100%
rename from app/utf8-troubleshoot/Main.hs
rename to with-utf8/app/utf8-troubleshoot/Main.hs
diff --git a/app/utf8-troubleshoot/cbits/locale.c b/with-utf8/app/utf8-troubleshoot/cbits/locale.c
similarity index 100%
rename from app/utf8-troubleshoot/cbits/locale.c
rename to with-utf8/app/utf8-troubleshoot/cbits/locale.c
diff --git a/lib/Data/Text/IO/Utf8.hs b/with-utf8/lib/Data/Text/IO/Utf8.hs
similarity index 100%
rename from lib/Data/Text/IO/Utf8.hs
rename to with-utf8/lib/Data/Text/IO/Utf8.hs
diff --git a/lib/Data/Text/Lazy/IO/Utf8.hs b/with-utf8/lib/Data/Text/Lazy/IO/Utf8.hs
similarity index 100%
rename from lib/Data/Text/Lazy/IO/Utf8.hs
rename to with-utf8/lib/Data/Text/Lazy/IO/Utf8.hs
diff --git a/lib/Main/Utf8.hs b/with-utf8/lib/Main/Utf8.hs
similarity index 100%
rename from lib/Main/Utf8.hs
rename to with-utf8/lib/Main/Utf8.hs
diff --git a/lib/System/IO/Utf8.hs b/with-utf8/lib/System/IO/Utf8.hs
similarity index 100%
rename from lib/System/IO/Utf8.hs
rename to with-utf8/lib/System/IO/Utf8.hs
diff --git a/lib/System/IO/Utf8/Internal.hs b/with-utf8/lib/System/IO/Utf8/Internal.hs
similarity index 100%
rename from lib/System/IO/Utf8/Internal.hs
rename to with-utf8/lib/System/IO/Utf8/Internal.hs
diff --git a/package.yaml b/with-utf8/package.yaml
similarity index 94%
rename from package.yaml
rename to with-utf8/package.yaml
index da43e84..46d2834 100644
--- a/package.yaml
+++ b/with-utf8/package.yaml
@@ -21,13 +21,11 @@ category: IO
author: Kirill Elagin
copyright: 2020 Serokell
-license-file: LICENSES/MPL-2.0.txt
+# license-file: ../LICENSES/MPL-2.0.txt
github: serokell/haskell-with-utf8
+tested-with: GHC == 8.8.4, GHC == 8.10.7, GHC == 9.0.2
-extra-doc-files:
- - CHANGELOG.md
- - README.md
ghc-options:
- -Wall
diff --git a/test/Test.hs b/with-utf8/test/Test.hs
similarity index 100%
rename from test/Test.hs
rename to with-utf8/test/Test.hs
diff --git a/test/Test/Utf8/Choice.hs b/with-utf8/test/Test/Utf8/Choice.hs
similarity index 100%
rename from test/Test/Utf8/Choice.hs
rename to with-utf8/test/Test/Utf8/Choice.hs
diff --git a/test/Test/Utf8/ReadWrite.hs b/with-utf8/test/Test/Utf8/ReadWrite.hs
similarity index 100%
rename from test/Test/Utf8/ReadWrite.hs
rename to with-utf8/test/Test/Utf8/ReadWrite.hs
diff --git a/test/Test/Utf8/Set.hs b/with-utf8/test/Test/Utf8/Set.hs
similarity index 100%
rename from test/Test/Utf8/Set.hs
rename to with-utf8/test/Test/Utf8/Set.hs
diff --git a/test/Test/Util.hs b/with-utf8/test/Test/Util.hs
similarity index 100%
rename from test/Test/Util.hs
rename to with-utf8/test/Test/Util.hs
diff --git a/test/Tree.hs b/with-utf8/test/Tree.hs
similarity index 100%
rename from test/Tree.hs
rename to with-utf8/test/Tree.hs
diff --git a/with-utf8.cabal b/with-utf8/with-utf8.cabal
similarity index 95%
rename from with-utf8.cabal
rename to with-utf8/with-utf8.cabal
index 11baa09..e117133 100644
--- a/with-utf8.cabal
+++ b/with-utf8/with-utf8.cabal
@@ -1,4 +1,4 @@
-cabal-version: 1.18
+cabal-version: 1.12
-- This file has been generated from package.yaml by hpack version 0.35.2.
--
@@ -24,12 +24,9 @@ bug-reports: https://github.com/serokell/haskell-with-utf8/issues
author: Kirill Elagin
maintainer: Kirill Elagin
copyright: 2020 Serokell
-license: MPL-2.0
-license-file: LICENSES/MPL-2.0.txt
build-type: Simple
-extra-doc-files:
- CHANGELOG.md
- README.md
+tested-with:
+ GHC == 8.8.4, GHC == 8.10.7, GHC == 9.0.2
source-repository head
type: git
diff --git a/with-utf8.cabal.license b/with-utf8/with-utf8.cabal.license
similarity index 100%
rename from with-utf8.cabal.license
rename to with-utf8/with-utf8.cabal.license