Skip to content

Releases: 1minds3t/omnipkg

omnipkg v3.4.1 - IPC telemetry, Native PyTorch shared memory, and Windows ARM64

Choose a tag to compare

@1minds3t 1minds3t released this 09 Jun 02:45
0a5ed3d

IPC telemetry, Native PyTorch shared memory, and Windows ARM64

Welcome to omnipkg v3.4.1! This release brings deep telemetry to the daemon IPC layer, implements native PyTorch shared memory reconstructions, and paves the way for Windows ARM64 support.

  • Native PyTorch IPC Outputs: Re-engineered the CUDA fallback paths to properly extract and reconstruct TypedStorage representations from PyTorch 1.x IPC handles, allowing massive GPU tensor outputs to jump boundaries with zero extra copies.

  • Multi-Package CLI Swaps: Upgraded 8pkg swap to handle multiple packages at once with native passthrough of standard pip flags (--no-deps, --pre, --no-cache-dir).

  • IPC Dispatch Telemetry: Added the DispatchPerfLogger (OMNIPKG_DEBUG=1) to emit microsecond-resolution JSONL telemetry. Track exact encode, flush, queue-wait, and decode latencies across the client ↔ daemon boundary.

  • Warm-Worker Transport Benchmarks: Introduced benchmark_transport.py to directly compare omnipkg's managed SHM vs raw POSIX SHM, msgpack, and pickle.

  • Faster Idle Reaping: Lowered the daemon idle eviction interval from 60s to 5s, resolving stall conditions during extreme stress tests.

  • Windows ARM64 CI: Configured Azure pipelines to officially cross-compile the C dispatcher to Windows ARM64 (win_arm64) on conda-forge.

  • Documentation: Massively overhauled the README and conda-forge descriptions to center on our sub-millisecond C-dispatcher metrics, "God Mode" GPU IPC, and Rust FFI atomic swaps.


📝 Code Changes:

  • UPDATE: src/omnipkg/cli.py (103 lines changed)
  • UPDATE: src/omnipkg/dispatcher.py (2 lines changed)
  • UPDATE: src/omnipkg/isolation/worker_daemon.py (171 lines changed)
  • UPDATE: src/omnipkg/loader.py (60 lines changed)
  • UPDATE: src/omnipkg/package_meta_builder.py (2 lines changed)

🧪 Tests:

  • NEW: src/omnipkg/tests/benchmark_transport.py (1166 lines)
  • UPDATE: src/omnipkg/tests/test_loader_stress_test.py (127 lines)

📚 Documentation:

  • README.md (1635 lines)

⚙️ Configuration:

  • .github/dependabot.yml (9 lines)
  • pyproject.toml (3 lines)
  • src/omnipkg/conda-recipes/conda-forge-platforms.yml
  • src/omnipkg/conda-recipes/meta-noarch.yaml (35 lines)
  • src/omnipkg/conda-recipes/meta-platforms.yaml (29 lines)

Additional Changes:

  • perf: add IPC dispatch telemetry and transport benchmarks
  • ci(win): attempt to build win arm 64 on conda-forge
  • docs: improve conda forge descriptions
  • docs: revamp README with hardware benchmarks and fix release packaging
  • feat(isolation): implement native PyTorch IPC output reconstruction and multi-package cli swaps

19 files changed, 1786 insertions(+), 1593 deletions(-)

Release v3.4.0

Choose a tag to compare

@1minds3t 1minds3t released this 07 Jun 20:21

What's Changed

  • 🔄 Merge development → main (808b0f6) - Review Required by @github-actions[bot] in #142

Full Changelog: v3.3.5...v3.4.0

omnipkg v3.3.5 - Core Synchronization & Cross-Platform Performance

Choose a tag to compare

@1minds3t 1minds3t released this 29 May 13:01

