Bug 1786881 - catch-3.3.1 is available
Summary: catch-3.3.1 is available
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: catch
Version: rawhide
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Tom Hughes
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
: 1957535 (view as bug list)
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2019-12-29 00:42 UTC by Upstream Release Monitoring
Modified: 2023-03-11 03:06 UTC (History)
4 users (show)

Fixed In Version: catch-3.3.2-2.fc38
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2023-03-11 03:06:12 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)
Update to 3.1.0 (#1786881) (1.09 KB, patch)
2022-07-17 22:58 UTC, Upstream Release Monitoring
no flags Details | Diff
Update to 3.1.0 (#1786881) (1.05 KB, patch)
2022-10-16 19:31 UTC, Upstream Release Monitoring
no flags Details | Diff
Update to 3.1.1 (#1786881) (1.05 KB, patch)
2022-10-19 05:38 UTC, Upstream Release Monitoring
no flags Details | Diff
Update to 3.2.0 (#1786881) (1.05 KB, patch)
2022-11-17 01:55 UTC, Upstream Release Monitoring
no flags Details | Diff
Update to 3.2.1 (#1786881) (1.05 KB, patch)
2022-12-10 11:01 UTC, Upstream Release Monitoring
no flags Details | Diff
Update to 3.3.0 (#1786881) (965 bytes, patch)
2023-01-23 02:27 UTC, Upstream Release Monitoring
no flags Details | Diff
Update to 3.3.1 (#1786881) (965 bytes, patch)
2023-01-30 04:05 UTC, Upstream Release Monitoring
no flags Details | Diff

Description Upstream Release Monitoring 2019-12-29 00:42:03 UTC
Latest upstream release: 3.0.0-preview1
Current version/release in rawhide: 2.11.0-1.fc32
URL: https://github.com/catchorg/Catch2

Please consult the package updates policy before you issue an update to a stable branch: https://fedoraproject.org/wiki/Updates_Policy


More information about the service that created this bug can be found at: https://fedoraproject.org/wiki/Upstream_release_monitoring


Please keep in mind that with any upstream change, there may also be packaging changes that need to be made. Specifically, please remember that it is your responsibility to review the new version to ensure that the licensing is still correct and that no non-free or legally problematic items have been added upstream.


Based on the information from anitya: https://release-monitoring.org/project/7680/

Comment 1 Upstream Release Monitoring 2019-12-29 00:42:06 UTC
An HTTP error occurred downloading the package's new Source URLs: Getting https://github.com/philsquared/Catch/archive/v3.0.0/catch-3.0.0.tar.gz to ./catch-3.0.0.tar.gz

Comment 2 Ben Beasley 2022-02-26 18:50:17 UTC
This one’s going to be fun once it actually lands:

- Might end up being confusingly “Catch2 version 3”?
- Switches from single-header to upstream supporting only use as a static library

For now, I don’t think we want bugs filed for preview releases, so I’ve adjusted the version filter at https://release-monitoring.org/project/7680/

Comment 3 Upstream Release Monitoring 2022-05-18 04:19:34 UTC
Latest upstream release: 3.0.1
Current version/release in rawhide: 2.13.8-2.fc37
URL: https://github.com/catchorg/Catch2

Please consult the package updates policy before you issue an update to a stable branch: https://docs.fedoraproject.org/en-US/fesco/Updates_Policy/


More information about the service that created this bug can be found at: https://fedoraproject.org/wiki/Upstream_release_monitoring


Please keep in mind that with any upstream change, there may also be packaging changes that need to be made. Specifically, please remember that it is your responsibility to review the new version to ensure that the licensing is still correct and that no non-free or legally problematic items have been added upstream.


Based on the information from Anitya: https://release-monitoring.org/project/7680/

Comment 4 Upstream Release Monitoring 2022-05-18 04:19:38 UTC
Scratch build failed. Details below:

GenericError: File upload failed: cli-build/1652847577.0519826.kKXMmKHX/catch-3.0.1-1.fc34.src.rpm
Traceback:
  File "/usr/local/lib/python3.9/site-packages/hotness/use_cases/package_scratch_build_use_case.py", line 56, in build
    result = self.builder.build(request.package, request.opts)
  File "/usr/local/lib/python3.9/site-packages/hotness/builders/koji.py", line 198, in build
    output["build_id"] = self._scratch_build(session, package.name, srpm)
  File "/usr/local/lib/python3.9/site-packages/hotness/builders/koji.py", line 451, in _scratch_build
    session.uploadWrapper(source, serverdir)
  File "/usr/lib/python3.9/site-packages/koji/__init__.py", line 3053, in uploadWrapper
    self.fastUpload(localfile, path, name, callback, blocksize, overwrite, volume=volume)
  File "/usr/lib/python3.9/site-packages/koji/__init__.py", line 2988, in fastUpload
    raise GenericError("File upload failed: %s/%s" % (path, name))

If you think this issue is caused by some bug in the-new-hotness, please report it on the-new-hotness issue tracker: https://github.com/fedora-infra/the-new-hotness/issues

Comment 5 Ben Beasley 2022-05-18 11:38:07 UTC
*** Bug 1957535 has been marked as a duplicate of this bug. ***

Comment 6 Upstream Release Monitoring 2022-07-17 22:58:27 UTC
Releases retrieved: 3.1.0
Upstream release that is considered latest: 3.1.0
Current version/release in rawhide: 2.13.8-2.fc37
URL: https://github.com/catchorg/Catch2

Please consult the package updates policy before you issue an update to a stable branch: https://docs.fedoraproject.org/en-US/fesco/Updates_Policy/


More information about the service that created this bug can be found at: https://fedoraproject.org/wiki/Upstream_release_monitoring


Please keep in mind that with any upstream change, there may also be packaging changes that need to be made. Specifically, please remember that it is your responsibility to review the new version to ensure that the licensing is still correct and that no non-free or legally problematic items have been added upstream.


Based on the information from Anitya: https://release-monitoring.org/project/7680/


To change the monitoring settings for the project, please visit:
https://src.fedoraproject.org/rpms/catch

Comment 7 Upstream Release Monitoring 2022-07-17 22:58:30 UTC
Created attachment 1897853 [details]
Update to 3.1.0 (#1786881)

Comment 8 Upstream Release Monitoring 2022-07-17 23:04:26 UTC
the-new-hotness/release-monitoring.org's scratch build of catch-3.1.0-1.fc36.src.rpm for rawhide failed http://koji.fedoraproject.org/koji/taskinfo?taskID=89624810

Comment 9 Upstream Release Monitoring 2022-10-16 19:31:46 UTC
Created attachment 1918363 [details]
Update to 3.1.0 (#1786881)

Comment 10 Upstream Release Monitoring 2022-10-16 19:42:06 UTC
the-new-hotness/release-monitoring.org's scratch build of catch-3.1.0-1.fc36.src.rpm for rawhide failed http://koji.fedoraproject.org/koji/taskinfo?taskID=93109380

Comment 11 Upstream Release Monitoring 2022-10-19 05:38:34 UTC
Releases retrieved: 3.1.1
Upstream release that is considered latest: 3.1.1
Current version/release in rawhide: 2.13.8-3.fc37
URL: https://github.com/catchorg/Catch2

Please consult the package updates policy before you issue an update to a stable branch: https://docs.fedoraproject.org/en-US/fesco/Updates_Policy/


More information about the service that created this bug can be found at: https://docs.fedoraproject.org/en-US/package-maintainers/Upstream_Release_Monitoring


Please keep in mind that with any upstream change, there may also be packaging changes that need to be made. Specifically, please remember that it is your responsibility to review the new version to ensure that the licensing is still correct and that no non-free or legally problematic items have been added upstream.


Based on the information from Anitya: https://release-monitoring.org/project/7680/


To change the monitoring settings for the project, please visit:
https://src.fedoraproject.org/rpms/catch

Comment 12 Upstream Release Monitoring 2022-10-19 05:38:38 UTC
Created attachment 1918905 [details]
Update to 3.1.1 (#1786881)

Comment 13 Upstream Release Monitoring 2022-10-19 05:46:09 UTC
the-new-hotness/release-monitoring.org's scratch build of catch-3.1.1-1.fc36.src.rpm for rawhide failed http://koji.fedoraproject.org/koji/taskinfo?taskID=93203374

Comment 14 Upstream Release Monitoring 2022-11-17 01:55:17 UTC
Releases retrieved: 3.2.0
Upstream release that is considered latest: 3.2.0
Current version/release in rawhide: 2.13.8-3.fc37
URL: https://github.com/catchorg/Catch2

Please consult the package updates policy before you issue an update to a stable branch: https://docs.fedoraproject.org/en-US/fesco/Updates_Policy/


More information about the service that created this bug can be found at: https://docs.fedoraproject.org/en-US/package-maintainers/Upstream_Release_Monitoring


Please keep in mind that with any upstream change, there may also be packaging changes that need to be made. Specifically, please remember that it is your responsibility to review the new version to ensure that the licensing is still correct and that no non-free or legally problematic items have been added upstream.


Based on the information from Anitya: https://release-monitoring.org/project/7680/


To change the monitoring settings for the project, please visit:
https://src.fedoraproject.org/rpms/catch

Comment 15 Upstream Release Monitoring 2022-11-17 01:55:21 UTC
Created attachment 1924854 [details]
Update to 3.2.0 (#1786881)

Comment 16 Upstream Release Monitoring 2022-11-17 02:00:52 UTC
the-new-hotness/release-monitoring.org's scratch build of catch-3.2.0-1.fc36.src.rpm for rawhide failed http://koji.fedoraproject.org/koji/taskinfo?taskID=94255757

Comment 17 Upstream Release Monitoring 2022-12-10 11:01:06 UTC
Releases retrieved: 3.2.1
Upstream release that is considered latest: 3.2.1
Current version/release in rawhide: 2.13.8-3.fc37
URL: https://github.com/catchorg/Catch2

Please consult the package updates policy before you issue an update to a stable branch: https://docs.fedoraproject.org/en-US/fesco/Updates_Policy/


More information about the service that created this bug can be found at: https://docs.fedoraproject.org/en-US/package-maintainers/Upstream_Release_Monitoring


Please keep in mind that with any upstream change, there may also be packaging changes that need to be made. Specifically, please remember that it is your responsibility to review the new version to ensure that the licensing is still correct and that no non-free or legally problematic items have been added upstream.


Based on the information from Anitya: https://release-monitoring.org/project/7680/


To change the monitoring settings for the project, please visit:
https://src.fedoraproject.org/rpms/catch

Comment 18 Upstream Release Monitoring 2022-12-10 11:01:10 UTC
Created attachment 1931570 [details]
Update to 3.2.1 (#1786881)

Comment 19 Upstream Release Monitoring 2022-12-10 11:08:56 UTC
the-new-hotness/release-monitoring.org's scratch build of catch-3.2.1-1.fc36.src.rpm for rawhide failed http://koji.fedoraproject.org/koji/taskinfo?taskID=95175107

Comment 20 Troy Curtis 2022-12-17 13:34:07 UTC
I have a new package that I'm adding that I'd to have the v3 of this package available for. Is there something I can do to help out? I actually started a new package because my search for "Catch2" didn't turn up anything and I didn't notice until the file conflict checker noted my paths belonged to "catch-devel" already ;). 

I can make some tweaks to the spec and put up a PR along with some tests, and try to run down any compatibility issues with packages that already use this package if you'd like.

Comment 21 Tom Hughes 2022-12-17 14:47:27 UTC
Well I need to create a catch2 package first and then look at what needs doing to move this to catch 3 but it's non-trivial as catch 3 has a rather different model.

I'll see if I can find some time over the holidays to have a look at it.

Comment 22 Ben Beasley 2022-12-17 15:06:57 UTC
(In reply to Tom Hughes from comment #21)
> Well I need to create a catch2 package first and then look at what needs
> doing to move this to catch 3 but it's non-trivial as catch 3 has a rather
> different model.

To elaborate on this, “Catch2 v2” is a header-only library, while upstream says this[1] about “Catch2 v3” (what a name!):

> v3 is the next major version of Catch2 and brings three significant changes:
> 
>   • Catch2 is now split into multiple headers
>   • Catch2 is now compiled as a static library
>   • C++14 is the minimum required C++ version
> 
> Note that we still provide one header + one translation unit (TU) distribution but do not consider it the primarily supported option. You should also expect that the compilation times will be worse if you use this option.

So the vast majority of dependent packages will now expect to use Catch2 (v3!) as a static library, which we don’t like[2] but might be justifiable here to avoid a massive patching effort, and those that don’t expect a static library will expect to bundle a header *and* a C++ source file, which is probably even worse.

(Thanks, Tom, for volunteering to find the “least-worst” way to deal with all of this. Let me know if there’s anything I can help out with.)

[1] https://github.com/catchorg/Catch2/blob/devel/docs/migrate-v2-to-v3.md#migrating-from-v2-to-v3
[2] https://docs.fedoraproject.org/en-US/packaging-guidelines/#_packaging_static_libraries

Comment 23 Tom Hughes 2022-12-17 15:14:11 UTC
Whether we build it as static or dynamic is largely irrelevant from a user's point of view - there should be any need for people to patch projects which use it any differently.

Or are you referring to patching the catch source so that it can build dynamically? Is that not supported at all at the moment? I'm not really sure why upstream seem so insistent on static builds?

Comment 24 Ben Beasley 2022-12-17 16:03:23 UTC
(In reply to Tom Hughes from comment #23)

> Whether we build it as static or dynamic is largely irrelevant from a user's
> point of view - there should be any need for people to patch projects which
> use it any differently.

You’re right, patching dependent packages to unbundle or to use a shared library will depend on how deeply they have baked in assumptions about bundled or static libraries, and how overengineered their build systems are. If they just use CMake or pkgconfig in a straightforward way then it should mostly just work.

> Or are you referring to patching the catch source so that it can build
> dynamically? Is that not supported at all at the moment? I'm not really sure
> why upstream seem so insistent on static builds?

This is mostly what I was thinking about. From the documentation, I really thought that upstream didn’t support dynamic/shared libraries at all.

However, I just took a look at the current Catch2 v3 sources, and found a CMake option  CATCH_CONFIG_SHARED_LIBRARY and even provisions for .so versioning, so this might actually be straightforward after all. It looks like the .so versioning support was added in 3.1.1, so maybe it’s good we didn’t rush to package v3 right away.

Comment 25 Troy Curtis 2022-12-18 03:35:31 UTC
I had actually already started working on a spec file thinking it wasn't packaged yet (I looked for a "Catch2" package, not a "Catch" package). Here is my starting point https://pagure.io/python-catch2/blob/main/f/Catch2.spec . It isn't fully finalized, as once I did a test run of fedora-review on it, that is when it flagged the file conflict with python3-catch. I started with the dynamic library build, since as you point out the option is there. However, I am a little concerned about pretending like the presence of a shared library implies it behaves like a shared library. In particular, the so-versioning really isn't. It is just the package version:

set_target_properties(Catch2 PROPERTIES
                          DEBUG_POSTFIX "d"
                                VERSION ${PROJECT_VERSION}
                              SOVERSION ${PROJECT_VERSION})

https://github.com/catchorg/Catch2/blob/devel/src/CMakeLists.txt#L343

And they specifically state that:

> Catch2 provides no ABI stability guarantees whatsoever. Catch2 provides rich C++ interface, and trying to freeze its ABI would take a lot of pointless work.
>
> Catch2 is not designed to be distributed as dynamic library, and you should really be able to compile everything with the same compiler binary.

https://github.com/catchorg/Catch2/blob/devel/docs/faq.md#what-is-catch2s-abi-stability-policy

In the spec I had started with putting the versioned so in the -devel subpackage, but as I've thought on it, I think that we probably need to just do it as a static library, since regardless of the ability of production a dynamically linked library, it doesn't sound like it will actually behave like one.

Comment 26 Ben Beasley 2022-12-18 03:47:12 UTC
That all might be OK. If the SOVERSION is the same as the version, then e.g. “3.2.1” is the .so version, which correctly reflects the lack of ABI stability, as it is bumped even on patch releases. Meanwhile, the problems of different compiler versions, vendors, and options mostly vanish in a distribution like Fedora, where the compiler and a lot of the options are standardized across all packages.

Comment 27 Troy Curtis 2022-12-18 04:15:12 UTC
(In reply to Ben Beasley from comment #26)
> That all might be OK. If the SOVERSION is the same as the version, then e.g.
> “3.2.1” is the .so version, which correctly reflects the lack of ABI
> stability, as it is bumped even on patch releases. Meanwhile, the problems
> of different compiler versions, vendors, and options mostly vanish in a
> distribution like Fedora, where the compiler and a lot of the options are
> standardized across all packages.

That's a great point, and in fact it is:

> ❯ objdump -p libCatch2.so.3.2.1 | grep SONAME
>   SONAME               libCatch2.so.3.2.1

So then each release ends up being an SO bump. Since this is a unit testing package, I wonder if it ever makes sense for a package to link to it with its runtime? I suppose if there was another unit testing oriented library that expanded on Catch2, and thus linked back to it as an implementation, then there might be installed files actually linked to the Catch2 library. Even in that case, I'd expect the headers would need to be available to be useful. Is there value in providing the shared library in a non-devel package?

Comment 28 Ben Beasley 2022-12-18 04:48:54 UTC
This isn’t entirely new ground. It’s pretty much the same situation as gtest (https://src.fedoraproject.org/rpms/gtest/):

- is a testing framework

- is packaged as a shared library even though upstream wants everybody to compile it with the project being tested so the compiler and flags are the same

- offers no ABI stability

- uses the entire version number as the .so version

Comment 29 Troy Curtis 2022-12-24 21:30:57 UTC
Ah I see, I suppose it shouldn't be a surprise there is a precedent!

Comment 30 Upstream Release Monitoring 2023-01-23 02:27:39 UTC
Releases retrieved: 3.3.0
Upstream release that is considered latest: 3.3.0
Current version/release in rawhide: 2.13.10-1.fc38
URL: https://github.com/catchorg/Catch2

Please consult the package updates policy before you issue an update to a stable branch: https://docs.fedoraproject.org/en-US/fesco/Updates_Policy/


More information about the service that created this bug can be found at: https://docs.fedoraproject.org/en-US/package-maintainers/Upstream_Release_Monitoring


Please keep in mind that with any upstream change, there may also be packaging changes that need to be made. Specifically, please remember that it is your responsibility to review the new version to ensure that the licensing is still correct and that no non-free or legally problematic items have been added upstream.


Based on the information from Anitya: https://release-monitoring.org/project/7680/


To change the monitoring settings for the project, please visit:
https://src.fedoraproject.org/rpms/catch

Comment 31 Upstream Release Monitoring 2023-01-23 02:27:43 UTC
Created attachment 1939888 [details]
Update to 3.3.0 (#1786881)

Comment 32 Upstream Release Monitoring 2023-01-23 02:38:20 UTC
the-new-hotness/release-monitoring.org's scratch build of catch-3.3.0-1.fc36.src.rpm for rawhide failed http://koji.fedoraproject.org/koji/taskinfo?taskID=96546622

Comment 33 Upstream Release Monitoring 2023-01-30 04:05:04 UTC
Releases retrieved: 3.3.1
Upstream release that is considered latest: 3.3.1
Current version/release in rawhide: 2.13.10-1.fc38
URL: https://github.com/catchorg/Catch2

Please consult the package updates policy before you issue an update to a stable branch: https://docs.fedoraproject.org/en-US/fesco/Updates_Policy/


More information about the service that created this bug can be found at: https://docs.fedoraproject.org/en-US/package-maintainers/Upstream_Release_Monitoring


Please keep in mind that with any upstream change, there may also be packaging changes that need to be made. Specifically, please remember that it is your responsibility to review the new version to ensure that the licensing is still correct and that no non-free or legally problematic items have been added upstream.


Based on the information from Anitya: https://release-monitoring.org/project/7680/


To change the monitoring settings for the project, please visit:
https://src.fedoraproject.org/rpms/catch

Comment 34 Upstream Release Monitoring 2023-01-30 04:05:08 UTC
Created attachment 1941040 [details]
Update to 3.3.1 (#1786881)

Comment 35 Upstream Release Monitoring 2023-01-30 04:11:23 UTC
the-new-hotness/release-monitoring.org's scratch build of catch-3.3.1-1.fc36.src.rpm for rawhide failed http://koji.fedoraproject.org/koji/taskinfo?taskID=96863259

Comment 36 Fedora Update System 2023-02-22 11:26:31 UTC
FEDORA-2023-86aa93897c has been submitted as an update to Fedora 38. https://bodhi.fedoraproject.org/updates/FEDORA-2023-86aa93897c

Comment 37 Fedora Update System 2023-02-23 10:25:25 UTC
FEDORA-2023-86aa93897c has been pushed to the Fedora 38 testing repository.

You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2023-86aa93897c

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 38 Fedora Update System 2023-03-01 01:50:14 UTC
FEDORA-2023-86aa93897c has been pushed to the Fedora 38 testing repository.

You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2023-86aa93897c

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 39 Fedora Update System 2023-03-02 02:06:21 UTC
FEDORA-2023-86aa93897c has been pushed to the Fedora 38 testing repository.

You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2023-86aa93897c

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 40 Fedora Update System 2023-03-11 03:06:12 UTC
FEDORA-2023-86aa93897c has been pushed to the Fedora 38 stable repository.
If problem still persists, please make note of it in this bug report.


Note You need to log in before you can comment on or make changes to this bug.