Re: Project options and other format enhancements (and dropping "variants")



On Fri, 2017-09-15 at 20:05 +0000, Sander Striker wrote:

On Fri, Sep 15, 2017 at 6:43 PM Tristan Van Berkom <tristan.vanberkom
@codethink.co.uk> wrote:

... 
Asides from the gritty details of the conditional expressions and
formats, would you agree that implementing project wide options and
conditionals on project wide variables only for now, will give us
something that:

Ok, let me try and restate that into what this means in practice.  We
would be able to implement "platforms"; e.g. some combination of
architecture, os version, compiler toolchain.  This would only be at
a project level, and elements can be either agnostic or have
conditional sections based on those options.

We are explicitly not addressing element variants, and leave this to
a future release.

Precisely.

If I understood correctly, then I concur this is a path forward.

  A.) Will solve our problems today, cause we need conditionals
      to build GNOME and we need a stable 1.0 pronto

What is the minimum we need to build GNOME?

We need to declare builds for flatpak runtimes and builds for an image
that boots, using the same project.

This is easily done with project level options I think.

Beyond the minimum, the jhbuild modulesets do include some conditions,
things like "if we're building on bsd", which I expect are long
unmaintained cruft; some of these conditionals would be interesting to
eventually revive, and also fit well into a model with only project
level options.
 
  B.) Does not close the door on constraint resolution approaches

Agreed.
 
  C.) Does not really become an undesirable "wart" if ever
constraint
      resolution and element specific options exist one day, but
      rather compliments it well

This we can probably only answer in hindsight.  Right now I don't
think it will.

Yeah agreed, we can't really know.

I should note that recursive pipelines will open up another dimension
of configuration options, and we should take another look at what we
really need once we land that bit.

When a pipeline is split into multiple interdependent projects; you
automatically get to decide the options with which to build the project
you depend on - this is somewhat similar to how variants configure
dependencies, but at a project level, and without any auto constraint
resolution problems.

Cheers,
    -Tristan



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]