diff --git a/datafiles/templates/Html/revisions.html.st b/datafiles/templates/Html/revisions.html.st index 98c875c29..69cf2b75a 100644 --- a/datafiles/templates/Html/revisions.html.st +++ b/datafiles/templates/Html/revisions.html.st @@ -25,7 +25,7 @@ stored separately. $revisions:{revision| - -r$revision.number$ ($pkgid$-r$revision.number$) + -r$revision.number$ $revision.htmltime$ $revision.user$ $revision.sha256$ diff --git a/src/Distribution/Server/Features/Core.hs b/src/Distribution/Server/Features/Core.hs index 903ff9c8d..0e9a7a941 100644 --- a/src/Distribution/Server/Features/Core.hs +++ b/src/Distribution/Server/Features/Core.hs @@ -226,7 +226,6 @@ data CoreResource = CoreResource { corePackageTarball :: Resource, -- | A Cabal file metatada revision. coreCabalFileRev :: Resource, - coreCabalFileRevName :: Resource, -- Rendering resources. -- | URI for `corePackagesPage`, given a format (blank for none). @@ -405,7 +404,6 @@ coreFeature ServerEnv{serverBlobStore = store} UserFeature{..} , coreCabalFile , coreCabalFileRevs , coreCabalFileRev - , coreCabalFileRevName , coreUserDeauth , coreAdminDeauth , corePackUserDeauth @@ -459,11 +457,6 @@ coreFeature ServerEnv{serverBlobStore = store} UserFeature{..} resourceDesc = [(GET, "Get package .cabal file revision")] , resourceGet = [("cabal", serveCabalFileRevision)] } - coreCabalFileRevName = (resourceAt "/package/:package/revision/:tarball-:revision.:format") { - resourceDesc = [(GET, "Get package .cabal file revision with name")] - , resourceGet = [("cabal", serveCabalFileRevisionName)] - } - coreUserDeauth = (resourceAt "/packages/deauth") { resourceDesc = [(GET, "Deauth Package user")] @@ -761,21 +754,6 @@ coreFeature ServerEnv{serverBlobStore = store} UserFeature{..} Nothing -> errNotFound "Package revision not found" [MText "Cannot parse revision, or revision out of range."] - serveCabalFileRevisionName :: DynamicPath -> ServerPartE Response - serveCabalFileRevisionName dpath = do - pkgid1 <- packageTarballInPath dpath - pkgid2 <- packageInPath dpath - guard (pkgVersion pkgid2 == pkgVersion pkgid2) - pkginfo <- packageInPath dpath >>= lookupPackageId - let mrev = lookup "revision" dpath >>= fromReqURI - revisions = pkgMetadataRevisions pkginfo - case mrev >>= \rev -> revisions Vec.!? rev of - Just (fileRev, (utime, _uid)) -> return $ toResponse cabalfile - where - cabalfile = Resource.CabalFile (cabalFileByteString fileRev) utime - Nothing -> errNotFound "Package revision not found" - [MText "Cannot parse revision, or revision out of range."] - deauth :: DynamicPath -> ServerPartE Response deauth _ = do diff --git a/tests/HighLevelTest.hs b/tests/HighLevelTest.hs index e5e1a5abc..195558e43 100644 --- a/tests/HighLevelTest.hs +++ b/tests/HighLevelTest.hs @@ -83,6 +83,7 @@ doit root unless (db1 == db2) $ die "Databases don't match" info "Checking server still works, and data is intact" withServerRunning root runPackageTests + withServerRunning root runRevisionTests runUserTests :: IO () @@ -191,6 +192,23 @@ runPackageUploadTests = do uploadTimeISO = "2010-10-18T20:54:28Z" uploadTimeISO2 = "2020-10-18T20:54:28Z" +runRevisionTests :: IO () +runRevisionTests = do + do info "Revising testpackage" + post (Auth "HackageTestUser1" "testpass1") "/package/testpackage-1.0.0.0/testpackage.cabal/edit" + [ ("cabalfile", revisedCabalFileContent) + , ("publish", "Publish new revision") + ] + do info "Checking revision exists" + xs <- getUrl NoAuth "/package/testpackage-1.0.0.0/revision/1.cabal" + unless (xs == revisedCabalFileContent) $ + die "Bad revised cabal file content" + where + (_, _, _, testpackageCabalFileContent, _, _) = testpackage + revisedCabalFileContent = + "x-revision: 1\ndescription: a description added by revision\n" + ++ testpackageCabalFileContent + runPackageTests :: IO () runPackageTests = do do info "Getting package list"