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 +14/−0
- README.md +1/−1
- app/Main.hs +7/−1
- bin/release +16/−32
- clod.cabal +1/−1
- man/clod.1.md +1/−1
- man/clod.7.md +1/−1
- man/clod.8.md +1/−1
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