graphql-engine/server/src-lib/Data
jkachmar d50aae87a5 Updates cabal freeze file
#### TODO

- [x] fix `hashable >= 1.3.1` serialization ordering issue [^1]
  - `test_graphql_mutations.py::TestGraphQLMutateEnums` was failing
- [x] fix `unordered-containers` serialization ordering issue [^2]
  - `test_graphql_queries.py` was failing on Citus
- [ ] verify that no new failures have been introduced
- [ ] open issues to fix the above
  - identify test cases that "leak" implementation details by depending on `hashable` instance ordering
  - bump `hashable >= 1.3.1` and update test cases with new ordering OR modify them so that ordering is stable
  - bump `unordered-containers >= 0.2.15.0` and update test cases with new ordering OR modify them so that ordering is stable
    - one of the test cases was failing on string equality comparison for a generated Citus query
    - we probably don't want to _actually_ do this unless there are _very specific_ guarantees we want to make about generated query structure
---

Just what it says on the tin.

https://github.com/hasura/graphql-engine-mono/pull/3538 updated the freeze file a few weeks ago, but it looks like the index state hadn't been updated since December so a lot of stuff that had newer versions didn't get updated.

---

EDIT: I should add, the motivation for doing this in the first place is that `hspec > 2.8.4` now supports specifying filtering spec trees based on patterns provided by the `HSPEC_MATCH` environment variable.

For example, one could have a script that executes the following:
```
HSPEC_MATCH="PostgreSQL" \
  ghcid \
    --command \
      'cabal repl graphql-engine:test:tests-hspec \
         --repl-option -O0 \
         --repl-option -fobject-code' \
    --test "main"
```
...which will loop on typechecking the `tests-hspec` component, and then as soon as it passes (i.e. no warnings or errors) will run _only_ the `PostgreSQL` sub-components.

[^1]: `hashable >= 1.3.1.0` [updated its default salts](https://github.com/haskell-unordered-containers/hashable/pull/196), which [broke serialization ordering](https://github.com/haskell/aeson/issues/837)
[^2]: `unordered-containers >= 0.2.16.0` [introduced changes to some of its internal functions](https://hackage.haskell.org/package/unordered-containers-0.2.16.0/changelog) which seem like they could have affected serialization stability

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/3672
GitOrigin-RevId: bbd1d48c73db4021913f0b5345b7315a8d6525d3
2022-02-18 05:32:08 +00:00
..
Aeson server: fix JSON path in error when parsing sources in metadata 2021-11-11 15:56:36 +00:00
GADT/Compare server, pro: actually reformat the code-base using ormolu 2021-09-23 22:57:37 +00:00
HashMap/Strict Updates cabal freeze file 2022-02-18 05:32:08 +00:00
List server, pro: actually reformat the code-base using ormolu 2021-09-23 22:57:37 +00:00
Parser server: Refresh JWKs maximum once per second 2022-01-28 00:18:56 +00:00
Sequence server, pro: actually reformat the code-base using ormolu 2021-09-23 22:57:37 +00:00
Text server, pro: actually reformat the code-base using ormolu 2021-09-23 22:57:37 +00:00
Time/Clock server, pro: actually reformat the code-base using ormolu 2021-09-23 22:57:37 +00:00
Tuple server, pro: actually reformat the code-base using ormolu 2021-09-23 22:57:37 +00:00
URL server, pro: actually reformat the code-base using ormolu 2021-09-23 22:57:37 +00:00
Environment.hs Allows for mock env vars in test-webhook-transform endpoint 2021-12-09 07:59:46 +00:00
SqlCommenter.hs server, pro: actually reformat the code-base using ormolu 2021-09-23 22:57:37 +00:00
TByteString.hs Feature/webhook response transforms 2022-01-19 04:47:36 +00:00