Updating version.json and repo version numbers to: 28.1
diff --git a/MODULE.bazel b/MODULE.bazel
index 49308d9..c1deb0f 100644
--- a/MODULE.bazel
+++ b/MODULE.bazel
@@ -3,7 +3,7 @@
 
 module(
     name = "protobuf",
-    version = "28.1-dev", # Automatically updated on release
+    version = "28.1", # Automatically updated on release
     compatibility_level = 1,
     repo_name = "com_google_protobuf",
 )
diff --git a/java/core/src/main/java/com/google/protobuf/RuntimeVersion.java b/java/core/src/main/java/com/google/protobuf/RuntimeVersion.java
index 1d4435f..563eeae 100644
--- a/java/core/src/main/java/com/google/protobuf/RuntimeVersion.java
+++ b/java/core/src/main/java/com/google/protobuf/RuntimeVersion.java
@@ -29,7 +29,7 @@
   public static final int OSS_MAJOR = 4;
   public static final int OSS_MINOR = 28;
   public static final int OSS_PATCH = 1;
-  public static final String OSS_SUFFIX = "-dev";
+  public static final String OSS_SUFFIX = "";
 
   public static final RuntimeDomain DOMAIN = OSS_DOMAIN;
   public static final int MAJOR = OSS_MAJOR;
diff --git a/python/google/protobuf/runtime_version.py b/python/google/protobuf/runtime_version.py
index 0868805..e0db5ca 100644
--- a/python/google/protobuf/runtime_version.py
+++ b/python/google/protobuf/runtime_version.py
@@ -30,7 +30,7 @@
 OSS_MAJOR = 5
 OSS_MINOR = 28
 OSS_PATCH = 1
-OSS_SUFFIX = '-dev'
+OSS_SUFFIX = ''
 
 DOMAIN = OSS_DOMAIN
 MAJOR = OSS_MAJOR
diff --git a/src/google/protobuf/any.pb.cc b/src/google/protobuf/any.pb.cc
index 6ec0c20..21e3b7c 100644
--- a/src/google/protobuf/any.pb.cc
+++ b/src/google/protobuf/any.pb.cc
@@ -1,7 +1,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // NO CHECKED-IN PROTOBUF GENCODE
 // source: google/protobuf/any.proto
-// Protobuf C++ Version: 5.28.1-dev
+// Protobuf C++ Version: 5.28.1
 
 #include "google/protobuf/any.pb.h"
 
diff --git a/src/google/protobuf/any.pb.h b/src/google/protobuf/any.pb.h
index 91e18d8..715f0de 100644
--- a/src/google/protobuf/any.pb.h
+++ b/src/google/protobuf/any.pb.h
@@ -1,7 +1,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // NO CHECKED-IN PROTOBUF GENCODE
 // source: google/protobuf/any.proto
-// Protobuf C++ Version: 5.28.1-dev
+// Protobuf C++ Version: 5.28.1
 
 #ifndef GOOGLE_PROTOBUF_INCLUDED_google_2fprotobuf_2fany_2eproto_2epb_2eh
 #define GOOGLE_PROTOBUF_INCLUDED_google_2fprotobuf_2fany_2eproto_2epb_2eh
diff --git a/src/google/protobuf/api.pb.cc b/src/google/protobuf/api.pb.cc
index 69c4240..ba7ab61 100644
--- a/src/google/protobuf/api.pb.cc
+++ b/src/google/protobuf/api.pb.cc
@@ -1,7 +1,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // NO CHECKED-IN PROTOBUF GENCODE
 // source: google/protobuf/api.proto
-// Protobuf C++ Version: 5.28.1-dev
+// Protobuf C++ Version: 5.28.1
 
 #include "google/protobuf/api.pb.h"
 
diff --git a/src/google/protobuf/api.pb.h b/src/google/protobuf/api.pb.h
index 5201710..094ccf6 100644
--- a/src/google/protobuf/api.pb.h
+++ b/src/google/protobuf/api.pb.h
@@ -1,7 +1,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // NO CHECKED-IN PROTOBUF GENCODE
 // source: google/protobuf/api.proto
-// Protobuf C++ Version: 5.28.1-dev
+// Protobuf C++ Version: 5.28.1
 
 #ifndef GOOGLE_PROTOBUF_INCLUDED_google_2fprotobuf_2fapi_2eproto_2epb_2eh
 #define GOOGLE_PROTOBUF_INCLUDED_google_2fprotobuf_2fapi_2eproto_2epb_2eh
diff --git a/src/google/protobuf/compiler/java/java_features.pb.cc b/src/google/protobuf/compiler/java/java_features.pb.cc
index e3a8cc5..b610b44 100644
--- a/src/google/protobuf/compiler/java/java_features.pb.cc
+++ b/src/google/protobuf/compiler/java/java_features.pb.cc
@@ -1,7 +1,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // NO CHECKED-IN PROTOBUF GENCODE
 // source: google/protobuf/compiler/java/java_features.proto
-// Protobuf C++ Version: 5.28.1-dev
+// Protobuf C++ Version: 5.28.1
 
 #include "google/protobuf/compiler/java/java_features.pb.h"
 
diff --git a/src/google/protobuf/compiler/java/java_features.pb.h b/src/google/protobuf/compiler/java/java_features.pb.h
index 4ac40bb..fe5e1fe 100644
--- a/src/google/protobuf/compiler/java/java_features.pb.h
+++ b/src/google/protobuf/compiler/java/java_features.pb.h
@@ -1,7 +1,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // NO CHECKED-IN PROTOBUF GENCODE
 // source: google/protobuf/compiler/java/java_features.proto
-// Protobuf C++ Version: 5.28.1-dev
+// Protobuf C++ Version: 5.28.1
 
 #ifndef GOOGLE_PROTOBUF_INCLUDED_google_2fprotobuf_2fcompiler_2fjava_2fjava_5ffeatures_2eproto_2epb_2eh
 #define GOOGLE_PROTOBUF_INCLUDED_google_2fprotobuf_2fcompiler_2fjava_2fjava_5ffeatures_2eproto_2epb_2eh
diff --git a/src/google/protobuf/compiler/plugin.pb.cc b/src/google/protobuf/compiler/plugin.pb.cc
index 1668633..34a53cb 100644
--- a/src/google/protobuf/compiler/plugin.pb.cc
+++ b/src/google/protobuf/compiler/plugin.pb.cc
@@ -1,7 +1,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // NO CHECKED-IN PROTOBUF GENCODE
 // source: google/protobuf/compiler/plugin.proto
-// Protobuf C++ Version: 5.28.1-dev
+// Protobuf C++ Version: 5.28.1
 
 #include "google/protobuf/compiler/plugin.pb.h"
 
diff --git a/src/google/protobuf/compiler/plugin.pb.h b/src/google/protobuf/compiler/plugin.pb.h
index dd5efc6..20e4412 100644
--- a/src/google/protobuf/compiler/plugin.pb.h
+++ b/src/google/protobuf/compiler/plugin.pb.h
@@ -1,7 +1,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // NO CHECKED-IN PROTOBUF GENCODE
 // source: google/protobuf/compiler/plugin.proto
-// Protobuf C++ Version: 5.28.1-dev
+// Protobuf C++ Version: 5.28.1
 
 #ifndef GOOGLE_PROTOBUF_INCLUDED_google_2fprotobuf_2fcompiler_2fplugin_2eproto_2epb_2eh
 #define GOOGLE_PROTOBUF_INCLUDED_google_2fprotobuf_2fcompiler_2fplugin_2eproto_2epb_2eh
diff --git a/src/google/protobuf/compiler/versions.h b/src/google/protobuf/compiler/versions.h
index 227a464..ea29b88 100644
--- a/src/google/protobuf/compiler/versions.h
+++ b/src/google/protobuf/compiler/versions.h
@@ -53,9 +53,9 @@
 //
 // Please avoid changing them manually, as they should be updated automatically
 // by Protobuf release process.
