forked from abacusmodeling/abacus-develop
    
        
        - 
                Notifications
    
You must be signed in to change notification settings  - Fork 145
 
Toolchain 202503 Version Update #6615
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
          
     Merged
      
      
            mohanchen
  merged 42 commits into
  deepmodeling:develop
from
QuantumMisaka:toolchain-202503-dev
  
      
      
   
  Oct 19, 2025 
      
    
                
     Merged
            
            Toolchain 202503 Version Update #6615
                    mohanchen
  merged 42 commits into
  deepmodeling:develop
from
QuantumMisaka:toolchain-202503-dev
  
      
      
   
  Oct 19, 2025 
              
            Conversation
  
    
      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
    
  
  
    
    更新 OpenMPI 从 5.0.7 到 5.0.8 和 MPICH 从 4.3.0 到 4.3.1,并更新对应的 SHA256 校验值 同时更新 README.md 中的任务状态标记
- 更新OpenBLAS到v0.3.30版本 - 更新ELPA到2025.06.001版本 - 将libcomm、cereal、rapidjson、libri指向master分支
添加详细的开发者指南文档,介绍工具链的架构设计、核心功能和实现细节 包含完整的重构方案文档,提出用户友好度改进、代码去冗余、硬编码解决和错误处理统一化的解决方案
- 补充各stage目录的具体用途说明 - 新增代码维护时的注意事项 - 保持文档与当前项目实践一致
移除对MKL和AOCL的自动检测,始终默认使用openblas作为数学库
将GPU架构选项从具体的硬件型号更新为CUDA架构编号,以提供更灵活的兼容性
refactor(toolchain): 重构工具链安装脚本,增加模块化和错误处理 docs(toolchain): 更新脚本注释和帮助信息 fix(toolchain): 修复OpenBLAS架构检测逻辑 style(toolchain): 统一代码格式和缩进
更新推荐离线安装的注释日期至2025年,并调整下载步骤顺序和描述
添加对GCC离线安装的支持,引入repack_filename变量用于打包包含依赖的GCC源码 优化依赖下载逻辑,优先尝试官方源,失败后回退到镜像源 当检测到无网络连接时跳过依赖下载以支持纯离线模式
- 添加版本配置导出功能以支持阶段脚本 - 优化OpenBLAS架构检测逻辑,提前解压包 - 修复版本验证中的包名大小写问题 - 为ELPA和LibXC添加包变量提前定义 - 改进配置验证器,支持MKL作为ScaLAPACK替代 - 统一多个安装脚本的包变量定义位置 - 重构包版本导出逻辑,动态构建版本字符串 - 更新工具链模板脚本,添加版本控制和执行模式 - 完善文档,记录GCC脚本优化和网络处理改进 - 重构配置管理器,支持更灵活的数学库和MPI设置
重构工具链脚本实现模块化架构,修复ELPA在使用MKL时的BLACS检测问题。主要变更包括: 1. 移除过时注释和冗余代码 2. 为所有安装脚本添加pack-run模式支持 3. 优化MKL环境变量设置,适配不同MPI实现 4. 修复ELPA安装时的SCALAPACK配置传递 5. 更新Intel编译器默认使用ifx 6. 改进配置管理器的静默模式处理 重构后工具链更易维护且完全兼容现有功能,为后续扩展奠定基础
更新VERSION文件至2025.3版本 统一各工具链脚本中的作者和日期信息 重构构建脚本以支持MLALGO功能并优化GPU支持 添加ABACUS构建脚本自动生成功能开发文档
refactor(ui): 改进终端用户界面和输出信息 - 添加彩色输出和更美观的进度显示 - 优化安装完成后的使用说明格式 - 增强MPI检测时的信息显示 chore: 移除过时的离线安装说明
新增DOWNLOAD_CERT_POLICY环境变量支持strict|smart|skip三种证书验证模式 移除-j参数并改用NPROCS_OVERWRITE环境变量控制并行编译核数 更新README文档详细说明新功能和使用方法
将各工具链脚本中的MPI实现参数从`MPI_IMPLEMENTATION`统一改为`MPI_MODE`以保持一致性 更新README文档,添加新功能说明并删除过时的Details.md文件
* update NEP_CPU * update toolchain and document * update cmake file * update cmake file * update test * update toolchain script * remove nep_cpu; update test case and toolchain script * update unit test * update test.yml * update related doc. --------- Co-authored-by: Mohan Chen <mohanchen@pku.edu.cn>
增加Unicode图标的三级fallback策略,确保在不同终端环境下的显示兼容性 增强GCC版本检查的错误提示,提供详细的问题分析和解决方案 添加glibc版本检测和系统信息摘要功能 改进版本号显示功能,支持智能查找VERSION文件 更新帮助文档和进度报告,反映最新优化内容
在工具链中添加NEP(Neural Evolution Potential)包支持,包括: 1. 在package_versions.sh中添加版本管理 2. 更新config_manager.sh中的配置项 3. 修改install_nep.sh使用集中版本管理 4. 更新用户界面显示 5. 添加NEP集成案例文档 6. 更新README中的包列表和文档 此变更使工具链支持NEP包的安装和配置,为ABACUS提供机器学习势能支持
修复--package-version参数仅支持单个键值对的问题,现支持两种写法: 1. 多个独立参数:--package-version PKG1:VER1 --package-version PKG2:VER2 2. 单个参数多键值对:--package-version PKG1:VER1 PKG2:VER2 同时更新相关文档说明和README,添加环境变量使用注意事项
重构配置验证逻辑以更精确检查cmake依赖 当使用系统cmake时增加额外检查
- 新增错误组概念,区分逻辑错误与描述行,提供准确错误计数 - 实现智能cmake检查,根据用户配置进行条件验证和版本检测 - 增强GCC工具链验证,包括版本一致性检查和最小版本要求 - 提供更详细的错误信息和解决方案指导
确保在system选项下,环境变量不会被额外写入setup中
| 
           some conflicts need to be resolved @QuantumMisaka  | 
    