🔒 DISPATCHER SYNCHRONIZATION & INTERACTIVE TTY FIXES
• Synchronized 'dispatcher.c' and 'dispatcher.py' direct-command routing.
• Added 'heal', 'stress-test', 'demo', and 'monitor' to direct execution bypass.
• Versionless 'uninstall' commands now correctly bypass the daemon to expose
the interactive TUI version picker without hitting silent stdin timeouts.
• Swapped silent failures in safe_input() for logged warnings to stderr.

⚡ RESTORED LINUX DAEMON FAST-PATH (~3x WALL-TIME SPEEDUP)
• Fixed Linux site-packages layout discovery logic (previously hardcoded to
Windows layout), preventing endless configuration rewrites on POSIX systems.
• Fallback Python dispatcher now queries 'daemon_connection.txt' to identify
hashed UNIX socket paths rather than looking for a nonexistent flat path.
• Fixed a missing clean-disconnect exit hook to stop successful socket runs
from bleeding down into an unwanted cold subprocess 'os.execv' redraw.

🛡️ STABILITY & DEPENDENCY DEGRADATION
• Wrapped 'psutil' and 'typer' imports in defensive try/except blocks to safeguard
minimal environment runtime hypervisor contexts from crashing on missing deps.
• Swapped 'cryptography-wasm' proxy for standard 'cryptography' on Emscripten targets.
• Bumped worker stdin reply timeout from 5s to 120s to accommodate slow cold-installs.
• Improved setup.py compilation logging to output full compiler stdout/stderr text.

📦 CI/CD WHEEL PIPELINE HARDENING
• Updated workflow to catch auditwheel repair failures on pure Python wheels.
Instead of crashing, the pipeline copies them out as 'noarch-compatible'.
• Added a post-build scrub stage to ensure raw, un-repaired '-linux_.whl' assets
are purged before publishing release artifacts to GitHub/PyPI.


Bug Fixes:

  • fix: sync interactive/direct command routing between C and Python dispatchers

Other Changes:

  • fix(dispatcher): restore daemon fast-path for Linux without C dispatcher
  • Ensure skip-existing option is set to true
  • Enhance publish-wheels.yml for better wheel handling

10 files changed, 131 insertions(+), 38 deletions(-)

omnipkg v3.3.4 - fix editable installs and Windows ARM64 wheel builds

Choose a tag to compare

@1minds3t 1minds3t released this 23 May 01:50

🚀 What's New in v3.3.4

This is a build-infrastructure and CI/CD patch release. It unblocks local developers using editable installs, slims down the source distribution, and fixes the Windows ARM64 build pipeline.

  • Fixed Editable Installs (pip install -e .): Resolved an issue where setuptools' isolated build environment poisoned the PYTHONHOME/PYTHONPATH variables. The setup script now safely sanitizes the environment and resolves the true host pip via CONDA_PREFIX or VIRTUAL_ENV, allowing local development installations to successfully compile and link the uv-ffi extension.

  • Streamlined Source Distributions: Added setuptools exclusion rules in pyproject.toml to prevent the heavy Rust compilation directories (omnipkg._vendor.uv.target*) from bloating the packaged source distributions.

  • License Compliance: Added missing license text for cryptography-wasm.

  • Windows ARM64 Wheels: Fixed the GitHub Actions runner configuration for Windows ARM. The pipeline now correctly targets windows-11-arm with proper setup-python architecture flags, ensuring pre-built Windows ARM64 wheels are successfully published to PyPI.

  • Matrix Resiliency: Refined continue-on-error conditions across the wheel publishing jobs to ensure edge-case failures don't block the primary release artifacts.


⚙️ Configuration:

  • pyproject.toml (26 lines)

Updates:

  • Update Windows ARM64 build configuration in workflow
  • Update conditions for publishing wheels in workflow

4 files changed, 233 insertions(+), 113 deletions(-)

omnipkg v3.3.3 - fix pure-python builds and stabilize wheel publishing pipeline

Choose a tag to compare

@1minds3t 1minds3t released this 22 May 04:25

