Do you often modify a package, check that it builds in travis, and then FORGET TO UPLOAD IT!
Then this tool is for you! Its raison d’etre is to see if you have changes in your local directory which are not on hackage.
hackage-whatsnew depends on the following executables:
GNU diff (or any
diffwhich supports the
These binaries need to be in the current search path. Assuming
everything is installed, to use
hackage-whatsnew you simply need to:
cd into the same directory as the
If no changes are detected, then nothing is printed and the exit code is 0.
If changes are detected a recursive diff is displayed and the exit code is 1.
How It Works
This tool works as follows:
read the local
.cabalfile and figure out the package name
cabal fetchto get the latest version of the package from hackage
cabal sdistto generate the
.tar.gzfor the local working directory
.tar.gzbundles into temporary directories
diff -ruNto check for differences
exit with 0 if no differences found
exit with 1 if differences with found
exit with 2 if other errors encountered
Q: Why is it called
hackage-whatsnew instead of
hackage-diff was already taken. The
whatsnew term is inspired by
Q: Would it by great if the tool did XYZ?
A: Yes! Please submit a pull request.