Skip to content

omnipkg v2.0.8 - Universal Platform Support & Infrastructure Improvements

Choose a tag to compare

@1minds3t 1minds3t released this 02 Jan 09:47

🎯 Release Highlights

This release represents a major milestone in cross-platform compatibility and developer experience, with comprehensive platform support now verified across 24+ architecture variants and multiple distribution channels.


🌍 Multi-Platform Distribution Expansion

Conda-forge Platform Matrix (NEW!)

omnipkg is now built and verified on 24 platform variants via conda-forge, moving from noarch-only to platform-specific optimized builds:

Linux:

  • ✅ x86_64 (Python 3.10, 3.11, 3.12, 3.13)
  • ✅ ARM64/aarch64 (Python 3.10, 3.11, 3.12, 3.13)
  • ✅ PowerPC 64 LE (Python 3.10, 3.11, 3.12, 3.13)

macOS:

  • ✅ Intel x86_64 (Python 3.10, 3.11, 3.12, 3.13)
  • ✅ Apple Silicon ARM64 (Python 3.10, 3.11, 3.12, 3.13)

Windows:

  • ✅ x86_64 (Python 3.10, 3.11, 3.12, 3.13)

Install via conda-forge:

conda install -c conda-forge omnipkg
# or with mamba (faster)
mamba install -c conda-forge omnipkg

Docker Multi-Architecture Support (NEW!)

New Docker images across multiple base distributions with multi-arch support (amd64 + arm64):

# Debian (most compatible, ~98MB)
docker pull 1minds3t/omnipkg:latest
docker pull 1minds3t/omnipkg:debian
docker pull 1minds3t/omnipkg:2.0.8-debian

# Alpine (smallest, ~76MB)
docker pull 1minds3t/omnipkg:alpine
docker pull 1minds3t/omnipkg:slim
docker pull 1minds3t/omnipkg:2.0.8-alpine

# Ubuntu variants
docker pull 1minds3t/omnipkg:ubuntu-20.04
docker pull 1minds3t/omnipkg:ubuntu-22.04
docker pull 1minds3t/omnipkg:ubuntu-24.04

# Fedora/RHEL
docker pull 1minds3t/omnipkg:fedora
docker pull 1minds3t/omnipkg:2.0.8-fedora

# CUDA/GPU support (amd64 only, ~1.46GB)
docker pull 1minds3t/omnipkg:cuda
docker pull 1minds3t/omnipkg:gpu

# Development environment (with extra tools, ~220MB)
docker pull 1minds3t/omnipkg:dev

All images support both linux/amd64 and linux/arm64 (except CUDA which is amd64-only).


🐛 Bug Fixes

Cache Connection Stability Fix

Fixed a critical bug where cache connection checks could cause AttributeError during initialization in certain edge cases:

  • ✅ Safe attribute checking with hasattr() before accessing cache status
  • ✅ Proper initialization of cache attributes in all code paths (_cache_connection_status, cache_client, _info_cache, _installed_packages_cache)
  • ✅ Graceful handling of minimal mode initialization

Technical Details:

  • Added defensive checks in src/omnipkg/core.py for _cache_connection_status attribute
  • Fixed multiple locations where uninitialized attributes could cause crashes
  • Ensures stable behavior regardless of initialization order

📦 Infrastructure Improvements

Trusted Publishing (OIDC) ✨

After 73 manual releases with API tokens, omnipkg now uses PyPI's Trusted Publishing via OIDC:

  • ✅ Cryptographically verified releases directly from GitHub Actions
  • ✅ Improved security posture
  • ✅ Streamlined release workflow

This is the first release published using the new trusted workflow!

Enhanced Docker Tagging Strategy

  • Version-specific: 2.0.8, 2.0.8-debian, 2.0.8-alpine
  • Distro-specific: debian, ubuntu-24.04, fedora
  • Rolling updates: latest, alpine, slim
  • Specialized: cuda, gpu, dev

Testing Infrastructure

  • Added test_flask_port_finder_universal.py for concurrent port allocation validation
  • Comprehensive test suite for multi-threaded Flask scenarios

📊 Platform Verification

Verified Distributions

QEMU ARM64 Verification:

  • Debian 12 (Bookworm) - ARM64
  • Ubuntu 24.04/22.04 - ARM64
  • Fedora 39 - ARM64
  • Rocky Linux 9 - ARM64
  • Alpine Linux - ARM64

Native x86_64 Verification:

  • All major Linux distros (Debian, Ubuntu, Fedora, Rocky, Arch)
  • macOS Intel + Apple Silicon
  • Windows Server

Installation Matrix

Now documented with distro-specific installation notes:

  • PEP 668 handling for modern Debian/Ubuntu (--break-system-packages)
  • Python 3.9 upgrade path for EL8
  • Alpine build dependencies guide (gcc, musl-dev)
  • Arch Linux installation patterns

🔧 Development Experience

New Files

  • docker/Dockerfile.{alpine,debian,ubuntu,fedora,cuda,dev} - Multi-distro Docker builds
  • requirements-trace.txt - Pin-locked dependency trace
  • src/omnipkg/conda-recipe/meta-{platform,noarch}.yaml - Split conda recipes

Updated Files

  • pyproject.toml - Version bump to 2.0.8
  • README.md - Expanded platform support documentation
  • .github/workflows/* - New Docker build pipelines and trusted publishing
  • src/omnipkg/core.py - Cache initialization fixes

📈 Expansion Metrics

  • Docker Pulls: Multi-arch images now available across 10+ variants
  • Supported Platforms: 24 verified conda-forge variants
  • Conda Downloads: Significant uptick after platform-specific builds

🙏 Acknowledgments

Special thanks to:

  • conda-forge maintainers for platform build infrastructure
  • QEMU team for enabling ARM64 verification without native hardware
  • GitHub Actions for trusted publishing support
  • Community contributors for testing and feedback

📝 Installation

# PyPI (all platforms)
pip install omnipkg

# Conda (now with platform-specific builds!)
conda install -c conda-forge omnipkg

# Docker (multi-arch)
docker pull 1minds3t/omnipkg:latest

# Homebrew (macOS)
brew install omnipkg

# UV (recommended)
uv pip install omnipkg

🔗 Links

Full Changelog: [v2.0.7...v2.0.8](v2.0.7...v2.0.8)


What's Changed

Platform Expansion:

  • 24 conda-forge platform variants (Linux x86_64/ARM64/ppc64le, macOS Intel/ARM, Windows x64)
  • Multi-arch Docker images (Debian, Alpine, Ubuntu, Fedora, CUDA)
  • QEMU ARM64 verification pipeline

Infrastructure:

  • Migrated to PyPI Trusted Publishing (OIDC) for secure releases
  • Enhanced Docker tagging strategy with distro-specific variants
  • VS Code Dev Container support

Bug Fixes:

  • Fixed cache connection AttributeError during initialization
  • Safe attribute checking with proper initialization paths

Full Changelog: v2.0.7...v2.0.8