-
-
Couldn't load subscription status.
- Fork 1
omnipkg v1.0.13 Release Notes #9
-
omnipkg v1.0.13 Release Notes
Release Date: 2025年08月17日
🎉 This is a massive, foundational release for omnipkg! We've significantly refactored the core engine, introduced powerful new features for seamless package management, and dramatically enhanced stability and performance. With +3000 PyPi downloads across 35 countries 10 days after launch without advertising, omnipkg is redefining Python package management worldwide! This release cements omnipkg as the intelligent, self-healing solution for Python dependency hell, allowing unprecedented dynamic version control within a single environment.
🚀 Major Highlights
- Introducing Runtime Context Manager (omnipkgLoader): Achieve guaranteed environment isolation and restoration for dynamic version switching using Python’s
withstatement, enabling truly safe and concurrent A/B testing of package versions. - Enhanced Downgrade Protection & Self-Healing: omnipkg now more robustly detects and manages package downgrades (even by external tools like pip or uv), automatically isolating conflicting versions into bubbles and restoring the main environment to a "last known good" state.
- Intelligent C-Extension & Binary Management: Greatly improved handling of complex native code packages (like NumPy, SciPy, UV) within bubbles, ensuring they function correctly without conflicts and pushing the boundaries of cross-version compatibility.
- Comprehensive Test Suite: A new, extensive test suite ensures omnipkg’s core functionalities, including
rich(Python modules),uv(binaries),numpy/scipy(C-extensions), andtensorflow(complex dependencies), work flawlessly in isolated environments. - Modern Packaging & Transparency: Transitioned to
pyproject.tomlfor core dependencies, and added detailed third-party license notices for full compliance and clarity.
✨ Features
- omnipkgLoader Context Manager:
- Introduces a Python
withstatement context manager for dynamically activating package bubbles. - Guarantees restoration of
sys.path,sys.modules, and environment variables (likePATH) upon exiting thewithblock, ensuring zero-downtime and clean state transitions. - Aggressively cleans
sys.modulesand invalidates caches for reliable module re-import. - Implements "cloaking" of main environment packages by temporarily renaming them to prevent interference with bubbled versions.
- Introduces a Python
- New
omnipkg demoCommand:- An interactive CLI experience to showcase omnipkg’s capabilities across various package types.
- Includes dedicated demos for
rich(Python modules),uv(binaries),numpy/scipy(C-extensions), andtensorflow(complex dependency chains). - Features real-time, live-streaming output from demo subprocesses with user-friendly warnings to prevent Ctrl+C panic.
- Easter eggs for
tensorflow(😎 TensorFlow escaped the matrix! 🚀) anduv(🔥 UV’s speeding through the matrix like a Python outlaw! 😈).
- New
omnipkg install-with-depsCommand: Allows users to specify a main package along with explicit versions for its dependencies, facilitating precise bubble creation for specific integration scenarios. - New
omnipkg reset-configCommand: Provides a safe way to delete the omnipkg configuration file, allowing for a fresh setup. - Enhanced
omnipkg statusOutput: Now includes fun, descriptive messages for Pip and UV "in jail," a summary table for installed packages and bubbles, comma-separated size formatting, >100 MB warnings, and improved readability. - First-Time Setup Experience: Improved welcome message and guidance for new users when omnipkg is run without an existing configuration.
- PyPI Wheel Extraction: omnipkg can now directly download and extract
.whlfiles from PyPI into bubbles, offering more control over installation strategy.
🛠️ Improvements
- Core Engine Refactor: Significant internal restructuring of
omnipkg/core.pyfor better modularity, maintainability, and extensibility. - More Robust Deduplication Logic:
- C-extension packages, binary packages, and complex Python packages (those with submodules) are now explicitly copied into bubbles for guaranteed functionality, while remaining files are deduplicated where safe (e.g., 75% space savings on
typing_extensions). - Improved detection of package types and internal structure for more intelligent copying decisions.
- Enhanced integrity verification during bubble creation to ensure all critical modules (e.g.,
flask_login.config) are present.
- C-extension packages, binary packages, and complex Python packages (those with submodules) are now explicitly copied into bubbles for guaranteed functionality, while remaining files are deduplicated where safe (e.g., 75% space savings on
- Faster Knowledge Base Indexing: Optimized
_get_or_build_main_env_hash_indexto prioritize faster indexing via package metadata, with fallbacks to full filesystem scans, greatly speeding up initial setup and updates. - Comprehensive Bubble Metadata in Redis: Bubbles are now registered with rich metadata (size, file types, package lists, creation time) in Redis, enabling future advanced features like intelligent cleanup.
- Threaded Metadata Building:
omnipkg/package_meta_builder.pynow leveragesconcurrent.futuresandtqdmfor faster and more visual metadata gathering. - Smarter
smart_install: Improved sorting of packages for optimal installation order and special handling for bubbling omnipkg itself. - Enhanced
smart_uninstall: Offers more granular control when uninstalling multiple versions, including interactive prompts and protection for omnipkg’s core dependencies. - Improved Logging: More detailed and informative output during operations, making it easier to follow omnipkg’s actions.
- Updated
pyproject.toml: Standardized dependency declaration, broadenedrequires-pythonto>=3.10for wider compatibility, and included tests in the package distribution. - Dependency Updates: Added
tomliandfilelockas explicit dependencies to support new features. - Cleaned up
MANIFEST.in: Ensures necessary files are included in the distribution. - Removal of
examples/testflask.py: Streamlined the repository by removing an outdated demo, replaced by the new comprehensiveomnipkg democommand.
🐛 Bug Fixes
- Addressed various minor issues related to path resolution and file handling during bubble creation and activation.
- Reduced deduplication significantly to ensure the core functionality of isolated versions in bubbles remains intact.
🌟 Get Involved
Try omnipkg v1.0.13 today and experience dependency management like never before! Check out the CI workflows to witness omnipkg’s power in action! Share your feedback on GitHub, contribute to our growing community, or run omnipkg demo to see the magic in action. Let’s make Python dependency hell a thing of the past!
Thank you for your incredible support and for joining us on this journey to solve Python dependency management for good!
This discussion was created from the release omnipkg v1.0.13 Release Notes.
Beta Was this translation helpful? Give feedback.