packages feed

clod 0.1.22 → 0.1.23

raw patch · 6 files changed

+100/−25 lines, 6 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

Files

CHANGELOG.md view
@@ -1,6 +1,6 @@ # Changelog -## [0.1.22] - 2025-04-04+## [0.1.23] - 2025-04-04  - Automate release process 
bin/release view
@@ -447,7 +447,18 @@ # Step 14: Create and update bottle echo "=== Building Homebrew bottle ===" echo "Do you want to build a Homebrew bottle for this release? [y/N]"++# Debug input behavior+echo "Debug: TTY status: $([ -t 0 ] && echo 'Input is from terminal' || echo 'Input is NOT from terminal')" >&2+echo "Debug: Input source: $(tty 2>/dev/null || echo 'unknown')" >&2++# For debugging, force a delay and make prompt more visible+echo -e "\033[1;31mWAITING FOR INPUT (y/N):\033[0m" >&2+sleep 1+ read -r bottle_response+echo "Debug: User entered: '$bottle_response'" >&2+ if [[ "$bottle_response" =~ ^[Yy] ]]; then   # Build bottle directly, no subshell so errors propagate   echo "Building bottle for clod formula..."@@ -481,45 +492,63 @@   echo "Creating bottle file..."   # Now we can reference the formula by its tap name   echo "Creating bottle..."+  +  # Add explicit flushing to make sure output is visible+  echo "About to run bottle command" >&2+  set -x  # Turn on command tracing for debugging+     if ! bottle_output=$(brew bottle --root-url="https://github.com/fuzz/clod/releases/download/v$VERSION" fuzz/tap/clod); then-    echo "ERROR: Failed to create bottle"+    echo "ERROR: Failed to create bottle" >&2     exit 1   fi+  +  set +x  # Turn off command tracing+  echo "Bottle command completed successfully" >&2   echo "Bottle output: $bottle_output"      # Extract the bottle file name - be flexible with the pattern to catch different formats-  bottle_file=$(echo "$bottle_output" | grep -o '[a-zA-Z0-9_/-]*clod[a-zA-Z0-9_/-]*\.bottle\.tar\.gz')+  echo "Processing bottle command output..." >&2+  +  # Print out the complete bottle output for debugging+  echo "DEBUG: Complete bottle output: " >&2+  echo "$bottle_output" >&2+  +  # Use more basic file detection+  echo "DEBUG: Trying to find bottle file..." >&2+  # Extract just the bottle filename directly using sed+  bottle_file=$(echo "$bottle_output" | sed -n 's/.*\(clod--.*\.tar\.gz\).*/\1/p' | head -1)+  echo "Extracted bottle file name: $bottle_file" >&2   echo "Bottle file: $bottle_file"      # Extract the SHA256 from the bottle-  bottle_sha=$(echo "$bottle_output" | grep -i 'sha256' | grep -o '"[a-f0-9]\+"' | tr -d '"')+  echo "DEBUG: Extracting SHA256..." >&2+  sha256_line=$(echo "$bottle_output" | grep -i 'sha256')+  echo "DEBUG: SHA256 line: $sha256_line" >&2+  +  bottle_sha=$(echo "$sha256_line" | grep -o '"[a-f0-9]\+"' | tr -d '"')+  echo "DEBUG: Extracted SHA256: $bottle_sha" >&2   echo "Bottle SHA256: $bottle_sha"      # Extract the macOS version (monterey, ventura, sequoia, etc.)   macos_version=$(echo "$bottle_output" | grep -o 'arm64_[a-z0-9]\+' | head -1 | cut -d'_' -f2)-  # If we couldn't extract it, use the current OS version as a fallback-  if [ -z "$macos_version" ]; then-    macos_version=$(sw_vers -productVersion | cut -d. -f1)-    case "$macos_version" in-      14) macos_version="sequoia" ;;-      13) macos_version="ventura" ;;-      12) macos_version="monterey" ;;-      11) macos_version="big_sur" ;;-      *) macos_version="sonoma" ;; # Default to latest as fallback-    esac-  fi   echo "macOS version: $macos_version"   -  if [ -z "$bottle_file" ] || [ -z "$bottle_sha" ] || [ -z "$macos_version" ]; then-    echo "Error: Could not extract bottle information."-    echo "Bottle file format may have changed. Please check the actual filename: $bottle_file"+  # Fail if we can't extract the macOS version+  if [ -z "$macos_version" ]; then+    echo "ERROR: Failed to extract macOS version from output"     exit 1   fi   +  # Note: We already checked each variable individually with better error messages+     # Make sure the bottle file exists+  echo "Checking if bottle file exists: $bottle_file" >&2+  ls -la "$bottle_file" >&2 || echo "Bottle file not found" >&2+     if [ ! -f "$bottle_file" ]; then     echo "ERROR: Bottle file not found: $bottle_file"-    ls -la+    echo "Contents of current directory:" >&2+    ls -la >&2     exit 1   fi   @@ -530,6 +559,7 @@   echo "Bottle created successfully: bottles/$bottle_file"      # Check for GitHub CLI and upload bottle+  echo "===== BEGIN GITHUB UPLOAD SECTION =====" >&2   echo "Checking for GitHub CLI (gh)..."   if ! command -v gh &> /dev/null; then     echo "ERROR: GitHub CLI (gh) not found. Please install it to automate bottle uploads."@@ -537,8 +567,11 @@     exit 1   fi   +  echo "==> INTERACTIVE PROMPT: GitHub Upload" >&2   echo "Do you want to upload bottle to GitHub? [y/N]"   read -r upload_bottle+  echo "User response to upload prompt: $upload_bottle" >&2+     if [[ "$upload_bottle" =~ ^[Yy] ]]; then     echo "Checking if release for v$VERSION exists..."     if ! gh release view "v$VERSION" &>/dev/null; then@@ -551,12 +584,35 @@          echo "Bottle uploaded successfully to GitHub release!"     echo "URL: https://github.com/fuzz/clod/releases/download/v$VERSION/$bottle_file"+  else+    echo "Skipping GitHub upload as requested."   fi+  echo "===== END GITHUB UPLOAD SECTION =====" >&2      # Update the formula with bottle information   echo "Updating formula with bottle information..."   -  # Update just the bottle SHA - root_url is already updated earlier+  # Extract rebuild number from the filename if present+  rebuild_num=$(echo "$bottle_file" | sed -n 's/.*\.bottle\.\([0-9]\+\)\.tar\.gz$/\1/p')+  +  # Handle the rebuild directive in the formula+  if [ -n "$rebuild_num" ]; then+    echo "Setting rebuild to $rebuild_num based on bottle filename"+    # If rebuild directive exists, update it+    if grep -q "^    rebuild " Formula/clod.rb; then+      sed -i '' "s/^    rebuild [0-9]\+$/    rebuild $rebuild_num/" Formula/clod.rb+    else+      # If it doesn't exist, add it after the root_url line+      sed -i '' "/root_url/a\\+    rebuild $rebuild_num" Formula/clod.rb+    fi+  else+    echo "No rebuild number in filename, removing rebuild directive if present"+    # If no rebuild number in filename, remove the rebuild directive if it exists+    sed -i '' '/^    rebuild [0-9]\+$/d' Formula/clod.rb+  fi+  +  # Update the bottle SHA   BOTTLE_SHA_TEMPLATE="    sha256 cellar: :any_skip_relocation, arm64_${macos_version}: \"$bottle_sha\" # BOTTLE_SHA256_MARKER"      # Replace the SHA line with the marker@@ -580,11 +636,30 @@   read -r test_bottle   if [[ "$test_bottle" =~ ^[Yy] ]]; then     echo "Testing bottle installation..."+    +    # Show the formula's bottle section for reference+    echo "Current formula bottle section:"+    grep -A 5 "bottle do" Formula/clod.rb+    +    # Uninstall any existing version     brew uninstall --force clod 2>/dev/null || true-    brew install --formula ./Formula/clod.rb     +    # Commit changes to ensure the formula being tested reflects our updates+    git add Formula/clod.rb+    git commit -m "Update bottle references for version $VERSION" || true+    +    # Re-tap the formula to use our latest changes+    brew untap fuzz/tap 2>/dev/null || true+    brew tap fuzz/tap "$(pwd)"+    +    # Install with debugging+    echo "Installing from updated formula..."+    brew install --verbose fuzz/tap/clod +    +    # Show what was installed     echo "Verifying installation..."     clod --version+    brew info clod          echo "Bottle test complete."   fi
clod.cabal view
@@ -1,6 +1,6 @@ cabal-version:       2.4 name:                clod-version:             0.1.22+version:             0.1.23 synopsis:            Project file manager for Claude AI integrations description:         Clod (Claude Loader) is a utility for preparing and uploading files to Claude AI's                       Project Knowledge feature. It tracks file changes, respects .gitignore and .clodignore 
man/clod.1.md view
@@ -1,4 +1,4 @@-% CLOD(1) Clod 0.1.22+% CLOD(1) Clod 0.1.23 % Fuzz Leonard & Claude <ink@fuzz.ink> % March 2025 
man/clod.7.md view
@@ -1,4 +1,4 @@-% CLOD(7) Clod 0.1.22+% CLOD(7) Clod 0.1.23 % Fuzz Leonard & Claude <ink@fuzz.ink> % March 2025 
man/clod.8.md view
@@ -1,4 +1,4 @@-% CLOD(8) Clod 0.1.22+% CLOD(8) Clod 0.1.23 % Fuzz Leonard & Claude <ink@fuzz.ink> % March 2025