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 a modified form of Semantic Versioning (major version is the year; minor and patch are the same).
- Add regression tests that lock Cloudsmith-first/PyPI-fallback index argument ordering across constrained installs, primary installs, and rollback reinstalls.
- Improve formatted upgrade errors to include subprocess command output and stderr details for failed install paths.
- Restore expected dependency source selection under
uv pipby consistently preferring Cloudsmith while retaining PyPI fallback in all related install code paths.
- Reduce routine
pipmodule logging noise so operator-facing logs stay focused on run summaries.
- Keep upgrade run summaries accurate by reserving
upgrade_failedfor actual failed upgrade paths instead of unchanged runs with command output.
- Improve logging observability with dedicated regular and error logs. (#28)
- Fall back to stderr logging when file logging cannot be initialized. (#28)
- Removing upgrade-owned handlers and leave root level unchanged when foreign handlers are present. (#28)
- Ensure post-install modules run when dependency-only upgrades change installed packages. (#26)
- Fail
manage_venvupgrade flow when childupgradecommands exit non-zero instead of silently continuing. (#26)
- Migrate packaging metadata to
pyproject.toml/ PEP 517 build backend (#24) - Prefer
uv pipfor installs (fall back topipwhenuvis unavailable) (#24) - Run CI tests in an isolated
uvvirtualenv instead of installing into the runner environment (#24) - Migrate flake8 config to pyproject.toml instead of setup.cfg (#26)
- Use regular imports for
packagingandrequestslibrary instead of pip vendored imports (#23)
- Fix
find_compatible_versionssort to use semver sort (#23)
- Add support for --constraints-path flag (#20)
- Fix
try_running_moduleby addingkwargsinstead of hardcoded parameters. (#19)
- Send slack notification when post-install fails (#18)
- Fix get latest wheel if
version_cmdis missing (#17)
- Added venv management script built on top of upgrade-python-package script (#15)
- Added
find-compatible-versionsscript which for a given venv, determines whether a new compatible update is available (#15)
- Drop Python 3.6, 3.7 support, add support for Python 3.11, 3.12 (#15)
- Integrate slack notifications (#12)
- Add
update-allflag to install packages without adding--no-deps(#11)
- Ignore pip version warnings, better error handling (#10)
- Fix cloudsmith handling development repositories (#9)
- Initial
upgrade-python-packagescript (#1) - Initial testing framework (#2) (#3)
- `data_files`` expected location changed to name of the package (#5)
- Add script entry points (#6)
- Use
cloudsmith-url(#4)