diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 00000000..65721d8c --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,62 @@ +on: [push] +name: CI +jobs: + cabal: + name: Cabal / GHC ${{ matrix.ghc }} + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + ghc: + - "8.10.7" + - "9.0.2" + - "9.2.8" + - "9.4.5" + steps: + - uses: actions/checkout@v3 + - uses: haskell/actions/setup@v2 + with: + ghc-version: ${{ matrix.ghc }} + cabal-version: '3.8.1.0' + - run: cabal build all --enable-tests + - run: cabal test all + + stack: + name: Stack / GHC ${{ matrix.ghc }} + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + include: + - ghc: "8.10.7" + yaml: "stack-8.10.7.yaml" + - ghc: "9.0.2" + yaml: "stack-9.0.2-aeson1.yaml" + - ghc: "9.0.2" + yaml: "stack-9.0.2-aeson2.yaml" + - ghc: "9.2.8" + yaml: "stack-9.2.8.yaml" + - ghc: "9.4.5" + yaml: "stack.yaml" + steps: + - uses: actions/checkout@v3 + + - uses: haskell/actions/setup@v2 + with: + ghc-version: ${{ matrix.ghc }} + enable-stack: true + stack-version: "latest" + + - uses: actions/cache@v3 + name: Cache ~/.stack + with: + path: ~/.stack + key: ${{ runner.os }}-${{ matrix.ghc }}-${{ matrix.yaml }} + + - name: Build + run: | + stack build --stack-yaml ${{matrix.yaml}} --system-ghc --test --bench --no-run-tests --no-run-benchmarks + + - name: Test + run: | + stack test --stack-yaml ${{matrix.yaml}} --system-ghc diff --git a/README.md b/README.md index 1f4cb715..4267735c 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,6 @@ # Kubernetes Haskell Client +[![Stack and Cabal](https://github.com/kubernetes-client/haskell/actions/workflows/ci.yml/badge.svg)](https://github.com/kubernetes-client/haskell/actions/workflows/ci.yml) [![Build Status](https://travis-ci.org/kubernetes-client/haskell.svg?branch=master)](https://travis-ci.org/kubernetes-client/haskell) Haskell client for the [kubernetes](http://kubernetes.io/) API. diff --git a/cabal.project b/cabal.project new file mode 100644 index 00000000..a6f6b90a --- /dev/null +++ b/cabal.project @@ -0,0 +1,4 @@ +packages: + kubernetes + kubernetes-client + examples \ No newline at end of file diff --git a/examples/.gitignore b/examples/.gitignore index 403847d5..b81a6033 100644 --- a/examples/.gitignore +++ b/examples/.gitignore @@ -1,4 +1,3 @@ dist dist-newstyle -*.cabal .stack-work diff --git a/examples/kubernetes-examples.cabal b/examples/kubernetes-examples.cabal new file mode 100644 index 00000000..92e942cb --- /dev/null +++ b/examples/kubernetes-examples.cabal @@ -0,0 +1,54 @@ +cabal-version: 1.12 + +-- This file has been generated from package.yaml by hpack version 0.34.4. +-- +-- see: https://github.com/sol/hpack + +name: kubernetes-examples +version: 0.1.0.1 +synopsis: Kubernetes examples with Haskell +description: Examples to interact with Kubernetes using kubernetes-client and kubernetes-client-core +category: Examples, Kubernetes +maintainer: Shimin Guo , + Akshay Mankar +license: Apache-2.0 +license-file: LICENSE +build-type: Simple + +executable in-cluster + main-is: Main.hs + other-modules: + Paths_kubernetes_examples + hs-source-dirs: + in-cluster + ghc-options: -Wall + build-depends: + base <5 + , containers + , http-client + , http-types + , kubernetes-client + , kubernetes-client-core + , safe-exceptions + , stm + , text + default-language: Haskell2010 + +executable simple + main-is: Main.hs + other-modules: + Paths_kubernetes_examples + hs-source-dirs: + simple + ghc-options: -Wall + build-depends: + base <5 + , containers + , http-client + , http-types + , kubernetes-client + , kubernetes-client-core + , safe-exceptions + , stm + , text + default-language: Haskell2010 diff --git a/examples/package.yaml b/examples/package.yaml index b926d257..283b23f6 100644 --- a/examples/package.yaml +++ b/examples/package.yaml @@ -22,7 +22,7 @@ executables: ghc-options: - -Wall dependencies: -- base +- base < 5 - containers - http-client - http-types diff --git a/kubernetes-client/kubernetes-client.cabal b/kubernetes-client/kubernetes-client.cabal index b00c3450..00eb495c 100644 --- a/kubernetes-client/kubernetes-client.cabal +++ b/kubernetes-client/kubernetes-client.cabal @@ -1,6 +1,6 @@ cabal-version: 1.12 --- This file has been generated from package.yaml by hpack version 0.35.1. +-- This file has been generated from package.yaml by hpack version 0.35.2. -- -- see: https://github.com/sol/hpack @@ -44,13 +44,15 @@ library hs-source-dirs: src ghc-options: -Wall + build-tool-depends: + hspec-discover:hspec-discover build-depends: aeson >=1.2 && <3 , attoparsec >=0.13 , base >=4.7 && <5.0 , base64-bytestring , bytestring >=0.10 - , connection >=0.2 + , connection >=0.3 , containers >=0.5 , data-default-class >=0.1 , either >=5.0 @@ -59,16 +61,17 @@ library , http-client >=0.5 && <0.8 , http-client-tls >=0.3 , jose-jwt >=0.8 - , jsonpath >=0.1 && <0.3 + , jsonpath >=0.1 && <0.4 , kubernetes-client-core ==0.4.3.0 + , megaparsec ==9.* , microlens >=0.4 , mtl >=2.2 , oidc-client >=0.4 , pem >=0.2 , safe-exceptions >=0.1.0.0 , stm >=2.4 - , streaming-bytestring >=0.1 && <0.3 - , text >=0.11 && <1.3 + , streaming-bytestring >=0.1 && <0.4 + , text >=0.11 && <3 , time >=1.8 , timerep >=2.0 , tls >=1.4.1 @@ -88,13 +91,15 @@ test-suite example Paths_kubernetes_client hs-source-dirs: example + build-tool-depends: + hspec-discover:hspec-discover build-depends: aeson >=1.2 && <3 , attoparsec >=0.13 , base >=4.7 && <5.0 , base64-bytestring , bytestring >=0.10 - , connection >=0.2 + , connection >=0.3 , containers >=0.5 , data-default-class >=0.1 , either >=5.0 @@ -103,17 +108,18 @@ test-suite example , http-client >=0.5 && <0.8 , http-client-tls >=0.3 , jose-jwt >=0.8 - , jsonpath >=0.1 && <0.3 + , jsonpath >=0.1 && <0.4 , kubernetes-client , kubernetes-client-core ==0.4.3.0 + , megaparsec ==9.* , microlens >=0.4 , mtl >=2.2 , oidc-client >=0.4 , pem >=0.2 , safe-exceptions >=0.1.0.0 , stm >=2.4 - , streaming-bytestring >=0.1 && <0.3 - , text >=0.11 && <1.3 + , streaming-bytestring >=0.1 && <0.4 + , text >=0.11 && <3 , time >=1.8 , timerep >=2.0 , tls >=1.4.1 @@ -138,13 +144,15 @@ test-suite spec Paths_kubernetes_client hs-source-dirs: test + build-tool-depends: + hspec-discover:hspec-discover build-depends: aeson >=1.2 && <3 , attoparsec >=0.13 , base >=4.7 && <5.0 , base64-bytestring , bytestring >=0.10 - , connection >=0.2 + , connection >=0.3 , containers >=0.5 , data-default-class >=0.1 , either >=5.0 @@ -153,20 +161,22 @@ test-suite spec , hoauth2 >=1.11 && <=3 , hspec , hspec-attoparsec + , hspec-megaparsec , http-client >=0.5 && <0.8 , http-client-tls >=0.3 , jose-jwt >=0.8 - , jsonpath >=0.1 && <0.3 + , jsonpath >=0.1 && <0.4 , kubernetes-client , kubernetes-client-core ==0.4.3.0 + , megaparsec ==9.* , microlens >=0.4 , mtl >=2.2 , oidc-client >=0.4 , pem >=0.2 , safe-exceptions >=0.1.0.0 , stm >=2.4 - , streaming-bytestring >=0.1 && <0.3 - , text >=0.11 && <1.3 + , streaming-bytestring >=0.1 && <0.4 + , text >=0.11 && <3 , time >=1.8 , timerep >=2.0 , tls >=1.4.1 diff --git a/kubernetes-client/package.yaml b/kubernetes-client/package.yaml index a5596801..88d7c5d1 100644 --- a/kubernetes-client/package.yaml +++ b/kubernetes-client/package.yaml @@ -15,6 +15,8 @@ library: source-dirs: src ghc-options: - -Wall +build-tools: + - hspec-discover tests: spec: main: Spec.hs @@ -23,6 +25,7 @@ tests: - kubernetes-client - hspec - hspec-attoparsec + - hspec-megaparsec - yaml - file-embed example: @@ -39,8 +42,8 @@ dependencies: - bytestring >=0.10 - aeson >=1.2 && <3 - attoparsec >=0.13 - - jsonpath >=0.1 && <0.3 - - connection >=0.2 + - jsonpath >=0.1 && <0.4 + - connection >=0.3 - containers >= 0.5 - data-default-class >=0.1 - either >=5.0 @@ -50,14 +53,15 @@ dependencies: - http-client-tls >=0.3 - jose-jwt >=0.8 - kubernetes-client-core ==0.4.3.0 + - megaparsec >=9 && <10 - microlens >=0.4 - mtl >=2.2 - oidc-client >=0.4 - pem >=0.2 - safe-exceptions >=0.1.0.0 - stm >=2.4 - - streaming-bytestring >= 0.1 && < 0.3 - - text >=0.11 && <1.3 + - streaming-bytestring >= 0.1 && < 0.4 + - text >=0.11 && <3 - time >=1.8 - timerep >=2.0 - tls >=1.4.1 diff --git a/kubernetes-client/src/Kubernetes/Client/Auth/GCP.hs b/kubernetes-client/src/Kubernetes/Client/Auth/GCP.hs index 6766fb98..c0de1a96 100644 --- a/kubernetes-client/src/Kubernetes/Client/Auth/GCP.hs +++ b/kubernetes-client/src/Kubernetes/Client/Auth/GCP.hs @@ -6,7 +6,6 @@ where import Control.Concurrent.STM import Control.Exception.Safe (Exception, throwM) -import Data.Attoparsec.Text import Data.Either.Combinators import Data.Function ((&)) import Data.JSONPath @@ -126,7 +125,6 @@ parseGCPAuthInfo authInfo = do Just expiryText -> Just <$> parseExpiryTime expiryText lookupEither key = Map.lookup key authInfo & maybeToRight (GCPAuthMissingInformation $ Text.unpack key) - parseK8sJSONPath = parseOnly (k8sJSONPath <* endOfInput) readJSONPath key defaultPath = maybe (Right defaultPath) parseK8sJSONPath $ Map.lookup key authInfo diff --git a/kubernetes-client/src/Kubernetes/Client/Auth/OIDC.hs b/kubernetes-client/src/Kubernetes/Client/Auth/OIDC.hs index 4c8f23f6..f7874640 100644 --- a/kubernetes-client/src/Kubernetes/Client/Auth/OIDC.hs +++ b/kubernetes-client/src/Kubernetes/Client/Auth/OIDC.hs @@ -60,9 +60,14 @@ instance AuthMethod OIDCAuth where $ setHeader req [("Authorization", "Bearer " <> (Text.encodeUtf8 token))] & L.set rAuthTypesL [] -data OIDCGetTokenException = OIDCOAuthException (OAuth2Error OAuth2TokenRequest.Errors) - | OIDCURIException URIParseError - | OIDCGetTokenException String +data OIDCGetTokenException = +#if MIN_VERSION_hoauth2(2,8,0) + OIDCOAuthException TokenRequestError +#else + OIDCOAuthException (OAuth2Error OAuth2TokenRequest.Errors) +#endif + | OIDCURIException URIParseError + | OIDCGetTokenException String deriving Show instance Exception OIDCGetTokenException diff --git a/kubernetes-client/src/Kubernetes/Data/K8sJSONPath.hs b/kubernetes-client/src/Kubernetes/Data/K8sJSONPath.hs index bfa3166c..2bc74f8b 100644 --- a/kubernetes-client/src/Kubernetes/Data/K8sJSONPath.hs +++ b/kubernetes-client/src/Kubernetes/Data/K8sJSONPath.hs @@ -1,31 +1,60 @@ {-# LANGUAGE OverloadedStrings #-} +{-# LANGUAGE CPP #-} module Kubernetes.Data.K8sJSONPath where +import Control.Applicative ((<|>)) import Data.Aeson import Data.Aeson.Text +import Data.Bifunctor import Data.JSONPath import Data.Monoid ((<>)) import Data.Text as Text - -import Control.Applicative ((<|>)) -import Data.Attoparsec.Text import Data.Text.Lazy (toStrict) +#if MIN_VERSION_jsonpath(0,3,0) +import Data.Void (Void) +import Text.Megaparsec ( Parsec, eof, runParser, some, takeWhile1P ) +import Text.Megaparsec.Char ( char ) +type Parser a = Parsec Void Text a +#else +import Data.Attoparsec.Text ( Parser, char, endOfInput, many1, parseOnly, takeWhile1 ) +#endif + + data K8sPathElement = PlainText Text | JSONPath [JSONPathElement] deriving (Show, Eq) +parseK8sJSONPath :: Text -> Either String [K8sPathElement] +#if MIN_VERSION_jsonpath(0,3,0) +parseK8sJSONPath = first show . runParser (k8sJSONPath <* eof) "nothing" +#else +parseK8sJSONPath = parseOnly (k8sJSONPath <* endOfInput) +#endif + k8sJSONPath :: Parser [K8sPathElement] +#if MIN_VERSION_jsonpath(0,3,0) +k8sJSONPath = some pathElementParser +#else k8sJSONPath = many1 pathElementParser +#endif pathElementParser :: Parser K8sPathElement pathElementParser = jsonpathParser <|> plainTextParser plainTextParser :: Parser K8sPathElement +#if MIN_VERSION_jsonpath(0,3,0) +plainTextParser = PlainText <$> takeWhile1P (Just "non_open_brace") (/= '{') +#else plainTextParser = PlainText <$> takeWhile1 (/= '{') +#endif jsonpathParser :: Parser K8sPathElement +#if MIN_VERSION_jsonpath(0,3,0) +jsonpathParser = JSONPath <$> (char '{' *> jsonPath (char '}') <* char '}') +#else jsonpathParser = JSONPath <$> (char '{' *> jsonPath <* char '}') +#endif runJSONPath :: [K8sPathElement] -> Value -> Either String Text runJSONPath [] _ = pure "" @@ -38,10 +67,15 @@ runPathElement :: K8sPathElement -> Value -> Either String Text runPathElement (PlainText t) _ = pure t runPathElement (JSONPath p) v = encodeResult $ executeJSONPath p v +#if MIN_VERSION_jsonpath(0,3,0) +encodeResult :: [Value] -> Either String Text +encodeResult vals = return $ (intercalate " " $ Prelude.map jsonToText vals) +#else encodeResult :: ExecutionResult Value -> Either String Text encodeResult (ResultValue val) = return $ jsonToText val encodeResult (ResultList vals) = return $ (intercalate " " $ Prelude.map jsonToText vals) encodeResult (ResultError err) = Left err +#endif jsonToText :: Value -> Text jsonToText (String t) = t diff --git a/kubernetes-client/test/Kubernetes/Data/K8sJSONPathSpec.hs b/kubernetes-client/test/Kubernetes/Data/K8sJSONPathSpec.hs index 7585c54d..6246deea 100644 --- a/kubernetes-client/test/Kubernetes/Data/K8sJSONPathSpec.hs +++ b/kubernetes-client/test/Kubernetes/Data/K8sJSONPathSpec.hs @@ -1,14 +1,28 @@ {-# LANGUAGE OverloadedStrings #-} +{-# LANGUAGE CPP #-} + module Kubernetes.Data.K8sJSONPathSpec where import Test.Hspec -import Test.Hspec.Attoparsec import Kubernetes.Data.K8sJSONPath import Data.Text import Data.JSONPath import Data.Aeson +#if MIN_VERSION_jsonpath(0,3,0) +import Data.Void (Void) +import Test.Hspec.Megaparsec +import Text.Megaparsec (runParser) +import Text.Megaparsec.Error (ParseErrorBundle) + +(~>) :: Text -> Parser [K8sPathElement] -> Either (ParseErrorBundle Text Void) [K8sPathElement] +(~>) text parser = runParser parser "nothing" text +#else +import Test.Hspec.Attoparsec +#endif + + spec :: Spec spec = do describe "K8sJSONPath" $ do @@ -30,4 +44,3 @@ spec = do let path = [PlainText "kind is ", JSONPath [KeyChild "kind"]] val = (object ["kind" .= ("Pod" :: Text)]) runJSONPath path val `shouldBe` Right "kind is Pod" - diff --git a/kubernetes/kubernetes-client-core.cabal b/kubernetes/kubernetes-client-core.cabal index 1f636261..bd137cc2 100644 --- a/kubernetes/kubernetes-client-core.cabal +++ b/kubernetes/kubernetes-client-core.cabal @@ -43,7 +43,7 @@ library , containers >=0.5.0.0 && <0.8 , deepseq >= 1.4 && <1.6 , exceptions >= 0.4 - , http-api-data >= 0.3.4 && <0.5 + , http-api-data >= 0.3.4 && <0.6 , http-client >=0.5 && <0.8 , http-client-tls , http-media >= 0.4 && < 0.9 @@ -54,11 +54,11 @@ library , network >=2.6.2 && <3.9 , random >=1.1 , safe-exceptions <0.2 - , text >=0.11 && <1.3 + , text >=0.11 && <3 , time >=1.5 , transformers >=0.4.0.0 , unordered-containers - , vector >=0.10.9 && <0.13 + , vector >=0.10.9 && <0.14 other-modules: Paths_kubernetes_client_core Kubernetes.OpenAPI.ImportMappings diff --git a/stack-8.10.2.yaml.lock b/stack-8.10.2.yaml.lock deleted file mode 100644 index 256f4968..00000000 --- a/stack-8.10.2.yaml.lock +++ /dev/null @@ -1,19 +0,0 @@ -# This file was autogenerated by Stack. -# You should not edit this file by hand. -# For more information, please see the documentation at: -# https://docs.haskellstack.org/en/stable/lock_files - -packages: -- completed: - hackage: oidc-client-0.4.0.0@sha256:f72a496ab27d9a5071be44e750718c539118ac52c2f1535a5fb3dde7f9874a55,3306 - pantry-tree: - size: 1153 - sha256: 68c285c6365360975d50bbb18cb07755d5ef19af8bf0e998d3ea46d35ef4a4e1 - original: - hackage: oidc-client-0.4.0.0 -snapshots: -- completed: - size: 556330 - url: https://raw.githubusercontent.com/commercialhaskell/stackage-snapshots/master/nightly/2020/12/6.yaml - sha256: 53a2f3fe06fcac029ccf4fd54b5bb1745dc52451d9f023ef94721839bf991d8e - original: nightly-2020-12-06 diff --git a/stack-8.8.4.yaml b/stack-8.10.7.yaml similarity index 77% rename from stack-8.8.4.yaml rename to stack-8.10.7.yaml index 8361a980..406d02a7 100644 --- a/stack-8.8.4.yaml +++ b/stack-8.10.7.yaml @@ -1,6 +1,8 @@ -resolver: lts-16.24 +resolver: lts-18.28 + extra-deps: - oidc-client-0.4.0.0 + packages: - kubernetes - kubernetes-client diff --git a/stack-8.8.4.yaml.lock b/stack-8.10.7.yaml.lock similarity index 78% rename from stack-8.8.4.yaml.lock rename to stack-8.10.7.yaml.lock index 3ef896b1..706b73ff 100644 --- a/stack-8.8.4.yaml.lock +++ b/stack-8.10.7.yaml.lock @@ -7,13 +7,13 @@ packages: - completed: hackage: oidc-client-0.4.0.0@sha256:f72a496ab27d9a5071be44e750718c539118ac52c2f1535a5fb3dde7f9874a55,3306 pantry-tree: - size: 1153 sha256: 68c285c6365360975d50bbb18cb07755d5ef19af8bf0e998d3ea46d35ef4a4e1 + size: 1153 original: hackage: oidc-client-0.4.0.0 snapshots: - completed: - size: 532835 - url: https://raw.githubusercontent.com/commercialhaskell/stackage-snapshots/master/lts/16/24.yaml - sha256: cf2b52420b2262fe9cf0f6744929120131abd6675b1c3fb2d8b155a47f80d103 - original: lts-16.24 + sha256: 428ec8d5ce932190d3cbe266b9eb3c175cd81e984babf876b64019e2cbe4ea68 + size: 590100 + url: https://raw.githubusercontent.com/commercialhaskell/stackage-snapshots/master/lts/18/28.yaml + original: lts-18.28 diff --git a/stack-9.0.2-aeson2.yaml b/stack-9.0.2-aeson2.yaml index 134bf3a8..0215b0f2 100644 --- a/stack-9.0.2-aeson2.yaml +++ b/stack-9.0.2-aeson2.yaml @@ -1,9 +1,9 @@ -resolver: lts-19.7 +resolver: lts-19.33 extra-deps: -- oidc-client-0.6.0.0@sha256:2079dc5c9dfb5b3e2fa93098254ca16787c01a0cd3634b1d84afe84c9a6c4825,3368 -- jose-jwt-0.9.4@sha256:6db77f81cfcf81cf7faf8a4dc4b2110c1603dbb94249d49d069a17b4897e9d69,3560 +- oidc-client-0.6.0.0 +- jose-jwt-0.9.5 packages: - kubernetes diff --git a/stack-9.0.2-aeson2.yaml.lock b/stack-9.0.2-aeson2.yaml.lock index d54effc8..830cd226 100644 --- a/stack-9.0.2-aeson2.yaml.lock +++ b/stack-9.0.2-aeson2.yaml.lock @@ -7,20 +7,20 @@ packages: - completed: hackage: oidc-client-0.6.0.0@sha256:2079dc5c9dfb5b3e2fa93098254ca16787c01a0cd3634b1d84afe84c9a6c4825,3368 pantry-tree: - size: 1298 sha256: c8dac64944a1e60d14958067e1992732effe723d60353690720c34b4d126af48 + size: 1298 original: - hackage: oidc-client-0.6.0.0@sha256:2079dc5c9dfb5b3e2fa93098254ca16787c01a0cd3634b1d84afe84c9a6c4825,3368 + hackage: oidc-client-0.6.0.0 - completed: - hackage: jose-jwt-0.9.4@sha256:6db77f81cfcf81cf7faf8a4dc4b2110c1603dbb94249d49d069a17b4897e9d69,3560 + hackage: jose-jwt-0.9.5@sha256:c02db1ef32e582330054d8befa412215afeeb597cb8756dadc75407ba776a159,3557 pantry-tree: + sha256: 778e69fddd33a43f9a2322d4404a27c3f7474295bbdad6f65325fe9c9fee3d86 size: 1231 - sha256: fd3145cd8ab15be77d49522c454e86f17cf0f233ada7a623457926dbf6ea47e4 original: - hackage: jose-jwt-0.9.4@sha256:6db77f81cfcf81cf7faf8a4dc4b2110c1603dbb94249d49d069a17b4897e9d69,3560 + hackage: jose-jwt-0.9.5 snapshots: - completed: - size: 618884 - url: https://raw.githubusercontent.com/commercialhaskell/stackage-snapshots/master/lts/19/7.yaml - sha256: 57d4ce67cc097fea2058446927987bc1f7408890e3a6df0da74e5e318f051c20 - original: lts-19.7 + sha256: 6d1532d40621957a25bad5195bfca7938e8a06d923c91bc52aa0f3c41181f2d4 + size: 619204 + url: https://raw.githubusercontent.com/commercialhaskell/stackage-snapshots/master/lts/19/33.yaml + original: lts-19.33 diff --git a/stack-8.10.2.yaml b/stack-9.2.8.yaml similarity index 51% rename from stack-8.10.2.yaml rename to stack-9.2.8.yaml index 707bf4c2..ae83d7c3 100644 --- a/stack-8.10.2.yaml +++ b/stack-9.2.8.yaml @@ -1,6 +1,8 @@ -resolver: nightly-2020-12-06 +resolver: lts-20.26 + extra-deps: -- oidc-client-0.4.0.0 +- oidc-client-0.7.0.1 + packages: - kubernetes - kubernetes-client diff --git a/stack-9.2.8.yaml.lock b/stack-9.2.8.yaml.lock new file mode 100644 index 00000000..efd3968f --- /dev/null +++ b/stack-9.2.8.yaml.lock @@ -0,0 +1,19 @@ +# This file was autogenerated by Stack. +# You should not edit this file by hand. +# For more information, please see the documentation at: +# https://docs.haskellstack.org/en/stable/lock_files + +packages: +- completed: + hackage: oidc-client-0.7.0.1@sha256:557341f7521e62c09abddf0d06c8e8acce119d3a9a4c4ffac1ab8ca3fc0e5067,3382 + pantry-tree: + sha256: 51cfcd6c170923db24ba297ac9937961f6b26e041ceec8ff09500e61017b433b + size: 1298 + original: + hackage: oidc-client-0.7.0.1 +snapshots: +- completed: + sha256: 5a59b2a405b3aba3c00188453be172b85893cab8ebc352b1ef58b0eae5d248a2 + size: 650475 + url: https://raw.githubusercontent.com/commercialhaskell/stackage-snapshots/master/lts/20/26.yaml + original: lts-20.26 diff --git a/stack.yaml b/stack.yaml index 73be0316..2d8f25a8 100644 --- a/stack.yaml +++ b/stack.yaml @@ -1,9 +1,4 @@ -resolver: lts-20.11 -compiler: ghc-9.2.5 - -extra-deps: -- jsonpath-0.2.1.0 -- oidc-client-0.7.0.1 +resolver: lts-21.0 packages: - kubernetes diff --git a/stack.yaml.lock b/stack.yaml.lock index e09f394f..ad1be6c8 100644 --- a/stack.yaml.lock +++ b/stack.yaml.lock @@ -3,24 +3,10 @@ # For more information, please see the documentation at: # https://docs.haskellstack.org/en/stable/lock_files -packages: -- completed: - hackage: jsonpath-0.2.1.0@sha256:0a16677ca023ce46344d0f4812e076578f7b21fc0bec6a21fda227b7b33e1447,1929 - pantry-tree: - sha256: b477413421c0856e2ac2ba85f7308fe1192d7a9f9ec7c1f4be3de3c0d4cf6de5 - size: 1097 - original: - hackage: jsonpath-0.2.1.0 -- completed: - hackage: oidc-client-0.7.0.1@sha256:557341f7521e62c09abddf0d06c8e8acce119d3a9a4c4ffac1ab8ca3fc0e5067,3382 - pantry-tree: - sha256: 51cfcd6c170923db24ba297ac9937961f6b26e041ceec8ff09500e61017b433b - size: 1298 - original: - hackage: oidc-client-0.7.0.1 +packages: [] snapshots: - completed: - sha256: adbc602422dde10cc330175da7de8609e70afc41449a7e2d6e8b1827aa0e5008 - size: 649342 - url: https://raw.githubusercontent.com/commercialhaskell/stackage-snapshots/master/lts/20/11.yaml - original: lts-20.11 + sha256: 1867d84255dff8c87373f5dd03e5a5cb1c10a99587e26c8793e750c54e83ffdc + size: 639139 + url: https://raw.githubusercontent.com/commercialhaskell/stackage-snapshots/master/lts/21/0.yaml + original: lts-21.0