From 3fd553ebf0893900ed6ef6aad6c9294b620b9fec Mon Sep 17 00:00:00 2001 From: Christopher Willis-Ford <7019101+cwillisf@users.noreply.github.com> Date: Wed, 18 Jun 2025 10:05:41 -0700 Subject: [PATCH] chore: add script to deprecate a version across all packages --- scripts/deprecate-version.sh | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100755 scripts/deprecate-version.sh diff --git a/scripts/deprecate-version.sh b/scripts/deprecate-version.sh new file mode 100755 index 0000000000..bddeef13ae --- /dev/null +++ b/scripts/deprecate-version.sh @@ -0,0 +1,24 @@ +#!/usr/bin/env bash + +version_to_deprecate="$1" +shift + +message="$1" +shift + +if [ -z "$version_to_deprecate" -o -z "$message" -o -n "$*" ]; then + echo "Usage: $0 " + echo "Example: $0 1.2.3 'This version is deprecated. Please upgrade to version 2.3.4 or newer.'" + exit 1 +fi + +echo "Deprecating version $version_to_deprecate with message: $message" + +# `readarray` is convenient to avoid piping into the loop, +# ensuring that npm can authenticate interactively if needed +readarray -t packages < <(npm -ws pkg get name | jq -r '.[]') + +for package in "${packages[@]}"; do + echo "Deprecating $package@$version_to_deprecate" + npm deprecate "$package@$version_to_deprecate" "$message" +done