From db10b517a40f56dca7ab563813e754b11a38249e Mon Sep 17 00:00:00 2001 From: Karen Arutyunov Date: Wed, 8 Jun 2022 18:45:00 +0300 Subject: Adjust postponed_configurations::add() and adapt tests to new up-negotiation flow [INCOMPLETE] --- bpkg/pkg-build.cxx | 125 ++++++++++++++----------------- tests/pkg-build.testscript | 182 +++++++++++---------------------------------- 2 files changed, 97 insertions(+), 210 deletions(-) diff --git a/bpkg/pkg-build.cxx b/bpkg/pkg-build.cxx index 058c174..43a8084 100644 --- a/bpkg/pkg-build.cxx +++ b/bpkg/pkg-build.cxx @@ -1746,10 +1746,9 @@ namespace bpkg // potential configuration merges, etc). // // Also return in second absent if the merge happened due to the shadow - // cluster logic (in which case the cluster was/is being negotiated) and - // true/false indicating whether all the merge-involved configurations are - // completely negotiated (the negotiated member is present and true for - // all of them). + // cluster logic (in which case the cluster was/is being negotiated), + // false if any non-negotiated or being negotiated clusters has been + // merged in, and true otherwise. // // If some configurations needs to be merged and this involves the (being) // negotiated configurations, then merge into the outermost-depth @@ -1768,17 +1767,18 @@ namespace bpkg // The plan is to first go through the existing clusters and check if // any of them contain this dependent/dependencies in their shadow // clusters. If such a cluster is found, then force-add them to - // it. Otherwise, add the specified dependent/dependencies to the first - // found dependency-intersecting cluster, if present, and add the new - // cluster otherwise. Afterwards, merge into the resulting cluster other - // dependency-intersecting clusters. Note that in case of shadow, this - // should normally not happen because such a cluster should have been - // either pre-merged or its dependents should be in the cluster. But - // it feels like it may still happen if things change, in which case - // we will throw again (admittedly a bit fuzzy). + // it. Otherwise, if any dependency-intersecting clusters are present, + // then add the specified dependent/dependencies to the one with the + // minimum non-zero depth, if any, and to the first one otherwise. + // Otherwise, add the new cluster. Afterwards, merge into the resulting + // cluster other dependency-intersecting clusters. Note that in case of + // shadow, this should normally not happen because such a cluster should + // have been either pre-merged or its dependents should be in the + // cluster. But it feels like it may still happen if things change, in + // which case we will throw again (admittedly a bit fuzzy). // iterator ri; - bool rb; + bool rb (true); // Note that if a single dependency is added, then it can only belong to // a single existing cluster and so no clusters merge can happen, unless @@ -1790,7 +1790,8 @@ namespace bpkg bool single (dependencies.size () == 1); // Merge dependency-intersecting clusters in the specified range into - // the resulting cluster. Return true if any clusters have been merged. + // the resulting cluster and reset change rb to false if any of the + // merged in clusters is non-negotiated or is being negotiated. // // The iterator arguments refer to entries before and after the range // endpoints, respectively. @@ -1799,7 +1800,7 @@ namespace bpkg iterator e, bool shadow_based) { - postponed_configuration& c1 (*ri); + postponed_configuration& rc (*ri); iterator j (i); @@ -1808,40 +1809,19 @@ namespace bpkg bool merged (false); for (++i; i != e; ++i) { - postponed_configuration& c2 (*i); + postponed_configuration& c (*i); - if (c2.contains_dependency (c1)) + if (c.contains_dependency (rc)) { - if (!c2.negotiated || !*c2.negotiated) + if (!c.negotiated || !*c.negotiated) rb = false; - // Merge into the outermost-depth negotiated configuration of - // the two, unless we are force-merging into the shadow-matching - // cluster. - // - if (!shadow_based && - c2.depth != 0 && - (c1.depth == 0 || c1.depth > c2.depth)) - { - l5 ([&]{trace << "merge " << c1 << " into " << c2;}); - c2.merge (move (c1)); + l5 ([&]{trace << "merge " << c << " into " << rc;}); - // Mark configuration as the one being merged from for - // subsequent erasing from the list. - // - c1.dependencies.clear (); + assert (!shadow_based || (c.negotiated && *c.negotiated)); - ri = i; - } - else - { - l5 ([&]{trace << "merge " << c2 << " into " << c1;}); - - assert (!shadow_based || (c2.negotiated && *c2.negotiated)); - - c1.merge (move (c2)); - c2.dependencies.clear (); // Mark as merged from (see above). - } + rc.merge (move (c)); + c.dependencies.clear (); // Mark as merged from (see above). merged = true; @@ -1923,30 +1903,31 @@ namespace bpkg ri = i; - merge (before_begin (), i, true /* shadow_based */); - merge (i, end (), true /* shadow_based */); + merge (before_begin (), ri, true /* shadow_based */); + merge (ri, end (), true /* shadow_based */); return make_pair (ref (*ri), optional ()); } } - auto i (begin ()); - auto j (before_begin ()); // Precedes iterator i. + // Find the cluster to add the dependent/dependencies to. + // + optional depth; - for (; i != end (); ++i, ++j) + auto j (before_begin ()); // Precedes iterator i. + for (auto i (begin ()); i != end (); ++i, ++j) { postponed_configuration& c (*i); - if (c.contains_dependency (dependencies)) + if (c.contains_dependency (dependencies) && + (!depth || (c.depth != 0 && (*depth == 0 || *depth > c.depth)))) { - trace_add (c, false /* shadow */); - - c.add (move (dependent), existing, position, move (dependencies)); - break; + ri = i; + depth = c.depth; } } - if (i == end ()) + if (!depth) // No intersecting cluster? { // New cluster. Insert after the last element. // @@ -1958,20 +1939,22 @@ namespace bpkg position, move (dependencies))); - rb = false; - l5 ([&]{trace << "create " << *ri;}); } else { - ri = i; - rb = (i->negotiated && *i->negotiated); + // Add the dependent/dependencies into an existing cluster. + // + postponed_configuration& c (*ri); - // We know no cluster we have already examined could end up being - // merged. + trace_add (c, false /* shadow */); + + c.add (move (dependent), existing, position, move (dependencies)); + + // Try to merge other clusters into this cluster. // - if (!single) - merge (i, end (), false /* shadow_based */); // Note: updates rb. + merge (before_begin (), ri, false /* shadow_based */); + merge (ri, end (), false /* shadow_based */); } return make_pair (ref (*ri), optional (rb)); @@ -4505,7 +4488,7 @@ namespace bpkg // false -- some non or being negotiated // true -- all have been negotiated // - if (r.second && !r.second) + if (r.second && !*r.second) { // The partially negotiated case. // @@ -4539,9 +4522,9 @@ namespace bpkg // l5 ([&]{trace << "cfg-postponing dependent " << pkg.available_name_version_db () - << " involves non-negotiated configurations " - << "and results in " << cfg << ", throwing " - << "merge_configuration";}); + << " merges non-negotiated and/or being " + << "negotiated configurations in and results in " + << cfg << ", throwing merge_configuration";}); // Don't print the "while satisfying..." chain. // @@ -4552,6 +4535,8 @@ namespace bpkg if (r.second && !cfg.contains_shadow_dependent (pk, dp)) { + assert (*r.second); // Would't be here otherwise. + // The "first time" case. // @@ -4584,8 +4569,8 @@ namespace bpkg l5 ([&]{trace << "cfg-postponing dependent " << pkg.available_name_version_db () - << " involves negotiated configurations and " - << "results in " << cfg + << " involves (being) negotiated configurations " + << "and results in " << cfg << ", throwing retry_configuration";}); // up_negotiate (...); @@ -4605,8 +4590,8 @@ namespace bpkg l5 ([&]{trace << "configuration for cfg-postponed " << "dependencies of dependent " - << pkg.available_name_version_db () << " " - << (r.second ? "is" : "shadow") << " negotiated";}); + << pkg.available_name_version_db () << " is " + << (r.second ? "" : "shadow-") << "negotiated";}); // Note that even in the fully negotiated case we may still // add extra dependencies to this cluster which we still need diff --git a/tests/pkg-build.testscript b/tests/pkg-build.testscript index e941d97..30ec6e6 100644 --- a/tests/pkg-build.testscript +++ b/tests/pkg-build.testscript @@ -5859,7 +5859,7 @@ test.options += --no-progress trace: collect_build: pick libfoo/0.1.0 over libfoo/1.0.0 trace: collect_build_prerequisites: cfg-postpone dependency libfoo/0.1.0 of dependent tex/1.0.0 trace: postponed_configurations::add: add {tex 2,1: libfoo} to {baz tex^ | libbar->{baz/1,1 tex/1,1} libfoo->{baz/1,1}}? - trace: collect_build_prerequisites: cfg-postponing dependent tex/1.0.0 involves negotiated configurations and results in {baz tex^ | libbar->{baz/1,1 tex/1,1} libfoo->{baz/1,1 tex/2,1}}?, throwing retry_configuration + trace: collect_build_prerequisites: cfg-postponing dependent tex/1.0.0 involves (being) negotiated configurations and results in {baz tex^ | libbar->{baz/1,1 tex/1,1} libfoo->{baz/1,1 tex/2,1}}?, throwing retry_configuration trace: collect_build_postponed (0): cfg-negotiation of {baz | libbar->{baz/1,1} libfoo->{baz/1,1}} failed due to dependent tex, adding shadow dependent and re-negotiating trace: collect_build_postponed (1): begin {baz | libbar->{baz/1,1} libfoo->{baz/1,1}} %.* @@ -5887,36 +5887,6 @@ test.options += --no-progress trace: collect_build: pick libfoo/0.1.0 over libfoo/1.0.0 trace: collect_build_prerequisites: cfg-postpone dependency libfoo/0.1.0 of dependent tex/1.0.0 trace: postponed_configurations::add: add {tex 2,1: libfoo} to {baz tex^ | libbar->{baz/1,1 tex/1,1} libfoo->{baz/1,1}}? - trace: collect_build_prerequisites: dependent tex/1.0.0 is a shadow dependent for {baz tex^ | libbar->{baz/1,1 tex/1,1} libfoo->{baz/1,1 tex/2,1}}? - trace: collect_build_prerequisites: cfg-postponing dependent tex/1.0.0 involves non-negotiated configurations and results in {baz tex^ | libbar->{baz/1,1 tex/1,1} libfoo->{baz/1,1 tex/2,1}}?, throwing merge_configuration - trace: collect_build_postponed (0): cfg-negotiation of {baz | libbar->{baz/1,1} libfoo->{baz/1,1}} failed due to non-negotiated clusters, force-merging based on shadow cluster {baz tex^ | libbar->{baz/1,1 tex/1,1} libfoo->{baz/1,1 tex/2,1}}? - trace: collect_build_postponed (1): begin {baz | libbar->{baz/1,1} libfoo->{baz/1,1}} - %.* - trace: collect_build_postponed (1): re-evaluate existing dependents for {baz | libbar->{baz/1,1} libfoo->{baz/1,1}} - trace: collect_build: add tex/1.0.0 - trace: collect_build_prerequisites: reeval tex/1.0.0 - %.* - trace: collect_build: pick libbar/0.1.0 over libbar/1.0.0 - trace: postponed_configurations::add: add {tex^ 1,1: libbar} to {baz | libbar->{baz/1,1} libfoo->{baz/1,1}} (shadow cluster-based) - trace: collect_build_prerequisites: re-evaluating dependent tex/1.0.0 results in {baz tex^ | libbar->{baz/1,1 tex/1,1} libfoo->{baz/1,1}} - trace: collect_build_prerequisites: re-evaluated tex/1.0.0 - trace: collect_build_postponed (1): cfg-negotiate begin {baz tex^ | libbar->{baz/1,1 tex/1,1} libfoo->{baz/1,1}} - trace: collect_build_postponed (1): recursively collect cfg-negotiated dependencies - trace: collect_build_prerequisites: begin libbar/0.1.0 - trace: collect_build_prerequisites: end libbar/0.1.0 - trace: collect_build_prerequisites: begin libfoo/0.1.0 - trace: collect_build_prerequisites: end libfoo/0.1.0 - trace: collect_build_postponed (1): recursively collect cfg-negotiated dependents - trace: collect_build_postponed (1): select cfg-negotiated dependency alternative for dependent baz/0.1.0 - trace: collect_build_prerequisites: resume baz/0.1.0 - trace: collect_build_prerequisites: end baz/0.1.0 - trace: collect_build_postponed (1): select cfg-negotiated dependency alternative for dependent tex/1.0.0 - trace: collect_build_prerequisites: resume tex/1.0.0 - %.* - trace: collect_build: pick libfoo/0.1.0 over libfoo/1.0.0 - trace: collect_build_prerequisites: cfg-postpone dependency libfoo/0.1.0 of dependent tex/1.0.0 - trace: postponed_configurations::add: add {tex 2,1: libfoo} to {baz tex^ | libbar->{baz/1,1 tex/1,1} libfoo->{baz/1,1}}? (shadow cluster-based) - trace: collect_build_prerequisites: dependent tex/1.0.0 is a shadow dependent for {baz tex^ | libbar->{baz/1,1 tex/1,1} libfoo->{baz/1,1 tex/2,1}}? trace: collect_build_prerequisites: configuration for cfg-postponed dependencies of dependent tex/1.0.0 is negotiated trace: collect_build_prerequisites: dependency libfoo/0.1.0 of dependent tex/1.0.0 is already (being) recursively collected, skipping trace: collect_build_prerequisites: end tex/1.0.0 @@ -6452,7 +6422,7 @@ test.options += --no-progress trace: collect_build_prerequisites: cfg-postpone dependency libbox/0.1.0 of dependent bax/1.0.0 trace: collect_build_prerequisites: cfg-postpone dependency libbar/1.0.0 of dependent bax/1.0.0 trace: postponed_configurations::add: add {bax 2,1: libbox libbar} to {bax^ baz^ | libfoo->{bax/1,1 baz/1,1} libbar->{baz/1,1}}? - trace: collect_build_prerequisites: cfg-postponing dependent bax/1.0.0 involves negotiated configurations and results in {bax^ baz^ | libfoo->{bax/1,1 baz/1,1} libbar->{bax/2,1 baz/1,1} libbox->{bax/2,1}}?, throwing retry_configuration + trace: collect_build_prerequisites: cfg-postponing dependent bax/1.0.0 involves (being) negotiated configurations and results in {bax^ baz^ | libfoo->{bax/1,1 baz/1,1} libbar->{bax/2,1 baz/1,1} libbox->{bax/2,1}}?, throwing retry_configuration trace: collect_build_postponed (0): cfg-negotiation of {bax^ | libfoo->{bax/1,1}} failed due to dependent bax, adding shadow dependent and re-negotiating trace: collect_build_postponed (1): begin {bax^ | libfoo->{bax/1,1}} %.* @@ -6486,42 +6456,6 @@ test.options += --no-progress trace: collect_build_prerequisites: cfg-postpone dependency libbox/0.1.0 of dependent bax/1.0.0 trace: collect_build_prerequisites: cfg-postpone dependency libbar/1.0.0 of dependent bax/1.0.0 trace: postponed_configurations::add: add {bax 2,1: libbox libbar} to {bax^ baz^ | libfoo->{bax/1,1 baz/1,1} libbar->{baz/1,1}}? - trace: collect_build_prerequisites: dependent bax/1.0.0 is a shadow dependent for {bax^ baz^ | libfoo->{bax/1,1 baz/1,1} libbar->{bax/2,1 baz/1,1} libbox->{bax/2,1}}? - trace: collect_build_prerequisites: cfg-postponing dependent bax/1.0.0 involves non-negotiated configurations and results in {bax^ baz^ | libfoo->{bax/1,1 baz/1,1} libbar->{bax/2,1 baz/1,1} libbox->{bax/2,1}}?, throwing merge_configuration - trace: collect_build_postponed (0): cfg-negotiation of {bax^ | libfoo->{bax/1,1}} failed due to non-negotiated clusters, force-merging based on shadow cluster {bax^ baz^ | libfoo->{bax/1,1 baz/1,1} libbar->{bax/2,1 baz/1,1} libbox->{bax/2,1}}? - trace: collect_build_postponed (1): begin {bax^ | libfoo->{bax/1,1}} - %.* - trace: collect_build_postponed (1): re-evaluate existing dependents for {bax^ | libfoo->{bax/1,1}} - trace: collect_build: add bax/1.0.0 - trace: collect_build_prerequisites: reeval bax/1.0.0 - %.* - trace: postponed_configurations::add: add {bax^ 1,1: libfoo} to {bax^ | libfoo->{bax/1,1}} (shadow cluster-based) - trace: collect_build_prerequisites: re-evaluating dependent bax/1.0.0 results in {bax^ | libfoo->{bax/1,1}} - trace: collect_build_prerequisites: re-evaluated bax/1.0.0 - trace: collect_build_prerequisites: reeval baz/1.0.0 - %.* - trace: collect_build: add libbar/1.0.0 - trace: postponed_configurations::add: add {baz^ 1,1: libbar libfoo} to {bax^ | libfoo->{bax/1,1}} (shadow cluster-based) - trace: collect_build_prerequisites: re-evaluating dependent baz/1.0.0 results in {bax^ baz^ | libfoo->{bax/1,1 baz/1,1} libbar->{baz/1,1}} - trace: collect_build_prerequisites: re-evaluated baz/1.0.0 - %.* - trace: collect_build_postponed (1): skip being built existing dependent bax of dependency libbar - trace: collect_build_postponed (1): skip being built existing dependent baz of dependency libbar - trace: collect_build_postponed (1): cfg-negotiate begin {bax^ baz^ | libfoo->{bax/1,1 baz/1,1} libbar->{baz/1,1}} - trace: collect_build_postponed (1): recursively collect cfg-negotiated dependencies - trace: collect_build_prerequisites: begin libfoo/1.0.0 - trace: collect_build_prerequisites: end libfoo/1.0.0 - trace: collect_build_prerequisites: begin libbar/1.0.0 - trace: collect_build_prerequisites: end libbar/1.0.0 - trace: collect_build_postponed (1): recursively collect cfg-negotiated dependents - trace: collect_build_postponed (1): select cfg-negotiated dependency alternative for dependent bax/1.0.0 - trace: collect_build_prerequisites: resume bax/1.0.0 - %.* - trace: collect_build: pick libbox/0.1.0 over libbox/1.0.0 - trace: collect_build_prerequisites: cfg-postpone dependency libbox/0.1.0 of dependent bax/1.0.0 - trace: collect_build_prerequisites: cfg-postpone dependency libbar/1.0.0 of dependent bax/1.0.0 - trace: postponed_configurations::add: add {bax 2,1: libbox libbar} to {bax^ baz^ | libfoo->{bax/1,1 baz/1,1} libbar->{baz/1,1}}? (shadow cluster-based) - trace: collect_build_prerequisites: dependent bax/1.0.0 is a shadow dependent for {bax^ baz^ | libfoo->{bax/1,1 baz/1,1} libbar->{bax/2,1 baz/1,1} libbox->{bax/2,1}}? trace: collect_build_prerequisites: configuration for cfg-postponed dependencies of dependent bax/1.0.0 is negotiated trace: collect_build_prerequisites: collecting cfg-postponed dependency libbox/0.1.0 of dependent bax/1.0.0 trace: collect_build_prerequisites: begin libbox/0.1.0 @@ -6699,7 +6633,7 @@ test.options += --no-progress trace: collect_build_prerequisites: cfg-postpone dependency libfoo/1.0.0 of dependent box/1.0.0 trace: postponed_configurations::add: add {box 1,1: libbar libfoo} to {foo | libfoo->{foo/1,1}}! trace: postponed_configurations::add: merge {bar | libbar->{bar/1,1}}! into {box foo | libfoo->{box/1,1 foo/1,1} libbar->{box/1,1}}! - trace: collect_build_prerequisites: cfg-postponing dependent box/1.0.0 involves negotiated configurations and results in {bar box foo | libfoo->{box/1,1 foo/1,1} libbar->{bar/1,1 box/1,1}}!, throwing retry_configuration + trace: collect_build_prerequisites: cfg-postponing dependent box/1.0.0 involves (being) negotiated configurations and results in {bar box foo | libfoo->{box/1,1 foo/1,1} libbar->{bar/1,1 box/1,1}}!, throwing retry_configuration trace: collect_build_postponed (0): cfg-negotiation of {foo | libfoo->{foo/1,1}} failed due to dependent box, adding shadow dependent and re-negotiating trace: collect_build_postponed (1): begin {foo | libfoo->{foo/1,1}} %.* @@ -6730,7 +6664,6 @@ test.options += --no-progress trace: collect_build_prerequisites: cfg-postpone dependency libfoo/1.0.0 of dependent box/1.0.0 trace: postponed_configurations::add: add {box 1,1: libbar libfoo} to {foo | libfoo->{foo/1,1}}! trace: postponed_configurations::add: merge {bar | libbar->{bar/1,1}}! into {box foo | libfoo->{box/1,1 foo/1,1} libbar->{box/1,1}}! - trace: collect_build_prerequisites: dependent box/1.0.0 is a shadow dependent for {bar box foo | libfoo->{box/1,1 foo/1,1} libbar->{bar/1,1 box/1,1}}! trace: collect_build_prerequisites: configuration for cfg-postponed dependencies of dependent box/1.0.0 is negotiated trace: collect_build_prerequisites: dependency libbar/1.0.0 of dependent box/1.0.0 is already (being) recursively collected, skipping trace: collect_build_prerequisites: dependency libfoo/1.0.0 of dependent box/1.0.0 is already (being) recursively collected, skipping @@ -7060,6 +6993,15 @@ test.options += --no-progress { $clone_cfg; + # Dependencies: + # + # bar: depends: libbar(c) + # + # bux: depends: libbar(c) + # + # bix: depends: {libbar bar} (c) + # depends: bux + # $* bix 2>>~%EOE%; %.* trace: pkg_build: refine package collection/plan execution from scratch @@ -7084,7 +7026,7 @@ test.options += --no-progress %.* trace: collect_build_prerequisites: cfg-postpone dependency libbar/1.0.0 of dependent bar/1.0.0 trace: postponed_configurations::add: add {bar 1,1: libbar} to {bix | libbar->{bix/1,1} bar->{bix/1,1}}? - trace: collect_build_prerequisites: cfg-postponing dependent bar/1.0.0 involves negotiated configurations and results in {bar bix | libbar->{bar/1,1 bix/1,1} bar->{bix/1,1}}?, throwing retry_configuration + trace: collect_build_prerequisites: cfg-postponing dependent bar/1.0.0 involves (being) negotiated configurations and results in {bar bix | libbar->{bar/1,1 bix/1,1} bar->{bix/1,1}}?, throwing retry_configuration trace: collect_build_postponed (0): cfg-negotiation of {bix | libbar->{bix/1,1} bar->{bix/1,1}} failed due to dependent bar, adding shadow dependent and re-negotiating trace: collect_build_postponed (1): begin {bix | libbar->{bix/1,1} bar->{bix/1,1}} %.* @@ -7096,20 +7038,6 @@ test.options += --no-progress %.* trace: collect_build_prerequisites: cfg-postpone dependency libbar/1.0.0 of dependent bar/1.0.0 trace: postponed_configurations::add: add {bar 1,1: libbar} to {bix | libbar->{bix/1,1} bar->{bix/1,1}}? - trace: collect_build_prerequisites: dependent bar/1.0.0 is a shadow dependent for {bar bix | libbar->{bar/1,1 bix/1,1} bar->{bix/1,1}}? - trace: collect_build_prerequisites: cfg-postponing dependent bar/1.0.0 involves non-negotiated configurations and results in {bar bix | libbar->{bar/1,1 bix/1,1} bar->{bix/1,1}}?, throwing merge_configuration - trace: collect_build_postponed (0): cfg-negotiation of {bix | libbar->{bix/1,1} bar->{bix/1,1}} failed due to non-negotiated clusters, force-merging based on shadow cluster {bar bix | libbar->{bar/1,1 bix/1,1} bar->{bix/1,1}}? - trace: collect_build_postponed (1): begin {bix | libbar->{bix/1,1} bar->{bix/1,1}} - %.* - trace: collect_build_postponed (1): cfg-negotiate begin {bix | libbar->{bix/1,1} bar->{bix/1,1}} - trace: collect_build_postponed (1): recursively collect cfg-negotiated dependencies - trace: collect_build_prerequisites: begin libbar/1.0.0 - trace: collect_build_prerequisites: end libbar/1.0.0 - trace: collect_build_prerequisites: begin bar/1.0.0 - %.* - trace: collect_build_prerequisites: cfg-postpone dependency libbar/1.0.0 of dependent bar/1.0.0 - trace: postponed_configurations::add: add {bar 1,1: libbar} to {bix | libbar->{bix/1,1} bar->{bix/1,1}}? (shadow cluster-based) - trace: collect_build_prerequisites: dependent bar/1.0.0 is a shadow dependent for {bar bix | libbar->{bar/1,1 bix/1,1} bar->{bix/1,1}}? trace: collect_build_prerequisites: configuration for cfg-postponed dependencies of dependent bar/1.0.0 is negotiated trace: collect_build_prerequisites: dependency libbar/1.0.0 of dependent bar/1.0.0 is already (being) recursively collected, skipping trace: collect_build_prerequisites: end bar/1.0.0 @@ -7123,7 +7051,7 @@ test.options += --no-progress %.* trace: collect_build_prerequisites: cfg-postpone dependency libbar/1.0.0 of dependent bux/1.0.0 trace: postponed_configurations::add: add {bux 1,1: libbar} to {bar bix | libbar->{bar/1,1 bix/1,1} bar->{bix/1,1}}? - trace: collect_build_prerequisites: cfg-postponing dependent bux/1.0.0 involves negotiated configurations and results in {bar bix bux | libbar->{bar/1,1 bix/1,1 bux/1,1} bar->{bix/1,1}}?, throwing retry_configuration + trace: collect_build_prerequisites: cfg-postponing dependent bux/1.0.0 involves (being) negotiated configurations and results in {bar bix bux | libbar->{bar/1,1 bix/1,1 bux/1,1} bar->{bix/1,1}}?, throwing retry_configuration trace: collect_build_postponed (0): cfg-negotiation of {bix | libbar->{bix/1,1} bar->{bix/1,1}} failed due to dependent bux, adding shadow dependent and re-negotiating trace: collect_build_postponed (1): begin {bix | libbar->{bix/1,1} bar->{bix/1,1}} %.* @@ -7134,8 +7062,7 @@ test.options += --no-progress trace: collect_build_prerequisites: begin bar/1.0.0 %.* trace: collect_build_prerequisites: cfg-postpone dependency libbar/1.0.0 of dependent bar/1.0.0 - trace: postponed_configurations::add: add {bar 1,1: libbar} to {bix | libbar->{bix/1,1} bar->{bix/1,1}}? (shadow cluster-based) - trace: collect_build_prerequisites: dependent bar/1.0.0 is a shadow dependent for {bar bix | libbar->{bar/1,1 bix/1,1} bar->{bix/1,1}}? + trace: postponed_configurations::add: add {bar 1,1: libbar} to {bix | libbar->{bix/1,1} bar->{bix/1,1}}? trace: collect_build_prerequisites: configuration for cfg-postponed dependencies of dependent bar/1.0.0 is negotiated trace: collect_build_prerequisites: dependency libbar/1.0.0 of dependent bar/1.0.0 is already (being) recursively collected, skipping trace: collect_build_prerequisites: end bar/1.0.0 @@ -7149,34 +7076,6 @@ test.options += --no-progress %.* trace: collect_build_prerequisites: cfg-postpone dependency libbar/1.0.0 of dependent bux/1.0.0 trace: postponed_configurations::add: add {bux 1,1: libbar} to {bar bix | libbar->{bar/1,1 bix/1,1} bar->{bix/1,1}}? - trace: collect_build_prerequisites: dependent bux/1.0.0 is a shadow dependent for {bar bix bux | libbar->{bar/1,1 bix/1,1 bux/1,1} bar->{bix/1,1}}? - trace: collect_build_prerequisites: cfg-postponing dependent bux/1.0.0 involves non-negotiated configurations and results in {bar bix bux | libbar->{bar/1,1 bix/1,1 bux/1,1} bar->{bix/1,1}}?, throwing merge_configuration - trace: collect_build_postponed (0): cfg-negotiation of {bix | libbar->{bix/1,1} bar->{bix/1,1}} failed due to non-negotiated clusters, force-merging based on shadow cluster {bar bix bux | libbar->{bar/1,1 bix/1,1 bux/1,1} bar->{bix/1,1}}? - trace: collect_build_postponed (1): begin {bix | libbar->{bix/1,1} bar->{bix/1,1}} - %.* - trace: collect_build_postponed (1): cfg-negotiate begin {bix | libbar->{bix/1,1} bar->{bix/1,1}} - trace: collect_build_postponed (1): recursively collect cfg-negotiated dependencies - trace: collect_build_prerequisites: begin libbar/1.0.0 - trace: collect_build_prerequisites: end libbar/1.0.0 - trace: collect_build_prerequisites: begin bar/1.0.0 - %.* - trace: collect_build_prerequisites: cfg-postpone dependency libbar/1.0.0 of dependent bar/1.0.0 - trace: postponed_configurations::add: add {bar 1,1: libbar} to {bix | libbar->{bix/1,1} bar->{bix/1,1}}? (shadow cluster-based) - trace: collect_build_prerequisites: dependent bar/1.0.0 is a shadow dependent for {bar bix | libbar->{bar/1,1 bix/1,1} bar->{bix/1,1}}? - trace: collect_build_prerequisites: configuration for cfg-postponed dependencies of dependent bar/1.0.0 is negotiated - trace: collect_build_prerequisites: dependency libbar/1.0.0 of dependent bar/1.0.0 is already (being) recursively collected, skipping - trace: collect_build_prerequisites: end bar/1.0.0 - trace: collect_build_postponed (1): recursively collect cfg-negotiated dependents - trace: collect_build_postponed (1): select cfg-negotiated dependency alternative for dependent bix/1.0.0 - trace: collect_build_prerequisites: resume bix/1.0.0 - %.* - trace: collect_build: add bux/1.0.0 - trace: collect_build_prerequisites: no cfg-clause for dependency bux/1.0.0 of dependent bix/1.0.0 - trace: collect_build_prerequisites: begin bux/1.0.0 - %.* - trace: collect_build_prerequisites: cfg-postpone dependency libbar/1.0.0 of dependent bux/1.0.0 - trace: postponed_configurations::add: add {bux 1,1: libbar} to {bar bix | libbar->{bar/1,1 bix/1,1} bar->{bix/1,1}}? (shadow cluster-based) - trace: collect_build_prerequisites: dependent bux/1.0.0 is a shadow dependent for {bar bix bux | libbar->{bar/1,1 bix/1,1 bux/1,1} bar->{bix/1,1}}? trace: collect_build_prerequisites: configuration for cfg-postponed dependencies of dependent bux/1.0.0 is negotiated trace: collect_build_prerequisites: dependency libbar/1.0.0 of dependent bux/1.0.0 is already (being) recursively collected, skipping trace: collect_build_prerequisites: end bux/1.0.0 @@ -7506,7 +7405,7 @@ test.options += --no-progress %.* trace: collect_build_prerequisites: cfg-postpone dependency libfoo/1.0.0 of dependent boo/1.0.0 trace: postponed_configurations::add: add {boo 1,2: libfoo} to {foo | libfoo->{foo/1,1}}! - trace: collect_build_prerequisites: cfg-postponing dependent boo/1.0.0 involves negotiated configurations and results in {boo foo | libfoo->{boo/1,2 foo/1,1}}!, throwing retry_configuration + trace: collect_build_prerequisites: cfg-postponing dependent boo/1.0.0 involves (being) negotiated configurations and results in {boo foo | libfoo->{boo/1,2 foo/1,1}}!, throwing retry_configuration trace: collect_build_postponed (0): cfg-negotiation of {foo | libfoo->{foo/1,1}} failed due to dependent boo, adding shadow dependent and re-negotiating trace: collect_build_postponed (1): begin {foo | libfoo->{foo/1,1}} %.* @@ -7536,7 +7435,6 @@ test.options += --no-progress %.* trace: collect_build_prerequisites: cfg-postpone dependency libfoo/1.0.0 of dependent boo/1.0.0 trace: postponed_configurations::add: add {boo 1,2: libfoo} to {foo | libfoo->{foo/1,1}}! - trace: collect_build_prerequisites: dependent boo/1.0.0 is a shadow dependent for {boo foo | libfoo->{boo/1,2 foo/1,1}}! trace: collect_build_prerequisites: configuration for cfg-postponed dependencies of dependent boo/1.0.0 is negotiated trace: collect_build_prerequisites: dependency libfoo/1.0.0 of dependent boo/1.0.0 is already (being) recursively collected, skipping trace: collect_build_prerequisites: end boo/1.0.0 @@ -7622,7 +7520,7 @@ test.options += --no-progress %.* trace: collect_build_prerequisites: cfg-postpone dependency libfoo/1.0.0 of dependent boo/1.0.0 trace: postponed_configurations::add: add {boo 1,2: libfoo} to {foo | libfoo->{foo/1,1}}! - trace: collect_build_prerequisites: cfg-postponing dependent boo/1.0.0 involves negotiated configurations and results in {boo foo | libfoo->{boo/1,2 foo/1,1}}!, throwing retry_configuration + trace: collect_build_prerequisites: cfg-postponing dependent boo/1.0.0 involves (being) negotiated configurations and results in {boo foo | libfoo->{boo/1,2 foo/1,1}}!, throwing retry_configuration trace: collect_build_postponed (0): cfg-negotiation of {foo | libfoo->{foo/1,1}} failed due to dependent boo, adding shadow dependent and re-negotiating trace: collect_build_postponed (1): begin {foo | libfoo->{foo/1,1}} %.* @@ -7666,7 +7564,6 @@ test.options += --no-progress %.* trace: collect_build_prerequisites: cfg-postpone dependency libfoo/1.0.0 of dependent boo/1.0.0 trace: postponed_configurations::add: add {boo 1,2: libfoo} to {foo | libfoo->{foo/1,1}}! - trace: collect_build_prerequisites: dependent boo/1.0.0 is a shadow dependent for {boo foo | libfoo->{boo/1,2 foo/1,1}}! trace: collect_build_prerequisites: configuration for cfg-postponed dependencies of dependent boo/1.0.0 is negotiated trace: collect_build_prerequisites: dependency libfoo/1.0.0 of dependent boo/1.0.0 is already (being) recursively collected, skipping trace: collect_build_prerequisites: end boo/1.0.0 @@ -7694,6 +7591,21 @@ test.options += --no-progress { $clone_cfg; + # Dependencies: + # + # tax: depends: libbar(c) + # depends: libfoo + # + # toz/0.1.0: + # + # toz/1.0.0: depends: libbaz(c) + # depends: libfoo(c) + # depends: libbar(c) + # + # tez: depends: libbox(c) + # depends: toz == 0.1.0 (c) + # depends: libbar(c) + # $* tax toz tez 2>>~%EOE%; %.* trace: pkg_build: refine package collection/plan execution from scratch @@ -7925,7 +7837,7 @@ test.options += --no-progress %.* trace: collect_build_prerequisites: cfg-postpone dependency libbar/1.0.0 of dependent tez/1.0.0 trace: postponed_configurations::add: add {tez 3,1: libbar} to {tax | libbar->{tax/1,1}}! - trace: collect_build_prerequisites: cfg-postponing dependent tez/1.0.0 involves negotiated configurations and results in {tax tez | libbar->{tax/1,1 tez/3,1}}!, throwing retry_configuration + trace: collect_build_prerequisites: cfg-postponing dependent tez/1.0.0 involves (being) negotiated configurations and results in {tax tez | libbar->{tax/1,1 tez/3,1}}!, throwing retry_configuration trace: collect_build_postponed (0): cfg-negotiation of {tax | libbar->{tax/1,1}} failed due to dependent tez, adding shadow dependent and re-negotiating trace: collect_build_postponed (1): begin {tax | libbar->{tax/1,1}} %.* @@ -7967,7 +7879,6 @@ test.options += --no-progress %.* trace: collect_build_prerequisites: cfg-postpone dependency libbar/1.0.0 of dependent tez/1.0.0 trace: postponed_configurations::add: add {tez 3,1: libbar} to {tax | libbar->{tax/1,1}}! - trace: collect_build_prerequisites: dependent tez/1.0.0 is a shadow dependent for {tax tez | libbar->{tax/1,1 tez/3,1}}! trace: collect_build_prerequisites: configuration for cfg-postponed dependencies of dependent tez/1.0.0 is negotiated trace: collect_build_prerequisites: dependency libbar/1.0.0 of dependent tez/1.0.0 is already (being) recursively collected, skipping trace: collect_build_prerequisites: end tez/1.0.0 @@ -8039,7 +7950,7 @@ test.options += --no-progress %.* trace: collect_build_prerequisites: cfg-postpone dependency libbar/1.0.0 of dependent tez/1.0.0 trace: postponed_configurations::add: add {tez 3,1: libbar} to {tax | libbar->{tax/1,1}}! - trace: collect_build_prerequisites: cfg-postponing dependent tez/1.0.0 involves negotiated configurations and results in {tax tez | libbar->{tax/1,1 tez/3,1}}!, throwing retry_configuration + trace: collect_build_prerequisites: cfg-postponing dependent tez/1.0.0 involves (being) negotiated configurations and results in {tax tez | libbar->{tax/1,1 tez/3,1}}!, throwing retry_configuration trace: collect_build_postponed (0): cfg-negotiation of {tax | libbar->{tax/1,1}} failed due to dependent tez, adding shadow dependent and re-negotiating trace: collect_build_postponed (1): begin {tax | libbar->{tax/1,1}} %.* @@ -8083,7 +7994,6 @@ test.options += --no-progress %.* trace: collect_build_prerequisites: cfg-postpone dependency libbar/1.0.0 of dependent tez/1.0.0 trace: postponed_configurations::add: add {tez 3,1: libbar} to {tax | libbar->{tax/1,1}}! - trace: collect_build_prerequisites: dependent tez/1.0.0 is a shadow dependent for {tax tez | libbar->{tax/1,1 tez/3,1}}! trace: collect_build_prerequisites: configuration for cfg-postponed dependencies of dependent tez/1.0.0 is negotiated trace: collect_build_prerequisites: dependency libbar/1.0.0 of dependent tez/1.0.0 is already (being) recursively collected, skipping trace: collect_build_prerequisites: end tez/1.0.0 @@ -8206,7 +8116,7 @@ test.options += --no-progress %.* trace: collect_build_prerequisites: cfg-postpone dependency libbar/1.0.0 of dependent tex/1.0.0 trace: postponed_configurations::add: add {tex 1,1: libbar} to {tix | libbar->{tix/1,1}}! - trace: collect_build_prerequisites: cfg-postponing dependent tex/1.0.0 involves negotiated configurations and results in {tex tix | libbar->{tex/1,1 tix/1,1}}!, throwing retry_configuration + trace: collect_build_prerequisites: cfg-postponing dependent tex/1.0.0 involves (being) negotiated configurations and results in {tex tix | libbar->{tex/1,1 tix/1,1}}!, throwing retry_configuration trace: collect_build_postponed (0): cfg-negotiation of {tix | libbar->{tix/1,1}} failed due to dependent tex, adding shadow dependent and re-negotiating trace: collect_build_postponed (1): begin {tix | libbar->{tix/1,1}} %.* @@ -8230,7 +8140,6 @@ test.options += --no-progress %.* trace: collect_build_prerequisites: cfg-postpone dependency libbar/1.0.0 of dependent tex/1.0.0 trace: postponed_configurations::add: add {tex 1,1: libbar} to {tix | libbar->{tix/1,1}}! - trace: collect_build_prerequisites: dependent tex/1.0.0 is a shadow dependent for {tex tix | libbar->{tex/1,1 tix/1,1}}! trace: collect_build_prerequisites: configuration for cfg-postponed dependencies of dependent tex/1.0.0 is negotiated trace: collect_build_prerequisites: dependency libbar/1.0.0 of dependent tex/1.0.0 is already (being) recursively collected, skipping %.* @@ -8327,7 +8236,7 @@ test.options += --no-progress %.* trace: collect_build_prerequisites: cfg-postpone dependency libbar/1.0.0 of dependent tex/1.0.0 trace: postponed_configurations::add: add {tex 1,1: libbar} to {tix | libbar->{tix/1,1}}! - trace: collect_build_prerequisites: cfg-postponing dependent tex/1.0.0 involves negotiated configurations and results in {tex tix | libbar->{tex/1,1 tix/1,1}}!, throwing retry_configuration + trace: collect_build_prerequisites: cfg-postponing dependent tex/1.0.0 involves (being) negotiated configurations and results in {tex tix | libbar->{tex/1,1 tix/1,1}}!, throwing retry_configuration trace: collect_build_postponed (0): cfg-negotiation of {tix | libbar->{tix/1,1}} failed due to dependent tex, adding shadow dependent and re-negotiating trace: collect_build_postponed (1): begin {tix | libbar->{tix/1,1}} %.* @@ -8352,7 +8261,6 @@ test.options += --no-progress %.* trace: collect_build_prerequisites: cfg-postpone dependency libbar/1.0.0 of dependent tex/1.0.0 trace: postponed_configurations::add: add {tex 1,1: libbar} to {tix | libbar->{tix/1,1}}! - trace: collect_build_prerequisites: dependent tex/1.0.0 is a shadow dependent for {tex tix | libbar->{tex/1,1 tix/1,1}}! trace: collect_build_prerequisites: configuration for cfg-postponed dependencies of dependent tex/1.0.0 is negotiated trace: collect_build_prerequisites: dependency libbar/1.0.0 of dependent tex/1.0.0 is already (being) recursively collected, skipping %.* @@ -10219,7 +10127,7 @@ test.options += --no-progress %.* trace: collect_build_prerequisites: cfg-postpone dependency libbar/1.0.0 of dependent bar/1.0.0 trace: postponed_configurations::add: add {bar 1,1: libbar} to {dix | libbar->{dix/1,1}}! - trace: collect_build_prerequisites: cfg-postponing dependent bar/1.0.0 involves negotiated configurations and results in {bar dix | libbar->{bar/1,1 dix/1,1}}!, throwing retry_configuration + trace: collect_build_prerequisites: cfg-postponing dependent bar/1.0.0 involves (being) negotiated configurations and results in {bar dix | libbar->{bar/1,1 dix/1,1}}!, throwing retry_configuration trace: collect_build_postponed (0): cfg-negotiation of {dix | libbar->{dix/1,1}} failed due to dependent bar, adding shadow dependent and re-negotiating trace: collect_build_postponed (1): begin {dix | libbar->{dix/1,1}} %.* @@ -10289,7 +10197,6 @@ test.options += --no-progress %.* trace: collect_build_prerequisites: cfg-postpone dependency libbar/1.0.0 of dependent bar/1.0.0 trace: postponed_configurations::add: add {bar 1,1: libbar} to {dix | libbar->{dix/1,1}}! - trace: collect_build_prerequisites: dependent bar/1.0.0 is a shadow dependent for {bar dix | libbar->{bar/1,1 dix/1,1}}! trace: collect_build_prerequisites: configuration for cfg-postponed dependencies of dependent bar/1.0.0 is negotiated trace: collect_build_prerequisites: dependency libbar/1.0.0 of dependent bar/1.0.0 is already (being) recursively collected, skipping trace: collect_build_prerequisites: end bar/1.0.0 @@ -11355,7 +11262,7 @@ test.options += --no-progress %.* trace: collect_build_prerequisites: cfg-postpone dependency libbaz/1.0.0 of dependent bus/1.0.0 trace: postponed_configurations::add: add {bus 1,1: libbaz} to {bat | libbaz->{bat/1,1}}! - trace: collect_build_prerequisites: cfg-postponing dependent bus/1.0.0 involves negotiated configurations and results in {bat bus | libbaz->{bat/1,1 bus/1,1}}!, throwing retry_configuration + trace: collect_build_prerequisites: cfg-postponing dependent bus/1.0.0 involves (being) negotiated configurations and results in {bat bus | libbaz->{bat/1,1 bus/1,1}}!, throwing retry_configuration trace: collect_build_postponed (1): cfg-negotiation of {bat | libbaz->{bat/1,1}} failed due to dependent bus, adding shadow dependent and re-negotiating trace: collect_build_postponed (2): begin {bat | libbaz->{bat/1,1}} %.* @@ -11376,7 +11283,6 @@ test.options += --no-progress %.* trace: collect_build_prerequisites: cfg-postpone dependency libbaz/1.0.0 of dependent bus/1.0.0 trace: postponed_configurations::add: add {bus 1,1: libbaz} to {bat | libbaz->{bat/1,1}}! - trace: collect_build_prerequisites: dependent bus/1.0.0 is a shadow dependent for {bat bus | libbaz->{bat/1,1 bus/1,1}}! trace: collect_build_prerequisites: configuration for cfg-postponed dependencies of dependent bus/1.0.0 is negotiated trace: collect_build_prerequisites: dependency libbaz/1.0.0 of dependent bus/1.0.0 is already (being) recursively collected, skipping %.* @@ -11450,7 +11356,7 @@ test.options += --no-progress %.* trace: collect_build_prerequisites: cfg-postpone dependency libbaz/1.0.0 of dependent bus/1.0.0 trace: postponed_configurations::add: add {bus 1,1: libbaz} to {bat | libbaz->{bat/1,1}}! - trace: collect_build_prerequisites: cfg-postponing dependent bus/1.0.0 involves negotiated configurations and results in {bat bus | libbaz->{bat/1,1 bus/1,1}}!, throwing retry_configuration + trace: collect_build_prerequisites: cfg-postponing dependent bus/1.0.0 involves (being) negotiated configurations and results in {bat bus | libbaz->{bat/1,1 bus/1,1}}!, throwing retry_configuration trace: collect_build_postponed (1): cfg-negotiation of {bat | libbaz->{bat/1,1}} failed due to dependent bus, adding shadow dependent and re-negotiating trace: collect_build_postponed (2): begin {bat | libbaz->{bat/1,1}} %.* @@ -11471,7 +11377,6 @@ test.options += --no-progress %.* trace: collect_build_prerequisites: cfg-postpone dependency libbaz/1.0.0 of dependent bus/1.0.0 trace: postponed_configurations::add: add {bus 1,1: libbaz} to {bat | libbaz->{bat/1,1}}! - trace: collect_build_prerequisites: dependent bus/1.0.0 is a shadow dependent for {bat bus | libbaz->{bat/1,1 bus/1,1}}! trace: collect_build_prerequisites: configuration for cfg-postponed dependencies of dependent bus/1.0.0 is negotiated trace: collect_build_prerequisites: dependency libbaz/1.0.0 of dependent bus/1.0.0 is already (being) recursively collected, skipping %.* @@ -11491,7 +11396,7 @@ test.options += --no-progress %.* trace: collect_build_prerequisites: cfg-postpone dependency libfoo/1.0.0 of dependent foo/1.0.0 trace: postponed_configurations::add: add {foo 1,1: libfoo} to {bas baz | libbar->{bas/1,1 baz/1,1} libfoo->{baz/1,1}}! - trace: collect_build_prerequisites: cfg-postponing dependent foo/1.0.0 involves negotiated configurations and results in {bas baz foo | libbar->{bas/1,1 baz/1,1} libfoo->{baz/1,1 foo/1,1}}!, throwing retry_configuration + trace: collect_build_prerequisites: cfg-postponing dependent foo/1.0.0 involves (being) negotiated configurations and results in {bas baz foo | libbar->{bas/1,1 baz/1,1} libfoo->{baz/1,1 foo/1,1}}!, throwing retry_configuration trace: collect_build_postponed (0): cfg-negotiation of {bas baz | libbar->{bas/1,1 baz/1,1} libfoo->{baz/1,1}} failed due to dependent foo, adding shadow dependent and re-negotiating trace: collect_build_postponed (1): begin {bas baz | libbar->{bas/1,1 baz/1,1} libfoo->{baz/1,1}} %.* @@ -11531,7 +11436,7 @@ test.options += --no-progress %.* trace: collect_build_prerequisites: cfg-postpone dependency libbaz/1.0.0 of dependent bus/1.0.0 trace: postponed_configurations::add: add {bus 1,1: libbaz} to {bat | libbaz->{bat/1,1}}! - trace: collect_build_prerequisites: cfg-postponing dependent bus/1.0.0 involves negotiated configurations and results in {bat bus | libbaz->{bat/1,1 bus/1,1}}!, throwing retry_configuration + trace: collect_build_prerequisites: cfg-postponing dependent bus/1.0.0 involves (being) negotiated configurations and results in {bat bus | libbaz->{bat/1,1 bus/1,1}}!, throwing retry_configuration trace: collect_build_postponed (1): cfg-negotiation of {bat | libbaz->{bat/1,1}} failed due to dependent bus, adding shadow dependent and re-negotiating trace: collect_build_postponed (2): begin {bat | libbaz->{bat/1,1}} %.* @@ -11552,7 +11457,6 @@ test.options += --no-progress %.* trace: collect_build_prerequisites: cfg-postpone dependency libbaz/1.0.0 of dependent bus/1.0.0 trace: postponed_configurations::add: add {bus 1,1: libbaz} to {bat | libbaz->{bat/1,1}}! - trace: collect_build_prerequisites: dependent bus/1.0.0 is a shadow dependent for {bat bus | libbaz->{bat/1,1 bus/1,1}}! trace: collect_build_prerequisites: configuration for cfg-postponed dependencies of dependent bus/1.0.0 is negotiated trace: collect_build_prerequisites: dependency libbaz/1.0.0 of dependent bus/1.0.0 is already (being) recursively collected, skipping %.* @@ -11572,7 +11476,6 @@ test.options += --no-progress %.* trace: collect_build_prerequisites: cfg-postpone dependency libfoo/1.0.0 of dependent foo/1.0.0 trace: postponed_configurations::add: add {foo 1,1: libfoo} to {bas baz | libbar->{bas/1,1 baz/1,1} libfoo->{baz/1,1}}! - trace: collect_build_prerequisites: dependent foo/1.0.0 is a shadow dependent for {bas baz foo | libbar->{bas/1,1 baz/1,1} libfoo->{baz/1,1 foo/1,1}}! trace: collect_build_prerequisites: configuration for cfg-postponed dependencies of dependent foo/1.0.0 is negotiated trace: collect_build_prerequisites: dependency libfoo/1.0.0 of dependent foo/1.0.0 is already (being) recursively collected, skipping trace: collect_build_prerequisites: end foo/1.0.0 @@ -11795,7 +11698,7 @@ test.options += --no-progress %.* trace: collect_build_prerequisites: cfg-postpone dependency libbar/1.0.0 of dependent bar/1.0.0 trace: postponed_configurations::add: add {bar 1,1: libbar} to {dix | libbar->{dix/1,1}}! - trace: collect_build_prerequisites: cfg-postponing dependent bar/1.0.0 involves negotiated configurations and results in {bar dix | libbar->{bar/1,1 dix/1,1}}!, throwing retry_configuration + trace: collect_build_prerequisites: cfg-postponing dependent bar/1.0.0 involves (being) negotiated configurations and results in {bar dix | libbar->{bar/1,1 dix/1,1}}!, throwing retry_configuration trace: collect_build_postponed (0): cfg-negotiation of {dix | libbar->{dix/1,1}} failed due to dependent bar, adding shadow dependent and re-negotiating trace: collect_build_postponed (1): begin {dix | libbar->{dix/1,1}} %.* @@ -11867,7 +11770,6 @@ test.options += --no-progress %.* trace: collect_build_prerequisites: cfg-postpone dependency libbar/1.0.0 of dependent bar/1.0.0 trace: postponed_configurations::add: add {bar 1,1: libbar} to {dix | libbar->{dix/1,1}}! - trace: collect_build_prerequisites: dependent bar/1.0.0 is a shadow dependent for {bar dix | libbar->{bar/1,1 dix/1,1}}! trace: collect_build_prerequisites: configuration for cfg-postponed dependencies of dependent bar/1.0.0 is negotiated trace: collect_build_prerequisites: dependency libbar/1.0.0 of dependent bar/1.0.0 is already (being) recursively collected, skipping trace: collect_build_prerequisites: end bar/1.0.0 -- cgit v1.1