diff --git a/scripts/bump-version.sh b/scripts/bump-version.sh index 692d9def..9ac79c4d 100755 --- a/scripts/bump-version.sh +++ b/scripts/bump-version.sh @@ -1,6 +1,9 @@ #!/usr/bin/env bash # Bump CCS version # Usage: ./scripts/bump-version.sh [major|minor|patch] +# +# v4.5.0+: Bootstrap architecture - shell scripts delegate to Node.js +# Version is maintained in: VERSION, package.json, installers/* set -euo pipefail @@ -10,7 +13,7 @@ VERSION_FILE="$CCS_DIR/VERSION" # Check VERSION file exists if [[ ! -f "$VERSION_FILE" ]]; then - echo "✗ Error: VERSION file not found at $VERSION_FILE" + echo "[X] Error: VERSION file not found at $VERSION_FILE" exit 1 fi @@ -20,7 +23,7 @@ echo "Current version: $CURRENT_VERSION" # Parse version if [[ ! "$CURRENT_VERSION" =~ ^([0-9]+)\.([0-9]+)\.([0-9]+)$ ]]; then - echo "✗ Error: Invalid version format in VERSION file" + echo "[X] Error: Invalid version format in VERSION file" echo "Expected: MAJOR.MINOR.PATCH (e.g., 1.2.3)" exit 1 fi @@ -46,7 +49,7 @@ case "$BUMP_TYPE" in PATCH=$((PATCH + 1)) ;; *) - echo "✗ Error: Invalid bump type '$BUMP_TYPE'" + echo "[X] Error: Invalid bump type '$BUMP_TYPE'" echo "Usage: $0 [major|minor|patch]" exit 1 ;; @@ -58,11 +61,12 @@ echo "New version: $NEW_VERSION" echo "" echo "This will update hardcoded versions in:" echo " 1. VERSION file" -echo " 2. lib/ccs (bash executable)" -echo " 3. lib/ccs.ps1 (PowerShell executable)" -echo " 4. package.json (via sync-version.js)" -echo " 5. installers/install.sh" -echo " 6. installers/install.ps1" +echo " 2. package.json (via sync-version.js)" +echo " 3. installers/install.sh" +echo " 4. installers/install.ps1" +echo "" +echo "Note: lib/ccs and lib/ccs.ps1 are now bootstraps" +echo " (delegate to Node.js, no version hardcoded)" echo "" read -p "Continue? (y/N) " -n 1 -r echo @@ -74,63 +78,47 @@ fi # Update VERSION file echo "$NEW_VERSION" > "$VERSION_FILE" -echo "✓ Updated VERSION file to $NEW_VERSION" +echo "[OK] Updated VERSION file to $NEW_VERSION" -# Update ccs (bash executable) -CCS_BASH="$CCS_DIR/lib/ccs" -if [[ -f "$CCS_BASH" ]]; then - sed -i.bak "s/^CCS_VERSION=\".*\"/CCS_VERSION=\"$NEW_VERSION\"/" "$CCS_BASH" - rm -f "$CCS_BASH.bak" - echo "✓ Updated lib/ccs (bash executable)" -else - echo "⚠ lib/ccs not found, skipping" -fi - -# Update ccs.ps1 (PowerShell executable) -CCS_PS1="$CCS_DIR/lib/ccs.ps1" -if [[ -f "$CCS_PS1" ]]; then - sed -i.bak "s/^\$CcsVersion = \".*\"/\$CcsVersion = \"$NEW_VERSION\"/" "$CCS_PS1" - rm -f "$CCS_PS1.bak" - echo "✓ Updated lib/ccs.ps1 (PowerShell executable)" -else - echo "⚠ lib/ccs.ps1 not found, skipping" -fi +# Note: lib/ccs and lib/ccs.ps1 are now lightweight bootstraps +# They delegate to Node.js via npx - no version variable needed +# Version is determined by the npm package at runtime # Update installers/install.sh INSTALL_SH="$CCS_DIR/installers/install.sh" if [[ -f "$INSTALL_SH" ]]; then sed -i.bak "s/^CCS_VERSION=\".*\"/CCS_VERSION=\"$NEW_VERSION\"/" "$INSTALL_SH" rm -f "$INSTALL_SH.bak" - echo "✓ Updated installers/install.sh" + echo "[OK] Updated installers/install.sh" else - echo "⚠ installers/install.sh not found, skipping" + echo "[!] installers/install.sh not found, skipping" fi # Update installers/install.ps1 INSTALL_PS1="$CCS_DIR/installers/install.ps1" if [[ -f "$INSTALL_PS1" ]]; then - sed -i.bak "s/^\$CcsVersion = \".*\"/\$CcsVersion = \"$NEW_VERSION\"/" "$INSTALL_PS1" + sed -i.bak "s/^\\\$CcsVersion = \".*\"/\\\$CcsVersion = \"$NEW_VERSION\"/" "$INSTALL_PS1" rm -f "$INSTALL_PS1.bak" - echo "✓ Updated installers/install.ps1" + echo "[OK] Updated installers/install.ps1" else - echo "⚠ installers/install.ps1 not found, skipping" + echo "[!] installers/install.ps1 not found, skipping" fi # Sync version to package.json echo "Syncing version to package.json..." if node "$SCRIPT_DIR/sync-version.js"; then - echo "✓ Synced version to package.json" + echo "[OK] Synced version to package.json" else - echo "✗ Error: Failed to sync version to package.json" + echo "[X] Error: Failed to sync version to package.json" exit 1 fi echo "" -echo "✓ Version bumped to $NEW_VERSION" +echo "[OK] Version bumped to $NEW_VERSION" echo "" echo "Next steps:" echo " 1. Review changes: git diff" -echo " 2. Commit: git add VERSION package.json lib/ccs lib/ccs.ps1 installers/install.sh installers/install.ps1" +echo " 2. Commit: git add VERSION package.json installers/install.sh installers/install.ps1" echo " 3. Commit: git commit -m \"chore: bump version to $NEW_VERSION\"" echo " 4. Tag: git tag v$NEW_VERSION" echo " 5. Push: git push origin main && git push origin v$NEW_VERSION"