Skip to content
This repository was archived by the owner on Jan 20, 2025. It is now read-only.

Ancient :exclude does not work for Clojure itself #90

Open
eigenhombre opened this issue Dec 15, 2017 · 1 comment
Open

Ancient :exclude does not work for Clojure itself #90

eigenhombre opened this issue Dec 15, 2017 · 1 comment

Comments

@eigenhombre
Copy link

consider this minimal project.clj:

(defproject ancientclojure "0.1.0-SNAPSHOT"
  :plugins [[lein-ancient "0.6.15"]]
  :dependencies [[org.clojure/clojure "1.8.0" :upgrade :clo]])

We're used to excluding specific dependencies using the :upgrade tag in project.clj; however, this does not seem to work with Clojure itself (now that 1.9 is out):

$ lein ancient :exclude clo
[org.clojure/clojure "1.9.0"] is available but we use "1.8.0" (use :check-clojure to upgrade)
@xsc
Copy link
Owner

xsc commented Dec 17, 2017

@eigenhombre Thanks for reporting! You'll notice that the Clojure artifact won't influence lein-ancient's exit code, nor automatically be upgraded, unless :check-clojure is specified. But I agree, that this is kind of surprising behaviour, so it needs to be fixed.

I'll revamp the way artifact selection works for the 0.7.0 release of lein-ancient, throwing out all these :plugins, :allow-snapshots, :allow-qualified, etc... options and relying solely on :include, :exclude and an additional :ignore for artifact selection.

Introducing an explicit :ignore mechanism (check, print, but ignore for status code/upgrade) that can be overriden by :exclude should then address this issue.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

2 participants