Merge pull request 'feat(addon-system): add <kindred> package.xml extensions and schema docs' (#257) from feat/package-xml-schema into main
Reviewed-on: #257
This commit was merged in pull request #257.
This commit is contained in:
@@ -381,7 +381,16 @@ def resolve_load_order(
|
||||
ts.add(m.name, *known_deps)
|
||||
|
||||
try:
|
||||
order = list(ts.static_order())
|
||||
# Process level by level so we can sort within each topological level
|
||||
ts.prepare()
|
||||
order = []
|
||||
while ts.is_active():
|
||||
ready = list(ts.get_ready())
|
||||
# Sort each level by (priority, name) for determinism
|
||||
ready.sort(key=lambda n: (by_name[n].load_priority, n) if n in by_name else (999, n))
|
||||
for name in ready:
|
||||
ts.done(name)
|
||||
order.extend(ready)
|
||||
except CycleError as e:
|
||||
FreeCAD.Console.PrintWarning(
|
||||
f"Create: Dependency cycle detected: {e}. Falling back to priority order.\n"
|
||||
@@ -391,8 +400,7 @@ def resolve_load_order(
|
||||
key=lambda m: (m.load_priority, m.name),
|
||||
)
|
||||
|
||||
# Filter to actual manifests, preserving topological order
|
||||
# Secondary sort within independent groups by (priority, name)
|
||||
# Filter to actual manifests, preserving sorted topological order
|
||||
result = []
|
||||
for name in order:
|
||||
m = by_name.get(name)
|
||||
|
||||
Reference in New Issue
Block a user