********** 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 `_. [0.7.1] - 2025-04-29 ==================== Changed ------- * Refactored core logic into `PackageManager` class. Module-level functions now wrap methods of a default instance. * `is_installed` now accepts an optional `version_specifier` argument. * `install_if_missing` now uses `version_specifier` instead of separate `version` and `enforce_version` arguments (old arguments are deprecated but handled with warnings). * **`ensure_packages` now accepts both a dictionary and a list of requirement strings.** (New) * **Added `verbose` parameter to installation/uninstallation functions to control direct output.** (New) * Improved internal command execution and error handling. * Updated dependencies (`packaging`, `ascii_colors`). * Switched build system to use `pyproject.toml` with `setuptools`. * Minimum Python version raised to 3.8. [0.7.0] - 2025-04-25 ==================== Added ----- * `ensure_packages` function for efficiently checking and installing/updating a dictionary of requirements. * `dry_run` parameter added to most installation/uninstallation functions. * Asynchronous API (`async_package_manager` module) with `AsyncPackageManager`, `async_install`, `async_install_if_missing`, `async_check_vulnerabilities`. * `check_vulnerabilities` function using `pip-audit` (requires `pipmaster[audit]`). * `get_pip_manager` factory function to get `PackageManager` instances for specific environments. * `get_package_info` function to run `pip show`. * `install_or_update` and `install_or_update_multiple` convenience functions. * Placeholders for future `uv` and `conda` backend support. * More robust logging using `ascii_colors`. * Comprehensive documentation generated with Sphinx. * GitHub Actions workflow for building and deploying documentation. * Development dependencies (`[dev]` extra) including `pytest`, `pytest-asyncio`, `ruff`, `mypy`, `sphinx`. Changed ------- * Refactored core logic into `PackageManager` class. Module-level functions now wrap methods of a default instance. * `is_installed` now accepts an optional `version_specifier` argument. * `install_if_missing` now uses `version_specifier` instead of separate `version` and `enforce_version` arguments (old arguments are deprecated but handled with warnings). * Improved internal command execution and error handling. * Updated dependencies (`packaging`, `ascii_colors`). * Switched build system to use `pyproject.toml` with `setuptools`. * Minimum Python version raised to 3.8. Deprecated ---------- * `is_version_higher` (use `is_version_compatible` with `>=`). * `is_version_exact` (use `is_version_compatible` with `==`). * `install_if_missing` parameters `version` and `enforce_version` (use `version_specifier`). Removed ------- * *(No major removals in this version)* [0.1.0] - 2024-04-01 ==================== Added ----- * Initial release with basic `install`, `is_installed`, `get_installed_version`, `uninstall` functions.