packages feed

stackage 0.2.1.4 → 0.3.0.1

raw patch · 5 files changed

+33/−4 lines, 5 files

Files

ChangeLog.md view
@@ -1,3 +1,11 @@+## 0.3.0.1++Pre-fetch all packages from Hackage to catch Hackage downtime early.++## 0.3.0.0++* Return progress URL from uploadBundle+ ## 0.2.1.4  Generate a `core` file in bundles.
Stackage/CompleteBuild.hs view
@@ -157,11 +157,13 @@     token <- readFile "/auth-token"     now <- epochTime     let ghcVer = display $ siGhcVersion $ bpSystemInfo plan-    ident <- flip uploadBundle man $ setArgs ghcVer def+    (ident, mloc) <- flip uploadBundle man $ setArgs ghcVer def         { ubContents = serverBundle now (title ghcVer) slug plan         , ubAuthToken = decodeUtf8 token         }     putStrLn $ "New ident: " ++ unSnapshotIdent ident+    forM_ mloc $ \loc ->+        putStrLn $ "Track progress at: " ++ loc      postBuild `catchAny` print 
Stackage/PerformBuild.hs view
@@ -136,6 +136,22 @@  performBuild' :: PerformBuild -> IO [Text] performBuild' pb@PerformBuild {..} = withBuildDir $ \builddir -> do+    -- First make sure to fetch all of the dependencies... just in case Hackage+    -- has an outage. Don't feel like wasting hours of CPU time.+    pbLog $ encodeUtf8 "Pre-fetching all packages\n"+    let toDownload = flip map (mapToList $ bpPackages pbPlan)+            $ \(name, plan) -> unpack $ concat+                [ display name+                , "-"+                , display $ ppVersion plan+                ]+    withCheckedProcess+        (proc "cabal"+            $ "fetch"+            : "--no-dependencies"+            : toDownload)+        $ \ClosedStream Inherited Inherited -> return ()+     let removeTree' fp = whenM (isDirectory fp) (removeTree fp)     mapM_ removeTree' [pbInstallDest, pbLogDir] 
Stackage/Upload.hs view
@@ -51,7 +51,7 @@ newtype SnapshotIdent = SnapshotIdent { unSnapshotIdent :: Text }     deriving (Show, Eq, Ord, Hashable, IsString) -uploadBundle :: UploadBundle -> Manager -> IO SnapshotIdent+uploadBundle :: UploadBundle -> Manager -> IO (SnapshotIdent, Maybe Text) uploadBundle UploadBundle {..} man = do     req1 <- parseUrl $ unpack $ unStackageServer ubServer ++ "/upload"     req2 <- formDataBody formData req1@@ -67,7 +67,10 @@             }     res <- httpLbs req3 man     case lookup "x-stackage-ident" $ responseHeaders res of-        Just snapid -> return $ SnapshotIdent $ decodeUtf8 snapid+        Just snapid -> return+            ( SnapshotIdent $ decodeUtf8 snapid+            , decodeUtf8 <$> lookup "location" (responseHeaders res)+            )         Nothing -> error $ "An error occurred: " ++ show res   where     params = mapMaybe (\(x, y) -> (x, ) <$> y)
stackage.cabal view
@@ -1,5 +1,5 @@ name:                stackage-version:             0.2.1.4+version:             0.3.0.1 synopsis:            "Stable Hackage," tools for creating a vetted set of packages from Hackage. description:         Please see <http://www.stackage.org/package/stackage> for a description and documentation. homepage:            https://github.com/fpco/stackage