Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 11 additions & 11 deletions .github/actions/linux-build/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -44,17 +44,17 @@ runs:
fi
if [[ "${{ inputs.compiler }}" == "gcc" ]]; then
if [[ "${{ inputs.version }}" == "min" ]]; then
sudo apt-get -qq -y install gcc-9
sudo apt-get -qq -y install g++-9
else
sudo apt-get -qq -y install gcc-11
sudo apt-get -qq -y install g++-11
else
sudo apt-get -qq -y install gcc-13
sudo apt-get -qq -y install g++-13
fi
elif [[ "${{ inputs.compiler }}" == "clang" ]]; then
if [[ "${{ inputs.version }}" == "min" ]]; then
sudo apt-get -qq -y install clang-6.0
else
sudo apt-get -qq -y install clang-14
else
sudo apt-get -qq -y install clang-17
fi
fi
- name: ccache
Expand All @@ -78,19 +78,19 @@ runs:
cd cpp
if [[ "${{ inputs.compiler }}" == "gcc" ]]; then
if [[ "${{ inputs.version }}" == "min" ]]; then
export CC=/usr/bin/gcc-9
export CXX=/usr/bin/g++-9
else
export CC=/usr/bin/gcc-11
export CXX=/usr/bin/g++-11
else
export CC=/usr/bin/gcc-13
export CXX=/usr/bin/g++-13
fi
elif [[ "${{ inputs.compiler }}" == "clang" ]]; then
if [[ "${{ inputs.version }}" == "min" ]]; then
export CC=/usr/bin/clang-6.0
export CXX=/usr/bin/clang++-6.0
else
export CC=/usr/bin/clang-14
export CXX=/usr/bin/clang++-14
else
export CC=/usr/bin/clang-17
export CXX=/usr/bin/clang++-17
fi
else
echo "unknown value for action input: compiler"
Expand Down
2 changes: 1 addition & 1 deletion .github/actions/test-py/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ runs:
run: |
sudo apt-get -qq update
if [[ "${{ inputs.package }}" == "generation" ]]; then
sudo apt-get -qq -y install python3-pip gnupg clang libclang-dev cmake
sudo apt-get -qq -y install python3-pip gnupg clang-18 libclang-18-dev cmake
else
sudo apt-get -qq -y install python3-pip gnupg
fi
Expand Down
18 changes: 9 additions & 9 deletions .github/workflows/epidata_main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ on:

jobs:
pre-commit:
runs-on: ubuntu-22.04
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
Expand All @@ -29,7 +29,7 @@ jobs:
- uses: pre-commit/action@v3.0.1

build-py-epidata:
runs-on: ubuntu-22.04
runs-on: ubuntu-latest
container: quay.io/pypa/manylinux_2_28_x86_64
steps:
- uses: actions/checkout@v4
Expand All @@ -39,7 +39,7 @@ jobs:

build-py-plot:
if: github.event.pull_request.draft == false
runs-on: ubuntu-22.04
runs-on: ubuntu-latest
container: quay.io/pypa/manylinux_2_28_x86_64
steps:
- uses: actions/checkout@v4
Expand All @@ -52,7 +52,7 @@ jobs:
strategy:
matrix:
version: ["3.8", "3.11"]
runs-on: ubuntu-22.04
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/test-py
Expand All @@ -67,7 +67,7 @@ jobs:
strategy:
matrix:
version: ["3.8", "3.11"]
runs-on: ubuntu-22.04
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/test-py
Expand All @@ -77,7 +77,7 @@ jobs:
coverage: ON

merge-artifacts:
runs-on: ubuntu-22.04
runs-on: ubuntu-latest
strategy:
matrix:
packages: [epidata, plot]
Expand All @@ -91,7 +91,7 @@ jobs:

test-pylint-epidata:
needs: build-py-epidata
runs-on: ubuntu-22.04
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/test-pylint
Expand All @@ -100,7 +100,7 @@ jobs:

test-pylint-plot:
needs: build-py-plot
runs-on: ubuntu-22.04
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/test-pylint
Expand All @@ -109,7 +109,7 @@ jobs:

download-data:
needs: build-py-epidata
runs-on: ubuntu-22.04
runs-on: ubuntu-latest
continue-on-error: true
steps:
- uses: actions/checkout@v4
Expand Down
42 changes: 21 additions & 21 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ on:

jobs:
pre-commit:
runs-on: ubuntu-22.04
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
Expand All @@ -36,9 +36,9 @@ jobs:
version: ["latest", "min"]
include:
- version: "latest"
os: "ubuntu-22.04"
os: "ubuntu-latest"
- version: "min"
os: "ubuntu-20.04"
os: "ubuntu-22.04"
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
Expand All @@ -52,7 +52,7 @@ jobs:

build-cpp-gcc-no-optional-deps:
if: github.event.pull_request.draft == false
runs-on: ubuntu-22.04
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/linux-build
Expand All @@ -64,7 +64,7 @@ jobs:

build-cpp-gcc-openmp:
if: github.event.pull_request.draft == false
runs-on: ubuntu-22.04
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/linux-build
Expand Down Expand Up @@ -114,9 +114,9 @@ jobs:
version: ["latest", "min"]
include:
- version: "latest"
os: "ubuntu-22.04"
os: "ubuntu-latest"
- version: "min"
os: "ubuntu-20.04"
os: "ubuntu-22.04"
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
Expand All @@ -127,7 +127,7 @@ jobs:

merge-test-artifacts:
needs: [test-cpp-gcc_clang, test-cpp-msvc, test-py-surrogatemodel]
runs-on: ubuntu-22.04
runs-on: ubuntu-latest
steps:
- name: merge-coverage-artifacts
uses: actions/upload-artifact/merge@v4
Expand All @@ -153,7 +153,7 @@ jobs:
test-cpp-gcc-no-optional-deps:
if: github.event.pull_request.draft == false
needs: build-cpp-gcc-no-optional-deps
runs-on: ubuntu-22.04
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/linux-test
Expand All @@ -164,7 +164,7 @@ jobs:
test-cpp-gcc-openmp:
if: github.event.pull_request.draft == false
needs: build-cpp-gcc-openmp
runs-on: ubuntu-22.04
runs-on: ubuntu-latest
timeout-minutes: 30
env:
OMP_NUM_THREADS: 4
Expand Down Expand Up @@ -216,9 +216,9 @@ jobs:
version: ["latest", "min"]
include:
- version: "latest"
os: "ubuntu-22.04"
os: "ubuntu-latest"
- version: "min"
os: "ubuntu-20.04"
os: "ubuntu-22.04"
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
Expand Down Expand Up @@ -247,7 +247,7 @@ jobs:

build-py-generation:
if: github.event.pull_request.draft == false
runs-on: ubuntu-22.04
runs-on: ubuntu-latest
container: quay.io/pypa/manylinux_2_28_x86_64
steps:
- uses: actions/checkout@v4
Expand All @@ -257,7 +257,7 @@ jobs:

build-py-simulation:
if: github.event.pull_request.draft == false
runs-on: ubuntu-22.04
runs-on: ubuntu-latest
container: quay.io/pypa/manylinux_2_28_x86_64
steps:
- uses: actions/checkout@v4
Expand All @@ -267,7 +267,7 @@ jobs:

build-py-surrogatemodel:
if: github.event.pull_request.draft == false
runs-on: ubuntu-22.04
runs-on: ubuntu-latest
container: quay.io/pypa/manylinux_2_28_x86_64
steps:
- uses: actions/checkout@v4
Expand All @@ -281,7 +281,7 @@ jobs:
matrix:
version: ["3.8", "3.11"]
needs: build-py-generation
runs-on: ubuntu-22.04
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/test-py
Expand All @@ -294,7 +294,7 @@ jobs:
strategy:
matrix:
version: ["3.8", "3.11"]
runs-on: ubuntu-22.04
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/test-py
Expand All @@ -307,7 +307,7 @@ jobs:
strategy:
matrix:
version: ["3.8", "3.11"]
runs-on: ubuntu-22.04
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/test-py
Expand All @@ -318,15 +318,15 @@ jobs:

test-docs:
if: github.event.pull_request.draft == false
runs-on: ubuntu-22.04
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/test-docs

codecov:
if: github.event.pull_request.draft == false
needs: merge-test-artifacts
runs-on: ubuntu-22.04
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install dependencies
Expand Down Expand Up @@ -354,7 +354,7 @@ jobs:
permissions:
contents: write
needs: [test-docs, merge-test-artifacts]
runs-on: ubuntu-22.04
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install dependencies
Expand Down
2 changes: 1 addition & 1 deletion .readthedocs.yaml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
version: "2"

