Skip to content

Commit 5749645

Browse files
committed
feat!: remove -DisableTagSorting parameter and always enable intelligent tag temporal sorting (#6)
BREAKING CHANGE: Remove -DisableTagSorting parameter and always enable intelligent tag temporal sorting This major simplification removes 195+ lines of conditional logic (26% code reduction) and ensures optimal behavior by default. API Compatible Tags can now be listed in any order as the script always uses actual git tag dates for chronological sorting. ## Breaking Changes - Remove -DisableTagSorting parameter completely - Eliminate all legacy manual ordering code paths - API Compatible Tags no longer require manual temporal ordering ## Code Simplifications - Sort-TagsByDate: Always perform temporal sorting when tag dates available - Get-TagUnion: Always use temporal sorting, remove complex fallback logic - Update-RepositoryDictionary: Single code path for both Strict/Permissive modes - Remove $script:EnableTagSorting variable and all conditional logic ## Functions Modified - Sort-TagsByDate: Remove conditional EnableTagSorting checks (-8 lines) - Get-TagUnion: Remove manual ordering fallback logic (-65 lines) - Update-RepositoryDictionary: Simplify Strict mode sections (-45 lines) - Update-RepositoryDictionary: Simplify Permissive mode sections (-35 lines) - Show-Summary: Remove conditional tag sorting status display (-12 lines) - Main execution: Simplify startup logging (-8 lines) - Parameter definitions: Remove DisableTagSorting param (-4 lines) - Documentation: Clean up help text and comments (-18 lines) ## Enhanced Logging - Add consistent Info-level start/end messages for all dependency processing depths - Add depth 0 start/end messages: "Starting/Completed depth 0 processing" - Enhanced depth completion statistics showing repositories examined, dependency files found, and new repositories checked out - Add final completion message: "Recursive processing complete - no more nested dependencies found" - Improve depth transition messages: "Processing nested dependencies from X repositories (moving to depth Y)" - Fix depth numbering bug: correctly progress from depth 0 → 1 → 2 → 3 instead of 0 → 2 → 3 → 4 ## Benefits - Always optimal behavior: No configuration needed for intelligent tag sorting - Simplified maintenance: API Compatible Tags can be in any order - Better performance: Optimized algorithms always used - Cleaner codebase: Single execution path eliminates branching overhead - Enhanced reliability: Eliminates possibility of manual ordering errors - Improved user experience: Zero configuration required for best behavior - Better visibility: Clear logging of recursive dependency processing flow with accurate depth tracking ## Migration - JSON files: No changes required - existing configurations work unchanged - Command line: Remove any -DisableTagSorting parameter usage - Behavior: Automatic improvement - always uses chronological intelligence - Logging: Enhanced depth tracking provides better visibility into recursive processing ## Compatibility - All existing JSON configuration files work without modification - API Compatible Tags can now be listed in any order - Same core functionality with always-optimal behavior - Performance equal or better than previous optimized path - Improved logging provides better troubleshooting capabilities Closes #6
1 parent 53475e5 commit 5749645

File tree

3 files changed

+297
-484
lines changed

3 files changed

+297
-484
lines changed

CHANGELOG.md

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,53 @@ All notable changes to LsiGitCheckout will be documented in this file.
55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

8+
## [6.0.0] - 2025-01-24
9+
10+
### Breaking Changes
11+
- **BREAKING**: Removed `-DisableTagSorting` parameter - tag temporal sorting is now always enabled
12+
- **BREAKING**: Eliminated all legacy manual ordering code paths for API Compatible Tags
13+
- **BREAKING**: API Compatible Tags can now be listed in any order - automatic chronological sorting is always applied
14+
15+
### Added
16+
- Always-on intelligent tag temporal sorting using actual git tag dates
17+
- Enhanced performance with optimized tag sorting algorithms that run only when needed
18+
- Simplified codebase with single, consistent code paths for tag handling
19+
- Improved user experience with no configuration required for optimal tag ordering
20+
21+
### Changed
22+
- **Major Simplification**: Removed 195+ lines of conditional logic and legacy fallback code (26% reduction)
23+
- API compatibility resolution now always uses chronological tag intelligence
24+
- Tag selection algorithms simplified to single code paths for both Strict and Permissive modes
25+
- Documentation streamlined to reflect always-enabled temporal sorting
26+
- Startup logging simplified with clear indication that tag sorting is always active
27+
28+
### Removed
29+
- `-DisableTagSorting` parameter and all associated functionality
30+
- `$script:EnableTagSorting` variable and conditional logic
31+
- Legacy manual ordering requirements and validation
32+
- Complex fallback algorithms for manual tag ordering compatibility
33+
- Conditional warnings for incompatible manually-ordered tag lists
34+
- All code branches that handled disabled tag sorting
35+
36+
### Performance
37+
- **Optimized algorithms**: Tag date fetching only occurs when needed for conflict resolution
38+
- **Reduced complexity**: Single execution path eliminates branching overhead
39+
- **Cleaner memory usage**: Removed unused variables and conditional state tracking
40+
- **Faster conflict resolution**: Always uses optimal chronological intelligence
41+
42+
### Migration Notes
43+
- **Zero configuration changes**: All existing JSON files work without modification
44+
- **Improved behavior**: Users automatically get optimal tag ordering without any parameter changes
45+
- **Enhanced reliability**: Eliminates the possibility of manual ordering errors
46+
- **Better developer experience**: API Compatible Tags can be listed in any order
47+
48+
### Benefits
49+
- **Cleaner codebase**: 26% reduction in code complexity
50+
- **Better maintainability**: Single code path for all tag operations
51+
- **Enhanced user experience**: Always uses intelligent behavior by default
52+
- **Consistent performance**: Optimized algorithms used in all scenarios
53+
- **Simplified documentation**: Easier to understand and use
54+
855
## [5.0.0] - 2025-01-17
956

1057
### Breaking Changes

0 commit comments

Comments
 (0)