@@ -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
9395declare -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
321337rm -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