Commit Graph

31 Commits

Author SHA1 Message Date
Samir Talwar
38728f9f38 Nix: Install ghciwatch and update the flake to get it.
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/10970
GitOrigin-RevId: 7236edb1f23e062813111206e037ecd5ef573253
2024-07-31 12:14:17 +00:00
Samir Talwar
4b1cf9bee7 Upgrade nixpkgs to get GHC 9.6.4.
GHC 9.6.4 has finally been merged into nixpkgs! (This took far longer than anticipated.)

We can now upgrade to get our hands on it.

I had to remove the console dev tools from the Nix shell because node.js 16 is EOL and not available in the latest nixpkgs.

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/10729
GitOrigin-RevId: f7236c9e284a467bfac4897afb9d452dd103786d
2024-03-18 12:14:30 +00:00
Samir Talwar
73e413e1ee Specify the GHC version in one place.
There's no reason to duplicate this, and it's easy to let them get out of sync.

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/10502
GitOrigin-RevId: ab52a8ee636bc2abce817985971e43be0e37a874
2023-11-22 09:33:37 +00:00
Samir Talwar
0373beaed0 Upgrade nixpkgs, bump Haskell tool versions, and fix the new HLint errors.
Maintenance work to keep our server tools up to date.

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/10503
GitOrigin-RevId: 4402e39a5600d14c1e7d5eb4c91b152c2111f315
2023-11-22 09:02:34 +00:00
Samir Talwar
cca591a7f9 CI: Test against PostgreSQL 16.
This changes our test configuration to use the PostgreSQL 16 image from `postgis/postgis`.

In addition, it bumps PostGIS to v3.4 (from v3.3).

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/10361
GitOrigin-RevId: 883c96d8453efb42b226f849891488382a99c80c
2023-10-05 12:59:17 +00:00
Samir Talwar
156d71423f Upgrade nixpkgs.
There are two major changes:

1. [`msodbcsql18` is now in nixpkgs.](https://github.com/NixOS/nixpkgs/pull/197607)
2. [The Cabal patch for cycles on aarch64+darwin is now in nixpkgs.](https://github.com/NixOS/nixpkgs/pull/247723)

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/10355
GitOrigin-RevId: a6ff3cd69eb51d0fa98577038658785db0e84672
2023-10-03 19:50:47 +00:00
Samir Talwar
71c31755c1 Upgrade the Nix lockfile and fix ghcid on macOS.
I was experiencing issues trying to install ghcid on macOS + aarch64. Turns out there's a patch for that but it's not enabled for GHC 9.4. I have added it.

We may want to push this upstream.

This also upgrades Ormolu, with only a tiny change.

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/10062
GitOrigin-RevId: 09d0bf115155267584e91c6a21caf8afc7d744a8
2023-08-07 08:59:51 +00:00
Philip Lykke Carlsen
a9c2afa8e0 chore: Small dev improvements
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/9637
GitOrigin-RevId: 7ff15af9733c3192df265b624fadb494c8c99e23
2023-06-23 20:22:59 +00:00
Brandon Simmons
440a8664de server: Upgrade the HGE server to GHC 9.4.5
Upgrade to GHC 9.4.5, and update any tests.

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/8954
Co-authored-by: Mohd Bilal <24944223+m-Bilal@users.noreply.github.com>
Co-authored-by: Samir Talwar <47582+SamirTalwar@users.noreply.github.com>
Co-authored-by: Philip Lykke Carlsen <358550+plcplc@users.noreply.github.com>
GitOrigin-RevId: 5261126777cb478567ea471c4bf5441bc345ea0d
2023-06-06 13:29:30 +00:00
Samir Talwar
f2fe9f9579 Nix: Upgrade Ormolu to v0.7.0.0.
This requires serious monkey-patching.

We start with v0.6.0.1, upgrade its `src`, and override dependencies to make the version constraints happy.

We build it with GHC 9.4 because it bundles text v2, which is required for Ormolu v0.5.3 and up. This means we can't just override the Hackage package; instead, we override the root-level package and use that directly.

Because of this, HLS will use the wrong Ormolu version. We can resolve this once we upgrade to GHC 9.4 *and* a version of hls-ormolu-plugin is released which supports this version of Ormolu (at the time of writing, only v0.5.x and older are supported).

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/9289
GitOrigin-RevId: 438fe045bc74834d99b80b8822bfb609ac11ada1
2023-05-24 23:02:03 +00:00
Samir Talwar
3287181cc4 Nix: Wrap GHC and HLS, specifically, to provide (DY)?LD_LIBRARY_PATH.
We clearly do need this environment variable (at least on macOS); otherwise GHC spits out a slew of errors along the lines of "cannot find libodbc.dylib".

However, adding it directly to the shell causes serious problems. Wrapping GHC should limit the damage.

We've seen similar issues on macOS.

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/9203
Co-authored-by: Philip Lykke Carlsen <358550+plcplc@users.noreply.github.com>
GitOrigin-RevId: 9468d31e5b8ec86196809844842a1668386054bc
2023-05-22 14:16:12 +00:00
Samir Talwar
5642ede5da Nix: Remove LD_LIBRARY_PATH and see if anything breaks.
This is actively breaking people's workflow, and it may not actually be necessary any more.

Test by purging your caches and rebuilding the server:

```
$ cabal clean
$ rm -rf ~/.cabal/logs ~/.cabal/store ~/.cache/ghcide ~/.cache/hie-bios
$ cabal update
$ cabal build all
```

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/9100
GitOrigin-RevId: ba11ad3538df42536624146dc2cc7f3360f428a2
2023-05-10 21:07:06 +00:00
Samir Talwar
3ce3a6b413 Nix: Upgrade nixpkgs so we can use Cabal v3.10.1.
This version includes an important fix for properly detecting changes in extra-source-files.

We also pin the same version in GitHub workflows.

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/8930
GitOrigin-RevId: 884d9b807041a9b6c622ab221cbdfb446d3ffdba
2023-04-26 09:22:15 +00:00
Samir Talwar
042046bba7 nix: Bake the ODBC configuration path into unixODBC.
The previous method seems to be failing; we're not finding the drivers. Rather than using environment variables to tell unixODBC where to find odbcinst.ini, we can instead just configure it to point to the correct location and bake it into the binary.

This means we need to build unixODBC ourselves, but it's pretty quick, so doesn't seem like much of an issue.

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/8491
GitOrigin-RevId: 7d331c4205d412b7757c0f1efd5b6a00a10e2ad4
2023-03-25 20:55:47 +00:00
Samir Talwar
e238e0f295 nix: Upgrade msodbcsql18 to the latest minor version.
That'd be v18.2.1.1.

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/8492
GitOrigin-RevId: e6d30954003ff4169bd961aa365ae80539383c9e
2023-03-25 20:23:25 +00:00
Samir Talwar
0256e1da7d nix: Switch to nixpkgs-unstable.
I am making this change for two reasons:

  * We expect to upgrade to GHC 9.2.7 imminently, which is not available on the nixos-22.11 branch.
  * We need to upgrade unixODBC, which has stagnated on nixos-22.11.

While we expect a new NixOS release in a month or two, we can't really afford to wait that long. In addition, we might need to upgrade GHC again soon after that.

I removed `hpack` because we don't actually use it any more.

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/8483
GitOrigin-RevId: 9a7ef1a97599a218e34dfde1ad4f6a7279d2ba0e
2023-03-24 20:36:48 +00:00
Samir Talwar
5e6c93e7aa nix: Add a couple of LSP servers to shell.nix.
This adds:

  * [Pyright](https://github.com/microsoft/pyright), for Python
  * [TypeScript Language Server](https://github.com/typescript-language-server/typescript-language-server), for JavaScript and TypeScript

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/8465
GitOrigin-RevId: 502a3f27c7b1a74a830ad69b27c365c0de786088
2023-03-23 21:29:46 +00:00
Solomon
f7d40519ce [Nix] Adds dc-api overlay.
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/6889
GitOrigin-RevId: 3ede55fc3a921f4712f1736f338fb46a3e1a1ce7
2023-01-30 08:34:53 +00:00
Solomon
aff9f89ced [Nix] Add pg-client-hs overlay.
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/7675
GitOrigin-RevId: 72d284fcc75f3cbf415ee22773172ea9382a3db9
2023-01-27 04:21:16 +00:00
Solomon
c6b28b56d1 [Nix] Adds aeson-ordered overlay.
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/7674
GitOrigin-RevId: c59b67313219a54d1f9e53db2167d93bc59c859e
2023-01-26 21:55:23 +00:00
Solomon
8607769e51 [Nix] Adds resource-pool overlay.
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/7673
GitOrigin-RevId: f4f28c9d3e7f8f79a52fc3a4237ab989fa1096ed
2023-01-26 14:41:41 +00:00
Solomon
ca6a46790c [GDC] Add Athena Test Fixture
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/6934
GitOrigin-RevId: 31c9071b9e904fbe31034157d83605e0a625bef1
2022-12-20 18:47:07 +00:00
Samir Talwar
a0dc296ede Document and automate spinning up AlloyDB for testing.
We sometimes need to test against cloud databases. Here, we add a Terraform module to start a new AlloyDB cluster and instance, which we can then use for testing purposes.

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/7002
GitOrigin-RevId: 2d661b5cc6d60e47485ea68b781e13426ed4f097
2022-11-24 14:16:21 +00:00
Samir Talwar
f24f0c6ce7 CI: Use the same PostgreSQL base images where possible.
Rather than varying it, let's just use `postgis/postgis` everywhere.

This uses the latest version of PostGIS, in which some of the raster codes have changed. This seems benign (it's just one digit) in the hex stream. I can't find the relevant release notes though.

Also syncs _images.go_ and _databases.yaml_ so we use the same thing where possible.

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/6903
GitOrigin-RevId: bb5c56f2e7ff69e4c008f1d658850af08c96badc
2022-11-17 13:54:19 +00:00
Solomon
94b4db90f2 [nix] Moves graphql-parser into an overlay and updates hedgehog dependency
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/6886
GitOrigin-RevId: f576763ab83ed2ebdd05f4da8a4cb184d472e6ba
2022-11-15 21:55:12 +00:00
Gil Mizrahi
15b3ac0aee ghc 9.2.5
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/6777
Co-authored-by: Samir Talwar <47582+SamirTalwar@users.noreply.github.com>
GitOrigin-RevId: 916abab76446cf7c4e1e63dc112ba4994ab4d23d
2022-11-15 11:26:42 +00:00
Samir Talwar
342391f39d Upgrade Ormolu to v0.5.
This upgrades the version of Ormolu required by the HGE repository to v0.5.0.1, and reformats all code accordingly.

Ormolu v0.5 reformats code that uses infix operators. This is mostly useful, adding newlines and indentation to make it clear which operators are applied first, but in some cases, it's unpleasant. To make this easier on the eyes, I had to do the following:

* Add a few fixity declarations (search for `infix`)
* Add parentheses to make precedence clear, allowing Ormolu to keep everything on one line
* Rename `relevantEq` to `(==~)` in #6651 and set it to `infix 4`
* Add a few _.ormolu_ files (thanks to @hallettj for helping me get started), mostly for Autodocodec operators that don't have explicit fixity declarations

In general, I think these changes are quite reasonable. They mostly affect indentation.

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/6675
GitOrigin-RevId: cd47d87f1d089fb0bc9dcbbe7798dbceedcd7d83
2022-11-02 20:55:13 +00:00
Samir Talwar
c3afa0fdd7 Install and use ODBC Driver 18 for SQL Server (msodbcsql18).
This installs the ODBC Driver 18 for SQL Server in all our shipped Docker images, and update our tests and documentation accordingly.

This version supports arm64, and therefore can run natively (or via Docker) on macOS on aarch64.

`msodbcsql17` is still installed in production-targeted Docker images so that users do not _have_ to migrate to the new driver.

Nix expressions are packaged for the new driver, as it is not yet available in nixpkgs.

In this version, [the default encryption setting was changed from "no" to "yes"](https://techcommunity.microsoft.com/t5/sql-server-blog/odbc-driver-18-0-for-sql-server-released/ba-p/3169228). In addition, "mandatory" and "optional" were added as synonyms for "yes" and "no" respectively.

I have therefore modified all connection strings in tests to specify `Encrypt=optional` (and changed some from `Encrypt=no`). I chose "optional" rather than "no" because I feel it's more honest; these connection strings will work with or without an encrypted connection.

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/6241
GitOrigin-RevId: 959f88dd1f271ef06a3616bc46b358f364f6cdfd
2022-10-21 16:25:04 +00:00
Samir Talwar
68f4779908 packaging: Rebuild the base images to get PostgreSQL Client 15.
This is required to get the latest version of `pg_dump`, which is used
by a few features (including the CLI command, `hasura seed create`).

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/6393
GitOrigin-RevId: 31442fff669af9e5c987128e10c6801f8ed9fb95
2022-10-18 13:27:24 +00:00
Samir Talwar
96a768e526 Upgrade HLint to v3.4.1.
This upgrades CI and anyone using Nix to HLint v3.4.1.

If you're not using Nix, this doesn't actually _do_ anything on your
local machine; it's just a suggestion.

It also applies a bunch of simple HLint refactors, using
`make lint-hs-fix`.

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/6324
GitOrigin-RevId: de8267e4909d6dcd3f83543188517f3aaeebc5f3
2022-10-12 19:14:56 +00:00
Samir Talwar
1ffc19367d Push the Nix dependency management configuration to the OSS repository.
We don't need to hide it.

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/6255
GitOrigin-RevId: 9b46511c6b274dd7e8e52ee74644dc86c7d75872
2022-10-11 15:33:22 +00:00