fix pure-python builds and stabilize wheel publishing pipeline

🚀 What's New in v3.3.3

This release introduces critical hotfixes to the packaging build system and CI pipeline, ensuring that source distributions, pure-Python fallback environments, and cross-platform wheel builds compile and publish reliably.

  • Source Distribution (sdist) Build Fix: Resolved a fatal NameError: name 'atomic_extension' is not defined when executing python -m build with OMNIPKG_SKIP_C_EXT=1 or when generating pure-Python fallback packages.

  • Manylinux & Musllinux Compilation Paths:

    • Pinned manylinux2014_aarch64 to a confirmed dated tag (2022-07-17-51324db) to prevent losing local Python 3.7 dependencies during arm64 compilation.
    • Corrected the oldest available interpreter path for musllinux x86_64/aarch64 to Python 3.9 (musllinux drops cp37 support on newer images).
  • Windows CI Executable Discovery: Updated Python executable resolution in Windows wheel workflows to point to a reliable, standard C:\python37\python.exe environment.

  • Rocky Linux / RHEL Verification: Refactored Rocky Linux verification logic inside the docker jobs to streamline how native system paths and pip dependencies are verified in isolated RHEL environments.

  • Idempotent PyPI Publishes: Enabled the skip-existing flag on PyPI publication steps to prevent pipeline termination if some wheels are already uploaded.

  • Resilience Guardrails: Added a continue-on-error configuration to secondary platform matrix steps to ensure temporary runner latency doesn't block the overall release verification loop.


📝 Code Changes:

  • UPDATE: setup.py (31 lines changed)
  • UPDATE: src/omnipkg/cli.py (8 lines changed)

Updates:

  • Update publish-wheels.yml for Python version changes
  • Update Python version in publish-wheels workflow
  • Update Python executable path in publish-wheels.yml
  • Update manylinux and musllinux images for builds
  • Update publish-wheels.yml to use native aarch64 Python

4 files changed, 78 insertions(+), 45 deletions(-)

omnipkg v3.3.2 - Daemon Isolation & Windows Deadlock Fixes

Choose a tag to compare

@1minds3t 1minds3t released this 22 May 01:02

🚀 What's New in v3.3.2

This is a critical hotfix release that completely resolves environment leakage issues in the daemon worker (especially for complex packages like TensorFlow) and patches severe deadlocks during heavy I/O streaming on Windows.

  • Strict Daemon Environment Isolation: Fixed an issue where the daemon worker would leak site-packages (like numpy) from the main environment. We now aggressively clear the daemon's sys.path (matching the loader's behavior), which completely resolves loading failures for packages like TensorFlow 2.20.

  • Windows Streaming Deadlocks: Bypassed the daemon entirely for certain interactive and streaming commands on Windows (such as the stress test). This prevents nasty edge-case deadlocks where the Windows daemon would hang during heavy stdout streaming.

  • Cache Decode Errors: Fixed a JSON decode error during stress testing by properly initializing the _dep_cache_built_at timestamp.

  • Docs Formatting: Pinned pymdown-extensions>=10.21.2 to resolve a layout breakage caused by Pygments 2.20.0.

  • Windows Native Dispatcher POC (Ghost-Spawn): We merged a working Proof-of-Concept for a native C dispatcher on Windows! While it successfully compiles, safely overwriting the locked 8pkg.exe entrypoint is still actively being ironed out. For now, Windows will continue to safely fall back to the Python dispatcher while we perfect the atomic swapping logic.

  • Stable ABI3 Wheels (cp37-abi3): Consolidated CPython wheel builds to enforce the cp37-abi3 tag. This drastically reduces wheel bloat, bundles the compiled C dispatcher (for Unix) directly into the wheel, and guarantees forward compatibility with Python 3.14+.

  • Nuclear Worker Shutdown (Windows): Upgraded the daemon pool's shutdown sequence on Windows. It now utilizes a recursive tree kill (taskkill /F /T) to ensure zero orphaned child processes are left behind when the daemon exits.

  • WebAssembly (WASM) Support: Added safety rails and Emscripten exclusion markers to cleanly skip C-extension compilation and use cryptography-wasm when running in browser environments.


