Skip to content

Conversation

@shanemcd
Copy link
Contributor

@shanemcd shanemcd commented Jan 14, 2026

Description

Use sqlalchemy[asyncio]>=2.0.42 instead of sqlalchemy>=2.0.42 to ensure greenlet is installed on all platforms.

SQLAlchemy's base dependencies specify greenlet with platform markers that exclude s390x. Since we use async SQLAlchemy features (via llama-stack), we need greenlet at runtime on all platforms.

The [asyncio] extra includes greenlet unconditionally, fixing s390x builds that were failing with "No module named 'greenlet'".

Type of change

  • Bug fix

Tools used to create PR

  • Assisted-by: Claude Code
  • Generated by: Claude Opus 4.5

Related Tickets & Documents

  • Related Issue # N/A
  • Closes # N/A

Checklist before requesting a review

  • I have performed a self-review of my code.
  • PR has passed all pre-merge test jobs.
  • If it is a core feature, I have added thorough tests.

Testing

  • Verify s390x container build succeeds with greenlet properly installed via sqlalchemy[asyncio] dependency.

Summary by CodeRabbit

  • Chores
    • Enabled asynchronous SQLAlchemy support to allow async database operations and improve asyncio compatibility.
    • Updated a build dependency pin for trove-classifiers to a newer patch release to keep build tooling current.

✏️ Tip: You can customize this high-level summary in your review settings.

@openshift-ci
Copy link

openshift-ci bot commented Jan 14, 2026

Hi @shanemcd. Thanks for your PR.

I'm waiting for a lightspeed-core member to verify that this patch is reasonable to test. If it is, they should reply with /ok-to-test on its own line. Until that is done, I will not automatically test new commits in this PR, but the usual testing commands by org members will still work. Regular contributors should join the org to skip this step.

Once the patch is verified, the new status will be reflected by the ok-to-test label.

I understand the commands that are listed here.

Details

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository.

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Jan 14, 2026

Walkthrough

Updated dependency declarations: pyproject.toml now requires sqlalchemy[asyncio]>=2.0.42 instead of sqlalchemy>=2.0.42; requirements-build.txt had a trove-classifiers pin updated from 2026.1.12.15 to 2026.1.14.14.

Changes

Cohort / File(s) Summary
Dependency configuration
pyproject.toml
Replace sqlalchemy>=2.0.42 with sqlalchemy[asyncio]>=2.0.42 in [project.dependencies].
Build requirements pin
requirements-build.txt
Bump trove-classifiers pin from 2026.1.12.15 to 2026.1.14.14.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately describes the main change: updating SQLAlchemy to use the [asyncio] extra to ensure greenlet is installed on all platforms, which directly addresses the s390x build failures mentioned in the PR objectives.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.



📜 Recent review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between a1917cc and 912397c.

⛔ Files ignored due to path filters (1)
  • uv.lock is excluded by !**/*.lock
📒 Files selected for processing (1)
  • requirements-build.txt
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (2)
  • GitHub Check: E2E: server mode / ci
  • GitHub Check: E2E: library mode / ci
🔇 Additional comments (1)
requirements-build.txt (1)

216-216: Trove-classifiers version bump and dependency changes look good.

The trove-classifiers update from 2026.1.12.15 to 2026.1.14.14 is expected when regenerating the lockfile with uv sync --upgrade and make konflux-requirements, as requested.

The main PR objective has been properly implemented:

  • pyproject.toml correctly specifies sqlalchemy[asyncio]>=2.0.42 (line 50)
  • The regenerated uv.lock includes greenlet 3.3.0 with proper s390x platform support
  • greenlet is included unconditionally as part of the sqlalchemy[asyncio] extra, ensuring it's available on all platforms including s390x

✏️ Tip: You can disable this entire section by setting review_details to false in your review settings.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

SQLAlchemy's base dependencies specify greenlet with platform markers
that exclude s390x. Since we use async SQLAlchemy features (via
llama-stack), we need greenlet at runtime on all platforms.

The [asyncio] extra includes greenlet unconditionally, fixing s390x
builds that were failing with "No module named 'greenlet'".

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@shanemcd shanemcd force-pushed the shanemcd/sqlalchemy-asyncio branch from 4317ae8 to a1917cc Compare January 14, 2026 19:44
@tisnik
Copy link
Contributor

tisnik commented Jan 15, 2026

@shanemcd you would need to regenerate lockfile and requirements files as well:

uv sync --upgrade

and

make konflux-requirements

Btw is it really possible to run Llama-Stack on s390 platform? It depends on Pytorch and other "strange" libs... ;)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@shanemcd
Copy link
Contributor Author

@shanemcd you would need to regenerate lockfile and requirements files as well:

uv sync --upgrade

and

make konflux-requirements

@tisnik I've regenerated the requirements files as requested.

Btw is it really possible to run Llama-Stack on s390 platform? It depends on Pytorch and other "strange" libs... ;)

Yes indeed. The Ansible Lightspeed Chatbot uses this project and ships an s390x container. In general most major Red Hat products ship artifacts for amd64, arm64, ppc64le, and s390x.

@tisnik
Copy link
Contributor

tisnik commented Jan 15, 2026

/ok-to-test

Copy link
Contributor

@tisnik tisnik left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@tisnik tisnik merged commit 6350993 into lightspeed-core:main Jan 15, 2026
19 of 24 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants