-
Story
-
Resolution: Won't Do
-
Undefined
-
None
-
None
-
None
-
False
-
-
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.
- is blocked by
-
AIPCC-10820 Add google-api-python-client into the RHAI pipeline onboarding collection
-
- In Progress
-
- mentioned on