📝 Code Changes:

  • UPDATE: build_hooks.py (22 lines changed)
  • UPDATE: setup.py (147 lines changed)
  • UPDATE: src/omnipkg/cli.py (13 lines changed)
  • UPDATE: src/omnipkg/common_utils.py (16 lines changed)
  • UPDATE: src/omnipkg/dispatcher.c
  • UPDATE: src/omnipkg/dispatcher.py (319 lines changed)
  • UPDATE: src/omnipkg/isolation/worker_daemon.py (88 lines changed)
  • UPDATE: src/omnipkg/loader.py (14 lines changed)

⚙️ Configuration:

  • pyproject.toml (17 lines)

Additional Changes:

  • Update configuration
  • feat: add windows_bootstrap ghost-spawn PoC
  • Update 1 code files
  • 2
  • fix: fix build causing crash on install
  • fix(dispatcher): remove tools dispatcher bin entirely
  • fix(win): add debug logging for missing msvc
  • fix(win): improve detection of msvc on windows for dispatcher.c pip installs
  • fix: make loader dependency cache loading python 3.7 compatible
  • fix: add debug logging for daemon shutdown failures
  • Update 2 code files
  • refactor: build: bundle C dispatcher and enable cp37-abi3 stable wheels
  • ci: adding debugging for tests dir
  • fix: resolve TESTS_DIR path absolutely for CI compatibility

New Features:

  • feat: sync worker_daemon, loader, readme from development
  • feat: sync core.py improvements from development
  • feat: add windows_bootstrap from development

Bug Fixes:

  • fix: universal2 dispatcher arch flags + WASM skip guards

Updates:

  • Update workflow to specify OS and architecture types
  • Update manylinux images to use manylinux2014
  • Update publish-wheels.yml
  • Update test path in old_rich_test.yml
  • Update publish condition in workflow
  • Update publish conditions in workflow

26 files changed, 928 insertions(+), 1459 deletions(-)

omnipkg v3.3.1 - prevent interpreter corruption on second TF load in same process

Choose a tag to compare

@1minds3t 1minds3t released this 08 May 13:11

2026-05-08 · patch release · 2 commits since v3.3.0


Bug fixes

After loading TF 2.13.0 and exiting the context, a second
with omnipkgLoader("tensorflow==2.12.0") block in the same process would
fall through to in-process activation. The existing _tf_loaded_pids guard
only fires when omnipkg.isolation.patchers was previously imported — in bare
subprocesses (test runner, user scripts) that module is never loaded, so the
guard was silently skipped and the loader attempted to activate the wrong
version against an already-mapped .so.

Two fixes, both in loader.py:

  • Second-load detectionWorkerDelegationMixin.__enter__ now checks
    _tf_loaded_pids directly in addition to sys.modules, so a process that
    already initialized TF's C++ backend is caught even after __exit__ purged
    the Python layer.
  • Zombie purge guard — the post-exit zombie scan (checking __file__ for
    .omnipkg_versions paths) was wiping tensorflow.* modules even when
    pywrap_tensorflow was still linker-mapped. Those modules are now skipped
    when the lock is active, matching the same guard already used by
    _aggressive_module_cleanup.

Result: the loader detects the locked .so, sets _abi_conflict_detected=True,
returns the already-loaded version, and refuses to corrupt state. No crash, no
re-init failure. The daemon path remains the correct approach for genuine
cross-version switching.

Cross-platform note: all ABI detection uses sys.modules +
_tf_loaded_pids — no platform-specific code. Works on Linux, macOS, and
Windows without changes.


Refactoring

src/tests/src/omnipkg/tests/ so the test package no longer leaks a bare
tests package into end-user site-packages. pyproject.toml include pattern
and cli.py's TESTS_DIR path updated to match.


