Skip to content

abacus: modernize to CMake build and add v3.9.0.19, v3.10.1 - #6221

Open
Bitllion wants to merge 3 commits into
spack:developfrom
Bitllion:abacus-cmake-3x
Open

abacus: modernize to CMake build and add v3.9.0.19, v3.10.1#6221
Bitllion wants to merge 3 commits into
spack:developfrom
Bitllion:abacus-cmake-3x

Conversation

@Bitllion

Copy link
Copy Markdown
Contributor
  • Migrate from MakefilePackage (ABACUS 2.2.x, Intel-only) to CMakePackage (ABACUS 3.x) with proper GNU/OpenMPI toolchain support.
  • Add versions 3.10.1 and 3.9.0.19, drop 2.2.x line.
  • Replace hardcoded Intel MKL dependency with openblas.
  • Add lcao/elpa/libxc variants; set GIT_SUBMODULE=OFF for release tarballs.

Verified: 62 dependencies built cleanly; SCF example (pw_Si2) converged to -215.5056984116324 eV identically for both new versions.

- Migrate from MakefilePackage (ABACUS 2.2.x, Intel-only) to CMakePackage
  (ABACUS 3.x) with proper GNU/OpenMPI toolchain support.
- Add versions 3.10.1 and 3.9.0.19, drop 2.2.x line.
- Replace hardcoded Intel MKL dependency with openblas.
- Add lcao/elpa/libxc variants; set GIT_SUBMODULE=OFF for release tarballs.

Verified: 62 dependencies built cleanly; SCF example (pw_Si2) converged to
-215.5056984116324 eV identically for both new versions.
@spackbot-triage spackbot-triage Bot added new-version Modifications to packages' `depends_on()` directives dependencies Modifications with a `depends_on()` directive update-package Modifications to packages in the repository new-variant Modifications to packages' `variant()` directives labels Aug 25, 2026
license("LGPL-3.0-or-later")

version("develop", branch="develop")
version("2.2.3", sha256="88dbf6a3bdd907df3e097637ec8e51fde13e2f5e0b44f3667443195481320edf")

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Could you add deprecation to these versions instead of removing them? That's the policy we follow with packages. https://spack.readthedocs.io/en/latest/packaging_guide_creation.html#deprecate



class Abacus(MakefilePackage):
class Abacus(CMakePackage):

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

You can add support for both CMakePackage and MakefilePackage, and we'll have to have at least one round of version releasing that has the Makefile version deprecated before we can remove this support entirely.

@kshea21 kshea21 self-assigned this Aug 25, 2026
Per review feedback:
- Keep 2.2.x versions with deprecated=True instead of removing them
- Support both CMakePackage (3.x) and MakefilePackage (2.2.x) via a
  build_system variant; the legacy Intel makefile path is preserved
  for the deprecated 2.2.x line
@Bitllion

Copy link
Copy Markdown
Contributor Author

Both review points are now addressed in the latest commit
(63da326 -> e2fb8ee):

  1. The 2.2.x versions are kept with deprecated=True instead of
    being removed.

  2. The package now supports both build systems via a build_system
    variant -- CMake for 3.x, and the legacy Intel Makefile path
    (in a MakefileBuilder) for the deprecated 2.2.x line.

Verified:

  • spack spec abacus -> 3.10.1 + build_system=cmake
  • spack spec --deprecated abacus@2.2.3 -> makefile path
  • ruff check + format pass

@Bitllion
Bitllion requested a review from kshea21 August 26, 2026 06:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Modifications with a `depends_on()` directive new-variant Modifications to packages' `variant()` directives new-version Modifications to packages' `depends_on()` directives update-package Modifications to packages in the repository

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants