@@ -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
4444import Distribution.ModuleName as ModuleName
45+ import Distribution.Types.LibraryVisibility (LibraryVisibility (LibraryVisibilityPublic ))
4546
4647-- hackage-server
4748import 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