graphql-engine/cabal.project
Rikin Kachhia b70a981d1a Jberryman/ghc 9.6.4 (cherry-pick v2.37)
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/10681
GitOrigin-RevId: 083dd9164237638ff5e919cffb46295dd7282702
2024-02-15 15:45:25 +00:00

189 lines
6.5 KiB
Plaintext

-- Global project configuration.
--
-- This file can be overridden with cabal.project.local (see e.g. cabal/dev.project)
--
-- If you need to switch between several local configurations you can also create a
-- symbolic link to this file in the project root directory; e.g.:
-- $ ln -s cabal.project myconfig.project
-- $ ln -s cabal.project.freeze myconfig.project.freeze
--
-- ...and then create a new set of overrides in:
-- myconfig.project.local
--
-- ...and then invoke cabal with
-- $ cabal new-build --project-file=myconfig.project
--
-- See: https://www.haskell.org/cabal/users-guide/nix-local-build.html#configuring-builds-with-cabal-project
with-compiler: ghc-9.6.4
-- package-level parallelism:
jobs: $ncpus
packages: server
packages: server/lib/*/*.cabal
packages: server/forks/*/*.cabal
-- TODO remove these when we are able:
allow-newer: req:template-haskell
allow-newer: ekg-core:base
allow-newer: ekg-core:ghc-prim
allow-newer: ekg-core:inspection-testing
allow-newer: ekg-core:text
allow-newer: ekg-json:base
allow-newer: ekg-json:text
allow-newer: ekg-prometheus:base
allow-newer: ekg-prometheus:text
allow-newer: ekg-prometheus:bytestring
-- Migrating to 0.25+ looks like it will be a real pain... :(
-- https://github.com/morpheusgraphql/morpheus-graphql/pull/766
allow-newer: relude:base
allow-newer: relude:ghc-prim
allow-newer: morpheus-graphql:text
allow-newer: morpheus-graphql:relude
allow-newer: morpheus-graphql:vector
allow-newer: morpheus-graphql:transformers
allow-newer: morpheus-graphql-app:text
allow-newer: morpheus-graphql-app:vector
allow-newer: morpheus-graphql-app:transformers
allow-newer: morpheus-graphql-code-gen:text
allow-newer: morpheus-graphql-code-gen:optparse-applicative
allow-newer: morpheus-graphql-code-gen-utils:text
allow-newer: morpheus-graphql-core:text
allow-newer: morpheus-graphql-core:transformers
allow-newer: morpheus-graphql-core:vector
allow-newer: morpheus-graphql-server:text
allow-newer: morpheus-graphql-server:transformers
allow-newer: morpheus-graphql-server:vector
allow-newer: morpheus-graphql-client:text
allow-newer: morpheus-graphql-client:req
allow-newer: morpheus-graphql-client:transformers
allow-newer: morpheus-graphql-client:vector
allow-newer: morpheus-graphql-subscriptions:text
allow-newer: morpheus-graphql-subscriptions:transformers
allow-newer: servant-openapi3:base
allow-newer: openapi3:base
allow-newer: servant-client:base
allow-newer: servant-client:transformers
allow-newer: servant-client:mtl
allow-newer: servant-client-core:base
allow-newer: servant-client-core:free
allow-newer: servant-client-core:template-haskell
allow-newer: servant-client-core:transformers
allow-newer: servant-server:base
allow-newer: servant-server:template-haskell
allow-newer: servant-server:transformers
allow-newer: servant-server:mtl
allow-newer: servant:base
allow-newer: servant:mtl
allow-newer: ghc-heap-view:base
allow-newer: ghc-heap-view:Cabal
allow-newer: servant:transformers
allow-newer: singleton-bool:base
allow-newer: semigroupoids:base
allow-newer: http-api-data:base
allow-newer: validation:assoc
allow-newer: aeson:th-abstraction
allow-newer: optics-th:th-abstraction
allow-newer: generics-sop:th-abstraction
-- https://gitlab.haskell.org/ghc/ghc-debug/-/merge_requests/27
allow-newer: ghc-debug-stub:ghc-prim
-- https://github.com/mokus0/th-extras/pull/20
allow-newer: th-extras:template-haskell
package *
-- NOTE: this gets applied to both local (hasura) packages and dependencies,
-- but optimizations for local hasura packages are overridden/controlled
-- via the 'optimize-hasura' flag.
optimization: 2
-- For tooling support, e.g. HLS:
ghc-options: -fwrite-ide-info
-- we statically link malloc from mimalloc. Out of an abundance of caution,
-- disable special treatment of these in all the foreign code we build. The
-- only risk is potential for some missed optimizations.
-- See: https://github.com/microsoft/mimalloc/issues/785
-- NOTE: cc-options is not recognized here for some reason, so we use ghc-options+optc:
ghc-options: -optc-fno-builtin-malloc -optc-fno-builtin-calloc -optc-fno-builtin-realloc -optc-fno-builtin-free
haddock-html: true
haddock-hoogle: true
haddock-hyperlink-source: true
haddock-quickjump: true
haddock-internal: true
-- Allow for dead-code elimination at link-time, to reduce binary size
if(os(linux))
package *
-- ld on M1 OSX does not recognise this:
ld-options: -Wl,--gc-sections
ghc-options: -split-sections
-- -----------------------------------------------------------
package graphql-engine
ghc-options: -j
haddock-options: "--show-all"
allow-newer: hedgehog-generic:base
allow-newer: hedgehog-generic:hedgehog
-- 9.6 support. Awaiting release I guess...
source-repository-package
type: git
location: https://github.com/agrafix/Spock
tag: 40d028bfea0e94ca7096c719cd024ca47a46e559
subdir: Spock-core
-- 9.6 support: https://github.com/jfischoff/postgres-options/pull/7
source-repository-package
type: git
location: https://github.com/jfischoff/postgres-options.git
tag: 3100f7ca4319748a07a46e2838f4c80f8e3f076a
-- 9.6 support: https://github.com/MichaelXavier/cron/pull/51
source-repository-package
type: git
location: https://github.com/TristanCacqueray/cron.git
tag: 5f5b662a1d7abc3951ea5a2a625bbf3e83f7a11a
source-repository-package
type: git
location: https://github.com/hasura/kriti-lang.git
tag: c8fd863d359876af3a0fce47db8a5393dc556667
-- This is an unrelesaed version of "odbc"
-- For text v2 support
-- WIP/FIXME: review change, maybe upstream PR
source-repository-package
type: git
location: https://github.com/hasura/odbc.git
tag: 43b07813d635215b3466824d07890de452920fc2
package odbc
ghc-options: -Wwarn
-- Our CI compiles with -Werror, which is also applied to those packages
-- while it's fine for packages we maintain, we can't actually enforce
-- that third-party packages are warning-free, hence this -Wno-error.
-- When the changes in odbc are released, we can instead depend on
-- the hackage version, and remove it from this list of packages.
source-repository-package
type: git
location: https://github.com/hasura/ekg-core.git
tag: df610859603b504494ad770bdbb7053a7f0b9a6c
-- because we need 27d87f01, not yet released
source-repository-package
type: git
location: https://github.com/snoyberg/yaml.git
tag: c1aa7b3991e669e4c6a977712b495d40a54cf819
subdir: yaml
source-repository-package
type: git
location: https://github.com/hasura/libdeflate-hs.git
tag: e6f020a1a24d07516d753fbb6f30758774f76372