Merge pull request 'feat(addon-system): add <kindred> package.xml extensions and schema docs' (#257) from feat/package-xml-schema into main
Some checks failed
Deploy Docs / build-and-deploy (push) Successful in 46s
Build and Test / build (push) Failing after 2m1s

Reviewed-on: #257
This commit was merged in pull request #257.
This commit is contained in:
2026-02-17 13:15:47 +00:00
5 changed files with 123 additions and 5 deletions

View File

@@ -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)