Some dependendies cannot be easily detected in a static way. For example, when you use reflection, or when you send a polymorphic message that has implementations over many packages. In such cases, it is not obvious for the tool to see what is the actual dependency. Then, the user can resolve it manually => this goes to the manuallyResolvedDependencies.

In general terms, the dependency analyzer does this:

- it checks all dependencies of the package (all classes it depends, all messages sent that are not defined in the package itself) - then it checks if it can find a package for each of them. Classes are easy. Messages not so. - At the end, the intersection between the dependent packages and the manually resolved ones should be the manually resolved packages. Otherwise it means that you have manually resolved packages that are obsolete and need to be updated.

Hope this clarifies a bit. If not keep asking ^^.


-------- Original Message --------
This curious warning appeared when running TestRunner in a fresh
60224.image... Collections-Abstract: Collections-Arithmetic dependency
declared in the package Manifest as manuallyResolvedDependencies not
detected as a dependency!

There is...
ManifestCollectionsArithmetic class >> dependencies
     ^ #(#'Collections-Native' #'Collections-Unordered'
#'Collections-Sequenceable' #Kernel #'Collections-Abstract')

and removing the last element makes the error go away, but I was
wondering if that was the RightThing or the warning was a symptom for
something else?

btw, was is "manually resolved" ?  Is it just adding elements to #dependencies?

cheers -ben

Reply via email to