<feed xmlns='http://www.w3.org/2005/Atom'>
<title>catch3/tools, branch docs/describe-catch3</title>
<subtitle>Progmasoft Catch3: an independently maintained C++17 test framework with a parallel runner, property checks, snapshots and structured results.</subtitle>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/'/>
<entry>
<title>Remove what Catch2's maintainers left that is not ours</title>
<updated>2026-10-24T16:07:10+00:00</updated>
<author>
<name>Leitwolf11</name>
</author>
<published>2026-10-24T16:07:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=a2edf60b9f410d26485ac7c0492870a0905f9545'/>
<id>a2edf60b9f410d26485ac7c0492870a0905f9545</id>
<content type='text'>
Catch3 is maintained by Progmasoft, but the repository still carried
Catch2's funding links, its maintainer list and GPG keys, a Code of Conduct
contact at a Catch2 maintainer's address, its lists of users, its release
process and release scripts, its AppVeyor configuration and its logos.

- Removed FUNDING.yml, MAINTAINERS.md, appveyor.yml with the AppVeyor and
  OpenCppCoverage helpers, Catch2's user lists, why-catch, release process
  and deprecations pages, its two logos and the major/minor/patch release
  scripts. releaseCommon.py keeps only what the amalgamation reads.
- The Code of Conduct sends reports to support@progmasoft.com.
- contributing.md and release-notes.md are written for Catch3; Catch2's
  release history is linked upstream.
- CMake, pkg-config and Doxygen name Catch3 and its repository; the
  amalgamated files say which Catch3 version and which Catch2 engine they
  come from.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Catch3 is maintained by Progmasoft, but the repository still carried
Catch2's funding links, its maintainer list and GPG keys, a Code of Conduct
contact at a Catch2 maintainer's address, its lists of users, its release
process and release scripts, its AppVeyor configuration and its logos.

- Removed FUNDING.yml, MAINTAINERS.md, appveyor.yml with the AppVeyor and
  OpenCppCoverage helpers, Catch2's user lists, why-catch, release process
  and deprecations pages, its two logos and the major/minor/patch release
  scripts. releaseCommon.py keeps only what the amalgamation reads.
- The Code of Conduct sends reports to support@progmasoft.com.
- contributing.md and release-notes.md are written for Catch3; Catch2's
  release history is linked upstream.
- CMake, pkg-config and Doxygen name Catch3 and its repository; the
  amalgamated files say which Catch3 version and which Catch2 engine they
  come from.
</pre>
</div>
</content>
</entry>
<entry>
<title>Replace Catch2's runner with the Catch3 runner</title>
<updated>2026-10-23T20:25:41+00:00</updated>
<author>
<name>Leitwolf11</name>
</author>
<published>2026-10-23T20:25:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=93d4e7dbebab867e0a7f59fc25308460a7a76280'/>
<id>93d4e7dbebab867e0a7f59fc25308460a7a76280</id>
<content type='text'>
Catch3 keeps Catch2's API for writing tests (test cases, sections,
assertions, matchers, generators, listeners, benchmarks) and replaces its
session, command line and reporters with a runner of its own.

The runner starts the test binary again as worker processes that take the
next test when they are free. A crash, an exit or a hang ends one test, not
the run. On top of that it adds:

- retries that tell deterministic, flaky and order-dependent failures
  apart, and a bisection that names the test leaving state behind;
- a history of verdicts and durations, kept under a file lock, that drives
  automatic quarantine, adaptive time limits, predictive ordering,
  incremental runs, failure replay and analytics;
- selection by change, past failure or prediction, dependency closure,
  and sharding by a stable hash or by recorded durations;
- tags for serial and isolated tests, shared resources, dependencies,
  time limits and retries;
- a failure category, a signature, an analysis and a replay command for
  every failure;
- console, JUnit XML (with flakyFailure and rerunFailure), JSON and Chrome
  trace reports, and a versioned discovery listing (--list=json);
- a temporary directory per test (TMPDIR, TMP, TEMP and
  TestTemporaryDirectory());
- Bazel's test environment: XML output file, test filter, sharding, seed,
  premature exit file and undeclared outputs.

The command line is parsed by a hand-written, typed parser. Catch::Session
remains as a thin facade over the runner for custom main functions.

The result model in Progmasoft/Catch3/Results.hpp was rewritten around
tests and attempts, and the JUnit writer now writes it. The property
engine's example database is updated under a file lock with an atomic
rename, so parallel workers can write it at the same time.

Removed: Clara, the command-line and reporter-spec parsers, every reporter
and CATCH_REGISTER_REPORTER, listing, text flow, console colour and width,
the JSON and XML writers, sharding in the test registry, approval tests and
their baselines, Conan packaging, and the unused third_party/clara.hpp.
Listeners keep working; reporters' list and skip events are gone.

The Catch2 library is now compiled as C++20; code that includes only
Catch2's headers still needs C++14. Duplicate test cases are still refused
at start-up. Version 0.3.0.

ExtraTests now turn exceptions off for clang-cl with MSVC-style options,
which -fno-exceptions did not do.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Catch3 keeps Catch2's API for writing tests (test cases, sections,
assertions, matchers, generators, listeners, benchmarks) and replaces its
session, command line and reporters with a runner of its own.

The runner starts the test binary again as worker processes that take the
next test when they are free. A crash, an exit or a hang ends one test, not
the run. On top of that it adds:

- retries that tell deterministic, flaky and order-dependent failures
  apart, and a bisection that names the test leaving state behind;
- a history of verdicts and durations, kept under a file lock, that drives
  automatic quarantine, adaptive time limits, predictive ordering,
  incremental runs, failure replay and analytics;
- selection by change, past failure or prediction, dependency closure,
  and sharding by a stable hash or by recorded durations;
- tags for serial and isolated tests, shared resources, dependencies,
  time limits and retries;
- a failure category, a signature, an analysis and a replay command for
  every failure;
- console, JUnit XML (with flakyFailure and rerunFailure), JSON and Chrome
  trace reports, and a versioned discovery listing (--list=json);
- a temporary directory per test (TMPDIR, TMP, TEMP and
  TestTemporaryDirectory());
- Bazel's test environment: XML output file, test filter, sharding, seed,
  premature exit file and undeclared outputs.

The command line is parsed by a hand-written, typed parser. Catch::Session
remains as a thin facade over the runner for custom main functions.

The result model in Progmasoft/Catch3/Results.hpp was rewritten around
tests and attempts, and the JUnit writer now writes it. The property
engine's example database is updated under a file lock with an atomic
rename, so parallel workers can write it at the same time.

Removed: Clara, the command-line and reporter-spec parsers, every reporter
and CATCH_REGISTER_REPORTER, listing, text flow, console colour and width,
the JSON and XML writers, sharding in the test registry, approval tests and
their baselines, Conan packaging, and the unused third_party/clara.hpp.
Listeners keep working; reporters' list and skip events are gone.

The Catch2 library is now compiled as C++20; code that includes only
Catch2's headers still needs C++14. Duplicate test cases are still refused
at start-up. Version 0.3.0.

ExtraTests now turn exceptions off for clang-cl with MSVC-style options,
which -fno-exceptions did not do.
</pre>
</div>
</content>
</entry>
<entry>
<title>Validate upstream BSL and Progmasoft MPL headers separately in Catch3 CI</title>
<updated>2026-09-24T21:56:24+00:00</updated>
<author>
<name>Leitwolf11</name>
</author>
<published>2026-09-24T21:56:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=ecf89607b787c10302c9e31b06ecda104791a617'/>
<id>ecf89607b787c10302c9e31b06ecda104791a617</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Keep required Visual Studio test settings tracked for CI</title>
<updated>2026-09-24T20:59:17+00:00</updated>
<author>
<name>Leitwolf11</name>
</author>
<published>2026-09-24T20:59:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=fa9c41a6c634aa7ac5a5e98c425e5be2e4b9b62f'/>
<id>fa9c41a6c634aa7ac5a5e98c425e5be2e4b9b62f</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Refresh Catch3 README, logo, and C++ formatting profile</title>
<updated>2026-09-24T20:54:59+00:00</updated>
<author>
<name>Leitwolf11</name>
</author>
<published>2026-09-24T20:54:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=e6a9c459d033ff5e79ff4d7928e419b032e6f717'/>
<id>e6a9c459d033ff5e79ff4d7928e419b032e6f717</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>chore: fix some typos in comments (#3048)</title>
<updated>2026-01-03T15:05:18+00:00</updated>
<author>
<name>bigmoonbit</name>
</author>
<published>2026-01-03T15:05:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=cd4fc88e2a50b59b117a974e69366232243d4f56'/>
<id>cd4fc88e2a50b59b117a974e69366232243d4f56</id>
<content type='text'>
Signed-off-by: bigmoonbit &lt;bigmoonbit@outlook.com&gt;
Co-authored-by: Martin Hořeňovský &lt;martin.horenovsky@gmail.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Signed-off-by: bigmoonbit &lt;bigmoonbit@outlook.com&gt;
Co-authored-by: Martin Hořeňovský &lt;martin.horenovsky@gmail.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>Release script also recognizes version placeholders in 'vX.Y.Z' form</title>
<updated>2025-07-23T22:02:48+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2025-07-23T22:02:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=900a6d55167d415736c8233354e40f8f07a35d36'/>
<id>900a6d55167d415736c8233354e40f8f07a35d36</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>fix(python): fix invalid escape sequences</title>
<updated>2025-06-24T21:32:27+00:00</updated>
<author>
<name>Eisuke Kawashima</name>
</author>
<published>2025-06-09T01:10:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=ceed26842b3b3f93523998f7adb672672c7c2d8f'/>
<id>ceed26842b3b3f93523998f7adb672672c7c2d8f</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Use Start-BitsTransfer for downloading OpenCppCoverage instead</title>
<updated>2025-05-02T20:58:36+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2025-04-29T14:26:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=74fcff6e5b190fb833a231b7f7c1829e3c3ac54d'/>
<id>74fcff6e5b190fb833a231b7f7c1829e3c3ac54d</id>
<content type='text'>
The old `Start-FileDownload` was no longer recognized by the pswh
version on my local machine, this updates the OpenCppCoverage install
script to use a still usable cmdlet.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The old `Start-FileDownload` was no longer recognized by the pswh
version on my local machine, this updates the OpenCppCoverage install
script to use a still usable cmdlet.
</pre>
</div>
</content>
</entry>
<entry>
<title>Modernize tools/misc/CMakeLists.txt</title>
<updated>2025-04-27T04:46:13+00:00</updated>
<author>
<name>Chris Thrasher</name>
</author>
<published>2025-04-26T15:24:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=371b11b5a8a98ab75a490b4e3919e9968210d493'/>
<id>371b11b5a8a98ab75a490b4e3919e9968210d493</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
