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

Onboard google-api-python-client into the AIPCC Builder

    • Icon: Story Story
    • Resolution: Won't Do
    • Icon: Undefined Undefined
    • None
    • None
    • None
    • False
    • Hide

      None

      Show
      None
    • False

      Package 'google-api-python-client' does not build as-is via the AIPCC self-service pipeline and requires builder repository onboarding.

      Build Failure Summary

      Root Cause Analysis: `google-api-python-client` Build Failure

      Summary

      This is not a wheel build failure — the pipeline failed during the requirements parsing stage, before any package building began.

      Root Cause

      The file `/collection-repository/collections/torch-2.9.0/cpu-ubi9/requirements.txt` contains an invalid PEP 440 version specifier:

      google-api-python-client==any
      

      The `packaging` library's requirement parser rejects `==any` because `any` is not a valid version string per [PEP 440](https://peps.python.org/pep-0440/). The relevant traceback:

      packaging.requirements.InvalidRequirement: Expected semicolon (after name with no version specifier) or end
          google-api-python-client==any
                                  ^
      

      This causes the `prepare-requirements` tool to raise a `ValueError` at line 46 and the entire bootstrap job to abort.

      Fix

      In the requirements file, replace:

      google-api-python-client==any
      

      with simply:

      google-api-python-client
      

      In PEP 440, omitting the version specifier entirely means "any version is acceptable." The `==any` syntax is not recognized by the `packaging` library and has no defined meaning in the Python packaging ecosystem.

      Key Details

      • Failing stage: `prepare-requirements` (pre-bootstrap, requirements parsing)
      • *Failing file:* `/collection-repository/collections/torch-2.9.0/cpu-ubi9/requirements.txt`, line 0
      • No packages were built — the pipeline never reached the bootstrap or wheel-building phase

      Packaging Analysis Summary

      Here is the executive summary formatted as a JIRA comment in JIRA wiki markup:

      Executive Summary: google-api-python-client (v2.190.0)

      google-api-python-client is a pure-Python package with a Simple build complexity rating (1/10) and no blockers to onboarding. The package is maintained by Google LLC under the Apache 2.0 license, which is fully compatible with Red Hat distribution. It uses a classic

      setup.py

      build with setuptools — no

      pyproject.toml

      is present — and produces a universal

      py3-none-any

      wheel requiring zero native compilation. Building from source is trivial:

      git clone https://github.com/googleapis/google-api-python-client.git
      cd google-api-python-client
      pip wheel . --no-deps --wheel-dir=dist/
      

      All five direct runtime dependencies (httplib2, google-auth, google-auth-httplib2, google-api-core, uritemplate) are also pure Python with Red Hat-compatible licenses (Apache 2.0, MIT, BSD-3-Clause). The only transitive dependencies requiring compilation are cryptography (Rust/C, via google-auth) and protobuf (C++ accelerator, via google-api-core). Both provide pre-built

      manylinux

      wheels for x86_64, and protobuf additionally offers a pure-Python

      py3-none-any

      fallback. If source-building cryptography is required, it needs the Rust toolchain and

      openssl-devel

      on RHEL.

      There are zero critical packaging issues or open build blockers. The only notable items are a cosmetic namespace deprecation warning on Python 3.13+ (#2640) and a future httplib2 breaking change (#2630) already mitigated by the existing

      <1.0.0

      version pin. The installed package size is approximately 93 MB due to ~575 bundled Google API discovery JSON documents. The single

      py3-none-any

      wheel serves all hardware targets (CPU, CUDA, ROCm) — no per-platform builds are needed.

      Recommendation: Pin to v2.190.0 for onboarding. No special environment variables, build flags, or system dependencies are required. The weekly release cadence (driven by auto-generated discovery document updates) suggests establishing a policy for tracking minor version updates automatically, as these contain no API-breaking changes within the v2.x line. This package is one of the simplest possible onboarding candidates — standard wheel packaging within the AIPCC ecosystem is the appropriate approach.

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

                Created:
                Updated:
                Resolved: