Releases: 1minds3t/omnipkg
Release list
omnipkg v3.4.1 - IPC telemetry, Native PyTorch shared memory, and Windows ARM64
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
TypedStoragerepresentations from PyTorch 1.x IPC handles, allowing massive GPU tensor outputs to jump boundaries with zero extra copies. -
Multi-Package CLI Swaps: Upgraded
8pkg swapto handle multiple packages at once with native passthrough of standardpipflags (--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.pyto directly compareomnipkg's managed SHM vs raw POSIX SHM,msgpack, andpickle. -
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) onconda-forge. -
Documentation: Massively overhauled the README and
conda-forgedescriptions 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
What's Changed
Full Changelog: v3.3.5...v3.4.0
omnipkg v3.3.5 - Core Synchronization & Cross-Platform Performance
🔒 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
🚀 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 thePYTHONHOME/PYTHONPATHvariables. The setup script now safely sanitizes the environment and resolves the true hostpipviaCONDA_PREFIXorVIRTUAL_ENV, allowing local development installations to successfully compile and link theuv-ffiextension. -
Streamlined Source Distributions: Added setuptools exclusion rules in
pyproject.tomlto 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-armwith propersetup-pythonarchitecture flags, ensuring pre-built Windows ARM64 wheels are successfully published to PyPI. -
Matrix Resiliency: Refined
continue-on-errorconditions 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
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 definedwhen executingpython -m buildwithOMNIPKG_SKIP_C_EXT=1or when generating pure-Python fallback packages. -
Manylinux & Musllinux Compilation Paths:
- Pinned
manylinux2014_aarch64to 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).
- Pinned
-
Windows CI Executable Discovery: Updated Python executable resolution in Windows wheel workflows to point to a reliable, standard
C:\python37\python.exeenvironment. -
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-existingflag on PyPI publication steps to prevent pipeline termination if some wheels are already uploaded. -
Resilience Guardrails: Added a
continue-on-errorconfiguration 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
🚀 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(likenumpy) from the main environment. We now aggressively clear the daemon'ssys.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_attimestamp. -
Docs Formatting: Pinned
pymdown-extensions>=10.21.2to 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.exeentrypoint 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 thecp37-abi3tag. 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-wasmwhen 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
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 detection —
WorkerDelegationMixin.__enter__now checks
_tf_loaded_pidsdirectly in addition tosys.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_versionspaths) was wipingtensorflow.*modules even when
pywrap_tensorflowwas 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 frompackage_meta_builder.py. .gitignore: exclude__pycache__/,*.pyc,*.pyo.- Test subprocess runner: added
stream=Truemode 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
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 healcommand now performs a deepsite-packagesaudit. It cross-references duplicate.dist-infofolders 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-Disttree 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-characterwrite()andfputc()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 toSCHED_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
omnipkgLoadercontexts 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.1has been removed from system libraries,omnipkgnow automatically intercepts the dynamic link loader crash, resolves the distro-specific compatibility library (e.g.,libxcrypt-compatvia 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.4dynamically toaiohttp_3.8.4namespaces).
📝 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
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
- 🚀 Exotic Platform Support: Full integration with the
exotic-wheelsindex, enabling seamless installation onmusllinux(armv7l, aarch64, ppc64le, s390x). - 🛠️ C-Extension Hardening: Resolved critical 32-bit pointer truncation warnings on
armv7landi686targets to ensure memory safety across architectures. - 📦 Binary Distribution: Introduced
abi3wheels for atomic extensions, allowing a single wheel to work across multiple Python 3.x versions. - ⚙️ Build Pipeline Refactor: Massive overhaul of
publish2.ymlandconda_buildworkflows, reducing build failures and optimizing thecibuildwheelenvironment. - 🧹 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(-)