Skip to content

Conversation

@alt-graph
Copy link
Member

This moves from the old header-only Catch2 version 2.x included in GUL14 to the newer 3.x family of the unit test framework. Accordingly, the header files that need to be included change.

This moves from the old header-only Catch2 version 2.x included in GUL14
to the newer 3.x family of the unit test framework. Accordingly, the
header files that need to be included change.

Signed-off-by: Lars Froehlich <lars.froehlich@desy.de>
[why]
This way we can avoid having to install it for CI runs.

Signed-off-by: Lars Froehlich <lars.froehlich@desy.de>
Signed-off-by: Lars Froehlich <lars.froehlich@desy.de>
[why]
We need modern support for wrap files without explicitly requesting a
fallback in the meson.build. So why not go to an up-to-date version?

Signed-off-by: Lars Froehlich <lars.froehlich@desy.de>
@alt-graph
Copy link
Member Author

This currently builds all of Catch2v3 in the CI runs. Once we drop Ubuntu 20.04, we can just pre-install the catch2 package.

Copy link
Contributor

@Finii Finii left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

debian/control has no Build-Depends on Catch2v3.

[why]
We now require Catch2 v3 from an external package for building the unit
test suite.

Proposed-by: Fini Jastrow <fini.jastrow@desy.de>
Signed-off-by: Lars Froehlich <lars.froehlich@desy.de>
@alt-graph
Copy link
Member Author

debian/control has no Build-Depends on Catch2v3.

Good point, added.

[why]
The precompiled library form of the Catch2 framework that we use was
introduced in Catch2 3.4.0-1 or something like that.

Proposed-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
Signed-off-by: Lars Froehlich <lars.froehlich@desy.de>
@Finii
Copy link
Contributor

Finii commented Mar 25, 2025

Sorry this seems all so complicated, but I believe it is good to get this right at one place before we reuse our 'pattern' throughout doocs.

This changes the build-depends clause from  "catch2 (>>3.4.0)" to
"catch2 (>=3.4.0) | libcatch2". Rationale (Fini):

"
Hmm, we have a problem here, out there is just this one package that
is an in-between one:

3.4.0-1build1: Only on Ubuntu, and there on 24.04 and 24.10.

    The header only catch2 packages were called catch2
    The library v3 version is destined to be called libcatch2
    There is a transitional package transmogrifying catch2 to libcatch2

On Ubuntu systems after 24.10 it is possible to install libcatch2 and
not have catch2 installed.

On Debian we do not have this break, and Catch2v3 is always available
as libcatch2.
"

Co-authored-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
Signed-off-by: Lars Froehlich <lars.froehlich@desy.de>
Copy link
Contributor

@Finii Finii left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I guess this is good to go.
The one comment has no practical impact I believe, because we have

... we have version 3.4.0-blahfasel which is of course > than 3.4.0 ;-)

[why]
To bring the requirement in sync with the one listed in the Debian
control file.

Proposed-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
Signed-off-by: Lars Froehlich <lars.froehlich@desy.de>
@alt-graph alt-graph merged commit c5c6f7d into main Mar 25, 2025
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants