From 4a5fd28c297b9cc1dc657bb53f976649c3b38074 Mon Sep 17 00:00:00 2001 From: Ed Hennis Date: Tue, 3 Sep 2024 20:03:45 -0400 Subject: [PATCH] WIP: Treat "detail" folders as separate --- .github/scripts/levelization/generate.sh | 22 +++ .../scripts/levelization/results/loops.txt | 20 +-- .../scripts/levelization/results/ordering.txt | 166 ++++++++++++------ 3 files changed, 137 insertions(+), 71 deletions(-) diff --git a/.github/scripts/levelization/generate.sh b/.github/scripts/levelization/generate.sh index 775ddf789f1..5eefc5a7a03 100755 --- a/.github/scripts/levelization/generate.sh +++ b/.github/scripts/levelization/generate.sh @@ -53,6 +53,22 @@ do includelevel="$( dirname ${includelevel} )/toplevel" fi includelevel=$( echo ${includelevel} | tr '/' '.' ) + if [[ "${file}" =~ "/detail/" ]] + then + if [[ "${include}" =~ "/detail/" ]] || true + then + level+=".detail" + else + # Files in "detail" folders don't have to follow levelization + # rules, except for other "detail" folders" + echo "Ignoring file $file include $include" | tee -a details.txt + continue + fi + fi + if [[ "${include}" =~ "/detail/" ]] + then + includelevel+=".detail" + fi if [[ "$level" != "$includelevel" ]] then @@ -89,6 +105,10 @@ do exec 5<"${source}" # open for input while read -r -u 5 include includefreq do + if [[ "${include}" =~ "${source}" || "${source}" =~ "${include}" ]] + then + continue + fi if [[ -f $include ]] then if grep -q -w $source $include @@ -116,6 +136,8 @@ do else echo "$source > $include" >> "${ordering}" fi + else + echo "$source > $include (no includes counted)" >> "${ordering}" fi done exec 5>&- #close fd 5 diff --git a/.github/scripts/levelization/results/loops.txt b/.github/scripts/levelization/results/loops.txt index d057391be92..397d1d72c3c 100644 --- a/.github/scripts/levelization/results/loops.txt +++ b/.github/scripts/levelization/results/loops.txt @@ -8,23 +8,9 @@ Loop: xrpld.app xrpld.core xrpld.app > xrpld.core Loop: xrpld.app xrpld.overlay - xrpld.overlay > xrpld.app + xrpld.app > xrpld.overlay -Loop: xrpld.app xrpld.peerfinder - xrpld.peerfinder ~= xrpld.app +Loop: xrpld.app xrpld.peerfinder.detail + xrpld.peerfinder.detail ~= xrpld.app Loop: xrpld.app xrpld.rpc - xrpld.rpc > xrpld.app - -Loop: xrpld.app xrpld.shamap - xrpld.shamap ~= xrpld.app - -Loop: xrpld.core xrpld.perflog - xrpld.perflog == xrpld.core - -Loop: xrpld.overlay xrpld.rpc - xrpld.rpc ~= xrpld.overlay - -Loop: xrpld.perflog xrpld.rpc - xrpld.rpc ~= xrpld.perflog - diff --git a/.github/scripts/levelization/results/ordering.txt b/.github/scripts/levelization/results/ordering.txt index 251e9c1957d..fd6b5a35591 100644 --- a/.github/scripts/levelization/results/ordering.txt +++ b/.github/scripts/levelization/results/ordering.txt @@ -1,58 +1,82 @@ -libxrpl.basics > xrpl.basics +libxrpl.basics > openssl.toplevel (no includes counted) +libxrpl.basics > xrpl.beast +libxrpl.crypto > openssl.toplevel (no includes counted) libxrpl.crypto > xrpl.basics +libxrpl.crypto > xrpl.beast libxrpl.json > xrpl.basics -libxrpl.json > xrpl.json +libxrpl.json > xrpl.beast +libxrpl.json > xrpl.json.detail libxrpl.ledger > xrpl.basics +libxrpl.ledger > xrpl.beast libxrpl.ledger > xrpl.json -libxrpl.ledger > xrpl.ledger +libxrpl.ledger > xrpl.ledger.detail libxrpl.ledger > xrpl.protocol +libxrpl.net > openssl.toplevel (no includes counted) libxrpl.net > xrpl.basics -libxrpl.net > xrpl.net +libxrpl.net > xrpl.beast +libxrpl.nodestore > nudb.toplevel (no includes counted) libxrpl.nodestore > xrpl.basics +libxrpl.nodestore > xrpl.beast libxrpl.nodestore > xrpl.json -libxrpl.nodestore > xrpl.nodestore +libxrpl.nodestore > xrpl.nodestore.detail libxrpl.nodestore > xrpl.protocol +libxrpl.protocol > openssl.toplevel (no includes counted) libxrpl.protocol > xrpl.basics +libxrpl.protocol > xrpl.beast +libxrpl.protocol > xrpl.crypto (no includes counted) libxrpl.protocol > xrpl.json -libxrpl.protocol > xrpl.protocol +libxrpl.protocol > xrpl.protocol.detail libxrpl.resource > xrpl.basics +libxrpl.resource > xrpl.beast libxrpl.resource > xrpl.json -libxrpl.resource > xrpl.resource +libxrpl.resource > xrpl.resource.detail libxrpl.server > xrpl.basics +libxrpl.server > xrpl.beast libxrpl.server > xrpl.json libxrpl.server > xrpl.protocol -libxrpl.server > xrpl.server +libxrpl.server > xrpl.server.detail libxrpl.shamap > xrpl.basics +libxrpl.shamap > xrpl.beast libxrpl.shamap > xrpl.protocol -libxrpl.shamap > xrpl.shamap +test.app > date.toplevel (no includes counted) test.app > test.jtx test.app > test.rpc test.app > test.toplevel test.app > test.unit_test test.app > xrpl.basics +test.app > xrpl.beast test.app > xrpld.app +test.app > xrpld.app.detail test.app > xrpld.core test.app > xrpld.overlay +test.app > xrpld.overlay.detail test.app > xrpld.rpc +test.app > xrpld.rpc.detail test.app > xrpl.json test.app > xrpl.ledger -test.app > xrpl.nodestore +test.app > xrpl.nodestore.detail test.app > xrpl.protocol test.app > xrpl.resource test.basics > test.jtx test.basics > test.unit_test test.basics > xrpl.basics +test.basics > xrpl.beast test.basics > xrpld.perflog -test.basics > xrpld.rpc +test.basics > xrpld.rpc.detail test.basics > xrpl.json test.basics > xrpl.protocol +test.basics > xrpl.protocol.detail test.beast > xrpl.basics +test.beast > xrpl.beast test.conditions > xrpl.basics +test.conditions > xrpl.beast test.conditions > xrpld.conditions +test.conditions > xrpld.conditions.detail test.consensus > test.csf test.consensus > test.toplevel test.consensus > test.unit_test test.consensus > xrpl.basics +test.consensus > xrpl.beast test.consensus > xrpld.app test.consensus > xrpld.consensus test.consensus > xrpl.json @@ -61,18 +85,26 @@ test.core > test.jtx test.core > test.toplevel test.core > test.unit_test test.core > xrpl.basics +test.core > xrpl.beast test.core > xrpld.core +test.core > xrpld.core.detail test.core > xrpld.perflog test.core > xrpl.json test.core > xrpl.server test.csf > xrpl.basics +test.csf > xrpl.beast test.csf > xrpld.consensus test.csf > xrpl.json test.csf > xrpl.protocol test.json > test.jtx +test.json > xrpl.beast test.json > xrpl.json +test.jtx > 1 (no includes counted) +test.jtx > date.toplevel (no includes counted) test.jtx > xrpl.basics +test.jtx > xrpl.beast test.jtx > xrpld.app +test.jtx > xrpld.app.detail test.jtx > xrpld.core test.jtx > xrpld.rpc test.jtx > xrpl.json @@ -84,52 +116,74 @@ test.jtx > xrpl.server test.ledger > test.jtx test.ledger > test.toplevel test.ledger > xrpl.basics +test.ledger > xrpl.beast test.ledger > xrpld.app test.ledger > xrpld.core test.ledger > xrpl.ledger test.ledger > xrpl.protocol +test.nodestore > nudb.detail.detail (no includes counted) +test.nodestore > nudb.toplevel (no includes counted) test.nodestore > test.jtx test.nodestore > test.toplevel test.nodestore > test.unit_test test.nodestore > xrpl.basics +test.nodestore > xrpl.beast test.nodestore > xrpld.core test.nodestore > xrpl.nodestore +test.nodestore > xrpl.nodestore.detail test.overlay > test.jtx test.overlay > test.toplevel test.overlay > test.unit_test test.overlay > xrpl.basics +test.overlay > xrpl.beast test.overlay > xrpld.app test.overlay > xrpld.overlay -test.overlay > xrpld.peerfinder +test.overlay > xrpld.overlay.detail +test.overlay > xrpld.peerfinder.detail test.overlay > xrpl.protocol test.overlay > xrpl.shamap test.peerfinder > test.beast test.peerfinder > test.unit_test test.peerfinder > xrpl.basics +test.peerfinder > xrpl.beast test.peerfinder > xrpld.core test.peerfinder > xrpld.peerfinder +test.peerfinder > xrpld.peerfinder.detail test.peerfinder > xrpl.protocol +test.protocol > sys.toplevel (no includes counted) test.protocol > test.toplevel test.protocol > xrpl.basics +test.protocol > xrpl.beast +test.protocol > xrpl.crypto (no includes counted) test.protocol > xrpl.json test.protocol > xrpl.protocol test.resource > test.unit_test test.resource > xrpl.basics +test.resource > xrpl.beast test.resource > xrpl.resource +test.resource > xrpl.resource.detail +test.rpc > 2 (no includes counted) +test.rpc > grpcpp.toplevel (no includes counted) test.rpc > test.jtx test.rpc > test.toplevel test.rpc > xrpl.basics +test.rpc > xrpl.beast test.rpc > xrpld.app +test.rpc > xrpld.app.detail test.rpc > xrpld.core test.rpc > xrpld.overlay test.rpc > xrpld.rpc +test.rpc > xrpld.rpc.detail test.rpc > xrpl.json +test.rpc > xrpl.proto (no includes counted) test.rpc > xrpl.protocol test.rpc > xrpl.resource +test.rpc > xrpl.resource.detail test.server > test.jtx test.server > test.toplevel test.server > test.unit_test test.server > xrpl.basics +test.server > xrpl.beast test.server > xrpld.app test.server > xrpld.core test.server > xrpld.rpc @@ -137,73 +191,77 @@ test.server > xrpl.json test.server > xrpl.server test.shamap > test.unit_test test.shamap > xrpl.basics +test.shamap > xrpl.beast test.shamap > xrpl.nodestore test.shamap > xrpl.protocol test.shamap > xrpl.shamap test.toplevel > test.csf test.toplevel > xrpl.json test.unit_test > xrpl.basics +test.unit_test > xrpl.beast +tests.libxrpl > doctest.toplevel (no includes counted) +tests.libxrpl > google.protobuf (no includes counted) tests.libxrpl > xrpl.basics +tests.libxrpl > xrpl.beast +tests.libxrpl > xrpl.crypto (no includes counted) tests.libxrpl > xrpl.json tests.libxrpl > xrpl.net +xrpl.basics > date.toplevel (no includes counted) +xrpl.basics > rocksdb.toplevel (no includes counted) +xrpl.basics > sys.toplevel (no includes counted) +xrpl.basics > xrpl.beast xrpl.json > xrpl.basics +xrpl.json > xrpl.beast +xrpl.json.detail > xrpl.basics xrpl.ledger > xrpl.basics +xrpl.ledger > xrpl.beast xrpl.ledger > xrpl.protocol +xrpl.ledger.detail > xrpl.beast +xrpl.ledger.detail > xrpl.protocol xrpl.net > xrpl.basics +xrpl.net > xrpl.beast +xrpl.nodestore > nudb.toplevel (no includes counted) xrpl.nodestore > xrpl.basics +xrpl.nodestore > xrpl.beast xrpl.nodestore > xrpl.protocol +xrpl.nodestore.detail > nudb.detail.detail (no includes counted) +xrpl.nodestore.detail > xrpl.basics +xrpl.nodestore.detail > xrpl.beast +xrpl.nodestore.detail > xrpl.protocol xrpl.protocol > xrpl.basics +xrpl.protocol > xrpl.beast +xrpl.protocol > xrpl.crypto (no includes counted) xrpl.protocol > xrpl.json +xrpl.protocol.detail > xrpl.basics +xrpl.protocol.detail > xrpl.beast xrpl.resource > xrpl.basics +xrpl.resource > xrpl.beast xrpl.resource > xrpl.json xrpl.resource > xrpl.protocol +xrpl.resource.detail > xrpl.basics +xrpl.resource.detail > xrpl.beast +xrpl.resource.detail > xrpl.json +xrpl.resource.detail > xrpl.protocol xrpl.server > xrpl.basics -xrpl.server > xrpl.json -xrpl.server > xrpl.protocol +xrpl.server > xrpl.beast +xrpl.server.detail > sys.toplevel (no includes counted) +xrpl.server.detail > xrpl.basics +xrpl.server.detail > xrpl.beast +xrpl.server.detail > xrpl.crypto (no includes counted) +xrpl.server.detail > xrpl.json +xrpl.server.detail > xrpl.protocol xrpl.shamap > xrpl.basics +xrpl.shamap > xrpl.beast xrpl.shamap > xrpl.nodestore xrpl.shamap > xrpl.protocol +xrpl.shamap.detail > xrpl.basics +xrpld.app > date.toplevel (no includes counted) +xrpld.app > google.protobuf (no includes counted) +xrpld.app > grpcpp.toplevel (no includes counted) +xrpld.app > sys.toplevel (no includes counted) xrpld.app > test.unit_test xrpld.app > xrpl.basics -xrpld.app > xrpld.conditions +xrpld.app > xrpl.beast +xrpld.app > xrpl.crypto (no includes counted) xrpld.app > xrpld.consensus xrpld.app > xrpld.perflog -xrpld.app > xrpl.json -xrpld.app > xrpl.ledger -xrpld.app > xrpl.net -xrpld.app > xrpl.nodestore -xrpld.app > xrpl.protocol -xrpld.app > xrpl.resource -xrpld.app > xrpl.shamap -xrpld.conditions > xrpl.basics -xrpld.conditions > xrpl.protocol -xrpld.consensus > xrpl.basics -xrpld.consensus > xrpl.json -xrpld.consensus > xrpl.protocol -xrpld.core > xrpl.basics -xrpld.core > xrpl.json -xrpld.core > xrpl.net -xrpld.core > xrpl.protocol -xrpld.overlay > xrpl.basics -xrpld.overlay > xrpld.core -xrpld.overlay > xrpld.peerfinder -xrpld.overlay > xrpld.perflog -xrpld.overlay > xrpl.json -xrpld.overlay > xrpl.protocol -xrpld.overlay > xrpl.resource -xrpld.overlay > xrpl.server -xrpld.peerfinder > xrpl.basics -xrpld.peerfinder > xrpld.core -xrpld.peerfinder > xrpl.protocol -xrpld.perflog > xrpl.basics -xrpld.perflog > xrpl.json -xrpld.rpc > xrpl.basics -xrpld.rpc > xrpld.core -xrpld.rpc > xrpl.json -xrpld.rpc > xrpl.ledger -xrpld.rpc > xrpl.net -xrpld.rpc > xrpl.nodestore -xrpld.rpc > xrpl.protocol -xrpld.rpc > xrpl.resource -xrpld.rpc > xrpl.server -xrpld.shamap > xrpl.shamap