Skip to content

Commit dca8934

Browse files
committed
Add -Werror=unused-packages option
Also add -Werror=missing-fields when -Werror=missing-methods is used
1 parent 7479a71 commit dca8934

24 files changed

+83
-52
lines changed

.github/workflows/haskell-ci.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -225,6 +225,10 @@ jobs:
225225
package *
226226
ghc-options: -Werror=missing-methods -Werror=missing-fields
227227
EOF
228+
if [ $((HCNUMVER >= 90400)) -ne 0 ] ; then echo "package haskell-ci" >> cabal.project ; fi
229+
if [ $((HCNUMVER >= 90400)) -ne 0 ] ; then echo " ghc-options: -Werror=unused-packages" >> cabal.project ; fi
230+
if [ $((HCNUMVER >= 90400)) -ne 0 ] ; then echo "package cabal-install-parsers" >> cabal.project ; fi
231+
if [ $((HCNUMVER >= 90400)) -ne 0 ] ; then echo " ghc-options: -Werror=unused-packages" >> cabal.project ; fi
228232
cat >> cabal.project <<EOF
229233
allow-newer: ShellCheck:filepath
230234

cabal-install-parsers/cabal-install-parsers.cabal

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -123,14 +123,11 @@ test-suite cabal-parsers-golden
123123
, bytestring
124124
, cabal-install-parsers
125125
, Cabal-syntax
126-
, containers
127-
, directory
128126
, filepath
129127
, pretty
130128

131129
-- dependencies needing explicit constraints
132130
build-depends:
133-
, ansi-terminal >=1.0 && <1.2
134131
, tasty ^>=1.4 || ^>=1.5
135132
, tasty-golden ^>=2.3.1.1
136133
, tree-diff >=0.2 && <0.4
@@ -146,10 +143,6 @@ benchmark cabal-parsers-bench
146143
, base
147144
, bytestring
148145
, cabal-install-parsers
149-
, Cabal-syntax
150-
, containers
151-
, directory
152-
, filepath
153146

154147
-- dependencies needing explicit constraints
155148
build-depends: criterion ^>=1.6.0.0

fixtures/all-versions.github

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -442,7 +442,9 @@ jobs:
442442
touch cabal.project.local
443443
echo "packages: ${PKGDIR_splitmix}" >> cabal.project
444444
if [ $((GHCJSARITH || ! GHCJSARITH && HCNUMVER >= 80200)) -ne 0 ] ; then echo "package splitmix" >> cabal.project ; fi
445-
if [ $((GHCJSARITH || ! GHCJSARITH && HCNUMVER >= 80200)) -ne 0 ] ; then echo " ghc-options: -Werror=missing-methods" >> cabal.project ; fi
445+
if [ $((GHCJSARITH || ! GHCJSARITH && HCNUMVER >= 80200)) -ne 0 ] ; then echo " ghc-options: -Werror=missing-methods -Werror=missing-fields" >> cabal.project ; fi
446+
if [ $((! GHCJSARITH && HCNUMVER >= 90400)) -ne 0 ] ; then echo "package splitmix" >> cabal.project ; fi
447+
if [ $((! GHCJSARITH && HCNUMVER >= 90400)) -ne 0 ] ; then echo " ghc-options: -Werror=unused-packages" >> cabal.project ; fi
446448
cat >> cabal.project <<EOF
447449
EOF
448450
$HCPKG list --simple-output --names-only | perl -ne 'for (split /\s+/) { print "constraints: any.$_ installed\n" unless /^(splitmix)$/; }' >> cabal.project.local

fixtures/conditionals.github

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -267,9 +267,9 @@ jobs:
267267
echo "packages: ${PKGDIR_servant}" >> cabal.project
268268
echo "packages: ${PKGDIR_servant_client}" >> cabal.project
269269
if [ $((HCNUMVER >= 80200)) -ne 0 ] ; then echo "package servant" >> cabal.project ; fi
270-
if [ $((HCNUMVER >= 80200)) -ne 0 ] ; then echo " ghc-options: -Werror=missing-methods" >> cabal.project ; fi
270+
if [ $((HCNUMVER >= 80200)) -ne 0 ] ; then echo " ghc-options: -Werror=missing-methods -Werror=missing-fields" >> cabal.project ; fi
271271
if [ $((HCNUMVER >= 80200)) -ne 0 ] ; then echo "package servant-client" >> cabal.project ; fi
272-
if [ $((HCNUMVER >= 80200)) -ne 0 ] ; then echo " ghc-options: -Werror=missing-methods" >> cabal.project ; fi
272+
if [ $((HCNUMVER >= 80200)) -ne 0 ] ; then echo " ghc-options: -Werror=missing-methods -Werror=missing-fields" >> cabal.project ; fi
273273
cat >> cabal.project <<EOF
274274
EOF
275275
$HCPKG list --simple-output --names-only | perl -ne 'for (split /\s+/) { print "constraints: any.$_ installed\n" unless /^(servant|servant-client)$/; }' >> cabal.project.local

