Hartmut Goebel <[email protected]> writes:

> Am 31.01.26 um 15:39 schrieb Tomas Volf:
>> The difference is that currently you get a warning during building the
>> profile and (presumably) evaluate its validity and act if necessary.  If
>> the conflict will be hidden inside a package(s), the user gets no useful
>> feedback.
>
> I got you: Today, if the packager creates such a conflict, the user gets a
> warning.
>
> IMHO it's a error if a package includes different versions of the same python
> modules as this is bound to cause issues.

Two notes here:

1. Yes, it is an error on the side of the packager, but we all are just
human, and make mistakes.  So it would be nice if the build system
enforced no-conflict rule.

2. Even then, there is still a generalized version of the problem.

    (define python-foo
      (package ...
        (inputs (list python-omega-1))))
    
    (define python-bar
      (package ...
        (inputs (list python-omega-2))))

    (home-environment
      (packages (list python-foo
                      python-bar)))

Each individual package is correct, but the resulting profile still has
a conflict.  With propagated inputs, user gets a warning.  With inputs,
there is no warning, but it is unlikely that both -foo and -bar would be
functional from python in the resulting profile.



I like the idea, I think switching to inputs and having self-contained
packages are good ideas.  I just think some safe-guards should be put in
place, enough to at least not to make situation worse than it currently
is.

ntomas

-- 
There are only two hard things in Computer Science:
cache invalidation, naming things and off-by-one errors.

Reply via email to