Cleanup

  • Removed ungated ☢️ FATAL TENSORFLOW RELOAD DETECTED! print from
    patchers.py — the exception is still raised, just without the noise.
  • Removed stray [CTX-DEBUG] print from package_meta_builder.py.
  • .gitignore: exclude __pycache__/, *.pyc, *.pyo.
  • Test subprocess runner: added stream=True mode so test 4 gets live stdout
    instead of buffered output.

Other Changes:

  • fix(loader): detect linker-locked TF .so via /proc/self/maps; guard zombie purge
  • fix(package_meta_builder): remove ungated CTX-DEBUG print

21 files changed, 50 insertions(+), 25 deletions(-)

omnipkg v3.3.0 - State Healing, Strict ABI Protection, and High-Performance C Dispatch Draft

Choose a tag to compare

@1minds3t 1minds3t released this 08 May 02:55

We are proud to release omnipkg v3.3.0. This release represents a massive milestone in environmental determinism, memory-safe package management, and raw execution performance.

By pairing forensic filesystem checks with ultra-low latency C-extensions and strict process-isolated worker daemons, v3.3.0 guarantees that your Python runtimes remain perfectly clean, conflict-free, and incredibly fast.


Raw runs of standard package managers (pip, uv) frequently leave orphaned .dist-info folders behind when swapping package versions, causing Python’s metadata collectors to report multiple active versions of the same library simultaneously (environmental "schizophrenia").

  • Ground-Truth Healing: The upgraded 8pkg heal command now performs a deep site-packages audit. It cross-references duplicate .dist-info folders by importing modules live to determine the physical code execution truth.
  • Metadata Quarantine: Orphaned metadata directories ("ghosts") are automatically swept away and cleanly registered as fallback bubbles, restoring absolute sanity to your system package registries.

Version-switching packages with deep C-extensions (NumPy, PyTorch, TensorFlow, SciPy) inside a single process is historically a recipe for segmentation faults, because the OS dynamic linker cannot cleanly reload a mapped .so library in-process.

  • Contamination Tracking: Daemon workers now strictly monitor if any sensitive binary ABI libraries have been loaded into memory during a task.
    Surgical Import Redirection & Contextual Masking: Introduced a precision import hook that detects when a main-environment package (e.g., JAX) attempts to import NumPy while a bubble's older version is active. Omnipkg temporarily masks bubble paths in real-time, redirecting the import to the correct main-environment copy — preventing ABI-mismatch crashes without disrupting the active bubble.

Ephemeral Module Stubbing: During TensorFlow initialization, Omnipkg injects a lightweight "ghost" JAX stub to satisfy xla_computation imports, preventing a full JAX boot that would trigger a fatal NumPy version conflict. The stub is atomically evicted once TF finishes loading, leaving real JAX imports unaffected.

  • Proactive Process Eviction: If a worker becomes "contaminated" by loading an ABI-sensitive package, it is immediately evicted from the idle pool instead of being recycled. A fresh, clean worker is spawned for subsequent runs, entirely eliminating segfault risks and state contamination.
  • BFS Dependency Slices: Improved the metadata builder to use a BFS-walk on the exact Requires-Dist tree of nested packages. This ensures nested bubbles only declare and snapshot their true transitive closure, rather than bleeding parent packages' unrelated dependencies.
    Topological Activation Ordering: The multi-package loader now performs dependency-aware sorting before activation, ensuring inner dependencies are activated before outer packages — eliminating activation-order shadowing.

We re-engineered the lowest level of our invocation pipeline to minimize operating system context-switching and system call overhead.

  • Buffered JSON Unescaping: Rewrote the C-dispatcher's (dispatcher.c) JSON parser to decode data directly into a highly-optimized 64KB stack buffer. This avoids the hundred-plus single-character write() and fputc() syscalls previously generated per daemon packet, resulting in massive speedups in hot-path CLI routing.
    O(1) Binary Staleness Detection: Replaced MD5 source hashing in the C-dispatcher with atomic mtime comparisons, reducing recompile checks from milliseconds to microseconds.

  • Linux Real-Time Scheduling (SCHED_FIFO): On Linux hosts, the worker daemon now attempts to elevate its execution priority to SCHED_FIFO (real-time FIFO scheduler
    with priority 10), dropping orchestration overhead and process-switching latency to near-zero.

  • Coordinated Package Locks (fs_lock_queue): Replaced loose filesystem moves and disparate file locks with a centralized, re-entrant, atomic locking queue. Multiple threads or processes attempting to activate or cloak different versions of the same library (such as TensorFlow 2.12 vs 2.13) are serialized gracefully to prevent filesystem race conditions.

  • Nested Overlay Fast Path: Nested omnipkgLoader contexts within daemon workers now execute a lightning-fast in-memory path, bypassing heavy filesystem lock routines. Nested bubble activations now cost <1ms (down from 100+ms).

  • Arch Compat Bootstrap: When managed Python runtimes are bootstrapped on modern Linux distributions (such as Arch Linux) where legacy libcrypt.so.1 has been removed from system libraries, omnipkg now automatically intercepts the dynamic link loader crash, resolves the distro-specific compatibility library (e.g., libxcrypt-compat via pacman), and auto-installs it non-interactively via the system package manager.

  • Bubble Path Normalization: Fixed path resolution fallback logic to correctly match and swap bubble paths on disk regardless of whether they are declared using hyphens or underscores (e.g., mapping aiohttp-3.8.4 dynamically to aiohttp_3.8.4 namespaces).


📝 Code Changes:

  • UPDATE: src/omnipkg/_vendor/uv_ffi/init.py (36 lines changed)
  • UPDATE: src/omnipkg/commands/run.py (24 lines changed)
  • UPDATE: src/omnipkg/core.py (383 lines changed)
  • UPDATE: src/omnipkg/dispatcher.c (238 lines changed)
  • UPDATE: src/omnipkg/installation/verification_strategy.py (2 lines changed)
  • UPDATE: src/omnipkg/isolation/patchers.py (265 lines changed)
  • UPDATE: src/omnipkg/isolation/worker_daemon.py (275 lines changed)
  • UPDATE: src/omnipkg/loader.py (2415 lines changed)
  • UPDATE: src/omnipkg/package_meta_builder.py (79 lines changed)

🧪 Tests:

  • UPDATE: src/tests/test_loader_stress_test.py (66 lines)
  • UPDATE: src/tests/test_multiverse_healing.py (22 lines)
  • UPDATE: src/tests/test_tensorflow_switching.py (24 lines)

⚙️ Configuration:

  • pyproject.toml (2 lines)

Additional Changes:

  • Update 1 code files
  • fix(isolation): bubble-aware numpy redirect + jax stub for TF load, fix self-referential nested misclassification
  • Update configuration
  • fix: fix state schizophrenia by exorcising duplicate dist-info ghosts and fix strict mode sys.path
  • perf: optimize dispatcher latency
  • feat(loader, daemon): Implement strict ABI contamination tracking and worker isolation
  • fix: remove timeout to support long-running tasks
  • fix: Update 1 code files
  • fix(runtime): auto-install missing libcrypt compat for managed Python on Arch

Bug Fixes:

  • fix: nested pkg resolved_bubble_deps now BFS-walks own dep tree only

17 files changed, 3261 insertions(+), 693 deletions(-)

omnipkg v3.2.1 - Critical bugfix: KB key corruption and bubble path normalization

Choose a tag to compare

@1minds3t 1minds3t released this 28 Apr 00:20

What's fixed

