diff --git a/.github/workflows/release_rust.yml b/.github/workflows/release_rust.yml
new file mode 100644
index 0000000..04d4e33
--- /dev/null
+++ b/.github/workflows/release_rust.yml
@@ -0,0 +1,48 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+name: Release Rust Packages
+
+on:
+  push:
+    tags:
+      - "*"
+  pull_request:
+    branches:
+      - master
+    paths:
+      - ".github/workflows/release_rust.yml"
+  workflow_dispatch:
+
+jobs:
+  publish:
+    runs-on: ubuntu-latest
+    steps:
+      - uses: actions/checkout@v4
+      - name: Dryrun
+        working-directory: lib/rs
+        run: cargo publish --dry-run
+
+      - name: Publish
+        working-directory: lib/rs
+        # Only publish if it's a tag and the tag is not a pre-release
+        if: ${{ startsWith(github.ref, 'refs/tags/') && !contains(github.ref, '-') }}
+        run: cargo publish
+        env:
+          CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_REGISTRY_TOKEN }}
diff --git a/ApacheThrift.nuspec b/ApacheThrift.nuspec
index a4ca51e..5a20f62 100644
--- a/ApacheThrift.nuspec
+++ b/ApacheThrift.nuspec
@@ -19,14 +19,14 @@
      the "Thrift" project.
   2. nuget setApiKey <your-api-key>
   3. nuget pack ApacheThrift.nuspec -Symbols -SymbolPackageFormat snupkg
-  4. nuget push ApacheThrift.0.21.0.nupkg -Source https://api.nuget.org/v3/index.json
+  4. nuget push ApacheThrift.0.22.0.nupkg -Source https://api.nuget.org/v3/index.json
   -->
 
 <package xmlns="http://schemas.microsoft.com/packaging/2013/05/nuspec.xsd">
   <metadata>
     <id>ApacheThrift</id>
-    <version>0.21.0</version>
-    <title>Apache Thrift 0.21.0</title>
+    <version>0.22.0</version>
+    <title>Apache Thrift 0.22.0</title>
     <authors>Apache Thrift Developers</authors>
     <owners>Apache Software Foundation</owners>
     <license type="expression">Apache-2.0</license>
@@ -36,7 +36,7 @@
     <description>
       Contains runtime libraries from lib/netstd for netstandard2.0 framework development.
     </description>
-    <repository type="GitHub" url="https://github.com/apache/thrift" branch="release/0.21.0" />
+    <repository type="GitHub" url="https://github.com/apache/thrift" branch="release/0.22.0" />
     <tags>Apache Thrift RPC</tags>
   </metadata>
   <files>
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 78969f2..b76d703 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -28,7 +28,7 @@
 
 # PACKAGE_VERSION is used by cpack scripts currently
 # Both thrift_VERSION and PACKAGE_VERSION should be the same for now
-set(thrift_VERSION "0.21.0")
+set(thrift_VERSION "0.22.0")
 set(PACKAGE_VERSION ${thrift_VERSION})
 
 project("thrift" VERSION ${PACKAGE_VERSION})
diff --git a/Thrift.podspec b/Thrift.podspec
index 4fde1e5..08ed58c 100644
--- a/Thrift.podspec
+++ b/Thrift.podspec
@@ -1,6 +1,6 @@
 Pod::Spec.new do |s|
   s.name          = 'Thrift'
-  s.version       = '0.21.0'
+  s.version       = '0.22.0'
   s.summary       = "Apache Thrift is a lightweight, language-independent software stack with an associated code generation mechanism for RPC."
   s.description   = <<-DESC
 The Apache Thrift scalable cross-language software framework for networked services development combines a software stack with a code generation engine to build services that work efficiently and seamlessly between many programming languages.
@@ -10,6 +10,6 @@
   s.author        = { 'Apache Thrift Developers' => 'dev@thrift.apache.org' }
   s.ios.deployment_target = '9.0'
   s.osx.deployment_target = '10.10'
-  s.source        = { :git => 'https://github.com/apache/thrift.git', :tag => 'v0.21.0' }
+  s.source        = { :git => 'https://github.com/apache/thrift.git', :tag => 'v0.22.0' }
   s.source_files  = 'lib/swift/Sources/*.swift'
 end
diff --git a/appveyor.yml b/appveyor.yml
index 0e81ba4..8efc522 100644
--- a/appveyor.yml
+++ b/appveyor.yml
@@ -19,7 +19,7 @@
 
 # build Apache Thrift on AppVeyor - https://ci.appveyor.com
 
-version: '0.21.0.{build}'
+version: '0.22.0.{build}'
 
 shallow_clone: true
 
diff --git a/bower.json b/bower.json
index f80fe97..871ab42 100644
--- a/bower.json
+++ b/bower.json
@@ -1,6 +1,6 @@
 {
   "name": "thrift",
-  "version": "0.21.0",
+  "version": "0.22.0",
   "homepage": "https://github.com/apache/thrift.git",
   "authors": [
     "Apache Thrift <dev@thrift.apache.org>"
diff --git a/compiler/cpp/src/thrift/version.h b/compiler/cpp/src/thrift/version.h
index 9692231..f741983 100644
--- a/compiler/cpp/src/thrift/version.h
+++ b/compiler/cpp/src/thrift/version.h
@@ -24,6 +24,6 @@
 #pragma once
 #endif // _MSC_VER
 
-#define THRIFT_VERSION "0.21.0"
+#define THRIFT_VERSION "0.22.0"
 
 #endif // _THRIFT_VERSION_H_
diff --git a/configure.ac b/configure.ac
index c8eaa6d..f0d0738 100644
--- a/configure.ac
+++ b/configure.ac
@@ -20,7 +20,7 @@
 AC_PREREQ(2.65)
 AC_CONFIG_MACRO_DIR([./aclocal])
 
-AC_INIT([thrift], [0.21.0])
+AC_INIT([thrift], [0.22.0])
 
 AC_CONFIG_AUX_DIR([.])
 
diff --git a/contrib/Rebus/Properties/AssemblyInfo.cs b/contrib/Rebus/Properties/AssemblyInfo.cs
index f1dc685..2573915 100644
--- a/contrib/Rebus/Properties/AssemblyInfo.cs
+++ b/contrib/Rebus/Properties/AssemblyInfo.cs
@@ -34,5 +34,5 @@
 
 [assembly: Guid("0af10984-40d3-453d-b1e5-421529e8c7e2")]
 
-[assembly: AssemblyVersion("0.21.0.0")]
-[assembly: AssemblyFileVersion("0.21.0.0")]
+[assembly: AssemblyVersion("0.22.0.0")]
+[assembly: AssemblyFileVersion("0.22.0.0")]
diff --git a/contrib/thrift-maven-plugin/pom.xml b/contrib/thrift-maven-plugin/pom.xml
index 54ff1e0..b314527 100644
--- a/contrib/thrift-maven-plugin/pom.xml
+++ b/contrib/thrift-maven-plugin/pom.xml
@@ -29,7 +29,7 @@
   <artifactId>thrift-maven-plugin</artifactId>
   <packaging>maven-plugin</packaging>
   <name>thrift-maven-plugin</name>
-  <version>0.21.0</version>
+  <version>0.22.0</version>
 
   <properties>
     <maven.compiler.source>1.8</maven.compiler.source>
diff --git a/contrib/thrift.spec b/contrib/thrift.spec
index 20dcc57..15e1c5b 100644
--- a/contrib/thrift.spec
+++ b/contrib/thrift.spec
@@ -28,7 +28,7 @@
 License:        Apache License v2.0
 Group:          Development
 Summary:        RPC and serialization framework
-Version:        0.21.0
+Version:        0.22.0
 Release:        0
 URL:            http://thrift.apache.org
 Packager:       Thrift Developers <dev@thrift.apache.org>
diff --git a/contrib/zeromq/csharp/AssemblyInfo.cs b/contrib/zeromq/csharp/AssemblyInfo.cs
index 7f91c33..27378f3 100644
--- a/contrib/zeromq/csharp/AssemblyInfo.cs
+++ b/contrib/zeromq/csharp/AssemblyInfo.cs
@@ -36,7 +36,7 @@
 // The form "{Major}.{Minor}.*" will automatically update the build and revision,
 // and "{Major}.{Minor}.{Build}.*" will update just the revision.
 
-[assembly: AssemblyVersion("0.21.0.0")]
+[assembly: AssemblyVersion("0.22.0.0")]
 
 // The following attributes are used to specify the signing key for the assembly,
 // if desired. See the Mono documentation for more information about signing.
diff --git a/debian/changelog b/debian/changelog
index 147c4b4..df7e693 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+thrift (0.21.0) stable; urgency=low
+
+  * update to 0.21.0
+
+ -- Apache Thrift Developers <dev@thrift.apache.org>  Mon, 02 Sep 2024 23:30:00 +0100
+
 thrift (0.20.0) stable; urgency=low
 
   * update to 0.20.0
diff --git a/doap.rdf b/doap.rdf
index 703082a..f36508e 100644
--- a/doap.rdf
+++ b/doap.rdf
@@ -57,6 +57,11 @@
     <release rdf:parseType="Collection">
       <Version>
         <name>Apache Thrift</name>
+        <created>2024-09-02</created>
+        <revision>0.21.0</revision>
+      </Version>
+      <Version>
+        <name>Apache Thrift</name>
         <created>2024-02-04</created>
         <revision>0.20.0</revision>
       </Version>
diff --git a/doc/specs/idl.md b/doc/specs/idl.md
index f5803b5..9777af4 100644
--- a/doc/specs/idl.md
+++ b/doc/specs/idl.md
@@ -1,6 +1,6 @@
 ## Thrift interface description language
 
-For Thrift version 0.21.0.
+For Thrift version 0.22.0.
 
 The Thrift interface definition language (IDL) allows for the definition of [Thrift Types](/docs/types). A Thrift IDL file is processed by the Thrift code generator to produce code for the various target languages to support the defined structs and services in the IDL file.
 
diff --git a/lib/d/src/thrift/base.d b/lib/d/src/thrift/base.d
index ddc0dd4..b5cb075 100644
--- a/lib/d/src/thrift/base.d
+++ b/lib/d/src/thrift/base.d
@@ -50,7 +50,7 @@
 /// The Thrift version string, used for informative purposes.
 // Note: This is currently hardcoded, but will likely be filled in by the build
 // system in future versions.
-enum VERSION = "0.21.0";
+enum VERSION = "0.22.0";
 
 /**
  * Functions used for logging inside Thrift.
diff --git a/lib/dart/pubspec.yaml b/lib/dart/pubspec.yaml
index 069818f..db7b8a6 100644
--- a/lib/dart/pubspec.yaml
+++ b/lib/dart/pubspec.yaml
@@ -16,7 +16,7 @@
 # under the License.
 
 name: thrift
-version: 0.21.0
+version: 0.22.0
 description: >
   A Dart library for Apache Thrift
 author: Apache Thrift Developers <dev@thrift.apache.org>
diff --git a/lib/delphi/src/Thrift.pas b/lib/delphi/src/Thrift.pas
index 9e1b0bb..b06d38f 100644
--- a/lib/delphi/src/Thrift.pas
+++ b/lib/delphi/src/Thrift.pas
@@ -28,7 +28,7 @@
   Thrift.Protocol;
 
 const
-  Version = '0.21.0';
+  Version = '0.22.0';
 
 type
   TException = Thrift.Exception.TException; // compatibility alias
diff --git a/lib/erl/src/thrift.app.src b/lib/erl/src/thrift.app.src
index 8431213..499b766 100644
--- a/lib/erl/src/thrift.app.src
+++ b/lib/erl/src/thrift.app.src
@@ -22,7 +22,7 @@
     {description, "Thrift bindings"},
 
   % The version of the applicaton
-  {vsn, "0.21.0"},
+  {vsn, "0.22.0"},
 
     % All modules used by the application.
     {modules, []},
diff --git a/lib/haxe/haxelib.json b/lib/haxe/haxelib.json
index 6f5de0b..5eabff5 100644
--- a/lib/haxe/haxelib.json
+++ b/lib/haxe/haxelib.json
@@ -10,7 +10,7 @@
 		"framework"
 	],
 	"description": "Haxe bindings for the Apache Thrift RPC and serialization framework",
-	"version": "0.21.0",
+	"version": "0.22.0",
 	"releasenote": "Licensed under Apache License, Version 2.0. The Apache Thrift compiler needs to be installed separately.",
 	"contributors": ["ApacheThrift"],
 	"dependencies": { 
diff --git a/lib/java/README.md b/lib/java/README.md
index c65f97c..8881da6 100644
--- a/lib/java/README.md
+++ b/lib/java/README.md
@@ -42,7 +42,7 @@
 the Gradle build system, which tends to be predominant amongst Java
 developers.
 
-Currently we use gradle 8.0 to build the Thrift Java source. The usual way to setup gradle
+Currently we use gradle 8 to build the Thrift Java source. The usual way to setup gradle
 project is to include the gradle-wrapper.jar in the project and then run the gradle wrapper to
 bootstrap setting up gradle binaries. However to avoid putting binary files into the source tree we
 have ignored the gradle wrapper files. You are expected to install it manually, as described in
diff --git a/lib/java/gradle.properties b/lib/java/gradle.properties
index a3912e3..5aca754 100644
--- a/lib/java/gradle.properties
+++ b/lib/java/gradle.properties
@@ -1,7 +1,7 @@
 # This file is shared currently between this Gradle build and the
 # Ant builds for fd303 and JavaScript. Keep the dotted notation for
 # the properties to minimize the changes in the dependencies.
-thrift.version=0.21.0
+thrift.version=0.22.0
 thrift.groupid=org.apache.thrift
 release=false
 
diff --git a/lib/java/gradle/environment.gradle b/lib/java/gradle/environment.gradle
index 977c07e..7e05b87 100644
--- a/lib/java/gradle/environment.gradle
+++ b/lib/java/gradle/environment.gradle
@@ -69,5 +69,6 @@
 
     testImplementation "org.junit.jupiter:junit-jupiter:${junitVersion}"
     testImplementation "org.mockito:mockito-core:${mockitoVersion}"
+    testRuntimeOnly "org.junit.platform:junit-platform-launcher"
     testRuntimeOnly "org.slf4j:slf4j-log4j12:${slf4jVersion}"
 }
diff --git a/lib/java/gradle/unitTests.gradle b/lib/java/gradle/unitTests.gradle
index 4f06fcf..6f63956 100644
--- a/lib/java/gradle/unitTests.gradle
+++ b/lib/java/gradle/unitTests.gradle
@@ -79,7 +79,6 @@
     maxHeapSize = '512m'
 
     systemProperties = [
-        'build.test': "${compileTestJava.destinationDir}",
         'test.port': "${testPort}",
         'javax.net.ssl.trustStore': "${projectDir}/src/crossTest/resources/.truststore",
         'javax.net.ssl.trustStorePassword': 'thrift',
diff --git a/lib/js/package-lock.json b/lib/js/package-lock.json
index 562e38f..ab908ac 100644
--- a/lib/js/package-lock.json
+++ b/lib/js/package-lock.json
@@ -1,12 +1,12 @@
 {
   "name": "thrift",
-  "version": "0.21.0",
+  "version": "0.22.0",
   "lockfileVersion": 3,
   "requires": true,
   "packages": {
     "": {
       "name": "thrift",
-      "version": "0.21.0",
+      "version": "0.22.0",
       "license": "Apache-2.0",
       "devDependencies": {
         "browserify": "~16.5",
diff --git a/lib/js/package.json b/lib/js/package.json
index d9ab5a6..73a8cb4 100644
--- a/lib/js/package.json
+++ b/lib/js/package.json
@@ -1,6 +1,6 @@
 {
   "name": "thrift",
-  "version": "0.21.0",
+  "version": "0.22.0",
   "description": "Thrift is a software framework for scalable cross-language services development.",
   "main": "./src/thrift",
   "author": {
diff --git a/lib/js/src/thrift.js b/lib/js/src/thrift.js
index de5ca19..7a23eac 100644
--- a/lib/js/src/thrift.js
+++ b/lib/js/src/thrift.js
@@ -46,7 +46,7 @@
      * @const {string} Version
      * @memberof Thrift
      */
-    Version: '0.21.0',
+    Version: '0.22.0',
 
     /**
      * Thrift IDL type string to Id mapping.
diff --git a/lib/kotlin/build.gradle.kts b/lib/kotlin/build.gradle.kts
index 6b1c7c9..3f8b653 100644
--- a/lib/kotlin/build.gradle.kts
+++ b/lib/kotlin/build.gradle.kts
@@ -41,7 +41,9 @@
 }
 
 tasks.withType<org.jetbrains.kotlin.gradle.tasks.KotlinCompile> {
-    kotlinOptions.jvmTarget = "1.8"
+    compilerOptions {
+        jvmTarget = org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_1_8
+    }
 }
 
 tasks {
diff --git a/lib/kotlin/cross-test-client/src/main/kotlin/org/apache/thrift/test/TestClient.kt b/lib/kotlin/cross-test-client/src/main/kotlin/org/apache/thrift/test/TestClient.kt
index a9241da..5178b55 100644
--- a/lib/kotlin/cross-test-client/src/main/kotlin/org/apache/thrift/test/TestClient.kt
+++ b/lib/kotlin/cross-test-client/src/main/kotlin/org/apache/thrift/test/TestClient.kt
@@ -66,14 +66,14 @@
     Json("json"),
     MultiJson("multij"),
     Compact("compact"),
-    MultiCompact("multic")
+    MultiCompact("multic"),
 }
 
 enum class TransportType(val key: String) {
     Buffered("buffered"),
     Framed("framed"),
     FastFramed("fastframed"),
-    Http("http")
+    Http("http"),
 }
 
 class TestClient : CliktCommand() {
@@ -114,7 +114,8 @@
             TransportType.Framed -> TNonblockingSocket(host, port, socketTimeout)
             else ->
                 throw UnsupportedOperationException(
-                    "only frame transport type is supported for now, got $transportType")
+                    "only frame transport type is supported for now, got $transportType"
+                )
         }
 
     private val clientManager = TAsyncClientManager()
@@ -272,7 +273,8 @@
                             if (xtructs != null) {
                                 for ((string_thing, byte_thing, i32_thing, i64_thing) in xtructs) {
                                     print(
-                                        "{\"$string_thing\", $byte_thing, $i32_thing, $i64_thing}, ")
+                                        "{\"$string_thing\", $byte_thing, $i32_thing, $i64_thing}, "
+                                    )
                                 }
                             }
                             print("}")
@@ -284,13 +286,15 @@
                     if (whoa.size == 2 && whoa.containsKey(1L) && whoa.containsKey(2L)) {
                         val firstMap = whoa[1L]!!
                         val secondMap = whoa[2L]!!
-                        if (firstMap.size == 2 &&
-                            firstMap.containsKey(Numberz.TWO) &&
-                            firstMap.containsKey(Numberz.THREE) &&
-                            secondMap.size == 1 &&
-                            secondMap.containsKey(Numberz.SIX) &&
-                            insane == firstMap[Numberz.TWO] &&
-                            insane == firstMap[Numberz.THREE]) {
+                        if (
+                            firstMap.size == 2 &&
+                                firstMap.containsKey(Numberz.TWO) &&
+                                firstMap.containsKey(Numberz.THREE) &&
+                                secondMap.size == 1 &&
+                                secondMap.containsKey(Numberz.SIX) &&
+                                insane == firstMap[Numberz.TWO] &&
+                                insane == firstMap[Numberz.THREE]
+                        ) {
                             val six = secondMap[Numberz.SIX]!!
                             // Cannot use "new Insanity().equals(six)" because as of now,
                             // struct/container
@@ -361,9 +365,11 @@
 
     private suspend fun multiplexTest(returnCode: Int): Int {
         var code = returnCode
-        if (protocolType == ProtocolType.Multi ||
-            protocolType == ProtocolType.MultiJson ||
-            protocolType == ProtocolType.MultiCompact) {
+        if (
+            protocolType == ProtocolType.Multi ||
+                protocolType == ProtocolType.MultiJson ||
+                protocolType == ProtocolType.MultiCompact
+        ) {
             val secondClient: SecondServiceClient = createSecondServiceClient()
             print("secondtestString(\"Test2\")")
             val s = secondClient.secondtestString("Test2")
@@ -432,7 +438,7 @@
 
     private suspend fun exceptionTest(
         testClient: ThriftTestClient,
-        returnCode: Int
+        returnCode: Int,
     ): Pair<Int, ThriftTestClient> {
         var client = testClient
         var code = returnCode
@@ -467,7 +473,7 @@
 
     private suspend fun multiExceptionTest(
         testClient: ThriftTestClient,
-        returnCode: Int
+        returnCode: Int,
     ): Pair<Int, ThriftTestClient> {
         var client = testClient
         var code = returnCode
@@ -523,7 +529,8 @@
     out.i64_thing = -5
     val input: Xtruct = testStruct(out)
     print(
-        """ = {"${input.string_thing}",${input.byte_thing}, ${input.i32_thing}, ${input.i64_thing}}""")
+        """ = {"${input.string_thing}",${input.byte_thing}, ${input.i32_thing}, ${input.i64_thing}}"""
+    )
     if (input != out) {
         code = code or ERR_STRUCTS
         println("*** FAILURE ***\n")
@@ -572,14 +579,16 @@
     } else {
         val m1 = mm[4]!!
         val m2 = mm[-4]!!
-        if (m1[1] != 1 ||
-            m1[2] != 2 ||
-            m1[3] != 3 ||
-            m1[4] != 4 ||
-            m2[-1] != -1 ||
-            m2[-2] != -2 ||
-            m2[-3] != -3 ||
-            m2[-4] != -4) {
+        if (
+            m1[1] != 1 ||
+                m1[2] != 2 ||
+                m1[3] != 3 ||
+                m1[4] != 4 ||
+                m2[-1] != -1 ||
+                m2[-2] != -2 ||
+                m2[-3] != -3 ||
+                m2[-4] != -4
+        ) {
             returnCode1 = returnCode1 or ERR_CONTAINERS
             println("*** FAILURE ***\n")
         }
@@ -639,7 +648,8 @@
     val input = xstruct2.struct_thing!!
     print(
         """ = {${xstruct2.byte_thing}, {"${input.string_thing}", ${input.byte_thing}, ${input.i32_thing}, ${input.i64_thing}}, ${xstruct2.i32_thing}}
-    """)
+    """
+    )
     if (xstruct2 != out2) {
         code = code or ERR_STRUCTS
         println("*** FAILURE ***\n")
diff --git a/lib/kotlin/cross-test-server/src/main/kotlin/org/apache/thrift/test/TestHandler.kt b/lib/kotlin/cross-test-server/src/main/kotlin/org/apache/thrift/test/TestHandler.kt
index 160097e..425d46b 100644
--- a/lib/kotlin/cross-test-server/src/main/kotlin/org/apache/thrift/test/TestHandler.kt
+++ b/lib/kotlin/cross-test-server/src/main/kotlin/org/apache/thrift/test/TestHandler.kt
@@ -96,7 +96,8 @@
 
     override suspend fun testStruct(thing: Xtruct): Xtruct {
         logger.info(
-            """testStruct({"${thing.string_thing}", ${thing.byte_thing}, ${thing.i32_thing}, ${thing.i64_thing}})""")
+            """testStruct({"${thing.string_thing}", ${thing.byte_thing}, ${thing.i32_thing}, ${thing.i64_thing}})"""
+        )
         return thing
     }
 
@@ -104,7 +105,8 @@
         val thing2: Xtruct = thing.struct_thing!!
         logger.info(
             """testNest({${thing.byte_thing}, {"${thing2.string_thing}", ${thing2.byte_thing}, ${thing2.i32_thing}, ${thing2.i64_thing}}, ${thing.i32_thing}})"""
-                .trimIndent())
+                .trimIndent()
+        )
         return thing
     }
 
@@ -200,7 +202,7 @@
         arg2: Long,
         arg3: Map<Short, String>,
         arg4: Numberz,
-        arg5: Long
+        arg5: Long,
     ): Xtruct {
         logger.info("testMulti()\n")
         val hello = Xtruct()
diff --git a/lib/kotlin/cross-test-server/src/main/kotlin/org/apache/thrift/test/TestServer.kt b/lib/kotlin/cross-test-server/src/main/kotlin/org/apache/thrift/test/TestServer.kt
index e79420b..706083f 100644
--- a/lib/kotlin/cross-test-server/src/main/kotlin/org/apache/thrift/test/TestServer.kt
+++ b/lib/kotlin/cross-test-server/src/main/kotlin/org/apache/thrift/test/TestServer.kt
@@ -84,7 +84,8 @@
                 }
             } catch (e: Exception) {
                 throw RuntimeException(
-                    "The context is not a wrapper and does not implement the interface")
+                    "The context is not a wrapper and does not implement the interface"
+                )
             }
         }
 
@@ -98,7 +99,8 @@
 
         override fun preServe() {
             println(
-                "TServerEventHandler.preServe - called only once before server starts accepting connections")
+                "TServerEventHandler.preServe - called only once before server starts accepting connections"
+            )
         }
 
         override fun createContext(input: TProtocol, output: TProtocol): ServerContext {
@@ -108,32 +110,35 @@
             println(
                 "TServerEventHandler.createContext - connection #" +
                     ctx.connectionId +
-                    " established")
+                    " established"
+            )
             return ctx
         }
 
         override fun deleteContext(
             serverContext: ServerContext,
             input: TProtocol,
-            output: TProtocol
+            output: TProtocol,
         ) {
             val ctx = serverContext.unwrap(TestServerContext::class.java)
             println(
                 "TServerEventHandler.deleteContext - connection #" +
                     ctx.connectionId +
-                    " terminated")
+                    " terminated"
+            )
         }
 
         override fun processContext(
             serverContext: ServerContext,
             inputTransport: TTransport,
-            outputTransport: TTransport
+            outputTransport: TTransport,
         ) {
             val ctx = serverContext.unwrap(TestServerContext::class.java)
             println(
                 "TServerEventHandler.processContext - connection #" +
                     ctx.connectionId +
-                    " is ready to process next request")
+                    " is ready to process next request"
+            )
         }
     }
 }
@@ -142,7 +147,7 @@
     Simple("simple"),
     ThreadPool("thread-pool"),
     NonBlocking("nonblocking"),
-    ThreadedSelector("threaded-selector")
+    ThreadedSelector("threaded-selector"),
 }
 
 enum class ProtocolType(val key: String) {
@@ -151,14 +156,14 @@
     Json("json"),
     MultiJson("multij"),
     Compact("compact"),
-    MultiCompact("multic")
+    MultiCompact("multic"),
 }
 
 enum class TransportType(val key: String) {
     Buffered("buffered"),
     FastFramed("fastframed"),
     Framed("framed"),
-    Zlib("zlib")
+    Zlib("zlib"),
 }
 
 class TestServerCommand : CliktCommand() {
@@ -193,12 +198,14 @@
                 protocolType,
                 getProtocolFactory(),
                 getTransportFactory(),
-                useSSL)
+                useSSL,
+            )
         // Set server event handler
         serverEngine.setServerEventHandler(TestServer.TestServerEventHandler())
         // Run it
         println(
-            "Starting the ${if (useSSL) "ssl server" else "server"} [$protocolType/$transportType/$serverType] on port $port")
+            "Starting the ${if (useSSL) "ssl server" else "server"} [$protocolType/$transportType/$serverType] on port $port"
+        )
         serverEngine.serve()
     }
 
@@ -241,7 +248,7 @@
     protocolType: ProtocolType,
     tProtocolFactory: TProtocolFactory,
     tTransportFactory: TTransportFactory,
-    ssl: Boolean
+    ssl: Boolean,
 ): TServer {
     val isMulti =
         protocolType == ProtocolType.Multi ||
@@ -261,7 +268,8 @@
                 ServerType.NonBlocking -> {
                     val tNonblockingServerArgs = TNonblockingServer.Args(tNonblockingServerSocket)
                     tNonblockingServerArgs.processor(
-                        if (isMulti) multiplexedProcessor else testProcessor)
+                        if (isMulti) multiplexedProcessor else testProcessor
+                    )
                     tNonblockingServerArgs.protocolFactory(tProtocolFactory)
                     tNonblockingServerArgs.transportFactory(tTransportFactory)
                     return TNonblockingServer(tNonblockingServerArgs)
@@ -270,7 +278,8 @@
                     val tThreadedSelectorServerArgs =
                         TThreadedSelectorServer.Args(tNonblockingServerSocket)
                     tThreadedSelectorServerArgs.processor(
-                        if (isMulti) multiplexedProcessor else testProcessor)
+                        if (isMulti) multiplexedProcessor else testProcessor
+                    )
                     tThreadedSelectorServerArgs.protocolFactory(tProtocolFactory)
                     tThreadedSelectorServerArgs.transportFactory(tTransportFactory)
                     return TThreadedSelectorServer(tThreadedSelectorServerArgs)
@@ -297,7 +306,8 @@
                 else -> {
                     val tThreadPoolServerArgs = TThreadPoolServer.Args(tServerSocket)
                     tThreadPoolServerArgs.processor(
-                        if (isMulti) multiplexedProcessor else testProcessor)
+                        if (isMulti) multiplexedProcessor else testProcessor
+                    )
                     tThreadPoolServerArgs.protocolFactory(tProtocolFactory)
                     tThreadPoolServerArgs.transportFactory(tTransportFactory)
                     return TThreadPoolServer(tThreadPoolServerArgs)
diff --git a/lib/kotlin/settings.gradle.kts b/lib/kotlin/settings.gradle.kts
index ccb54e7..97fab34 100644
--- a/lib/kotlin/settings.gradle.kts
+++ b/lib/kotlin/settings.gradle.kts
@@ -19,7 +19,7 @@
 pluginManagement {
     plugins {
         kotlin("jvm") version "2.0.20"
-        id("com.ncorti.ktfmt.gradle") version "0.19.0"
+        id("com.ncorti.ktfmt.gradle") version "0.20.1"
     }
 }
 
diff --git a/lib/kotlin/src/test/kotlin/org/apache/thrift/MetaDataTest.kt b/lib/kotlin/src/test/kotlin/org/apache/thrift/MetaDataTest.kt
index 16dc71e..7780aa4 100644
--- a/lib/kotlin/src/test/kotlin/org/apache/thrift/MetaDataTest.kt
+++ b/lib/kotlin/src/test/kotlin/org/apache/thrift/MetaDataTest.kt
@@ -31,11 +31,6 @@
         assertEquals(3, personMetadata.size)
         val idField = personMetadata[Person._Fields.ID]!!
         assertEquals("id", idField.fieldName)
-        assertEquals(
-            mapOf(
-                "max" to "100000",
-                "min" to "1",
-            ),
-            idField.fieldAnnotations)
+        assertEquals(mapOf("max" to "100000", "min" to "1"), idField.fieldAnnotations)
     }
 }
diff --git a/lib/lua/Thrift.lua b/lib/lua/Thrift.lua
index 212359b..58daa22 100644
--- a/lib/lua/Thrift.lua
+++ b/lib/lua/Thrift.lua
@@ -48,7 +48,7 @@
   return count
 end
 
-version = '0.21.0'
+version = '0.22.0'
 
 TType = {
   STOP   = 0,
diff --git a/lib/netstd/Benchmarks/Thrift.Benchmarks/Thrift.Benchmarks.csproj b/lib/netstd/Benchmarks/Thrift.Benchmarks/Thrift.Benchmarks.csproj
index 0f82cd9..7877e6b 100644
--- a/lib/netstd/Benchmarks/Thrift.Benchmarks/Thrift.Benchmarks.csproj
+++ b/lib/netstd/Benchmarks/Thrift.Benchmarks/Thrift.Benchmarks.csproj
@@ -21,7 +21,7 @@
   <PropertyGroup>
     <OutputType>Exe</OutputType>
     <TargetFramework>net8.0</TargetFramework>
-    <Version>0.21.0</Version>
+    <Version>0.22.0</Version>
     <LangVersion>latestMajor</LangVersion>
     <TieredCompilation>false</TieredCompilation>
     <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
diff --git a/lib/netstd/Tests/Thrift.Compile.Tests/Thrift.Compile.net6/Thrift.Compile.net6.csproj b/lib/netstd/Tests/Thrift.Compile.Tests/Thrift.Compile.net6/Thrift.Compile.net6.csproj
index bcbed7e..6228aab 100644
--- a/lib/netstd/Tests/Thrift.Compile.Tests/Thrift.Compile.net6/Thrift.Compile.net6.csproj
+++ b/lib/netstd/Tests/Thrift.Compile.Tests/Thrift.Compile.net6/Thrift.Compile.net6.csproj
@@ -19,7 +19,7 @@
   -->
 
   <PropertyGroup>
-    <ThriftVersion>0.21.0</ThriftVersion>
+    <ThriftVersion>0.22.0</ThriftVersion>
     <ThriftVersionOutput>Thrift version $(ThriftVersion)</ThriftVersionOutput>
     <TargetFramework>net6.0</TargetFramework>
     <LangVersion>latestMajor</LangVersion>
diff --git a/lib/netstd/Tests/Thrift.Compile.Tests/Thrift.Compile.net8/Thrift.Compile.net8.csproj b/lib/netstd/Tests/Thrift.Compile.Tests/Thrift.Compile.net8/Thrift.Compile.net8.csproj
index 16b86ce..49fc828 100644
--- a/lib/netstd/Tests/Thrift.Compile.Tests/Thrift.Compile.net8/Thrift.Compile.net8.csproj
+++ b/lib/netstd/Tests/Thrift.Compile.Tests/Thrift.Compile.net8/Thrift.Compile.net8.csproj
@@ -19,7 +19,7 @@
   -->
 
   <PropertyGroup>
-    <ThriftVersion>0.21.0</ThriftVersion>
+    <ThriftVersion>0.22.0</ThriftVersion>
     <ThriftVersionOutput>Thrift version $(ThriftVersion)</ThriftVersionOutput>
     <TargetFramework>net8.0</TargetFramework>
     <LangVersion>latestMajor</LangVersion>
diff --git a/lib/netstd/Tests/Thrift.Compile.Tests/Thrift.Compile.netstd2/Thrift.Compile.netstd2.csproj b/lib/netstd/Tests/Thrift.Compile.Tests/Thrift.Compile.netstd2/Thrift.Compile.netstd2.csproj
index cc2b5e4..1e18061 100644
--- a/lib/netstd/Tests/Thrift.Compile.Tests/Thrift.Compile.netstd2/Thrift.Compile.netstd2.csproj
+++ b/lib/netstd/Tests/Thrift.Compile.Tests/Thrift.Compile.netstd2/Thrift.Compile.netstd2.csproj
@@ -19,7 +19,7 @@
   -->
 
   <PropertyGroup>
-    <ThriftVersion>0.21.0</ThriftVersion>
+    <ThriftVersion>0.22.0</ThriftVersion>
     <ThriftVersionOutput>Thrift version $(ThriftVersion)</ThriftVersionOutput>
     <TargetFramework>netstandard2.0</TargetFramework>
     <LangVersion>latestMajor</LangVersion>
diff --git a/lib/netstd/Tests/Thrift.IntegrationTests/Thrift.IntegrationTests.csproj b/lib/netstd/Tests/Thrift.IntegrationTests/Thrift.IntegrationTests.csproj
index 2cb6349..d7d52c8 100644
--- a/lib/netstd/Tests/Thrift.IntegrationTests/Thrift.IntegrationTests.csproj
+++ b/lib/netstd/Tests/Thrift.IntegrationTests/Thrift.IntegrationTests.csproj
@@ -23,7 +23,7 @@
     <LangVersion>latestMajor</LangVersion>
     <AssemblyName>Thrift.IntegrationTests</AssemblyName>
     <PackageId>Thrift.IntegrationTests</PackageId>
-    <Version>0.21.0.0</Version>
+    <Version>0.22.0.0</Version>
     <OutputType>Exe</OutputType>
     <GenerateAssemblyTitleAttribute>false</GenerateAssemblyTitleAttribute>
     <GenerateAssemblyDescriptionAttribute>false</GenerateAssemblyDescriptionAttribute>
diff --git a/lib/netstd/Tests/Thrift.Tests/Thrift.Tests.csproj b/lib/netstd/Tests/Thrift.Tests/Thrift.Tests.csproj
index 089064b..c66558c 100644
--- a/lib/netstd/Tests/Thrift.Tests/Thrift.Tests.csproj
+++ b/lib/netstd/Tests/Thrift.Tests/Thrift.Tests.csproj
@@ -21,7 +21,7 @@
   <PropertyGroup>
     <TargetFramework>net8.0</TargetFramework>
     <LangVersion>latestMajor</LangVersion>
-    <Version>0.21.0.0</Version>
+    <Version>0.22.0.0</Version>
     <Nullable>enable</Nullable>
   </PropertyGroup>
 
diff --git a/lib/netstd/Thrift/Properties/AssemblyInfo.cs b/lib/netstd/Thrift/Properties/AssemblyInfo.cs
index 383b256..84be980 100644
--- a/lib/netstd/Thrift/Properties/AssemblyInfo.cs
+++ b/lib/netstd/Thrift/Properties/AssemblyInfo.cs
@@ -52,5 +52,5 @@
 // You can specify all the values or you can default the Build and Revision Numbers
 // by using the '*' as shown below:
 
-[assembly: AssemblyVersion("0.21.0.0")]
-[assembly: AssemblyFileVersion("0.21.0.0")]
+[assembly: AssemblyVersion("0.22.0.0")]
+[assembly: AssemblyFileVersion("0.22.0.0")]
diff --git a/lib/netstd/Thrift/Thrift.csproj b/lib/netstd/Thrift/Thrift.csproj
index 587a92e..4bee3df 100644
--- a/lib/netstd/Thrift/Thrift.csproj
+++ b/lib/netstd/Thrift/Thrift.csproj
@@ -40,8 +40,8 @@
     <SignAssembly>true</SignAssembly>
     <AssemblyOriginatorKeyFile>thrift.snk</AssemblyOriginatorKeyFile>
     <DelaySign>false</DelaySign>
-    <Title>Apache Thrift 0.21.0</Title>
-    <Version>0.21.0.0</Version>
+    <Title>Apache Thrift 0.22.0</Title>
+    <Version>0.22.0.0</Version>
     <GeneratePackageOnBuild>false</GeneratePackageOnBuild>
     <PackageProjectUrl>http://thrift.apache.org/</PackageProjectUrl>
     <Authors>Apache Thrift Developers</Authors>
@@ -50,7 +50,7 @@
     <PackageDescription>C# .NET Core bindings for the Apache Thrift RPC system</PackageDescription>
     <PackageReleaseNotes></PackageReleaseNotes>
     <PackageTags>Apache Thrift RPC</PackageTags>
-    <PackageReleaseNotes>https://github.com/apache/thrift/blob/0.21.0/CHANGES.md</PackageReleaseNotes>
+    <PackageReleaseNotes>https://github.com/apache/thrift/blob/0.22.0/CHANGES.md</PackageReleaseNotes>
 	<PackageReadmeFile>README.md</PackageReadmeFile>
     <Copyright>Copyright 2024 The Apache Software Foundation</Copyright>
   </PropertyGroup>
diff --git a/lib/ocaml/_oasis b/lib/ocaml/_oasis
index adf6198..bc01add 100644
--- a/lib/ocaml/_oasis
+++ b/lib/ocaml/_oasis
@@ -1,5 +1,5 @@
 Name: libthrift-ocaml
-Version: 0.21.0
+Version: 0.22.0
 OASISFormat: 0.3
 Synopsis: OCaml bindings for the Apache Thrift RPC system
 Authors: Apache Thrift Developers <dev@thrift.apache.org>
diff --git a/lib/perl/lib/Thrift.pm b/lib/perl/lib/Thrift.pm
index 45bf33b..995131e 100644
--- a/lib/perl/lib/Thrift.pm
+++ b/lib/perl/lib/Thrift.pm
@@ -31,6 +31,6 @@
 #
 
 package Thrift;
-use version 0.77; our $VERSION = version->declare("v0.21.0");
+use version 0.77; our $VERSION = version->declare("v0.22.0");
 
 1;
diff --git a/lib/py/setup.py b/lib/py/setup.py
index 31e2bae..3e10f01 100644
--- a/lib/py/setup.py
+++ b/lib/py/setup.py
@@ -105,7 +105,7 @@
     twisted_deps = ['twisted']
 
     setup(name='thrift',
-          version='0.21.0',
+          version='0.22.0',
           description='Python bindings for the Apache Thrift RPC system',
           long_description=read_file("README.md"),
           long_description_content_type="text/markdown",
diff --git a/lib/rb/thrift.gemspec b/lib/rb/thrift.gemspec
index 1977ec4..625c6a4 100644
--- a/lib/rb/thrift.gemspec
+++ b/lib/rb/thrift.gemspec
@@ -3,7 +3,7 @@
 
 Gem::Specification.new do |s|
   s.name        = 'thrift'
-  s.version     = '0.21.0'
+  s.version     = '0.22.0'
   s.authors     = ['Apache Thrift Developers']
   s.email       = ['dev@thrift.apache.org']
   s.homepage    = 'http://thrift.apache.org'
diff --git a/lib/rs/Cargo.toml b/lib/rs/Cargo.toml
index dd4a1b6..263b9d9 100644
--- a/lib/rs/Cargo.toml
+++ b/lib/rs/Cargo.toml
@@ -2,7 +2,7 @@
 name = "thrift"
 description = "Rust bindings for the Apache Thrift RPC system"
 edition = "2021"
-version = "0.21.0"
+version = "0.22.0"
 license = "Apache-2.0"
 authors = ["Apache Thrift Developers <dev@thrift.apache.org>"]
 homepage = "http://thrift.apache.org"
diff --git a/lib/st/package.xml b/lib/st/package.xml
index d606aad..5f92da8 100644
--- a/lib/st/package.xml
+++ b/lib/st/package.xml
@@ -17,7 +17,7 @@
  specific language governing permissions and limitations
  under the License.
  -->
-<!-- Apache Thrift Smalltalk library version 0.21.0 -->
+<!-- Apache Thrift Smalltalk library version 0.22.0 -->
 <package>
   <name>libthrift-st</name>
   <file>thrift.st</file>
diff --git a/lib/swift/Sources/Thrift.swift b/lib/swift/Sources/Thrift.swift
index d78cff6..ad15d8a 100644
--- a/lib/swift/Sources/Thrift.swift
+++ b/lib/swift/Sources/Thrift.swift
@@ -1,3 +1,3 @@
 class Thrift {
-	let version = "0.21.0"
+	let version = "0.22.0"
 }
diff --git a/lib/swift/Tests/ThriftTests/ThriftTests.swift b/lib/swift/Tests/ThriftTests/ThriftTests.swift
index 10121e7..2632cc3 100644
--- a/lib/swift/Tests/ThriftTests/ThriftTests.swift
+++ b/lib/swift/Tests/ThriftTests/ThriftTests.swift
@@ -3,7 +3,7 @@
 
 class ThriftTests: XCTestCase {
   func testVersion() {
-    XCTAssertEqual(Thrift().version, "0.21.0")
+    XCTAssertEqual(Thrift().version, "0.22.0")
   }
 
   static var allTests : [(String, (ThriftTests) -> () throws -> Void)] {
diff --git a/lib/ts/package-lock.json b/lib/ts/package-lock.json
index ee1592e..a523ef4 100644
--- a/lib/ts/package-lock.json
+++ b/lib/ts/package-lock.json
@@ -1,12 +1,12 @@
 {
   "name": "thrift",
-  "version": "0.21.0",
+  "version": "0.22.0",
   "lockfileVersion": 3,
   "requires": true,
   "packages": {
     "": {
       "name": "thrift",
-      "version": "0.21.0",
+      "version": "0.22.0",
       "license": "Apache-2.0",
       "dependencies": {
         "bufferutil": "^4.0.1",
diff --git a/lib/ts/package.json b/lib/ts/package.json
index f296065..13aefaa 100644
--- a/lib/ts/package.json
+++ b/lib/ts/package.json
@@ -1,6 +1,6 @@
 {
   "name": "thrift",
-  "version": "0.21.0",
+  "version": "0.22.0",
   "description": "Thrift is a software framework for scalable cross-language services development.",
   "author": {
     "name": "Apache Thrift Developers",
diff --git a/package-lock.json b/package-lock.json
index 8fc75aa..50f7d58 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,12 +1,12 @@
 {
   "name": "thrift",
-  "version": "0.21.0",
+  "version": "0.22.0",
   "lockfileVersion": 3,
   "requires": true,
   "packages": {
     "": {
       "name": "thrift",
-      "version": "0.21.0",
+      "version": "0.22.0",
       "license": "Apache-2.0",
       "dependencies": {
         "browser-or-node": "^1.2.1",
diff --git a/package.json b/package.json
index 2925cc8..5b02952 100644
--- a/package.json
+++ b/package.json
@@ -6,7 +6,7 @@
     "type": "git",
     "url": "https://github.com/apache/thrift.git"
   },
-  "version": "0.21.0",
+  "version": "0.22.0",
   "author": {
     "name": "Apache Thrift Developers",
     "email": "dev@thrift.apache.org",
diff --git a/sonar-project.properties b/sonar-project.properties
index 02b1195..f88d435 100644
--- a/sonar-project.properties
+++ b/sonar-project.properties
@@ -16,7 +16,7 @@
 services that work efficiently and seamlessly between all major languages.
 
 # Apache Thrift Version
-sonar.projectVersion=0.21.0
+sonar.projectVersion=0.22.0
 # use this to set another version string
 # $ sonar-runner -D sonar.projectVersion=`git rev-parse HEAD`
 # set projectDate in combination with projectVersion for imports of old releases
@@ -54,7 +54,7 @@
 module1.sonar.projectBaseDir=lib/java
 module1.sonar.sources=src
 module1.sonar.tests=test
-module1.sonar.binaries=build/libs/libthrift-0.21.0.jar
+module1.sonar.binaries=build/libs/libthrift-0.22.0.jar
 module1.sonar.libraries=build/deps/*.jar
 module1.sonar.language=java
 
@@ -62,7 +62,7 @@
 module2.sonar.projectBaseDir=.
 module2.sonar.sources=tutorial/java/src, tutorial/java/gen-java
 module2.sonar.binaries=tutorial/java/tutorial.jar
-module2.sonar.libraries=lib/java/build/deps/*.jar,lib/java/build/libs/libthrift-0.21.0.jar
+module2.sonar.libraries=lib/java/build/deps/*.jar,lib/java/build/libs/libthrift-0.22.0.jar
 module2.sonar.language=java
 
 module3.sonar.projectName=Apache Thrift - JavaScript Library
diff --git a/test/dart/test_client/pubspec.yaml b/test/dart/test_client/pubspec.yaml
index f4d0135..0df6cae 100644
--- a/test/dart/test_client/pubspec.yaml
+++ b/test/dart/test_client/pubspec.yaml
@@ -16,7 +16,7 @@
 # under the License.
 
 name: thrift_test_client
-version: 0.21.0
+version: 0.22.0
 description: A client integration test for the Dart Thrift library
 author: Apache Thrift Developers <dev@thrift.apache.org>
 homepage: http://thrift.apache.org
diff --git a/test/erl/src/thrift_test.app.src b/test/erl/src/thrift_test.app.src
index b78fc29..fa95d3c 100644
--- a/test/erl/src/thrift_test.app.src
+++ b/test/erl/src/thrift_test.app.src
@@ -22,7 +22,7 @@
   {description, "Thrift cross language test"},
 
   % The version of the applicaton
-  {vsn, "0.21.0"},
+  {vsn, "0.22.0"},
 
   % All modules used by the application.
   {modules, [
diff --git a/test/netstd/Client/Client.csproj b/test/netstd/Client/Client.csproj
index 62b01dd..78cc22a 100644
--- a/test/netstd/Client/Client.csproj
+++ b/test/netstd/Client/Client.csproj
@@ -24,7 +24,7 @@
     <AssemblyName>Client</AssemblyName>
     <PackageId>Client</PackageId>
     <OutputType>Exe</OutputType>
-    <Version>0.21.0.0</Version>
+    <Version>0.22.0.0</Version>
     <GenerateAssemblyTitleAttribute>false</GenerateAssemblyTitleAttribute>
     <GenerateAssemblyDescriptionAttribute>false</GenerateAssemblyDescriptionAttribute>
     <GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
diff --git a/test/netstd/Server/Server.csproj b/test/netstd/Server/Server.csproj
index 94cd8b1..766b7a9 100644
--- a/test/netstd/Server/Server.csproj
+++ b/test/netstd/Server/Server.csproj
@@ -24,7 +24,7 @@
     <AssemblyName>Server</AssemblyName>
     <PackageId>Server</PackageId>
     <OutputType>Exe</OutputType>
-    <Version>0.21.0.0</Version>
+    <Version>0.22.0.0</Version>
     <GenerateAssemblyTitleAttribute>false</GenerateAssemblyTitleAttribute>
     <GenerateAssemblyDescriptionAttribute>false</GenerateAssemblyDescriptionAttribute>
     <GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
diff --git a/tutorial/dart/client/pubspec.yaml b/tutorial/dart/client/pubspec.yaml
index b486ec8..71b580c 100644
--- a/tutorial/dart/client/pubspec.yaml
+++ b/tutorial/dart/client/pubspec.yaml
@@ -16,7 +16,7 @@
 # under the License.
 
 name: tutorial_client
-version: 0.21.0
+version: 0.22.0
 description: A Dart client implementation of the Apache Thrift tutorial
 author: Apache Thrift Developers <dev@thrift.apache.org>
 homepage: http://thrift.apache.org
diff --git a/tutorial/dart/console_client/pubspec.yaml b/tutorial/dart/console_client/pubspec.yaml
index bf61ded..b7e2e50 100644
--- a/tutorial/dart/console_client/pubspec.yaml
+++ b/tutorial/dart/console_client/pubspec.yaml
@@ -16,7 +16,7 @@
 # under the License.
 
 name: tutorial_console_client
-version: 0.21.0
+version: 0.22.0
 description: >
   A Dart console client to implementation of the Apache Thrift tutorial
 author: Apache Thrift Developers <dev@thrift.apache.org>
diff --git a/tutorial/dart/server/pubspec.yaml b/tutorial/dart/server/pubspec.yaml
index 29811eb..f694118 100644
--- a/tutorial/dart/server/pubspec.yaml
+++ b/tutorial/dart/server/pubspec.yaml
@@ -16,7 +16,7 @@
 # under the License.
 
 name: tutorial_server
-version: 0.21.0
+version: 0.22.0
 description: A Dart server to support the Apache Thrift tutorial
 author: Apache Thrift Developers <dev@thrift.apache.org>
 homepage: http://thrift.apache.org
diff --git a/tutorial/delphi/DelphiClient/DelphiClient.dproj b/tutorial/delphi/DelphiClient/DelphiClient.dproj
index fbb63f7..785de16 100644
--- a/tutorial/delphi/DelphiClient/DelphiClient.dproj
+++ b/tutorial/delphi/DelphiClient/DelphiClient.dproj
@@ -124,13 +124,13 @@
 					<VersionInfoKeys>
 						<VersionInfoKeys Name="CompanyName"/>
 						<VersionInfoKeys Name="FileDescription">Thrift Tutorial</VersionInfoKeys>
-						<VersionInfoKeys Name="FileVersion">0.21.0.0</VersionInfoKeys>
+						<VersionInfoKeys Name="FileVersion">0.22.0.0</VersionInfoKeys>
 						<VersionInfoKeys Name="InternalName">DelphiClient</VersionInfoKeys>
 						<VersionInfoKeys Name="LegalCopyright">Copyright © 2012 The Apache Software Foundation</VersionInfoKeys>
 						<VersionInfoKeys Name="LegalTrademarks"/>
 						<VersionInfoKeys Name="OriginalFilename">DelphiClient.exe</VersionInfoKeys>
 						<VersionInfoKeys Name="ProductName">Thrift</VersionInfoKeys>
-						<VersionInfoKeys Name="ProductVersion">0.21.0.0</VersionInfoKeys>
+						<VersionInfoKeys Name="ProductVersion">0.22.0.0</VersionInfoKeys>
 						<VersionInfoKeys Name="Comments"/>
 					</VersionInfoKeys>
 					<Source>
diff --git a/tutorial/delphi/DelphiServer/DelphiServer.dproj b/tutorial/delphi/DelphiServer/DelphiServer.dproj
index 376d90a..43c963a 100644
--- a/tutorial/delphi/DelphiServer/DelphiServer.dproj
+++ b/tutorial/delphi/DelphiServer/DelphiServer.dproj
@@ -121,13 +121,13 @@
 					<VersionInfoKeys>
 						<VersionInfoKeys Name="CompanyName"/>
 						<VersionInfoKeys Name="FileDescription">Thrift Tutorial</VersionInfoKeys>
-						<VersionInfoKeys Name="FileVersion">0.21.0.0</VersionInfoKeys>
+						<VersionInfoKeys Name="FileVersion">0.22.0.0</VersionInfoKeys>
 						<VersionInfoKeys Name="InternalName">DelphiServer</VersionInfoKeys>
 						<VersionInfoKeys Name="LegalCopyright">Copyright © 2012 The Apache Software Foundation</VersionInfoKeys>
 						<VersionInfoKeys Name="LegalTrademarks"/>
 						<VersionInfoKeys Name="OriginalFilename">DelphiServer.exe</VersionInfoKeys>
 						<VersionInfoKeys Name="ProductName">Thrift</VersionInfoKeys>
-						<VersionInfoKeys Name="ProductVersion">0.21.0.0</VersionInfoKeys>
+						<VersionInfoKeys Name="ProductVersion">0.22.0.0</VersionInfoKeys>
 						<VersionInfoKeys Name="Comments"/>
 					</VersionInfoKeys>
 					<Source>
diff --git a/tutorial/netstd/Client/Client.csproj b/tutorial/netstd/Client/Client.csproj
index ebc63ac..732943f 100644
--- a/tutorial/netstd/Client/Client.csproj
+++ b/tutorial/netstd/Client/Client.csproj
@@ -24,7 +24,7 @@
     <AssemblyName>Client</AssemblyName>
     <PackageId>Client</PackageId>
     <OutputType>Exe</OutputType>
-    <Version>0.21.0.0</Version>
+    <Version>0.22.0.0</Version>
     <GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
     <GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute>
     <GenerateAssemblyProductAttribute>false</GenerateAssemblyProductAttribute>
diff --git a/tutorial/netstd/Interfaces/Interfaces.csproj b/tutorial/netstd/Interfaces/Interfaces.csproj
index b0de842..2791dc8 100644
--- a/tutorial/netstd/Interfaces/Interfaces.csproj
+++ b/tutorial/netstd/Interfaces/Interfaces.csproj
@@ -22,7 +22,7 @@
     <TargetFramework>net8.0</TargetFramework>
     <AssemblyName>Interfaces</AssemblyName>
     <PackageId>Interfaces</PackageId>
-    <Version>0.21.0.0</Version>
+    <Version>0.22.0.0</Version>
     <GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
     <GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute>
     <GenerateAssemblyProductAttribute>false</GenerateAssemblyProductAttribute>
diff --git a/tutorial/netstd/Server/Server.csproj b/tutorial/netstd/Server/Server.csproj
index 38131a6..16b72e2 100644
--- a/tutorial/netstd/Server/Server.csproj
+++ b/tutorial/netstd/Server/Server.csproj
@@ -24,7 +24,7 @@
     <AssemblyName>Server</AssemblyName>
     <PackageId>Server</PackageId>
     <OutputType>Exe</OutputType>
-    <Version>0.21.0.0</Version>
+    <Version>0.22.0.0</Version>
     <GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
     <GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute>
     <GenerateAssemblyProductAttribute>false</GenerateAssemblyProductAttribute>
diff --git a/tutorial/ocaml/_oasis b/tutorial/ocaml/_oasis
index 180f865..12ec7f9 100644
--- a/tutorial/ocaml/_oasis
+++ b/tutorial/ocaml/_oasis
@@ -1,5 +1,5 @@
 Name: tutorial
-Version: 0.21.0
+Version: 0.22.0
 OASISFormat: 0.3
 Synopsis: OCaml Tutorial example
 Authors: Apache Thrift Developers <dev@thrift.apache.org>
