fix(gs/xanthous): update xanthous.cabal, make CI catch such errors

Since xanthous has a checked-in package.yaml and cabal file, the
haskellPackages build infrastructure will use the package.yaml file for
all builds. The resulting problem is that our CI won't actually catch build
failures that would be observable with cabal or when building from the
sdist.

We fix that by filtering out the package.yaml file in pkg.nix
additionally to the filters specified in .gitignore. For this we need
gitignoreFilter from gitignore.nix which we expose as part of a functor
set from third_party.gitignoreSource to maintain interface
compatibility.

Change-Id: I337185f484d2027341f38031dcd78898706904eb
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2609
Tested-by: BuildkiteCI
Reviewed-by: glittershark <grfn@gws.fyi>
Reviewed-by: tazjin <mail@tazj.in>
This commit is contained in:
sterni 2021-03-19 18:49:51 +01:00
parent 4cf7dced54
commit 1799ddf7f0
3 changed files with 140 additions and 13 deletions

View file

@ -1,8 +1,18 @@
{ pkgs, ... }: { pkgs, ... }:
(import (pkgs.fetchFromGitHub { let
owner = "hercules-ci"; gitignoreNix = import (pkgs.fetchFromGitHub {
repo = "gitignore"; owner = "hercules-ci";
rev = "f9e996052b5af4032fe6150bba4a6fe4f7b9d698"; repo = "gitignore";
sha256 = "0jrh5ghisaqdd0vldbywags20m2cxpkbbk5jjjmwaw0gr8nhsafv"; rev = "f9e996052b5af4032fe6150bba4a6fe4f7b9d698";
}) { inherit (pkgs) lib; }).gitignoreSource sha256 = "0jrh5ghisaqdd0vldbywags20m2cxpkbbk5jjjmwaw0gr8nhsafv";
}) { inherit (pkgs) lib; };
in {
__functor = _: gitignoreNix.gitignoreSource;
# expose extra functions here
inherit (gitignoreNix)
gitignoreFilter
;
}

View file

@ -1,7 +1,16 @@
{ pkgs ? (import ../../../. {}).third_party }: { pkgs ? (import ../../../. {}).third_party }:
let
ignore = pkgs.gitignoreSource.gitignoreFilter ./.;
in
import (pkgs.haskellPackages.haskellSrc2nix { import (pkgs.haskellPackages.haskellSrc2nix {
name = "xanthous"; name = "xanthous";
src = pkgs.gitignoreSource ./.; src = builtins.path {
name = "xanthous-source";
path = ./.;
filter = path: type: ignore path type
|| builtins.baseNameOf path == "package.yaml";
};
extraCabal2nixOptions = "--hpack"; extraCabal2nixOptions = "--hpack";
}) })

View file

