Read-only mirrors. Development, issues and pull requests are on GitHub.

summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorLeitwolf2026-11-15 13:53:29 +0300
committerGitHub2026-11-15 13:53:29 +0300
commit8979c1caf2eee321cf497671805d2177980c421e (patch)
tree833778532f8b9bdc637d8768f9dd080b82d647a1
parentac438d0c34d89e14d51aebe3b0314c7e38000bb8 (diff)
parent74df225e5d893a07e7bf07f0d82eea580507489b (diff)
downloadcatch3-0.4.0.tar.gz
Merge pull request #43 from Progmasoft/release/catch3-0.4.0HEADcatch3-0.4.0devel
Release Catch3 0.4.0
-rw-r--r--.markdownlint.yaml9
-rw-r--r--CMakeLists.txt2
-rw-r--r--MODULE.bazel2
-rw-r--r--docs/release-notes.md28
-rw-r--r--extras/catch_amalgamated.cpp4
-rw-r--r--extras/catch_amalgamated.hpp2
-rw-r--r--extras/catch_amalgamated_third_party.hpp2
-rw-r--r--meson.build2
-rw-r--r--src/Progmasoft/Catch3/Version.hpp2
-rw-r--r--xmake.lua2
10 files changed, 46 insertions, 9 deletions
diff --git a/.markdownlint.yaml b/.markdownlint.yaml
new file mode 100644
index 00000000..50376e40
--- /dev/null
+++ b/.markdownlint.yaml
@@ -0,0 +1,9 @@
+# SPDX-FileCopyrightText: 2026 Progmasoft <support@progmasoft.com>
+# SPDX-License-Identifier: MPL-2.0 WITH AdditionRef-Progmasoft-Exception-2.0
+
+# The documents keep Catch2's style: an anchor at the top of each page and a
+# contents list whose lines end in <br>.
+MD033:
+ allowed_elements:
+ - a
+ - br
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 376e47d6..890d0be9 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -37,7 +37,7 @@ endif()
# The version is Catch3's; the Catch2 engine it is built on keeps its own in
# CATCH_VERSION_MAJOR and the other macros of Progmasoft/Catch3/EngineVersionMacros.hpp.
project(Catch3
- VERSION 0.3.0.2
+ VERSION 0.4.0
LANGUAGES CXX
HOMEPAGE_URL "https://github.com/Progmasoft/catch3"
DESCRIPTION "A C++ test framework with a Catch2-compatible API, a parallel runner, property testing and snapshots."
diff --git a/MODULE.bazel b/MODULE.bazel
index c4196428..6e0fb394 100644
--- a/MODULE.bazel
+++ b/MODULE.bazel
@@ -1,4 +1,4 @@
-module(name = "catch3", version = "0.3.0.2")
+module(name = "catch3", version = "0.4.0")
bazel_dep(name = "bazel_skylib", version = "1.9.0")
bazel_dep(name = "rules_cc", version = "0.2.17")
diff --git a/docs/release-notes.md b/docs/release-notes.md
index 4e2dea80..a250fc95 100644
--- a/docs/release-notes.md
+++ b/docs/release-notes.md
@@ -7,6 +7,7 @@ based on Catch2 3.16.1; Catch2's own history is in
[its release notes](https://github.com/catchorg/Catch2/blob/devel/docs/release-notes.md).
**Contents**<br>
+[0.4.0](#040)<br>
[0.3.0.2](#0302)<br>
[0.3.0.1](#0301)<br>
[0.3.0](#030)<br>
@@ -14,6 +15,33 @@ based on Catch2 3.16.1; Catch2's own history is in
[0.1.0](#010)<br>
+## 0.4.0
+
+Released 2026-11-15.
+
+Versions of Catch3 have three numbers again from this release on:
+`MAJOR.MINOR.PATCH`, as Semantic Versioning writes them.
+
+### The Catch3 runner
+
+* `--coverage=DIR` runs every test in a process of its own and keeps what each
+ one reached: `DIR/coverage.json` maps every test to the lines it ran, and
+ `DIR/coverage.lcov` is the run combined. It reads LLVM source-based coverage
+ (Clang) and gcov (GCC). See [Per-test coverage](progmasoft-runner.md#per-test-coverage).
+* Workers and the processes the runner starts no longer inherit the variables
+ whose names look like secrets (`TOKEN`, `SECRET`, `PASSWORD` and the like).
+ `--pass-env=NAME`, which can be repeated, or `"pass-env"` in the project
+ configuration hands one to the tests that need it.
+ See [Environment variables](progmasoft-runner.md#environment-variables).
+
+### Tools
+
+* The repository tools are C++17 and run through Bazel:
+ `//tools:check`, `//tools:amalgamate`, `//tools:version`,
+ `//tools:release_notes`, `//tools:repo_info` and `//tools:third_party`.
+ They replace the Python scripts of earlier releases.
+
+
## 0.3.0.2
Released 2026-11-01.
diff --git a/extras/catch_amalgamated.cpp b/extras/catch_amalgamated.cpp
index 4b928849..3f98cd4a 100644
--- a/extras/catch_amalgamated.cpp
+++ b/extras/catch_amalgamated.cpp
@@ -6,7 +6,7 @@
// SPDX-License-Identifier: BSL-1.0
-// Catch3 v0.3.0.2, on the Catch2 v3.16.1 engine
+// Catch3 v0.4.0, on the Catch2 v3.16.1 engine
// ----------------------------------------------------------
// This file is an amalgamation of multiple different files.
// You probably shouldn't edit it directly.
@@ -2391,7 +2391,7 @@ namespace Progmasoft::Catch3
namespace Progmasoft::Catch3
{
/// The version of Catch3: of its runner, its tools and its formats.
- inline constexpr const char *kVersion = "0.3.0.2";
+ inline constexpr const char *kVersion = "0.4.0";
} // namespace Progmasoft::Catch3
// Copyright (c) 2026 Progmasoft.
// SPDX-License-Identifier: MPL-2.0 WITH AdditionRef-Progmasoft-Exception-2.0
diff --git a/extras/catch_amalgamated.hpp b/extras/catch_amalgamated.hpp
index fad2f28c..0cee5196 100644
--- a/extras/catch_amalgamated.hpp
+++ b/extras/catch_amalgamated.hpp
@@ -6,7 +6,7 @@
// SPDX-License-Identifier: BSL-1.0
-// Catch3 v0.3.0.2, on the Catch2 v3.16.1 engine
+// Catch3 v0.4.0, on the Catch2 v3.16.1 engine
// ----------------------------------------------------------
// This file is an amalgamation of multiple different files.
// You probably shouldn't edit it directly.
diff --git a/extras/catch_amalgamated_third_party.hpp b/extras/catch_amalgamated_third_party.hpp
index 5a3aa21c..b6bb783b 100644
--- a/extras/catch_amalgamated_third_party.hpp
+++ b/extras/catch_amalgamated_third_party.hpp
@@ -1,4 +1,4 @@
-// Catch3 v0.3.0.2: yyjson and pugixml for catch_amalgamated.cpp
+// Catch3 v0.4.0: yyjson and pugixml for catch_amalgamated.cpp
// ----------------------------------------------------------
// This file is an amalgamation of src/Progmasoft/Runner/Yyjson.inl,
// src/Progmasoft/PugiXml.inl and the libraries they include from
diff --git a/meson.build b/meson.build
index 1c3699e9..c8b816d7 100644
--- a/meson.build
+++ b/meson.build
@@ -8,7 +8,7 @@
project(
'catch3',
'cpp',
- version: '0.3.0.2',
+ version: '0.4.0',
license: ['BSL-1.0', 'MPL-2.0 WITH AdditionRef-Progmasoft-Exception-2.0'],
# Meson 1.1 added clang-cl support for the C++ modes used by Progmasoft tests.
meson_version: '>=1.1.0',
diff --git a/src/Progmasoft/Catch3/Version.hpp b/src/Progmasoft/Catch3/Version.hpp
index e83874f3..33ad6346 100644
--- a/src/Progmasoft/Catch3/Version.hpp
+++ b/src/Progmasoft/Catch3/Version.hpp
@@ -5,5 +5,5 @@
namespace Progmasoft::Catch3
{
/// The version of Catch3: of its runner, its tools and its formats.
- inline constexpr const char *kVersion = "0.3.0.2";
+ inline constexpr const char *kVersion = "0.4.0";
} // namespace Progmasoft::Catch3
diff --git a/xmake.lua b/xmake.lua
index 7fd7075f..75542e56 100644
--- a/xmake.lua
+++ b/xmake.lua
@@ -2,7 +2,7 @@
-- SPDX-License-Identifier: MPL-2.0 WITH AdditionRef-Progmasoft-Exception-2.0
set_project("Catch3")
-set_version("0.3.0.2")
+set_version("0.4.0")
set_languages("cxx17")
set_warnings("all")