-
Story
-
Resolution: Unresolved
-
Undefined
-
None
-
None
-
None
-
False
-
-
False
-
-
Add package 'pydeck' 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: pydeck Packaging Analysis
pydeck is a Simple complexity pure-Python package (complexity score: 1/10) that provides Python bindings for deck.gl map visualizations. It requires no native compilation — the package is 100% Python code with pre-built JavaScript assets bundled in the sdist and wheel. The resulting wheel is tagged py2.py3-none-any, meaning it is platform-independent and works across all target architectures (x86_64, aarch64, ppc64le, s390x) without modification. The license is Apache-2.0 (Linux Foundation project), which is fully compliant with Red Hat redistribution requirements. Runtime dependencies are minimal: jinja2 and numpy, both BSD-3-Clause licensed.
The sole build blocker is a misconfigured setup_requires in setup.py that declares jupyter>=1.0.0 as a setup-time dependency. In PEP 517 isolated build environments, this causes a cascading failure as pip attempts to install the entire Jupyter stack (including notebook and jupyterlab) before the build even starts. This is a known issue with a proven workaround: remove pyproject.toml before building, which forces pip to skip build isolation. This is the same approach used in production by the conda-forge feedstock.
The recommended build strategy is straightforward:
tar xzf pydeck-0.9.1.tar.gz {{SUMMARY_CONTENT}}{{SUMMARY_CONTENT}} cd pydeck-0.9.1
rm pyproject.toml
pip wheel . --no-deps --no-build-isolation -w dist/
This produces a ~6.7 MB noarch wheel with no compilation step. No special environment variables, system libraries, or external toolchains are required. As a fallback, the pre-built wheel from PyPI is functionally identical since no compiled code is involved.
Key context: pydeck is a transitive dependency in the chain streamlit-option-menu → streamlit → pydeck. The current PyPI release (0.9.1, released 2024-05-10) ships with an older JavaScript frontend (issue #9435), but this is a runtime cosmetic concern and does not affect the build or packaging process. No upstream engagement is needed to unblock onboarding — the pyproject.toml removal workaround fully resolves the only build issue.
- blocks
-
AIPCC-10852 Onboard pydeck into the AIPCC Builder
-
- In Progress
-
- mentioned on