<feed xmlns='http://www.w3.org/2005/Atom'>
<title>catch3, branch feature/cpp-tools</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>Merge devel into feature/cpp-tools</title>
<updated>2026-11-01T21:16:57+00:00</updated>
<author>
<name>Leitwolf11</name>
</author>
<published>2026-11-01T21:16:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=3ed0fd930371823b6d44ae64d00dbd79e421a552'/>
<id>3ed0fd930371823b6d44ae64d00dbd79e421a552</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge pull request #33 from Progmasoft/release/catch3-0.3.0.2</title>
<updated>2026-11-01T21:14:33+00:00</updated>
<author>
<name>Leitwolf</name>
</author>
<published>2026-11-01T21:14:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=13324a043042110eba456424fa39c1334857ceaa'/>
<id>13324a043042110eba456424fa39c1334857ceaa</id>
<content type='text'>
Release Catch3 0.3.0.2</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Release Catch3 0.3.0.2</pre>
</div>
</content>
</entry>
<entry>
<title>Merge devel into the release branch</title>
<updated>2026-11-01T20:06:37+00:00</updated>
<author>
<name>Leitwolf11</name>
</author>
<published>2026-11-01T20:06:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=a428c3bf4760f062584ca1d32d4ece6777372f17'/>
<id>a428c3bf4760f062584ca1d32d4ece6777372f17</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge pull request #35 from Progmasoft/fix/amalgamate-mocks</title>
<updated>2026-11-01T20:05:07+00:00</updated>
<author>
<name>Leitwolf</name>
</author>
<published>2026-11-01T20:05:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=f6f617591cc0a6c4fd2b50999257fe902a339416'/>
<id>f6f617591cc0a6c4fd2b50999257fe902a339416</id>
<content type='text'>
Carry mocks in the amalgamated files</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Carry mocks in the amalgamated files</pre>
</div>
</content>
</entry>
<entry>
<title>Answer the review of the tools</title>
<updated>2026-11-01T19:58:30+00:00</updated>
<author>
<name>Leitwolf11</name>
</author>
<published>2026-11-01T19:58:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=e66db1cf17714be2ebfeab37670ef3d8965fc7cc'/>
<id>e66db1cf17714be2ebfeab37670ef3d8965fc7cc</id>
<content type='text'>
repo_info starts Git in the checkout with fixed commands, so a shell never
reads a path, reports an unknown state as null rather than clean, and
counts only files it can start. third_party reads every archive before
it changes a file and refuses two modes. version checks that the sources
make a distribution, computes every place before writing any, and
release_notes finds a three-number heading for a version with D = 0.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
repo_info starts Git in the checkout with fixed commands, so a shell never
reads a path, reports an unknown state as null rather than clean, and
counts only files it can start. third_party reads every archive before
it changes a file and refuses two modes. version checks that the sources
make a distribution, computes every place before writing any, and
release_notes finds a three-number heading for a version with D = 0.
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'devel' into fix/amalgamate-mocks</title>
<updated>2026-11-01T19:19:29+00:00</updated>
<author>
<name>Leitwolf</name>
</author>
<published>2026-11-01T19:19:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=c559308d862fe3f1457d0962cfb8fcbc3b3c6b2d'/>
<id>c559308d862fe3f1457d0962cfb8fcbc3b3c6b2d</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Name the Bazel targets of the tools in snake_case</title>
<updated>2026-11-01T19:19:02+00:00</updated>
<author>
<name>Leitwolf11</name>
</author>
<published>2026-11-01T19:19:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=e32c9d107274f42b9cca700475404c80e96533c5'/>
<id>e32c9d107274f42b9cca700475404c80e96533c5</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge pull request #34 from Progmasoft/fix/cmake-install</title>
<updated>2026-11-01T19:16:28+00:00</updated>
<author>
<name>Leitwolf</name>
</author>
<published>2026-11-01T19:16:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=ba168615b03a2c8a5d763eb455340b303d3b3f1a'/>
<id>ba168615b03a2c8a5d763eb455340b303d3b3f1a</id>
<content type='text'>
Install again with CMake</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Install again with CMake</pre>
</div>
</content>
</entry>
<entry>
<title>Move the tools from Python to C++17 and Bazel</title>
<updated>2026-11-01T19:16:14+00:00</updated>
<author>
<name>Leitwolf11</name>
</author>
<published>2026-11-01T19:16:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=da3c9d0880dbd4a74e0e43f092d10f5ae42c5043'/>
<id>da3c9d0880dbd4a74e0e43f092d10f5ae42c5043</id>
<content type='text'>
The scripts in use become programs run with `bazelisk run //tools:&lt;tool&gt;`,
and arguments follow `--`:

  amalgamate     the single-file distribution; --check only compares it
  check          licenses, convenience headers, header guards, file names,
                 versions and whether the distribution is up to date
  third-party    compares third_party/ with its archives, or writes it
  version        prints the version, or moves every place that states it
  release-notes  prints a section of the release notes
  repo-info      reports the checkout and the tools on PATH; --json writes
                 it through yyjson, with the fields of Tala's repo-info

