<feed xmlns='http://www.w3.org/2005/Atom'>
<title>catch3, branch release/catch3-next</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>Release Catch3 0.3.0.1</title>
<updated>2026-11-01T13:20:17+00:00</updated>
<author>
<name>Leitwolf11</name>
</author>
<published>2026-11-01T13:20:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=64e7fffb605cc355d258f4896c49cdec6127ed6b'/>
<id>64e7fffb605cc355d258f4896c49cdec6127ed6b</id>
<content type='text'>
Versions have four numbers from this release on.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Versions have four numbers from this release on.
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge pull request #28 from Progmasoft/feature/result-import</title>
<updated>2026-11-01T12:29:13+00:00</updated>
<author>
<name>Leitwolf</name>
</author>
<published>2026-11-01T12:29:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=b7fe8c2061c98e7aec886e9b1e6282f48c3b5456'/>
<id>b7fe8c2061c98e7aec886e9b1e6282f48c3b5456</id>
<content type='text'>
Import the results of other test frameworks</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Import the results of other test frameworks</pre>
</div>
</content>
</entry>
<entry>
<title>Keep real failures visible when importing</title>
<updated>2026-11-01T11:48:55+00:00</updated>
<author>
<name>Leitwolf11</name>
</author>
<published>2026-11-01T11:48:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=569620dad14df7e13bb9fd31d256e9fd873ef6ec'/>
<id>569620dad14df7e13bb9fd31d256e9fd873ef6ec</id>
<content type='text'>
A review of the import found ways for a failure to disappear or for the
import to reach too far.

- CTRF's retryAttempts ends before the final attempt, which was dropped when
  its outcome matched the one before it.
- TAP names tests only within a stream, so a failure in one file and a pass
  under the same name in another merged into a flaky pass. The path given to
  --import is now the class of a stream's tests.
- A failure followed by a skip with the same identifier read as skipped.
- Directives are whole words: TODOING is not TODO. SKIPPED and SKIPPING stay
  directives, as harnesses treat them.
- Verdicts that alternate count as flaky only under an explicit
  --import-revision. HEAD says nothing about a dirty checkout or a report from
  another one, and two such events could quarantine a real failure.
- --import-name no longer redirects the history of a normal test run.
- Importing does not depend on the tests registered in the binary.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
A review of the import found ways for a failure to disappear or for the
import to reach too far.

- CTRF's retryAttempts ends before the final attempt, which was dropped when
  its outcome matched the one before it.
- TAP names tests only within a stream, so a failure in one file and a pass
  under the same name in another merged into a flaky pass. The path given to
  --import is now the class of a stream's tests.
- A failure followed by a skip with the same identifier read as skipped.
- Directives are whole words: TODOING is not TODO. SKIPPED and SKIPPING stay
  directives, as harnesses treat them.
- Verdicts that alternate count as flaky only under an explicit
  --import-revision. HEAD says nothing about a dirty checkout or a report from
  another one, and two such events could quarantine a real failure.
- --import-name no longer redirects the history of a normal test run.
- Importing does not depend on the tests registered in the binary.
</pre>
</div>
</content>
</entry>
<entry>
<title>Import the results of other test frameworks</title>
<updated>2026-11-01T11:23:09+00:00</updated>
<author>
<name>Leitwolf11</name>
</author>
<published>2026-11-01T11:23:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=1db203d56b7c71db3d80b477da1ad49e9ae46468'/>
<id>1db203d56b7c71db3d80b477da1ad49e9ae46468</id>
<content type='text'>
Tests Catch3 does not run had no history, flaky detection or quarantine.
--import=FILE reads a report instead of running tests and sends it through
the analysis, history and reports of a run: JUnit with Surefire's reruns,
xUnit.net v2, TRX, TAP 12 to 14, CTRF, Catch3's own --json report and
catch3-results, a small JSON Lines format for tools with none of these.

Results that share an identifier are attempts at one test, so a report of a
rerun gives a flaky test. --import-revision says what was tested: a verdict
that changes on one revision also counts as flaky. --import-name keeps the
results in a history of their own, which --analytics reads too. A TAP stream
that ends early fails instead of reading as a run that passed.

The amalgamation script now accepts a relative include of the third-party
wrappers, because pugixml is included from a second directory.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Tests Catch3 does not run had no history, flaky detection or quarantine.
--import=FILE reads a report instead of running tests and sends it through
the analysis, history and reports of a run: JUnit with Surefire's reruns,
xUnit.net v2, TRX, TAP 12 to 14, CTRF, Catch3's own --json report and
catch3-results, a small JSON Lines format for tools with none of these.

Results that share an identifier are attempts at one test, so a report of a
rerun gives a flaky test. --import-revision says what was tested: a verdict
that changes on one revision also counts as flaky. --import-name keeps the
results in a history of their own, which --analytics reads too. A TAP stream
that ends early fails instead of reading as a run that passed.

