packages feed

clod 0.1.41 → 0.2.0

raw patch · 8 files changed

+42/−38 lines, 8 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

Files

CHANGELOG.md view
@@ -1,5 +1,19 @@ # Changelog +## [0.2.0] - 2025-04-07++### Added+- Added -V as a shortcut for --version option (consistent with GHC)+- Fixed bug in bin/release script where tags were created in the wrong repository+- Improved release script with better directory handling and error checking+- First official major version release (0.2.0)++### Changed+- Enhanced release process automation +- Fixed shell script best practices issues reported by shellcheck+- Improved error handling during release process+- Refined directory handling in release automation+ ## [0.1.41] - 2025-04-07  - [Automate release process](https://www.youtube.com/watch?v=MK6TXMsvgQg)
README.md view
@@ -97,7 +97,7 @@ - `--flush`, `-f`: Flush stale entries from the checksums database - `--last`, `-l`: Reuse the previous staging directory - `--help`: Show help information-- `--version`: Show version information+- `--version`, `-V`: Show version information  ### Opening the Staging Directory 
app/Main.hs view
@@ -23,6 +23,8 @@ import Data.Hashable (hash) import Control.Exception (try, IOException) import Data.List (isInfixOf)+import Data.Version (showVersion)+import qualified Paths_clod as Meta  import Clod.Core (runClodApp) import Clod.Types (ClodConfig(..))@@ -164,7 +166,11 @@           exitFailure         Right _ -> return ()   where-    opts = info (optionsParser <**> helper)+    opts = info (optionsParser <**> helper <**> version)       ( fullDesc      <> progDesc "Prepare files from a git repository for upload to Claude's Project Knowledge"      <> header "clod - Claude Git Project File Uploader" )+    version = infoOption (showVersion Meta.version)+      ( long "version"+     <> short 'V'+     <> help "Show version information" )
bin/release view
@@ -625,8 +625,7 @@          echo "Renaming bottle file to match Homebrew's expected filename..."     # Use the exact filename from the JSON file-    mv "bottles/$bottle_file" "bottles/$expected_filename"-    if [ $? -ne 0 ]; then+    if ! mv "bottles/$bottle_file" "bottles/$expected_filename"; then       echo "ERROR: Failed to rename bottle file to match Homebrew's expected filename." >&2       exit 1     fi@@ -661,23 +660,27 @@     rebuild_num="${BASH_REMATCH[1]}"     echo "Found rebuild number $rebuild_num in bottle filename: $bottle_file"     -    # Update the rebuild directive in the formula-    echo "Setting rebuild to $rebuild_num based on bottle filename"-    # Use awk to properly match and replace the rebuild line-    awk -v num="$rebuild_num" '{if ($1 == "rebuild") {print "    rebuild " num;} else {print $0;}}' Formula/clod.rb > Formula/clod.rb.new-    mv Formula/clod.rb.new Formula/clod.rb-    -    # Verify the rebuild was updated correctly-    echo "Verifying rebuild number in formula:"-    grep "rebuild" Formula/clod.rb+    # Check if rebuild directive already exists+    if grep -q "^[[:space:]]*rebuild" Formula/clod.rb; then+      # Update the rebuild directive in the formula+      echo "Setting rebuild to $rebuild_num based on bottle filename"+      # Use awk to properly match and replace the rebuild line+      awk -v num="$rebuild_num" '{if ($1 == "rebuild") {print "    rebuild " num;} else {print $0;}}' Formula/clod.rb > Formula/clod.rb.new+      mv Formula/clod.rb.new Formula/clod.rb+      +      # Verify the rebuild was updated correctly+      echo "Verifying rebuild number in formula:"+      grep "rebuild" Formula/clod.rb     else+      # Add rebuild directive if it doesn't exist+      echo "Adding rebuild directive with value $rebuild_num"       sed -i '' "/root_url/a\\     rebuild $rebuild_num" Formula/clod.rb     fi   else     echo "No rebuild number found in filename, removing rebuild directive if present"     # Remove rebuild directive if it exists-    sed -i '' '/^    rebuild [0-9]\+$/d' Formula/clod.rb+    sed -i '' '/^[[:space:]]*rebuild [0-9]\+$/d' Formula/clod.rb   fi      # Update the bottle SHA - use :any for cellar since we link against libmagic@@ -717,8 +720,7 @@          # Push changes to GitHub     echo "Pushing formula changes to GitHub..."-    git push origin main-    if [ $? -ne 0 ]; then+    if ! git push origin main; then       echo "ERROR: Failed to push changes to GitHub. Test installation will fail."       echo "Please push changes manually and then test installation."       exit 1@@ -748,24 +750,6 @@      # Return to original directory   cd "$CLOD_DIR" || exit 1-fi--# Step 15: Commit and push Homebrew formula update-echo "=== Committing Homebrew formula update ==="-echo "Do you want to commit and push the updated Homebrew formula? [y/N]"-read -r brew_response-if [[ "$brew_response" =~ ^[Yy] ]]; then-  (-    cd "../homebrew-tap"-    git add "Formula/clod.rb"-    git commit -m "Update clod formula to version $VERSION with bottle support"-    -    echo "Do you want to push the formula update to origin? [y/N]"-    read -r push_brew_response-    if [[ "$push_brew_response" =~ ^[Yy] ]]; then-      git push origin-    fi-  ) fi  # Return to clod directory no matter what
clod.cabal view
@@ -1,6 +1,6 @@ cabal-version:       2.4 name:                clod-version:             0.1.41+version:             0.2.0 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.41+% CLOD(1) Clod 0.2.0 % Fuzz Leonard & Claude <ink@fuzz.ink> % March 2025 
man/clod.7.md view
@@ -1,4 +1,4 @@-% CLOD(7) Clod 0.1.41+% CLOD(7) Clod 0.2.0 % Fuzz Leonard & Claude <ink@fuzz.ink> % March 2025 
man/clod.8.md view
@@ -1,4 +1,4 @@-% CLOD(8) Clod 0.1.41+% CLOD(8) Clod 0.2.0 % Fuzz Leonard & Claude <ink@fuzz.ink> % March 2025