From 7a00835cb339d29f717904f51ffef7443399dcce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20Gonc=CC=A7alves?= Date: Tue, 23 Sep 2025 18:15:01 +0100 Subject: [PATCH 1/5] Replace sed with jq to update Package.resolved --- Scripts/update-sdk-version.sh | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/Scripts/update-sdk-version.sh b/Scripts/update-sdk-version.sh index ba542a27bf..67e473b4fd 100755 --- a/Scripts/update-sdk-version.sh +++ b/Scripts/update-sdk-version.sh @@ -25,5 +25,15 @@ echo "✅ Updated revision line in $PROJECT_FILE" echo "🔧 Updating revision in $PACKAGE_RESOLVED..." CURRENT_HASH=$(jq -r '.pins[] | select(.identity == "sdk-swift") | .state.revision' "$PACKAGE_RESOLVED") echo "Current hash in Package.resolved: $CURRENT_HASH" -sed -i.bak "s/$CURRENT_HASH/$SDK_SWIFT_REF/g" "$PACKAGE_RESOLVED" +jq --arg new "$SDK_SWIFT_REF" ' + .pins |= map( + if .identity == "sdk-swift" then + .state.revision = $new + else + . + end + ) +' "$PACKAGE_RESOLVED" > "$tmp_file" && mv "$tmp_file" "$PACKAGE_RESOLVED" + +echo "✅ Updated revision in $PACKAGE_RESOLVED" echo "✅ Updated revision in $PACKAGE_RESOLVED" From 37a556e8311b322d21fb8d703c09385d5ae5bbd7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20Gonc=CC=A7alves?= Date: Tue, 23 Sep 2025 19:20:33 +0100 Subject: [PATCH 2/5] Extract only the first hash in case the commit message has multiple hashes --- .github/workflows/sdlc-sdk-update.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/sdlc-sdk-update.yml b/.github/workflows/sdlc-sdk-update.yml index 2af86c7c00..03336621fb 100644 --- a/.github/workflows/sdlc-sdk-update.yml +++ b/.github/workflows/sdlc-sdk-update.yml @@ -134,7 +134,7 @@ jobs: COMMIT_MESSAGE=$(gh api "repos/bitwarden/sdk-swift/commits/$SDK_SWIFT_REF" --jq '.commit.message') echo "👀 sdk-swift ref commit message: \"$COMMIT_MESSAGE\"" - SDK_INTERNAL_REF=$(echo "$COMMIT_MESSAGE" | grep -oE '[a-f0-9]{40}') + SDK_INTERNAL_REF=$(echo "$COMMIT_MESSAGE" | grep -oE '[a-f0-9]{40}' | head -n1) if [ -z "$SDK_INTERNAL_REF" ]; then echo "::error::Failed to parse sdk-internal ref from commit message." exit 1 From 282f6b18347a3f03c79f9c1f9ec961cda3f2eabb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20Gonc=CC=A7alves?= Date: Tue, 23 Sep 2025 20:34:49 +0100 Subject: [PATCH 3/5] Refactor and add missing command --- Scripts/update-sdk-version.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Scripts/update-sdk-version.sh b/Scripts/update-sdk-version.sh index 67e473b4fd..7e0adaf636 100755 --- a/Scripts/update-sdk-version.sh +++ b/Scripts/update-sdk-version.sh @@ -25,6 +25,7 @@ echo "✅ Updated revision line in $PROJECT_FILE" echo "🔧 Updating revision in $PACKAGE_RESOLVED..." CURRENT_HASH=$(jq -r '.pins[] | select(.identity == "sdk-swift") | .state.revision' "$PACKAGE_RESOLVED") echo "Current hash in Package.resolved: $CURRENT_HASH" +TMP_FILE=$(mktemp) jq --arg new "$SDK_SWIFT_REF" ' .pins |= map( if .identity == "sdk-swift" then @@ -33,7 +34,6 @@ jq --arg new "$SDK_SWIFT_REF" ' . end ) -' "$PACKAGE_RESOLVED" > "$tmp_file" && mv "$tmp_file" "$PACKAGE_RESOLVED" +' "$PACKAGE_RESOLVED" > "$TMP_FILE" && mv "$TMP_FILE" "$PACKAGE_RESOLVED" echo "✅ Updated revision in $PACKAGE_RESOLVED" -echo "✅ Updated revision in $PACKAGE_RESOLVED" From 98350ec84f399cad5dc668df4021e937e2193c30 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20Gonc=CC=A7alves?= Date: Wed, 24 Sep 2025 10:50:06 +0100 Subject: [PATCH 4/5] Add logs to script --- Scripts/update-sdk-version.sh | 64 +++++++++++++++++++++++++++++++++-- 1 file changed, 61 insertions(+), 3 deletions(-) diff --git a/Scripts/update-sdk-version.sh b/Scripts/update-sdk-version.sh index 7e0adaf636..4477326aaa 100755 --- a/Scripts/update-sdk-version.sh +++ b/Scripts/update-sdk-version.sh @@ -23,9 +23,41 @@ echo "✅ Updated revision line in $PROJECT_FILE" # Update Package.resolved echo "🔧 Updating revision in $PACKAGE_RESOLVED..." + +# Show file status +ls -l "$PACKAGE_RESOLVED" || echo "❌ File not found: $PACKAGE_RESOLVED" + +CURRENT_SDK_SWIFT_BLOCK=$(jq -r '.pins[] | select(.identity == "sdk-swift")' "$PACKAGE_RESOLVED") +echo "🔎 Current sdk_swift block Package.resolved:" +echo $CURRENT_SDK_SWIFT_BLOCK + +# Extract current hash CURRENT_HASH=$(jq -r '.pins[] | select(.identity == "sdk-swift") | .state.revision' "$PACKAGE_RESOLVED") -echo "Current hash in Package.resolved: $CURRENT_HASH" +echo "🔎 Current hash in Package.resolved: $CURRENT_HASH" +echo "🔁 Target replacement hash: $SDK_SWIFT_REF" + +# Validate extracted value +if [ -z "$CURRENT_HASH" ]; then + echo "::error::❌ Could not extract current hash with jq — check input file format." + exit 1 +fi + +# 🔐 Ensure file is writable +if [ ! -w "$PACKAGE_RESOLVED" ]; then + echo "🔓 File is not writable, attempting chmod +w..." + chmod +w "$PACKAGE_RESOLVED" || { + echo "::error::❌ Failed to make $PACKAGE_RESOLVED writable." + exit 1 + } +else + echo "✅ $PACKAGE_RESOLVED is writable." +fi + +# Create temp file and run jq TMP_FILE=$(mktemp) +echo "📂 Temp file for jq output: $TMP_FILE" + +echo "🛠️ Running jq update..." jq --arg new "$SDK_SWIFT_REF" ' .pins |= map( if .identity == "sdk-swift" then @@ -34,6 +66,32 @@ jq --arg new "$SDK_SWIFT_REF" ' . end ) -' "$PACKAGE_RESOLVED" > "$TMP_FILE" && mv "$TMP_FILE" "$PACKAGE_RESOLVED" +' "$PACKAGE_RESOLVED" > "$TMP_FILE" + +JQ_EXIT_CODE=$? +echo "🔚 jq exit code: $JQ_EXIT_CODE" +if [ $JQ_EXIT_CODE -ne 0 ]; then + echo "::error::❌ jq failed to write to temp file." + cat "$TMP_FILE" || echo "⚠️ Temp file is empty or corrupted" + exit 1 +fi + +# Show jq output for review +CURRENT_SDK_SWIFT_BLOCK=$(jq -r '.pins[] | select(.identity == "sdk-swift")' "$TMP_FILE") +echo "🔎 Current sdk_swift block from temp file:" +echo $CURRENT_SDK_SWIFT_BLOCK + +# Final check before replacing +if [ ! -s "$TMP_FILE" ]; then + echo "::error::❌ jq output is empty. Aborting replacement." + exit 1 +fi + +# Replace the file +mv "$TMP_FILE" "$PACKAGE_RESOLVED" +echo "✅ Successfully updated revision in $PACKAGE_RESOLVED" -echo "✅ Updated revision in $PACKAGE_RESOLVED" +# Show jq output for review +CURRENT_SDK_SWIFT_BLOCK=$(jq -r '.pins[] | select(.identity == "sdk-swift")' "$PACKAGE_RESOLVED") +echo "🔎 Current sdk_swift block Package.resolved:" +echo $CURRENT_SDK_SWIFT_BLOCK From 54323f4199cd0136b206f7664e85e73c910c541f Mon Sep 17 00:00:00 2001 From: "bw-ghapp[bot]" <178206702+bw-ghapp[bot]@users.noreply.github.com> Date: Wed, 24 Sep 2025 10:37:21 +0000 Subject: [PATCH 5/5] SDK Update - b10919f (1.0.0-2487-c975847) --- project-common.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project-common.yml b/project-common.yml index 88b73d7b59..1c8e0b14b8 100644 --- a/project-common.yml +++ b/project-common.yml @@ -14,7 +14,7 @@ include: packages: BitwardenSdk: url: https://github.com/bitwarden/sdk-swift - revision: f3c527ff2c53b576743e090ed118f0a5a7c613d3 # 1.0.0-2469-1ca5a58 + revision: b10919f8b50d3d27b7d3e0d9f674203c0f0bd9ec # 1.0.0-2487-c975847 branch: unstable Firebase: url: https://github.com/firebase/firebase-ios-sdk