Skip to content

Commit f9a0280

Browse files
authored
Merge pull request #1437 from nikita-volkov/master
Fix: Filter out private internal libraries from package pages
2 parents 4b2f17d + d9720b5 commit f9a0280

File tree

1 file changed

+5
-1
lines changed

1 file changed

+5
-1
lines changed

src/Distribution/Server/Packages/Render.hs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ import Distribution.Types.VersionInterval.Legacy
4242
-- I criticized this unfortunate development at length at:
4343
-- https://github.com/haskell/cabal/issues/7916
4444
import Distribution.ModuleName as ModuleName
45+
import Distribution.Types.LibraryVisibility (LibraryVisibility(LibraryVisibilityPublic))
4546

4647
-- hackage-server
4748
import Distribution.Server.Framework.CacheControl (ETag)
@@ -148,14 +149,17 @@ doPackageRender users info = PackageRender
148149
else NotBuildable
149150

150151
renderModules :: Maybe TarIndex -> [(LibraryName, ModSigIndex)]
151-
renderModules docindex = flip fmap (allLibraries flatDesc) $ \lib ->
152+
renderModules docindex = flip fmap (filter isPublicLibrary $ allLibraries flatDesc) $ \lib ->
152153
let mod_ix = mkForest $ exposedModules lib
153154
-- Assumes that there is an HTML per reexport
154155
++ map moduleReexportName (reexportedModules lib)
155156
++ virtualModules (libBuildInfo lib)
156157
sig_ix = mkForest $ signatures lib
157158
mkForest = moduleForest . map (\m -> (m, moduleHasDocs docindex m))
158159
in (libName lib, ModSigIndex { modIndex = mod_ix, sigIndex = sig_ix })
160+
where
161+
-- Only show main library or internal libraries with public visibility
162+
isPublicLibrary lib = libVisibility lib == LibraryVisibilityPublic
159163

160164
moduleHasDocs :: Maybe TarIndex -> ModuleName -> Bool
161165
moduleHasDocs Nothing = const False

0 commit comments

Comments
 (0)