Check dependencies that are not part of `project.clj`
Issue #83 showed that it's possible to have versions defined outside of the project.clj file. There are multiple cases where this could happen:
- Using
lein-parentto include e.g.:managed-dependenciesor even:dependencies. - Using other plugins/middlewares that add dependencies.
- Using syntax-quotes in
project.clj, e.g. to include data from another file. - ...
It won't be possible to upgrade those automatically but they could be shown when checking for outdated dependencies. To achieve that, we'd no longer use only the file to collect dependencies, but also look at the pre-processed :dependencies that Leiningen provides.
Of course, this can have surprising effects, since you could be informed about a dependency that's outdated without any indication where it's coming from - lein-ancient can't know that easily. In that regard, there is some similarity to transitive dependencies, which we're not checking right now, either.
This could be an optional behaviour, though, to be used at the user's discretion. Thoughts?
If it's difficult to know where a dependency comes from, the current functionality seems to be the sane choice. Just my two cents. It's not difficult to run lein ancient in the parent directory, once you know that's needed.