-#define PROTOBUF_CPP_VERSION_STRING "5.28.1-dev"
-#define PROTOBUF_JAVA_VERSION_STRING "4.28.1-dev"
-#define PROTOBUF_PYTHON_VERSION_STRING "5.28.1-dev"
+#define PROTOBUF_CPP_VERSION_STRING "5.28.1"
+#define PROTOBUF_JAVA_VERSION_STRING "4.28.1"
+#define PROTOBUF_PYTHON_VERSION_STRING "5.28.1"
 
 
 namespace google {
diff --git a/src/google/protobuf/cpp_features.pb.cc b/src/google/protobuf/cpp_features.pb.cc
index 2d6cde7..f018863 100644
--- a/src/google/protobuf/cpp_features.pb.cc
+++ b/src/google/protobuf/cpp_features.pb.cc
@@ -1,7 +1,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // NO CHECKED-IN PROTOBUF GENCODE
 // source: google/protobuf/cpp_features.proto
-// Protobuf C++ Version: 5.28.1-dev
+// Protobuf C++ Version: 5.28.1
 
 #include "google/protobuf/cpp_features.pb.h"
 
diff --git a/src/google/protobuf/cpp_features.pb.h b/src/google/protobuf/cpp_features.pb.h
index 41c8fd8..b5b444f 100644
--- a/src/google/protobuf/cpp_features.pb.h
+++ b/src/google/protobuf/cpp_features.pb.h
@@ -1,7 +1,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // NO CHECKED-IN PROTOBUF GENCODE
 // source: google/protobuf/cpp_features.proto
-// Protobuf C++ Version: 5.28.1-dev
+// Protobuf C++ Version: 5.28.1
 
 #ifndef GOOGLE_PROTOBUF_INCLUDED_google_2fprotobuf_2fcpp_5ffeatures_2eproto_2epb_2eh
 #define GOOGLE_PROTOBUF_INCLUDED_google_2fprotobuf_2fcpp_5ffeatures_2eproto_2epb_2eh
diff --git a/src/google/protobuf/descriptor.pb.cc b/src/google/protobuf/descriptor.pb.cc
index 85053c7..5e6a232 100644
--- a/src/google/protobuf/descriptor.pb.cc
+++ b/src/google/protobuf/descriptor.pb.cc
@@ -1,7 +1,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // NO CHECKED-IN PROTOBUF GENCODE
 // source: google/protobuf/descriptor.proto
-// Protobuf C++ Version: 5.28.1-dev
+// Protobuf C++ Version: 5.28.1
 
 #include "google/protobuf/descriptor.pb.h"
 
diff --git a/src/google/protobuf/descriptor.pb.h b/src/google/protobuf/descriptor.pb.h
index 298fc79..4e3b6ad 100644
--- a/src/google/protobuf/descriptor.pb.h
+++ b/src/google/protobuf/descriptor.pb.h
@@ -1,7 +1,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // NO CHECKED-IN PROTOBUF GENCODE
 // source: google/protobuf/descriptor.proto
-// Protobuf C++ Version: 5.28.1-dev
+// Protobuf C++ Version: 5.28.1
 
 #ifndef GOOGLE_PROTOBUF_INCLUDED_google_2fprotobuf_2fdescriptor_2eproto_2epb_2eh
 #define GOOGLE_PROTOBUF_INCLUDED_google_2fprotobuf_2fdescriptor_2eproto_2epb_2eh
diff --git a/src/google/protobuf/duration.pb.cc b/src/google/protobuf/duration.pb.cc
index 9ba0b86..4cb8d6f 100644
--- a/src/google/protobuf/duration.pb.cc
+++ b/src/google/protobuf/duration.pb.cc
@@ -1,7 +1,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // NO CHECKED-IN PROTOBUF GENCODE
 // source: google/protobuf/duration.proto
-// Protobuf C++ Version: 5.28.1-dev
+// Protobuf C++ Version: 5.28.1
 
 #include "google/protobuf/duration.pb.h"
 
diff --git a/src/google/protobuf/duration.pb.h b/src/google/protobuf/duration.pb.h
index 7c27b65..200189b 100644
--- a/src/google/protobuf/duration.pb.h
+++ b/src/google/protobuf/duration.pb.h
@@ -1,7 +1,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // NO CHECKED-IN PROTOBUF GENCODE
 // source: google/protobuf/duration.proto
-// Protobuf C++ Version: 5.28.1-dev
+// Protobuf C++ Version: 5.28.1
 
 #ifndef GOOGLE_PROTOBUF_INCLUDED_google_2fprotobuf_2fduration_2eproto_2epb_2eh
 #define GOOGLE_PROTOBUF_INCLUDED_google_2fprotobuf_2fduration_2eproto_2epb_2eh
diff --git a/src/google/protobuf/empty.pb.cc b/src/google/protobuf/empty.pb.cc
index 76d0e43..92642a4 100644
--- a/src/google/protobuf/empty.pb.cc
+++ b/src/google/protobuf/empty.pb.cc
@@ -1,7 +1,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // NO CHECKED-IN PROTOBUF GENCODE
 // source: google/protobuf/empty.proto
-// Protobuf C++ Version: 5.28.1-dev
+// Protobuf C++ Version: 5.28.1
 
 #include "google/protobuf/empty.pb.h"
 
diff --git a/src/google/protobuf/empty.pb.h b/src/google/protobuf/empty.pb.h
index 7f68831..bf48c1b 100644
--- a/src/google/protobuf/empty.pb.h
+++ b/src/google/protobuf/empty.pb.h
@@ -1,7 +1,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // NO CHECKED-IN PROTOBUF GENCODE
 // source: google/protobuf/empty.proto
-// Protobuf C++ Version: 5.28.1-dev
+// Protobuf C++ Version: 5.28.1
 
 #ifndef GOOGLE_PROTOBUF_INCLUDED_google_2fprotobuf_2fempty_2eproto_2epb_2eh
 #define GOOGLE_PROTOBUF_INCLUDED_google_2fprotobuf_2fempty_2eproto_2epb_2eh
diff --git a/src/google/protobuf/field_mask.pb.cc b/src/google/protobuf/field_mask.pb.cc
index 1e6d7a9..a43289f 100644
--- a/src/google/protobuf/field_mask.pb.cc
+++ b/src/google/protobuf/field_mask.pb.cc
@@ -1,7 +1,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // NO CHECKED-IN PROTOBUF GENCODE
 // source: google/protobuf/field_mask.proto
-// Protobuf C++ Version: 5.28.1-dev
+// Protobuf C++ Version: 5.28.1
 
 #include "google/protobuf/field_mask.pb.h"
 
diff --git a/src/google/protobuf/field_mask.pb.h b/src/google/protobuf/field_mask.pb.h
index 9efc115..6a17143 100644
--- a/src/google/protobuf/field_mask.pb.h
+++ b/src/google/protobuf/field_mask.pb.h
@@ -1,7 +1,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // NO CHECKED-IN PROTOBUF GENCODE
 // source: google/protobuf/field_mask.proto
-// Protobuf C++ Version: 5.28.1-dev
+// Protobuf C++ Version: 5.28.1
 
 #ifndef GOOGLE_PROTOBUF_INCLUDED_google_2fprotobuf_2ffield_5fmask_2eproto_2epb_2eh
 #define GOOGLE_PROTOBUF_INCLUDED_google_2fprotobuf_2ffield_5fmask_2eproto_2epb_2eh
diff --git a/src/google/protobuf/runtime_version.h b/src/google/protobuf/runtime_version.h
index 8183572..f2cbc40 100644
--- a/src/google/protobuf/runtime_version.h
+++ b/src/google/protobuf/runtime_version.h
@@ -19,7 +19,7 @@
 
 // The OSS versions are not stripped to avoid merging conflicts.
 #define PROTOBUF_OSS_VERSION 5028001
-#define PROTOBUF_OSS_VERSION_SUFFIX "-dev"
+#define PROTOBUF_OSS_VERSION_SUFFIX ""
 
 #define PROTOBUF_VERSION PROTOBUF_OSS_VERSION
 #define PROTOBUF_VERSION_SUFFIX PROTOBUF_OSS_VERSION_SUFFIX
diff --git a/src/google/protobuf/source_context.pb.cc b/src/google/protobuf/source_context.pb.cc
index 0a42660..47c760d 100644
--- a/src/google/protobuf/source_context.pb.cc
+++ b/src/google/protobuf/source_context.pb.cc
@@ -1,7 +1,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // NO CHECKED-IN PROTOBUF GENCODE
 // source: google/protobuf/source_context.proto
-// Protobuf C++ Version: 5.28.1-dev
+// Protobuf C++ Version: 5.28.1
 
 #include "google/protobuf/source_context.pb.h"
 
diff --git a/src/google/protobuf/source_context.pb.h b/src/google/protobuf/source_context.pb.h
index d0dd8f7..fdfc941 100644
--- a/src/google/protobuf/source_context.pb.h
+++ b/src/google/protobuf/source_context.pb.h
@@ -1,7 +1,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // NO CHECKED-IN PROTOBUF GENCODE
 // source: google/protobuf/source_context.proto
-// Protobuf C++ Version: 5.28.1-dev
+// Protobuf C++ Version: 5.28.1
 
 #ifndef GOOGLE_PROTOBUF_INCLUDED_google_2fprotobuf_2fsource_5fcontext_2eproto_2epb_2eh
 #define GOOGLE_PROTOBUF_INCLUDED_google_2fprotobuf_2fsource_5fcontext_2eproto_2epb_2eh
diff --git a/src/google/protobuf/struct.pb.cc b/src/google/protobuf/struct.pb.cc
index cb72763..ae0d082 100644
--- a/src/google/protobuf/struct.pb.cc
+++ b/src/google/protobuf/struct.pb.cc
@@ -1,7 +1,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // NO CHECKED-IN PROTOBUF GENCODE
 // source: google/protobuf/struct.proto
-// Protobuf C++ Version: 5.28.1-dev
+// Protobuf C++ Version: 5.28.1
 
 #include "google/protobuf/struct.pb.h"
 
diff --git a/src/google/protobuf/struct.pb.h b/src/google/protobuf/struct.pb.h
index 4e65b48..df8692e 100644
--- a/src/google/protobuf/struct.pb.h
+++ b/src/google/protobuf/struct.pb.h
@@ -1,7 +1,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // NO CHECKED-IN PROTOBUF GENCODE
 // source: google/protobuf/struct.proto
-// Protobuf C++ Version: 5.28.1-dev
+// Protobuf C++ Version: 5.28.1
 
 #ifndef GOOGLE_PROTOBUF_INCLUDED_google_2fprotobuf_2fstruct_2eproto_2epb_2eh
 #define GOOGLE_PROTOBUF_INCLUDED_google_2fprotobuf_2fstruct_2eproto_2epb_2eh
diff --git a/src/google/protobuf/stubs/common.h b/src/google/protobuf/stubs/common.h
index c66fec5..58d52bd 100644
--- a/src/google/protobuf/stubs/common.h
+++ b/src/google/protobuf/stubs/common.h
@@ -48,7 +48,7 @@
 #define GOOGLE_PROTOBUF_VERSION 5028001
 
 // A suffix string for alpha, beta or rc releases. Empty for stable releases.
-#define GOOGLE_PROTOBUF_VERSION_SUFFIX "-dev"
+#define GOOGLE_PROTOBUF_VERSION_SUFFIX ""
 
 // Verifies that the protobuf version a program was compiled with matches what
 // it is linked/running with. Use the macro below to call this function.
diff --git a/src/google/protobuf/timestamp.pb.cc b/src/google/protobuf/timestamp.pb.cc
index c4cce37..a7f3c2b 100644
--- a/src/google/protobuf/timestamp.pb.cc
+++ b/src/google/protobuf/timestamp.pb.cc
@@ -1,7 +1,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // NO CHECKED-IN PROTOBUF GENCODE
 // source: google/protobuf/timestamp.proto
-// Protobuf C++ Version: 5.28.1-dev
+// Protobuf C++ Version: 5.28.1
 
 #include "google/protobuf/timestamp.pb.h"
 
diff --git a/src/google/protobuf/timestamp.pb.h b/src/google/protobuf/timestamp.pb.h
index 836fc03..bbff8b8 100644
--- a/src/google/protobuf/timestamp.pb.h
+++ b/src/google/protobuf/timestamp.pb.h
@@ -1,7 +1,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // NO CHECKED-IN PROTOBUF GENCODE
 // source: google/protobuf/timestamp.proto
-// Protobuf C++ Version: 5.28.1-dev
+// Protobuf C++ Version: 5.28.1
 
 #ifndef GOOGLE_PROTOBUF_INCLUDED_google_2fprotobuf_2ftimestamp_2eproto_2epb_2eh
 #define GOOGLE_PROTOBUF_INCLUDED_google_2fprotobuf_2ftimestamp_2eproto_2epb_2eh
diff --git a/src/google/protobuf/type.pb.cc b/src/google/protobuf/type.pb.cc
index ed46fd9..b1ac920 100644
--- a/src/google/protobuf/type.pb.cc
+++ b/src/google/protobuf/type.pb.cc
@@ -1,7 +1,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // NO CHECKED-IN PROTOBUF GENCODE
 // source: google/protobuf/type.proto
-// Protobuf C++ Version: 5.28.1-dev
+// Protobuf C++ Version: 5.28.1
 
 #include "google/protobuf/type.pb.h"
 
diff --git a/src/google/protobuf/type.pb.h b/src/google/protobuf/type.pb.h
index d01c899..82034ae 100644
--- a/src/google/protobuf/type.pb.h
+++ b/src/google/protobuf/type.pb.h
@@ -1,7 +1,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // NO CHECKED-IN PROTOBUF GENCODE
 // source: google/protobuf/type.proto
-// Protobuf C++ Version: 5.28.1-dev
+// Protobuf C++ Version: 5.28.1
 
 #ifndef GOOGLE_PROTOBUF_INCLUDED_google_2fprotobuf_2ftype_2eproto_2epb_2eh
 #define GOOGLE_PROTOBUF_INCLUDED_google_2fprotobuf_2ftype_2eproto_2epb_2eh
diff --git a/src/google/protobuf/wrappers.pb.cc b/src/google/protobuf/wrappers.pb.cc
index d7b0c1e..0c83f0e 100644
--- a/src/google/protobuf/wrappers.pb.cc
+++ b/src/google/protobuf/wrappers.pb.cc
@@ -1,7 +1,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // NO CHECKED-IN PROTOBUF GENCODE
 // source: google/protobuf/wrappers.proto
-// Protobuf C++ Version: 5.28.1-dev
+// Protobuf C++ Version: 5.28.1
 
 #include "google/protobuf/wrappers.pb.h"
 
diff --git a/src/google/protobuf/wrappers.pb.h b/src/google/protobuf/wrappers.pb.h
index 36c818e..c6ccc5c 100644
--- a/src/google/protobuf/wrappers.pb.h
+++ b/src/google/protobuf/wrappers.pb.h
@@ -1,7 +1,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // NO CHECKED-IN PROTOBUF GENCODE
 // source: google/protobuf/wrappers.proto
-// Protobuf C++ Version: 5.28.1-dev
+// Protobuf C++ Version: 5.28.1
 
 #ifndef GOOGLE_PROTOBUF_INCLUDED_google_2fprotobuf_2fwrappers_2eproto_2epb_2eh
 #define GOOGLE_PROTOBUF_INCLUDED_google_2fprotobuf_2fwrappers_2eproto_2epb_2eh
diff --git a/version.json b/version.json
index b30064d..66d798b 100644
--- a/version.json
+++ b/version.json
@@ -1,17 +1,17 @@
 {
     "28.x": {
-        "protoc_version": "28.1-dev",
+        "protoc_version": "28.1",
         "lts": false,
-        "date": "2024-08-28",
+        "date": "2024-09-10",
         "languages": {
-            "cpp": "5.28.1-dev",
-            "csharp": "3.28.1-dev",
-            "java": "4.28.1-dev",
-            "javascript": "3.28.1-dev",
-            "objectivec": "3.28.1-dev",
-            "php": "4.28.1-dev",
-            "python": "5.28.1-dev",
-            "ruby": "4.28.1-dev"
+            "cpp": "5.28.1",
+            "csharp": "3.28.1",
+            "java": "4.28.1",
+            "javascript": "3.28.1",
+            "objectivec": "3.28.1",
+            "php": "4.28.1",
+            "python": "5.28.1",
+            "ruby": "4.28.1"
         }
     }
 }
\ No newline at end of file