amalgamate writes what the Python script wrote, byte for byte, except for
the time of generation. That line is gone so that the output is
deterministic and --check can compare it.

MODULE.bazel now pins the archives of third_party/ by version and sha256,
so Bazel fetches and checks them instead of a tool of ours, and Renovate
reads the versions there.

Scripts nobody used are gone: fixWhitespace, updateDocumentSnippets,
buildAndTest, and updateDocumentToC, which rewrote unrelated documents.
CheckConvenienceHeaders leaves CTest, since //tools:check runs it in CI.
The Python of tests/TestScripts stays: those are tests, not tools.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The scripts in use become programs run with `bazelisk run //tools:&lt;tool&gt;`,
and arguments follow `--`:

  amalgamate     the single-file distribution; --check only compares it
  check          licenses, convenience headers, header guards, file names,
                 versions and whether the distribution is up to date
  third-party    compares third_party/ with its archives, or writes it
  version        prints the version, or moves every place that states it
  release-notes  prints a section of the release notes
  repo-info      reports the checkout and the tools on PATH; --json writes
                 it through yyjson, with the fields of Tala's repo-info

amalgamate writes what the Python script wrote, byte for byte, except for
the time of generation. That line is gone so that the output is
deterministic and --check can compare it.

MODULE.bazel now pins the archives of third_party/ by version and sha256,
so Bazel fetches and checks them instead of a tool of ours, and Renovate
reads the versions there.

Scripts nobody used are gone: fixWhitespace, updateDocumentSnippets,
buildAndTest, and updateDocumentToC, which rewrote unrelated documents.
CheckConvenienceHeaders leaves CTest, since //tools:check runs it in CI.
The Python of tests/TestScripts stays: those are tests, not tools.
</pre>
</div>
</content>
</entry>
<entry>
<title>Carry mocks in the amalgamated files</title>
<updated>2026-11-01T19:05:27+00:00</updated>
<author>
<name>Leitwolf11</name>
</author>
<published>2026-11-01T19:05:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=241b5567d09d59e82bff18287c32ada480deb8c0'/>
<id>241b5567d09d59e82bff18287c32ada480deb8c0</id>
<content type='text'>
Mock.hpp goes into catch_amalgamated.hpp, since tests use it directly, and
Mock.cpp into catch_amalgamated.cpp. The test of the amalgamated files
now uses a mock, so a file left out fails it.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Mock.hpp goes into catch_amalgamated.hpp, since tests use it directly, and
Mock.cpp into catch_amalgamated.cpp. The test of the amalgamated files
now uses a mock, so a file left out fails it.
</pre>
</div>
</content>
</entry>
</feed>
