Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
4a5fd28
WIP: Treat "detail" folders as separate
ximinez Sep 4, 2024
8f90cf5
Merge branch 'develop' into levelization_details
ximinez Nov 12, 2025
88cd257
Merge branch 'develop' into levelization_details
ximinez Nov 13, 2025
3bf72cb
Merge branch 'develop' into levelization_details
ximinez Nov 15, 2025
fc2902b
Merge branch 'develop' into levelization_details
ximinez Nov 19, 2025
c128295
Merge branch 'develop' into levelization_details
ximinez Nov 21, 2025
b106042
Merge branch 'develop' into levelization_details
ximinez Nov 25, 2025
f7c9214
Merge branch 'develop' into levelization_details
ximinez Nov 28, 2025
f05df2c
Merge branch 'develop' into levelization_details
ximinez Dec 1, 2025
0e03e5f
Merge branch 'develop' into levelization_details
ximinez Dec 3, 2025
dbefb2e
Merge branch 'develop' into levelization_details
ximinez Dec 6, 2025
4db7f12
Merge remote-tracking branch 'ximinez/develop' into levelization_details
ximinez Dec 19, 2025
d3020bc
Merge branch 'develop' into levelization_details
ximinez Dec 22, 2025
8cc0102
Merge branch 'develop' into levelization_details
ximinez Jan 6, 2026
df72171
Merge branch 'develop' into levelization_details
ximinez Jan 8, 2026
b048f50
Merge branch 'develop' into levelization_details
ximinez Jan 8, 2026
5df590e
Merge branch 'develop' into levelization_details
ximinez Jan 11, 2026
490e388
Merge branch 'develop' into levelization_details
ximinez Jan 12, 2026
4127a80
Merge branch 'develop' into levelization_details
ximinez Jan 13, 2026
bf4629a
Merge branch 'develop' into levelization_details
ximinez Jan 15, 2026
204c30a
Merge commit '92046785d1fea5f9efe5a770d636792ea6cab78b' into leveliza…
ximinez Jan 28, 2026
d6b42c5
Merge commit '5f638f55536def0d88b970d1018a465a238e55f4' into leveliza…
ximinez Jan 28, 2026
86f1c72
Merge branch 'develop' into levelization_details
ximinez Jan 28, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 22 additions & 0 deletions .github/scripts/levelization/generate.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down
14 changes: 3 additions & 11 deletions .github/scripts/levelization/results/loops.txt
Original file line number Diff line number Diff line change
Expand Up @@ -8,17 +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.overlay xrpld.rpc
xrpld.rpc ~= xrpld.overlay

176 changes: 116 additions & 60 deletions .github/scripts/levelization/results/ordering.txt
Original file line number Diff line number Diff line change
@@ -1,61 +1,85 @@
libxrpl.basics > xrpl.basics
libxrpl.core > xrpl.basics
libxrpl.core > xrpl.core
libxrpl.basics > openssl.toplevel (no includes counted)
libxrpl.basics > xrpl.beast
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.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 > 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.resource
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 > 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
Expand All @@ -64,18 +88,25 @@ 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.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 > xrpld.app
test.jtx > xrpld.app.detail
test.jtx > xrpld.core
test.jtx > xrpld.rpc
test.jtx > xrpl.json
Expand All @@ -87,134 +118,159 @@ 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.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.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
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.core > xrpl.basics
xrpl.core > xrpl.beast
xrpl.core > xrpl.json
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.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 > xrpl.beast
xrpld.app > xrpl.core
xrpld.app > xrpld.conditions
xrpld.app > xrpl.crypto (no includes counted)
xrpld.app > xrpld.consensus
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.core
xrpld.core > xrpl.json
xrpld.core > xrpl.net
xrpld.core > xrpl.protocol
xrpld.overlay > xrpl.basics
xrpld.overlay > xrpl.core
xrpld.overlay > xrpld.core
xrpld.overlay > xrpld.peerfinder
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.core
xrpld.perflog > xrpld.rpc
xrpld.perflog > xrpl.json
xrpld.rpc > xrpl.basics
xrpld.rpc > xrpl.core
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