The amalgamation script now accepts a relative include of the third-party
wrappers, because pugixml is included from a second directory.
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge pull request #27 from Progmasoft/release/catch3-0.3.0</title>
<updated>2026-11-01T04:28:51+00:00</updated>
<author>
<name>Leitwolf</name>
</author>
<published>2026-11-01T04:28:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=1559307a6ac7731ffd6a8e28147552b3987dbd93'/>
<id>1559307a6ac7731ffd6a8e28147552b3987dbd93</id>
<content type='text'>
Release Catch3 0.3.0</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Release Catch3 0.3.0</pre>
</div>
</content>
</entry>
<entry>
<title>Release Catch3 0.3.0</title>
<updated>2026-11-01T04:05:43+00:00</updated>
<author>
<name>Leitwolf11</name>
</author>
<published>2026-11-01T04:05:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=9cbae73cf68787fb0a55693db0a5782979930750'/>
<id>9cbae73cf68787fb0a55693db0a5782979930750</id>
<content type='text'>
The release notes get their date and name the tag prefix Catch3 uses from
now on. Every other version location already says 0.3.0; MODULE.bazel was
the one left.

Co-Authored-By: Claude Opus 5.5 &lt;noreply@anthropic.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The release notes get their date and name the tag prefix Catch3 uses from
now on. Every other version location already says 0.3.0; MODULE.bazel was
the one left.

Co-Authored-By: Claude Opus 5.5 &lt;noreply@anthropic.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge pull request #26 from Progmasoft/chore/cpp17-descriptions</title>
<updated>2026-10-31T22:39:21+00:00</updated>
<author>
<name>Leitwolf</name>
</author>
<published>2026-10-31T22:39:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=654b0158978b65caa27925b02aa8a8d228e2f386'/>
<id>654b0158978b65caa27925b02aa8a8d228e2f386</id>
<content type='text'>
Say C++17 everywhere the project describes itself</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Say C++17 everywhere the project describes itself</pre>
</div>
</content>
</entry>
<entry>
<title>Say C++17 everywhere the project describes itself</title>
<updated>2026-10-31T21:25:59+00:00</updated>
<author>
<name>Leitwolf11</name>
</author>
<published>2026-10-31T21:25:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=ff1da91edffa9ee887e9fe737fcd87ec540dfa60'/>
<id>ff1da91edffa9ee887e9fe737fcd87ec540dfa60</id>
<content type='text'>
The move to C++17 left a trail of older claims. The Runner's own
.clang-format still said c++20; the result is byte for byte the same under
either value. Premake and Xmake still compiled the library as C++20 and
the main library as C++14, which meant their CI jobs were not testing the
language the project promises. Both now use C++17 for every target.

The rest is text: the Meson pkg-config description claimed C++14, comments
in the CMake and Meson files explained requirements that no longer exist,
.clang-tidy gave C++14 as the reason for two exclusions, issue templates
asked for C++20 samples, and the example headers named -std=c++14 and
catch2-with-main. The release notes and the migration guide state the
C++17 minimum. Doxygen's brief called the project "Catch2's test API",
which presents it as Catch2. Meson declared only BSL-1.0; it now names both
licenses of the tree. The amalgamated files are regenerated.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The move to C++17 left a trail of older claims. The Runner's own
.clang-format still said c++20; the result is byte for byte the same under
either value. Premake and Xmake still compiled the library as C++20 and
the main library as C++14, which meant their CI jobs were not testing the
language the project promises. Both now use C++17 for every target.

The rest is text: the Meson pkg-config description claimed C++14, comments
in the CMake and Meson files explained requirements that no longer exist,
.clang-tidy gave C++14 as the reason for two exclusions, issue templates
asked for C++20 samples, and the example headers named -std=c++14 and
catch2-with-main. The release notes and the migration guide state the
C++17 minimum. Doxygen's brief called the project "Catch2's test API",
which presents it as Catch2. Meson declared only BSL-1.0; it now names both
licenses of the tree. The amalgamated files are regenerated.
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge pull request #25 from Progmasoft/fix/clang-cl-unused-function</title>
<updated>2026-10-31T21:19:54+00:00</updated>
<author>
<name>Leitwolf</name>
</author>
<published>2026-10-31T21:19:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=42c68725c816963ec6529dd635d5aaaac23b1c05'/>
<id>42c68725c816963ec6529dd635d5aaaac23b1c05</id>
<content type='text'>
Keep the unused operator quiet under clang-cl too</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Keep the unused operator quiet under clang-cl too</pre>
</div>
</content>
</entry>
<entry>
<title>Keep the unused operator quiet under clang-cl too</title>
<updated>2026-10-31T20:43:08+00:00</updated>
<author>
<name>Leitwolf11</name>
</author>
<published>2026-10-31T20:43:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=a22163b099e8a3834fb0427ced4e03e858ad3ea5'/>
<id>a22163b099e8a3834fb0427ced4e03e858ad3ea5</id>
<content type='text'>
The test silenced -Wunused-function behind __GNUC__, which clang-cl does not
define, so that build printed the warning.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The test silenced -Wunused-function behind __GNUC__, which clang-cl does not
define, so that build printed the warning.
</pre>
</div>
</content>
</entry>
</feed>
