diff --git a/.appveyor.yml b/.appveyor.yml
index 8c5ee46..4588477 100644
--- a/.appveyor.yml
+++ b/.appveyor.yml
@@ -1,15 +1,15 @@
 version: '{build}'
 skip_branch_with_pr: true
-image: Visual Studio 2019
+image: Visual Studio 2022
 install:
   - dotnet tool install coveralls.net --tool-path tools
-build_script:  
+build_script:
   - dotnet build src/Castle.Sdk
   - dotnet build src/Tests -c Debug
 after_build:
   - dotnet pack -c Release src/Castle.Sdk
-test_script:    
+test_script: 
   - dotnet test --no-build /p:CollectCoverage=true /p:CoverletOutputFormat=opencover /p:Include="[Castle.Sdk*]*" src/Tests/Tests.csproj
-  - ps: .\tools\csmacnz.coveralls.exe --opencover -i src/Tests/coverage.opencover.xml --useRelativePaths --repoToken $env:COVERALLS_REPO_TOKEN --commitId $env:APPVEYOR_REPO_COMMIT --commitBranch $env:APPVEYOR_REPO_BRANCH --commitAuthor $env:APPVEYOR_REPO_COMMIT_AUTHOR --commitEmail $env:APPVEYOR_REPO_COMMIT_AUTHOR_EMAIL --commitMessage $env:APPVEYOR_REPO_COMMIT_MESSAGE --jobId $env:APPVEYOR_JOB_ID  
+  - ps: .\tools\csmacnz.coveralls.exe --opencover -i src/Tests/coverage.opencover.xml --useRelativePaths --repoToken $env:COVERALLS_REPO_TOKEN --commitId $env:APPVEYOR_REPO_COMMIT --commitBranch $env:APPVEYOR_REPO_BRANCH --commitAuthor $env:APPVEYOR_REPO_COMMIT_AUTHOR --commitEmail $env:APPVEYOR_REPO_COMMIT_AUTHOR_EMAIL --commitMessage $env:APPVEYOR_REPO_COMMIT_MESSAGE --jobId $env:APPVEYOR_JOB_ID
 artifacts:
   - path: 'src\Castle.Sdk\bin\Release\*.nupkg'
diff --git a/.circleci/config.yml b/.circleci/config.yml
index 552c997..393258a 100644
--- a/.circleci/config.yml
+++ b/.circleci/config.yml
@@ -2,8 +2,9 @@ version: 2
 jobs:
   build:
     docker:
-      - image: mcr.microsoft.com/dotnet/core/sdk:3.1
+      - image: mcr.microsoft.com/dotnet/sdk:8.0
     steps:
+      - run: apt-get update && apt-get install -y ssh git
       - checkout
-      - run: cd src && dotnet build Castle.Sdk -c Release -f netstandard2.0
-      - run: cd src && dotnet test Tests
\ No newline at end of file
+      - run: cd src && dotnet build Castle.Sdk -c Release -f netstandard2.1
+      - run: cd src && dotnet test Tests
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 626a909..a45c09d 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,6 +2,11 @@
 
 ## master/develop
 
+## 2.2.0 (2024-05-15)
+
+Added support for `skip_request_token_validation` and `skip_context_validation` options,
+Added .net8 support
+
 ## 2.1.1 (2022-04-01)
 
 Added support for transaction and changeset objects
diff --git a/DEVELOPMENT.md b/DEVELOPMENT.md
index 0b24484..ddd20a7 100644
--- a/DEVELOPMENT.md
+++ b/DEVELOPMENT.md
@@ -9,7 +9,7 @@
 ## Build
 Build using your IDE, or with the `dotnet` command. Without .NET Framework, you won't be able to build for all target frameworks, so for `Castle.Sdk` you must specifically build for .NET Standard using the `-f` switch
 
-`dotnet build src/Castle.Sdk/Castle.Sdk.csproj -f netstandard2.0`  
+`dotnet build src/Castle.Sdk/Castle.Sdk.csproj -f netstandard2.1`
 
 ## Test
 ### Everything
diff --git a/src/Castle.Sdk/Castle.Sdk.csproj b/src/Castle.Sdk/Castle.Sdk.csproj
index 494ddcc..2d44f9e 100644
--- a/src/Castle.Sdk/Castle.Sdk.csproj
+++ b/src/Castle.Sdk/Castle.Sdk.csproj
@@ -4,7 +4,7 @@
     <GeneratePackageOnBuild>false</GeneratePackageOnBuild>
     <PackageProjectUrl>https://github.com/castle/castle-dotnet</PackageProjectUrl>
     <RootNamespace>Castle</RootNamespace>
-    <Version>3.0.0</Version>
+    <Version>2.2.0</Version>
     <Authors>Castle</Authors>
     <Product>Castle .NET SDK</Product>
     <Description>Castle SDK for C# / .NET</Description>