Skip to content
Merged
Show file tree
Hide file tree
Changes from 9 commits
Commits
Show all changes
120 commits
Select commit Hold shift + click to select a range
d4b0ae6
Bump ystdlib-cpp and drop clang 16 requirements
Bill-hbrhbr Aug 18, 2025
fb11954
Merge branch 'main' into bump-ystdlib-cpp
Bill-hbrhbr Aug 18, 2025
32f8072
Add macos-14 to workflow
Bill-hbrhbr Aug 18, 2025
59c6b98
Merge branch 'main' into bump-ystdlib-cpp
Bill-hbrhbr Aug 18, 2025
8a7e9c4
Update .github/workflows/clp-core-build-macos.yaml
Bill-hbrhbr Aug 18, 2025
9bffe7a
Merge branch 'main' into bump-ystdlib-cpp
Bill-hbrhbr Aug 19, 2025
5ce0f24
Merge branch 'main' into bump-ystdlib-cpp
Bill-hbrhbr Aug 19, 2025
43a8cd7
Merge branch 'main' into bump-ystdlib-cpp
Bill-hbrhbr Aug 20, 2025
7d194d1
Make clp lint workflow install cmake 3.31
Bill-hbrhbr Aug 21, 2025
d719bba
Merge branch 'main' into bump-ystdlib-cpp
Bill-hbrhbr Aug 21, 2025
550bb4b
Merge branch 'main' into bump-ystdlib-cpp
Bill-hbrhbr Aug 22, 2025
31646db
revert pipx in clp-lint
Bill-hbrhbr Aug 22, 2025
b96e4d1
Use pipx to install cmake 3.31 on ubuntu and centos9 deps images
Bill-hbrhbr Aug 22, 2025
2d0e114
Make remove non-interactive
Bill-hbrhbr Aug 22, 2025
01c8a2d
Specify pipx install path
Bill-hbrhbr Aug 23, 2025
d6add9f
Merge branch 'main' into bump-ystdlib-cpp
Bill-hbrhbr Aug 23, 2025
73f7fd1
upgrade pipx install script
Bill-hbrhbr Aug 24, 2025
029b33d
add centos 9
Bill-hbrhbr Aug 24, 2025
8467263
rename
Bill-hbrhbr Aug 24, 2025
e6eb8a8
make script executable
Bill-hbrhbr Aug 24, 2025
b7f67f6
Fix relative path
Bill-hbrhbr Aug 24, 2025
4ca4f6f
Relax version check constraint
Bill-hbrhbr Aug 24, 2025
141276f
set pipx home to non-root-user path
Bill-hbrhbr Aug 24, 2025
acc4a62
Add manylinux deps image build
Bill-hbrhbr Aug 24, 2025
f1c7024
Merge branch 'y-scope:main' into add-manylinux-musllinux-deps-img
Bill-hbrhbr Aug 24, 2025
81d6799
Small fix
Bill-hbrhbr Aug 24, 2025
bdb75bb
Create filter outputs
Bill-hbrhbr Aug 24, 2025
373d43f
Update docker dir
Bill-hbrhbr Aug 24, 2025
7f8706e
Fix cmake version
Bill-hbrhbr Aug 25, 2025
b5da810
Merge branch 'main' into add-manylinux-musllinux-deps-img
Bill-hbrhbr Aug 25, 2025
39d7abb
Add remaining workflows
Bill-hbrhbr Aug 25, 2025
916a4b6
Remove unrelated changes
Bill-hbrhbr Aug 25, 2025
06a9020
Update docs
Bill-hbrhbr Aug 25, 2025
0157ac4
Merge branch 'main' into add-manylinux-musllinux-deps-img
jackluo923 Aug 25, 2025
b6f1436
Add manylinux arm64 deps img workflow
Bill-hbrhbr Aug 25, 2025
93bee22
Add both x86_64 and arm64 versions for two platforms
Bill-hbrhbr Aug 25, 2025
22cfccc
fox
Bill-hbrhbr Aug 25, 2025
8adc4e6
use matrix
Bill-hbrhbr Aug 25, 2025
ff98538
Update vars
Bill-hbrhbr Aug 25, 2025
bff7064
Fix grammar
Bill-hbrhbr Aug 25, 2025
6224601
revert optimizations
Bill-hbrhbr Aug 25, 2025
828e634
Fix image prefixes with arch type
Bill-hbrhbr Aug 25, 2025
386e5dc
Alphabeticize
Bill-hbrhbr Aug 25, 2025
6f5579b
Remove doc updates since manylinux and musllinux are not common OS pl…
Bill-hbrhbr Aug 25, 2025
b674025
Merge branch 'main' into add-manylinux-musllinux-deps-img
Bill-hbrhbr Aug 26, 2025
bc976fe
Add docs and remove aarch64 builds
Bill-hbrhbr Aug 26, 2025
8d463fd
cleanup version changes
Bill-hbrhbr Aug 26, 2025
d68ddba
Apply suggestions from code review
Bill-hbrhbr Aug 27, 2025
06d2ca8
Merge branch 'main' into add-manylinux-musllinux-deps-img
Bill-hbrhbr Aug 27, 2025
d3b9b24
Install cmake 3.23
Bill-hbrhbr Aug 28, 2025
cee4c35
Merge branch 'main' into pipx-install
Bill-hbrhbr Aug 28, 2025
e6043ad
switch task and uv to pipx install too
Bill-hbrhbr Aug 28, 2025
2e2e9c8
Typo fix
Bill-hbrhbr Aug 28, 2025
4141831
Allow pipx uninstall not found
Bill-hbrhbr Aug 28, 2025
fc2fd9a
add lib version checks
Bill-hbrhbr Aug 29, 2025
096d21c
Merge branch 'main' into pipx-install
Bill-hbrhbr Aug 29, 2025
54e18e0
reorder dir structure
Bill-hbrhbr Aug 29, 2025
1c34970
Merge branch 'main' into bump-ystdlib-cpp
Bill-hbrhbr Aug 29, 2025
79c3756
bring in pipx install
Bill-hbrhbr Aug 29, 2025
856c06f
Move PIPX path setup to dockerfile
Bill-hbrhbr Aug 29, 2025
e0950c1
Improve docs
Bill-hbrhbr Aug 29, 2025
b833729
lint cmake
Bill-hbrhbr Aug 29, 2025
778fdac
lock to cmake 3.23 instead of 3.31
Bill-hbrhbr Aug 29, 2025
26a3a10
Update docs
Bill-hbrhbr Aug 29, 2025
8fec8ba
Address coderabbitai review
Bill-hbrhbr Aug 29, 2025
bbf21fc
Fix comment
Bill-hbrhbr Aug 31, 2025
8601b81
change deps core to sequential
Bill-hbrhbr Aug 31, 2025
330c0ae
Bump to 4.1.1
Bill-hbrhbr Aug 31, 2025
a09f934
change deps core to sequential
Bill-hbrhbr Aug 31, 2025
0e94674
remove using simdjson
Bill-hbrhbr Sep 1, 2025
5c49e2b
resolve simdjson issues
Bill-hbrhbr Sep 1, 2025
627d024
switch back to parallel deps core
Bill-hbrhbr Sep 1, 2025
a5930d6
move brew uninstall macos into github actions
Bill-hbrhbr Sep 1, 2025
ec611c5
Merge branch 'bump-mongocxx' into pipx-install
Bill-hbrhbr Sep 1, 2025
e7a42bc
Update .github/workflows/clp-core-build-macos.yaml
Bill-hbrhbr Sep 1, 2025
58b8688
minor fix
Bill-hbrhbr Sep 1, 2025
c359e30
Refactor to ask user to uninstall manually and fail-fast for build to…
Bill-hbrhbr Sep 1, 2025
0730260
Add missing vars
Bill-hbrhbr Sep 1, 2025
f4a2c53
Add missing exit flags
Bill-hbrhbr Sep 1, 2025
627d440
Merge branch 'main' into pipx-install
Bill-hbrhbr Sep 1, 2025
b686138
Add missing line
Bill-hbrhbr Sep 1, 2025
8c5b4a7
add missing line
Bill-hbrhbr Sep 1, 2025
9d48db5
Merge pipx install tooling scripts
Bill-hbrhbr Sep 1, 2025
848e5f9
Remove macos-13
Bill-hbrhbr Sep 1, 2025
92d6cd9
Merge branch 'main' into pipx-install
Bill-hbrhbr Sep 3, 2025
fc783cd
rewrite set euo pipefail
Bill-hbrhbr Sep 3, 2025
e29b90c
Merge branch 'main' into pipx-install
Bill-hbrhbr Sep 3, 2025
8c94fbd
Update cmake version check
Bill-hbrhbr Sep 4, 2025
0c5dce1
docs: Refer to issues redirectly.
kirkrodrigues Sep 5, 2025
d928f5e
Refactor workflow.
kirkrodrigues Sep 8, 2025
f8bde46
Only uninstall preinstalled packages that are actually installed.
kirkrodrigues Sep 8, 2025
132c3b5
Refactor comment about installing pipx packages.
kirkrodrigues Sep 8, 2025
e70f2e7
Refactor version checking scripts.
kirkrodrigues Sep 8, 2025
bd528a7
Refactor installation scripts.
kirkrodrigues Sep 8, 2025
cf30eea
Add components/core/tools to yaml-linting.
kirkrodrigues Sep 8, 2025
d26a13f
Apply shfmt.
kirkrodrigues Sep 8, 2025
e890c0e
Apply suggestions from code review
Bill-hbrhbr Sep 8, 2025
81a0c1f
copy changes to ubuntu-jammy
Bill-hbrhbr Sep 8, 2025
1ed15ec
refactor pipx-packages scripts
Bill-hbrhbr Sep 8, 2025
56a9a54
fix original lib version checking script removal
Bill-hbrhbr Sep 8, 2025
d457236
Merge branch 'main' into pipx-install
Bill-hbrhbr Sep 9, 2025
8aff56e
Merge branch 'main' into pipx-install
Bill-hbrhbr Sep 10, 2025
c395102
Rename package_exists to package_preinstalled; Use 0 for true and 1 f…
kirkrodrigues Sep 10, 2025
055a573
Minor refactorin.
kirkrodrigues Sep 10, 2025
57df29e
Dedupliicate task version constraint.
kirkrodrigues Sep 10, 2025
31b21c5
Dedupliicate uv version constraint.
kirkrodrigues Sep 10, 2025
9297f67
Dedupliicate cmake version constraint.
kirkrodrigues Sep 10, 2025
c1ab120
Bump minimum required cmake ver of building clp-core to 3.23
Bill-hbrhbr Sep 10, 2025
b417e1d
Merge branch 'main' into pipx-install
Bill-hbrhbr Sep 10, 2025
a73e389
Update components/core/CMakeLists.txt
Bill-hbrhbr Sep 10, 2025
52119c7
Merge branch 'pipx-install' into bump-ystdlib-cpp
Bill-hbrhbr Sep 10, 2025
34753ba
Merge branch 'main' into bump-ystdlib-cpp
Bill-hbrhbr Sep 11, 2025
a7ab3d8
Removed unused scripts
Bill-hbrhbr Sep 11, 2025
0b28635
Minor fixes
Bill-hbrhbr Sep 11, 2025
57c51c9
minor fix
Bill-hbrhbr Sep 11, 2025
9d66322
Merge branch 'main' into bump-ystdlib-cpp
Bill-hbrhbr Sep 15, 2025
df085d1
Switch to cmake lib install for ystdlib-cpp
Bill-hbrhbr Sep 15, 2025
6d2dc5d
Remove optional catch2 dep and add standard cmake flags
Bill-hbrhbr Sep 15, 2025
0f4530f
revert creating catch2 var
Bill-hbrhbr Sep 15, 2025
d1a86db
Merge branch 'main' into bump-ystdlib-cpp
Bill-hbrhbr Sep 16, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .github/workflows/clp-core-build-macos.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,8 @@ jobs:
strategy:
matrix:
os:
- "macos-13"
- "macos-14"
- "macos-15"
use_shared_libs:
- true
Expand Down
9 changes: 9 additions & 0 deletions .github/workflows/clp-lint.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,15 @@ jobs:
with:
python-version: "3.11"

- if: "matrix.os == 'ubuntu24.04'"
name: "Install pipx"
shell: "bash"
run: "DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends -y pipx"

Copy link
Contributor

Choose a reason for hiding this comment

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

🛠️ Refactor suggestion

⚠️ Potential issue

Broken OS condition prevents pipx install on Ubuntu runners

The matrix uses "ubuntu-24.04", but the condition checks for "ubuntu24.04" (missing dash), so this step never runs. Also, installing with apt on GitHub-hosted runners typically requires sudo and an apt-get update first.

Apply this patch to fix the condition and ensure a reliable install:

-      - if: "matrix.os == 'ubuntu24.04'"
-        name: "Install pipx"
-        shell: "bash"
-        run: "DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends -y pipx"
+      - if: startsWith(matrix.os, 'ubuntu-')
+        name: "Install pipx (Ubuntu)"
+        shell: bash
+        run: |
+          sudo apt-get update
+          DEBIAN_FRONTEND=noninteractive sudo apt-get install --no-install-recommends -y pipx
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
- if: "matrix.os == 'ubuntu24.04'"
name: "Install pipx"
shell: "bash"
run: "DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends -y pipx"
- if: startsWith(matrix.os, 'ubuntu-')
name: "Install pipx (Ubuntu)"
shell: bash
run: |
sudo apt-get update
DEBIAN_FRONTEND=noninteractive sudo apt-get install --no-install-recommends -y pipx
🤖 Prompt for AI Agents
.github/workflows/clp-lint.yaml around lines 34 to 38: the job condition
incorrectly matches "ubuntu24.04" (missing dash) so the pipx install step never
runs; update the if expression to check matrix.os == 'ubuntu-24.04' and make the
install robust by running apt-get update and using sudo for apt-get install
(e.g., run: sudo apt-get update && sudo DEBIAN_FRONTEND=noninteractive apt-get
install --no-install-recommends -y pipx), ensuring the step executes on the
intended Ubuntu runner and succeeds on GitHub-hosted images.

- name: "Install cmake"
shell: "bash"
run: "pipx install cmake~=3.31"

Copy link
Contributor

Choose a reason for hiding this comment

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

🛠️ Refactor suggestion

⚠️ Potential issue

Unconditional cmake install via pipx will fail on macOS (pipx not present)

This step assumes pipx exists on all runners. Given the previous step is Ubuntu-only, macOS lacks pipx and the cmake install will fail.

Option A (OS-specific installs; minimal diff with current approach):

-      - name: "Install cmake"
-        shell: "bash"
-        run: "pipx install cmake~=3.31"
+      - if: startsWith(matrix.os, 'macos-')
+        name: "Install pipx (macOS)"
+        shell: bash
+        run: brew install pipx
+
+      - name: "Install CMake via pipx"
+        shell: bash
+        run: pipx install "cmake~=3.31"

Option B (preferred; cross-platform and simpler): use the maintained setup action for pipx, then install cmake. Replace both the pipx installation and cmake steps with:

-      - if: "matrix.os == 'ubuntu24.04'"
-        name: "Install pipx"
-        shell: "bash"
-        run: "DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends -y pipx"
-
-      - name: "Install cmake"
-        shell: "bash"
-        run: "pipx install cmake~=3.31"
+      - name: "Set up pipx"
+        uses: pipx/actions/setup-pipx@<pin-a-specific-SHA>
+      - name: "Install CMake via pipx"
+        shell: bash
+        run: pipx install "cmake~=3.31"

