Hello,

Jason Conroy <[email protected]> skribis:

>>   https://codeberg.org/guix/guix/pulls/6781
>
> Ok, thanks. Judging from an error log in #5966 [1], I guess this
> happens when Cuirass resolves a public package and one of its
> dependencies is private?

Yes, exactly.

> I wonder if folks have thoughts on the following use case, which is
> also "for internal consumption only", but not in a sense that involves
> the package graph.
>
> For defining a set of related packages, I have seen the following
> pattern:
>
> ;; Private "base package"
> (define %foobar-base
> (package
>  (name "foobar-base")
>  (source ...)
>  (build-system ...)
>  ...))
>
> (define-public foobar-libs
> (package
>  (inherit %foobar-base)
>  (name "foobar-libs")
>  ...))
>
> (define-public foobar-bin
> (package
>  (inherit %foobar-base)
>  (name "foobar-bin")
>  ...))

In this case it’s fine to keep ‘%foobar-base’ private since it’s really
used as a template rather than as a package.

However, you may find it clearer to have a procedure that returns a
‘foobar’ variant instead of having this base template.

Ludo’.

Reply via email to