diff --git a/.github/scripts/levelization/generate.sh b/.github/scripts/levelization/generate.sh index d700c7a2061..371b5c6dd5d 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 7914704f9dc..21ded7e5708 100644 --- a/.github/scripts/levelization/results/loops.txt +++ b/.github/scripts/levelization/results/loops.txt @@ -5,14 +5,17 @@ Loop: test.jtx test.unit_test test.unit_test == test.jtx 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.rpc.detail + xrpld.rpc.detail > xrpld.app + Loop: xrpld.app xrpld.shamap xrpld.shamap ~= xrpld.app diff --git a/.github/scripts/levelization/results/ordering.txt b/.github/scripts/levelization/results/ordering.txt index d4d07eee940..4a4c9188718 100644 --- a/.github/scripts/levelization/results/ordering.txt +++ b/.github/scripts/levelization/results/ordering.txt @@ -1,77 +1,103 @@ -libxrpl.basics > xrpl.basics +libxrpl.basics > openssl.toplevel (no includes counted) +libxrpl.basics > xrpl.beast libxrpl.conditions > xrpl.basics -libxrpl.conditions > xrpl.conditions -libxrpl.core > xrpl.basics -libxrpl.core > xrpl.core +libxrpl.conditions > xrpl.conditions.detail +libxrpl.core.detail > xrpl.basics +libxrpl.core.detail > 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.rdb > soci.sqlite3 (no includes counted) libxrpl.rdb > xrpl.basics -libxrpl.rdb > xrpl.rdb 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.rdb -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 libxrpl.tx > xrpl.basics +libxrpl.tx > xrpl.beast libxrpl.tx > xrpl.conditions libxrpl.tx > xrpl.core libxrpl.tx > xrpl.json libxrpl.tx > xrpl.ledger libxrpl.tx > xrpl.protocol libxrpl.tx > xrpl.server -libxrpl.tx > xrpl.tx +libxrpl.tx > xrpl.tx.detail +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 > xrpl.core 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.rdb test.app > xrpl.resource test.app > xrpl.server test.app > xrpl.tx +test.app > xrpl.tx.detail test.basics > test.jtx test.basics > test.unit_test test.basics > xrpl.basics +test.basics > xrpl.beast test.basics > xrpl.core -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 > xrpl.conditions +test.conditions > xrpl.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 @@ -81,18 +107,24 @@ test.core > test.jtx test.core > test.toplevel test.core > test.unit_test test.core > xrpl.basics +test.core > xrpl.beast test.core > xrpl.core +test.core > xrpl.core.detail test.core > xrpld.core test.core > xrpl.json test.core > xrpl.rdb 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.json +test.jtx > 1 (no includes counted) +test.jtx > date.toplevel (no includes counted) test.jtx > xrpl.basics +test.jtx > xrpl.beast test.jtx > xrpl.core test.jtx > xrpld.app test.jtx > xrpld.core @@ -107,57 +139,78 @@ test.jtx > xrpl.tx 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 > xrpl.nodestore +test.nodestore > xrpl.nodestore.detail test.nodestore > xrpl.rdb 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.nodestore 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 > xrpl.core test.rpc > xrpld.app test.rpc > xrpld.core test.rpc > xrpld.overlay test.rpc > xrpld.rpc +test.rpc > xrpld.rpc.detail test.rpc > xrpl.json test.rpc > xrpl.ledger +test.rpc > xrpl.proto (no includes counted) test.rpc > xrpl.protocol test.rpc > xrpl.resource +test.rpc > xrpl.resource.detail test.rpc > xrpl.server test.rpc > xrpl.tx 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 @@ -165,103 +218,216 @@ 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 > google.protobuf (no includes counted) +tests.libxrpl > gtest.toplevel (no includes counted) +tests.libxrpl > helpers.toplevel (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.conditions > xrpl.basics -xrpl.conditions > xrpl.protocol +xrpl.conditions.detail > xrpl.basics +xrpl.conditions.detail > xrpl.protocol xrpl.core > xrpl.basics +xrpl.core > xrpl.beast xrpl.core > xrpl.json xrpl.core > xrpl.ledger xrpl.core > xrpl.protocol +xrpl.core.detail > 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 > xrpl.server xrpl.ledger > xrpl.shamap +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.rdb > soci.toplevel (no includes counted) xrpl.rdb > xrpl.basics +xrpl.rdb > xrpl.beast xrpl.rdb > xrpl.core xrpl.rdb > xrpl.protocol 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.beast xrpl.server > xrpl.core xrpl.server > xrpl.json xrpl.server > xrpl.protocol xrpl.server > xrpl.rdb xrpl.server > xrpl.resource xrpl.server > xrpl.shamap +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 xrpl.tx > xrpl.basics +xrpl.tx > xrpl.beast xrpl.tx > xrpl.core xrpl.tx > xrpl.ledger xrpl.tx > xrpl.protocol +xrpl.tx.detail > xrpl.basics +xrpl.tx.detail > xrpl.ledger +xrpl.tx.detail > xrpl.protocol +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 > xrpl.beast xrpld.app > xrpl.core +xrpld.app > xrpl.crypto (no includes counted) xrpld.app > xrpld.consensus xrpld.app > xrpld.core xrpld.app > xrpl.json xrpld.app > xrpl.ledger -xrpld.app > xrpl.net xrpld.app > xrpl.nodestore +xrpld.app > xrpl.nodestore.detail +xrpld.app > xrpl.proto (no includes counted) xrpld.app > xrpl.protocol xrpld.app > xrpl.rdb xrpld.app > xrpl.resource xrpld.app > xrpl.server xrpld.app > xrpl.shamap xrpld.app > xrpl.tx +xrpld.app.detail > soci.sqlite3 (no includes counted) +xrpld.app.detail > xrpl.basics +xrpld.app.detail > xrpl.beast +xrpld.app.detail > xrpl.core +xrpld.app.detail > xrpld.core +xrpld.app.detail > xrpld.overlay +xrpld.app.detail > xrpld.rpc +xrpld.app.detail > xrpl.json +xrpld.app.detail > xrpl.ledger +xrpld.app.detail > xrpl.net +xrpld.app.detail > xrpl.protocol +xrpld.app.detail > xrpl.rdb +xrpld.app.detail > xrpl.resource +xrpld.app.detail > xrpl.server +xrpld.app.detail > xrpl.shamap +xrpld.app.detail > xrpl.tx +xrpld.app.detail > xrpl.tx.detail xrpld.consensus > xrpl.basics +xrpld.consensus > xrpl.beast xrpld.consensus > xrpl.json xrpld.consensus > xrpl.protocol xrpld.core > xrpl.basics +xrpld.core > xrpl.beast xrpld.core > xrpl.core -xrpld.core > xrpl.json -xrpld.core > xrpl.net xrpld.core > xrpl.protocol xrpld.core > xrpl.rdb +xrpld.core.detail > sys.toplevel (no includes counted) +xrpld.core.detail > xrpl.basics +xrpld.core.detail > xrpl.beast +xrpld.core.detail > xrpl.json +xrpld.core.detail > xrpl.net +xrpld.core.detail > xrpl.protocol xrpld.overlay > xrpl.basics -xrpld.overlay > xrpl.core +xrpld.overlay > xrpl.beast xrpld.overlay > xrpld.core -xrpld.overlay > xrpld.peerfinder xrpld.overlay > xrpl.json xrpld.overlay > xrpl.protocol -xrpld.overlay > xrpl.rdb -xrpld.overlay > xrpl.resource xrpld.overlay > xrpl.server -xrpld.overlay > xrpl.tx -xrpld.peerfinder > xrpl.basics +xrpld.overlay.detail > google.protobuf (no includes counted) +xrpld.overlay.detail > xrpl.basics +xrpld.overlay.detail > xrpl.beast +xrpld.overlay.detail > xrpl.core +xrpld.overlay.detail > xrpld.app +xrpld.overlay.detail > xrpld.app.detail +xrpld.overlay.detail > xrpld.core +xrpld.overlay.detail > xrpld.peerfinder +xrpld.overlay.detail > xrpld.rpc +xrpld.overlay.detail > xrpl.json +xrpld.overlay.detail > xrpl.protocol +xrpld.overlay.detail > xrpl.rdb +xrpld.overlay.detail > xrpl.resource +xrpld.overlay.detail > xrpl.server +xrpld.overlay.detail > xrpl.tx +xrpld.peerfinder > xrpl.beast xrpld.peerfinder > xrpld.core xrpld.peerfinder > xrpl.protocol -xrpld.peerfinder > xrpl.rdb -xrpld.perflog > xrpl.basics -xrpld.perflog > xrpl.core -xrpld.perflog > xrpld.rpc -xrpld.perflog > xrpl.json +xrpld.peerfinder.detail > xrpl.basics +xrpld.peerfinder.detail > xrpl.beast +xrpld.peerfinder.detail > xrpl.rdb +xrpld.perflog.detail > xrpl.basics +xrpld.perflog.detail > xrpl.beast +xrpld.perflog.detail > xrpl.core +xrpld.perflog.detail > xrpld.rpc.detail +xrpld.perflog.detail > xrpl.json +xrpld.rpc > grpcpp.support (no includes counted) +xrpld.rpc > grpcpp.toplevel (no includes counted) xrpld.rpc > xrpl.basics +xrpld.rpc > xrpl.beast xrpld.rpc > xrpl.core +xrpld.rpc > xrpl.crypto (no includes counted) xrpld.rpc > xrpld.core xrpld.rpc > xrpl.json xrpld.rpc > xrpl.ledger -xrpld.rpc > xrpl.net xrpld.rpc > xrpl.nodestore +xrpld.rpc > xrpl.proto (no includes counted) xrpld.rpc > xrpl.protocol xrpld.rpc > xrpl.rdb xrpld.rpc > xrpl.resource xrpld.rpc > xrpl.server xrpld.rpc > xrpl.tx +xrpld.rpc.detail > xrpl.basics +xrpld.rpc.detail > xrpl.beast +xrpld.rpc.detail > xrpl.core +xrpld.rpc.detail > xrpld.core +xrpld.rpc.detail > xrpld.overlay +xrpld.rpc.detail > xrpl.json +xrpld.rpc.detail > xrpl.ledger +xrpld.rpc.detail > xrpl.net +xrpld.rpc.detail > xrpl.proto (no includes counted) +xrpld.rpc.detail > xrpl.protocol +xrpld.rpc.detail > xrpl.rdb +xrpld.rpc.detail > xrpl.resource +xrpld.rpc.detail > xrpl.server +xrpld.rpc.detail > xrpl.server.detail +xrpld.rpc.detail > xrpl.tx xrpld.shamap > xrpl.shamap