Skip to content

Commit 95171fa

Browse files
committed
docs: add Development section to README and update CHANGELOG
Add Development section to README with Makefile target reference table. Fix clone URL from evansst/git-chain to dashed/git-chain. Update CHANGELOG with all unreleased changes: error propagation refactoring, new tests, Makefile improvements.
1 parent 3b94bba commit 95171fa

2 files changed

Lines changed: 40 additions & 1 deletion

File tree

CHANGELOG.md

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,26 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Unreleased]
99

10+
### Changed
11+
- Replaced `process::exit(1)` with proper error propagation in core operations
12+
- `rebase`, `backup`, `push`, `prune`, and `pr` operations now return `Result<(), Error>` instead of calling `process::exit(1)`
13+
- Errors propagate to the top-level handler in `main.rs` for consistent formatting
14+
- `check_gh_cli_installed()` returns `Result` instead of exiting directly
15+
- Updated CLAUDE.md to reference Makefile targets instead of raw cargo commands
16+
17+
### Added
18+
- Added `lint` Makefile target (combines `fmt-check` + `clippy-strict`)
19+
- Added `test-file` Makefile target for running all tests in a specific file
20+
- Added integration tests for error propagation:
21+
- `rebase_nonexistent_chain`, `rebase_dirty_working_directory`, `rebase_missing_branch_in_chain`
22+
- `backup_nonexistent_chain`, `push_nonexistent_chain`, `prune_nonexistent_chain`
23+
24+
### Fixed
25+
- Updated `.PHONY` declaration in Makefile to include all targets
26+
27+
### Removed
28+
- Removed dead Makefile targets: `test-bench`, `test-pr-fix`, `integration-test`
29+
1030
## [0.0.13] - 2025-11-05
1131

1232
### Improved

README.md

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -465,7 +465,7 @@ error: Merge conflict between feature/auth and feature/profiles
465465
1. Install Rust and Cargo: https://rustup.rs
466466
2. Get the Git Chain code:
467467
```
468-
git clone https://github.com/evansst/git-chain.git
468+
git clone https://github.com/dashed/git-chain.git
469469
cd git-chain
470470
```
471471
3. Install the tool:
@@ -483,6 +483,25 @@ Alternatively, you can create a Git alias:
483483
git config --global alias.chain "!/path/to/target/release/git-chain"
484484
```
485485

486+
## Development
487+
488+
This project uses a Makefile for all development tasks. Run `make help` to see every available target.
489+
490+
```bash
491+
make build # Build in debug mode
492+
make release # Build in release mode
493+
make test # Run all tests
494+
make test-sequential # Run tests single-threaded
495+
make test-specific TEST=test_name # Run a specific test with output
496+
make test-file FILE=backup # Run all tests in a file
497+
make lint # Format check + strict clippy
498+
make fmt # Auto-format code
499+
make clippy # Run clippy lints
500+
make ci-local # Run the full CI pipeline locally
501+
make clean # Clean build artifacts
502+
make debug-info # Show toolchain and environment info
503+
```
504+
486505
## Getting Started: A Simple Example
487506

488507
Let's see how to use Git Chain with a simple example:

0 commit comments

Comments
 (0)