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’.
