Skip to content

Replace Travis with ALPS-style GitHub Actions - #58

Merged
egull merged 8 commits into
modernize/step2from
modernize/step2.4
Sep 26, 2026
Merged

egull merged 8 commits into
modernize/step2from
modernize/step2.4

Conversation

@egull

@egull egull commented Sep 24, 2026

Copy link
Copy Markdown
Contributor

Summary

  • replace Travis CI with a GitHub Actions workflow modeled on ALPS 3.0
  • test GCC 11/13/15, Clang 15/19, and AppleClang on macOS arm64
  • add LAPACK, ASan/UBSan, strict, and ALPS-compatible-flags variants
  • build and cache ALPSCore as the current backend
  • update the README badge, dependencies, and test instructions

Local validation

  • workflow YAML parses successfully
  • 42 unit tests pass
  • complete fast regression suite passes

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 review overview

🟡 Changes recommended

Unresolved moderate issues remain in CI cache invalidation, grid consistency, and regression comparison handling.

Get a fresh assessment by requesting another Copilot review.

Review effort: Lite
Findings: 2 Medium severity

Open (2)
What changed in this PR

Replaces Travis CI with ALPS-style GitHub Actions and improves cross-platform testing, regression validation, and documentation.

Changes:

  • Adds Linux/macOS compiler, sanitizer, LAPACK, and ALPSCore CI variants.
  • Updates bootstrap regression checks, provenance, and tests.
  • Updates CMake configuration, README instructions, and default-model normalization.
File Summary Review notes
test/​regression/​test_generate.py Adds bootstrap validation tests. No final comment.
test/​regression/​REFERENCE_CHANGES.md Documents reference regeneration. No final comment.
test/​regression/​PROVENANCE.md Documents bootstrap provenance. No final comment.
test/​regression/​compare.py Adds bootstrap output and seed validation. Moderate issues: apply tolerance to booterr, respect selection filters, and guard missing datasets.
src/​maxent.cpp Adds the required formatting header. No final comment.
src/​default_model.cpp Updates symmetric-grid normalization. Moderate issue: centralize grid-point calculations across mappings.
README.md Updates badge, dependencies, and test instructions. No final comment.
CMakeLists.txt Updates Eigen checks and warning handling. No final comment.
ALPS3_MIGRATION_PLAN.md Records migration progress. No final comment.
.travis.yml Removes Travis configuration. No final comment.
.github/​workflows/​build.yml Adds the GitHub Actions CI matrix and ALPSCore caching. Moderate issues: include complete compiler/toolchain and dependency versions in cache keys.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread .github/workflows/build.yml Outdated
Comment thread test/regression/compare.py Outdated

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 review overview

🔵 Needs a closer look

Unresolved moderate findings affect CI reliability, grid consistency, and malformed bootstrap handling.

Review effort: Lite
Findings: None

Resolved since last review (2)
Previously missed (1)

In code that hasn't changed since last review

Medium severity Cache key omits exact compiler toolchain identity

.github/​workflows/​build.yml:79

The Linux dependency cache key distinguishes only the compiler family and major version. ALPSCore records the exact downstream compiler ID/version and Maxent rejects an install built with a different compiler identity (the migration plan documents this stale-compiler failure at ALPS3_MIGRATION_PLAN.md:704), so a GCC/Clang patch update can restore an incompatible cached ALPSCore and fail during find_package(ALPSCore). Include the full compiler version/toolchain identity in the key, or invalidate this cache whenever the runner toolchain changes.

@egull

egull commented Sep 25, 2026

Copy link
Copy Markdown
Contributor Author

Addressed the latest Copilot finding in 67d8bcf. Linux ALPSCore/Boost cache keys now include a fingerprint of the exact C++ compiler build and the installed HDF5, Eigen, and Open MPI package versions, preventing reuse across runner toolchain or dependency updates.

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 review overview

🔵 Needs a closer look

Resolve the ALPSCore pinning, Eigen version-check, and malformed bootstrap-data handling issues.

Review effort: Lite
Findings: None

@egull
egull merged commit e727650 into modernize/step2 Sep 26, 2026
10 checks passed
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