Consolidate build configuration under cmake/ - #112
Merged
Conversation
This was referenced Jul 25, 2026
Relocate the CMake modules and build helpers from config/ to cmake/ (git-tracked renames, contents unchanged) and drop dead legacy: - remove Debian sid packaging (SVN/wheezy-era, unreferenced; superseded by the wheel + CPack packaging paths) - remove SVN-era license-header tooling (preamble*.in, update_preamble*) - remove stale root files (README.txt, README-package.txt, Welcome.txt, CTestConfig.cmake) - add CITATION.md and CMakePresets.json The config/ directory is now gone; cmake/ is the single home for build configuration. No functional/build behavior change. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
version.h.in declared ALPS_VERSION_MAJOR/MINOR/PATCH with cmakedefine, which emits "/* #undef NAME */" when the substituted value is false-y. CMake counts 0 as false-y, so any x.y.0 release generated a header with that component silently missing. 2.4.0 would have tripped it. Use a plain #define for every macro the build unconditionally sets. Keep cmakedefine only for ALPS_XML_ALTERNATE_DIR, which the build never sets and parser/xslt_path.C guards with #ifdef. Also add ALPS_VERSION_NUMBER/ALPS_VERSION_NUM() for preprocessor version comparisons (BOOST_VERSION packing), and drop two macros: ALPS_SVN_REVISION, which expanded a variable unset since the SVN migration and was always #undef, and ALPS_SRCDIR, which baked the build machine's source path into an installed header for one line of pconfig output. Refs #95 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
The version was hardcoded in CMakeLists.txt and had already drifted: CMake said 2.3.3, the newest tag is v2.3.4, and pyalps' pyproject.toml says 2.3.4b1. Put the numeric release in ALPS_VERSION.txt, read it in cmake/ALPSVersion.cmake before project(), and derive ALPS_VERSION_MAJOR/MINOR/PATCH from PROJECT_VERSION_*. The file holds MAJOR.MINOR.PATCH and nothing else, because project(VERSION) rejects non-numeric input and neither SOVERSION nor find_package() matching has any notion of prerelease ordering. A malformed file is rejected with a message naming the file, rather than CMake's bare "VERSION format invalid". Corrects the version to 2.3.4 in passing. ALPS_VERSION_BUILD, which was always empty, becomes the ALPS_VERSION_PRERELEASE cache variable: it carries "beta.2" into display strings while the numeric version stays clean. "Prerelease" because a later change adds real build metadata (a git hash), and two similarly-named slots would confuse. Generate and install ALPSConfigVersion.cmake. Without it find_package(ALPS <version>) accepted any version it found and silently discarded the constraint. SameMinorVersion: within 2.3.x a patch release is drop-in, a minor bump is not guaranteed to be. Note this is stricter than the SOVERSION of MAJOR alone advertises; reconciling the soname is a packaging-visible change and is left alone here. Derive ALPS_YEAR with string(TIMESTAMP), which honours SOURCE_DATE_EPOCH, so distro and conda reproducible builds still get a stable year. ALPS_SRCDIR is dropped from the installed header by the preceding commit, but two tests use it to locate reference .h5 inputs. Give those two targets a private compile definition instead: a build-tree path belongs there, not in an installed public header. Refs #95 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This was referenced Aug 17, 2026
Collaborator
Author
skilledwolf
force-pushed
the
cleanup/root-layout
branch
from
August 17, 2026 19:27
123e676 to
a03bfc3
Compare
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Conflicts: README-package.txt and config/debian/sid/copyright were reworded on master by the SPDX license sweep but are deleted by this branch; both deletions are kept. The citation guidance formerly in README-package.txt lives in CITATION.md on this branch. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
skilledwolf
marked this pull request as ready for review
August 18, 2026 08:05
egull
reviewed
Aug 18, 2026
egull
approved these changes
Aug 18, 2026
egull
left a comment
Contributor
There was a problem hiding this comment.
Happy to merge this, but have a look at the comments I put and discuss (?) if they should be addressed. I'm not at all insisting.
3.21 was chosen as the CMakePresets v3 schema floor, but no supported distro ships exactly 3.21, so that floor is never exercised. 3.22 is what Ubuntu 22.04 (the oldest CI platform) ships, making the declared minimum one that CI actually builds with. RHEL 9 (3.31) and Debian 12 (3.25) are unaffected. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
skilledwolf
added a commit
that referenced
this pull request
Aug 19, 2026
Require C++17 and fix the CI standard matrix (after #112)
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
config/tocmake/build/cmake/and remove a machine-specific tutorial pathValidation
alpslibrary buildbuildcomponent and verification of installedALPSConfig.cmakegit diff --check