Uploaded image for project: 'AI Platform Core Components'
  1. AI Platform Core Components
  2. AIPCC-10854

Add pydeck into the RHAI pipeline onboarding collection

    • Icon: Story Story
    • Resolution: Unresolved
    • Icon: Undefined Undefined
    • None
    • None
    • None
    • False
    • Hide

      None

      Show
      None
    • 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.

              epacific@redhat.com Einat Pacifici
              aipcc-jira-bot@redhat.com AIPCC JIRABOT
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Created:
                Updated: