diff --git a/cmake/Python_version.in b/cmake/Python_version.in
index ca15dc90..09fcb4b7 100644
--- a/cmake/Python_version.in
+++ b/cmake/Python_version.in
@@ -1 +1 @@
-@PROJECT_VERSION_MAJOR@.@PROJECT_VERSION_MINOR@.@PROJECT_VERSION_PATCH@-dev
+@PROJECT_VERSION_MAJOR@.@PROJECT_VERSION_MINOR@.@PROJECT_VERSION_PATCH@
diff --git a/python/treelite/VERSION b/python/treelite/VERSION
index 0f9d6b15..fd2a0186 100644
--- a/python/treelite/VERSION
+++ b/python/treelite/VERSION
@@ -1 +1 @@
-3.1.0-dev
+3.1.0
diff --git a/runtime/java/treelite4j/pom.xml b/runtime/java/treelite4j/pom.xml
index 9970de68..d71eda28 100644
--- a/runtime/java/treelite4j/pom.xml
+++ b/runtime/java/treelite4j/pom.xml
@@ -5,7 +5,7 @@
4.0.0
ml.dmlc
treelite4j
- 3.0.0-SNAPSHOT
+ 3.1.0
jar
UTF-8
diff --git a/runtime/python/treelite_runtime/VERSION b/runtime/python/treelite_runtime/VERSION
index 0f9d6b15..fd2a0186 100644
--- a/runtime/python/treelite_runtime/VERSION
+++ b/runtime/python/treelite_runtime/VERSION
@@ -1 +1 @@
-3.1.0-dev
+3.1.0