Skip to content

ci: test the oldest compilers the README lists - #26

Merged
Reddimus merged 1 commit into
mainfrom
ci/compiler-floors
Sep 25, 2026
Merged

Reddimus merged 1 commit into
mainfrom
ci/compiler-floors

Conversation

@Reddimus

Copy link
Copy Markdown
Owner

Summary

The README says spc-cpp builds with "GCC 13+, Clang 18+ with libc++ or 19+ with libstdc++, or Apple Clang 17+". CI covered GCC 13, Clang 18 with libc++, and the newest Apple Clang, currently 21. Nothing compiled Clang 19 with libstdc++ or Apple Clang 17, and nobody had verified Apple Clang 17 by hand either. A C++23 feature newer than either compiler would pass CI and break those users.

  • build-linux-clang19: clang-19 with Ubuntu 24.04's libstdc++, -Werror, make test.
  • build-macos-xcode16: Xcode 16.4 on macos-15, targeting macOS 13.4, with -Werror, then ctest. The job fails if c++ --version is not Apple Clang 17, so an image change can't quietly test a newer compiler.

CONTRIBUTING's summary of the CI jobs now lists the compiler floors.

The new jobs have new names, so the existing required checks don't change. I'll add these two to branch protection once they pass here and the open PRs have merged, so no open PR gets blocked on a check its branch doesn't run.

Testing

actionlint and make lint-md are clean. Only this PR's CI can run these jobs: this Mac has only Apple Clang 21, and neither toolchain is installed locally.

Copilot AI lite review requested due to automatic review settings September 25, 2026 21:42

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

The README promises Clang 19 with libstdc++ and Apple Clang 17, but CI
built only with GCC 13, Clang 18 with libc++, and the newest Apple Clang.
Two jobs now build with -Werror and run the tests on each floor:
clang-19 on Ubuntu 24.04, and Xcode 16.4 on macos-15 targeting macOS 13.4.
The Xcode job fails if the selected compiler is not Apple Clang 17.
@Reddimus
Reddimus merged commit 7080ee6 into main Sep 25, 2026
12 checks passed
@Reddimus
Reddimus deleted the ci/compiler-floors branch September 25, 2026 21:57
Reddimus added a commit that referenced this pull request Sep 25, 2026
Sets the version to 0.4.2 in `include/spc/version.hpp`, dates the
changelog section, and points the README's `GIT_TAG` at v0.4.2, which
`make test-consumers` checks. The `find_package(spc 0.4 REQUIRED)` line
stays, because 0.4.x is compatible.

v0.4.2 contains the performance and correctness work measured in each
PR: #16 and #28 (the storm report list is sized once, and only for real
reports), #19 (numeric strings parse the same way on every platform),
#21 (the typed ArcGIS queries parse each page once, about half the CPU
and allocations), #24 (the `parse_*` functions stay inside their
`string_view`), #25 (error docs), plus the CI and test-tooling changes
in #22, #26, and #29. No public API changes.

After merge, tagging `v0.4.2` runs the release workflow. It checks the
tag against `version.hpp`, runs the tests and consumer checks, and
publishes the changelog section as the release notes.
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.

2 participants