Skip to content

Commit a2fd381

Browse files
committed
Merge branch 'main' into release
2 parents f64c649 + ba5ed88 commit a2fd381

File tree

259 files changed

+16872
-5351
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

259 files changed

+16872
-5351
lines changed

.devcontainer/Dockerfile.codespace

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FROM fedora:37
1+
FROM fedora:latest
22

33
RUN dnf -y update \
44
&& dnf -y install \

.github/ISSUE_TEMPLATE/release.md

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
---
2+
name: Version Release
3+
about: Create an issue to make a new release
4+
title: 'Release X.X.X'
5+
labels: ''
6+
assignees: ''
7+
8+
---
9+
10+
## Testing
11+
12+
- [ ] GitHub Actions are passing on `main`
13+
- [ ] Update the version number in the include path in the README example
14+
- [ ] Verify the README example compiles and runs successfully
15+
- [ ] Confirm the README example output matches what is shown in the README
16+
17+
## Deployment
18+
19+
- [ ] Create a new branch (do **not** name it `release`)
20+
- [ ] Update the version number in `CMakeLists.txt`
21+
- [ ] Run the CMake configure step from the MICM source directory:
22+
```
23+
cmake -B build -S .
24+
```
25+
This forces CMake to write the correct version file into the include directory.
26+
- [ ] Open `docs/sources/_static/switcher.json`
27+
- The first object points to the stable version — update its `name` to the new version number
28+
- [ ] Update the version number in `CITATION.cff`
29+
- [ ] On GitHub, merge `main` into `release`**do NOT squash and merge**
30+
- Alternatively, merge locally and push: `git checkout release && git merge main && git push`
31+
- [ ] Create a tag and add release notes on GitHub
32+
- Be sure to select the `release` branch as the target

.github/workflows/docker_and_coverage.yml

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,9 @@ jobs:
1818
strategy:
1919
fail-fast: false
2020
matrix:
21-
os: [ubuntu-latest]
2221
dockerfile:
2322
- Dockerfile
2423
- Dockerfile.coverage
25-
- Dockerfile.llvm
2624
- Dockerfile.memcheck
2725
- Dockerfile.nvhpc
2826
- Dockerfile.openmp
@@ -34,33 +32,28 @@ jobs:
3432
with:
3533
submodules: recursive
3634

37-
- name: Delete huge unnecessary tools folder
35+
- name: Free disk space
3836
run: rm -rf /opt/hostedtoolcache
3937

4038
- name: Build Docker image
4139
run: docker build -t micm -f docker/${{ matrix.dockerfile }} .
4240

4341
- name: Run tests in container
4442
# only run this if we are not running coverage tests or have built the cuda files
45-
if: matrix.dockerfile != 'Dockerfile.coverage' && matrix.dockerfile != 'Dockerfile.nvhpc' && matrix.dockerfile != 'Dockerfile.llvm'
43+
if: matrix.dockerfile != 'Dockerfile.coverage' && matrix.dockerfile != 'Dockerfile.nvhpc'
4644
run: docker run --name test-container -t micm bash -c 'make test ARGS="--rerun-failed --output-on-failure -j8"'
4745

48-
- name: Run tests using LLVM in container
49-
# excludes some very expensive memcheck tests
50-
if: matrix.dockerfile == 'Dockerfile.llvm'
51-
run: docker run --name test-container -t micm bash -c 'make test ARGS="--rerun-failed --output-on-failure -j8 -E \"memcheck_jit_linear_solver|memcheck_analytical_rosenbrock_integration\""'
52-
5346
- name: Run coverage tests in container
5447
if: matrix.dockerfile == 'Dockerfile.coverage'
55-
run: docker run --name test-container -t micm bash -c 'make coverage ARGS="--rerun-failed --output-on-failure -j8"'
48+
run: docker run --name test-container -t micm bash -c 'make coverage'
5649

5750
- name: Copy coverage from container
5851
if: matrix.dockerfile == 'Dockerfile.coverage'
5952
run: docker cp test-container:build/coverage.info .
6053

6154
- name: Upload coverage report
6255
if: matrix.dockerfile == 'Dockerfile.coverage'
63-
uses: codecov/codecov-action@v3
56+
uses: codecov/codecov-action@v5
6457
with:
6558
token: ${{ secrets.CODECOV_TOKEN }}
6659
files: coverage.info

.github/workflows/gh_pages.yml

Lines changed: 0 additions & 134 deletions
This file was deleted.

.github/workflows/ubuntu.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ concurrency:
1313

1414
jobs:
1515
gcc:
16-
runs-on: ubuntu-22.04
16+
runs-on: ubuntu-latest
1717
strategy:
1818
matrix:
1919
build_type: [Release]
@@ -36,7 +36,7 @@ jobs:
3636
ctest -C ${{ matrix.build_type }} --rerun-failed --output-on-failure . --verbose -j 10
3737
3838
clang:
39-
runs-on: ubuntu-22.04
39+
runs-on: ubuntu-latest
4040
strategy:
4141
matrix:
4242
build_type: [Release]

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,3 +7,4 @@ doc/latex/
77
.vscode
88
xcode/
99
__pycache__
10+
.claude

.readthedocs.yaml

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# Read the Docs configuration file
2+
# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details
3+
---
4+
# Required
5+
version: 2
6+
7+
conda:
8+
environment: environment.yml
9+
10+
# Set the OS, Python version, and other tools you might need
11+
build:
12+
os: ubuntu-24.04
13+
tools:
14+
python: "mambaforge-22.9"
15+
16+
# Build documentation in the "docs/" directory with Sphinx
17+
sphinx:
18+
configuration: docs/source/conf.py
19+

CITATION.cff

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
cff-version: 1.2.0
22
message: If you use this software, please cite it as below.
33
title: Model Independent Chemistry Module (MICM)
4-
version: v3.11.0
4+
version: v3.12.0
55
doi: "10.5281/zenodo.10472189"
66
authors:
77
- family-names: Dawson

CMakeLists.txt

Lines changed: 6 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
################################################################################
22
# Preamble
3-
cmake_minimum_required(VERSION 3.21)
3+
cmake_minimum_required(VERSION 3.24)
44

55
# project and version must be on the same line so that the docs can extract it
6-
project(micm VERSION 3.11.0 LANGUAGES CXX)
6+
project(micm VERSION 3.12.0 LANGUAGES CXX)
77

88
if(NOT CMAKE_BUILD_TYPE)
99
set(CMAKE_BUILD_TYPE "Release" CACHE STRING
@@ -30,18 +30,12 @@ option(MICM_ENABLE_OPENMP "Enable OpenMP support" OFF)
3030
option(MICM_ENABLE_COVERAGE "Enable code coverage output" OFF)
3131
option(MICM_ENABLE_MEMCHECK "Enable memory checking in tests" OFF)
3232
option(MICM_BUILD_DOCS "Build the documentation" OFF)
33-
option(MICM_ENABLE_LLVM "Build with LLVM support for JIT-compiling" OFF)
3433
option(MICM_ENABLE_TESTS "Build the tests" ON)
3534
option(MICM_ENABLE_PROFILE "Profile MICM Solver" OFF)
35+
option(MICM_BUILD_SHARED_LIBS "Build micm_cuda as shared libraries" OFF)
3636
set(MICM_DEFAULT_VECTOR_SIZE "4" CACHE STRING "Default size for vectorizable matrix types")
3737
set(MICM_GPU_TYPE "None" CACHE STRING "The GPU type being targeted")
3838

39-
# on ubuntu with clang, an incorrect version of the c++ standard library was being linked
40-
if (${CMAKE_HOST_SYSTEM_NAME} MATCHES "Linux" AND "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
41-
# If the compiler is Clang, use libc++
42-
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++")
43-
endif()
44-
4539
# on Windows with MSVC, add the /bigobj flag to allow for large object files
4640
if (${CMAKE_HOST_SYSTEM_NAME} MATCHES "Windows" AND "${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC")
4741
# If the compiler is MSVC or Clang on Windows, use /bigobj
@@ -74,8 +68,8 @@ if(PROJECT_IS_TOP_LEVEL AND MICM_ENABLE_TESTS)
7468
NAME coverage
7569
EXECUTABLE "ctest"
7670
EXCLUDE "${PROJECT_SOURCE_DIR}/test/*"
77-
BASE_DIRECTORY "${PROJECT_SOURCE_DIR}/src")
78-
71+
BASE_DIRECTORY "${PROJECT_SOURCE_DIR}/src"
72+
LCOV_ARGS "--ignore-errors" "mismatch")
7973
endif()
8074

8175
enable_testing()
@@ -88,12 +82,4 @@ endif()
8882
# only include packaging if we are the top level project being built
8983
if(PROJECT_IS_TOP_LEVEL)
9084
add_subdirectory(packaging)
91-
endif()
92-
93-
################################################################################
94-
95-
# on ubuntu with clang, an incorrect version of the c++ standard library was being linked
96-
if (${CMAKE_HOST_SYSTEM_NAME} MATCHES "Linux" AND "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
97-
# If the compiler is Clang, use libc++
98-
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++")
99-
endif()
85+
endif()

0 commit comments

Comments
 (0)