Skip to content

Commit 4deaf10

Browse files
authored
chore: provide warnings about newer versions; also fix typo in parfuemerie-douglas package URL (#656)
Signed-off-by: Nick Boldt <[email protected]>
1 parent b0d0026 commit 4deaf10

File tree

3 files changed

+38
-17
lines changed

3 files changed

+38
-17
lines changed

modules/dynamic-plugins/ref-community-plugins.adoc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ Details on how {company-name} provides support for bundled community dynamic plu
5959
`AZURE_ORG`
6060

6161

62-
|Azure Repositories |`https://npmjs.com/package/@parfuemerie/douglas-scaffolder-backend-module-azure-repositories/v/0.3.0[@parfuemerie/douglas-scaffolder-backend-module-azure-repositories]` |0.3.0
62+
|Azure Repositories |`https://npmjs.com/package/@parfuemerie-douglas/scaffolder-backend-module-azure-repositories/v/0.3.0[@parfuemerie-douglas/scaffolder-backend-module-azure-repositories]` |0.3.0
6363
|`./dynamic-plugins/dist/parfuemerie-douglas-scaffolder-backend-module-azure-repositories`
6464

6565

modules/dynamic-plugins/rhdh-supported-plugins.csv

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
"Azure ","@backstage/plugin-scaffolder-backend-module-azure","Backend","0.1.14","Community Support","./dynamic-plugins/dist/backstage-plugin-scaffolder-backend-module-azure-dynamic",";","Disabled"
2828
"Azure Devops ","@backstage/plugin-azure-devops","Frontend","0.4.4","Community Support","./dynamic-plugins/dist/backstage-plugin-azure-devops",";","Disabled"
2929
"Azure Devops ","@backstage/plugin-azure-devops-backend","Backend","0.6.5","Community Support","./dynamic-plugins/dist/backstage-plugin-azure-devops-backend-dynamic","`AZURE_TOKEN`;`AZURE_ORG`;","Disabled"
30-
"Azure Repositories ","@parfuemerie/douglas-scaffolder-backend-module-azure-repositories","Backend","0.3.0","Community Support","./dynamic-plugins/dist/parfuemerie-douglas-scaffolder-backend-module-azure-repositories",";","Disabled"
30+
"Azure Repositories ","@parfuemerie-douglas/scaffolder-backend-module-azure-repositories","Backend","0.3.0","Community Support","./dynamic-plugins/dist/parfuemerie-douglas-scaffolder-backend-module-azure-repositories",";","Disabled"
3131
"Bitbucket Cloud ","@backstage/plugin-catalog-backend-module-bitbucket-cloud","Backend","0.2.9","Community Support","./dynamic-plugins/dist/backstage-plugin-catalog-backend-module-bitbucket-cloud-dynamic","`BITBUCKET_WORKSPACE`;","Disabled"
3232
"Bitbucket Cloud ","@backstage/plugin-scaffolder-backend-module-bitbucket-cloud","Backend","0.1.12","Community Support","./dynamic-plugins/dist/backstage-plugin-scaffolder-backend-module-bitbucket-cloud-dynamic",";","Disabled"
3333
"Bitbucket Server ","@backstage/plugin-catalog-backend-module-bitbucket-server","Backend","0.1.36","Community Support","./dynamic-plugins/dist/backstage-plugin-catalog-backend-module-bitbucket-server-dynamic","`BITBUCKET_HOST`;","Disabled"

modules/dynamic-plugins/rhdh-supported-plugins.sh

Lines changed: 36 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -81,13 +81,15 @@ titlecase() {
8181
}
8282

8383
# generate a list of plugin:version mapping from the following files
84-
# * dynamic-plugins/imports/package.json#.peerDependencies or .dependencies
85-
# * packages/app/package.json#.dependencies
86-
# * packages/backend/package.json#.dependencies
87-
pluginVersFile=/tmp/plugin-versions.txt
88-
jq -r '.peerDependencies' /tmp/backstage-showcase/dynamic-plugins/imports/package.json | grep -E -v "\"\*\"|\{|\}" | grep "@" | tr -d "," > $pluginVersFile
89-
jq -r '.dependencies' /tmp/backstage-showcase/packages/{app,backend}/package.json | grep -E -v "\"\*\"|\{|\}" | grep "@" | tr -d "," >> $pluginVersFile
90-
cat $pluginVersFile | sort -uV > $pluginVersFile.out; mv -f $pluginVersFile.out $pluginVersFile
84+
# * dynamic-plugins/imports/package.json#.peerDependencies or .dependencies
85+
# * packages/app/package.json#.dependencies
86+
# * packages/backend/package.json#.dependencies
87+
pluginVersFile=/tmp/plugin-versions.txt
88+
jq -r '.peerDependencies' /tmp/backstage-showcase/dynamic-plugins/imports/package.json | grep -E -v "\"\*\"|\{|\}" | grep "@" | tr -d "," > $pluginVersFile
89+
jq -r '.dependencies' /tmp/backstage-showcase/packages/{app,backend}/package.json | grep -E -v "\"\*\"|\{|\}" | grep "@" | tr -d "," >> $pluginVersFile
90+
cat $pluginVersFile | sort -uV > $pluginVersFile.out; mv -f $pluginVersFile.out $pluginVersFile
91+
92+
rm -fr /tmp/warnings.txt
9193

9294
# create arrays of adoc and csv content
9395
declare -A adoc1
@@ -118,7 +120,9 @@ for j in $jsons; do
118120
# backstage-plugin-catalog-backend-module-bitbucket-cloud => @backstage/plugin-catalog-backend-module-bitbucket-cloud
119121
Plugin="${Name}"
120122
if [[ $Plugin != "@"* ]]; then # don't update janus-idp/backstage-plugins plugin names
121-
Plugin="$(echo "${Plugin}" | sed -r -e 's/([^-]+)-(.+)/\@\1\/\2/' -e 's|backstage/community-|backstage-community/|')"
123+
Plugin="$(echo "${Plugin}" | sed -r -e 's/([^-]+)-(.+)/\@\1\/\2/' \
124+
-e 's|backstage/community-|backstage-community/|' \
125+
-e 's|parfuemerie/douglas-|parfuemerie-douglas/|')"
122126
fi
123127

124128
# "dynamic-plugins/wrappers/backstage-plugin-catalog-backend-module-bitbucket-cloud" ==> ./dynamic-plugins/dist/backstage-plugin-catalog-backend-module-bitbucket-cloud-dynamic
@@ -153,22 +157,34 @@ for j in $jsons; do
153157
if [[ ! $Path ]]; then
154158
continue
155159
elif [[ $Path ]] || [[ "$j" == *"/wrappers/"* ]]; then
156-
157160
# RHIDP-3203 just use the .package value from /tmp/backstage-showcase/dynamic-plugins.default.yaml as the Path
158-
159-
160161
Role=$(jq -r '.backstage.role' "$j")
161-
162-
Version=$(jq -r '.version' "$j")
162+
VersionJQ=$(jq -r '.version' "$j")
163163
# check this version against other references to the plugin in
164164
# * dynamic-plugins/imports/package.json#.peerDependencies or .dependencies
165165
# * packages/app/package.json#.dependencies
166166
# * packages/backend/package.json#.dependencies
167-
echo "[DEBUG] Check version of $Name is really $Version ..."
167+
echo "[DEBUG] Check version of $Name is really $VersionJQ (from Path = $Path)..."
168168
match=$(grep "\"$Name\": \"" $pluginVersFile || true)
169+
Version=$VersionJQ
169170
if [[ $match ]]; then
170171
Version=$(echo "${match}" | sed -r -e "s/.+\": \"([0-9.]+)\"/\1/")
171-
echo "[DEBUG] Updated version = $Version"
172+
echo "[WARN] !! Using $pluginVersFile version = $Version, not $VersionJQ from $Path" | tee -a /tmp/warnings.txt
173+
fi
174+
175+
# check if there's a newer version at npmjs.com and warn if so
176+
# for tags and associated repo digests (git head)
177+
# curl -sSLko- https://registry.npmjs.org/@janus-idp%2fcli | jq -r '.versions[]|(.version+", "+.gitHead)' | sort -uV
178+
# for timestamp when tag is created
179+
# curl -sSLko- https://registry.npmjs.org/@janus-idp%2fcli | jq -r '.time' | grep -v -E "created|modified|{|}" | sort -uV
180+
allVersionsPublished="$(curl -sSLko- "https://registry.npmjs.org/${Plugin/\//%2f}" | jq -r '.versions[].version')"
181+
# echo $allVersionsPublished
182+
# clean out any pre-release versions
183+
latestXYRelease="$(echo "$allVersionsPublished" | grep -v -E -- "next|alpha|-" | grep -E "^${Version%.*}" | sort -uV | tail -1)"
184+
echo "[DEBUG] Latest x.y version at https://registry.npmjs.org/${Plugin/\//%2f} : $latestXYRelease"
185+
if [[ "$latestXYRelease" != "$Version" ]]; then
186+
echo "[WARN] !! Newer $latestXYRelease > $Version - should upgrade to https://www.npmjs.com/package/$Plugin/v/$latestXYRelease !!" | tee -a /tmp/warnings.txt
187+
echo | tee -a /tmp/warnings.txt
172188
fi
173189

174190
# default to community unless it's a RH-authored plugin
@@ -320,3 +336,8 @@ if [[ -f "${ENABLED_PLUGINS}.errors" ]]; then cat "${ENABLED_PLUGINS}.errors"; f
320336
# cleanup
321337
rm -f "$ENABLED_PLUGINS" "${ENABLED_PLUGINS}.errors"
322338
# rm -fr /tmp/backstage-plugins /tmp/backstage-showcase
339+
340+
warnings=$(grep -c "WARN" "/tmp/warnings.txt")
341+
if [[ $warnings -gt 0 ]]; then
342+
echo; echo "[WARN] $warnings warnings collected in /tmp/warnings.txt ! Consider upgrading upstream project to newer plugin versions !"
343+
fi

0 commit comments

Comments
 (0)