Date: Tue, 19 Mar 2024 14:35:29 +0200
Bret Brown via SG15 <sg15_at_[hidden]> writes:
> - One is a dependency manager (a.k.a. package manager)
> - These resolve dependencies on source or binary artifacts
> - The second role is a build system
> - These construct and order build commands
> - The third role... needs name
> - This takes the universe populated by the dependency manager and
> flattens a projection into the specific view needed by the build
> system to construct a target model (i.e., model libraries and
> executables)
One things that immediately strikes me as problematic in this model
are conditional dependencies that are often based on information that
is only known by the build system (target platform, compiler, compiler
version, stdlib used, etc). Which means that there is a feedback loop
from the build system to the package manager. You could probably make
the user supply this information to the package manager manually, but
that won't scale beyond basic things.
> - One is a dependency manager (a.k.a. package manager)
> - These resolve dependencies on source or binary artifacts
> - The second role is a build system
> - These construct and order build commands
> - The third role... needs name
> - This takes the universe populated by the dependency manager and
> flattens a projection into the specific view needed by the build
> system to construct a target model (i.e., model libraries and
> executables)
One things that immediately strikes me as problematic in this model
are conditional dependencies that are often based on information that
is only known by the build system (target platform, compiler, compiler
version, stdlib used, etc). Which means that there is a feedback loop
from the build system to the package manager. You could probably make
the user supply this information to the package manager manually, but
that won't scale beyond basic things.
Received on 2024-03-19 12:35:30