Skip to content

ci!: Remove CentOS Stream 9 platform support - #2511

Open
jackluo923 wants to merge 3 commits into
y-scope:mainfrom
jackluo923:ci/remove-centos-stream-9
Open

ci!: Remove CentOS Stream 9 platform support#2511
jackluo923 wants to merge 3 commits into
y-scope:mainfrom
jackluo923:ci/remove-centos-stream-9

Conversation

@jackluo923

@jackluo923 jackluo923 commented Sep 1, 2026

Copy link
Copy Markdown
Member

Description

We no longer want to support CentOS Stream 9 platform, so this PR removes all traces of it from the repo:

  • CI (clp-artifact-build.yaml): delete the centos-stream-9-deps-image and centos-stream-9-binaries jobs, the centos_stream_9_image_changed output and its paths-filter block, and the centos-stream-9 deps-cache-key fragment. The &deps_cache_paths / &deps_cache_save_condition YAML anchors that previously lived in the deleted job are relocated into manylinux_2_28-x86_64-binaries so the musllinux and ubuntu jobs continue to resolve them.
  • Docker / build scripts: delete components/core/tools/docker-images/clp-env-base-centos-stream-9/ and components/core/tools/scripts/lib_install/centos-stream-9/.
  • Core:
    • Remove the elseif (EXISTS "/etc/centos-release") static-linking guard from components/core/CMakeLists.txt. The removed block explicitly exempted AlmaLinux, so manylinux_2_28 behavior is unchanged.
    • Remove the CentOS CA-bundle fallback (/etc/pki/tls/certs/ca-bundle.crt) from CurlDownloadHandler::get_host_ca_bundle_path(). Discovery still honors CURL_CA_BUNDLE/SSL_CERT_FILE and the Debian default path; when no path is found, CURLOPT_CAINFO is simply not set and libcurl falls back to its compiled-in default, which on RHEL-family distros is that same path.
  • Docs: delete the centos-stream-9-deps-install.md page, remove its bullet link and hidden-toctree entry from components-core/index.md, remove the clp-core-dependencies-x86-centos-stream-9 section (plus the stale DNF_MIRROR_BASE_URL distro entry and unused link reference) from tooling-containers.md, and remove the corresponding mermaid edges and job bullets from tooling-gh-workflows.md.

The published ghcr.io/y-scope/clp/clp-core-dependencies-x86-centos-stream-9:main image still exists in the registry; registry cleanup is out of scope for this PR.

Checklist

  • The PR satisfies the contribution guidelines.
  • This is a breaking change and that has been indicated in the PR title, OR this isn't a
    breaking change.
  • Necessary docs have been updated, OR no docs need to be updated.

Validation performed

  • Repo-wide case-insensitive grep for centos / stream-9 / stream9 / clp-env-base-centos-stream-9: the only remaining match is the * CentOS/RHEL 8+ compatibility note for the (retained) manylinux_2_28/AlmaLinux image in tooling-containers.md.
  • clp-artifact-build.yaml parses with PyYAML; no dangling job needs:, outputs, or YAML anchor references; all 10 *deps_cache_paths / *deps_cache_save_condition uses occur after the relocated definitions.
  • bash -n passes on the two edited corporate-proxy-*.sh scripts.
  • tools/scripts/find-broken-docs-links.py exits 0 (no broken docs links); the toctree targets in components-core/index.md all exist on disk.

Summary by CodeRabbit

  • New Features

    • Added multi-architecture Spider Worker images for amd64 and arm64, with a unified manifest for main-branch releases.
  • Bug Fixes

    • Improved CentOS static-linking compatibility.
    • Updated certificate-bundle detection to use supported configured and Debian locations.
  • Documentation

    • Removed CentOS Stream 9 build, dependency, container, and workflow documentation.
  • Chores

    • Retired CentOS Stream 9 build images, installation scripts, and automated workflow jobs.

jackluo923 and others added 3 commits August 6, 2026 03:05
…4) image.

Adds an arm64 leg that consumes the existing aarch64 dependency image, publishes each arch under
an arch-suffixed tag, and merges them into a multi-arch manifest, mirroring `package-image`.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
CentOS Stream 9 is no longer a supported platform:

- Delete the centos-stream-9 deps-image and binaries jobs, its
  paths-filter output, and deps-cache-key fragment from
  clp-artifact-build.yaml; relocate the deps-cache YAML anchors into
  the manylinux_2_28-x86_64-binaries job.
- Delete tools/docker-images/clp-env-base-centos-stream-9/ and
  tools/scripts/lib_install/centos-stream-9/.
- Remove the /etc/centos-release static-linking guard from
  components/core/CMakeLists.txt (AlmaLinux/manylinux_2_28 behavior
  unchanged).
- Remove the CentOS CA-bundle fallback from CurlDownloadHandler; CA
  discovery still honors CURL_CA_BUNDLE/SSL_CERT_FILE and the Debian
  default path, and distro libcurl defaults cover RHEL-family hosts.
- Remove the centos-stream-9 docs page, its toctree/link entries, the
  dependencies-image docs section, and related workflow docs.
@coderabbitai

coderabbitai Bot commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Team

Run ID: e809f730-ed9f-4344-aeb2-9fbdd61c0eb7

📥 Commits

Reviewing files that changed from the base of the PR and between 8bbec00 and abd75ef.

📒 Files selected for processing (15)
  • .github/workflows/clp-artifact-build.yaml
  • components/core/CMakeLists.txt
  • components/core/src/clp/CurlDownloadHandler.cpp
  • components/core/src/clp/CurlDownloadHandler.hpp
  • components/core/tools/docker-images/clp-env-base-centos-stream-9/Dockerfile
  • components/core/tools/docker-images/clp-env-base-centos-stream-9/build.sh
  • components/core/tools/scripts/corporate-proxy-container.sh
  • components/core/tools/scripts/corporate-proxy-host.sh
  • components/core/tools/scripts/lib_install/centos-stream-9/install-all.sh
  • components/core/tools/scripts/lib_install/centos-stream-9/install-packages-from-source.sh
  • components/core/tools/scripts/lib_install/centos-stream-9/install-prebuilt-packages.sh
  • docs/src/dev-docs/components-core/centos-stream-9-deps-install.md
  • docs/src/dev-docs/components-core/index.md
  • docs/src/dev-docs/tooling-containers.md
  • docs/src/dev-docs/tooling-gh-workflows.md
💤 Files with no reviewable changes (11)
  • components/core/src/clp/CurlDownloadHandler.hpp
  • components/core/tools/scripts/lib_install/centos-stream-9/install-packages-from-source.sh
  • components/core/tools/docker-images/clp-env-base-centos-stream-9/Dockerfile
  • docs/src/dev-docs/components-core/centos-stream-9-deps-install.md
  • docs/src/dev-docs/components-core/index.md
  • components/core/tools/scripts/lib_install/centos-stream-9/install-all.sh
  • components/core/CMakeLists.txt
  • components/core/tools/docker-images/clp-env-base-centos-stream-9/build.sh
  • components/core/tools/scripts/lib_install/centos-stream-9/install-prebuilt-packages.sh
  • docs/src/dev-docs/tooling-gh-workflows.md
  • components/core/src/clp/CurlDownloadHandler.cpp

Included review availability: Your plan provides up to 4 included reviews per hour; 3 remain after this review.


Walkthrough

The workflow removes CentOS Stream 9 builds and support files. It retains manylinux cache configuration and changes Spider Worker image builds to amd64 and arm64, followed by multi-architecture manifest publishing. CentOS-specific static-linking and CA bundle handling are removed.

Changes

Platform build updates

Layer / File(s) Summary
Remove CentOS Stream 9 workflow jobs
.github/workflows/clp-artifact-build.yaml
The workflow removes CentOS Stream 9 change filters and build jobs. The manylinux job now defines its cache anchors locally.
Build and publish multi-architecture Spider Worker images
.github/workflows/clp-artifact-build.yaml
The Spider Worker job builds amd64 and arm64 images with architecture-specific runners and dependency images. A new job publishes the combined main manifest.
Remove CentOS platform support references
components/core/CMakeLists.txt, components/core/src/clp/CurlDownloadHandler.*, components/core/tools/scripts/*, components/core/tools/docker-images/clp-env-base-centos-stream-9/*, components/core/tools/scripts/lib_install/centos-stream-9/*, docs/src/dev-docs/components-core/*, docs/src/dev-docs/tooling-containers.md, docs/src/dev-docs/tooling-gh-workflows.md
CentOS static-linking detection, CA bundle lookup, image scripts, package installation scripts, and documentation references are removed or updated.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Merge Risk: ⚪ Minimal · up to abd75

This change removes CentOS Stream 9 support and updates the related CI, build scripts, runtime fallbacks, and documentation; no actionable merge-blocking risk remains after normal checks and review.

Sequence Diagram(s)

sequenceDiagram
  participant GitHubActions
  participant DependencyImages
  participant SpiderWorkerImage
  participant GHCR
  GitHubActions->>DependencyImages: Select amd64 or arm64 dependency image
  DependencyImages->>SpiderWorkerImage: Provide architecture-specific build environment
  SpiderWorkerImage->>GHCR: Push architecture-suffixed image
  GitHubActions->>GHCR: Publish the combined main manifest
Loading

Suggested reviewers: davidlion

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely describes the primary change: removing CentOS Stream 9 platform support across the repository.
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 2 functions across 2 files. (2 skipped: 2 …
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Full details: Docstring Coverage

Explanation

Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 2 functions across 2 files. (2 skipped: 2 unsupported.)

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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.

@jackluo923
jackluo923 marked this pull request as ready for review September 1, 2026 08:44
@jackluo923
jackluo923 requested a review from a team as a code owner September 1, 2026 08:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant