Skip to content

Instantly share code, notes, and snippets.

@bsima
Created January 17, 2019 20:11
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save bsima/dbc641aa3cc608faa5f7c33b191f84f1 to your computer and use it in GitHub Desktop.
Save bsima/dbc641aa3cc608faa5f7c33b191f84f1 to your computer and use it in GitHub Desktop.
haskell, cabal, nix err

cabal file

name: hero-server
version: 2
license: AllRightsReserved
license-file: LICENSE
cabal-version: >= 1.18
build-type: Simple

executable hero-server
  main-is: Main.hs
  ghc-options: -O2 -threaded -Wall -rtsopts -fwarn-unused-imports
  hs-source-dirs: .
  -- other-modules:
  --     Hero.Api
  --   , Hero.Config
  --   , Hero.Init
  --   , Hero.Logger
  build-depends: base < 5
               , aeson
               , containers
               , hero-common
               , http-types
               , lucid
               , miso
               , mtl
               , servant
               , servant-lucid
               , servant-server
               , text
               , wai
               , wai-app-static
               , wai-extra
               , warp
               -- , beam-core
               -- , beam-migrate
               -- , beam-postgres
               -- , bytestring
               -- , ekg
               -- , ekg-core
               -- , fast-logger
               -- , foreign-store
               -- , katip
               -- , microlens
               -- , monad-control
               -- , monad-logger
               -- , monad-metrics
               -- , resource-pool
               -- , safe
               -- , time
               -- , transformers
               -- , unordered-containers
               -- , wai-middleware-metrics
  default-language: Haskell2010

nix file

# default.nix
{ pkgs ? import (fetchGit (import ../nix/pkgs.nix)) {}
, compiler ? "ghc844"
}:

with pkgs.haskell.packages.${compiler};

developPackage {
  root = ./.;
  name = "hero-server";
  overrides = with pkgs.haskell.lib; self: super: {
    #aeson           = dontCheck (doJailbreak super.aeson);
    hero-common     = import ../common { inherit compiler; };
    #http-types      = dontCheck (doJailbreak super.http-types);
    #lucid           = dontCheck (doJailbreak super.lucid);
    #miso            = dontCheck (doJailbreak super.miso);
    #servant         = dontCheck (doJailbreak super.servant);
    #servant-lucid   = dontCheck (doJailbreak super.servant-lucid);
    #servant-server  = dontCheck (doJailbreak super.servant-server);
    #wai             = dontCheck (doJailbreak super.wai);
    #wai-app-static  = dontCheck (doJailbreak super.wai-app-static);
    #wai-extra       = dontCheck (doJailbreak super.wai-extra);
    #warp            = dontCheck (doJailbreak super.warp);
  };
}

shell output

$ nix-build
these derivations will be built:
  /nix/store/qrid78r6nc9vi8cbksjb824kf94xi0wl-hero-server-2.drv
building '/nix/store/qrid78r6nc9vi8cbksjb824kf94xi0wl-hero-server-2.drv'...
setupCompilerEnvironmentPhase
Build with /nix/store/w63xdfjw13jy676v3rnflmblnsbqj8qg-ghc-8.4.4.
unpacking sources
unpacking source archive /nix/store/lkr6pa5i6ss78mnz66liivby0pmysk16-server
source root is server
patching sources
compileBuildDriverPhase
setupCompileFlags: -package-db=/build/setup-package.conf.d -j1 -threaded
[1 of 1] Compiling Main             ( /nix/store/4mdp8nhyfddh7bllbi7xszz7k9955n79-Setup.hs, /build/Main.o )
Linking Setup ...
configuring
configureFlags: --verbose --prefix=/nix/store/gx3p6vv2y6xnm2r89mpzxyigyp3w79v5-hero-server-2 --libdir=$prefix/lib/$compiler --libsubdir=$abi/$libname --docdir=/nix/store/xxn2igczai94k2s581ihbxjml5qcivyx-hero-server-2-doc/share/doc/hero-server-2 --with-gcc=gcc --package-db=/build/package.conf.d --ghc-option=-j1 --disable-split-objs --enable-library-profiling --profiling-detail=exported-functions --disable-profiling --enable-shared --disable-coverage --enable-static --disable-executable-dynamic --enable-tests --enable-library-vanilla --enable-library-for-ghci --ghc-option=-split-sections --extra-lib-dirs=/nix/store/2lbhgxlrhgnij2c3bm719xidymmhp0m0-ncurses-6.1-20181027/lib --extra-lib-dirs=/nix/store/077sn4sz2mxzjm5zqlxxag2170jkkc5n-gmp-6.1.2/lib
Using Parsec parser
Configuring hero-server-2...
Dependency aeson -any: using aeson-1.3.1.1
Dependency base <5: using base-4.11.1.0
Dependency containers -any: using containers-0.5.11.0
Dependency hero-common -any: using hero-common-2
Dependency http-types -any: using http-types-0.12.1
Dependency lucid -any: using lucid-2.9.10
Dependency miso -any: using miso-0.21.1.0
Dependency mtl -any: using mtl-2.2.2
Dependency servant -any: using servant-0.14.1
Dependency servant-lucid -any: using servant-lucid-0.8.1
Dependency servant-server -any: using servant-server-0.14.1
Dependency text -any: using text-1.2.3.1
Dependency wai -any: using wai-3.2.1.2
Dependency wai-app-static -any: using wai-app-static-3.1.6.2
Dependency wai-extra -any: using wai-extra-3.0.24.2
Dependency warp -any: using warp-3.2.23
Source component graph: component exe:hero-server
Configured component graph:
    component hero-server-2-Kfl9aiDDA6o2OpzMJdKeLR-hero-server
        include base-4.11.1.0
        include aeson-1.3.1.1-2z5BDn4pHHoFDtHlsak4jw
        include containers-0.5.11.0
        include hero-common-2-f4GVbU3hLWIyBnr8MyM96
        include http-types-0.12.1-AfBhA6Dmokc65GZ3PIOqqo
        include lucid-2.9.10-KdbsURw0sAwI73srcRCERW
        include miso-0.21.1.0-EErUfExzRw9cnmdMSPf6A
        include mtl-2.2.2
        include servant-0.14.1-4UoCqmXvX3CBqicSMjjyiA
        include servant-lucid-0.8.1-8d4Nd6DKhd3GAjRbLwquQ6
        include servant-server-0.14.1-HLUCMNmW8Gk4A00BIeF8O0
        include text-1.2.3.1
        include wai-3.2.1.2-ELv9GdlipUa1VN305RiY5B
        include wai-app-static-3.1.6.2-EU3qomHWEM8F2xqhZOk8Ff
        include wai-extra-3.0.24.2-DS4Q2xHbJql1BK2UXgF95t
        include warp-3.2.23-Hyta1QYExlFLHc1DVmjAbb
Linked component graph:
    unit hero-server-2-Kfl9aiDDA6o2OpzMJdKeLR-hero-server
        include base-4.11.1.0
        include aeson-1.3.1.1-2z5BDn4pHHoFDtHlsak4jw
        include containers-0.5.11.0
        include hero-common-2-f4GVbU3hLWIyBnr8MyM96
        include http-types-0.12.1-AfBhA6Dmokc65GZ3PIOqqo
        include lucid-2.9.10-KdbsURw0sAwI73srcRCERW
        include miso-0.21.1.0-EErUfExzRw9cnmdMSPf6A
        include mtl-2.2.2
        include servant-0.14.1-4UoCqmXvX3CBqicSMjjyiA
        include servant-lucid-0.8.1-8d4Nd6DKhd3GAjRbLwquQ6
        include servant-server-0.14.1-HLUCMNmW8Gk4A00BIeF8O0
        include text-1.2.3.1
        include wai-3.2.1.2-ELv9GdlipUa1VN305RiY5B
        include wai-app-static-3.1.6.2-EU3qomHWEM8F2xqhZOk8Ff
        include wai-extra-3.0.24.2-DS4Q2xHbJql1BK2UXgF95t
        include warp-3.2.23-Hyta1QYExlFLHc1DVmjAbb
Ready component graph:
    definite hero-server-2-Kfl9aiDDA6o2OpzMJdKeLR-hero-server
        depends base-4.11.1.0
        depends aeson-1.3.1.1-2z5BDn4pHHoFDtHlsak4jw
        depends containers-0.5.11.0
        depends hero-common-2-f4GVbU3hLWIyBnr8MyM96
        depends http-types-0.12.1-AfBhA6Dmokc65GZ3PIOqqo
        depends lucid-2.9.10-KdbsURw0sAwI73srcRCERW
        depends miso-0.21.1.0-EErUfExzRw9cnmdMSPf6A
        depends mtl-2.2.2
        depends servant-0.14.1-4UoCqmXvX3CBqicSMjjyiA
        depends servant-lucid-0.8.1-8d4Nd6DKhd3GAjRbLwquQ6
        depends servant-server-0.14.1-HLUCMNmW8Gk4A00BIeF8O0
        depends text-1.2.3.1
        depends wai-3.2.1.2-ELv9GdlipUa1VN305RiY5B
        depends wai-app-static-3.1.6.2-EU3qomHWEM8F2xqhZOk8Ff
        depends wai-extra-3.0.24.2-DS4Q2xHbJql1BK2UXgF95t
        depends warp-3.2.23-Hyta1QYExlFLHc1DVmjAbb
Warning:
    This package indirectly depends on multiple versions of the same package. This is very likely to cause a compile failure.
      package wai-extra (wai-extra-3.0.24.2-DS4Q2xHbJql1BK2UXgF95t) requires aeson-1.3.1.1-2HlXu9m4gDPKpJolKdWmih
      package servant (servant-0.14.1-4UoCqmXvX3CBqicSMjjyiA) requires aeson-1.3.1.1-2HlXu9m4gDPKpJolKdWmih
      package miso (miso-0.21.1.0-EErUfExzRw9cnmdMSPf6A) requires aeson-1.3.1.1-2HlXu9m4gDPKpJolKdWmih
      package servant (servant-0.14.1-IEZiuPniWtZJBLH5HTQVNF) requires aeson-1.3.1.1-2z5BDn4pHHoFDtHlsak4jw
      package miso (miso-0.21.1.0-HXRMj8qRpki9IiayPFV0pl) requires aeson-1.3.1.1-2z5BDn4pHHoFDtHlsak4jw
      package hero-server (hero-server-2) requires aeson-1.3.1.1-2z5BDn4pHHoFDtHlsak4jw
      package uri-bytestring (uri-bytestring-0.3.2.0-FashOWVoGw32UraMpCCVAO) requires attoparsec-0.13.2.2-8IBK241vuKg12T814CoW6N
      package servant (servant-0.14.1-IEZiuPniWtZJBLH5HTQVNF) requires attoparsec-0.13.2.2-8IBK241vuKg12T814CoW6N
      package http-api-data (http-api-data-0.3.8.1-FFRNHCOa9odJn7x5OvxAfU) requires attoparsec-0.13.2.2-8IBK241vuKg12T814CoW6N
      package attoparsec-iso8601 (attoparsec-iso8601-1.0.0.0-6XwflU7fRC8ETPU6B1syJr) requires attoparsec-0.13.2.2-8IBK241vuKg12T814CoW6N
      package aeson (aeson-1.3.1.1-2z5BDn4pHHoFDtHlsak4jw) requires attoparsec-0.13.2.2-8IBK241vuKg12T814CoW6N
      package uri-bytestring (uri-bytestring-0.3.2.0-3mUPjR9wDfn3duUAhKuzyn) requires attoparsec-0.13.2.2-FgTpTAc5j4f394tZfdy8a3
      package servant (servant-0.14.1-4UoCqmXvX3CBqicSMjjyiA) requires attoparsec-0.13.2.2-FgTpTAc5j4f394tZfdy8a3
      package http-date (http-date-0.0.8-74FTfb32k1GDajmpkIkJ6X) requires attoparsec-0.13.2.2-FgTpTAc5j4f394tZfdy8a3
      package http-api-data (http-api-data-0.3.8.1-L6xHZkEf3rtL7F16dis0NN) requires attoparsec-0.13.2.2-FgTpTAc5j4f394tZfdy8a3
      package attoparsec-iso8601 (attoparsec-iso8601-1.0.0.0-437GMMMDRbRFUtf05rTJdd) requires attoparsec-0.13.2.2-FgTpTAc5j4f394tZfdy8a3
      package aeson (aeson-1.3.1.1-2HlXu9m4gDPKpJolKdWmih) requires attoparsec-0.13.2.2-FgTpTAc5j4f394tZfdy8a3
      package http-api-data (http-api-data-0.3.8.1-L6xHZkEf3rtL7F16dis0NN) requires attoparsec-iso8601-1.0.0.0-437GMMMDRbRFUtf05rTJdd
      package http-api-data (http-api-data-0.3.8.1-FFRNHCOa9odJn7x5OvxAfU) requires attoparsec-iso8601-1.0.0.0-6XwflU7fRC8ETPU6B1syJr
      package servant (servant-0.14.1-IEZiuPniWtZJBLH5HTQVNF) requires http-api-data-0.3.8.1-FFRNHCOa9odJn7x5OvxAfU
      package miso (miso-0.21.1.0-HXRMj8qRpki9IiayPFV0pl) requires http-api-data-0.3.8.1-FFRNHCOa9odJn7x5OvxAfU
      package servant-server (servant-server-0.14.1-HLUCMNmW8Gk4A00BIeF8O0) requires http-api-data-0.3.8.1-L6xHZkEf3rtL7F16dis0NN
      package servant (servant-0.14.1-4UoCqmXvX3CBqicSMjjyiA) requires http-api-data-0.3.8.1-L6xHZkEf3rtL7F16dis0NN
      package miso (miso-0.21.1.0-EErUfExzRw9cnmdMSPf6A) requires http-api-data-0.3.8.1-L6xHZkEf3rtL7F16dis0NN
      package servant (servant-0.14.1-IEZiuPniWtZJBLH5HTQVNF) requires http-types-0.12.1-3PMZhoTgT7YWGWo1kz3k1
      package miso (miso-0.21.1.0-HXRMj8qRpki9IiayPFV0pl) requires http-types-0.12.1-3PMZhoTgT7YWGWo1kz3k1
      package http-api-data (http-api-data-0.3.8.1-FFRNHCOa9odJn7x5OvxAfU) requires http-types-0.12.1-3PMZhoTgT7YWGWo1kz3k1
      package warp (warp-3.2.23-Hyta1QYExlFLHc1DVmjAbb) requires http-types-0.12.1-AfBhA6Dmokc65GZ3PIOqqo
      package wai-logger (wai-logger-2.3.2-HcpZqE3hrSg9cP4oP98o1r) requires http-types-0.12.1-AfBhA6Dmokc65GZ3PIOqqo
      package wai-extra (wai-extra-3.0.24.2-DS4Q2xHbJql1BK2UXgF95t) requires http-types-0.12.1-AfBhA6Dmokc65GZ3PIOqqo
      package wai-app-static (wai-app-static-3.1.6.2-EU3qomHWEM8F2xqhZOk8Ff) requires http-types-0.12.1-AfBhA6Dmokc65GZ3PIOqqo
      package wai (wai-3.2.1.2-ELv9GdlipUa1VN305RiY5B) requires http-types-0.12.1-AfBhA6Dmokc65GZ3PIOqqo
      package servant-server (servant-server-0.14.1-HLUCMNmW8Gk4A00BIeF8O0) requires http-types-0.12.1-AfBhA6Dmokc65GZ3PIOqqo
      package servant (servant-0.14.1-4UoCqmXvX3CBqicSMjjyiA) requires http-types-0.12.1-AfBhA6Dmokc65GZ3PIOqqo
      package miso (miso-0.21.1.0-EErUfExzRw9cnmdMSPf6A) requires http-types-0.12.1-AfBhA6Dmokc65GZ3PIOqqo
      package http-api-data (http-api-data-0.3.8.1-L6xHZkEf3rtL7F16dis0NN) requires http-types-0.12.1-AfBhA6Dmokc65GZ3PIOqqo
      package hero-server (hero-server-2) requires http-types-0.12.1-AfBhA6Dmokc65GZ3PIOqqo
      package hero-server (hero-server-2) requires miso-0.21.1.0-EErUfExzRw9cnmdMSPf6A
      package hero-common (hero-common-2-f4GVbU3hLWIyBnr8MyM96) requires miso-0.21.1.0-HXRMj8qRpki9IiayPFV0pl
      package servant (servant-0.14.1-IEZiuPniWtZJBLH5HTQVNF) requires natural-transformation-0.4-3WYpUmMdgiKKIiTEZGpCXl
      package servant (servant-0.14.1-4UoCqmXvX3CBqicSMjjyiA) requires natural-transformation-0.4-J1vXvF72tgL4lU6S6EG8a8
      package attoparsec (attoparsec-0.13.2.2-8IBK241vuKg12T814CoW6N) requires scientific-0.3.6.2-HRZb7EJTQSC4inKgluE0dt
      package aeson (aeson-1.3.1.1-2z5BDn4pHHoFDtHlsak4jw) requires scientific-0.3.6.2-HRZb7EJTQSC4inKgluE0dt
      package attoparsec (attoparsec-0.13.2.2-FgTpTAc5j4f394tZfdy8a3) requires scientific-0.3.6.2-KbDcGjZRyeg5adBO91nhxJ
      package aeson (aeson-1.3.1.1-2HlXu9m4gDPKpJolKdWmih) requires scientific-0.3.6.2-KbDcGjZRyeg5adBO91nhxJ
      package servant-server (servant-server-0.14.1-HLUCMNmW8Gk4A00BIeF8O0) requires servant-0.14.1-4UoCqmXvX3CBqicSMjjyiA
      package servant-lucid (servant-lucid-0.8.1-Aj2uMfYhV6Y5MdPc4xRc0w) requires servant-0.14.1-4UoCqmXvX3CBqicSMjjyiA
      package miso (miso-0.21.1.0-EErUfExzRw9cnmdMSPf6A) requires servant-0.14.1-4UoCqmXvX3CBqicSMjjyiA
      package hero-server (hero-server-2) requires servant-0.14.1-4UoCqmXvX3CBqicSMjjyiA
      package servant-lucid (servant-lucid-0.8.1-8d4Nd6DKhd3GAjRbLwquQ6) requires servant-0.14.1-IEZiuPniWtZJBLH5HTQVNF
      package miso (miso-0.21.1.0-HXRMj8qRpki9IiayPFV0pl) requires servant-0.14.1-IEZiuPniWtZJBLH5HTQVNF
      package hero-common (hero-common-2-f4GVbU3hLWIyBnr8MyM96) requires servant-0.14.1-IEZiuPniWtZJBLH5HTQVNF
      package miso (miso-0.21.1.0-HXRMj8qRpki9IiayPFV0pl) requires servant-lucid-0.8.1-8d4Nd6DKhd3GAjRbLwquQ6
      package hero-server (hero-server-2) requires servant-lucid-0.8.1-8d4Nd6DKhd3GAjRbLwquQ6
      package miso (miso-0.21.1.0-EErUfExzRw9cnmdMSPf6A) requires servant-lucid-0.8.1-Aj2uMfYhV6Y5MdPc4xRc0w
      package servant (servant-0.14.1-IEZiuPniWtZJBLH5HTQVNF) requires string-conversions-0.4.0.1-9uwcSK6wkdvDeJlDlX6QpR
      package servant-server (servant-server-0.14.1-HLUCMNmW8Gk4A00BIeF8O0) requires string-conversions-0.4.0.1-AcaFUF1MmzcL7n16jHSoUY
      package servant (servant-0.14.1-4UoCqmXvX3CBqicSMjjyiA) requires string-conversions-0.4.0.1-AcaFUF1MmzcL7n16jHSoUY
      package http-api-data (http-api-data-0.3.8.1-L6xHZkEf3rtL7F16dis0NN) requires uri-bytestring-0.3.2.0-3mUPjR9wDfn3duUAhKuzyn
      package http-api-data (http-api-data-0.3.8.1-FFRNHCOa9odJn7x5OvxAfU) requires uri-bytestring-0.3.2.0-FashOWVoGw32UraMpCCVAO
      package http-api-data (http-api-data-0.3.8.1-FFRNHCOa9odJn7x5OvxAfU) requires uuid-types-1.0.3-9HB0BQbkVFx86TKu8QWj96
      package aeson (aeson-1.3.1.1-2z5BDn4pHHoFDtHlsak4jw) requires uuid-types-1.0.3-9HB0BQbkVFx86TKu8QWj96
      package http-api-data (http-api-data-0.3.8.1-L6xHZkEf3rtL7F16dis0NN) requires uuid-types-1.0.3-FyDGH3UltqnB9QgDSO2UQk
      package aeson (aeson-1.3.1.1-2HlXu9m4gDPKpJolKdWmih) requires uuid-types-1.0.3-FyDGH3UltqnB9QgDSO2UQk
