saurabhnanda / odd-jobs

Haskell job queue with admin UI and loads of other features.
https://www.haskelltutorials.com/odd-jobs/
BSD 3-Clause "New" or "Revised" License
75 stars 29 forks source link

Fix compiler warnings and hlint suggestions. #91

Closed philderbeast closed 1 year ago

philderbeast commented 1 year ago

I tested with ghc-8.10.7 and ghc-9.2.4 with stack and cabal, fixed the compiler warnings (except the missing type signatures in the tests that I ignored), added hlint testing and followed hlint's suggestions.

saurabhnanda commented 1 year ago

Thank you for the PR @philderbeast

Are you using odd-jobs in production? Are hlint suggestions something that you really care about?

The reason I'm asking is, if that I merge any other PR before yours, your PR will become outdated. And the diff of your PR is very large and will require significant rework.

Any thoughts @jappeace @ivb-supercede ?

philderbeast commented 1 year ago

Are hlint suggestions something that you really care about?

I really like hlint, contributed counts to the hlint --default command, use it in my projects have introduced it to other projects, liquid-fixpoint being the biggest one.

philderbeast commented 1 year ago

Here are the counts found running hlint-3.5 on the master branch:

> hlint --default . > .hlint.yaml

> cat .hlint.yaml
# Warnings currently triggered by your code
- ignore: {name: "Eta reduce"} # 6 hints
- ignore: {name: "Move brackets to avoid $"} # 19 hints
- ignore: {name: "Redundant $"} # 21 hints
- ignore: {name: "Redundant <$>"} # 1 hint
- ignore: {name: "Redundant bracket"} # 121 hints
- ignore: {name: "Redundant fromIntegral"} # 1 hint
- ignore: {name: "Redundant id"} # 1 hint
- ignore: {name: "Redundant if"} # 1 hint
- ignore: {name: "Redundant lambda"} # 1 hint
- ignore: {name: "Replace case with fromMaybe"} # 2 hints
- ignore: {name: "Unused LANGUAGE pragma"} # 4 hints
- ignore: {name: "Use <$>"} # 6 hints
- ignore: {name: "Use <&>"} # 1 hint
- ignore: {name: "Use asks"} # 12 hints
- ignore: {name: "Use const"} # 2 hints
- ignore: {name: "Use fewer imports"} # 2 hints
- ignore: {name: "Use if"} # 1 hint
- ignore: {name: "Use join"} # 1 hint
- ignore: {name: "Use lambda-case"} # 5 hints
- ignore: {name: "Use list literal pattern"} # 2 hints
- ignore: {name: "Use newtype instead of data"} # 1 hint
- ignore: {name: "Use null"} # 3 hints
- ignore: {name: "Use optional"} # 1 hint
- ignore: {name: "Use void"} # 1 hint
ivb-supercede commented 1 year ago

I like fixing lints and warnings, they always bug me when building the project from source. I'm happy to merge this if nobody objects soon (but nobody has objected so far, so I won't wait very long.)

jappeace commented 1 year ago

please merge yes.