Check for differences between working directory and hackage.
This tool checks to see if the package in a local working directory has changes which are not yet on hackage. This is useful to check if you have forgetton to upload your changes to hackage.
hackage-whatsnew
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.
Usage
hackage-whatsnew
depends on the following executables:
cabal
tar
GNU diff (or any
diff
which supports the-r
,-u
, and-N
options)
These binaries need to be in the current search path. Assuming everything is installed, to use hackage-whatsnew
you simply need to:
run
cabal update
cd into the same directory as the
.cabal
filerun
hackage-whatsnew
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
.cabal
file and figure out the package nameuse
cabal fetch
to get the latest version of the package from hackageuse
cabal sdist
to generate the.tar.gz
for the local working directoryuntar both
.tar.gz
bundles into temporary directoriesuse
diff -ruN
to check for differencesexit with 0 if no differences found
exit with 1 if differences with found
exit with 2 if other errors encountered
FAQ
Q: Why is it called hackage-whatsnew
instead of hackage-diff
?
A: Because hackage-diff
was already taken. The whatsnew
term is inspired by darcs whatsnew
.
Q: Would it by great if the tool did XYZ?
A: Yes! Please submit a pull request.