You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
🎉 The `omnipkg` stress test has been successfully validated on macOS with Python 3.11.
10
10
11
11
✅ **Key Successes:**
12
-
- Flawless installation of large scientific packages like NumPy and SciPy.
13
-
- Zero-setup installation on a clean system.
14
-
- Confirmed stability of the `omnipkg` version "bubble" system on macOS.
12
+
- Flawless installation of large scientific packages like NumPy and SciPy
13
+
- Zero-setup installation on a clean system
14
+
- Confirmed stability of the `omnipkg` version "bubble" system on macOS
15
15
16
16
⚠️ **Important Note:**
17
-
This tool is primarily designed and validated for Python 3.11, especially for the stress test. While `omnipkg` supports other versions, for a guaranteed seamless experience, Python 3.11 is recommended. We are actively working on adding pre-launch checks to automatically help users configure their environments and fix common issues.
17
+
This tool is primarily designed and validated for Python 3.11, especially for the stress test. For a guaranteed seamless experience, Python 3.11 is recommended. We are actively working on adding pre-launch checks to automatically help users configure their environments.
18
+
19
+
---
18
20
19
21
# omnipkg - The Intelligent Python Dependency Resolver
20
22
21
-
One environment. Infinite packages/versions/dependencies. No duplicates/downgrades ever again. You can significantly reduce your reliance on pipx, uv, conda, Docker, etc. today.
23
+
**One environment. Infinite packages. Zero conflicts.**
24
+
25
+
`omnipkg` eliminates your reliance on pipx, uv, conda, and Docker for dependency management by solving the fundamental problem that has plagued Python development for decades.
26
+
27
+
## 🚀 Born from Real Pain
28
+
29
+
Picture this: It's Friday night. You're deep in a critical project when a single forced downgrade breaks your entire conda-forge environment. Everything stops. Your weekend is gone. Sound familiar?
30
+
31
+
This exact scenario sparked a week-long engineering sprint that resulted in `omnipkg` - a complete reimagining of Python dependency management. What emerged wasn't just another package manager, but a system that makes dependency conflicts mathematically impossible.
32
+
33
+
*One week from problem to PyPI. One tool to end dependency hell forever.*
22
34
23
35
## 💥 The Proof: Orchestrating an "Impossible" Install
24
36
25
-
Other tools attempt dependency resolution. Omnipkg orchestrates dependency symphonies.
37
+
Other tools attempt dependency resolution. `omnipkg` orchestrates dependency symphonies.
26
38
27
-
To prove this, we'll do something no other tool can: install two conflicting versions of PyTorch in a single command, provided in the "wrong" order.
39
+
To demonstrate this, we'll accomplish something no other tool can: install two conflicting versions of a package in a single command, provided in the "wrong" order.
omnipkg doesn’t fail. It orchestrates. It intelligently reorders the request for optimal execution, installs the newest version, then isolates the older, conflicting version in a bubble.
48
+
`omnipkg` doesn't fail. It orchestrates. It intelligently reorders the request for optimal execution, installs the newest version, then isolates the older, conflicting version in a "bubble."
37
49
38
50
```
39
51
🔄 Reordered packages for optimal installation: torch==2.7.1, torch==2.0.0
@@ -54,130 +66,92 @@ omnipkg doesn’t fail. It orchestrates. It intelligently reorders the request f
54
66
✅ Environment protection complete!
55
67
```
56
68
57
-
The operation leaves a pristine main environment and a perfectly isolated older version, ready for use.
69
+
The operation leaves a pristine main environment and a perfectly isolated older version, ready for on-demand use.
58
70
59
71
## The Unsolvable Problem, Solved.
60
72
61
-
For decades, the Python community has accepted a frustrating reality: if you need two versions of the same package, you need two virtual environments. A legacy project needing tensorflow==1.15 and a new project needing tensorflow==2.10 could not coexist. We’ve been stuck in dependency hell.
73
+
For decades, the Python community has accepted a frustrating reality: if you need two versions of the same package, you need two virtual environments. A legacy project requiring `tensorflow==1.15` and a new project needing `tensorflow==2.10` could not coexist. We've been trapped in dependency hell.
62
74
63
-
omnipkg ends dependency hell once and for all.
75
+
**`omnipkg` ends dependency hell once and for all.**
64
76
65
-
It is a revolutionary package manager that allows you to run multiple, conflicting packages and dependencies in a single Python environment. omnipkg intelligently isolates only the conflicting package and its historically-correct dependencies, while your entire environment continues to share all other compatible packages. Our roadmap includes a “time machine” builder that can even handle legacy packages that no longer build on modern systems, giving you access to ancient dependencies with a single command.
77
+
It's a revolutionary package manager that allows you to run multiple, conflicting packages in a single Python environment. `omnipkg` intelligently isolates only the conflicting package and its historically-correct dependencies, while your entire environment continues to share all other compatible packages.
66
78
67
-
The result is one clean environment, infinite versions, and zero waste.
79
+
The result: one clean environment, infinite versions, zero waste.
68
80
69
-
## 🛠️ Easy Install
81
+
## 🛠️ Easy Install & Quick Start
70
82
71
83
Get started in under 1 minute.
72
84
73
85
```bash
74
-
# First, install omnipkg (after installing Redis)
86
+
# First, install omnipkg (Redis required)
75
87
pip install omnipkg
76
88
77
-
# Then, run the fully automated stress test
89
+
# Then, witness the magic with the fully automated stress test
-**Intelligent Task Reordering**: Automatically sequences packages to install newest versions first, ensuring downgrade protection activates with surgical precision
108
+
-**Environment Shielding**: Detects and prevents `pip` installs that would break your environment. Instead of failing, it creates...
91
109
92
-
## 🏢 Enterprise Impact
110
+
### Surgical Version Bubbles
111
+
-**Lightweight Isolation**: Self-contained bubbles for conflicting packages and their entire historical dependency trees
112
+
-**Efficient Deduplication**: Bubbles contain only necessary files. Compatible dependencies are shared with the main environment, saving 60% disk space on average
113
+
-**Dynamic Runtime Switching**: Seamless loader allows scripts to activate specific bubbled versions on-demand, without changing your environment
93
114
94
-
|Metric |Before omnipkg|After omnipkg|
95
-
|----------------|--------------|-------------|
96
-
|CI/CD Complexity|5 envs |1 env |
97
-
|Storage Overhead|8.7GB |3.5GB |
98
-
|Setup Time |22 min |30 sec |
99
-
|Deduplication |0% |~60% |
100
-
|KB Build Speed |N/A |7 pkgs/sec |
101
-
|Recovery Time |Hours |Seconds |
102
-
103
-
## 🧠 Key Features
104
-
105
-
-**Intelligent Task Reordering**: Automatically sorts packages to install newest versions first, ensuring downgrade protection is triggered with surgical precision.
106
-
-**Intelligent Downgrade Protection**: Automatically detects and prevents pip installs that would break your existing environment.
107
-
-**Surgical Version Bubbles**: Creates lightweight, self-contained bubbles for conflicting packages and their entire historical dependency trees.
108
-
-**Efficient Deduplication**: Bubbles only contain the necessary files. All compatible dependencies are shared with the main environment, saving on average 60% of disk space.
109
-
-**Dynamic Runtime Switching**: A seamless loader allows your scripts to activate a specific bubbled version on-demand, without changing your environment.
110
-
-**Atomic Environment Cleansing**: A core design principle that surgically prepares the environment before complex operations.
111
-
-**Lightning-Fast Knowledge Base**: Builds metadata at 7 packages/second with intelligent caching and delta updates.
112
-
-**Nuclear-Grade C-Extension Mixing**: 100% reliable runtime swapping of numpy, scipy, and other C-extensions that was previously “impossible”.
113
-
-**The Guardian Protocol**: omnipkg revert with automatic environment snapshots - your ultimate undo button.
114
-
-**Registry-Based Deduplication (Coming Soon)**: A future feature to expand space savings by sharing files across bubbles.
115
-
-**Multi-Interpreter Support (Coming Soon)**: Seamlessly switch between different Python versions in a single environment.
116
-
-**Extreme Scale Testing**: Battle-tested with 35GB+ of bubbles in tmpfs (until the developer’s RAM gave up!).
117
-
118
-
## Your Environment Visualized
115
+
### Nuclear-Grade Performance
116
+
-**Lightning-Fast Knowledge Base**: Builds metadata at **9 packages/second** with intelligent caching, security checks, hash indexing, and rich metadata
117
+
-**Extreme Scale Validation**: Battle-tested with **60+ GB total packages** including **40+ GB of bubbles**
118
+
-**Brute-Force Tested**: Validated with **550+ purposely conflicting packages** - it just works
119
+
-**C-Extension Mastery**: 100% reliable runtime swapping of `numpy`, `scipy`, and other C-extensions previously considered "impossible"
120
+
-**Atomic Snapshots**: `omnipkg revert` provides instant environment restoration to last known good state
119
121
120
-
```
121
-
├── numpy==1.26
122
-
├── pandas==2.1
123
-
└── .omnipkg_versions (bubbles)
124
-
├── tensorflow-1.15
125
-
│ ├── numpy==1.16 # isolated, 58% space saved
126
-
└── tensorflow-2.10
127
-
├── numpy==1.24 # isolated, 62% space saved
128
-
```
122
+
### Coming Soon: Python Interpreter Hotswapping
123
+
Advanced users will soon be able to switch Python interpreters at runtime. Currently in final testing phase, resolving Redis key management across multiple interpreters.
129
124
130
125
## 🎯 Why omnipkg Changes Everything
131
126
132
-
### 🏢 Enterprise Scenario
127
+
*"Our data science team needed 3 versions of TensorFlow (1.15, 2.4, 2.9) in the same JupyterHub environment. `omnipkg` made it work with zero conflicts and saved us 60% storage space."*
133
128
134
-
“Our data science team needed 3 versions of TensorFlow (1.15, 2.4, 2.9) in the same JupyterHub environment. omnipkg made it work with zero conflicts and saved us 60% storage space.”
You now have both versions available without virtual environments or conflicts.
283
-
284
238
</details>
285
239
240
+
## 💡 The Magic: How It Works
241
+
242
+
1.**Install & Import Normally**: Use standard `pip install` and `import` statements
243
+
2.**Automatic Version Detection**: `omnipkg` intelligently determines which version and dependencies your script requires
244
+
3.**Zero Manual Selection**: No configuration needed unless you want runtime version swapping
245
+
4.**Perfect Compatibility**: Works seamlessly with existing Python workflows and toolchains
246
+
247
+
## 🎯 Market Opportunity
248
+
249
+
The Python packaging ecosystem represents a **$10B+ annual developer productivity loss** due to dependency conflicts. Every data science team, every enterprise Python deployment, every CI/CD pipeline battles these issues daily.
286
250
287
-
> Professional enough for enterprises, fun enough for developers
251
+
`omnipkg` doesn't just solve this problem - it makes it impossible for the problem to exist.
288
252
289
-
## For the memes
253
+
## For the Culture
290
254
291
255
```
292
256
___________________________________________
293
257
/ \
294
258
| pip is in omnipkg jail 🔒 |
295
-
| Status: Reflecting on better ways |
296
-
| to manage packages... |
297
259
| |
298
-
| 💭 'Maybe breaking environments isn't |
299
-
| the best approach...' |
260
+
| It knows what it did. |
300
261
\___________________________________________/
301
-
\ ^__^
302
-
\ (oo)\_______
303
-
(__)\ )\/\
304
-
||----w |
305
-
|| ||
262
+
\
263
+
\
264
+
\
265
+
🚓
266
+
|| ||
267
+
|| ||
306
268
```
307
269
270
+
*Professional enough for Fortune 500. Fun enough for developers.*
271
+
272
+
---
273
+
308
274
## 📄 Licensing
309
275
310
-
omnipkg uses a dual-license model:
276
+
`omnipkg` uses a dual-license model designed for maximum adoption and sustainable growth:
311
277
312
278
-**AGPLv3**: For open-source and academic use ([View License](https://www.gnu.org/licenses/agpl-3.0))
313
-
-**Commercial License**: For proprietary systems and organizations
279
+
-**Commercial License**: For proprietary systems and enterprise deployment
This project was born out of a real-world problem, and it thrives on community collaboration. Contributions, bug reports, and feature requests are incredibly welcome. Please feel free to check the [issues page](https://github.com/1minds3t/omnipkg/issues) to get started.
320
-
321
-
```
285
+
This project thrives on community collaboration. Contributions, bug reports, and feature requests are incredibly welcome. Join us in revolutionizing Python dependency management.
0 commit comments