weeder 0.1.4 → 0.1.5
raw patch · 4 files changed
+25/−4 lines, 4 files
Files
- CHANGES.txt +2/−0
- README.md +19/−1
- src/Warning.hs +3/−2
- weeder.cabal +1/−1
CHANGES.txt view
@@ -1,5 +1,7 @@ Changelog for Weeder +0.1.5+ If --yaml and no hints give no output 0.1.4 #9, allow --dist-dir to set the stack dist-dir Deal with operators including | in them
README.md view
@@ -6,7 +6,7 @@ * [HLint](https://github.com/ndmitchell/hlint#readme), looking for "Redundant extension" hints, which finds unused extensions. * The `weeder` tool, which detects functions that are exported internally but not available from outside this package. It also detects redundancies and missing information in your `.cabal` file. -## Running Weeder+## Running Weeder locally Weeder piggy-backs off files generated by [`stack`](https://www.haskellstack.org), so first obtain stack, then: @@ -42,3 +42,21 @@ ``` This configuration declares that I am not interested in the message about modules being reused between components (that's the way `ghcid` works, and I am aware of it). It also says that I am not concerned about `withWaiterPoll` being a weed - it's a simplified method of file change detection I use for debugging, so even though it's dead now, I sometimes do switch to it.++## Running with Continuous Integration++Before running Weeder on your continuous integration (CI) server, you should first ensure there are no existing weeds. One way to achieve that is to ignore existing hints by running `weeder . --yaml > .weeder.yaml` and checking in the resulting `.weeder.yaml`.++On the CI you should then run `weeder .` (or `weeder . --build` to compile as well). To avoid the cost of compilation you may wish to fetch the [latest Weeder binary release](https://github.com/ndmitchell/weeder/releases/latest). For certain CI environments there are helper scripts to do that.++**Travis:** Execute the following command:++ curl -sL https://raw.github.com/ndmitchell/weeder/master/misc/travis.sh | sh -s .++The arguments after `-s` are passed to `weeder`, so modify the final `.` if you want other arguments.++**Appveyor:** Add the following statement to `.appveyor.yml`:++ - ps: Invoke-Command ([Scriptblock]::Create((Invoke-WebRequest 'https://raw.githubusercontent.com/ndmitchell/weeder/master/misc/appveyor.ps1').Content)) -ArgumentList @('.')++The arguments inside `@()` are passed to `weeder`, so add new arguments surrounded by `'`, space separated - e.g. `@('.' '--build')`.
src/Warning.hs view
@@ -107,7 +107,7 @@ showWarningsValue = valToValue . f warningLabels . map (dropWhileEnd isNothing . warningPath) where f (name:names) xs- | all (\x -> length x <= 1) xs = [End name $ sort [x | [Just x] <- xs]]+ | all (\x -> length x <= 1) xs = [End name $ sort [x | [Just x] <- xs] | xs /= []] | otherwise = concat [ case a of Nothing -> f names b@@ -118,7 +118,8 @@ showWarningsJson = LBS.unpack . JSON.encode . showWarningsValue showWarningsYaml :: [Warning] -> String-showWarningsYaml = BS.unpack . Yaml.encode . showWarningsValue+showWarningsYaml [] = "" -- no need to write anything in the file+showWarningsYaml xs = BS.unpack $ Yaml.encode $ showWarningsValue xs readWarningsFile :: FilePath -> IO [Warning]
weeder.cabal view
@@ -1,7 +1,7 @@ cabal-version: >= 1.18 build-type: Simple name: weeder-version: 0.1.4+version: 0.1.5 license: BSD3 license-file: LICENSE category: Development