fixtures/copy-fields-all.github

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -275,13 +275,13 @@ jobs:
275275
echo "packages: ${PKGDIR_servant_docs}" >> cabal.project
276276
echo "packages: ${PKGDIR_servant_server}" >> cabal.project
277277
if [ $((HCNUMVER >= 80200)) -ne 0 ] ; then echo "package servant" >> cabal.project ; fi
278-
if [ $((HCNUMVER >= 80200)) -ne 0 ] ; then echo " ghc-options: -Werror=missing-methods" >> cabal.project ; fi
278+
if [ $((HCNUMVER >= 80200)) -ne 0 ] ; then echo " ghc-options: -Werror=missing-methods -Werror=missing-fields" >> cabal.project ; fi
279279
if [ $((HCNUMVER >= 80200)) -ne 0 ] ; then echo "package servant-client" >> cabal.project ; fi
280-
if [ $((HCNUMVER >= 80200)) -ne 0 ] ; then echo " ghc-options: -Werror=missing-methods" >> cabal.project ; fi
280+
if [ $((HCNUMVER >= 80200)) -ne 0 ] ; then echo " ghc-options: -Werror=missing-methods -Werror=missing-fields" >> cabal.project ; fi
281281
if [ $((HCNUMVER >= 80200)) -ne 0 ] ; then echo "package servant-docs" >> cabal.project ; fi
282-
if [ $((HCNUMVER >= 80200)) -ne 0 ] ; then echo " ghc-options: -Werror=missing-methods" >> cabal.project ; fi
282+
if [ $((HCNUMVER >= 80200)) -ne 0 ] ; then echo " ghc-options: -Werror=missing-methods -Werror=missing-fields" >> cabal.project ; fi
283283
if [ $((HCNUMVER >= 80200)) -ne 0 ] ; then echo "package servant-server" >> cabal.project ; fi
284-
if [ $((HCNUMVER >= 80200)) -ne 0 ] ; then echo " ghc-options: -Werror=missing-methods" >> cabal.project ; fi
284+
if [ $((HCNUMVER >= 80200)) -ne 0 ] ; then echo " ghc-options: -Werror=missing-methods -Werror=missing-fields" >> cabal.project ; fi
285285
cat >> cabal.project <<EOF
286286
constraints: foundation >= 0.14
287287
allow-newer: servant-js:servant

fixtures/copy-fields-none.github

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -275,13 +275,13 @@ jobs:
275275
echo "packages: ${PKGDIR_servant_docs}" >> cabal.project
276276
echo "packages: ${PKGDIR_servant_server}" >> cabal.project
277277
if [ $((HCNUMVER >= 80200)) -ne 0 ] ; then echo "package servant" >> cabal.project ; fi
278-
if [ $((HCNUMVER >= 80200)) -ne 0 ] ; then echo " ghc-options: -Werror=missing-methods" >> cabal.project ; fi
278+
if [ $((HCNUMVER >= 80200)) -ne 0 ] ; then echo " ghc-options: -Werror=missing-methods -Werror=missing-fields" >> cabal.project ; fi
279279
if [ $((HCNUMVER >= 80200)) -ne 0 ] ; then echo "package servant-client" >> cabal.project ; fi
280-
if [ $((HCNUMVER >= 80200)) -ne 0 ] ; then echo " ghc-options: -Werror=missing-methods" >> cabal.project ; fi
280+
if [ $((HCNUMVER >= 80200)) -ne 0 ] ; then echo " ghc-options: -Werror=missing-methods -Werror=missing-fields" >> cabal.project ; fi
281281
if [ $((HCNUMVER >= 80200)) -ne 0 ] ; then echo "package servant-docs" >> cabal.project ; fi
282-
if [ $((HCNUMVER >= 80200)) -ne 0 ] ; then echo " ghc-options: -Werror=missing-methods" >> cabal.project ; fi
282+
if [ $((HCNUMVER >= 80200)) -ne 0 ] ; then echo " ghc-options: -Werror=missing-methods -Werror=missing-fields" >> cabal.project ; fi
283283
if [ $((HCNUMVER >= 80200)) -ne 0 ] ; then echo "package servant-server" >> cabal.project ; fi
284-
if [ $((HCNUMVER >= 80200)) -ne 0 ] ; then echo " ghc-options: -Werror=missing-methods" >> cabal.project ; fi
284+
if [ $((HCNUMVER >= 80200)) -ne 0 ] ; then echo " ghc-options: -Werror=missing-methods -Werror=missing-fields" >> cabal.project ; fi
285285
cat >> cabal.project <<EOF
286286
EOF
287287
$HCPKG list --simple-output --names-only | perl -ne 'for (split /\s+/) { print "constraints: any.$_ installed\n" unless /^(servant|servant-client|servant-docs|servant-server)$/; }' >> cabal.project.local

