Comment 2 for bug 1294035

Revision history for this message
Faré (fahree) wrote :

NB: I think the importance/difficulty ratio of this change makes it not a suitable candidate for the impending release, but nevertheless wanted a place to dump this idea. Let's table this discussion until after release. The issues that I think are release worthy are: A non-hidden default source tree https://bugs.launchpad.net/asdf/+bug/1293278 and Fix defsystem to accept strings as operation designators https://bugs.launchpad.net/asdf/+bug/1293292 — thanks.

I see several potential solutions:

(1) document that the user is on their own if a file A defines a dependency on a component B from another system. For instance, if A's system is forced-not. the traversal might not see B if even if its system is forced.

(2) enforce the restriction (or merely check it and warn?) by adding around method for load-op, compile-op and/or prepare-op, (or all operations, unless they belong to an authorized subclass, such as gather-op (?)) that check the results of component-depends-on: unless the operation is authorized, then every component nust be a string (resolved in the parent), or the component itself, or one of its children, or the parent of the component, or maybe component in the same system. Another exception is for system objects themselves: they may depend on other any operation with another system, as well as any operation with its children.