lein-ancient icon indicating copy to clipboard operation
lein-ancient copied to clipboard

Check dependencies that are not part of `project.clj`

Open xsc opened this issue 4 years ago • 1 comments

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-parent to include e.g. :managed-dependencies or 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?

xsc avatar Jan 28 '21 07:01 xsc

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.

dancek avatar Jan 28 '21 13:01 dancek