fixtures/copy-fields-some.github

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -275,13 +275,13 @@ jobs:
275275
echo "packages: ${PKGDIR_servant_docs}" >> cabal.project
276276
echo "packages: ${PKGDIR_servant_server}" >> cabal.project
277277
if [ $((HCNUMVER >= 80200)) -ne 0 ] ; then echo "package servant" >> cabal.project ; fi
278-
if [ $((HCNUMVER >= 80200)) -ne 0 ] ; then echo " ghc-options: -Werror=missing-methods" >> cabal.project ; fi
278+
if [ $((HCNUMVER >= 80200)) -ne 0 ] ; then echo " ghc-options: -Werror=missing-methods -Werror=missing-fields" >> cabal.project ; fi
279279
if [ $((HCNUMVER >= 80200)) -ne 0 ] ; then echo "package servant-client" >> cabal.project ; fi
280-
if [ $((HCNUMVER >= 80200)) -ne 0 ] ; then echo " ghc-options: -Werror=missing-methods" >> cabal.project ; fi
280+
if [ $((HCNUMVER >= 80200)) -ne 0 ] ; then echo " ghc-options: -Werror=missing-methods -Werror=missing-fields" >> cabal.project ; fi
281281
if [ $((HCNUMVER >= 80200)) -ne 0 ] ; then echo "package servant-docs" >> cabal.project ; fi
282-
if [ $((HCNUMVER >= 80200)) -ne 0 ] ; then echo " ghc-options: -Werror=missing-methods" >> cabal.project ; fi
282+
if [ $((HCNUMVER >= 80200)) -ne 0 ] ; then echo " ghc-options: -Werror=missing-methods -Werror=missing-fields" >> cabal.project ; fi
283283
if [ $((HCNUMVER >= 80200)) -ne 0 ] ; then echo "package servant-server" >> cabal.project ; fi
284-
if [ $((HCNUMVER >= 80200)) -ne 0 ] ; then echo " ghc-options: -Werror=missing-methods" >> cabal.project ; fi
284+
if [ $((HCNUMVER >= 80200)) -ne 0 ] ; then echo " ghc-options: -Werror=missing-methods -Werror=missing-fields" >> cabal.project ; fi
285285
cat >> cabal.project <<EOF
286286
constraints: foundation >= 0.14
287287
allow-newer: servant-js:servant

fixtures/doctest-version.github

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -457,7 +457,9 @@ jobs:
457457
touch cabal.project.local
458458
echo "packages: ${PKGDIR_splitmix}" >> cabal.project
459459
if [ $((GHCJSARITH || ! GHCJSARITH && HCNUMVER >= 80200)) -ne 0 ] ; then echo "package splitmix" >> cabal.project ; fi
460-
if [ $((GHCJSARITH || ! GHCJSARITH && HCNUMVER >= 80200)) -ne 0 ] ; then echo " ghc-options: -Werror=missing-methods" >> cabal.project ; fi
460+
if [ $((GHCJSARITH || ! GHCJSARITH && HCNUMVER >= 80200)) -ne 0 ] ; then echo " ghc-options: -Werror=missing-methods -Werror=missing-fields" >> cabal.project ; fi
461+
if [ $((! GHCJSARITH && HCNUMVER >= 90400)) -ne 0 ] ; then echo "package splitmix" >> cabal.project ; fi
462+
if [ $((! GHCJSARITH && HCNUMVER >= 90400)) -ne 0 ] ; then echo " ghc-options: -Werror=unused-packages" >> cabal.project ; fi
461463
cat >> cabal.project <<EOF
462464
EOF
463465
$HCPKG list --simple-output --names-only | perl -ne 'for (split /\s+/) { print "constraints: any.$_ installed\n" unless /^(splitmix)$/; }' >> cabal.project.local

