Skip to content

Conversation

@atheo89
Copy link
Member

@atheo89 atheo89 commented Sep 5, 2025

Sync downstream main from upstream

atheo89 and others added 30 commits September 4, 2025 09:31
…rgs-file option and run it to update them all
Add missing matrix for multiplatform builds
Replace yum with dnf to have better consistency among the Dockerfiles
atheo89 and others added 22 commits September 4, 2025 16:34
Signed-off-by: red-hat-konflux <126015336+red-hat-konflux[bot]@users.noreply.github.com>
Co-authored-by: red-hat-konflux[bot] <126015336+red-hat-konflux[bot]@users.noreply.github.com>
…alignment test and handle allowed specifier divergences (opendatahub-io#2276)

* Add test_image_pyprojects_version_alignment to compare dependency specifiers across all pyproject.toml files
* Import packaging.specifiers and store actual SpecifierSet objects instead of string reprs
* Introduce ignored_exceptions for known, acceptable specifier differences (e.g., torch variants, numpy caps)
* Compare specifiers using SpecifierSet equality and wrap checks in subtests for clearer reporting
* Minor cleanup: remove unused pyprojects variable
… outdated jupyterlab and jupyterlab-git packages (opendatahub-io#2278)

```
============================================================================================================ FAILURES =============================================================================================================
_______________________________________________________________ test_image_pyprojects_version_alignment [checking versions of skl2onnx across all pyproject.tomls] ________________________________________________________________
tests/test_main.py:295: in test_image_pyprojects_version_alignment
    pytest.fail(f"{name} has multiple specifiers: {pprint.pformat(data)}")
E   Failed: skl2onnx has multiple specifiers: [<SpecifierSet('~=1.17.0')>,
E    <SpecifierSet('~=1.18.0')>,
E    <SpecifierSet('~=1.18.0')>,
E    <SpecifierSet('~=1.18.0')>,
E    <SpecifierSet('~=1.18.0')>,
E    <SpecifierSet('~=1.18.0')>,
E    <SpecifierSet('~=1.18.0')>,
E    <SpecifierSet('~=1.18.0')>,
E    <SpecifierSet('~=1.18.0')>,
E    <SpecifierSet('~=1.18.0')>,
E    <SpecifierSet('~=1.17.0')>,
E    <SpecifierSet('~=1.18.0')>,
E    <SpecifierSet('~=1.18.0')>,
E    <SpecifierSet('~=1.18.0')>]
-------------------------------------------------------------------------------------------------------- Captured log call --------------------------------------------------------------------------------------------------------

_______________________________________________________________ test_image_pyprojects_version_alignment [checking versions of odh-elyra across all pyproject.tomls] _______________________________________________________________
tests/test_main.py:295: in test_image_pyprojects_version_alignment
    pytest.fail(f"{name} has multiple specifiers: {pprint.pformat(data)}")
E   Failed: odh-elyra has multiple specifiers: [<SpecifierSet('==4.2.3')>,
E    <SpecifierSet('==4.2.3')>,
E    <SpecifierSet('==4.2.3')>,
E    <SpecifierSet('==4.2.1')>,
E    <SpecifierSet('==4.2.3')>,
E    <SpecifierSet('==4.2.3')>,
E    <SpecifierSet('==4.2.3')>]
-------------------------------------------------------------------------------------------------------- Captured log call --------------------------------------------------------------------------------------------------------

______________________________________________________________ test_image_pyprojects_version_alignment [checking versions of jupyterlab across all pyproject.tomls] _______________________________________________________________
tests/test_main.py:295: in test_image_pyprojects_version_alignment
    pytest.fail(f"{name} has multiple specifiers: {pprint.pformat(data)}")
E   Failed: jupyterlab has multiple specifiers: [<SpecifierSet('==4.4.4')>,
E    <SpecifierSet('==4.4.4')>,
E    <SpecifierSet('==4.4.4')>,
E    <SpecifierSet('==4.4.4')>,
E    <SpecifierSet('==4.2.7')>,
E    <SpecifierSet('==4.4.4')>,
E    <SpecifierSet('==4.4.4')>,
E    <SpecifierSet('==4.4.4')>]
-------------------------------------------------------------------------------------------------------- Captured log call --------------------------------------------------------------------------------------------------------

____________________________________________________________ test_image_pyprojects_version_alignment [checking versions of jupyter-server across all pyproject.tomls] _____________________________________________________________
tests/test_main.py:295: in test_image_pyprojects_version_alignment
    pytest.fail(f"{name} has multiple specifiers: {pprint.pformat(data)}")
E   Failed: jupyter-server has multiple specifiers: [<SpecifierSet('~=2.16.0')>,
E    <SpecifierSet('~=2.16.0')>,
E    <SpecifierSet('~=2.16.0')>,
E    <SpecifierSet('~=2.16.0')>,
E    <SpecifierSet('~=2.15.0')>,
E    <SpecifierSet('~=2.16.0')>,
E    <SpecifierSet('~=2.16.0')>,
E    <SpecifierSet('~=2.16.0')>]
-------------------------------------------------------------------------------------------------------- Captured log call --------------------------------------------------------------------------------------------------------

____________________________________________________________ test_image_pyprojects_version_alignment [checking versions of jupyterlab-git across all pyproject.tomls] _____________________________________________________________
tests/test_main.py:295: in test_image_pyprojects_version_alignment
    pytest.fail(f"{name} has multiple specifiers: {pprint.pformat(data)}")
E   Failed: jupyterlab-git has multiple specifiers: [<SpecifierSet('~=0.51.1')>,
E    <SpecifierSet('~=0.51.1')>,
E    <SpecifierSet('~=0.51.1')>,
E    <SpecifierSet('~=0.51.1')>,
E    <SpecifierSet('~=0.50.1')>,
E    <SpecifierSet('~=0.51.1')>,
E    <SpecifierSet('~=0.51.1')>,
E    <SpecifierSet('~=0.51.1')>]
-------------------------------------------------------------------------------------------------------- Captured log call --------------------------------------------------------------------------------------------------------

________________________________________________________ test_image_pyprojects_version_alignment [checking versions of jupyter-resource-usage across all pyproject.tomls] _________________________________________________________
tests/test_main.py:295: in test_image_pyprojects_version_alignment
    pytest.fail(f"{name} has multiple specifiers: {pprint.pformat(data)}")
E   Failed: jupyter-resource-usage has multiple specifiers: [<SpecifierSet('~=1.1.1')>,
E    <SpecifierSet('~=1.1.1')>,
E    <SpecifierSet('~=1.1.1')>,
E    <SpecifierSet('~=1.1.0')>,
E    <SpecifierSet('~=1.1.1')>,
E    <SpecifierSet('~=1.1.1')>,
E    <SpecifierSet('~=1.1.1')>]
-------------------------------------------------------------------------------------------------------- Captured log call --------------------------------------------------------------------------------------------------------

===================================================================================================== short test summary info =====================================================================================================
[checking versions of skl2onnx across all pyproject.tomls] SUBFAIL tests/test_main.py::test_image_pyprojects_version_alignment - Failed: skl2onnx has multiple specifiers: [<SpecifierSet('~=1.17.0')>,
[checking versions of odh-elyra across all pyproject.tomls] SUBFAIL tests/test_main.py::test_image_pyprojects_version_alignment - Failed: odh-elyra has multiple specifiers: [<SpecifierSet('==4.2.3')>,
[checking versions of jupyterlab across all pyproject.tomls] SUBFAIL tests/test_main.py::test_image_pyprojects_version_alignment - Failed: jupyterlab has multiple specifiers: [<SpecifierSet('==4.4.4')>,
[checking versions of jupyter-server across all pyproject.tomls] SUBFAIL tests/test_main.py::test_image_pyprojects_version_alignment - Failed: jupyter-server has multiple specifiers: [<SpecifierSet('~=2.16.0')>,
[checking versions of jupyterlab-git across all pyproject.tomls] SUBFAIL tests/test_main.py::test_image_pyprojects_version_alignment - Failed: jupyterlab-git has multiple specifiers: [<SpecifierSet('~=0.51.1')>,
[checking versions of jupyter-resource-usage across all pyproject.tomls] SUBFAIL tests/test_main.py::test_image_pyprojects_version_alignment - Failed: jupyter-resource-usage has multiple specifiers: [<SpecifierSet('~=1.1.1')>,
================================================================================== 6 failed, 32 passed, 48 skipped, 114 subtests passed in 2.88s ==================================================================================
gmake: *** [Makefile:518: test] Error 1
```
Refactor Dockerfiles to Use Config Files via ARG
…i9 to b0385e9

Image created from 'https://github.com/opendatahub-io/notebooks?rev=99698b723aec25ae787886c001b1ecef888d9fc3'

Signed-off-by: red-hat-konflux <126015336+red-hat-konflux[bot]@users.noreply.github.com>
…mponent-updates/component-update-odh-workbench-codeserver-datascience-cpu-py312-ubi9

chore(deps): update odh-workbench-codeserver-datascience-cpu-py312-ubi9 to b0385e9
…to 40b63ff

Image created from 'https://github.com/opendatahub-io/notebooks?rev=99698b723aec25ae787886c001b1ecef888d9fc3'

Signed-off-by: red-hat-konflux <126015336+red-hat-konflux[bot]@users.noreply.github.com>
…o 9b91566

Image created from 'https://github.com/opendatahub-io/notebooks?rev=99698b723aec25ae787886c001b1ecef888d9fc3'

Signed-off-by: red-hat-konflux <126015336+red-hat-konflux[bot]@users.noreply.github.com>
…mponent-updates/component-update-odh-pipeline-runtime-datascience-cpu-py312-ubi9

chore(deps): update odh-pipeline-runtime-datascience-cpu-py312-ubi9 to 9b91566
…mponent-updates/component-update-odh-workbench-jupyter-datascience-cpu-py312-ubi9

chore(deps): update odh-workbench-jupyter-datascience-cpu-py312-ubi9 to 40b63ff
@openshift-ci openshift-ci bot requested review from dibryant and jiridanek September 5, 2025 08:18
@openshift-ci
Copy link

openshift-ci bot commented Sep 5, 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 jstourac 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

@atheo89 atheo89 merged commit c643233 into red-hat-data-services:main Sep 5, 2025
29 of 42 checks passed
Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

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

📋 Review Summary

This PR syncs the downstream main branch from upstream, bringing in a lot of changes. The overall direction of the changes is good, with significant improvements in the CI/CD pipelines and Dockerfile structure.

🔍 General Feedback

  • The move to multiarch-push-pipeline and the introduction of build-args configuration files are excellent improvements that will make the build process more robust and maintainable.
  • The refactoring of Dockerfiles to use base images and dnf is a good modernization step.
  • The updates to the test suite to ensure dependency alignment are a great addition and will help to improve the stability of the project.

Overall, this is a solid sync commit with many positive changes.

value:
- '{{target_branch}}-{{revision}}'
- v12.6
pipelineRef:
Copy link

Choose a reason for hiding this comment

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

🟢 The change from multiarch-pull-request-pipeline to multiarch-push-pipeline is a good improvement, as it aligns the push pipeline with the new multi-arch build strategy.

fi))