Using Cabal-2.2.0.1 compiled by ghc-8.4
Using compiler: ghc-8.4.4
Using install prefix:
/nix/store/gx3p6vv2y6xnm2r89mpzxyigyp3w79v5-hero-server-2
Executables installed in:
/nix/store/gx3p6vv2y6xnm2r89mpzxyigyp3w79v5-hero-server-2/bin
Libraries installed in:
/nix/store/gx3p6vv2y6xnm2r89mpzxyigyp3w79v5-hero-server-2/lib/ghc-8.4.4/x86_64-linux-ghc-8.4.4/hero-server-2
Dynamic Libraries installed in:
/nix/store/gx3p6vv2y6xnm2r89mpzxyigyp3w79v5-hero-server-2/lib/ghc-8.4.4/x86_64-linux-ghc-8.4.4
Private executables installed in:
/nix/store/gx3p6vv2y6xnm2r89mpzxyigyp3w79v5-hero-server-2/libexec/x86_64-linux-ghc-8.4.4/hero-server-2
Data files installed in:
/nix/store/gx3p6vv2y6xnm2r89mpzxyigyp3w79v5-hero-server-2/share/x86_64-linux-ghc-8.4.4/hero-server-2
Documentation installed in:
/nix/store/xxn2igczai94k2s581ihbxjml5qcivyx-hero-server-2-doc/share/doc/hero-server-2
Configuration files installed in:
/nix/store/gx3p6vv2y6xnm2r89mpzxyigyp3w79v5-hero-server-2/etc
No alex found
Using ar found on system at:
/nix/store/b0yc8vswfzcanhdm6dgmfmdcgjmxvxa0-binutils-2.30/bin/ar
No c2hs found
No cpphs found
No doctest found
Using gcc version 7.3.0 given by user at:
/nix/store/nwy73lby94rv8jql92xhxp0wx6gxwjb2-gcc-wrapper-7.3.0/bin/gcc
Using ghc version 8.4.4 found on system at:
/nix/store/w63xdfjw13jy676v3rnflmblnsbqj8qg-ghc-8.4.4/bin/ghc
Using ghc-pkg version 8.4.4 found on system at:
/nix/store/w63xdfjw13jy676v3rnflmblnsbqj8qg-ghc-8.4.4/bin/ghc-pkg
No ghcjs found
No ghcjs-pkg found
No greencard found
Using haddock version 2.20.0 found on system at:
/nix/store/w63xdfjw13jy676v3rnflmblnsbqj8qg-ghc-8.4.4/bin/haddock
No happy found
Using haskell-suite found on system at: haskell-suite-dummy-location
Using haskell-suite-pkg found on system at: haskell-suite-pkg-dummy-location
No hmake found
Using hpc version 0.67 found on system at:
/nix/store/w63xdfjw13jy676v3rnflmblnsbqj8qg-ghc-8.4.4/bin/hpc
Using hsc2hs version 0.68.3 found on system at:
/nix/store/w63xdfjw13jy676v3rnflmblnsbqj8qg-ghc-8.4.4/bin/hsc2hs
No hscolour found
No jhc found
Using ld found on system at:
/nix/store/p3rksdhjr1sr5rvg99vb20cki03ay29g-binutils-wrapper-2.30/bin/ld
No lhc found
No lhc-pkg found
No pkg-config found
Using runghc version 8.4.4 found on system at:
/nix/store/w63xdfjw13jy676v3rnflmblnsbqj8qg-ghc-8.4.4/bin/runghc
Using strip version 2.30 found on system at:
/nix/store/b0yc8vswfzcanhdm6dgmfmdcgjmxvxa0-binutils-2.30/bin/strip
Using tar found on system at:
/nix/store/z5r5s8ccp7hlxkmaijhdikppcawa6d0p-gnutar-1.30/bin/tar
No uhc found
*** abort because of serious configure-time warning from Cabal
builder for '/nix/store/qrid78r6nc9vi8cbksjb824kf94xi0wl-hero-server-2.drv' failed with exit code 1
error: build of '/nix/store/qrid78r6nc9vi8cbksjb824kf94xi0wl-hero-server-2.drv' failed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment