Repository navigation
ci: test the oldest compilers the README lists - #26
Merged
Merged
Conversation
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
force-pushed
the
ci/compiler-floors
branch
from
September 25, 2026 21:52
9a04d96 to
17a43ee
Compare
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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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 ifc++ --versionis 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
actionlintandmake lint-mdare clean. Only this PR's CI can run these jobs: this Mac has only Apple Clang 21, and neither toolchain is installed locally.