$(info # Building $(IMAGE_NAME) using $(DOCKERFILE_NAME) with $(CONF_FILE) and $(BUILD_ARGS)...)

Copy link

Choose a reason for hiding this comment

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

🟢 The addition of logic to handle build-args/*.conf files is a great enhancement. It makes the build process more flexible and easier to configure without modifying the Makefile directly.


# For libraries in the cuda-compat-* package: https://docs.nvidia.com/cuda/eula/index.html#attachment-a
RUN yum upgrade -y && yum install -y \
RUN dnf upgrade -y && dnf install -y \
Copy link

Choose a reason for hiding this comment

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

🟢 Using dnf instead of yum is the correct approach for RHEL 9 based images. This ensures compatibility and leverages the latest package management features.

#########################
# configuration args #
#########################
ARG BASE_IMAGE
Copy link

Choose a reason for hiding this comment

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

🟢 The introduction of ARG BASE_IMAGE is a good practice. It makes the Dockerfile more modular and reusable, allowing the base image to be specified at build time. This is a great improvement for maintainability.

"Torch",
"Transformers",
"TrustyAI",
}
Copy link

Choose a reason for hiding this comment

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

🟢 The new test test_image_manifests_version_alignment is a valuable addition. It will help to ensure consistency of dependencies across all images and prevent version conflicts. This is a great improvement for the project's stability.

@github-actions
Copy link

github-actions bot commented Sep 5, 2025

There is a problem with the Gemini CLI PR review. Please check the action logs for details.

@atheo89 atheo89 deleted the sync-x2 branch October 13, 2025 12:01
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