Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [platform-releng-dev] Stop listing transitive dependencies in features?



On Sat, Apr 9, 2022 at 1:52 PM Christoph Läubrich <laeubi@xxxxxxxxxxxxxx> wrote:
Maybe it would be better to describe what the problem is (and probably
get a better solution than removing those).

The problem is that when we update the .target file, then some features needs to be "touched" to include latest version; otherwise they either make further builds fail, or let them succeed still using older version.

In general, for me features *not* listing their dependencies is a bit
useless I think as one then not can see what other features are pulled
in when installing it (you just get the minimal required bundles and
this might break).

We're talking about transitive deps on bundles, not on included feature, and actually, there are already many features that don't list all transitive dependencies.
A feature is a functional group: a set of plugins that all together provide an interesting and consistent functions to users. What transitive dependencies they use is not part of the functional group; and this is the duty of a dependency manager to resolve and install dependencies, not to replace the duty of a developer to duplicate definition of dependencies in many places.
 
If X requires saf4j bundle it should list a proper *bundle* requirement
in the feature (most probably with compatible match rule) and not a
feature I think.

That's already defined in Require-Bundle or Import-Package. Why duplicating this information?
 
requiring plugins is bad anyways, why we do not use import packages with
proper version range (consumer in this case?) and then it would be fine
to remove it from any feature then.

Indeed Import-Package is better; but from p2 perspective, it's just another way to describe a dependency not too differently from Require-Bundle. So if it's fine to remove things transtively required by Import-Package, why not removing those transitively required by other directives (that are as well covered by p2)?

Back to the top