Releases: psywarrior1998/upgrade_all_python
v1.4.0 - Enhanced Error Reporting and CI Hardening
This release focuses on improving the tool's robustness, providing clearer feedback to users, and automating code quality checks.
🚀 Features
- Detailed Error Reporting: The tool now captures and displays the exact error message from
pipwhen an upgrade or rollback fails. This makes it much easier to diagnose issues with specific packages or environment conflicts.
🔧 Fixes & Improvements
- Expanded Test Coverage: Added a comprehensive test suite for the core
upgrade_packageworker function. The new tests mocksubprocesscalls to verify all execution paths, including successful upgrades, failed upgrades, and rollback scenarios, significantly increasing reliability.
⚙️ Internal & CI
- Automated Code Quality: Integrated
blackfor code formatting andrufffor linting into the CI pipeline. These checks are now automatically enforced on every pull request to ensure consistent code style and prevent common errors.
v1.3.0: Automatic Rollback on Failure
This release introduces a powerful safety net to protect your environment from being left in a broken state. py-upgrade will now automatically roll back any package that fails to upgrade, ensuring maximum stability.
✨ New Feature: Rollback on Failure
- Automatic Revert: If an upgrade fails for any reason (network error, compilation failure, etc.), the tool will immediately attempt to reinstall the package's previous, stable version.
- Enhanced Status Reporting: The final summary now provides a detailed breakdown of outcomes, including successful upgrades, failed upgrades that were safely rolled back, and critical failures where the rollback itself did not succeed.
- New Control Flag: For advanced use cases, you can disable this feature with the
--no-rollbackflag.
This enhancement makes py-upgrade one of the safest and most reliable tools for managing your Python packages.
v1.2.0: Intelligent Dependency Analysis
This release introduces a critical safety feature that transforms the tool into an intelligent upgrade assistant. Before making any changes, py-upgrade now performs a "pre-flight" check to detect and warn you about potential dependency conflicts that could break your environment.
✨ New Feature: Dependency Conflict Detection
Upgrading packages blindly can be risky. A new version of one package might not be compatible with another package you rely on. Version 1.2.0 solves this problem:
- Automatic Dry Run: The tool now simulates the entire upgrade process first, leveraging
pip's own powerful dependency resolver to check for issues. - Clear Warnings: If any conflicts are found, they are displayed in a high-visibility warning panel, explaining exactly which packages have version conflicts.
- Informed Decisions: You are only asked to proceed with the real upgrade after you have seen the results of the dependency check, allowing you to make a safe and informed decision.
This update makes py-upgrade a significantly safer and more reliable tool for managing your Python environment.
v1.1.0: Concurrent Upgrades
This release introduces a major performance enhancement by implementing concurrent (parallel) package upgrades. The tool can now upgrade multiple packages at the same time, significantly reducing the total time required to update your environment.
✨ New Features
- Parallel Upgrades: The core upgrade logic now uses a thread pool to run multiple
pipupgrade processes simultaneously. - Worker Control: A new command-line option,
-wor--workers, has been added to allow users to control the number of concurrent threads. The default is 10.# Run with 15 parallel workers py-upgrade --yes --workers 15
🚀 Performance
This change results in a substantial speed improvement, especially for users with many outdated packages.