Skip to content
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

Catch 2 v3 #78

Draft
wants to merge 211 commits into
base: feature/catch2v3
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
211 commits
Select commit Hold shift + click to select a range
63b796e
(feature) Replace Catch2 with doctest
acgetchell May 10, 2022
55fef57
(test) Fix all tests to run on doctest
acgetchell May 18, 2022
5f37c32
(fix) Various issues from ASAN
acgetchell May 19, 2022
2c96ea2
(test) Use C++20 Mathematical constants
acgetchell May 24, 2022
5f70aa7
(test) Fix SonarLint warning
acgetchell May 24, 2022
28e9ef9
Merge branch 'feature/doctest' into develop
acgetchell May 25, 2022
87c5685
(refactor) Start migrating features for bistellar move
acgetchell May 26, 2022
e38be2f
(refactor) Ergodic_moves_3 operate on Manifold_3, helpers on Delaunay_3
acgetchell Jun 7, 2022
53ec486
(refactor) Simplify bistellar_flip_really
acgetchell Jun 9, 2022
1abf22b
(test) Update doctest and remove Catch2 references
acgetchell Jun 21, 2022
4ccedc3
(fix) Fix bug identified by PVS Studio
acgetchell Jun 21, 2022
78da939
(fix) clang-tidy warnings
acgetchell Jun 22, 2022
4189c59
(fix) fmt::format strings, update to latest vcpkg
acgetchell Aug 17, 2022
72580ce
(fix) Don't const-qualify functions that return by value
acgetchell Aug 17, 2022
6166dbb
(fix) More formatting and some logic fixes
acgetchell Aug 17, 2022
d72e416
(fix) Clang-tidy fixes
acgetchell Aug 17, 2022
139fa8b
(fix) clang-format
acgetchell Aug 17, 2022
48a5f95
(ci) Update to Boost 1.80
acgetchell Aug 26, 2022
19ab7d7
(ci) Update vcpkg
acgetchell Sep 17, 2022
43e175c
(ci)
acgetchell Sep 30, 2022
ebab690
(build) Update Slurm script for HPC runs
acgetchell Oct 14, 2022
43b040f
(refactor) Run include-what-you-use
acgetchell Nov 8, 2022
0735296
(fix, ci) Yep, iwyu makes some bad suggestions
acgetchell Nov 8, 2022
94e92ec
(fix) Fix clang-format and iwyu errors
acgetchell Nov 8, 2022
5ccc47d
(ci) Fix CodeCov, update clang on Travis-CI
acgetchell Nov 8, 2022
af57547
(ci) Fix Travis-CI
acgetchell Nov 8, 2022
f3f9b82
(ci) Fix GitHub Actions, clang-format
acgetchell Nov 9, 2022
09fc500
(refactor) Fix clang-tidy warnings
acgetchell Nov 10, 2022
33530c3
(refactor) More clang-tidy fixes
acgetchell Nov 10, 2022
76e12c2
(refactor) Bi-stellar flip
acgetchell Nov 15, 2022
642772f
(ci, fix, bug) Fix Travis-CI, clang-tidy, and a bug
acgetchell Nov 15, 2022
b18b962
(ci) Trying a fix for Travis-CI
acgetchell Nov 15, 2022
14cf635
(ci) Update SonarCloud, GitHub Actions
acgetchell Nov 29, 2022
1ab2038
(doc) Update documentation
acgetchell Dec 2, 2022
130dc1b
(performance) Fix clang-tidy warnings
acgetchell Dec 15, 2022
9f8003b
(refactor) Use c++20 features now supported in all 4 compilers
acgetchell Dec 15, 2022
aed36c6
(feature) Visualization via Qt5
acgetchell Dec 17, 2022
650f2ee
(ci) Fix CI build dependencies
acgetchell Dec 17, 2022
cbfdffa
(ci) Only build cdt-viewer on macOS
acgetchell Dec 18, 2022
cfcba15
(feature) Read file and draw
acgetchell Dec 23, 2022
afd790a
(feature) Reading and writing triangulations from files
acgetchell Dec 23, 2022
b957b3f
(refactor) Make write_file easier to use
acgetchell Dec 26, 2022
7ae12a9
(refactor, test, docs)
acgetchell Dec 27, 2022
f9901d9
(feature) Add functionality to read file from command line
acgetchell Dec 28, 2022
a7f567d
(doc) Update documentation prior to merge [skip ci]
acgetchell Dec 28, 2022
eae5d01
Merge branch 'feature/qt' into develop
acgetchell Dec 28, 2022
bc062dd
(docs) Update documentation
acgetchell Dec 31, 2022
cba43ef
(ci, docs)
acgetchell Dec 31, 2022
674d9a1
(ci, doc, fix) Happy New Year!
acgetchell Jan 3, 2023
caa27e1
(ci) Remove testing from AppVeyor
acgetchell Jan 3, 2023
11726e0
(ci) Fix AppVeyor caching
acgetchell Jan 3, 2023
a4eed8c
(docs, ci) Use new CodeCov uploader
acgetchell Jan 4, 2023
ec614dd
(ci) Fix CodeCov uploader [skip ci]
acgetchell Jan 4, 2023
6da59a1
(ci) Don't run vcpkg manifest mode in dev mode [ci skip]
acgetchell Jan 4, 2023
b1fcf5e
Merge branch 'feature/new-codecov-uploader' into develop
acgetchell Jan 4, 2023
5ab2ed7
(ci) Fiddling with CMakePresets for new CodeCov uploader [ci skip]
acgetchell Jan 4, 2023
ad3ab3c
(ci) Turn off cmake dev errors [skip ci]
acgetchell Jan 4, 2023
7fe8a32
(ci) More CMakePresets fun to fix CodeCov [skip ci]
acgetchell Jan 4, 2023
09b4884
(ci) Fixing weird filesystem errors [ci skip]
acgetchell Jan 4, 2023
a97b220
(ci) Build CodeCov with clang [ci skip]
acgetchell Jan 4, 2023
282c154
(ci) Remove options not supported by clang [ci skip]
acgetchell Jan 4, 2023
3ca72bd
(ci) Fix CodeCov upload
acgetchell Jan 6, 2023
9488c11
(ci) Fix Codecov uploader [skip ci]
acgetchell Jan 6, 2023
7c27dc2
(ci) Fix gcc for Codecov uploader [ci skip]
acgetchell Jan 6, 2023
ab0a695
(ci) Use gcc-12 and clang-15 for GitHub Actions [ci skip]
acgetchell Jan 6, 2023
5bf7f58
(ci) Explicitly set compiler in setup-gcc and setup-clang [ci skip]
acgetchell Jan 6, 2023
ff36f82
(ci) Update to gcc-12 and clang-15
acgetchell Jan 6, 2023
ce27bb5
(ci) Fix Travis
acgetchell Jan 6, 2023
abbf890
(ci) Revert Travis-CI to clang-14 and gcc-11
acgetchell Jan 6, 2023
bfa502c
(ci) Use cmake presets for GitHub Actions
acgetchell Jan 7, 2023
135b7dc
(ci) More GitHub Actions and AppVeyor tuning with CMakePresets.json
acgetchell Jan 7, 2023
6321a8d
(ci) Fix AppVeyor and SonarCloud
acgetchell Jan 7, 2023
0d27d0a
(ci) Fix AppVeyor and SonarCloud, try #2
acgetchell Jan 7, 2023
ac4e03e
(ci) AppVeyor #3
acgetchell Jan 7, 2023
5c0385a
(ci) Try to resolve gcov/gcc version mismatch
acgetchell Jan 11, 2023
a631798
(ci) Turn off QT in GitHub Actions
acgetchell Jan 12, 2023
0338b74
(ci) Also remove the tests for cdt-viewer [ci skip]
acgetchell Jan 12, 2023
6c0885d
(test) Write a bistellar-flip test harness
acgetchell Jan 13, 2023
b4cd264
(ci) Delete build caches
acgetchell Jan 17, 2023
496adc5
(ci) Revert SonarCloud and CodeCov ci script , AppVeyor caching
acgetchell Jan 17, 2023
bd41945
(ci) Fix codecov and hopefully SonarCloud coverage
acgetchell Jan 19, 2023
13932ac
(ci) Coverage should work now ...
acgetchell Jan 19, 2023
558e49e
Update packages, debug draw
acgetchell Feb 9, 2023
6fd3941
Update vcpkg
acgetchell Feb 24, 2023
6e00b8a
(fix) Enforce FoliatedTriangulation class invariant
acgetchell Mar 22, 2023
76355e6
(fix) Fix CI errors
acgetchell Mar 22, 2023
21ea2c5
(fix) More clang-format
acgetchell Mar 22, 2023
a05eea4
Revert to using CodeCov GitHub Action
acgetchell Mar 26, 2023
6da7e32
Add method to read Delaunay triangulation in the Manifold
acgetchell Mar 27, 2023
1c83943
Fix get_triangulation().get_delaunay calls
acgetchell Mar 30, 2023
319bd7e
(fix) Fix make_triangulation and is_62_movable
acgetchell Mar 30, 2023
bbd8555
(ci, fix) Add clang-tidy check, fix README
acgetchell Mar 31, 2023
6e2d8de
(fix) Fixes to CodeCov and clang-tidy
acgetchell Mar 31, 2023
6f306ba
(fix) clang-format, doctests
acgetchell Apr 1, 2023
b0efd23
(fix) README, more tests
acgetchell Apr 1, 2023
a9a08a1
Remove -Wcomment warnings, use CHECK_EQ, REQUIRE_EQ
acgetchell Apr 7, 2023
b0a39bb
(ci) Try new CodeCov GitHub Action
acgetchell Apr 11, 2023
444cc6d
(refactor) Update to Boost 1.82
acgetchell Apr 16, 2023
ccdd09d
(ci) Update AppVeyor and CodeCov
acgetchell May 5, 2023
c458339
(test) Activate certain tests
acgetchell May 5, 2023
fef1c02
(ci) Update CodeCov and SonarCloud to use gcc-12
acgetchell May 5, 2023
30256e6
(ci, refactor) Undo gcc-12 on CodeCov and SonarCloud
acgetchell May 6, 2023
5466d0a
Add back default cases and remove Expects and Ensures
acgetchell May 8, 2023
debe0be
Update vcpkg
acgetchell Jun 1, 2023
303f93a
Update packages
acgetchell Jun 10, 2023
9609bb7
Update vcpkg to commit 5d2a0a9 in workflows and tests
acgetchell Jun 16, 2023
0420b15
Refactor build and test scripts for CI/CD workflows
acgetchell Jun 16, 2023
498dcef
feat: Add test for check_move function
acgetchell Jul 7, 2023
46609b8
Update AppVeyor and Codecov configurations
acgetchell Jul 7, 2023
d861cac
Refactor build and test scripts, update dependencies
acgetchell Jul 7, 2023
d41deea
Refactor code to use `foliated_triangulations::make_causal_vertices` …
acgetchell Jul 7, 2023
e93f8d6
Refactor code for Manifold initialization and mutation
acgetchell Jul 7, 2023
2f7a188
Update GCC and Clang versions in CI configuration
acgetchell Jul 8, 2023
4c43907
Fixed FoliatedTriangulation copy constructor
acgetchell Jul 10, 2023
f6bc5a8
Fix macOS build
acgetchell Jul 10, 2023
b515f3c
Update vcpkgGitCommitId in workflow files
acgetchell Jul 13, 2023
d7a450b
Update vcpkgGitCommitId in workflow files
acgetchell Jul 27, 2023
d216edf
Update vcpkgGitCommitId in GitHub workflows
acgetchell Aug 1, 2023
4896058
Update vcpkgGitCommitId in GitHub workflows
acgetchell Aug 22, 2023
eb2dd7c
Add get_cell function
acgetchell Sep 4, 2023
dd39db6
Add new function
acgetchell Sep 7, 2023
5a09993
Fix AppVeyor
acgetchell Sep 8, 2023
5c6cfe3
Boost 1.83
acgetchell Sep 21, 2023
624b15c
Backed out qt
acgetchell Sep 26, 2023
ba55e74
Use a span of Vertex_handles for read-only
acgetchell Sep 27, 2023
0bdf8db
More ranges
acgetchell Sep 29, 2023
280b2e0
Re-added Qt
acgetchell Oct 4, 2023
04866be
feat: Add <chrono> header for time-related functionality
acgetchell Oct 5, 2023
a9b7134
Refactor code to remove unused code and add debug log messages
acgetchell Oct 6, 2023
bdb5237
Add Linux Clang with pkgx workflow and comment out unsupported std::f…
acgetchell Oct 6, 2023
1e91e2b
Update Linux-clang-pkgx workflow [skip ci]
acgetchell Oct 6, 2023
7f7323d
Start using pkgx on ci
acgetchell Oct 6, 2023
dd1dd05
Switch more GitHub Actions to pkgx
acgetchell Oct 6, 2023
5eb1578
Fix GitHub Actions
acgetchell Oct 6, 2023
09d913d
De-cluttering test printouts
acgetchell Oct 10, 2023
36785a7
Use C++23 standard
acgetchell Oct 23, 2023
170e065
Use c++23 std::expected
acgetchell Oct 24, 2023
a3b4b66
Reset develop back to C++20
acgetchell Oct 24, 2023
e138350
Merge remote-tracking branch 'origin/develop' into develop
acgetchell Oct 24, 2023
c7ce11d
Revert to C++20
acgetchell Oct 24, 2023
28e4629
feat: Add print_cell function and update print_cells
acgetchell Nov 6, 2023
dca7340
feat: Add cache directory to AppVeyor configuration
acgetchell Nov 6, 2023
8443a78
Update clang-format version to 17 and update compiler versions in Tra…
acgetchell Nov 7, 2023
a5bb7cd
Remove unused compilers and dependencies in .travis.yml
acgetchell Nov 7, 2023
5ab9ba3
Update before_install script in .travis.yml
acgetchell Nov 7, 2023
adb079f
Update Travis CI configuration to use `curl -fsS` instead of `eval "$…
acgetchell Nov 7, 2023
c6098d0
Update Travis CI configuration
acgetchell Nov 7, 2023
ed905ab
Refactor GitHub workflow files for improved concurrency handling
acgetchell Nov 7, 2023
8605c78
Travis-CI and pkgx don't get along
acgetchell Nov 7, 2023
f5d30af
Refactor GitHub Actions workflows to use a dynamic concurrency group
acgetchell Nov 7, 2023
e451d33
Update vcpkg, AppVeyor, more ranges
acgetchell Nov 23, 2023
6930537
Apply a bunch of suggested fixes
acgetchell Nov 23, 2023
947ec03
feat: Add Python 3.11 support to macOS workflow
acgetchell Nov 25, 2023
e4b163e
feat: Update macOS workflow and MoveCommand class
acgetchell Nov 25, 2023
9a7cca3
Remove unnecessary files and update dependencies in macOS workflow.
acgetchell Nov 25, 2023
77fcb7c
Update macOS and Travis CI configurations
acgetchell Nov 25, 2023
d47bd93
Use pkgx to install gcc-13 and clang-16 on Travis-CI
acgetchell Nov 25, 2023
5ee5af8
Travis-CI + pkgx
acgetchell Nov 25, 2023
94947c6
Bog standard install of gcc-13
acgetchell Nov 25, 2023
655286e
Add gcc-12 to the list of required packages in .travis.yml
acgetchell Nov 25, 2023
52fd3ae
Update Travis CI configuration
acgetchell Nov 25, 2023
c0c02fd
Update compiler versions in .travis.yml
acgetchell Nov 25, 2023
6cf22dc
Update macOS.yml and .travis.yml
acgetchell Nov 26, 2023
26f2dca
Fix Travis, update GitHub actions
acgetchell Nov 28, 2023
34c1267
Deprecate Doxygen on Travis-CI [skip ci]
acgetchell Nov 28, 2023
86ff224
Still fixing macos on GitHub [skip ci]
acgetchell Nov 28, 2023
ea39270
And another python3 error in GHA [skip ci]
acgetchell Nov 28, 2023
9da2499
Yet another python3 update error in GHA [skip ci]
acgetchell Nov 28, 2023
470ff3f
Setup Valgrind on GHA [skip ci]
acgetchell Nov 28, 2023
572fca2
Add Valgrind installation to the workflow
acgetchell Nov 28, 2023
294393f
Fix macOS and Valgrind [ci skip]
acgetchell Nov 28, 2023
9cbc948
Fix Valgrind [ci skip]
acgetchell Nov 28, 2023
3606b8a
Fix known Valgrind/ASAN issue [skip ci]
acgetchell Nov 28, 2023
821f499
Update Valgrind configuration for Clang [ci skip]
acgetchell Nov 28, 2023
5167aa2
Fix Valgrind on clang [ci skip]
acgetchell Nov 29, 2023
f6dde57
Revert Valgrind back to g++, at least some tests work [skip ci]
acgetchell Nov 29, 2023
2df42ce
Run Valgrind checks separately [ci skip]
acgetchell Nov 29, 2023
effab71
Update vcpkg
acgetchell Nov 30, 2023
eb1ee2d
Enable ASAN on GHA [skip ci]
acgetchell Nov 30, 2023
aa4fad9
Migrate Sanitizers to GHA [skip ci]
acgetchell Nov 30, 2023
8ef7e8b
Use a repo variable to update vcpkg
acgetchell Nov 30, 2023
de41ab3
Add Cppcheck workflow, presets, and build steps [skip ci]
acgetchell Nov 30, 2023
576b135
Update HPC and PVS Studio scripts
acgetchell Dec 13, 2023
17f8302
Update Slurm script
acgetchell Dec 20, 2023
25379e6
Boost 1.84
acgetchell Jan 27, 2024
5812db7
Update vcpkg to fix macOS qt build issue
acgetchell Feb 5, 2024
367c374
Fixing vcpkg build of python on macOS [skip ci]
acgetchell Feb 5, 2024
e3b083d
Remaining vcpkg python macOS update fixes [skip ci]
acgetchell Feb 5, 2024
891c1fb
Still need old fixes too [skip ci]
acgetchell Feb 6, 2024
ca6b24c
Fix docopt
acgetchell Mar 11, 2024
83cd610
Fix docopt #2
acgetchell Mar 11, 2024
fc1ac31
ci: Try clang-18 via pkgx [ci skip]
acgetchell Apr 12, 2024
0dba855
ci: Fix when checks run
acgetchell Apr 13, 2024
c9733e4
ci: Update to clang-18
acgetchell Apr 13, 2024
805d5ed
ci, style: clang-format and macOS
acgetchell Apr 13, 2024
e00cc47
test: format/fix tests
acgetchell Apr 14, 2024
9217f34
feat: Switch from docopt to boost::program_options
acgetchell Apr 15, 2024
f3eb66b
ci, fix: macOS and Linux builds
acgetchell Apr 15, 2024
d423ad4
feat: Replace docopt on cdt
acgetchell Apr 16, 2024
a339af5
feat: Replace docopt on cdt-viewer
acgetchell Apr 16, 2024
634398d
docs: Update documentation [ci skip]
acgetchell Apr 16, 2024
754094f
ci, fix: Fix fmt::join, update Github actions
acgetchell Aug 24, 2024
6e6e5dd
ci: update GitHub Actions
acgetchell Aug 24, 2024
2dc8945
ci: Update remaining actions
acgetchell Aug 24, 2024
63785d6
fix: MSVC error
acgetchell Aug 24, 2024
771f01d
ci: Check if clang-19 available [skip ci]
acgetchell Sep 23, 2024
cc17bc1
ci: Update to clang-19
acgetchell Sep 23, 2024
a79eed9
Feature/c++23 (#76)
acgetchell Sep 24, 2024
6d8a435
Feature/fix appveyor (#77)
acgetchell Nov 5, 2024
390fe0e
ci: Fix macOS GitHub Action [skip ci]
acgetchell Nov 5, 2024
0f64010
ci: Coderabbit and macOS update
acgetchell Nov 14, 2024
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
38 changes: 14 additions & 24 deletions .appveyor.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ skip_tags: true
skip_branch_with_pr: true

image:
- Visual Studio 2019
- Visual Studio 2022

clone_folder: c:\projects\cdt-plusplus

Expand All @@ -19,9 +19,10 @@ clone_script:
&& git submodule update --init --recursive

environment:
APPVEYOR_SAVE_CACHE_ON_ERROR : true
APPVEYOR_SAVE_CACHE_ON_ERROR: false
APPVEYOR_CACHE_SKIP_RESTORE: true
VCPKG_DEFAULT_TRIPLET: x64-windows
# VCPKG_ROOT: c:\tools\vcpkg
VCPKG_ROOT: c:\tools\vcpkg

cache:
- c:\Users\appveyor\AppData\Local\vcpkg\archives\
Expand All @@ -30,29 +31,18 @@ cache:
install:
# Setup vcpkg
- cd c:\tools\vcpkg
# - git clean -d -fx .
- git pull origin master --no-rebase
# - git reset --hard 56c0313
- git pull
- .\bootstrap-vcpkg.bat
- set PATH=%PATH%;%VCPKG_ROOT%
- vcpkg integrate install
- cmake --version
# Install required libraries in classic mode
# - set VCPKG_INSTALL_ROOT=%APPVEYOR_BUILD_FOLDER%\vcpkg_installed
# - vcpkg install --x-install-root=%VCPKG_INSTALL_ROOT% catch2 docopt date fmt ms-gsl eigen3 pcg tbb tl-expected
# CGAL requires GMP which requires yasm-tool:x86-windows, even if you are using x64-windows.
# - vcpkg install --x-install-root=%VCPKG_INSTALL_ROOT% --recurse yasm-tool:x86-windows
# - vcpkg install --x-install-root=%VCPKG_INSTALL_ROOT% cgal
# Upgrade required libraries
# - vcpkg upgrade --no-dry-run --x-install-root=%VCPKG_INSTALL_ROOT%
# - vcpkg list --x-install-root=%VCPKG_INSTALL_ROOT%
# Setup Clang-cl
- set PATH=%PATH%;"C:\Program Files\LLVM\bin"
- clang-cl -v
- set CC=clang-cl -mrtm
- set CXX=clang-cl -mrtm
# Visual Studio 2019
- call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars64.bat"
# Visual Studio 2022
- call "C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvars64.bat"
- set CMAKE_CXX_COMPILER="C:\Program Files\LLVM\bin\clang-cl"

platform:
Expand All @@ -63,17 +53,17 @@ configuration: Release
build:
verbosity: detailed

before_build:
- cd %APPVEYOR_BUILD_FOLDER%
- vcpkg install --feature-flags=manifests

build_script:
- cmake -G Ninja -D CMAKE_BUILD_TYPE=Release -D ENABLE_CACHE=OFF -D CMAKE_TOOLCHAIN_FILE=C:/Tools/vcpkg/scripts/buildsystems/vcpkg.cmake -S . -B build
- cd %APPVEYOR_BUILD_FOLDER%
- cmake --preset=appveyor
- cmake --build build

#on_success:
#test_script:
# - cd build
# - ctest -VV
# - ctest --output-on-failure -j2 --output-junit test-results.xml
#
#after_test:
# - find "$APPVEYOR_BUILD_FOLDER" -type f -name 'test-results.xml' -print0 | xargs -0 -I '{}' curl -F 'file=@{}' "https://ci.appveyor.com/api/testresults/junit/$APPVEYOR_JOB_ID"

notifications:
- provider: Email
Expand Down
12 changes: 11 additions & 1 deletion .clang-format
Original file line number Diff line number Diff line change
Expand Up @@ -104,9 +104,10 @@ IndentCaseBlocks: false
IndentGotoLabels: true
IndentPPDirectives: None
IndentExternBlock: AfterExternBlock
IndentRequires: false
IndentRequiresClause: true
IndentWidth: 2
IndentWrappedFunctionNames: false
InsertBraces: true
InsertTrailingCommas: None
JavaScriptQuotes: Leave
JavaScriptWrapImports: true
Expand All @@ -132,6 +133,15 @@ PenaltyReturnTypeOnItsOwnLine: 200
PenaltyIndentedWhitespace: 0
PointerAlignment: Left
PPIndentWidth: -1
QualifierAlignment: Custom
QualifierOrder:
- static
- inline
- type
- const
- constexpr
- volatile
- restrict
RawStringFormats:
- Language: Cpp
Delimiters:
Expand Down
954 changes: 368 additions & 586 deletions .clang-tidy

Large diffs are not rendered by default.

3 changes: 3 additions & 0 deletions .cmake-format.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -16,3 +16,6 @@ max_pargs_hwrap: 3
separate_ctrl_name_with_space: false
separate_fn_name_with_space: false
tab_size: 2

markup:
enable_markup: false
4 changes: 2 additions & 2 deletions .codecov.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@ coverage:
project:
default:
threshold: 3%
patch: no
changes: no
patch: off
changes: false

notify:
gitter:
Expand Down
77 changes: 77 additions & 0 deletions .coderabbit.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
language: en-US
tone_instructions: 'Be constructive and professional. Focus on technical accuracy while maintaining a friendly tone.'
early_access: true
enable_free_tier: true
reviews:
profile: assertive
request_changes_workflow: true
high_level_summary: true
high_level_summary_placeholder: '@coderabbitai summary'
auto_title_placeholder: '@coderabbitai'
review_status: true
commit_status: true
poem: true
collapse_walkthrough: false
sequence_diagrams: true
changed_files_summary: true
labeling_instructions: []
path_filters: []
path_instructions:
- path: 'src/**/*.cpp'
instructions: 'Focus on performance, memory management, and RAII principles'
- path: 'include/**/*.hpp'
instructions: 'Focus on design patterns, interfaces, and encapsulation'
- path: 'test/**/*.cpp'
instructions: |
Review the following unit test code written using doctest. Ensure the following:
- Comprehensive test coverage and proper test organization.
- The code adheres to best practices using doctest.
- Descriptive test names are used to clearly convey the intent of each test.
abort_on_close: true
auto_review:
enabled: true
auto_incremental_review: true
ignore_title_keywords: []
labels: []
drafts: true
base_branches: []
tools:
shellcheck:
enabled: true
markdownlint:
enabled: true
github-checks:
enabled: true
timeout_ms: 90000
gitleaks:
enabled: true
cppcheck:
enabled: true
languagetool:
enabled: true
enabled_only: false
level: default
hadolint:
enabled: true
yamllint:
enabled: true
actionlint:
enabled: true
pmd:
enabled: true
semgrep:
enabled: true
chat:
auto_reply: true
knowledge_base:
opt_out: false
learnings:
scope: auto
issues:
scope: auto
jira:
project_keys: []
linear:
team_keys: []
pull_requests:
scope: auto
30 changes: 18 additions & 12 deletions .github/CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@

First, thank you!

Writing esoteric scientific software can be it's own reward, but it's not for the faint of heart.
Writing esoteric scientific software can be its own reward, but it's not for the faint of heart.

If you want a general overview as to why this software package exists, please look at the [Wiki], or my talk
If you want a general overview as to why this software package exists, please look at the [Wiki] or my talk
[Causal Dynamical Triangulations with CGAL][slides].

Second, here are some simple guidelines that will make it easier on me to process and accept your contributions.
Expand All @@ -16,16 +16,16 @@ New [releases] are periodically made from [develop], then merged back into [mast
which is the stable work history. [Tagged] versions are [releases] at a point in time, citable via [ORCID].
for reproducibility.

3. Familiarize yourself with [Catch] and the [Gherkin] syntax.
3. Familiarize yourself with [doctest] and the [Gherkin] syntax.

4. Write a unit test for your proposed contribution. Unit tests go in the `tests` directory and are named
\{YourContribution\}_test.cpp, so that they can be automatically built.
\{YourContribution\}_test.cpp, don't forget to add to `/tests/CMakeLists.txt`.
All proposed features of your contribution should have a corresponding test in \{YourContribution\}_test.cpp.
Consult the [Catch Test cases and sections] if you are unsure, or consult existing tests for examples.
Consult the [doctest test cases] if you are unsure, or consult existing tests for examples.

5. I highly recommend writing your tests first, before your contribution, as this helps to think about how the
rest of the program will use your functions and/or classes.
[Test-Driven Development] (and [BDD]) has saved me quite a lot from various mistakes.
[Test-Driven Development] (and [BDD]) has saved me quite a bit from various mistakes.

6. Project source files go into the `src` directory; header files go into `include`.
This makes integration into various tests and the main program easy and modular, and follows convention.
Expand All @@ -43,12 +43,15 @@ Consult existing code for examples.
11. Run `clang-tidy` using the project's [clang-tidy.sh].

12. Open a pull request against the develop branch of the main repository (which is the default).
[Travis-CI] will test it against combinations of Linux (Ubuntu 18.04) and MacOS with clang and gcc.
[AppVeyor] will test it against Visual Studio 2017 with `clang-cl` (version 9). Ensure that
[Travis-CI] will test it against combinations of Linux (Ubuntu 22.04) with clang and gcc. [GitHub Actions] will test
against macOS and run various other checks.
[AppVeyor] will test it against Visual Studio 2019 with `clang-cl` (version 14.0.6). Ensure that
your code compiles on Windows, macOS, and Linux with `msvc`, `gcc`, and `clang`.

13. All pull requests must pass [Travis-CI] and [AppVeyor] to be accepted.
In particular, look at results from [Cppcheck], [Valgrind], [ASAN], [MSAN], [ClangTidy], , and [LGTM].
In particular, look at results from [Cppcheck], [Valgrind], [ASAN], [LSAN], [MSAN], and [TSAN], because simulations may
run for a long time so memory leaks will be eventually fatal.
[GitHub Actions] also has a lot of useful checks that will help fix your code.

14. I will get to your change as soon as I can.
Feel free to ping me on [Gitter] with any questions.
Expand Down Expand Up @@ -77,10 +80,10 @@ Most editors/IDEs have plugins for `clang-format` and `clang-tidy`.
[cpp-core]: https://github.com/isocpp/CppCoreGuidelines/blob/master/CppCoreGuidelines.md
[clang-tidy.sh]: https://github.com/acgetchell/CDT-plusplus/blob/develop/clang-tidy.sh
[AppVeyor]: https://ci.appveyor.com/project/acgetchell/cdt-plusplus
[Catch]: https://github.com/catchorg/Catch2/blob/master/docs/Readme.md
[doctest]: https://github.com/doctest/doctest
[Gherkin]: https://www.tutorialspoint.com/behavior_driven_development/behavior_driven_development_gherkin.htm
[BDD]: https://en.wikipedia.org/wiki/Behavior-driven_development
[Catch Test cases and sections]: https://github.com/catchorg/Catch2/blob/master/docs/test-cases-and-sections.md
[doctest test cases]: https://github.com/doctest/doctest/blob/master/doc/markdown/testcases.md
[Gitter]: https://gitter.im/acgetchell/CDT-plusplus
[ClangTidy]: https://releases.llvm.org/6.0.1/tools/clang/tools/extra/docs/clang-tidy/index.html
[LGTM]: https://lgtm.com/projects/g/acgetchell/CDT-plusplus/
Expand All @@ -94,4 +97,7 @@ Most editors/IDEs have plugins for `clang-format` and `clang-tidy`.
[ORCID]: https://orcid.org/
[Cppcheck]: http://cppcheck.sourceforge.net
[ASAN]: https://github.com/google/sanitizers/wiki/AddressSanitizer
[MSAN]: https://github.com/google/sanitizers/wiki/MemorySanitizer
[MSAN]: https://github.com/google/sanitizers/wiki/MemorySanitizer
[GitHub Actions]: https://github.com/acgetchell/CDT-plusplus/actions
[LSAN]: https://github.com/google/sanitizers/wiki/AddressSanitizerLeakSanitizer
[TSAN]: https://github.com/google/sanitizers/wiki/ThreadSanitizerCppManual
68 changes: 68 additions & 0 deletions .github/workflows/asan.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
name: Address Sanitizer

on:
push:
branches:
- main
- develop
pull_request:
branches:
- develop
workflow_dispatch:

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
build:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
submodules: true

- name: Setup
run: |
sudo apt update
sudo apt-get install build-essential automake autoconf autoconf-archive texinfo libtool-bin yasm ninja-build ccache

- name: Setup Clang
uses: pkgxdev/setup@v2
with:
+: clang@19

- run: clang --version

- name: Restore artifacts or setup vcpkg
uses: lukka/run-vcpkg@v11
with:
vcpkgGitCommitId: ${{ vars.VCPKG_GIT_COMMIT_ID }}

- name: Configure
run: cmake --preset=asan

- name: Build
run: cmake --build build -j 2

- name: Run tests
working-directory: build
continue-on-error: true
run: ctest -VV

- name: Run ASAN on initialize
working-directory: build/src
continue-on-error: true
run: ./initialize --s -n32000 -t11 -o

- name: Run ASAN on cdt-opt
working-directory: build/src
continue-on-error: true
run: ./cdt-opt

- name: Run ASAN on cdt
working-directory: build/src
continue-on-error: true
run: ./cdt --s -n64 -t3 -a.6 -k1.1 -l.1 -p10
17 changes: 13 additions & 4 deletions .github/workflows/clang-format-check.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,14 @@
name: clang-format Check
on: [push, pull_request]
on:
push:
branches:
- main
- develop
pull_request:
branches:
- develop
workflow_dispatch:

jobs:
formatting-check:
name: Formatting Check
Expand All @@ -10,10 +19,10 @@ jobs:
- 'src'
- 'include'
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4
- name: Run clang-format style check for C/C++/Protobuf programs.
uses: jidicula/clang-format-action@v4.5.0
uses: jidicula/clang-format-action@v4.13.0
with:
clang-format-version: '14'
clang-format-version: '18'
check-path: ${{ matrix.path }}
fallback-style: 'Google' # optional
Loading
Loading