Skip to content

Commit ee9abcf

Browse files
committed
build: update publish sequence
This commit updates the publish sequence, fixing various bugs, and skipping several steps due to failing build steps. Two of the skipped steps (updating Markdown related sections and updating package URLs) should be resolved in short order and can be re-enabled. The third, publishing standalone dist bundles, needs to be investigated, as bundle tests are failing after generating the bundles.
1 parent 7784435 commit ee9abcf

File tree

1 file changed

+60
-31
lines changed

1 file changed

+60
-31
lines changed

tools/scripts/npm_publish

+60-31
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,6 @@ on_error() {
9292
# Runs clean-up tasks.
9393
cleanup() {
9494
rm -rf "${npm_tarball_build_out}"
95-
9695
}
9796

9897
# Prints a success message.
@@ -414,37 +413,65 @@ update_version() {
414413
return 0
415414
}
416415

417-
# Updates the `@stdlib` dependencies in the root package.json to their latest versions.
418-
update_internal_dependencies() {
419-
echo 'Updating `@stdlib` dependency versions...' >&2
420-
echo 'Getting list of `@stdlib` dependencies...' >&2
416+
# Updates the top-level stdlib namespace dependencies in the root package.json to their latest published versions.
417+
update_namespace_dependency_versions() {
418+
echo 'Updating top-level stdlib namespace dependency versions...' >&2
419+
420+
echo "Package.json: ${package_json}" >&2
421+
echo 'Resolving list of stdlib dependencies...' >&2
421422
script="var pkg = require( '${package_json}' ); var keys = Object.keys( pkg.dependencies ); for ( var i = 0; i < keys.length; i++ ) { if ( /^@stdlib/.test( keys[ i ] ) ) { console.log( keys[ i ] ); } }"
422-
dependencies="$(node -e "${script}")"
423+
dependencies=$(node -e "${script}")
423424
if [[ "$?" -ne 0 ]]; then
424425
echo '' >&2
425-
echo 'Error: unexpected error. Encountered an error when getting list of `@stdlib` dependencies.' >&2
426+
echo 'Error: unexpected error. Encountered an error when getting list of stdlib dependencies.' >&2
426427
echo '' >&2
427428
return 1
428429
fi
429-
echo 'Retrieving latest versions for `@stdlib` dependencies...' >&2
430-
for dependency in ${dependencies}; do
431-
pkgVersion="$(npm view "${dependency}" version)"
432-
echo "Updating ${dependency} to ${pkgVersion} in ${package_json}..." >&2
433-
echo "s%\"${dependency}\":[^,]*%\"${dependency}\": \"${pkgVersion}\"%" >&2
430+
echo "${dependencies}" >&2
431+
echo '' >&2
432+
433+
# Convert the newline-delimited output to a bash array:
434+
dependencies=( $(echo "${dependencies}" | tr '\n' ' ') )
435+
436+
echo 'Setting versions to latest versions...' >&2
437+
for dependency in "${dependencies[@]}"; do
438+
pkgVersion=$(npm view "${dependency}" version --loglevel=error)
439+
if [[ "$?" -ne 0 ]]; then
440+
echo '' >&2
441+
echo "Error: unexpected error. Encountered an error when resolving the latest published version for ${dependency}." >&2
442+
echo '' >&2
443+
return 1
444+
fi
434445
if [[ "$OSTYPE" == "darwin"* ]]; then
435-
sed -i '' "s%\"${dependency}\":[^,]*%\"${dependency}\": \"${pkgVersion}\"%" "${package_json}"
446+
sed -i '' "s%\"${dependency}\":[^,]*%\"${dependency}\": \"^${pkgVersion}\"%" "${package_json}"
436447
else
437-
sed -i "s%\"${dependency}\":[^,]*%\"${dependency}\": \"${pkgVersion}\"%" "${package_json}"
448+
sed -i "s%\"${dependency}\":[^,]*%\"${dependency}\": \"^${pkgVersion}\"%" "${package_json}"
438449
fi
439450
if [[ "$?" -ne 0 ]]; then
440451
echo '' >&2
441-
echo "Error: unexpected error. Encountered an error when updating ${dependency}." >&2
452+
echo "Error: unexpected error. Encountered an error when updating the version of ${dependency}." >&2
442453
echo '' >&2
443454
return 1
444455
fi
445456
echo "Updated version for ${dependency}: ${pkgVersion}" >&2
446457
done
447-
echo 'Successfully updated dependency versions.' >&2
458+
459+
if [[ -n "$(git status --porcelain)" ]]; then
460+
echo '' >&2
461+
echo 'Committing changes...' >&2
462+
git add -A && git commit -m 'build: update top-level namespace versions'
463+
if [[ "$?" -ne 0 ]]; then
464+
echo '' >&2
465+
echo 'Error: unexpected error. Unable to commit changes.' >&2
466+
echo '' >&2
467+
return 1
468+
fi
469+
echo 'Successfully committed changes.' >&2
470+
fi
471+
echo '' >&2
472+
echo 'Successfully updated stdlib dependency versions.' >&2
473+
echo '' >&2
474+
return 0
448475
}
449476

450477
# Generates and publishes distributable bundles.
@@ -624,16 +651,18 @@ main() {
624651
revert_changes
625652
on_error 1
626653
fi
627-
update_markdown_related
628-
if [[ "$?" -ne 0 ]]; then
629-
revert_changes
630-
on_error 1
631-
fi
632-
update_markdown_package_urls
633-
if [[ "$?" -ne 0 ]]; then
634-
revert_changes
635-
on_error 1
636-
fi
654+
655+
# update_markdown_related
656+
# if [[ "$?" -ne 0 ]]; then
657+
# revert_changes
658+
# on_error 1
659+
# fi
660+
# update_markdown_package_urls
661+
# if [[ "$?" -ne 0 ]]; then
662+
# revert_changes
663+
# on_error 1
664+
# fi
665+
637666
update_repl_docs
638667
if [[ "$?" -ne 0 ]]; then
639668
revert_changes
@@ -644,18 +673,18 @@ main() {
644673
revert_changes
645674
on_error 1
646675
fi
647-
update_internal_dependencies
676+
update_namespace_dependency_versions
648677
if [[ "$?" -ne 0 ]]; then
649678
revert_changes
650679
on_error 1
651680
fi
652681

653682
# WARNING: at this point, we are at the point of no return and, from this point forward, cannot easily revert changes to the local repository as packages may already be published...
654683

655-
publish_bundles
656-
if [[ "$?" -ne 0 ]]; then
657-
on_error 1
658-
fi
684+
# publish_bundles
685+
# if [[ "$?" -ne 0 ]]; then
686+
# on_error 1
687+
# fi
659688
create_tag
660689
if [[ "$?" -ne 0 ]]; then
661690
on_error 1

0 commit comments

Comments
 (0)