unify --pack-run exit way
…s-develop into toolchain-202503-dev
          
 Resolved, Thanks!  | 
    
Modify the wrong paths.
The Include Dir should be "include/", not "include/cereal/".
      
        
      
      
  
    8 tasks
  
              
                    ZhouXY-PKU
  
              
              approved these changes
              
                  
                    Oct 19, 2025 
                  
              
              
            
            
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for your contribution!
(More tests are needed to be done and auto-generation of build.sh may get supported in the future)
| 
           LGTM  | 
    
    
  QuantumMisaka 
      added a commit
        to QuantumMisaka/abacus-develop
      that referenced
      this pull request
    
      Oct 21, 2025 
    
    
      
  
    
      
    
  
* build: 更新 OpenMPI 和 MPICH 版本及其校验值 更新 OpenMPI 从 5.0.7 到 5.0.8 和 MPICH 从 4.3.0 到 4.3.1,并更新对应的 SHA256 校验值 同时更新 README.md 中的任务状态标记 * build(toolchain): 更新依赖库版本和配置 - 更新OpenBLAS到v0.3.30版本 - 更新ELPA到2025.06.001版本 - 将libcomm、cereal、rapidjson、libri指向master分支 * docs(toolchain): 添加ABACUS工具链开发者指南和重构方案文档 添加详细的开发者指南文档,介绍工具链的架构设计、核心功能和实现细节 包含完整的重构方案文档,提出用户友好度改进、代码去冗余、硬编码解决和错误处理统一化的解决方案 * docs(toolchain): 添加项目规则文档以明确代码质量标准和哲学 * docs(project_rules): 更新项目规则文档,添加维护指南 - 补充各stage目录的具体用途说明 - 新增代码维护时的注意事项 - 保持文档与当前项目实践一致 * refactor(toolchain): 简化数学库默认设置逻辑 移除对MKL和AOCL的自动检测,始终默认使用openblas作为数学库 * docs(toolchain): 更新GPU架构选项的说明文档 将GPU架构选项从具体的硬件型号更新为CUDA架构编号,以提供更灵活的兼容性 * feat(toolchain): 更新工具链脚本和依赖版本 refactor(toolchain): 重构工具链安装脚本,增加模块化和错误处理 docs(toolchain): 更新脚本注释和帮助信息 fix(toolchain): 修复OpenBLAS架构检测逻辑 style(toolchain): 统一代码格式和缩进 * docs(toolchain): 更新离线安装推荐说明中的日期和下载步骤 更新推荐离线安装的注释日期至2025年,并调整下载步骤顺序和描述 * fix(openblas): 仅在未找到openblas_dir时解压openblas包 * refactor(toolchain): remove test building scripts * docs(toolchain): 添加ABACUS工具链重构验证报告和进度报告 * feat(工具链): 添加GCC离线安装支持并优化依赖下载逻辑 添加对GCC离线安装的支持,引入repack_filename变量用于打包包含依赖的GCC源码 优化依赖下载逻辑,优先尝试官方源,失败后回退到镜像源 当检测到无网络连接时跳过依赖下载以支持纯离线模式 * docs(toolchain): 添加废弃警告提示并引导迁移到新版本脚本 * feat(工具链): 优化工具链配置管理和安装脚本 - 添加版本配置导出功能以支持阶段脚本 - 优化OpenBLAS架构检测逻辑,提前解压包 - 修复版本验证中的包名大小写问题 - 为ELPA和LibXC添加包变量提前定义 - 改进配置验证器,支持MKL作为ScaLAPACK替代 - 统一多个安装脚本的包变量定义位置 - 重构包版本导出逻辑,动态构建版本字符串 - 更新工具链模板脚本,添加版本控制和执行模式 - 完善文档,记录GCC脚本优化和网络处理改进 - 重构配置管理器,支持更灵活的数学库和MPI设置 * refactor(工具链): 优化脚本架构并修复ELPA与MKL集成问题 重构工具链脚本实现模块化架构,修复ELPA在使用MKL时的BLACS检测问题。主要变更包括: 1. 移除过时注释和冗余代码 2. 为所有安装脚本添加pack-run模式支持 3. 优化MKL环境变量设置,适配不同MPI实现 4. 修复ELPA安装时的SCALAPACK配置传递 5. 更新Intel编译器默认使用ifx 6. 改进配置管理器的静默模式处理 重构后工具链更易维护且完全兼容现有功能,为后续扩展奠定基础 * feat(toolchain): 更新工具链版本至2025.3并重构构建脚本 更新VERSION文件至2025.3版本 统一各工具链脚本中的作者和日期信息 重构构建脚本以支持MLALGO功能并优化GPU支持 添加ABACUS构建脚本自动生成功能开发文档 * docs(toolchain): 更新文档和作者信息 refactor(ui): 改进终端用户界面和输出信息 - 添加彩色输出和更美观的进度显示 - 优化安装完成后的使用说明格式 - 增强MPI检测时的信息显示 chore: 移除过时的离线安装说明 * docs(toolchain): 在构建脚本中注释CUDA编译器路径选项 * feat(工具链): 新增智能证书验证策略和并行编译控制功能 新增DOWNLOAD_CERT_POLICY环境变量支持strict|smart|skip三种证书验证模式 移除-j参数并改用NPROCS_OVERWRITE环境变量控制并行编译核数 更新README文档详细说明新功能和使用方法 * refactor(toolchain): 统一MPI实现参数名并更新文档 将各工具链脚本中的MPI实现参数从`MPI_IMPLEMENTATION`统一改为`MPI_MODE`以保持一致性 更新README文档,添加新功能说明并删除过时的Details.md文件 * [Feature] Add NEP as esolver (deepmodeling#6603) * update NEP_CPU * update toolchain and document * update cmake file * update cmake file * update test * update toolchain script * remove nep_cpu; update test case and toolchain script * update unit test * update test.yml * update related doc. --------- Co-authored-by: Mohan Chen <mohanchen@pku.edu.cn> * feat(ui): 优化用户界面兼容性和错误提示 增加Unicode图标的三级fallback策略,确保在不同终端环境下的显示兼容性 增强GCC版本检查的错误提示,提供详细的问题分析和解决方案 添加glibc版本检测和系统信息摘要功能 改进版本号显示功能,支持智能查找VERSION文件 更新帮助文档和进度报告,反映最新优化内容 * refactor(toolchain): 将NEP选项加入注释 * style(toolchain): 统一调整可选特性的变量顺序 * feat(toolchain): 添加NEP包支持并更新相关文档 在工具链中添加NEP(Neural Evolution Potential)包支持,包括: 1. 在package_versions.sh中添加版本管理 2. 更新config_manager.sh中的配置项 3. 修改install_nep.sh使用集中版本管理 4. 更新用户界面显示 5. 添加NEP集成案例文档 6. 更新README中的包列表和文档 此变更使工具链支持NEP包的安装和配置,为ABACUS提供机器学习势能支持 * feat(toolchain): 增强package-version参数支持多键值对 修复--package-version参数仅支持单个键值对的问题,现支持两种写法: 1. 多个独立参数:--package-version PKG1:VER1 --package-version PKG2:VER2 2. 单个参数多键值对:--package-version PKG1:VER1 PKG2:VER2 同时更新相关文档说明和README,添加环境变量使用注意事项 * add system option for libcomm, libri and libnpy * refactor(toolchain): 对stage4的头文件添加system和path选项支持 * fix(toolchain): 移除合并冲突标记并改进配置验证 重构配置验证逻辑以更精确检查cmake依赖 当使用系统cmake时增加额外检查 * feat(validator): 优化系统检测与错误计数机制 - 新增错误组概念,区分逻辑错误与描述行,提供准确错误计数 - 实现智能cmake检查,根据用户配置进行条件验证和版本检测 - 增强GCC工具链验证,包括版本一致性检查和最小版本要求 - 提供更详细的错误信息和解决方案指导 * refactor(toolchain): 统一安装脚本中环境变量设置的格式和顺序 确保在system选项下,环境变量不会被额外写入setup中 * move a doc * chore: remove Trae Files * fix(install_nep.sh): unify --pack-run exit way * refactor(toolchain): clean the redundant and out-dated comments * Update paths in install_cereal.sh for include directory Modify the wrong paths. * Fix path setup for cereal installation script * Fix CEREAL include path in build script The Include Dir should be "include/", not "include/cereal/". --------- Co-authored-by: m0sey <61280022+MoseyQAQ@users.noreply.github.com> Co-authored-by: Mohan Chen <mohanchen@pku.edu.cn> Co-authored-by: Levi Zhou <31941107+ZhouXY-PKU@users.noreply.github.com>
    
  kluonj 
      pushed a commit
        to kluonj/abacus-develop
      that referenced
      this pull request
    
      Oct 21, 2025 
    
    
      
  
    
      
    
  
* build: 更新 OpenMPI 和 MPICH 版本及其校验值 更新 OpenMPI 从 5.0.7 到 5.0.8 和 MPICH 从 4.3.0 到 4.3.1,并更新对应的 SHA256 校验值 同时更新 README.md 中的任务状态标记 * build(toolchain): 更新依赖库版本和配置 - 更新OpenBLAS到v0.3.30版本 - 更新ELPA到2025.06.001版本 - 将libcomm、cereal、rapidjson、libri指向master分支 * docs(toolchain): 添加ABACUS工具链开发者指南和重构方案文档 添加详细的开发者指南文档,介绍工具链的架构设计、核心功能和实现细节 包含完整的重构方案文档,提出用户友好度改进、代码去冗余、硬编码解决和错误处理统一化的解决方案 * docs(toolchain): 添加项目规则文档以明确代码质量标准和哲学 * docs(project_rules): 更新项目规则文档,添加维护指南 - 补充各stage目录的具体用途说明 - 新增代码维护时的注意事项 - 保持文档与当前项目实践一致 * refactor(toolchain): 简化数学库默认设置逻辑 移除对MKL和AOCL的自动检测,始终默认使用openblas作为数学库 * docs(toolchain): 更新GPU架构选项的说明文档 将GPU架构选项从具体的硬件型号更新为CUDA架构编号,以提供更灵活的兼容性 * feat(toolchain): 更新工具链脚本和依赖版本 refactor(toolchain): 重构工具链安装脚本,增加模块化和错误处理 docs(toolchain): 更新脚本注释和帮助信息 fix(toolchain): 修复OpenBLAS架构检测逻辑 style(toolchain): 统一代码格式和缩进 * docs(toolchain): 更新离线安装推荐说明中的日期和下载步骤 更新推荐离线安装的注释日期至2025年,并调整下载步骤顺序和描述 * fix(openblas): 仅在未找到openblas_dir时解压openblas包 * refactor(toolchain): remove test building scripts * docs(toolchain): 添加ABACUS工具链重构验证报告和进度报告 * feat(工具链): 添加GCC离线安装支持并优化依赖下载逻辑 添加对GCC离线安装的支持,引入repack_filename变量用于打包包含依赖的GCC源码 优化依赖下载逻辑,优先尝试官方源,失败后回退到镜像源 当检测到无网络连接时跳过依赖下载以支持纯离线模式 * docs(toolchain): 添加废弃警告提示并引导迁移到新版本脚本 * feat(工具链): 优化工具链配置管理和安装脚本 - 添加版本配置导出功能以支持阶段脚本 - 优化OpenBLAS架构检测逻辑,提前解压包 - 修复版本验证中的包名大小写问题 - 为ELPA和LibXC添加包变量提前定义 - 改进配置验证器,支持MKL作为ScaLAPACK替代 - 统一多个安装脚本的包变量定义位置 - 重构包版本导出逻辑,动态构建版本字符串 - 更新工具链模板脚本,添加版本控制和执行模式 - 完善文档,记录GCC脚本优化和网络处理改进 - 重构配置管理器,支持更灵活的数学库和MPI设置 * refactor(工具链): 优化脚本架构并修复ELPA与MKL集成问题 重构工具链脚本实现模块化架构,修复ELPA在使用MKL时的BLACS检测问题。主要变更包括: 1. 移除过时注释和冗余代码 2. 为所有安装脚本添加pack-run模式支持 3. 优化MKL环境变量设置,适配不同MPI实现 4. 修复ELPA安装时的SCALAPACK配置传递 5. 更新Intel编译器默认使用ifx 6. 改进配置管理器的静默模式处理 重构后工具链更易维护且完全兼容现有功能,为后续扩展奠定基础 * feat(toolchain): 更新工具链版本至2025.3并重构构建脚本 更新VERSION文件至2025.3版本 统一各工具链脚本中的作者和日期信息 重构构建脚本以支持MLALGO功能并优化GPU支持 添加ABACUS构建脚本自动生成功能开发文档 * docs(toolchain): 更新文档和作者信息 refactor(ui): 改进终端用户界面和输出信息 - 添加彩色输出和更美观的进度显示 - 优化安装完成后的使用说明格式 - 增强MPI检测时的信息显示 chore: 移除过时的离线安装说明 * docs(toolchain): 在构建脚本中注释CUDA编译器路径选项 * feat(工具链): 新增智能证书验证策略和并行编译控制功能 新增DOWNLOAD_CERT_POLICY环境变量支持strict|smart|skip三种证书验证模式 移除-j参数并改用NPROCS_OVERWRITE环境变量控制并行编译核数 更新README文档详细说明新功能和使用方法 * refactor(toolchain): 统一MPI实现参数名并更新文档 将各工具链脚本中的MPI实现参数从`MPI_IMPLEMENTATION`统一改为`MPI_MODE`以保持一致性 更新README文档,添加新功能说明并删除过时的Details.md文件 * [Feature] Add NEP as esolver (deepmodeling#6603) * update NEP_CPU * update toolchain and document * update cmake file * update cmake file * update test * update toolchain script * remove nep_cpu; update test case and toolchain script * update unit test * update test.yml * update related doc. --------- Co-authored-by: Mohan Chen <mohanchen@pku.edu.cn> * feat(ui): 优化用户界面兼容性和错误提示 增加Unicode图标的三级fallback策略,确保在不同终端环境下的显示兼容性 增强GCC版本检查的错误提示,提供详细的问题分析和解决方案 添加glibc版本检测和系统信息摘要功能 改进版本号显示功能,支持智能查找VERSION文件 更新帮助文档和进度报告,反映最新优化内容 * refactor(toolchain): 将NEP选项加入注释 * style(toolchain): 统一调整可选特性的变量顺序 * feat(toolchain): 添加NEP包支持并更新相关文档 在工具链中添加NEP(Neural Evolution Potential)包支持,包括: 1. 在package_versions.sh中添加版本管理 2. 更新config_manager.sh中的配置项 3. 修改install_nep.sh使用集中版本管理 4. 更新用户界面显示 5. 添加NEP集成案例文档 6. 更新README中的包列表和文档 此变更使工具链支持NEP包的安装和配置,为ABACUS提供机器学习势能支持 * feat(toolchain): 增强package-version参数支持多键值对 修复--package-version参数仅支持单个键值对的问题,现支持两种写法: 1. 多个独立参数:--package-version PKG1:VER1 --package-version PKG2:VER2 2. 单个参数多键值对:--package-version PKG1:VER1 PKG2:VER2 同时更新相关文档说明和README,添加环境变量使用注意事项 * add system option for libcomm, libri and libnpy * refactor(toolchain): 对stage4的头文件添加system和path选项支持 * fix(toolchain): 移除合并冲突标记并改进配置验证 重构配置验证逻辑以更精确检查cmake依赖 当使用系统cmake时增加额外检查 * feat(validator): 优化系统检测与错误计数机制 - 新增错误组概念,区分逻辑错误与描述行,提供准确错误计数 - 实现智能cmake检查,根据用户配置进行条件验证和版本检测 - 增强GCC工具链验证,包括版本一致性检查和最小版本要求 - 提供更详细的错误信息和解决方案指导 * refactor(toolchain): 统一安装脚本中环境变量设置的格式和顺序 确保在system选项下,环境变量不会被额外写入setup中 * move a doc * chore: remove Trae Files * fix(install_nep.sh): unify --pack-run exit way * refactor(toolchain): clean the redundant and out-dated comments * Update paths in install_cereal.sh for include directory Modify the wrong paths. * Fix path setup for cereal installation script * Fix CEREAL include path in build script The Include Dir should be "include/", not "include/cereal/". --------- Co-authored-by: m0sey <61280022+MoseyQAQ@users.noreply.github.com> Co-authored-by: Mohan Chen <mohanchen@pku.edu.cn> Co-authored-by: Levi Zhou <31941107+ZhouXY-PKU@users.noreply.github.com>
  
    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.
  
    
  
    
Reminder
Linked Issue
Fix #6513
Unit Tests and/or Case Tests for my changes
toolchain_gnu.shas a case test.What's changed?
Toolchain 202503 version update
This PR introduces a comprehensive refactoring of the ABACUS toolchain installation system, transforming a single 890-line script into a clean, modular architecture with 7 specialized components.
🏗️ Architecture Improvements
Modular Design: Split monolithic
install_abacus_toolchain.sh(890 lines) into focused modules:config_manager.sh- Centralized configuration managementconfig_validator.sh- Comprehensive validation logicpackage_manager.sh- Installation workflow controlerror_handler.sh- Unified error handling and stack tracesuser_interface.sh- Enhanced user experienceversion_helper.sh&version_loader.sh- Version management systemCode Reduction: Main script
install_abacus_toolchain_new.shreduced to 178 lines (80% reduction) while maintaining 100% functionality coverage, andinstall_abacus_toolchain.shis deprecated now and will be removed in the next version of toolchain.🚀 Feature Enhancements
Enhanced Pre-defined Toolchain Running Scripts: Now
toolchain*.share totally refined, and one can either edit these toolchain files or add options intoolchain*.shcalling command to use toolchain in your personal way.Enhanced Parameter Support: Now one can use
--package-versionto switch the main/alt version of package installed via toolchain, which support the following command:Also, all version of dependent packages are update, and most of them have main/alt option in a double-version management system.
NEP support added: cherry-pick NEP contribution by @MoseyQAQ and merge it into refractored toolchain.
Enable LibRI/LibComm installation in default: ABACUS EXX made simple !
User Interface Improvements
Huge UI update: Now we have a better and even fancy UI during running the toolchain
[INFO] 🔍 MPI detected, defaulting to MPICH configuration [INFO] ⚙️ Configuring MPI mode: openmpi [INFO] 🧮 Configuring Math mode: openblas ════════════════════════════════════════════════════════════════════════════════ ABACUS Toolchain Installation DFT Calculation Made Simple Version 2025.3 ════════════════════════════════════════════════════════════════════════════════ Current Version Configuration: ============================= Global Strategy: main Package-specific settings: cmake : main openmpi : main openblas : main elpa : main libxc : main scalapack : main libtorch : main ──────────────────────────────────────────────────────────── [*] Installation Configuration Summary ──────────────────────────────────────────────────────────── 🖥️ System Information: ├─ OS: Linux x86_64 ├─ Kernel: 6.6.87.2-microsoft-standard-WSL2 ├─ glibc: 2.35 ├─ CPU Cores: 32 ├─ Memory: 31GB └─ GPU: NVIDIA GeForce RTX 2070 SUPER ⚙️ Build Configuration: ├─ MPI Mode: openmpi ├─ Math Mode: openblas ├─ Target CPU: native ├─ GPU Version: no └─ Parallel Jobs: 32 📦 Package Configuration: ├─ 🔗 gcc: system ├─ 🔗 cmake: system ├─ 🔗 openmpi: system ├─ 🔗 openblas: system ├─ 🔗 fftw: system ├─ 🔗 libxc: system ├─ 🔗 scalapack: system ├─ 🔗 elpa: system ├─ 🔗 cereal: system ├─ 🔗 rapidjson: system ├─ 🔗 libri: system ├─ 🔗 libcomm: system └─ Configuration complete 🔗 System packages to be used: [+] gcc [+] cmake [+] openmpi [+] openblas [+] fftw [+] libxc [+] scalapack [+] elpa [+] cereal [+] rapidjson [+] libri [+] libcomm ──────────────────────────────────────────────────────────── [*] System Validation ──────────────────────────────────────────────────────────── Running configuration validation... INFO: System CMake validated: version 3.31.7 (>= 3.16 required) INFO: System GCC toolchain validated: version 12.3.0 (>= 5.x required) ✓ Configuration validation passed with no issues. [OK] System validation completed successfully ──────────────────────────────────────────────────────────── [*] Preparing Installation Environment ──────────────────────────────────────────────────────────── [INFO] Creating installation directories... [INFO] Generating setup configuration... [INFO] Compiling with 32 processes for target native [INFO] Writing toolchain configuration... ──────────────────────────────────────────────────────────── [*] Starting Package Installation ──────────────────────────────────────────────────────────── [INFO] Initializing build environment... ──────────────────────────────────────────────────────────── [*] Stage 0: Build Tools & Compilers ──────────────────────────────────────────────────────────── ...And throughout this UI, one may find that toolchain have more checking and output for users:
🔒 Reliability & Compatibility
📚 Documentation & Maintenance
Toolchain README also have a huge update, and one can get more information from it.
Now, adding a package to toolchain is also become much easier, in which developers are not needed to directly edit the main running script.
🔗 Bug Fixed
--with-gcc=installedand running get_openblas_arch.sh ( raised by @LiuXiaohui123321 )--with-PKG=system( thanks to @ZhouXY-PKU )math-modeto OpenBLAS ( raised by @OutisLi )⚙️ Something not done yet
build_abacus.shvia toolchain running setting