From a26bd6ef94d28fbc6bc240272d216258abbd3a60 Mon Sep 17 00:00:00 2001
From: "J. Ryan Stinnett" <jryans@gmail.com>
Date: Fri, 14 Feb 2020 11:43:08 +0000
Subject: [PATCH] Add auto-upgrade support for SDK deps

This automates the SDK upgrade step of the release process.
---
 release.sh | 17 +++++++++++++----
 1 file changed, 13 insertions(+), 4 deletions(-)

diff --git a/release.sh b/release.sh
index d53ea5e8..44a58d44 100755
--- a/release.sh
+++ b/release.sh
@@ -24,14 +24,23 @@ do
     latestver=`yarn info -s $i dist-tags.next`
     if [ "$depver" != "$latestver" ]
     then
-        echo "The latest version of $i is $latestver but package.json depends on $depver"
-        echo -n "Type 'Yes' to continue anyway: "
+        echo "The latest version of $i is $latestver but package.json depends on $depver."
+        echo -n "Type 'u' to auto-upgrade, 'c' to continue anyway, or 'a' to abort:"
         read resp
-        if [ "$resp" != "Yes" ]
+        if [ "$resp" != "u" ] && [ "$resp" != "c" ]
         then
-            echo "OK, never mind."
+            echo "Aborting."
             exit 1
         fi
+        if [ "$resp" == "u" ]
+        then
+            echo "Upgrading $i to $latestver..."
+            yarn add -E $i@$latestver
+            git add -u
+            # The `-e` flag opens the editor and gives you a chance to check
+            # the upgrade for correctness.
+            git commit -m "Upgrade $i to $latestver" -e
+        fi
     fi
 done