diff --git a/CHANGELOG.md b/CHANGELOG.md
index 7042055279b999dd0b34b2815c9cdd0d84017d82..dd9f78657ca9fb13f8feccff9b10f89a19f83f0c 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,14 @@
 ## Changelog
 
+### 3.9.0
+  * Bugfix: Fix mismatch between `tls_verify_client` parameter in the eap module manifest and `tls_client` in the eap template (thanks @guest715)
+  * Bugfix: Fix users template permits the users array to contain either Hashes or Strings (thanks @guest715)
+  * Bugfix: Create ippool files in freerad::module::ippool (thanks @amateo)
+  * Convert module packaging to PDK
+  * Update OS & Puppet version compatibility data
+  * Lint fixes
+  * Add data type validation for all parameters
+
 ### 3.8.2
   * Bugfix: Fix for client iptables rules being repeatedly added by subsequent Puppet runs (thanks @guest715)
   * Bugfix: Module file notifies service, not only symlink (thanks @ihpu)
diff --git a/metadata.json b/metadata.json
index bbbe395ea63360c135986829839d83b9eac488ab..71f68fac2f8b574a3508eabd66884244f7389662 100644
--- a/metadata.json
+++ b/metadata.json
@@ -1,6 +1,6 @@
 {
   "name": "jgazeley-freeradius",
-  "version": "3.8.2",
+  "version": "3.9.0",
   "author": "jgazeley",
   "summary": "Install and configure FreeRADIUS",
   "license": "Apache-2.0",