From 4ac899937006a1f5c7f3c619f0b775d0e2c64b9b Mon Sep 17 00:00:00 2001 From: Brandon Chinn Date: Sat, 6 Jan 2024 12:30:19 -0800 Subject: [PATCH 1/5] Ignore fourmolu on generated files --- .github/workflows/ci.yml | 9 --------- .pre-commit-config.yaml | 1 + example/scripts/codegen.sh | 4 ---- example/src/Example/GraphQL/API.hs | 20 +++++++++---------- .../Example/GraphQL/Enums/ReleaseStatus.hs | 3 +-- 5 files changed, 12 insertions(+), 25 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 10e1ffb..3a7f99e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -68,15 +68,6 @@ jobs: files: lcov.info,lcov-overlay.info # Build + test example - - - name: Install fourmolu - run: | - curl -fsSL \ - "https://github.com/fourmolu/fourmolu/releases/download/v${FOURMOLU_VERSION}/fourmolu-${FOURMOLU_VERSION}-linux-x86_64" \ - -o /usr/local/bin/fourmolu - chmod +x /usr/local/bin/fourmolu - env: - FOURMOLU_VERSION: '0.13.0.0' - name: Test that example API is up to date run: | diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index fb00cec..700e3d1 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -13,6 +13,7 @@ repos: entry: fourmolu -i language: system files: '\.hs$' + exclude: 'Example/GraphQL/(API.hs|Enums/)' # Typescript - repo: local diff --git a/example/scripts/codegen.sh b/example/scripts/codegen.sh index 3bc8beb..71dd6c9 100755 --- a/example/scripts/codegen.sh +++ b/example/scripts/codegen.sh @@ -7,7 +7,3 @@ set -eux -o pipefail ROOT="$(builtin cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" stack exec -- graphql-codegen -c "${ROOT}/codegen.yml" - -fourmolu -i \ - "${ROOT}"/src/Example/GraphQL/API.hs \ - "${ROOT}"/src/Example/GraphQL/Enums/*.hs diff --git a/example/src/Example/GraphQL/API.hs b/example/src/Example/GraphQL/API.hs index 8af58c4..540b162 100644 --- a/example/src/Example/GraphQL/API.hs +++ b/example/src/Example/GraphQL/API.hs @@ -1,8 +1,10 @@ {- This file was automatically generated and should not be edited. -} + {-# LANGUAGE DataKinds #-} {-# LANGUAGE DuplicateRecordFields #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE QuasiQuotes #-} +{-# LANGUAGE RecordWildCards #-} {-# LANGUAGE TypeFamilies #-} {-# OPTIONS_GHC -w #-} @@ -11,8 +13,8 @@ module Example.GraphQL.API where import Data.GraphQL import Data.GraphQL.Bootstrap -import Example.GraphQL.Enums.ReleaseStatus import Example.GraphQL.Scalars +import Example.GraphQL.Enums.ReleaseStatus {----------------------------------------------------------------------------- -- getRecordings @@ -36,8 +38,7 @@ data GetRecordingsQuery = GetRecordingsQuery } deriving (Show) -type GetRecordingsSchema = - [schema| +type GetRecordingsSchema = [schema| { search: Maybe { recordings: Maybe { @@ -72,8 +73,7 @@ instance GraphQLQuery GetRecordingsQuery where getQueryName _ = "getRecordings" - getQueryText _ = - [query| + getQueryText _ = [query| query getRecordings($query: String!, $first: Int) { search { recordings(query: $query, first: $first) { @@ -103,8 +103,8 @@ instance GraphQLQuery GetRecordingsQuery where } |] - getArgs query = - object - [ "query" .= _query (query :: GetRecordingsQuery) - , "first" .= _first (query :: GetRecordingsQuery) - ] + getArgs GetRecordingsQuery{..} = object + [ "query" .= _query + , "first" .= _first + ] + diff --git a/example/src/Example/GraphQL/Enums/ReleaseStatus.hs b/example/src/Example/GraphQL/Enums/ReleaseStatus.hs index ffbe6f4..a708bc5 100644 --- a/example/src/Example/GraphQL/Enums/ReleaseStatus.hs +++ b/example/src/Example/GraphQL/Enums/ReleaseStatus.hs @@ -4,8 +4,7 @@ module Example.GraphQL.Enums.ReleaseStatus where import Data.GraphQL.Bootstrap -mkEnum - "ReleaseStatus" +mkEnum "ReleaseStatus" [ "OFFICIAL" , "PROMOTION" , "BOOTLEG" From c135b080224f3c5f33f67bcf663d80e3c7a97a8d Mon Sep 17 00:00:00 2001 From: Brandon Chinn Date: Sat, 6 Jan 2024 14:14:43 -0800 Subject: [PATCH 2/5] Fix lower bounds --- graphql-client/graphql-client.cabal | 2 +- graphql-client/package.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/graphql-client/graphql-client.cabal b/graphql-client/graphql-client.cabal index 85de840..7e2695a 100644 --- a/graphql-client/graphql-client.cabal +++ b/graphql-client/graphql-client.cabal @@ -68,7 +68,7 @@ executable graphql-codegen , file-embed <0.1 , optparse-applicative <0.19 , path <0.10 - , path-io <2 + , path-io >=1.3.3 && <2 , template-haskell <3 , typed-process <0.3 default-language: Haskell2010 diff --git a/graphql-client/package.yaml b/graphql-client/package.yaml index d85fe16..9c86955 100644 --- a/graphql-client/package.yaml +++ b/graphql-client/package.yaml @@ -53,7 +53,7 @@ executables: - file-embed < 0.1 - optparse-applicative < 0.19 - path < 0.10 - - path-io < 2 + - path-io >= 1.3.3 && < 2 - template-haskell < 3 - typed-process < 0.3 From 5be62e50f5fb37eeaad5261162e4c63dbc201a22 Mon Sep 17 00:00:00 2001 From: Brandon Chinn Date: Sat, 6 Jan 2024 10:49:02 -0800 Subject: [PATCH 3/5] Add test that generated graphql code compiles --- .github/workflows/ci.yml | 42 +++++++++++++++++-- graphql-client/graphql-client.cabal | 7 ++++ graphql-client/package.yaml | 6 +++ .../Data/GraphQL/Test/Generation/.gitignore | 1 + .../GraphQL/Test/Generation/TestGeneration.hs | 18 ++++++++ .../Data/GraphQL/Test/Generation/codegen.yml | 7 ++++ .../Test/Generation/queries/basic.graphql | 8 ++++ .../test/Data/GraphQL/Test/Generation/run.sh | 24 +++++++++++ .../GraphQL/Test/Generation/schema.graphql | 20 +++++++++ .../Test/Generation/src/Example/Scalars.hs | 16 +++++++ graphql-client/test/Main.hs | 2 + 11 files changed, 147 insertions(+), 4 deletions(-) create mode 100644 graphql-client/test/Data/GraphQL/Test/Generation/.gitignore create mode 100644 graphql-client/test/Data/GraphQL/Test/Generation/TestGeneration.hs create mode 100644 graphql-client/test/Data/GraphQL/Test/Generation/codegen.yml create mode 100644 graphql-client/test/Data/GraphQL/Test/Generation/queries/basic.graphql create mode 100755 graphql-client/test/Data/GraphQL/Test/Generation/run.sh create mode 100644 graphql-client/test/Data/GraphQL/Test/Generation/schema.graphql create mode 100644 graphql-client/test/Data/GraphQL/Test/Generation/src/Example/Scalars.hs diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3a7f99e..dc6205d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -97,6 +97,36 @@ jobs: steps: - uses: actions/checkout@v3 + + # https://github.com/actions/setup-node/issues/904 + - + uses: actions/setup-node@v3 + with: + node-version: latest + - + run: corepack enable + + # Build JS + - + uses: actions/setup-node@v3 + with: + node-version: latest + cache: yarn + - + uses: actions/cache@v3 + with: + path: ~/.stack + key: ${{ runner.os }}-stack-cache-${{ hashFiles('stack.yaml', 'package.yaml') }} + - + name: Build graphql-codegen-haskell + run: yarn install --immutable && yarn build + - + uses: actions/upload-artifact@v3 + with: + name: graphql-codegen-haskell.js + path: graphql-client/js/graphql-codegen-haskell.js + + # Build + Test Cabal - id: setup name: Set up GHC ${{ matrix.ghc_version }} @@ -105,8 +135,11 @@ jobs: ghc-version: ${{ matrix.ghc_version }} - name: Configure the build - run: | - cabal configure --enable-test --test-show-details=streaming + run: > + cabal configure + --enable-test + --test-show-details=streaming + --ghc-options '-Wno-unused-packages' - if: ${{ matrix.oldest }} name: Use oldest dependencies @@ -128,8 +161,9 @@ jobs: restore-keys: | ${{ runner.os }}-cabal-cache-${{ env.CURR_MONTH }}-${{ matrix.ghc_version }}- - - name: Build + Test - run: cabal test all + run: cabal build all + - + run: cabal exec cabal test all - name: Check that files are unmodified run: git add -A && git diff --staged --exit-code diff --git a/graphql-client/graphql-client.cabal b/graphql-client/graphql-client.cabal index 7e2695a..7d6d831 100644 --- a/graphql-client/graphql-client.cabal +++ b/graphql-client/graphql-client.cabal @@ -19,6 +19,11 @@ build-type: Simple extra-source-files: README.md CHANGELOG.md + test/Data/GraphQL/Test/Generation/run.sh + test/Data/GraphQL/Test/Generation/src/Example/Scalars.hs + test/Data/GraphQL/Test/Generation/queries/basic.graphql + test/Data/GraphQL/Test/Generation/schema.graphql + test/Data/GraphQL/Test/Generation/codegen.yml ./js/graphql-codegen-haskell.js ./js/graphql-codegen-haskell-fallback.js ./js/mocks/__utils.js @@ -77,6 +82,7 @@ test-suite graphql-client-test type: exitcode-stdio-1.0 main-is: Main.hs other-modules: + Data.GraphQL.Test.Generation.TestGeneration Data.GraphQL.Test.Monad.Class Data.GraphQL.Test.TestQuery Data.GraphQL.Test.TestUtils @@ -90,6 +96,7 @@ test-suite graphql-client-test , base , graphql-client , mtl + , process , tasty , tasty-hunit default-language: Haskell2010 diff --git a/graphql-client/package.yaml b/graphql-client/package.yaml index 9c86955..0f78f01 100644 --- a/graphql-client/package.yaml +++ b/graphql-client/package.yaml @@ -14,6 +14,11 @@ description: A client for Haskell programs to query a GraphQL API. extra-source-files: - README.md - CHANGELOG.md + # test generation files + - test/Data/GraphQL/Test/Generation/run.sh + - test/Data/GraphQL/Test/Generation/src/**/* + - test/Data/GraphQL/Test/Generation/**/*.graphql + - test/Data/GraphQL/Test/Generation/codegen.yml # Make sure graphql-codegen-haskell.js is listed in the Cabal file, # in the off-chance it's not built yet - ./js/graphql-codegen-haskell.js @@ -67,5 +72,6 @@ tests: - base - graphql-client - mtl + - process - tasty - tasty-hunit diff --git a/graphql-client/test/Data/GraphQL/Test/Generation/.gitignore b/graphql-client/test/Data/GraphQL/Test/Generation/.gitignore new file mode 100644 index 0000000..e8e450b --- /dev/null +++ b/graphql-client/test/Data/GraphQL/Test/Generation/.gitignore @@ -0,0 +1 @@ +gen/ diff --git a/graphql-client/test/Data/GraphQL/Test/Generation/TestGeneration.hs b/graphql-client/test/Data/GraphQL/Test/Generation/TestGeneration.hs new file mode 100644 index 0000000..3ab9acb --- /dev/null +++ b/graphql-client/test/Data/GraphQL/Test/Generation/TestGeneration.hs @@ -0,0 +1,18 @@ +module Data.GraphQL.Test.Generation.TestGeneration (testGeneration) where + +import System.Exit (ExitCode (..)) +import System.Process (readProcessWithExitCode) +import Test.Tasty +import Test.Tasty.HUnit + +testGeneration :: TestTree +testGeneration = + testCase "Test generated code" $ do + (code, _, _) <- readProcessWithExitCode "bash" ["test/Data/GraphQL/Test/Generation/run.sh", logFile] "" + case code of + ExitSuccess -> pure () + ExitFailure _ -> do + output <- readFile logFile + assertFailure $ "===== Test failed. Output: =====\n" <> output + where + logFile = "/tmp/graphql-client-generation-test.log" diff --git a/graphql-client/test/Data/GraphQL/Test/Generation/codegen.yml b/graphql-client/test/Data/GraphQL/Test/Generation/codegen.yml new file mode 100644 index 0000000..87c0f86 --- /dev/null +++ b/graphql-client/test/Data/GraphQL/Test/Generation/codegen.yml @@ -0,0 +1,7 @@ +schema: schema.graphql +documents: queries/*.graphql + +hsSourceDir: gen/ +apiModule: Example.API +enumsModule: Example.Enums +scalarsModule: Example.Scalars diff --git a/graphql-client/test/Data/GraphQL/Test/Generation/queries/basic.graphql b/graphql-client/test/Data/GraphQL/Test/Generation/queries/basic.graphql new file mode 100644 index 0000000..86ad6f5 --- /dev/null +++ b/graphql-client/test/Data/GraphQL/Test/Generation/queries/basic.graphql @@ -0,0 +1,8 @@ +query getUsers { + users { + id + name + age + gender + } +} diff --git a/graphql-client/test/Data/GraphQL/Test/Generation/run.sh b/graphql-client/test/Data/GraphQL/Test/Generation/run.sh new file mode 100755 index 0000000..c0f2de9 --- /dev/null +++ b/graphql-client/test/Data/GraphQL/Test/Generation/run.sh @@ -0,0 +1,24 @@ +#!/usr/bin/env bash +# +# Run the test, called in TestGeneration.hs + +set -eux -o pipefail + +builtin cd "$(dirname "${BASH_SOURCE}")" + +LOG_FILE=$1 +exec &> "${LOG_FILE}" + +graphql-codegen + +cat "${GHC_ENVIRONMENT}" + +ghc \ + -v \ + --make \ + -odir gen/out/ \ + -hidir gen/out/ \ + -isrc:gen \ + Example.Scalars \ + Example.Enums.Gender \ + Example.API diff --git a/graphql-client/test/Data/GraphQL/Test/Generation/schema.graphql b/graphql-client/test/Data/GraphQL/Test/Generation/schema.graphql new file mode 100644 index 0000000..be8ecd2 --- /dev/null +++ b/graphql-client/test/Data/GraphQL/Test/Generation/schema.graphql @@ -0,0 +1,20 @@ +type Query { + users: [User] + user(id: ID!): User + userByName(name: String!): User +} + +type User { + id: ID! + name: String! + age: Age + gender: Gender +} + +scalar Age + +enum Gender { + MALE + FEMALE + OTHER +} diff --git a/graphql-client/test/Data/GraphQL/Test/Generation/src/Example/Scalars.hs b/graphql-client/test/Data/GraphQL/Test/Generation/src/Example/Scalars.hs new file mode 100644 index 0000000..a9b2bb2 --- /dev/null +++ b/graphql-client/test/Data/GraphQL/Test/Generation/src/Example/Scalars.hs @@ -0,0 +1,16 @@ +module Example.Scalars where + +import Control.Monad (guard) +import Data.Aeson (FromJSON (..), ToJSON (..)) + +newtype Age = Age Int + deriving (Show) + +instance FromJSON Age where + parseJSON v = do + n <- parseJSON v + guard $ n >= 0 + pure $ Age n + +instance ToJSON Age where + toJSON (Age n) = toJSON n diff --git a/graphql-client/test/Main.hs b/graphql-client/test/Main.hs index 6fd295f..d31cec8 100644 --- a/graphql-client/test/Main.hs +++ b/graphql-client/test/Main.hs @@ -1,5 +1,6 @@ import Test.Tasty (defaultMain, testGroup) +import Data.GraphQL.Test.Generation.TestGeneration import Data.GraphQL.Test.Monad.Class import Data.GraphQL.Test.TestUtils @@ -10,4 +11,5 @@ main = "graphql-client" [ testRunQuery , testTestUtils + , testGeneration ] From b0aa1e0763610f65451572076cd9f2f094685d77 Mon Sep 17 00:00:00 2001 From: Brandon Chinn Date: Sat, 6 Jan 2024 12:22:42 -0800 Subject: [PATCH 4/5] Fix ambiguous field name error --- graphql-client/CHANGELOG.md | 2 ++ graphql-client/graphql-client.cabal | 1 + .../queries/duplicate-names.graphql | 11 +++++++++++ graphql-codegen-haskell/src/index.test.ts | 19 ++++++++++--------- graphql-codegen-haskell/src/render/api.ts | 3 +++ .../src/render/templates/api.mustache | 5 +++-- 6 files changed, 30 insertions(+), 11 deletions(-) create mode 100644 graphql-client/test/Data/GraphQL/Test/Generation/queries/duplicate-names.graphql diff --git a/graphql-client/CHANGELOG.md b/graphql-client/CHANGELOG.md index d96f813..9b0a314 100644 --- a/graphql-client/CHANGELOG.md +++ b/graphql-client/CHANGELOG.md @@ -1,5 +1,7 @@ # Unreleased +* Fix ambiguous field name error with same argument name in multiple queries ([#86](https://github.com/brandonchinn178/graphql-client/issues/86)) + # v1.2.3 * Add support for GHC 9.8 diff --git a/graphql-client/graphql-client.cabal b/graphql-client/graphql-client.cabal index 7d6d831..2e77edf 100644 --- a/graphql-client/graphql-client.cabal +++ b/graphql-client/graphql-client.cabal @@ -22,6 +22,7 @@ extra-source-files: test/Data/GraphQL/Test/Generation/run.sh test/Data/GraphQL/Test/Generation/src/Example/Scalars.hs test/Data/GraphQL/Test/Generation/queries/basic.graphql + test/Data/GraphQL/Test/Generation/queries/duplicate-names.graphql test/Data/GraphQL/Test/Generation/schema.graphql test/Data/GraphQL/Test/Generation/codegen.yml ./js/graphql-codegen-haskell.js diff --git a/graphql-client/test/Data/GraphQL/Test/Generation/queries/duplicate-names.graphql b/graphql-client/test/Data/GraphQL/Test/Generation/queries/duplicate-names.graphql new file mode 100644 index 0000000..9e496c8 --- /dev/null +++ b/graphql-client/test/Data/GraphQL/Test/Generation/queries/duplicate-names.graphql @@ -0,0 +1,11 @@ +query getAge($name: String!) { + userByName(name: $name) { + age + } +} + +query getGender($name: String!) { + userByName(name: $name) { + gender + } +} diff --git a/graphql-codegen-haskell/src/index.test.ts b/graphql-codegen-haskell/src/index.test.ts index 7dd4843..d48a3ea 100644 --- a/graphql-codegen-haskell/src/index.test.ts +++ b/graphql-codegen-haskell/src/index.test.ts @@ -18,6 +18,7 @@ it(`generates files using files from ${TEST_DIR}`, async () => { {-# LANGUAGE DuplicateRecordFields #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE QuasiQuotes #-} + {-# LANGUAGE RecordWildCards #-} {-# LANGUAGE TypeFamilies #-} {-# OPTIONS_GHC -w #-} @@ -68,7 +69,7 @@ it(`generates files using files from ${TEST_DIR}`, async () => { } |] - getArgs query = object + getArgs GetEnumsQuery{} = object [ ] @@ -108,7 +109,7 @@ it(`generates files using files from ${TEST_DIR}`, async () => { } |] - getArgs query = object + getArgs GetMoreEnumsQuery{} = object [ ] @@ -154,8 +155,8 @@ it(`generates files using files from ${TEST_DIR}`, async () => { } |] - getArgs query = object - [ \\"x\\" .= _x (query :: GetBarQuery) + getArgs GetBarQuery{..} = object + [ \\"x\\" .= _x ] {----------------------------------------------------------------------------- @@ -216,8 +217,8 @@ it(`generates files using files from ${TEST_DIR}`, async () => { } |] - getArgs query = object - [ \\"s\\" .= _s (query :: GetNamedQuery) + getArgs GetNamedQuery{..} = object + [ \\"s\\" .= _s ] {----------------------------------------------------------------------------- @@ -267,8 +268,8 @@ it(`generates files using files from ${TEST_DIR}`, async () => { } |] - getArgs query = object - [ \\"s\\" .= _s (query :: GetNamed2Query) + getArgs GetNamed2Query{..} = object + [ \\"s\\" .= _s ] {----------------------------------------------------------------------------- @@ -311,7 +312,7 @@ it(`generates files using files from ${TEST_DIR}`, async () => { } |] - getArgs query = object + getArgs GetNamedWithLiteralParamQuery{} = object [ ] diff --git a/graphql-codegen-haskell/src/render/api.ts b/graphql-codegen-haskell/src/render/api.ts index a76636a..fe7507a 100644 --- a/graphql-codegen-haskell/src/render/api.ts +++ b/graphql-codegen-haskell/src/render/api.ts @@ -31,6 +31,9 @@ export const renderAPIModule = ( return (text: string) => templateOverList(text, this.args, { context: this }) }, + // `X{..}` is not valid in GHC < 9.8 if constructor has no fields + // https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0496-empty-record-wildcards.rst + argsRecordSyntax: operation.args.length === 0 ? '{}' : '{..}', })), }) diff --git a/graphql-codegen-haskell/src/render/templates/api.mustache b/graphql-codegen-haskell/src/render/templates/api.mustache index d0f9d0d..590d0d9 100644 --- a/graphql-codegen-haskell/src/render/templates/api.mustache +++ b/graphql-codegen-haskell/src/render/templates/api.mustache @@ -4,6 +4,7 @@ {-# LANGUAGE DuplicateRecordFields #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE QuasiQuotes #-} +{-# LANGUAGE RecordWildCards #-} {-# LANGUAGE TypeFamilies #-} {-# OPTIONS_GHC -w #-} @@ -56,9 +57,9 @@ instance GraphQLQuery {{queryName}} where {{queryText}} |] - getArgs query = object + getArgs {{queryName}}{{argsRecordSyntax}} = object {{#overArgs}} - [ "{{arg}}" .= _{{arg}} (query :: {{queryName}}) + [ "{{arg}}" .= _{{arg}} {{/overArgs}} ] From 10ae5d4e852b97d210af3a69d6213e5dc19ef108 Mon Sep 17 00:00:00 2001 From: Brandon Chinn Date: Sat, 6 Jan 2024 12:34:49 -0800 Subject: [PATCH 5/5] Bump version --- graphql-client/CHANGELOG.md | 2 ++ graphql-client/graphql-client.cabal | 2 +- graphql-client/package.yaml | 2 +- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/graphql-client/CHANGELOG.md b/graphql-client/CHANGELOG.md index 9b0a314..69f0e34 100644 --- a/graphql-client/CHANGELOG.md +++ b/graphql-client/CHANGELOG.md @@ -1,5 +1,7 @@ # Unreleased +# v1.2.4 + * Fix ambiguous field name error with same argument name in multiple queries ([#86](https://github.com/brandonchinn178/graphql-client/issues/86)) # v1.2.3 diff --git a/graphql-client/graphql-client.cabal b/graphql-client/graphql-client.cabal index 2e77edf..907092e 100644 --- a/graphql-client/graphql-client.cabal +++ b/graphql-client/graphql-client.cabal @@ -5,7 +5,7 @@ cabal-version: >= 1.10 -- see: https://github.com/sol/hpack name: graphql-client -version: 1.2.3 +version: 1.2.4 synopsis: A client for Haskell programs to query a GraphQL API description: A client for Haskell programs to query a GraphQL API. category: Graphql diff --git a/graphql-client/package.yaml b/graphql-client/package.yaml index 0f78f01..a47f31f 100644 --- a/graphql-client/package.yaml +++ b/graphql-client/package.yaml @@ -1,5 +1,5 @@ name: graphql-client -version: 1.2.3 +version: 1.2.4 verbatim: cabal-version: '>= 1.10' license: BSD3