-
Story
-
Resolution: Done
-
Undefined
-
None
-
None
-
None
-
False
-
-
False
-
-
Package 'base2048' does not build as-is via the AIPCC self-service pipeline and requires builder repository onboarding.
Build Failure Summary
Root Cause Analysis: `base2048` Build Failure
Problem
The build of `base2048==0.1.3` failed due to a conflicting `maturin` version requirement.
The key error from the log:
ERROR base2048: could not handle toplevel dependency base2048 (0.1.3) because Unable to resolve requirement specifier maturin<0.14,>=0.13 with constraint maturin>=1.8.4
What Happened
`base2048` is a Rust-based Python extension that uses maturin as its build backend. Two incompatible version constraints collided:
- `base2048==0.1.3` declares `maturin>=0.13,<0.14` as a build-system dependency (i.e., it requires maturin 0.13.x)
- The build environment's `computed-constraints.txt` requires `maturin>=1.8.4`
These two ranges have zero overlap (`0.14 < 1.8.4`), so the resolver correctly reports no valid maturin version can satisfy both.
How to Fix
1. Upgrade `base2048` to a newer version that declares compatibility with modern maturin (>=1.x). Check if a newer release exists on PyPI that has updated its `pyproject.toml` build-system requirements.
2. If no newer version exists, apply a build-system override (via fromager's `overrides/settings.yaml` or a patch) to update the `base2048` package's `[build-system] requires` from `maturin>=0.13,<0.14` to a maturin version that satisfies the `>=1.8.4` constraint (e.g., `maturin>=1.8.4,<2`). This is viable if the package's Rust/Python interface is compatible with modern maturin — maturin 1.x is generally backward-compatible with projects originally built on 0.13.x, though testing is needed.
3. If the global constraint `maturin>=1.8.4` is too restrictive, evaluate whether it can be relaxed — though this is unlikely to help since `base2048` caps maturin at `<0.14` regardless.
Packaging Analysis Summary
Here is the executive summary formatted as a JIRA comment in JIRA wiki markup:
Executive Summary: base2048 Package Analysis
base2048 is a Rust-based Python extension (using PyO3 bindings and the maturin build system) rated as Moderate complexity (6/10). The package provides base-2048 encoding/decoding with a minimal API surface (two functions: encode and decode), zero Python runtime dependencies, and is licensed under MIT – fully compatible with Red Hat distribution policies. All transitive Rust dependencies (pyo3, lazy_static, hashbrown) are dual-licensed Apache-2.0/MIT with no licensing blockers.
The primary build consideration is the Rust toolchain requirement for source compilation. The package uses the PyO3 abi3-py37 stable ABI feature, meaning a single compiled artifact works across all CPython versions >= 3.7 (confirmed working on Python 3.14.2). A source build requires only Rust stable (edition 2021, rustc 1.56+) and maturin>=0.13,<0.14 – no C/C++ compiler or external system libraries beyond standard glibc (>= 2.17) are needed. Pre-built manylinux_2_17_x86_64 wheels are available on PyPI as a validated fallback. There are no critical blockers; the only open issue (#16) requests ARM64 wheels, which does not affect the x86_64 target architecture.
Recommended approach for AIPCC-10993: Given the 2026-02-25 delivery target, the fast path is to use the existing pre-built manylinux wheel from PyPI for initial delivery, while establishing a containerized source build pipeline (UBI8/UBI9 with rust-toolset and python3-devel) for subsequent releases. The JIRA ticket's "override" context likely refers to special Rust toolchain provisioning not included in standard Python build automation.
Key Technical Details
- Build command (source):
# Using system Rust toolchain (e.g., rust-toolset on RHEL) pip wheel --no-binary base2048 base2048==0.1.3 # Or: clone repo + maturin build --release
- Fallback (pre-built wheel): base2048-0.1.3-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.0 MB), verified working
- Runtime dependencies: None (Python) / glibc >= 2.17 (system)
- License: MIT – no redistribution restrictions
- Security risk: Low – no network/filesystem access, no runtime dependencies, minimal codebase (~170 lines Rust)
- Repository: https://github.com/ionite34/base2048 – stable but low activity since late 2022 (acceptable for a mature encoding library)
- blocks
-
AIPCC-11002 Add base2048 into the RHAI pipeline onboarding collection
-
- In Progress
-
- mentioned on