build:
os: "ubuntu-22.04"
os: "ubuntu-latest"
apt_packages:
- libmagic1
tools:
Expand Down
5 changes: 3 additions & 2 deletions cpp/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,7 @@ if(CMAKE_BUILD_TYPE STREQUAL "Debug" OR CMAKE_BUILD_TYPE STREQUAL "DEBUG")
setup_target_for_coverage_lcov(
NAME coverage
EXECUTABLE memilio-test
LCOV_ARGS --ignore-errors gcov,mismatch
EXCLUDE "${CMAKE_SOURCE_DIR}/tests*" "${CMAKE_SOURCE_DIR}/simulations*" "${CMAKE_SOURCE_DIR}/examples*"
"${CMAKE_SOURCE_DIR}/memilio/ad*" "${CMAKE_BINARY_DIR}/*" "/usr*" "${CMAKE_SOURCE_DIR}/*.F"
)
Expand Down Expand Up @@ -127,10 +128,10 @@ endif()

if(CMAKE_CXX_COMPILER_ID MATCHES "GNU")
string(APPEND MEMILIO_CXX_FLAGS_ENABLE_WARNING_ERRORS
"-Wno-unknown-warning;-Wno-pragmas;-Wno-deprecated-copy;-Wno-expansion-to-defined;")
"-Wno-unknown-warning;-Wno-pragmas;-Wno-deprecated-copy;-Wno-expansion-to-defined;-Wno-stringop-overread;")
elseif(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
string(APPEND MEMILIO_CXX_FLAGS_ENABLE_WARNING_ERRORS
"-Wno-unknown-warning-option;-Wno-deprecated;-Wno-gnu-zero-variadic-macro-arguments;")
"-Wno-unknown-warning-option;-Wno-deprecated;-Wno-gnu-zero-variadic-macro-arguments;-Wno-stringop-overread;")
endif()

if(MEMILIO_ENABLE_WARNINGS_AS_ERRORS)
Expand Down
6 changes: 3 additions & 3 deletions cpp/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,11 @@ Directory structure:
MEmilio C++ uses CMake as a build configuration system (https://cmake.org/)

MEmilio C++ is regularly tested with the following compilers (list will be extended over time):
- GCC, versions 9.4 and 11.4
- Clang, version 6.0 and 14.0
- GCC, versions 11 and 13
- Clang, version 14 and 17
- MSVC, versions 19.29 (Visual Studio 2019) - 19.38 (Visual Studio 2022)

MEmilio C++ is regularly tested on gitlub runners using Ubuntu 18.04 and 20.04 and Windows Server 2016 and 2019. It is expected to run on any comparable Linux or Windows system. It is currently not tested on MacOS.
MEmilio C++ is regularly tested on gitlub runners using Ubuntu 22.04 and 24.04 and Windows Server 2019 and 2022. It is expected to run on any comparable Linux or Windows system. It is currently not tested on MacOS.

The following table lists the dependencies that are used. Most of them are required, but some are optional. The library can be used without them but with slightly reduced features. CMake will warn about them during configuration. Most of them are bundled with this library and do not need to be installed manually. Bundled libraries are either included with this project or loaded from the web on demand. For each dependency, there is a CMake option to use an installed version instead. Version compatibility needs to be ensured by the user, the version we currently use is included in the table.

Expand Down
7 changes: 4 additions & 3 deletions cpp/tests/test_io_cli.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
#include "memilio/config.h"
#include "memilio/io/cli.h"
#include "temp_file_register.h"
#include "utils.h"

#ifdef MEMILIO_HAS_JSONCPP

Expand Down Expand Up @@ -149,7 +150,7 @@ using Params = mio::ParameterSet<A, B, C, D>;
// using BadParams = mio::ParameterSet<A, CollisionA>;
TEST(TestCLI, test_option_verifier)
{
GTEST_FLAG_SET(death_test_style, "threadsafe");
mio::set_death_test_mode();

EXPECT_DEBUG_DEATH(mio::details::cli::verify_options(mio::ParameterSet<A, NameCollision>()),
".*Options may not have duplicate fields\\. \\(field required\\)");
Expand Down Expand Up @@ -212,7 +213,7 @@ TEST(TestCLI, test_set_param)

TEST(TestCLI, test_write_help)
{
GTEST_FLAG_SET(death_test_style, "threadsafe");
mio::set_death_test_mode();

std::stringstream ss;
const std::string help =
Expand All @@ -239,7 +240,7 @@ TEST(TestCLI, test_write_help)

TEST(TestCLI, test_print_options)
{
GTEST_FLAG_SET(death_test_style, "threadsafe");
mio::set_death_test_mode();

const std::vector<std::string> args{"", "--print_option", "a", "D"};
const int argc = (int)args.size();
Expand Down
Loading
Loading