diff --git a/CHANGELOG.md b/CHANGELOG.md
new file mode 100644
--- /dev/null
+++ b/CHANGELOG.md
@@ -0,0 +1,34 @@
+# hackager change log
+
+## 1.3.0.1 -- 20th November, 2015
+
+* Fix reported version number.
+
+## 1.3.0.0 -- 17th November, 2015
+
+* Add ability to select packages to compile using a regular expression.
+* Change file naming convention for output files to be more informative.
+* Improve documentation.
+
+## 1.2.0.1 -- 19th May, 2015
+
+* Fix compilation on GHC < 7.10.
+
+## 1.2.0.0 -- 19th May, 2015
+
+* Fix package compilation when `-j` used with Cabal.
+* Add support for setting cabal flags when compiling packages.
+* General code cleaning.
+* Fix compilation on GHC 7.10.
+
+## 1.0.1 -- April 23rd, 2012
+
+* Fix cabal description.
+
+## 1.0.0 -- April 23rd, 2012
+
+* Support parallel building.
+* Fix code to work with latest cabal and GHC.
+* Add better option parsing and user interface.
+* Pull hackager from GHC into own repo.
+
diff --git a/hackager.cabal b/hackager.cabal
--- a/hackager.cabal
+++ b/hackager.cabal
@@ -1,5 +1,5 @@
 Name:               hackager
-Version:            1.3.0.0
+Version:            1.3.0.1
 Synopsis:           Hackage testing tool
 Description:
     Hackager is a program for compiling the entirety of Hackage as a way of
@@ -14,7 +14,7 @@
 Stability:          Stable
 
 Build-Type:         Simple
-Extra-Source-Files: README.md, TODO.md, HACKING.md
+Extra-Source-Files: README.md, TODO.md, HACKING.md, CHANGELOG.md
 Cabal-Version:      >= 1.6
 
 Source-Repository head
@@ -32,6 +32,7 @@
                    RecordOptions
                    Report
                    Utils
+                   Version
     HS-Source-Dirs: src
     Ghc-Options: -threaded -Wall
     Build-Depends: base        >= 2 && < 5,
diff --git a/src/Hackager.hs b/src/Hackager.hs
--- a/src/Hackager.hs
+++ b/src/Hackager.hs
@@ -6,6 +6,7 @@
 
 import Record
 import Report
+import Version
 
 -- | Hackage Test (IO)
 main :: IO ()
@@ -15,16 +16,13 @@
         ("record" : args') -> record args'
         ("report" : args') -> report args'
         ("help"   : args') -> help args'
-        ["--version"] -> version
+        ["version"]   -> putStrLn version
+        ["--version"] -> putStrLn version
         ["--help"   ] -> usageInfo ExitSuccess
         [           ] -> usageInfo (ExitFailure 1)
         x:_           -> putStrLn ("hackager: '" ++ x ++ "' is not a hackager"
                             ++ " command. See 'hackager --help'.")
                          >> exitWith (ExitFailure 1)
-
--- | Hackager version
-version :: IO ()
-version = putStrLn "hackager version 1.0.0"
 
 -- | The help command
 help :: [String] -> IO ()
diff --git a/src/Version.hs b/src/Version.hs
new file mode 100644
--- /dev/null
+++ b/src/Version.hs
@@ -0,0 +1,7 @@
+-- | Hackager version.
+module Version (version) where
+
+-- | Hackager version
+version :: String
+version = "hackager version 1.3.0.1"
+
