Compare commits

..

1 Commits

Author SHA1 Message Date
bdd15ad6e7 Beef up --overwrite-version, fixes #998 2024-02-18 19:52:01 +08:00
4 changed files with 12 additions and 5 deletions

View File

@@ -92,6 +92,8 @@ import qualified Data.Yaml.Aeson as Y
-- $setup
-- >>> :set -XOverloadedStrings

View File

@@ -57,12 +57,10 @@ import qualified Data.Text.Lazy.Encoding as TLE
-- $setup -- $setup
-- >>> import Data.ByteString.Internal (c2w, w2c) -- >>> import Data.ByteString.Internal (c2w, w2c)
-- >>> import Test.QuickCheck
-- >>> import Data.Word8 -- >>> import Data.Word8
-- >>> import qualified Data.Text as T -- >>> import qualified Data.Text as T
-- >>> import qualified Data.Char as C -- >>> import qualified Data.Char as C
-- >>> import Data.List -- >>> import Data.List
-- >>> instance Arbitrary T.Text where arbitrary = T.pack <$> arbitrary
fS :: IsString a => String -> a fS :: IsString a => String -> a
@@ -299,7 +297,7 @@ escapeVerRex = B.pack . go . B.unpack . verToBS
recover :: (MonadIO m, MonadMask m) => m a -> m a recover :: (MonadIO m, MonadMask m) => m a -> m a
recover action = recover action =
recovering (fullJitterBackoff 25000 <> limitRetries 10) recovering (fullJitterBackoff 25000 <> limitRetries 10)
[\_ -> Handler (\e -> pure $ isPermissionError e) [\_ -> Handler (\e -> pure $ isPermissionError e)
,\_ -> Handler (\e -> pure (ioeGetErrorType e == InappropriateType)) ,\_ -> Handler (\e -> pure (ioeGetErrorType e == InappropriateType))

View File

@@ -108,6 +108,7 @@ import Data.Time (Day(..), diffDays, addDays)
-- >>> import GHCup.Errors -- >>> import GHCup.Errors
-- >>> import GHCup.Types -- >>> import GHCup.Types
-- >>> import GHCup.Types.Optics -- >>> import GHCup.Types.Optics
-- >>> import Data.Versions
-- >>> import Optics -- >>> import Optics
-- >>> import GHCup.Prelude.Version.QQ -- >>> import GHCup.Prelude.Version.QQ
-- >>> import qualified Data.Text.Encoding as E -- >>> import qualified Data.Text.Encoding as E
@@ -120,8 +121,8 @@ import Data.Time (Day(..), diffDays, addDays)
-- >>> let settings = defaultSettings { cache = True, metaCache = 0, noNetwork = True } -- >>> let settings = defaultSettings { cache = True, metaCache = 0, noNetwork = True }
-- >>> let leanAppState = LeanAppState settings dirs' defaultKeyBindings lc -- >>> let leanAppState = LeanAppState settings dirs' defaultKeyBindings lc
-- >>> cwd <- getCurrentDirectory -- >>> cwd <- getCurrentDirectory
-- >>> (Right ref) <- pure $ parseURI strictURIParserOptions $ "file://" <> E.encodeUtf8 (T.pack cwd) <> "/data/metadata/" <> (urlBaseName . view pathL' $ ghcupURL) -- >>> (Right ref) <- pure $ GHCup.Utils.parseURI $ "file://" <> E.encodeUtf8 (T.pack cwd) <> "/data/metadata/" <> (urlBaseName . view pathL' $ ghcupURL)
-- >>> (VRight r) <- (fmap . fmap) _ghcupDownloads $ flip runReaderT leanAppState . runE @'[DigestError, GPGError, JSONError , DownloadFailed , FileDoesNotExistError, ContentLengthError] $ liftE $ getBase ref -- >>> (VRight r) <- (fmap . fmap) _ghcupDownloads $ flip runReaderT leanAppState . runE @'[DigestError, GPGError, JSONError , DownloadFailed , FileDoesNotExistError, ContentLengthError] $ liftE (getBase ref) >>= liftE . decodeMetadata @GHCupInfo
@@ -1282,6 +1283,10 @@ processBranches str' = let lines' = lines (T.unpack str')
------------------ ------------------
-- | Expand a list of version patterns describing a string such as "%v-%h".
--
-- >>> expandVersionPattern (either (const Nothing) Just $ version "3.4.3") "a386748" "a3867484ccc391daad1a42002c3a2ba6a93c5221" "v0.1.20.0-119-ga386748" "issue-998" [CabalVer, S "-", GitHashShort, S "-", GitHashLong, S "-", GitBranchName, S "-", GitDescribe, S "-coco"]
-- Version {_vEpoch = Nothing, _vChunks = Chunks (Numeric 3 :| [Numeric 4,Numeric 3]), _vRel = Just (Release (Alphanum "a386748-a3867484ccc391daad1a42002c3a2ba6a93c5221-issue-998-v0" :| [Numeric 1,Numeric 20,Alphanum "0-119-ga386748-coco"])), _vMeta = Nothing}
expandVersionPattern :: MonadFail m expandVersionPattern :: MonadFail m
=> Maybe Version -- ^ cabal ver => Maybe Version -- ^ cabal ver
-> String -- ^ git hash (short), if any -> String -- ^ git hash (short), if any

View File

@@ -160,6 +160,8 @@ compileHlsCheckList = mapSecond CompileHLS
, (baseCmd <> "--cabal-update", baseOptions{HLS.updateCabal = True}) , (baseCmd <> "--cabal-update", baseOptions{HLS.updateCabal = True})
, (baseCmd <> "-o 2.0.0.0-p1", baseOptions{HLS.overwriteVer = Just [S "2.0.0.0-p1"]}) , (baseCmd <> "-o 2.0.0.0-p1", baseOptions{HLS.overwriteVer = Just [S "2.0.0.0-p1"]})
, (baseCmd <> "--overwrite-version 2.0.0.0-p1", baseOptions{HLS.overwriteVer = Just [S "2.0.0.0-p1"]}) , (baseCmd <> "--overwrite-version 2.0.0.0-p1", baseOptions{HLS.overwriteVer = Just [S "2.0.0.0-p1"]})
, (baseCmd <> "--overwrite-version %v-%h-%H-%b-%g-coco%l", baseOptions{HLS.overwriteVer
= Just [CabalVer, S "-", GitHashShort, S "-", GitHashLong, S "-", GitBranchName, S "-", GitDescribe, S "-coco", S "%", S "l"]})
, (baseCmd <> "--git-describe-version", baseOptions{HLS.overwriteVer = Just [GitDescribe]}) , (baseCmd <> "--git-describe-version", baseOptions{HLS.overwriteVer = Just [GitDescribe]})
#ifdef IS_WINDOWS #ifdef IS_WINDOWS
, (baseCmd <> "-i C:\\\\tmp\\out_dir", baseOptions{HLS.isolateDir = Just "C:\\\\tmp\\out_dir"}) , (baseCmd <> "-i C:\\\\tmp\\out_dir", baseOptions{HLS.isolateDir = Just "C:\\\\tmp\\out_dir"})