fixtures/doctest.github

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -457,7 +457,9 @@ jobs:
457457
touch cabal.project.local
458458
echo "packages: ${PKGDIR_splitmix}" >> cabal.project
459459
if [ $((GHCJSARITH || ! GHCJSARITH && HCNUMVER >= 80200)) -ne 0 ] ; then echo "package splitmix" >> cabal.project ; fi
460-
if [ $((GHCJSARITH || ! GHCJSARITH && HCNUMVER >= 80200)) -ne 0 ] ; then echo " ghc-options: -Werror=missing-methods" >> cabal.project ; fi
460+
if [ $((GHCJSARITH || ! GHCJSARITH && HCNUMVER >= 80200)) -ne 0 ] ; then echo " ghc-options: -Werror=missing-methods -Werror=missing-fields" >> cabal.project ; fi
461+
if [ $((! GHCJSARITH && HCNUMVER >= 90400)) -ne 0 ] ; then echo "package splitmix" >> cabal.project ; fi
462+
if [ $((! GHCJSARITH && HCNUMVER >= 90400)) -ne 0 ] ; then echo " ghc-options: -Werror=unused-packages" >> cabal.project ; fi
461463
cat >> cabal.project <<EOF
462464
EOF
463465
$HCPKG list --simple-output --names-only | perl -ne 'for (split /\s+/) { print "constraints: any.$_ installed\n" unless /^(splitmix)$/; }' >> cabal.project.local

fixtures/empty-line.github

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -287,13 +287,21 @@ jobs:
287287
echo "packages: ${PKGDIR_servant_docs}" >> cabal.project
288288
echo "packages: ${PKGDIR_servant_server}" >> cabal.project
289289
if [ $((HCNUMVER >= 80200)) -ne 0 ] ; then echo "package servant" >> cabal.project ; fi
290-
if [ $((HCNUMVER >= 80200)) -ne 0 ] ; then echo " ghc-options: -Werror=missing-methods" >> cabal.project ; fi
290+
if [ $((HCNUMVER >= 80200)) -ne 0 ] ; then echo " ghc-options: -Werror=missing-methods -Werror=missing-fields" >> cabal.project ; fi
291291
if [ $((HCNUMVER >= 80200)) -ne 0 ] ; then echo "package servant-client" >> cabal.project ; fi
292-
if [ $((HCNUMVER >= 80200)) -ne 0 ] ; then echo " ghc-options: -Werror=missing-methods" >> cabal.project ; fi
292+
if [ $((HCNUMVER >= 80200)) -ne 0 ] ; then echo " ghc-options: -Werror=missing-methods -Werror=missing-fields" >> cabal.project ; fi
293293
if [ $((HCNUMVER >= 80200)) -ne 0 ] ; then echo "package servant-docs" >> cabal.project ; fi
294-
if [ $((HCNUMVER >= 80200)) -ne 0 ] ; then echo " ghc-options: -Werror=missing-methods" >> cabal.project ; fi
294+
if [ $((HCNUMVER >= 80200)) -ne 0 ] ; then echo " ghc-options: -Werror=missing-methods -Werror=missing-fields" >> cabal.project ; fi
295295
if [ $((HCNUMVER >= 80200)) -ne 0 ] ; then echo "package servant-server" >> cabal.project ; fi
296-
if [ $((HCNUMVER >= 80200)) -ne 0 ] ; then echo " ghc-options: -Werror=missing-methods" >> cabal.project ; fi
296+
if [ $((HCNUMVER >= 80200)) -ne 0 ] ; then echo " ghc-options: -Werror=missing-methods -Werror=missing-fields" >> cabal.project ; fi
297+
if [ $((HCNUMVER > 81007)) -ne 0 ] ; then echo "package servant" >> cabal.project ; fi
298+
if [ $((HCNUMVER > 81007)) -ne 0 ] ; then echo " ghc-options: -Werror=unused-packages" >> cabal.project ; fi
299+
if [ $((HCNUMVER > 81007)) -ne 0 ] ; then echo "package servant-client" >> cabal.project ; fi
300+
if [ $((HCNUMVER > 81007)) -ne 0 ] ; then echo " ghc-options: -Werror=unused-packages" >> cabal.project ; fi
301+
if [ $((HCNUMVER > 81007)) -ne 0 ] ; then echo "package servant-docs" >> cabal.project ; fi
302+
if [ $((HCNUMVER > 81007)) -ne 0 ] ; then echo " ghc-options: -Werror=unused-packages" >> cabal.project ; fi
303+
if [ $((HCNUMVER > 81007)) -ne 0 ] ; then echo "package servant-server" >> cabal.project ; fi
304+
if [ $((HCNUMVER > 81007)) -ne 0 ] ; then echo " ghc-options: -Werror=unused-packages" >> cabal.project ; fi
297305
cat >> cabal.project <<EOF
298306
constraints: foundatiion >= 0.14
299307
allow-newer: servant-js:servant

0 commit comments

Comments
 (0)