diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index cd389c722195cf939bee985e26df2de82caf50f2..d5cf7c20d24be1378034597109c85eb17cbc14b7 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -28,14 +28,14 @@ variables: # base image -image: gekkofs/core:0.9.5 +image: gekkofs/core:0.9.6 ################################################################################ ## Validating ################################################################################ check format: stage: lint - image: gekkofs/linter:0.9.5 + image: gekkofs/linter:0.9.6 needs: [] script: - ${SCRIPTS_DIR}/check_format.sh @@ -49,7 +49,7 @@ check format: ################################################################################ gkfs: stage: build - image: gekkofs/deps:0.9.5 + image: gekkofs/deps:0.9.6 interruptible: true needs: [] script: @@ -88,7 +88,7 @@ gkfs: ## == tests for scripts ==================== scripts: stage: test - image: gekkofs/testing:0.9.5 + image: gekkofs/testing:0.9.6 needs: [] script: - mkdir -p ${BUILD_PATH}/tests/scripts @@ -103,7 +103,7 @@ scripts: ## == integration tests for gkfs =========== gkfs:allintegration: stage: test - image: gekkofs/testing:0.9.5 + image: gekkofs/testing:0.9.6 interruptible: true needs: ['gkfs'] @@ -151,12 +151,12 @@ gkfs:allintegration: ## == integration tests for gkfs =========== gkfs:integration: stage: test - image: gekkofs/testing:0.9.5 + image: gekkofs/testing:0.9.6 interruptible: true needs: ['gkfs'] # we need to remove gkfs dependencies on manual parallel: matrix: - - SUBTEST: [ data, status, syscalls, directories, operations, position, shell, rename ] + - SUBTEST: [ data, status, syscalls, directories, operations, position, shell, rename, migration, startup, error_handling, resilience, compatibility ] rules: - if: '$CI_MERGE_REQUEST_EVENT_TYPE == "detached"' when: never @@ -209,7 +209,7 @@ gkfs:integration: ## == integration tests for gkfwd ========== gkfwd:integration: stage: test - image: gekkofs/testing:0.9.5 + image: gekkofs/testing:0.9.6 interruptible: true needs: ['gkfs'] parallel: @@ -267,7 +267,7 @@ gkfwd:integration: ## == unit tests for gkfs ================== gkfs:unit: stage: test - image: gekkofs/testing:0.9.5 + image: gekkofs/testing:0.9.6 needs: ['gkfs'] script: ## Add path to mkfs.kreon @@ -307,7 +307,7 @@ gkfs:unit: ## == unit tests for gkfs ================== gkfs:app: stage: test - image: gekkofs/apps:0.9.5 + image: gekkofs/apps:0.9.6 needs: ['gkfs'] script: ## Add path to mkfs.kreon @@ -348,7 +348,7 @@ gkfs:app: ## == java tests for gkfs ================== gkfs:java: stage: test - image: gekkofs/java:0.9.5 + image: gekkofs/java:0.9.6 needs: ['gkfs'] script: ## Add path to mkfs.kreon @@ -389,7 +389,7 @@ gkfs:java: ## == python tests for gkfs ================== gkfs:python: stage: test - image: gekkofs/testing:0.9.5 + image: gekkofs/testing:0.9.6 needs: ['gkfs'] script: ## Add path to mkfs.kreon @@ -432,7 +432,7 @@ gkfs:python: ################################################################################ documentation: stage: docs - image: gekkofs/docs:0.9.5 + image: gekkofs/docs:0.9.6 needs: [] rules: # we only build the documentation automatically if we are on the @@ -465,7 +465,7 @@ documentation: ## == coverage baseline ==================== coverage:baseline: stage: report - image: gekkofs/testing:0.9.5 + image: gekkofs/testing:0.9.6 interruptible: true needs: ['gkfs'] @@ -496,7 +496,7 @@ coverage:baseline: coverage: stage: report - image: gekkofs/testing:0.9.5 + image: gekkofs/testing:0.9.6 #needs: [ 'coverage:baseline', 'gkfs:integration', 'gkfs:unit', 'gkfwd:integration'] needs: [ 'coverage:baseline', 'gkfs:allintegration', 'gkfs:unit', 'gkfs:app', 'gkfs:java', 'gkfs:python' ] script: @@ -528,12 +528,11 @@ coverage: cppcheck: stage: report - image: gekkofs/testing:0.9.5 - needs: [ 'gkfs:allintegration', 'gkfs:unit'] + image: gekkofs/testing:0.9.6 + needs: [ 'gkfs'] script: - cd ${CI_PROJECT_DIR} - - rm -rf external gkfs - - cppcheck -I/usr/local/include --xml --enable=warning,style,performance --force ${CI_PROJECT_DIR} 2> cppcheck_out.xml + - cppcheck --enable=all --std=c++17 --suppress=missingIncludeSystem --xml --xml-version=2 src include tests -i external -i builds -i gkfs 2> cppcheck_out.xml - cppcheck-codequality --input-file cppcheck_out.xml --output-file cppcheck.json #change paths after_script: diff --git a/docker/0.9.6/apps/Dockerfile b/docker/0.9.6/apps/Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..fa51af2a2282b3944a60b0eb35530b77fa7fbb42 --- /dev/null +++ b/docker/0.9.6/apps/Dockerfile @@ -0,0 +1,70 @@ +FROM gekkofs/testing:0.9.6 AS builder + +LABEL Description="Build environment for S3D-IO and WaComM++" + +ARG DEBIAN_FRONTEND=noninteractive + +RUN <. # +# # +# SPDX-License-Identifier: GPL-3.0-or-later # +################################################################################ +# vi: ft=bash + +pkg_install() { + ID="cereal" + CURR="${SOURCE_DIR}/${ID}" + prepare_build_dir "${CURR}" + cd "${CURR}/build" + $CMAKE -DCMAKE_INSTALL_PREFIX="${INSTALL_DIR}" \ + -DCMAKE_BUILD_TYPE=Release \ + -DJUST_INSTALL_CEREAL=ON \ + .. + make -j"${CORES}" install +} + +pkg_check() { + : +} diff --git a/scripts/profiles/0.9.6-dev/install/mercury.install b/scripts/profiles/0.9.6-dev/install/mercury.install index 1f770a53693da5ed2d453db669471ad39264fc2e..64f517d740c3b65633e7672ba3491a000fb075ef 100644 --- a/scripts/profiles/0.9.6-dev/install/mercury.install +++ b/scripts/profiles/0.9.6-dev/install/mercury.install @@ -71,8 +71,9 @@ pkg_install() { -DBUILD_SHARED_LIBS:BOOL=ON \ -DCMAKE_INSTALL_PREFIX=${INSTALL_DIR} \ ${USE_BMI} ${USE_OFI} \ + -DNA_USE_SM:BOOL=ON -DNA_USE_OFI:BOOL=ON \ .. - #-DNA_USE_OFI:BOOL=ON -DNA_USE_UCX:BOOL=ON \ + #-DNA_USE_UCX:BOOL=ON \ make -j"${CORES}" make install } diff --git a/scripts/profiles/0.9.6-dev/install/thallium.install b/scripts/profiles/0.9.6-dev/install/thallium.install new file mode 100644 index 0000000000000000000000000000000000000000..dcd69bf360eed7e060c1db12d634ebacb09f53c7 --- /dev/null +++ b/scripts/profiles/0.9.6-dev/install/thallium.install @@ -0,0 +1,46 @@ +################################################################################ +# Copyright 2018-2025, Barcelona Supercomputing Center (BSC), Spain # +# Copyright 2015-2025, Johannes Gutenberg Universitaet Mainz, Germany # +# # +# This software was partially supported by the # +# EC H2020 funded project NEXTGenIO (Project ID: 671951, www.nextgenio.eu). # +# # +# This software was partially supported by the # +# ADA-FS project under the SPPEXA project funded by the DFG. # +# # +# This file is part of GekkoFS. # +# # +# GekkoFS is free software: you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # +# # +# GekkoFS is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with GekkoFS. If not, see . # +# # +# SPDX-License-Identifier: GPL-3.0-or-later # +################################################################################ +# vi: ft=bash + +pkg_install() { + ID="thallium" + CURR="${SOURCE_DIR}/${ID}" + prepare_build_dir "${CURR}" + cd "${CURR}/build" + $CMAKE -DCMAKE_INSTALL_PREFIX="${INSTALL_DIR}" \ + -DCMAKE_BUILD_TYPE=Release \ + -DBUILD_TESTING=OFF \ + -DBUILD_BENCHMARK=OFF \ + -DBUILD_EXAMPLES=OFF \ + .. + make -j"${CORES}" install +} + +pkg_check() { + make check +} diff --git a/scripts/profiles/0.9.6-dev/marenostrum4.specs b/scripts/profiles/0.9.6-dev/marenostrum4.specs index 1b72ae749526113628b675262147dd8e50e57ee5..c7f2e8e2d06f0a6902a539f6dde19bdd2aa2ac2a 100644 --- a/scripts/profiles/0.9.6-dev/marenostrum4.specs +++ b/scripts/profiles/0.9.6-dev/marenostrum4.specs @@ -49,8 +49,8 @@ wgetdeps=( # Dependencies that must be cloned clonedeps=( ["libfabric"]="HEAD@v1.20.1" - ["mercury"]="v2.4.0" - ["margo"]="v0.18.3" + ["mercury"]="v2.4.1" + ["margo"]="v0.21.0" ["syscall_intercept"]="d8b2a69961921ed123625c79a609331fc56a8931" ["date"]="e7e1482087f58913b80a20b04d5c58d9d6d90155" ["parallax"]="c130decd7a71c60c20b98d6a23924f05f754c3cd" diff --git a/scripts/profiles/0.9.6-dev/mogon2.specs b/scripts/profiles/0.9.6-dev/mogon2.specs index 3a127ba391b4d5cd0669c785ab140a1f5e649a8f..a945588a6a528f0469f3be0f9b94e3a759d47d96 100644 --- a/scripts/profiles/0.9.6-dev/mogon2.specs +++ b/scripts/profiles/0.9.6-dev/mogon2.specs @@ -49,8 +49,8 @@ wgetdeps=( # Dependencies that must be cloned clonedeps=( ["libfabric"]="HEAD@v2.2.0" - ["mercury"]="v2.4.1rc1" - ["margo"]="v0.18.3" + ["mercury"]="v2.4.1" + ["margo"]="v0.21.0" ["syscall_intercept"]="d8b2a69961921ed123625c79a609331fc56a8931" ["date"]="e7e1482087f58913b80a20b04d5c58d9d6d90155" ) diff --git a/scripts/profiles/0.9.6-dev/mogon3.specs b/scripts/profiles/0.9.6-dev/mogon3.specs index 237f40cae9a19587f4fb836d3cacc934d638909f..500f82a93f4689c1ed8dc55a684eeb012ef71118 100644 --- a/scripts/profiles/0.9.6-dev/mogon3.specs +++ b/scripts/profiles/0.9.6-dev/mogon3.specs @@ -50,8 +50,8 @@ wgetdeps=( # Dependencies that must be cloned clonedeps=( # ["libfabric"]="HEAD@v1.20.1" - ["mercury"]="v2.4.1rc1" - ["margo"]="v0.18.3" + ["mercury"]="v2.4.1" + ["margo"]="v0.21.0" ["syscall_intercept"]="d8b2a69961921ed123625c79a609331fc56a8931" ) diff --git a/scripts/profiles/0.9.6-dev/ngio.specs b/scripts/profiles/0.9.6-dev/ngio.specs index 5ce5cbbfc89d53c4dcebdf6f0f10b43147a622c2..c9dbca4c966cb4b8032b0f237f7cad90b3fe7821 100644 --- a/scripts/profiles/0.9.6-dev/ngio.specs +++ b/scripts/profiles/0.9.6-dev/ngio.specs @@ -49,8 +49,8 @@ wgetdeps=( # Dependencies that must be cloned clonedeps=( ["libfabric"]="HEAD@v2.2.0" - ["mercury"]="v2.4.1rc1" - ["margo"]="v0.18.3" + ["mercury"]="v2.4.1" + ["margo"]="v0.21.0" ["syscall_intercept"]="d8b2a69961921ed123625c79a609331fc56a8931" ["date"]="e7e1482087f58913b80a20b04d5c58d9d6d90155" ["parallax"]="c130decd7a71c60c20b98d6a23924f05f754c3cd" diff --git a/scripts/profiles/0.9.6-dev/omnipath_psm2.specs b/scripts/profiles/0.9.6-dev/omnipath_psm2.specs index ed11895e13e80778a507c58f801b787a95bffb68..ffe18406587eec91c3f2d33d3e916b371670eb88 100644 --- a/scripts/profiles/0.9.6-dev/omnipath_psm2.specs +++ b/scripts/profiles/0.9.6-dev/omnipath_psm2.specs @@ -49,8 +49,8 @@ wgetdeps=( # Dependencies that must be cloned clonedeps=( ["libfabric"]="HEAD@v2.2.0" - ["mercury"]="v2.4.1rc1" - ["margo"]="v0.18.3" + ["mercury"]="v2.4.1" + ["margo"]="v0.21.0" ["syscall_intercept"]="d8b2a69961921ed123625c79a609331fc56a8931" ["date"]="e7e1482087f58913b80a20b04d5c58d9d6d90155" ) diff --git a/scripts/profiles/0.9.6-dev/p9.specs b/scripts/profiles/0.9.6-dev/p9.specs index 060296b9a906887a34f5e6f80c089334527d45eb..a8d6c07520065e73632a49e4131c74719941af7e 100644 --- a/scripts/profiles/0.9.6-dev/p9.specs +++ b/scripts/profiles/0.9.6-dev/p9.specs @@ -49,8 +49,8 @@ wgetdeps=( # Dependencies that must be cloned clonedeps=( ["libfabric"]="HEAD@v1.20.1" - ["mercury"]="v2.4.0" - ["margo"]="v0.18.3" + ["mercury"]="v2.4.1" + ["margo"]="v0.21.0" ["syscall_intercept"]="6eb27a9d2053bb2ac3bb9ce30e13b64ce055c19f" ["date"]="e7e1482087f58913b80a20b04d5c58d9d6d90155" ) diff --git a/scripts/profiles/0.9.6-dev/riscv.specs b/scripts/profiles/0.9.6-dev/riscv.specs index 1f601171a7a4571e008d698d52fc68b9e21ad927..ee8ae6eb8b53348f5afaa43ec2f8c5258dd330b9 100644 --- a/scripts/profiles/0.9.6-dev/riscv.specs +++ b/scripts/profiles/0.9.6-dev/riscv.specs @@ -48,8 +48,8 @@ wgetdeps=( # Dependencies that must be cloned. clonedeps=( ["libfabric"]="HEAD@v1.20.1" - ["mercury"]="v2.4.0" - ["margo"]="v0.18.3" + ["mercury"]="v2.4.1" + ["margo"]="v0.21.0" ["syscall_intercept"]="fcc6d7bd4a62c2fa0419ad65ecd8d5ed95b99f63" ) diff --git a/scripts/profiles/sources.list b/scripts/profiles/sources.list index d4ff2340bcc15647d661ae3eab96e6fbd00497c2..7987578cc2bd779e0c0de48afd3321494b94792b 100644 --- a/scripts/profiles/sources.list +++ b/scripts/profiles/sources.list @@ -56,6 +56,8 @@ sources=( ["ucx"]="https://github.com/openucx/ucx/archive/{{VERSION}}.tar.gz" ["libzmq"]="https://github.com/zeromq/libzmq/archive/v{{VERSION}}.tar.gz" ["cppzmq"]="https://github.com/zeromq/cppzmq/archive/v{{VERSION}}.tar.gz" + ["thallium"]="https://github.com/mochi-hpc/mochi-thallium" + ["cereal"]="https://github.com/USCiLab/cereal/archive/v{{VERSION}}.tar.gz" ) diff --git a/tests/scripts/dl_dep.sh/0.9.6-dev/default.out b/tests/scripts/dl_dep.sh/0.9.6-dev/default.out index a5224522a51c33607ceb650c3b4f412f7c4b243e..eca2168db23fe95b212fd616e1d9946b9e096e6c 100644 --- a/tests/scripts/dl_dep.sh/0.9.6-dev/default.out +++ b/tests/scripts/dl_dep.sh/0.9.6-dev/default.out @@ -3,9 +3,9 @@ Downloaded 'https://github.com/facebook/zstd/archive/v1.5.7.tar.gz' to 'zstd' Downloaded 'https://github.com/aquynh/capstone/archive/6.0.0-Alpha1.tar.gz' to 'capstone' Downloaded 'https://github.com/json-c/json-c/archive/json-c-0.17-20230812.tar.gz' to 'json-c' Cloned 'https://github.com/ofiwg/libfabric.git' to 'libfabric' with commit '[HEAD]' and flags '--branch=v2.2.0' -Cloned 'https://github.com/mercury-hpc/mercury' to 'mercury' with commit '[v2.4.1rc1]' and flags '--recurse-submodules' +Cloned 'https://github.com/mercury-hpc/mercury' to 'mercury' with commit '[v2.4.1]' and flags '--recurse-submodules' Downloaded 'https://github.com/pmodels/argobots/archive/v1.2.tar.gz' to 'argobots' -Cloned 'https://github.com/mochi-hpc/mochi-margo' to 'margo' with commit '[v0.18.3]' and flags '' +Cloned 'https://github.com/mochi-hpc/mochi-margo' to 'margo' with commit '[v0.21.0]' and flags '' Downloaded 'https://github.com/facebook/rocksdb/archive/v10.4.2.tar.gz' to 'rocksdb' Cloned 'https://github.com/GekkoFS/syscall_intercept.git' to 'syscall_intercept' with commit '[d8b2a69961921ed123625c79a609331fc56a8931]' and flags '' Done