[bug#78589] gnu: Add catch2@3.8.1
Commit Message
This adds a package for catch2 at version 3.8.1. As a lot of packages depend
on catch2 v. 3.5.3 this version is left as the default. As this is likely to
change in the future, version 3.8.1 is the base package and version 3.5.3
inherits from it.
* gnu/packages/check.scm
(catch2-3.8.1): New variable, renamed from catch2-3, updated to v. 3.8.1
(catch2-3): New variable, inherit from catch2-3.8.1
Change-Id: If66aa68039137e32fc760d209fdaa1f34b04f39e
---
I have previously raised #77772, but just updating catch2 to the new version
would trigger way too many rebuilds. I thus file this new patch, which will
update catch2 to 3.8.1, but under a new variable name. The old variable will
be used for a derivative of the new package with the old version.
This way no rebuild should be necessary and the new package can be slowly
transitioned to.
Maybe someone with more experience in guix can decide which one is the better
way forward and can close the other ticket.
gnu/packages/check.scm | 24 +++++++++++++++++++++---
1 file changed, 21 insertions(+), 3 deletions(-)
Comments
Hello!
nomike <nomike@nomike.com> writes:
> This adds a package for catch2 at version 3.8.1. As a lot of packages depend
> on catch2 v. 3.5.3 this version is left as the default. As this is likely to
> change in the future, version 3.8.1 is the base package and version 3.5.3
> inherits from it.
>
> * gnu/packages/check.scm
> (catch2-3.8.1): New variable, renamed from catch2-3, updated to v. 3.8.1
> (catch2-3): New variable, inherit from catch2-3.8.1
>
> Change-Id: If66aa68039137e32fc760d209fdaa1f34b04f39e
> ---
> I have previously raised #77772, but just updating catch2 to the new version
> would trigger way too many rebuilds. I thus file this new patch, which will
> update catch2 to 3.8.1, but under a new variable name. The old variable will
> be used for a derivative of the new package with the old version.
>
> This way no rebuild should be necessary and the new package can be slowly
> transitioned to.
>
> Maybe someone with more experience in guix can decide which one is the better
> way forward and can close the other ticket.
Personally, I like to crunch the results locally (rebuilding the
dependents to get a view of what breaks). Otherwise a feature branch
would work well here. I can register at to https://ci.guix.gnu to build
this series, and also send the request for merge issue to guix-patches
to have QA process it too.
Otherwise adding many variants is a bit like shoving snow forward
(amassing technical debt) and tends to make things messier down the
road.
My 2 cents :-).
@@ -55,6 +55,7 @@
;;; Copyright © 2024, 2025 gemmaro <gemmaro.dev@gmail.com>
;;; Copyright © 2024 Ashvith Shetty <ashvithshetty10@gmail.com>
;;; Copyright © 2025 Jordan Moore <lockbox@struct.foo>
+;;; Copyright © 2025 nomike Postmann <nomike@nomike.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -763,10 +764,10 @@ (define-public cbehave
pattern.")
(license license:apsl2))))
-(define-public catch2-3
+(define-public catch2-3.8.1
(package
(name "catch2")
- (version "3.5.3")
+ (version "3.8.1")
(home-page "https://github.com/catchorg/Catch2")
(source (origin
(method git-fetch)
@@ -776,7 +777,7 @@ (define-public catch2-3
(file-name (git-file-name name version))
(sha256
(base32
- "11yla93vm2896fzhm3fz8lk3y3iz5iy7vd6wa7wnwvhsfd2dbfq3"))))
+ "0v1k14n02aiw4rv5sxhc5612cjhkdj59cjpm50qfxhapsdv54n3f"))))
(build-system cmake-build-system)
(arguments
(list
@@ -790,6 +791,23 @@ (define-public catch2-3
a multi-paradigm automated test framework for C++ and Objective-C.")
(license license:boost1.0)))
+
+(define-public catch2-3
+ (package
+ (inherit catch2-3.8.1)
+ (name "catch2")
+ (version "3.5.3")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/catchorg/Catch2")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "11yla93vm2896fzhm3fz8lk3y3iz5iy7vd6wa7wnwvhsfd2dbfq3"))))))
+
+
(define-public cmdtest
(package
(name "cmdtest")