Skip to content

Commit f5c30b8

Browse files
committed
feat(upgrade-all): integrate package manager health checks into upgrade workflow
- Added Stage 6: Package Manager Health Checks to upgrade-all workflow - Health checks run after all upgrades complete - Detects conflicts in Python package managers (pip/pipx/uv) - Detects conflicts in Node.js package managers (npm/yarn/pnpm/bun) - Provides migration guidance when conflicts are found - Health check results logged and reported in upgrade summary - Updated workflow description from 5-stage to 6-stage
1 parent 96585d7 commit f5c30b8

1 file changed

Lines changed: 36 additions & 2 deletions

File tree

scripts/upgrade_all.sh

Lines changed: 36 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
set -euo pipefail
33

44
# upgrade_all.sh - Orchestrated full system upgrade
5-
# 5-stage workflow: refresh data → upgrade managers → upgrade runtimes → upgrade user managers → upgrade tools
5+
# 6-stage workflow: refresh data → upgrade managers → upgrade runtimes → upgrade user packages → upgrade tools → health checks
66

77
DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
88
PROJECT_ROOT="$(cd "$DIR/.." && pwd)"
@@ -635,7 +635,7 @@ stage_4_user_packages() {
635635
# Stage 5: Upgrade CLI Tools
636636
# ============================================================================
637637
stage_5_tools() {
638-
log_stage 5 5 "Upgrading CLI tools..."
638+
log_stage 5 6 "Upgrading CLI tools..."
639639

640640
cd "$PROJECT_ROOT"
641641

@@ -656,6 +656,39 @@ stage_5_tools() {
656656
log_info "For interactive guide, run: make upgrade"
657657
}
658658

659+
# ============================================================================
660+
# Stage 6: Package Manager Health Checks
661+
# ============================================================================
662+
stage_6_health_checks() {
663+
log_stage 6 6 "Running package manager health checks..."
664+
665+
cd "$PROJECT_ROOT"
666+
667+
# Python package manager health check
668+
log_info "Checking Python package managers..."
669+
if [ "$DRY_RUN" = "1" ]; then
670+
log_info "DRY-RUN: make check-python-managers"
671+
else
672+
if make check-python-managers >> "$LOG_FILE" 2>&1; then
673+
log_success "Python package managers (no conflicts)"
674+
else
675+
log_reconcile "Python package managers (conflicts detected, see log for guidance)"
676+
fi
677+
fi
678+
679+
# Node.js package manager health check
680+
log_info "Checking Node.js package managers..."
681+
if [ "$DRY_RUN" = "1" ]; then
682+
log_info "DRY-RUN: make check-node-managers"
683+
else
684+
if make check-node-managers >> "$LOG_FILE" 2>&1; then
685+
log_success "Node.js package managers (no conflicts)"
686+
else
687+
log_reconcile "Node.js package managers (conflicts detected, see log for guidance)"
688+
fi
689+
fi
690+
}
691+
659692
# ============================================================================
660693
# Main Execution
661694
# ============================================================================
@@ -683,6 +716,7 @@ main() {
683716
stage_3_runtimes || true
684717
stage_4_user_packages || true
685718
stage_5_tools || true
719+
stage_6_health_checks || true
686720

687721
# Summary
688722
local end_time=$(date +%s)

0 commit comments

Comments
 (0)