From 3b82141de227aa3aedeb21e391d529bb33479b7f Mon Sep 17 00:00:00 2001 From: Chirag Aggarwal Date: Mon, 13 Oct 2025 15:25:51 +0530 Subject: [PATCH 1/2] Update .NET SDK to 0.21.2 and improve release detection - Update .NET SDK version to 0.21.2 with Object[] deserialization fix - Update sdk-generator dependency from 1.4.3 to 1.4.4 - Improve SDK release detection to check actual commit SHA of latest release tag instead of just checking releases targeting the branch --- app/config/platforms.php | 2 +- composer.lock | 12 ++++++------ docs/sdks/dotnet/CHANGELOG.md | 4 ++++ src/Appwrite/Platform/Tasks/SDKs.php | 17 +++++++++++------ 4 files changed, 22 insertions(+), 13 deletions(-) diff --git a/app/config/platforms.php b/app/config/platforms.php index 22606d803c..808ad486b7 100644 --- a/app/config/platforms.php +++ b/app/config/platforms.php @@ -357,7 +357,7 @@ return [ [ 'key' => 'dotnet', 'name' => '.NET', - 'version' => '0.21.1', + 'version' => '0.21.2', 'url' => 'https://github.com/appwrite/sdk-for-dotnet', 'package' => 'https://www.nuget.org/packages/Appwrite', 'enabled' => true, diff --git a/composer.lock b/composer.lock index 908a4d9d99..b544b18aab 100644 --- a/composer.lock +++ b/composer.lock @@ -5004,16 +5004,16 @@ "packages-dev": [ { "name": "appwrite/sdk-generator", - "version": "1.4.3", + "version": "1.4.4", "source": { "type": "git", "url": "https://github.com/appwrite/sdk-generator.git", - "reference": "e1ca749398189f36ec6d6afb8e9f64e9cb37e0a3" + "reference": "a20b20cfd70a1879f0d0fb2b4f669aa5ed836c49" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/appwrite/sdk-generator/zipball/e1ca749398189f36ec6d6afb8e9f64e9cb37e0a3", - "reference": "e1ca749398189f36ec6d6afb8e9f64e9cb37e0a3", + "url": "https://api.github.com/repos/appwrite/sdk-generator/zipball/a20b20cfd70a1879f0d0fb2b4f669aa5ed836c49", + "reference": "a20b20cfd70a1879f0d0fb2b4f669aa5ed836c49", "shasum": "" }, "require": { @@ -5049,9 +5049,9 @@ "description": "Appwrite PHP library for generating API SDKs for multiple programming languages and platforms", "support": { "issues": "https://github.com/appwrite/sdk-generator/issues", - "source": "https://github.com/appwrite/sdk-generator/tree/1.4.3" + "source": "https://github.com/appwrite/sdk-generator/tree/1.4.4" }, - "time": "2025-10-01T06:25:19+00:00" + "time": "2025-10-13T09:20:49+00:00" }, { "name": "doctrine/annotations", diff --git a/docs/sdks/dotnet/CHANGELOG.md b/docs/sdks/dotnet/CHANGELOG.md index deb467ce3d..dfd28ad686 100644 --- a/docs/sdks/dotnet/CHANGELOG.md +++ b/docs/sdks/dotnet/CHANGELOG.md @@ -1,5 +1,9 @@ # Change Log +## 0.21.2 + +* Fix: handle Object[] during array deserialization + ## 0.21.1 * Add transaction support for Databases and TablesDB diff --git a/src/Appwrite/Platform/Tasks/SDKs.php b/src/Appwrite/Platform/Tasks/SDKs.php index 7bd3deabac..f37f04da38 100644 --- a/src/Appwrite/Platform/Tasks/SDKs.php +++ b/src/Appwrite/Platform/Tasks/SDKs.php @@ -285,12 +285,17 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND $latestCommitSha = trim(\shell_exec($latestCommitCommand) ?? ''); if (!empty($latestCommitSha)) { - $commitReleasesCommand = 'gh api repos/' . $repoName . '/releases --jq ".[] | select(.target_commitish == \"' . $releaseTarget . '\") | .tag_name" 2>/dev/null | head -n 1'; - $existingCommitRelease = trim(\shell_exec($commitReleasesCommand) ?? ''); - - if (!empty($existingCommitRelease)) { - Console::warning("Latest commit on {$releaseTarget} already has a release ({$existingCommitRelease}) for {$language['name']} SDK, skipping to avoid empty release..."); - continue; + $latestReleaseTagCommand = 'gh api repos/' . $repoName . '/releases --jq ".[0] | .tag_name" 2>/dev/null'; + $latestReleaseTag = trim(\shell_exec($latestReleaseTagCommand) ?? ''); + + if (!empty($latestReleaseTag)) { + $tagCommitCommand = 'gh api repos/' . $repoName . '/git/ref/tags/' . $latestReleaseTag . ' --jq ".object.sha" 2>/dev/null'; + $tagCommitSha = trim(\shell_exec($tagCommitCommand) ?? ''); + + if (!empty($tagCommitSha) && $latestCommitSha === $tagCommitSha) { + Console::warning("Latest commit on {$releaseTarget} already has a release ({$latestReleaseTag}) for {$language['name']} SDK, skipping to avoid empty release..."); + continue; + } } } From 6f5ac232c5e69c6dc0a0bef58663741055cd2d62 Mon Sep 17 00:00:00 2001 From: Chirag Aggarwal Date: Mon, 13 Oct 2025 16:01:55 +0530 Subject: [PATCH 2/2] lint --- src/Appwrite/Platform/Tasks/SDKs.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Appwrite/Platform/Tasks/SDKs.php b/src/Appwrite/Platform/Tasks/SDKs.php index f37f04da38..2fb15c5f7d 100644 --- a/src/Appwrite/Platform/Tasks/SDKs.php +++ b/src/Appwrite/Platform/Tasks/SDKs.php @@ -287,11 +287,11 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND if (!empty($latestCommitSha)) { $latestReleaseTagCommand = 'gh api repos/' . $repoName . '/releases --jq ".[0] | .tag_name" 2>/dev/null'; $latestReleaseTag = trim(\shell_exec($latestReleaseTagCommand) ?? ''); - + if (!empty($latestReleaseTag)) { $tagCommitCommand = 'gh api repos/' . $repoName . '/git/ref/tags/' . $latestReleaseTag . ' --jq ".object.sha" 2>/dev/null'; $tagCommitSha = trim(\shell_exec($tagCommitCommand) ?? ''); - + if (!empty($tagCommitSha) && $latestCommitSha === $tagCommitSha) { Console::warning("Latest commit on {$releaseTarget} already has a release ({$latestReleaseTag}) for {$language['name']} SDK, skipping to avoid empty release..."); continue;