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

Add pendulum 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 'pendulum' 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

      Executive Summary: pendulum 3.2.0 Build Analysis

      pendulum 3.2.0 is a Python datetime library with moderate build complexity (5/10). The package includes an optional Rust native extension (compiled via maturin/PyO3) for performance-optimized date parsing and calculation. Critically, pendulum provides a complete pure-Python fallback — the Rust extension is entirely optional. The upstream project publishes both platform-specific wheels and a universal py3-none-any.whl on PyPI. The package is required by apache-airflow-core>=3.1.0 (tracked in AIPCC-10388), and version 3.2.0 satisfies that constraint. The MIT license is fully compatible with Red Hat redistribution, and all transitive runtime dependencies (python-dateutil, tzdata) are permissively licensed and pure Python.

      Two viable build strategies exist. The preferred approach is building from source with the Rust toolchain to produce a manylinux2014_x86_64 wheel with the performance extension. This requires only the Rust stable toolchain (1.63+) and maturin>=1.0,<2.0 — no C/C++ compiler or system library headers are needed beyond python3-devel. Alternatively, the upstream CI demonstrates a pure-Python build path by swapping the build backend from maturin to poetry-core>=2.0.0, producing a universal wheel with zero compilation requirements. Both approaches are proven in upstream CI and actively tested.

      # Rust extension build (preferred):
      pip install "maturin>=1.0,<2.0"
      maturin build --release --interpreter python3.10 python3.11 python3.12 python3.13
      
      # Pure-Python fallback build (alternative):
      sed -i 's/maturin/poetry-core/g' pyproject.toml  # swap build backend
      python -m build --wheel
      # Produces: pendulum-3.2.0-py3-none-any.whl
      

      There are no critical blockers for the target configuration (x86_64 Linux, Python 3.10+). All previously reported critical issues — including Rust arithmetic overflow (#787) and Alpine segfault (#785) — are resolved in 3.2.0. Runtime dependencies are minimal: only python-dateutil>=2.6 and tzdata>=2020.1, both pure Python with no compilation requirements. The pytz dependency was removed in 3.2.0, simplifying the dependency tree. The PENDULUM_EXTENSIONS=0 environment variable can force pure-Python mode at runtime if needed, and is automatically activated when the native extension is absent. For AIPCC-10855, version 3.2.0 is the recommended target — it is the latest stable release (2026-01-30), supports Python 3.10–3.14, and aligns with the Red Hat AI platform baseline.

              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: