diff --git a/Cabal/src/Distribution/PackageDescription/Check.hs b/Cabal/src/Distribution/PackageDescription/Check.hs index f1c528752da3f25e70574e5679cc143422264a1c..5d11072b354578744e30d88453285a786b1465ad 100644 --- a/Cabal/src/Distribution/PackageDescription/Check.hs +++ b/Cabal/src/Distribution/PackageDescription/Check.hs @@ -2545,12 +2545,13 @@ checkGlobFiles verbosity pkg root = do ) -- Predicate for desirable documentation file on Hackage server - isDesirableExtraDocFile :: [FilePath] -> FilePath -> Bool - isDesirableExtraDocFile paths path = map toLower basename `elem` paths + isDesirableExtraDocFile :: ([FilePath], [FilePath]) -> FilePath -> Bool + isDesirableExtraDocFile (basenames, extensions) path = + basename `elem` basenames && ext `elem` extensions where - (basename, _ext) = splitExtension path + (basename, ext) = splitExtension (map toLower path) - -- Changelog patterns + -- Changelog patterns (basenames & extensions) -- Source: hackage-server/src/Distribution/Server/Packages/ChangeLog.hs desirableChangeLog = [ "news" @@ -2558,6 +2559,7 @@ checkGlobFiles verbosity pkg root = do , "change_log" , "changes" ] + desirableChangeLogExtensions = ["", ".txt", ".md", ".markdown", ".rst"] -- [TODO] Check readme. Observations: -- • Readme is not necessary if package description is good. -- • Some readmes exists only for repository browsing. @@ -2567,7 +2569,7 @@ checkGlobFiles verbosity pkg root = do -- -- Readme patterns -- -- Source: hackage-server/src/Distribution/Server/Packages/Readme.hs -- desirableReadme = ["readme"] - desirableDocFiles = desirableChangeLog + desirableDocFiles = (desirableChangeLog, desirableChangeLogExtensions) -- If there's a missing directory in play, since our globs don't -- (currently) support disjunction, that will always mean there are no diff --git a/cabal-testsuite/PackageTests/Check/PackageFiles/MissingExpectedDocFiles/ChangeLog/NotExisting/cabal.test.hs b/cabal-testsuite/PackageTests/Check/PackageFiles/MissingExpectedDocFiles/ChangeLog/NotExisting/cabal.test.hs index 28a6cd72ac0a58976a1fd1909fdc822b90ce4fb1..4cb629752f45f062f92cc41f3ff66624fae8db86 100644 --- a/cabal-testsuite/PackageTests/Check/PackageFiles/MissingExpectedDocFiles/ChangeLog/NotExisting/cabal.test.hs +++ b/cabal-testsuite/PackageTests/Check/PackageFiles/MissingExpectedDocFiles/ChangeLog/NotExisting/cabal.test.hs @@ -1,7 +1,5 @@ import Test.Cabal.Prelude -import System.Directory (createDirectoryIfMissing) - -- Omitting ChangeLog.md but not README in extra-doc-files main = cabalTest $ do cabal "check" [] diff --git a/cabal-testsuite/PackageTests/Check/PackageFiles/MissingExpectedDocFiles/ChangeLog/NotIncluded/.gitignore b/cabal-testsuite/PackageTests/Check/PackageFiles/MissingExpectedDocFiles/ChangeLog/NotIncluded/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..3e3396952670d9cd9115eb2e06bac54dc24601b1 --- /dev/null +++ b/cabal-testsuite/PackageTests/Check/PackageFiles/MissingExpectedDocFiles/ChangeLog/NotIncluded/.gitignore @@ -0,0 +1,2 @@ +# Needed for test, to ensure we test the file extension as well. +!ChangeLog.md~ diff --git a/cabal-testsuite/PackageTests/Check/PackageFiles/MissingExpectedDocFiles/ChangeLog/NotIncluded/V3.0/ChangeLog.md b/cabal-testsuite/PackageTests/Check/PackageFiles/MissingExpectedDocFiles/ChangeLog/NotIncluded/V1.12/ChangeLog.md~ similarity index 100% rename from cabal-testsuite/PackageTests/Check/PackageFiles/MissingExpectedDocFiles/ChangeLog/NotIncluded/V3.0/ChangeLog.md rename to cabal-testsuite/PackageTests/Check/PackageFiles/MissingExpectedDocFiles/ChangeLog/NotIncluded/V1.12/ChangeLog.md~ diff --git a/cabal-testsuite/PackageTests/Check/PackageFiles/MissingExpectedDocFiles/ChangeLog/NotIncluded/V1.12/cabal.test.hs b/cabal-testsuite/PackageTests/Check/PackageFiles/MissingExpectedDocFiles/ChangeLog/NotIncluded/V1.12/cabal.test.hs index 28a6cd72ac0a58976a1fd1909fdc822b90ce4fb1..4cb629752f45f062f92cc41f3ff66624fae8db86 100644 --- a/cabal-testsuite/PackageTests/Check/PackageFiles/MissingExpectedDocFiles/ChangeLog/NotIncluded/V1.12/cabal.test.hs +++ b/cabal-testsuite/PackageTests/Check/PackageFiles/MissingExpectedDocFiles/ChangeLog/NotIncluded/V1.12/cabal.test.hs @@ -1,7 +1,5 @@ import Test.Cabal.Prelude -import System.Directory (createDirectoryIfMissing) - -- Omitting ChangeLog.md but not README in extra-doc-files main = cabalTest $ do cabal "check" [] diff --git a/cabal-testsuite/PackageTests/Check/PackageFiles/MissingExpectedDocFiles/ChangeLog/NotIncluded/V3.0/CHANGELOG.TXT b/cabal-testsuite/PackageTests/Check/PackageFiles/MissingExpectedDocFiles/ChangeLog/NotIncluded/V3.0/CHANGELOG.TXT new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/cabal-testsuite/PackageTests/Check/PackageFiles/MissingExpectedDocFiles/ChangeLog/NotIncluded/V3.0/cabal.out b/cabal-testsuite/PackageTests/Check/PackageFiles/MissingExpectedDocFiles/ChangeLog/NotIncluded/V3.0/cabal.out index f97aa4a73f75a855386f9a68d9da4831c28da2dd..d2df818ef58ce30d4a8b686d9e8e7145af47aacd 100644 --- a/cabal-testsuite/PackageTests/Check/PackageFiles/MissingExpectedDocFiles/ChangeLog/NotIncluded/V3.0/cabal.out +++ b/cabal-testsuite/PackageTests/Check/PackageFiles/MissingExpectedDocFiles/ChangeLog/NotIncluded/V3.0/cabal.out @@ -1,3 +1,3 @@ # cabal check Warning: These warnings may cause trouble when distributing the package: -Warning: Please consider including the file './ChangeLog.md' in the 'extra-doc-files' section of the .cabal file if it contains useful information for users of the package. +Warning: Please consider including the file './CHANGELOG.TXT' in the 'extra-doc-files' section of the .cabal file if it contains useful information for users of the package. diff --git a/cabal-testsuite/PackageTests/Check/PackageFiles/MissingExpectedDocFiles/ChangeLog/NotIncluded/V3.0/cabal.test.hs b/cabal-testsuite/PackageTests/Check/PackageFiles/MissingExpectedDocFiles/ChangeLog/NotIncluded/V3.0/cabal.test.hs index 28a6cd72ac0a58976a1fd1909fdc822b90ce4fb1..4cb629752f45f062f92cc41f3ff66624fae8db86 100644 --- a/cabal-testsuite/PackageTests/Check/PackageFiles/MissingExpectedDocFiles/ChangeLog/NotIncluded/V3.0/cabal.test.hs +++ b/cabal-testsuite/PackageTests/Check/PackageFiles/MissingExpectedDocFiles/ChangeLog/NotIncluded/V3.0/cabal.test.hs @@ -1,7 +1,5 @@ import Test.Cabal.Prelude -import System.Directory (createDirectoryIfMissing) - -- Omitting ChangeLog.md but not README in extra-doc-files main = cabalTest $ do cabal "check" [] diff --git a/cabal-testsuite/PackageTests/Check/PackageFiles/MissingExpectedDocFiles/ChangeLog/WrongField/V1.12/cabal.test.hs b/cabal-testsuite/PackageTests/Check/PackageFiles/MissingExpectedDocFiles/ChangeLog/WrongField/V1.12/cabal.test.hs index 5bb91450c8736aa60b791397371e7166ceb49ae5..b491c58e1a627703abd2ee0c264b6f301c6076f0 100644 --- a/cabal-testsuite/PackageTests/Check/PackageFiles/MissingExpectedDocFiles/ChangeLog/WrongField/V1.12/cabal.test.hs +++ b/cabal-testsuite/PackageTests/Check/PackageFiles/MissingExpectedDocFiles/ChangeLog/WrongField/V1.12/cabal.test.hs @@ -1,7 +1,5 @@ import Test.Cabal.Prelude -import System.Directory (createDirectoryIfMissing) - -- Included ChangeLog.md but not in extra-doc-files main = cabalTest $ do cabal "check" [] diff --git a/cabal-testsuite/PackageTests/Check/PackageFiles/MissingExpectedDocFiles/ChangeLog/WrongField/V3.0/cabal.test.hs b/cabal-testsuite/PackageTests/Check/PackageFiles/MissingExpectedDocFiles/ChangeLog/WrongField/V3.0/cabal.test.hs index 5bb91450c8736aa60b791397371e7166ceb49ae5..b491c58e1a627703abd2ee0c264b6f301c6076f0 100644 --- a/cabal-testsuite/PackageTests/Check/PackageFiles/MissingExpectedDocFiles/ChangeLog/WrongField/V3.0/cabal.test.hs +++ b/cabal-testsuite/PackageTests/Check/PackageFiles/MissingExpectedDocFiles/ChangeLog/WrongField/V3.0/cabal.test.hs @@ -1,7 +1,5 @@ import Test.Cabal.Prelude -import System.Directory (createDirectoryIfMissing) - -- Included ChangeLog.md but not in extra-doc-files main = cabalTest $ do cabal "check" []