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.
0.2.1 - 2025-11-19
- Package Management: Integrated commands working with active environment
uvup add/remove/lock/tree- Manage packages from any directory after activation
- Enhanced Init Command: Multi-shell configuration management
uvup init [shell]- Initialize specific shell or auto-detect all shells--raw- Print integration script without installing--reverse- Remove uvup from shell configurations--dry-run- Preview changes before applying
- VitePress Documentation: Professional bilingual documentation site
- English and Chinese support with unified sidebar navigation
- Real-world integration examples (CI/CD, Docker, VSCode, Pre-commit Hooks)
- GitHub Pages deployment with npm
- Breaking: Renamed
uvup remove <name>touvup delete <name>for environment deletionremoveis now exclusively for package removal
- Migrated from mdBook to VitePress for better UI and i18n support
- Shell activation script paths on Windows (Scripts/ vs bin/)
- UVUP_ACTIVE_ENV environment variable tracking across shells
- Added
commands/{add,delete,lock,tree}.rsfor package management - Enhanced
commands/init.rswith multi-shell support (579 lines) - Created VitePress configuration with bilingual sidebar structure
- Updated GitHub Actions workflow for VitePress deployment
0.2.0 - 2025-11-17
- Four-Method Command Architecture: Clear separation of responsibilities
uvup clone <source> <target>- Create exact 1:1 copy of an environmentuvup new <name> --template <template>- Create new project from template with modification supportuvup sync --template <template>- Sync current project with template
- Template System: Powerful project scaffolding capabilities
- Python version override with
--python <version> - Package filtering with
--exclude <packages>and--include <packages> - Custom project path with
--path <directory> - Dry-run preview mode with
--dry-runfor all template operations - Full support for
[project.optional-dependencies]in pyproject.toml
- Python version override with
- Migration from pip freeze to pyproject.toml: Modern dependency management
- pyproject.toml-based configuration instead of requirements.txt
- Lock file support via uv.lock for reproducible builds
- Optional dependency groups for dev tools, testing, etc.
- Safety Features:
- Automatic backup creation in
synccommand (pyproject.toml.backup) - Automatic rollback on failure (uv lock/sync errors)
- Preview changes before execution with
--dry-run
- Automatic backup creation in
- Breaking: Replaced
uvup copywithuvup clonefor clearer semantics - Environment structure now includes:
pyproject.toml- Project configuration and dependenciesuv.lock- Lock file for reproducible installs.venv/- Virtual environment directoryhello.py- Optional demo file
uvup copycommand (replaced byuvup clone)- Direct pip freeze dependency management (replaced by pyproject.toml)
- Complete command reference in docs/COMMANDS.md (570 lines)
- Real-world usage scenarios in docs/USE_CASES.md (489 lines)
- Updated README with four-method architecture explanation
- Simplified Core Philosophy to concise bullet points
- Added "Documentation" section with quick help and complete docs links
- Updated TARGET.md with v0.2.0 status and v0.3.0 planning
- Enhanced
commands/new.rswith full template modification support - Enhanced
commands/sync.rswith backup and rollback mechanism - Refactored
commands/copy.rstocommands/clone.rs - Added comprehensive dry-run implementation across all template commands
- Improved dependency filtering logic with PEP 508 specifier support
0.1.3 - 2025-11-16
uvup copy <source> <target>- Copy an existing environment to a new one--python <version>flag for copy command to override Python version
- Upgraded
ureqdependency from v2.x to v3.0 for improved HTTP handling
- Added
commands/copy.rsmodule - Enhanced CLI with Copy command variant
0.1.2 - 2025-11-16
uvup update- Self-update command to install latest version from GitHub releasesuvup update --check- Check for updates without installing
- Shell validation in deactivate command to prevent errors when called outside shell context
- Added
commands/update.rsmodule - Added GitHub release checking and binary replacement logic
0.1.1 - 2025-11-15
- Installation script compatibility issues on macOS and Linux
- Build target for Linux changed from
unknown-linux-gnutounknown-linux-muslfor better portability
- Updated installation scripts (install.sh, install.ps1)
- Modified build configuration for Linux releases
0.1.0 - 2025-11-15
- Initial MVP release of uvup
uvup init- Initialize shell integration for Bash, Zsh, Fish, and PowerShelluvup create <name>- Create virtual environments using uvuvup list- List all managed environmentsuvup remove <name>- Remove virtual environmentsuvup activate <name>- Activate environments (via shell hook)uvup deactivate- Deactivate current environment (via shell hook)- Support for flexible argument order in
uvup create(e.g.,--pythonbefore or after name) - Default Python version set to 3.12
- Centralized environment storage in
~/.uvup/ - Cross-platform path handling using
dirscrate - Comprehensive error handling with user-friendly messages
- Unit tests for core functionality
- Integration tests for command workflows
- README with installation and usage instructions
- VSCode IDE integration guide
- Development workflow documentation
- clap 4.5 - CLI framework
- dirs 6.0 - Cross-platform directory paths