diff --git a/Cargo.lock b/Cargo.lock
index d34511db8fadca729fbeccb00626c146abf492ae..4266bfec2c5d5263fbf5430c6b1a5f1153024f87 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -2682,7 +2682,7 @@ checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc"
 
 [[package]]
 name = "sunset"
-version = "0.2.0-alpha"
+version = "0.2.0"
 dependencies = [
  "aes",
  "anyhow",
@@ -2717,7 +2717,7 @@ dependencies = [
 
 [[package]]
 name = "sunset-async"
-version = "0.1.0"
+version = "0.2.0"
 dependencies = [
  "anyhow",
  "argh",
@@ -2840,7 +2840,7 @@ dependencies = [
 
 [[package]]
 name = "sunset-embassy"
-version = "0.2.0-alpha"
+version = "0.2.0"
 dependencies = [
  "atomic-polyfill",
  "defmt",
@@ -2854,7 +2854,7 @@ dependencies = [
 
 [[package]]
 name = "sunset-sshwire-derive"
-version = "0.1.0"
+version = "0.2.0"
 dependencies = [
  "virtue",
 ]
diff --git a/Cargo.toml b/Cargo.toml
index 9fe0df929e9404d142ce4583a652763042310541..85db27db08de2e0e514a94acd53697e110ae92c8 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sunset"
-version = "0.2.0-alpha"
+version = "0.2.0"
 edition = "2021"
 description = "A SSH library suitable for embedded and larger programs"
 repository = "https://github.com/mkj/sunset"
@@ -19,7 +19,7 @@ members = [
 ]
 
 [dependencies]
-sunset-sshwire-derive = { version = "0.1", path = "sshwire-derive" }
+sunset-sshwire-derive = { version = "0.2", path = "sshwire-derive" }
 
 snafu = { version = "0.8", default-features = false, features = ["rust_1_61"] }
 # TODO: check that log macro calls disappear in no_std builds
diff --git a/async/Cargo.toml b/async/Cargo.toml
index 1415726c9b18d5cb7f9cb7f9b013e8a8e07cf471..a381ca129fab00f9f2194276dd536004dbe6b702 100644
--- a/async/Cargo.toml
+++ b/async/Cargo.toml
@@ -1,15 +1,15 @@
 [package]
 name = "sunset-async"
-version = "0.1.0"
+version = "0.2.0"
 edition = "2021"
 repository = "https://github.com/mkj/sunset"
 license = "0BSD"
-description = "Async wrapper for Sunset SSH"
+description = "Std async wrapper for Sunset SSH"
 
 [dependencies]
-sunset = { path = "..", features = ["std", "rsa", "openssh-key"] }
-sunset-sshwire-derive = { version = "0.1", path = "../sshwire-derive" }
-sunset-embassy = { path = "../embassy" }
+sunset = { version = "0.2", path = "..", features = ["std", "rsa", "openssh-key"] }
+sunset-sshwire-derive = { version = "0.2", path = "../sshwire-derive" }
+sunset-embassy = { version = "0.2", path = "../embassy" }
 log = { version = "0.4", features = ["release_max_level_trace"] }
 rpassword = "7.2"
 argh = "0.1"
diff --git a/embassy/Cargo.toml b/embassy/Cargo.toml
index b7a863e177c0568a5b0a796357bcf1cd0ed2f546..99840e7e477f802bded59a72c2ad269b238b7907 100644
--- a/embassy/Cargo.toml
+++ b/embassy/Cargo.toml
@@ -1,10 +1,11 @@
 [package]
 name = "sunset-embassy"
-version = "0.2.0-alpha"
+version = "0.2.0"
 edition = "2021"
 repository = "https://github.com/mkj/sunset"
 categories = ["network-programming", "embedded", "no-std"]
 license = "0BSD"
+description = "async wrapper for Sunset SSH"
 
 [dependencies]
 embassy-sync = { version = "0.5" }
@@ -13,7 +14,7 @@ embedded-io-async = "0.6"
 atomic-polyfill = "1.0"
 pin-utils = { version = "0.1" }
 
-sunset = { path = "../", features = ["embedded-io"] }
+sunset = { version = "0.2.0", path = "../", features = ["embedded-io"] }
 
 log = { version = "0.4" }
 
diff --git a/embassy/demos/common/Cargo.toml b/embassy/demos/common/Cargo.toml
index f11fa2b8068f8d013e0784dd423429ba55b11007..00b17c2ba93271a6701ef461638c1545fad48602 100644
--- a/embassy/demos/common/Cargo.toml
+++ b/embassy/demos/common/Cargo.toml
@@ -7,7 +7,7 @@ edition = "2021"
 [dependencies]
 sunset-embassy = { path = "../../" }
 sunset = { path = "../../.." }
-sunset-sshwire-derive = { version = "0.1", path = "../../../sshwire-derive" }
+sunset-sshwire-derive = { path = "../../../sshwire-derive" }
 
 embassy-sync = { version = "0.5" }
 embassy-net = { version = "0.4", features = ["tcp", "dhcpv4", "medium-ethernet"] }
diff --git a/embassy/demos/picow/Cargo.toml b/embassy/demos/picow/Cargo.toml
index 3cd1c56d9de03428a6ec66100d042aa24487b384..5a8e544a7a09e0e469adda6bd3f4853ebe9098a2 100644
--- a/embassy/demos/picow/Cargo.toml
+++ b/embassy/demos/picow/Cargo.toml
@@ -6,7 +6,7 @@ edition = "2021"
 [dependencies]
 sunset-embassy = { path = "../../" }
 sunset = { path = "../../.." }
-sunset-sshwire-derive = { version = "0.1", path = "../../../sshwire-derive" }
+sunset-sshwire-derive = { path = "../../../sshwire-derive" }
 sunset-demo-embassy-common= { path = "../common" }
 
 cyw43 = { version = "0.1.0", optional = true, features = ["defmt"] }
diff --git a/sshwire-derive/Cargo.toml b/sshwire-derive/Cargo.toml
index bb6be25e98ecb3834570444f2b8d99c9a1f66ec7..7ef986dba54265adc4aa00997f96d5ff530ea9d8 100644
--- a/sshwire-derive/Cargo.toml
+++ b/sshwire-derive/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "sunset-sshwire-derive"
-version = "0.1.0"
+version = "0.2.0"
 edition = "2021"
 repository = "https://github.com/mkj/sunset"
 license = "0BSD"