mirror of
https://github.com/commercialhaskell/stackage-server.git
synced 2026-01-11 19:58:28 +01:00
Revert to previous pinned version of pantry
The new pantry version in lts-22.6 was not compatible with the database and/or config on the stackage server.
This commit is contained in:
parent
33e5cb2589
commit
5cb5668295
@ -2,6 +2,7 @@
|
||||
{-# LANGUAGE NoImplicitPrelude #-}
|
||||
{-# LANGUAGE RecordWildCards #-}
|
||||
{-# LANGUAGE TypeFamilies #-}
|
||||
{-# LANGUAGE TypeOperators #-}
|
||||
module Data.WebsiteContent
|
||||
( WebsiteContent (..)
|
||||
, StackRelease (..)
|
||||
|
||||
@ -42,9 +42,9 @@ import Network.HTTP.Types (status200, status404)
|
||||
import Pantry (CabalFileInfo(..), DidUpdateOccur(..),
|
||||
HpackExecutable(HpackBundled), PackageIdentifierRevision(..),
|
||||
defaultCasaMaxPerRequest, defaultCasaRepoPrefix,
|
||||
defaultPackageIndexConfig,
|
||||
defaultSnapshotLocation, withPantryConfig, PantryConfig)
|
||||
import Pantry.Internal.Stackage (HackageTarballResult(..), forceUpdateHackageIndex,
|
||||
defaultHackageSecurityConfig, defaultSnapshotLocation)
|
||||
import Pantry.Internal.Stackage (HackageTarballResult(..), PantryConfig(..),
|
||||
Storage(..), forceUpdateHackageIndex,
|
||||
getHackageTarball, packageTreeKey)
|
||||
import Path (parseAbsDir, toFilePath)
|
||||
import RIO
|
||||
@ -57,6 +57,7 @@ import RIO.Process (mkDefaultProcessContext)
|
||||
import qualified RIO.Set as Set
|
||||
import qualified RIO.Text as T
|
||||
import RIO.Time
|
||||
import Settings
|
||||
import Stackage.Database.Github
|
||||
import Stackage.Database.PackageInfo
|
||||
import Stackage.Database.Query
|
||||
@ -88,6 +89,11 @@ hoogleUrl n haddockBucketUrl = T.concat
|
||||
hackageDeprecatedUrl :: Request
|
||||
hackageDeprecatedUrl = "https://hackage.haskell.org/packages/deprecated.json"
|
||||
|
||||
withStorage :: (Storage -> IO a) -> IO a
|
||||
withStorage inner = do
|
||||
as <- getAppSettings
|
||||
withStackageDatabase False (appDatabase as) (\db -> inner (Storage (runDatabase db) id))
|
||||
|
||||
getStackageSnapshotsDir :: RIO StackageCron FilePath
|
||||
getStackageSnapshotsDir = do
|
||||
cron <- ask
|
||||
@ -151,52 +157,58 @@ stackageServerCron StackageCronOptions {..} = do
|
||||
catchIO (bindPortTCP 17834 "127.0.0.1") $
|
||||
const $ throwString "Stackage Cron loader process already running, exiting."
|
||||
connectionCount <- getNumCapabilities
|
||||
lo <- logOptionsHandle stdout True
|
||||
stackageRootDir <- getAppUserDataDirectory "stackage"
|
||||
pantryRootDir <- parseAbsDir (stackageRootDir </> "pantry")
|
||||
createDirectoryIfMissing True (toFilePath pantryRootDir)
|
||||
gpdCache <- newIORef IntMap.empty
|
||||
defaultProcessContext <- mkDefaultProcessContext
|
||||
aws <- do
|
||||
aws' <- newEnv discover
|
||||
endpoint <- lookup "AWS_S3_ENDPOINT" <$> getEnvironment
|
||||
pure $ case endpoint of
|
||||
Nothing -> aws'
|
||||
Just ep -> configureService (setEndpoint True (BS8.pack ep) 443 Amazonka.S3.defaultService) aws'
|
||||
withLogFunc (setLogMinLevel scoLogLevel lo) $ \logFunc -> do
|
||||
let cronWithPantryConfig :: HasLogFunc env => (PantryConfig -> RIO env a) -> RIO env a
|
||||
cronWithPantryConfig =
|
||||
withPantryConfig
|
||||
pantryRootDir
|
||||
defaultPackageIndexConfig
|
||||
HpackBundled
|
||||
connectionCount
|
||||
defaultCasaRepoPrefix
|
||||
defaultCasaMaxPerRequest
|
||||
defaultSnapshotLocation
|
||||
|
||||
currentHoogleVersionId <- runRIO logFunc $ do
|
||||
cronWithPantryConfig $ \pantryConfig -> do
|
||||
withStorage $ \storage -> do
|
||||
lo <- logOptionsHandle stdout True
|
||||
stackageRootDir <- getAppUserDataDirectory "stackage"
|
||||
pantryRootDir <- parseAbsDir (stackageRootDir </> "pantry")
|
||||
createDirectoryIfMissing True (toFilePath pantryRootDir)
|
||||
updateRef <- newMVar True
|
||||
cabalImmutable <- newIORef Map.empty
|
||||
cabalMutable <- newIORef Map.empty
|
||||
gpdCache <- newIORef IntMap.empty
|
||||
defaultProcessContext <- mkDefaultProcessContext
|
||||
aws <- do
|
||||
aws' <- newEnv discover
|
||||
endpoint <- lookup "AWS_S3_ENDPOINT" <$> getEnvironment
|
||||
pure $ case endpoint of
|
||||
Nothing -> aws'
|
||||
Just ep -> configureService (setEndpoint True (BS8.pack ep) 443 Amazonka.S3.defaultService) aws'
|
||||
withLogFunc (setLogMinLevel scoLogLevel lo) $ \logFunc -> do
|
||||
let pantryConfig =
|
||||
PantryConfig
|
||||
{ pcHackageSecurity = defaultHackageSecurityConfig
|
||||
, pcHpackExecutable = HpackBundled
|
||||
, pcRootDir = pantryRootDir
|
||||
, pcStorage = storage
|
||||
, pcUpdateRef = updateRef
|
||||
, pcParsedCabalFilesRawImmutable = cabalImmutable
|
||||
, pcParsedCabalFilesMutable = cabalMutable
|
||||
, pcConnectionCount = connectionCount
|
||||
, pcCasaRepoPrefix = defaultCasaRepoPrefix
|
||||
, pcCasaMaxPerRequest = defaultCasaMaxPerRequest
|
||||
, pcSnapshotLocation = defaultSnapshotLocation
|
||||
}
|
||||
currentHoogleVersionId <- runRIO logFunc $ do
|
||||
runStackageMigrations' pantryConfig
|
||||
getCurrentHoogleVersionIdWithPantryConfig pantryConfig
|
||||
let stackage pantryConfig =
|
||||
StackageCron
|
||||
{ scPantryConfig = pantryConfig
|
||||
, scStackageRoot = stackageRootDir
|
||||
, scProcessContext = defaultProcessContext
|
||||
, scLogFunc = logFunc
|
||||
, scForceFullUpdate = scoForceUpdate
|
||||
, scCachedGPD = gpdCache
|
||||
, scEnvAWS = aws
|
||||
, scDownloadBucketName = scoDownloadBucketName
|
||||
, scDownloadBucketUrl = scoDownloadBucketUrl
|
||||
, scUploadBucketName = scoUploadBucketName
|
||||
, scSnapshotsRepo = scoSnapshotsRepo
|
||||
, scReportProgress = scoReportProgress
|
||||
, scCacheCabalFiles = scoCacheCabalFiles
|
||||
, scHoogleVersionId = currentHoogleVersionId
|
||||
}
|
||||
runRIO logFunc $ cronWithPantryConfig $ \pantryConfig -> runRIO (stackage pantryConfig) (runStackageUpdate scoDoNotUpload)
|
||||
let stackage =
|
||||
StackageCron
|
||||
{ scPantryConfig = pantryConfig
|
||||
, scStackageRoot = stackageRootDir
|
||||
, scProcessContext = defaultProcessContext
|
||||
, scLogFunc = logFunc
|
||||
, scForceFullUpdate = scoForceUpdate
|
||||
, scCachedGPD = gpdCache
|
||||
, scEnvAWS = aws
|
||||
, scDownloadBucketName = scoDownloadBucketName
|
||||
, scDownloadBucketUrl = scoDownloadBucketUrl
|
||||
, scUploadBucketName = scoUploadBucketName
|
||||
, scSnapshotsRepo = scoSnapshotsRepo
|
||||
, scReportProgress = scoReportProgress
|
||||
, scCacheCabalFiles = scoCacheCabalFiles
|
||||
, scHoogleVersionId = currentHoogleVersionId
|
||||
}
|
||||
runRIO stackage (runStackageUpdate scoDoNotUpload)
|
||||
|
||||
|
||||
runStackageUpdate :: Bool -> RIO StackageCron ()
|
||||
|
||||
@ -2,6 +2,10 @@ resolver: lts-22.6
|
||||
extra-deps:
|
||||
- hoogle-5.0.18.4@sha256:1372458e97dff541fcda099236af7936bf93ee6b8c5d15695ee6d9426dff5eed,3171
|
||||
- safe-0.3.20@sha256:7813ad56161f57d5162a924de5597d454162a2faed06be6e268b37bb5c19d48d,2312
|
||||
- Cabal-3.8.1.0@sha256:77121d8e1aff14a0fd95684b751599db78a7dd26d55862d9fcef27c88b193e9d,12609
|
||||
- Cabal-syntax-3.8.1.0@sha256:ed2d937ba6c6a20b75850349eedd41374885fc42369ef152d69e2ba70f44f593,7620
|
||||
- git: https://github.com/commercialhaskell/pantry.git
|
||||
commit: 5df643cc1deb561d9c52a9cb6f593aba2bc4c08e
|
||||
|
||||
nix:
|
||||
packages:
|
||||
|
||||
Loading…
Reference in New Issue
Block a user