diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,9 @@
 # Changelog
 
+## 0.2.1 (2019-06-24)
+- fix creation of published symlink lockfile
+- tagdist before `cabal upload` if no tarball
+
 ## 0.2 (2019-06-24)
 - merge tag and dist commands into tagdist
 - if sdist fails then reset tag
diff --git a/Main.hs b/Main.hs
--- a/Main.hs
+++ b/Main.hs
@@ -95,9 +95,11 @@
   pkgid <- getPackageId
   checkNotPublished pkgid
   let file = "dist" </> showPkgId pkgid <.> ".tar.gz"
+  exists <- doesFileExist file
+  unless exists $ tagDistCmd False
   cabal_ "upload" $ ["--publish" | publish] ++ [file]
   when publish $ do
-    createFileLink file (takeFileName file <.> "published")
+    createFileLink (takeFileName file) (file <.> "published")
     let tag = packageVersion pkgid
     git_ "push" ["origin", tag]
 
diff --git a/hkgr.cabal b/hkgr.cabal
--- a/hkgr.cabal
+++ b/hkgr.cabal
@@ -1,6 +1,6 @@
 cabal-version:       2.0
 name:                hkgr
-version:             0.2
+version:             0.2.1
 synopsis:            Simple Hackage release workflow for package maintainers
 description:
             Hkgr (pronouced "Hackager") is a tool to help make new releases of
