Skip to content

Commit 1fe9bbc

Browse files
committed
docs: Refactor comparison guide to emphasize SemVer mode and minor README updates
Comparison Guide improvements: - Restructure content to position SemVer floating versions as primary approach - Update all comparison tables to highlight automatic dependency management - Remove references to past tool limitations and "bridging the gap" language - Present current capabilities without implying evolution from deficient state Technical improvements: - Fix asterisk escaping in floating version patterns (x.y.*, x.*) - Ensure proper markdown rendering for version specifications - Update section headings from "SemVer Mode: Bridging the Gap" to "SemVer Mode Features" - Add "Agnostic Mode for Complex Cases" section for explicit control scenarios Content enhancements: - Emphasize zero-maintenance updates via floating patterns - Highlight automatic compatibility resolution with clear error reporting - Position SemVer as modern solution for source-level dependency management - Update use cases to reflect automatic update capabilities - Strengthen technical comparison sections with SemVer advantages Consistency improvements: - Align migration considerations with SemVer-first approach - Update target user descriptions to include automatic update benefits - Ensure all examples demonstrate SemVer floating version patterns - Remove conclusion section that referenced previous tool versions Additional README refinements: - Minor formatting and content adjustments The comparison guide now presents LsiGitCheckout as a mature tool with sophisticated SemVer capabilities rather than a solution that evolved to address past limitations.
1 parent 20fb7c2 commit 1fe9bbc

3 files changed

Lines changed: 124 additions & 96 deletions

File tree

README.md

Lines changed: 32 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,9 @@ A PowerShell script for managing multiple Git repositories with support for tags
1010
- [Basic Usage (Non-Recursive)](#basic-usage-non-recursive)
1111
- [Advanced Usage (Recursive Mode)](#advanced-usage-recursive-mode)
1212
- [Dependency Resolution Modes](#dependency-resolution-modes)
13-
- [API Compatibility Modes](#api-compatibility-modes)
14-
- [Checkout Tag Selection Algorithm](#checkout-tag-selection-algorithm)
13+
- [SemVer Mode](#semver-mode)
14+
- [Agnostic Mode](#agnostic-mode)
15+
- [Choosing Between Dependency Resolution Modes](#choosing-between-dependency-resolution-modes)
1516
- [Custom Dependency Files](#custom-dependency-files)
1617
- [Post-Checkout Scripts](#post-checkout-scripts)
1718
- [Security Best Practices](#security-best-practices)
@@ -156,7 +157,7 @@ Contains repository configurations without any credential information:
156157
}
157158
```
158159

159-
**Simple Array Format (Legacy Support):**
160+
**Simple Array Format (No Post-Checkout Scripts):**
160161
```json
161162
[
162163
{
@@ -175,7 +176,7 @@ Contains repository configurations without any credential information:
175176
- **Repository URL** (required): Git repository URL (HTTPS or SSH)
176177
- **Base Path** (required): Local directory checkout path (relative or absolute)
177178
- **Dependency Resolution** (optional): "SemVer" (recommended) or "Agnostic" (default) - see [Dependency Resolution Modes](#dependency-resolution-modes)
178-
- **Version** (required for SemVer mode): Semantic version requirement (e.g., "2.1.0", "2.1.*", "2.*")
179+
- **Version** (required for SemVer mode): Semantic version requirement (e.g., "2.1.0", "2.1.\*", "2.\*")
179180
- **Version Regex** (optional, SemVer mode): Custom regex pattern for version extraction from tags
180181
- **Tag** (required for Agnostic mode): Git tag to checkout
181182
- **API Compatible Tags** (optional, Agnostic mode): List of API-compatible tags (can be in any order - automatic chronological sorting)
@@ -474,6 +475,33 @@ A tag-based resolution using exact tags and explicit API Compatible Tags lists.
474475
}
475476
```
476477

478+
### Version Management Rules
479+
480+
When updating dependencies, simply add or remove versions from the API Compatible Tags array:
481+
482+
1. **Adding a new compatible version** (e.g., v1.0.3 → v1.0.4):
483+
- Add the new version to "API Compatible Tags" or update "Tag"
484+
- Order doesn't matter - automatic sorting handles chronology
485+
486+
```json
487+
{
488+
"Tag": "v1.0.4",
489+
"API Compatible Tags": ["v1.0.0", "v1.0.1", "v1.0.2", "v1.0.3"]
490+
}
491+
```
492+
493+
2. **Bumping to an incompatible version** (e.g., v1.0.3 → v2.0.0):
494+
- Update "Tag" to the new version
495+
- Clear or update "API Compatible Tags" for the new API version
496+
497+
```json
498+
{
499+
"Tag": "v2.0.0",
500+
"API Compatible Tags": []
501+
}
502+
```
503+
504+
477505
### API Compatibility Modes in Agnostic Mode
478506

479507
API compatibility modes control how version conflicts are resolved when multiple projects depend on the same repository. These modes apply to Agnostic mode repositories.

0 commit comments

Comments
 (0)