v2.5.0
What's Changed
- Use for libc++ detection on C++20 and beyond by @severinstrobl in #901
- ci: modernize build configurations for Linux by @severinstrobl in #902
- ci: modernize build configurations for macOS by @severinstrobl in #907
- ci: modernize build configurations for oneAPI by @severinstrobl in #918
- Document a simpler CMake integration via FetchContent (#823) by @gershnik in #866
- Split toString(String) into && and const& overloads by @RedBeard0531 in #924
- ci(windows): switch to windows 2025 image by @severinstrobl in #936
- ci(macOS): use macOS 14 with XCode 15.4 for GCC by @severinstrobl in #937
- chore: Replace scripts/cmake/assemble_single_header.cmake with scripts/assemble.py by @mitchgrout in #932
- chore: Remove type-hinting from scripts/assemble.py for Python3.6 compat by @mitchgrout in #938
- fix: Suppress -Wunsafe-buffer-usage for clang by @mitchgrout in #935
- ci: Remove coverage job by @mitchgrout in #940
- chore: Extract version information to doctest/parts/version.h by @mitchgrout in #942
- chore: Extract compiler information to doctest/parts/compiler.h by @mitchgrout in #943
- Add support for volatile pointers by @Kaaserne in #934
- ci: Re-enable coverage job by @mitchgrout in #946
- chore: Extract warning-suppression macros to doctest/parts/warnings.h by @mitchgrout in #944
- Split ci workflows by @Alex-PLACET in #957
- Enforce POSIX newlines & UTF-8 encoding by @Repiteo in #960
- Fix dll interface export for the filldata::fill symbol by @grandemk in #958
- ci: Fix macOS jobs failing due to -Wpoison-system-directories by @mitchgrout in #963
- ci: Bump
checkoutto v5 &codeql-actionto v4 by @Repiteo in #964 - fix executable_dll_and_plugin test on cygwin by @corngood in #965
- ci: Bump macos-14 from gcc-12 to gcc-13 by @mitchgrout in #969
- ci: Drop macos-13 by @mitchgrout in #968
- chore: Remove unused types by @mitchgrout in #967
- ci: Simplify conditional job configuration to support internal PRs by @mitchgrout in #972
- ci: Add task to check for stale doctest.h files by @mitchgrout in #971
- chore: Remove scripts/development_only/doctest.h by @mitchgrout in #970
- chore: Update .clang-tidy to address violations revealed by #970 by @mitchgrout in #974
- chore: Prepare project for separation of monolithic .cpp code by @mitchgrout in #973
- chore: Extract config-detection macros to doctest/parts/config.h by @mitchgrout in #975
- chore: Extract general utilities to doctest/parts/utility.h by @mitchgrout in #976
- chore: Extract platform-detection to doctest/parts/platform.h by @mitchgrout in #977
- chore: Extract common implementation includes to doctest/parts/prelude.h by @mitchgrout in #978
- chore: Extract debugger code to doctest/parts/debugger.{h,cpp} by @mitchgrout in #979
- chore: Extract standard-library polyfills to doctest/parts/std/ by @mitchgrout in #980
- fix: Use new
version.hlocation inupdate_stuff.pyby @Repiteo in #983 - chore: Relocate
WIN32_LEAN_AND_MEANandNOMINMAXundefines by @Repiteo in #984 - chore: Extract string-related code to doctest/parts/string.h by @mitchgrout in #982
- chore: Extract matchers to doctest/parts/matchers/ by @mitchgrout in #985
- chore: Extract doctest::detail::ContextState to doctest/parts/context_state.h by @mitchgrout in #986
- chore: Extract global options to doctest/parts/context/options.h by @mitchgrout in #987
- chore: Extract assertion management to
doctest/parts/assert/by @mitchgrout in #988 - chore: Extract exception details to doctest/parts/exceptions.h by @mitchgrout in #989
- chore: Extract text-colouring to doctest/parts/color.h by @mitchgrout in #990
- chore: Extract subcase management to doctest/parts/subcase.h by @mitchgrout in #991
- chore: Extract test-suite management to doctest/parts/test_suite.h by @mitchgrout in #992
- chore: Extract test-case management to doctest/parts/test_case.h by @mitchgrout in #993
- chore: Extract test decorators to doctest/parts/decorators.h by @mitchgrout in #994
- chore: Extract exception translation to doctest/parts/exception_translator.h by @mitchgrout in #995
- chore: Extract ContextScope utility to doctest/parts/context_scope.h by @mitchgrout in #996
- chore: Extract reporters to doctest/parts/reporter(s) by @mitchgrout in #997
- chore: Extract assertion-message code to doctest/parts/assert/message.h by @mitchgrout in #998
- chore: Extract Context class to doctest/parts/context.h by @mitchgrout in #999
- ci: Implement concurrency logic for GitHub Actions by @Repiteo in #1003
- chore: Extract macros to doctest/parts/macros.h by @mitchgrout in #1001
- chore: Extract path utilities to doctest/parts/path.h by @mitchgrout in #1006
- chore: Extract global entry-point to doctest/parts/main.cpp by @mitchgrout in #1008
- chore: Finalize extraction and remove doctest.cpp by @mitchgrout in #1009
- feat: Have segments function as standalone files by @Repiteo in #1002
- ci: Add gcc-15, clang-19, clang-20, and clang-21 by @mitchgrout in #1011
- fix: Suppress -Wnrvo for clang and gcc by @mitchgrout in #1012
- fix: Suppress -Wmissing-noreturn in certain tests for clang by @mitchgrout in #1013
- ci: Build
doctest_with_mainin CI by @mitchgrout in #1010 - build: Add bzlmod support by @zaucy in #797
- chore: Disable werror outside of CI/CD by @mitchgrout in #1014
- chore: Add basic project unit-tests by @mitchgrout in #1020
- chore: Register unit-tests for coverage job only by @mitchgrout in #1021
- fix: Correctly handle empty strings in String::rfind by @mitchgrout in #1022
- chore: Ignore the .vs folder by @G4m4 in #1024
- feat: Warn on failure to create output-file by @mitchgrout in #1025
- chore: Resolve duplicate symbols in doctest_with_main by @mitchgrout in #1026
- chore: Register most unit-tests on CI/CD by @mitchgrout in #1027
- ci: Report coverage on parts instead of doctest.h by @mitchgrout in #1028
- chore: Add private project unit-tests by @mitchgrout in #1033
- fix: Use nullptr instead of 0 when calling sysctl by @Kaaserne in #1034
- build(cmake): update minimum required version to 3.14 by @nim65s in #953
- chore: Add project regression tests by @mitchgrout in #1037
- chore: Strip unused annotations for legacy tools by @Repiteo in #1040
- chore: Correct public includes, clarify intent by @Repiteo in #1039
- feat: Sync
clang-formatwith LLVM by @Repiteo in #1015 - feat: Add pre-commit hooks by @Repiteo in #1041
- feat: Add extra BDD macros (SCENARIO_METHOD, AND_GIVEN) by @mitchgrout in #1048
- doc: Correct skip-path-prefixes to strip-file-prefixes by @mitchgrout in #1049
- fix: Fully implement IReporter even if library is disabled by @mitchgrout in #1050
- fix: Include csignal only if POSIX_SIGNALS or WINDOWS_SEH is defined by @mitchgrout in #1054
- build: expose include directory as system path for consumers by @severinstrobl in #817
- ci: Add job to check clang-format by @mitchgrout in #1038
- fix: Update platform-detection for Mac by @mitchgrout in #1057
- test: Add debugger unit-tests by @mitchgrout in #1058
- feat: Use __builtin_debugtrap where available by @mitchgrout in #1060
- chore: Remove unused test outputs by @aozgaa in #1046
- chore: Bump clang-format precommit to 22 by @aozgaa in #1061
- ci: Re-organize ci.yml into per-platform workflows by @mitchgrout in #1064
- ci: Simplify linux.yml container configuration by @mitchgrout in #1065
- ci: Run full checks on latest only by @mitchgrout in #1066
- test: Ensure tests using timeout() fail reliably by @mitchgrout in #1055
- fix: Only call subcase_end currentSubcaseDepth times by @mitchgrout in #1070
- build: Allow including of both doctest.h and doctest/doctest.h by @mitchgrout in #1071
- build: Add a doctest.pc pkg-config file by @mortie in #865
- fix: Use gmtime_s if available by @mitchgrout in #1073
- ci: Drop gcc-4.8 from build matrix by @mitchgrout in #1075
- feat: Expand clang-format checks by @Repiteo in #1059
- feat: Provide stringification for container-like types by @mitchgrout in #1074
- chore: Remove references to Copyright.txt in CMake files by @mitchgrout in #1077
- fix: Rework SUBCASE traversal by @aozgaa in #1056
- fix: Resolve global lint suppressions up to clang-tidy-14 by @mitchgrout in #1076
- ci: Add clang-22 by @mitchgrout in #1078
- fix: Use LINE for anonymous symbols for clang-22 onwards by @mitchgrout in #1079
- ci: Update to clang-tidy-22 by @mitchgrout in #1043
- fix: Resolve global lint suppressions up to clang-tidy-22 by @mitchgrout in #1080
- feat: Allow conversions from std::string to doctest::String by @mitchgrout in #1081
- fix: Ensure all reporters are registered when using doctest_with_main by @mitchgrout in #1072
- doc: Add note around --sc not triggering nested subcases by @mitchgrout in #1082
- feat: add GENERATE macro by @aozgaa in #1047
- chore: Add .github/ISSUE_TEMPLATE/ templates by @mitchgrout in #1084
- chore: Remove .github/FUNDING.md by @mitchgrout in #1085
- fix: Add failure-related decorator support to JUnit by @mitchgrout in #1083
- chore: Remove funding references and links from README by @mitchgrout in #1087
- chore(release): v2.5.0 by @mitchgrout in #1086
- chore(sync): Merge dev-2.5.0 into master by @mitchgrout in #1089
New Contributors
- @severinstrobl made their first contribution in #901
- @gershnik made their first contribution in #866
- @RedBeard0531 made their first contribution in #924
- @mitchgrout made their first contribution in #932
- @Kaaserne made their first contribution in #934
- @Alex-PLACET made their first contribution in #957
- @Repiteo made their first contribution in #960
- @grandemk made their first contribution in #958
- @corngood made their first contribution in #965
- @zaucy made their first contribution in #797
- @G4m4 made their first contribution in #1024
- @nim65s made their first contribution in #953
- @aozgaa made their first contribution in #1046
- @mortie made their first contribution in #865
Full Changelog: v2.4.12...v2.5.0