_get_venv_temp_dir() in worker_daemon.py was computing a temp dir hash using
SHA-1 on sys.prefix + optional project_root — diverging from ConfigManager's
canonical md5(_canonical_path_str(sys.prefix))[:8]. The wrong hash was injected
into every worker subprocess via OMNIPKG_ENV_ID_OVERRIDE, which package_meta_builder
and core.py consumed as the authoritative env_id. All bubble installs wrote KB
entries under the daemon's incorrect env_id. Post-install verification recomputed
the correct env_id, found no matching KB entry, and raised:

RuntimeError: Installation reported success but == not found. Found version: None

Fix: Renamed env var to OMNIPKG_DAEMON_TEMP_ID (log/socket/pid path only,
never touches KB keys) and aligned hash logic to match ConfigManager exactly.

Packages specified with hyphens (e.g. huggingface-hub, apache-tvm) failed to
activate existing bubbles. The loader constructed bubble paths using the raw spec
name (huggingface-hub-1.10.1) while the filesystem used the normalized name
(huggingface_hub-1.10.1), causing has_bubble=False and falling through to the
main-env version check which returned None.

Fix: All bubble path construction, manifest lookups, glob patterns, and
entry.name.startswith checks in loader.py now normalize dash→underscore.

Affected versions

v3.1.0 and v3.2.0 are yanked. Upgrade immediately.

Upgrade

pip install --upgrade omnipkg


📝 Code Changes:

  • UPDATE: src/omnipkg/isolation/worker_daemon.py (21 lines changed)
  • UPDATE: src/omnipkg/loader.py (28 lines changed)

Additional Changes:

  • fix(loader): loader now properly finds pkgs like hf_hub using normalization
  • fix: replace OMNIPKG_ENV_ID_OVERRIDE with OMNIPKG_DAEMON_TEMP_ID to prevent KB key corruption

4 files changed, 55 insertions(+), 27 deletions(-)

omnipkg v3.2.0 - Infrastructure Overhaul & Exotic Platform Stability

Choose a tag to compare

@1minds3t 1minds3t released this 27 Apr 04:34
  • 🚀 Exotic Platform Support: Full integration with the exotic-wheels index, enabling seamless installation on musllinux (armv7l, aarch64, ppc64le, s390x).
  • 🛠️ C-Extension Hardening: Resolved critical 32-bit pointer truncation warnings on armv7l and i686 targets to ensure memory safety across architectures.
  • 📦 Binary Distribution: Introduced abi3 wheels for atomic extensions, allowing a single wheel to work across multiple Python 3.x versions.
  • ⚙️ Build Pipeline Refactor: Massive overhaul of publish2.yml and conda_build workflows, reducing build failures and optimizing the cibuildwheel environment.
  • 🧹 Codebase Hygiene: Removed ~10k lines of stale locale data and applied wide-scale refactoring for better maintainability.

📝 Code Changes:

  • UPDATE: src/omnipkg/commands/run.py (33 lines changed)

⚙️ Configuration:

  • pyproject.toml (6 lines)

Additional Changes:

  • Update configuration
  • fix: fix import in conda forge mapping logic
  • fix: update locales path and resolve manifest warnings

New Features:

  • feat: abi3 wheel for atomic ext, exotic platform hint on musl builds

Bug Fixes:

  • fix: exotic-wheels index url, add build/ to gitignore
  • fix: use /simple/ path for exotic-wheels index url
  • fix: resolve 32-bit pointer truncation warnings on armv7l/i686
  • fix: remove merge conflict markers from publish2.yml
  • fix: safe march flags, remove build fallback, add ref input to workflow
  • fix: add locale.getencoding shim to setup.py to fix C dispatcher in manylinux
  • fix: remove auditwheel silent fallback to prevent bare linux_aarch64 tags

Updates:

  • Update pip install command to use only-binary option
  • Update project title and description in README
  • Update build environment and before build commands
  • Update CIBW_BEFORE_BUILD to include setuptools version
  • Update workflow ID in homebrew-update.yml

42 files changed, 984 insertions(+), 10319 deletions(-)