@ -1,10 +1,10 @@
cabal-version: 1.12 cabal-version: 1.12
-- This file has been generated from package.yaml by hpack version 0.33.1. -- This file has been generated from package.yaml by hpack version 0.34.4.
-- --
-- see: https://github.com/sol/hpack -- see: https://github.com/sol/hpack
-- --
-- hash: bb0a26ab512a1b8d095f3fa71370dcc5221c3f20888042a0d5c41d054dc403cf -- hash: b46f24dcf24decf8e16be6f62943648aaafc9272d923945f97d5c26a370ad235
name: xanthous name: xanthous
version: 0.1.0.0 version: 0.1.0.0
@ -87,7 +87,33 @@ library
Paths_xanthous Paths_xanthous
hs-source-dirs: hs-source-dirs:
src src
default-extensions: BlockArguments ConstraintKinds DataKinds DeriveAnyClass DeriveGeneric DerivingStrategies DerivingVia FlexibleContexts FlexibleInstances FunctionalDependencies GADTSyntax GeneralizedNewtypeDeriving KindSignatures LambdaCase MultiWayIf NoImplicitPrelude NoStarIsType OverloadedStrings PolyKinds RankNTypes ScopedTypeVariables TupleSections TypeApplications TypeFamilies TypeOperators ViewPatterns default-extensions:
BlockArguments
ConstraintKinds
DataKinds
DeriveAnyClass
DeriveGeneric
DerivingStrategies
DerivingVia
FlexibleContexts
FlexibleInstances
FunctionalDependencies
GADTSyntax
GeneralizedNewtypeDeriving
KindSignatures
LambdaCase
MultiWayIf
NoImplicitPrelude
NoStarIsType
OverloadedStrings
PolyKinds
RankNTypes
ScopedTypeVariables
TupleSections
TypeApplications
TypeFamilies
TypeOperators
ViewPatterns
ghc-options: -Wall ghc-options: -Wall
build-depends: build-depends:
JuicyPixels JuicyPixels
@ -140,6 +166,7 @@ library
, raw-strings-qq , raw-strings-qq
, reflection , reflection
, semigroupoids , semigroupoids
, splitmix
, stache , stache
, streams , streams
, text , text
@ -213,7 +240,33 @@ executable xanthous
Paths_xanthous Paths_xanthous
hs-source-dirs: hs-source-dirs:
src src
default-extensions: BlockArguments ConstraintKinds DataKinds DeriveAnyClass DeriveGeneric DerivingStrategies DerivingVia FlexibleContexts FlexibleInstances FunctionalDependencies GADTSyntax GeneralizedNewtypeDeriving KindSignatures LambdaCase MultiWayIf NoImplicitPrelude NoStarIsType OverloadedStrings PolyKinds RankNTypes ScopedTypeVariables TupleSections TypeApplications TypeFamilies TypeOperators ViewPatterns default-extensions:
BlockArguments
ConstraintKinds
DataKinds
DeriveAnyClass
DeriveGeneric
DerivingStrategies
DerivingVia
FlexibleContexts
FlexibleInstances
FunctionalDependencies
GADTSyntax
GeneralizedNewtypeDeriving
KindSignatures
LambdaCase
MultiWayIf
NoImplicitPrelude
NoStarIsType
OverloadedStrings
PolyKinds
RankNTypes
ScopedTypeVariables
TupleSections
TypeApplications
TypeFamilies
TypeOperators
ViewPatterns
ghc-options: -Wall -threaded -rtsopts -with-rtsopts=-N -O2 ghc-options: -Wall -threaded -rtsopts -with-rtsopts=-N -O2
build-depends: build-depends:
JuicyPixels JuicyPixels
@ -266,6 +319,7 @@ executable xanthous
, raw-strings-qq , raw-strings-qq
, reflection , reflection
, semigroupoids , semigroupoids
, splitmix
, stache , stache
, streams , streams
, text , text
@ -306,7 +360,33 @@ test-suite test
Paths_xanthous Paths_xanthous
hs-source-dirs: hs-source-dirs:
test test
default-extensions: BlockArguments ConstraintKinds DataKinds DeriveAnyClass DeriveGeneric DerivingStrategies DerivingVia FlexibleContexts FlexibleInstances FunctionalDependencies GADTSyntax GeneralizedNewtypeDeriving KindSignatures LambdaCase MultiWayIf NoImplicitPrelude NoStarIsType OverloadedStrings PolyKinds RankNTypes ScopedTypeVariables TupleSections TypeApplications TypeFamilies TypeOperators ViewPatterns default-extensions:
BlockArguments
ConstraintKinds
DataKinds
DeriveAnyClass
DeriveGeneric
DerivingStrategies
DerivingVia
FlexibleContexts
FlexibleInstances
FunctionalDependencies
GADTSyntax
GeneralizedNewtypeDeriving
KindSignatures
LambdaCase
MultiWayIf
NoImplicitPrelude
NoStarIsType
OverloadedStrings
PolyKinds
RankNTypes
ScopedTypeVariables
TupleSections
TypeApplications
TypeFamilies
TypeOperators
ViewPatterns
ghc-options: -Wall -threaded -rtsopts -with-rtsopts=-N -O0 ghc-options: -Wall -threaded -rtsopts -with-rtsopts=-N -O0
build-depends: build-depends:
JuicyPixels JuicyPixels
@ -360,6 +440,7 @@ test-suite test
, raw-strings-qq , raw-strings-qq
, reflection , reflection
, semigroupoids , semigroupoids
, splitmix
, stache , stache
, streams , streams
, tasty , tasty
@ -387,7 +468,33 @@ benchmark benchmark
Paths_xanthous Paths_xanthous
hs-source-dirs: hs-source-dirs:
bench bench
default-extensions: BlockArguments ConstraintKinds DataKinds DeriveAnyClass DeriveGeneric DerivingStrategies DerivingVia FlexibleContexts FlexibleInstances FunctionalDependencies GADTSyntax GeneralizedNewtypeDeriving KindSignatures LambdaCase MultiWayIf NoImplicitPrelude NoStarIsType OverloadedStrings PolyKinds RankNTypes ScopedTypeVariables TupleSections TypeApplications TypeFamilies TypeOperators ViewPatterns default-extensions:
BlockArguments
ConstraintKinds
DataKinds
DeriveAnyClass
DeriveGeneric
DerivingStrategies
DerivingVia
FlexibleContexts
FlexibleInstances
FunctionalDependencies
GADTSyntax
GeneralizedNewtypeDeriving
KindSignatures
LambdaCase
MultiWayIf
NoImplicitPrelude
NoStarIsType
OverloadedStrings
PolyKinds
RankNTypes
ScopedTypeVariables
TupleSections
TypeApplications
TypeFamilies
TypeOperators
ViewPatterns
ghc-options: -Wall -threaded -rtsopts -with-rtsopts=-N ghc-options: -Wall -threaded -rtsopts -with-rtsopts=-N
build-depends: build-depends:
JuicyPixels JuicyPixels
@ -440,6 +547,7 @@ benchmark benchmark
, raw-strings-qq , raw-strings-qq
, reflection , reflection
, semigroupoids , semigroupoids
, splitmix
, stache , stache
, streams , streams
, text , text