Note: align with your policy of pinning actions by commit SHA (replace accordingly). This keeps behaviour consistent across Ubuntu and macOS and avoids OS-conditional maintenance.

📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
- name: "Install cmake"
shell: "bash"
run: "pipx install cmake~=3.31"
- if: startsWith(matrix.os, 'macos-')
name: "Install pipx (macOS)"
shell: bash
run: brew install pipx
- name: "Install CMake via pipx"
shell: bash
run: pipx install "cmake~=3.31"
🤖 Prompt for AI Agents
In .github/workflows/clp-lint.yaml around lines 39-42, the workflow
unconditionally runs "pipx install cmake~=3.31" which fails on macOS because
pipx isn't installed; replace the current pipx+cmeake steps with a
cross-platform approach: add the maintained pipx setup action (pinned to a
specific commit SHA) before any pipx commands, then run pipx install cmake after
that, or alternately use OS-specific install steps (install pipx on
macOS/Ubuntu) — ensure the action is pinned by commit SHA and remove the
unconditional pipx install so the job succeeds on macOS and Ubuntu.

- name: "Install task"
shell: "bash"
run: "npm install -g @go-task/cli"
Expand Down
10 changes: 2 additions & 8 deletions components/core/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,17 +1,11 @@
cmake_minimum_required(VERSION 3.21)

# Toolchain setup must come before the first project() call in the entire CMake buildsystem.
# If CLP is not the top-level project, the following setup has no effect.
include("${CMAKE_CURRENT_SOURCE_DIR}/cmake/Toolchains/utils.cmake")
setup_toolchains()

project(CLP LANGUAGES CXX C)

validate_compiler_versions()

# Include options for CLP build
include("${CMAKE_CURRENT_SOURCE_DIR}/cmake/Options/options.cmake")
include("${CMAKE_CURRENT_SOURCE_DIR}/cmake/Toolchains/utils.cmake")

validate_compiler_versions()
validate_and_setup_all_clp_dependency_flags()
convert_clp_dependency_properties_to_variables()

Expand Down
21 changes: 0 additions & 21 deletions components/core/cmake/Toolchains/llvm-clang-16-toolchain.cmake

This file was deleted.

33 changes: 5 additions & 28 deletions components/core/cmake/Toolchains/utils.cmake
Original file line number Diff line number Diff line change
@@ -1,36 +1,13 @@
# This file contains utility functions for setting up toolchains and validating toolchain versions
# to ensure compatibility with the C++20 features required by the project.

# Sets up the appropriate toolchain file based on the host system.
function(setup_toolchains)
# For macOS versions below 15, use the LLVM 16 Clang toolchain.
if("Darwin" STREQUAL "${CMAKE_HOST_SYSTEM_NAME}")
execute_process(
COMMAND
"sw_vers" "--productVersion"
OUTPUT_VARIABLE MACOS_VERSION
OUTPUT_STRIP_TRAILING_WHITESPACE
)
if("${MACOS_VERSION}" VERSION_LESS "15")
set(CMAKE_TOOLCHAIN_FILE
"${CMAKE_CURRENT_SOURCE_DIR}/cmake/Toolchains/llvm-clang-16-toolchain.cmake"
CACHE STRING
"Toolchain file"
)
endif()
endif()
endfunction()
# This file contains utility functions for validating toolchain versions to ensure compatibility
# with the C++20 features required by the project.

# Checks if the compiler ID and version meet the minimum requirements to support C++20 features
# required by the project:
# - AppleClang: version 16+
# - Clang: version 16+
# - GNU: version 11+
# required by the project.
function(validate_compiler_versions)
if("AppleClang" STREQUAL "${CMAKE_CXX_COMPILER_ID}")
set(CXX_COMPILER_MIN_VERSION "16")
set(CXX_COMPILER_MIN_VERSION "15")
elseif("Clang" STREQUAL "${CMAKE_CXX_COMPILER_ID}")
set(CXX_COMPILER_MIN_VERSION "16")
set(CXX_COMPILER_MIN_VERSION "15")
elseif("GNU" STREQUAL "${CMAKE_CXX_COMPILER_ID}")
set(CXX_COMPILER_MIN_VERSION "11")
else()
Expand Down
2 changes: 1 addition & 1 deletion docs/src/dev-guide/components-core/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ The task will download, build, and install (within the build directory) the foll
| [uftcpp](https://github.com/nemtrif/utfcpp.git) | v4.0.6 |
| [yaml-cpp](https://github.com/jbeder/yaml-cpp.git) | v0.7.0 |
| [yscope-log-viewer](https://github.com/y-scope/yscope-log-viewer.git) | 969ff35 |
| [ystdlib-cpp](https://github.com/y-scope/ystdlib-cpp.git) | d80cf86 |
| [ystdlib-cpp](https://github.com/y-scope/ystdlib-cpp.git) | 9ed78cd |
| [zstd](https://github.com/facebook/zstd) | v1.5.7 |

### Environment
Expand Down
5 changes: 2 additions & 3 deletions taskfiles/deps/main.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -465,7 +465,6 @@ tasks:
TARBALL_URL: "https://github.com/jbeder/yaml-cpp/archive/refs/tags/yaml-cpp-0.7.0.tar.gz"

ystdlib:
internal: true
vars:
LIB_NAME: "ystdlib"
YSTDLIB_OUTPUT_DIR: "{{.G_DEPS_CORE_DIR}}/{{.LIB_NAME}}-src"
Expand All @@ -476,9 +475,9 @@ tasks:
- task: "yscope-dev-utils:remote:download-and-extract-tar"
vars:
CHECKSUM_FILE: "{{.G_DEPS_CORE_CHECKSUMS_DIR}}/{{.LIB_NAME}}.md5"
FILE_SHA256: "36fa0e9d96b7307ca92482343d6ba1091c5576370676e6d423cce32c20e34a3d"
FILE_SHA256: "65990dc2bcc4a355c2181bfe31a7800f492309d1bcd340f52a34e85047e61bc8"
OUTPUT_DIR: "{{.YSTDLIB_OUTPUT_DIR}}"
URL: "https://github.com/y-scope/ystdlib-cpp/archive/d80cf86.tar.gz"
URL: "https://github.com/y-scope/ystdlib-cpp/archive/9ed78cd.tar.gz"
- >-
echo "set(
CLP_YSTDLIB_SOURCE_DIRECTORY \"{{.YSTDLIB_OUTPUT_DIR}}\"
Expand Down