Trying to run the image while debugging: https://github.com/hasura/graphql-engine-mono/pull/6172/ I get:
$ docker run -it hasura/graphql-engine:dev-b91a92b-jberrymanalexghc92-ci-REBASE10-cherry-.ubuntu.amd64
graphql-engine: error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory
It seems as though the ubuntu image has been broken in some way since
moving to jammy (Which only ships with `libssl.3`), but strangely this
only shows up on main, not in PRs (except on the 9.2 branch…?)
we use this in tests for instance: .buildkite/scripts/test-dc-sdk.sh
Strangely I don't get the error with an image from recent PRs:
https://github.com/hasura/graphql-engine-mono/pull/6148https://github.com/hasura/graphql-engine-mono/pull/6156 (to latest release)
...although Samir sees it on some he looked at
```
docker run -it hasura/graphql-engine:dev-46eaa39-plcreleasev2.13bq-scalars.ubuntu.amd64 graphql-engine version
Fatal Error: Either of --metadata-database-url or --database-url option expected
```
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/6176
Co-authored-by: Samir Talwar <47582+SamirTalwar@users.noreply.github.com>
GitOrigin-RevId: 6eea65f2d1dc7f0d13bcd58f94737810d290cb89
We seem to be rebuilding hpack on every PR. I'm hoping this will allow PRs to share a cache.
I have also changed the cache key to include the entirety of _server/VERSIONS.json_, and added the GHC version there, to make sure it's properly invalidated.
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/6142
GitOrigin-RevId: fc61a26ad721f59f52687913f6978902f4c2ca0a
- Remove `onJust` in favor of the more general `for_`
- Remove `withJust` which was used only once
- Remove `hashNub` in favor of `Ord`-based `uniques`
- Simplify some of the implementations in `Hasura.Prelude`
- Add `hlint` hint from `maybe True` to `all`, and `maybe False` to `any`
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/6173
GitOrigin-RevId: 2c6ebbe2d04f60071d2a53a2d43c6d62dbc4b84e
This upgrades our Docker images from various Debian versions (mostly
`buster`, a.k.a. `oldstable`) to `bullseye` (a.k.a. `stable`).
`buster`/`oldstable` is still supported but I'm not sure for how long.
It also upgrades our HGE Docker image Ubuntu 20.04 to Ubuntu 22.04.
This will allow us to provide the latest Microsoft SQL Server Driver,
`msodbcsql18`, which is supported on both x86_64 (amd64) and
aarch64 (arm64).
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/5604
GitOrigin-RevId: 385d8670476dd343635a4fbc564a6797c8872127
This PR is the result of running the following commands:
```bash
$ git grep -l '".* : "' -- '*.hs' | xargs sed -i -E 's/(".*) : "/\1: "/'
$ scripts/dev.sh test --integration --accept
```
Also manually fixed a few tests and docs
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/6148
GitOrigin-RevId: cf8b87605d41d9ce86613a41ac5fd18691f5a641
Improvements to the Nix configuration so that macOS is supported.
Microsoft SQL Server is still not supported (yet; I have something in mind there), but the rest works. You can still use Homebrew to install the SQL Server drivers.
I had to make the following changes:
* I updated nixpkgs, because it's been a while.
* I made `ODBCINSTINI` optional so that it's not loaded on macOS, as it depends on `msodbcsql17`, which is broken on macOS.
* I upgraded OpenSSL.
* I set `DYLD_LIBRARY_PATH` on macOS so GHC finds OpenSSL; otherwise, it uses the wrong version of `libcrypto`, and fails with a fun error:
> WARNING: ghc is loading libcrypto in an unsafe way
* I patched GHC to fix compilation on macOS (copied from https://github.com/NixOS/nixpkgs/pull/149942).
To test this out, you can run `nix develop` (or install [direnv][] and add `use flake` to _.envrc.local_), and then try building HGE in the shell provided.
Fair warning: GHC needs to be built, and takes _aaages_ the first time. If this becomes useful to others, we can set up a shared cache.
[direnv]: https://direnv.net/
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/5989
GitOrigin-RevId: 7130738d47709c37778b31c134061758ce23e959
When we run the HGE server inside the test harness, it needs to run with
an admin secret for some tests to make sense. This tags each test that
requires an admin secret with `pytest.mark.admin_secret`, which then
generates a UUID and injects that into both the server and the test case
(if required).
It also simplifies the way the test harness picks up an existing admin
secret, allowing it to use the environment variable instead of requiring
it via a parameter.
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/6120
GitOrigin-RevId: 55c5b9e8c99bdad9c8304098444ddb9516749a2c