dmu 1.1.0
dmu: ^1.1.0 copied to clipboard
A command-line tool to manage Git dependencies as local packages in Dart/Flutter projects. Streamline your multi-repo development workflow.
Changelog #
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
1.1.0 #
Added #
- Multi-provider Git URL support with extensible converter system
- Support for GitHub SSH URL conversion
- Support for GitLab SSH URL conversion (including self-hosted instances)
- Support for Bitbucket SSH URL conversion
- Support for Gitea SSH URL conversion
- Generic Git URL converter as fallback for unknown providers
- Comprehensive test suite for URL converters (43 tests)
- Documentation for Git URL converter system (
lib/src/git/README.md)
Changed #
- Refactored URL to SSH conversion from hardcoded Azure DevOps logic to provider-based strategy pattern
GitPackage.sshUrlnow usesGitUrlConverterFactoryto determine the appropriate converter
Technical Improvements #
- Implemented Strategy pattern for URL conversion
- Created
GitUrlConverterinterface for extensibility - Added
GitUrlConverterFactoryfor automatic provider detection - Improved code maintainability by separating provider-specific logic
- Added ability to register custom converters for proprietary Git hosting solutions
1.0.0 #
Added #
- Shell completion support for Zsh and Bash
completionscommand to list available Git packages for shell autocomplete- Tab-completion for package names in
addcommand - Tab-completion for package names in
removecommand - Automatic completion script installer (
install-completions.sh) - Comprehensive completion documentation in
completions/README.md - Testing guide for shell completions in
completions/TESTING.md
Changed #
- Help message now includes the
completionscommand
0.1.0 #
Added #
- Initial release of DMU (Dart Multi-Repo Utility)
addcommand to clone Git dependencies locally and configure dependency overridesremovecommand to remove local package overrides and delete cloned directoriespub-getcommand to run pub get on all packages in the workspacecleancommand to clean build artifacts from all packages--deepflag for clean command to also remove pubspec.lock files- Automatic FVM detection and usage when
.fvmrcfile is present - Automatic
.gitignoremanagement for packages directory - Interactive confirmation prompts for destructive operations
- Comprehensive error handling and user-friendly messages
- Support for custom package directories via
--pathoption - Multi-package workspace support
Features #
- Git repository cloning and management
- Automatic dependency override configuration in pubspec.yaml
- Workspace-wide pub get execution
- Build artifact cleaning across all packages
- FVM compatibility for Flutter projects
- Safe file operations with user confirmations