rock-core / autoproj

Rock (Robot Construction Kit) package-oriented build system
http://rock-robotics.org/rock-and-syskit/workspace
23 stars 22 forks source link

Opposite override order for osdeps vs autobuild packages? #373

Open moooeeeep opened 2 years ago

moooeeeep commented 2 years ago

In order to check out the overriding/precendence behavior of autoproj, I designed a simple buildconf configuration with two package sets that each define a package and an osdep with the same name.

I noticed output during aup that indicates overriding behavior, which seems counterintuitive to me:

WARN: osdeps definition for setuptools, previously defined in /opt/workspace/autoproj/p1/pkgs.osdeps overridden by /opt/workspace/autoproj/p2/pkgs.osdeps:
WARN:   resp. pip: setuptools==40.0.0
WARN:   and   pip: setuptools==41.0.0
WARN: my_package from /opt/workspace/autoproj/p2/packages.autobuild is overridden by the definition in /opt/workspace/autoproj/p1/packages.autobuild

In essence:

As far as I am aware, this didn't cause any obvious errors for us. But just to be sure: is this the intended behavior?

doudou commented 2 years ago

It is the intended behavior, but I have to admit I never realized it was indeed very confusing.

Fixing it would require breaking backward compatibility.... Not sure what would be the best way forward.

moooeeeep commented 2 years ago

Doesn't this break things if the packages actually require different versions of a dependency?

The package version selected from p1 would be incompatible to the osdep version selected from p2.