-
Story
-
Resolution: Unresolved
-
Undefined
-
None
-
None
-
None
-
False
-
-
False
-
-
Add package 'model-index' into the RHAI pipeline onboarding collection.
The package requires builder repository onboarding before it can be added to the RHAI pipeline. This ticket is blocked by the builder onboarding ticket.
Summary
Here is the executive summary formatted as a JIRA comment in JIRA wiki markup:
Executive Summary: model-index Build Analysis
model-index (v0.1.11) is a pure-Python package with Simple build complexity (1/10) and no compiled extensions. It is MIT-licensed, and all four runtime dependencies (
pyyaml
,
markdown
,
ordered-set
,
click
) carry permissive licenses (MIT/BSD-3-Clause), making the full dependency chain fully compliant for Red Hat redistribution. The existing PyPI wheel (
py3-none-any
, 34 KB) is correctly formed with all dependencies properly declared in metadata and can serve as an immediate fallback. The repository (github.com/paperswithcode/model-index) has been unmaintained since June 2021.
The sole blocking issue is that
setup.py
imports the package at build time (
from modelindex import __version__
), triggering a cascade of imports that require all runtime dependencies to already be installed. This breaks PEP 517 isolated builds (pip's default behavior), making it impossible to build from sdist without intervention. Note: the JIRA ticket's description that runtime dependencies are "not properly declared in package metadata" is partially inaccurate — the wheel metadata is correct; the problem is specifically the build-time import chain in setup.py.
Recommended fix: Apply two patches — (1) create a
pyproject.toml
declaring runtime deps as build-system requires, and (2) patch
setup.py
to read the version string directly from
modelindex/version.py
via regex instead of importing the package. This eliminates the build isolation failure entirely. The patched build command is straightforward:
pip wheel --no-deps . # Produces: model_index-0.1.11-py3-none-any.whl
As an alternative workaround, disabling build isolation (
pip install --no-build-isolation
) after pre-installing dependencies also works. No platform-specific builds are needed — a single
py3-none-any
wheel serves all architectures and Python 3 versions.
Key Takeaways
- Blocker:
setup.py
build-time import chain — fixable with a simple patch
- License: MIT + permissive deps — no redistribution concerns
- Risk: Repository unmaintained 4+ years; recommend carrying patches downstream
- Fallback: Existing PyPI wheel is correctly formed and installable as-is
- Target date (2026-03-04): Fully achievable — trivial package size, no compilation, single-session patch-and-build effort
- blocks
-
AIPCC-10879 Onboard model-index into the AIPCC Builder
-
- In Progress
-
- mentioned on