Skip to content

adding additional packages in minimal Dockerfile.cpu for ppc64le #1175

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

AaruniAggarwal
Copy link

@AaruniAggarwal AaruniAggarwal commented Jun 20, 2025

This PR adds additional packages in minimal runtime Dockerfile.cpu for ppc64le as pyzmq require them. Without these changes, image is failing to build on ppc64le with following error:

127.3   note: This error originates from a subprocess, and is likely not a problem with pip.
127.3   ERROR: Failed building wheel for pyzmq
127.3 Failed to build pyzmq
127.3 ERROR: ERROR: Failed to build installable wheels for some pyproject.toml based projects (pyzmq)
127.6 Failed to install requirements, dependency 'pyzmq' could not be installed

This change ensures notebook runtime minimal builds are successfull on IBM Power (ppc64le) and it will not impact to x86_64 builds.

Tested on: ppc64le

Summary by CodeRabbit

  • Chores
    • Updated installation process to ensure additional system packages are included for more architectures during runtime setup.

Copy link
Contributor

coderabbitai bot commented Jun 20, 2025

## Walkthrough

The conditional logic in the Dockerfile for installing development tools and dependencies was updated to include the "ppc64le" architecture alongside "s390x". Now, both architectures trigger installation of an extended set of OS packages, while other architectures install only a minimal subset.

## Changes

| Files                                             | Change Summary                                                                                     |
|--------------------------------------------------|--------------------------------------------------------------------------------------------------|
| runtimes/minimal/ubi9-python-3.11/Dockerfile.cpu | Expanded architecture check for package installation to include "ppc64le" along with "s390x".    |

## Possibly related PRs

- opendatahub-io/notebooks#1166: Refactors the architecture-based package installation logic in the same Dockerfile.
- opendatahub-io/notebooks#1132: Introduced the conditional logic for "s390x" that is now extended to "ppc64le".

## Suggested reviewers

- jiridanek

📜 Recent review details

Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 7a1a8e8 and e711f5b.

📒 Files selected for processing (1)
  • runtimes/minimal/ubi9-python-3.11/Dockerfile.cpu (1 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
  • runtimes/minimal/ubi9-python-3.11/Dockerfile.cpu

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
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Explain this complex logic.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai explain this code block.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and explain its main purpose.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR.
  • @coderabbitai generate sequence diagram to generate a sequence diagram of the changes in this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link
Contributor

openshift-ci bot commented Jun 20, 2025

Hi @AaruniAggarwal. Thanks for your PR.

I'm waiting for a opendatahub-io 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.

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.

@openshift-ci openshift-ci bot requested review from atheo89 and paulovmr June 20, 2025 09:30
Copy link
Contributor

openshift-ci bot commented Jun 20, 2025

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by:
Once this PR has been reviewed and has the lgtm label, please assign harshad16 for approval. For more information see the Code Review Process.

The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@openshift-ci openshift-ci bot added size/xs and removed size/xs labels Jun 20, 2025
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

🧹 Nitpick comments (1)
runtimes/minimal/ubi9-python-3.11/Dockerfile.cpu (1)

12-18: DRY package installation logic
The mesa-libGL and skopeo packages are duplicated in both branches. Extracting common packages into a variable and appending the development toolchain conditionally can improve maintainability and readability.

Example diff:

 RUN ARCH=$(uname -m) && \
     echo "Detected architecture: $ARCH" && \
-    if [ "$ARCH" = "s390x" ] || [ "$ARCH" = "ppc64le" ]; then \
-        dnf install -y mesa-libGL skopeo gcc g++ make openssl-devel autoconf automake libtool cmake; \
-    else \
-        dnf install -y mesa-libGL skopeo; \
-    fi && \
+    COMMON_PKGS="mesa-libGL skopeo" && \
+    DEV_PKGS="gcc g++ make openssl-devel autoconf automake libtool cmake" && \
+    if [ "$ARCH" = "s390x" ] || [ "$ARCH" = "ppc64le" ]; then \
+        dnf install -y $COMMON_PKGS $DEV_PKGS; \
+    else \
+        dnf install -y $COMMON_PKGS; \
+    fi && \
📜 Review details

Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 61c8d5b and 7a1a8e8.

📒 Files selected for processing (1)
  • runtimes/minimal/ubi9-python-3.11/Dockerfile.cpu (1 hunks)
🔇 Additional comments (1)
runtimes/minimal/ubi9-python-3.11/Dockerfile.cpu (1)

14-14: Arch check extended to ppc64le
Adding ppc64le ensures the full build toolchain is installed on IBM Power, resolving the pyzmq wheel build failure during docker build.

Signed-off-by: AaruniAggarwal <aaruniagg@gmail.com>
@jiridanek
Copy link
Member

@coderabbitai should the commit messages and PR title be written in imperative mood?

Copy link
Contributor

coderabbitai bot commented Jun 20, 2025

Tip

For best results, initiate chat on the files or code changes.

@jiridanek Yes, absolutely! Based on your previous guidance that I have in my knowledge base, PR titles and commit messages should be written in imperative mood, completing the sentence "If applied, this commit will ___".

Looking at the current PR title "adding additional packages in minimal Dockerfile.cpu for ppc64le", it should be written as "Add additional packages in minimal Dockerfile.cpu for ppc64le" to follow the imperative mood convention.

This aligns with the learnings I have from your previous feedback emphasizing that PR titles should use imperative mood (e.g., "Add feature" not "Created feature") and be concise while clearly describing what the change accomplishes.

  (\   /)
 ( ._.)
o_(")(")

thinking thoughtfully


🧠 Learnings used
Learnt from: jiridanek
PR: opendatahub-io/notebooks#0
File: :0-0
Timestamp: 2025-06-19T06:29:29.217Z
Learning: PR titles and commit messages should be written in imperative mood, completing the sentence "If applied, this commit will ___". For example: "Add feature" instead of "Added feature" or "Adding feature".

Learnt from: jiridanek
PR: opendatahub-io/notebooks#0
File: :0-0
Timestamp: 2025-06-19T06:29:29.217Z
Learning: PR titles should use imperative mood (e.g., "Add feature" not "Created feature") and be concise while clearly describing what the change accomplishes. Ticket references can be maintained at the beginning while following imperative mood for the descriptive part.

@jiridanek
Copy link
Member

@coderabbitai most PRs on this project are associated with a https://issues.redhat.com Jira ticket; please explain how this is critical for traceability between requirements, release process, and product documentation.

Copy link
Contributor

coderabbitai bot commented Jun 20, 2025

Tip

For best results, initiate chat on the files or code changes.

@jiridanek Associating PRs with Jira tickets from https://issues.redhat.com creates a comprehensive traceability chain that's essential for enterprise software development. Here's why this is critical:

Requirements Traceability

  • Requirements to Implementation: Each Jira ticket typically originates from a business requirement, feature request, or bug report. By linking PRs to tickets, you can trace exactly which code changes implement specific requirements.
  • Impact Analysis: When requirements change, you can quickly identify all related code changes and their dependencies.

Release Process Benefits

  • Release Planning: Jira tickets help categorize changes (features, bug fixes, security updates) and prioritize what goes into each release.
  • Release Notes: Tickets provide structured information for generating comprehensive release notes with proper categorization and business context.
  • Regression Testing: QA teams can use ticket information to understand what areas need focused testing.
  • Rollback Planning: If issues arise, tickets help identify which changes can be safely rolled back together.

Product Documentation

  • Documentation Updates: Tickets often specify what documentation needs updating when features are implemented.
  • User-Facing Changes: Tickets help technical writers understand the business context and user impact of changes.
  • API Documentation: For API changes, tickets provide the business rationale and expected behavior.

Compliance & Audit Trail

  • Enterprise Compliance: Many enterprise environments require full traceability for regulatory compliance.
  • Change Approval: Tickets often contain approval workflows that must be completed before code changes.
  • Security Reviews: Security-related changes can be tracked and audited through the ticket system.

Cross-Team Coordination

  • Stakeholder Communication: Product managers, QA, documentation teams, and support can all reference the same ticket for context.
  • Dependency Management: Tickets help identify dependencies between different teams and components.

This practice ensures that every code change has a clear business justification and can be traced through the entire development lifecycle.

  (\   /)
 ( ._.)
o_(")(")

thoughtfully explaining traceability


✏️ Learnings added
Learnt from: jiridanek
URL: https://github.com/opendatahub-io/notebooks/pull/1175

Timestamp: 2025-06-20T11:51:59.694Z
Learning: This project follows the practice of associating PRs with Jira tickets from https://issues.redhat.com for traceability between requirements, release process, and product documentation. This is critical for enterprise software development compliance and cross-team coordination.

Note: Learnings are effective only in the context of similar code segments. To apply general coding guidelines, please configure review instructions. You can manage existing learnings in the app.

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.

3 participants