diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,3 +1,8 @@
+## 0.3.0.6
+
+* Change tag format to name-version
+* Tags are signed
+
 ## 0.3.0.5
 
 * Add `-N` to `diff` arguments
diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -27,9 +27,9 @@
 This utility is highly opinionated in some ways, e.g.:
 
 * It only supports one style of Git tag name:
-  `packagename/version`. This may look weird in non-mega-repos, where
-  `v1.2.3` looks better than `foo/1.2.3`, but for mega-repos the
-  former doesn't make sense.
+  `packagename-version`. This may look weird in non-mega-repos, where
+  `v1.2.3` looks better than `foo-1.2.3`, but for mega-repos the
+  former doesn't make sense. It also requires tag signing.
 * It depends on Stack for both discovering all of your local packages,
   and for uploading to Hackage.
 
@@ -187,7 +187,7 @@
 monad-unlift-0.2.1
 
 No version bumps required, good to go!
-Raw command: git tag monad-unlift/0.2.1
+Raw command: git tag -s monad-unlift-0.2.1 -m "Release: monad-unlift-0.2.1"
 ```
 
 And suddenly I notice something new:
diff --git a/mega-sdist.cabal b/mega-sdist.cabal
--- a/mega-sdist.cabal
+++ b/mega-sdist.cabal
@@ -2,10 +2,10 @@
 --
 -- see: https://github.com/sol/hpack
 --
--- hash: b30c22aef88617bfd94f13fb5cbbb43222c71299cf75c856718c62f8d6e24111
+-- hash: a38c238333661b7873eed19337602bebcedb0e3603dbc8671d2028fd627ca057
 
 name:           mega-sdist
-version:        0.3.0.5
+version:        0.3.0.6
 synopsis:       Handles uploading to Hackage from mega repos
 description:    See README.md
 category:       Distribution
diff --git a/mega-sdist.hs b/mega-sdist.hs
--- a/mega-sdist.hs
+++ b/mega-sdist.hs
@@ -119,7 +119,9 @@
                 let pcs = fmap mkProcess
                          $ maybe [] keys $ lookup DoesNotExist m
                     mkProcess (Package _fp (PackageName name) (Version version)) =
-                         proc "git" ["tag", unpack $ concat [name, "/", version]]
+                      let ident = concat [name, "-", version]
+                          msg = "Release: " ++ ident
+                       in proc "git" ["tag", "-s", unpack ident, "-m", unpack msg]
                 mapM_ sayShow pcs
                 mapM_ runProcess_ pcs
         Just s -> do
