diff --git a/README.adoc b/README.adoc index 3d8a17b0..00525900 100644 --- a/README.adoc +++ b/README.adoc @@ -183,6 +183,8 @@ E.g. --exclude=com.github.liquidz/antq # Exclude specific version of specified artifact --exclude=com.github.liquidz/antq@0.13.0 +# Exclude version range of specified artifact +--exclude=com.github.liquidz/antq@0.13.x ---- When you specified a version number, antq will report the latest version excluding only the specified version. diff --git a/doc/exclusions.adoc b/doc/exclusions.adoc index 328a8eb3..41669160 100644 --- a/doc/exclusions.adoc +++ b/doc/exclusions.adoc @@ -43,3 +43,29 @@ Otherwise, the following ways are available. ---- {:deps {foo/bar ^:antq/exclude {:mvn/version "..."}}} ---- + +== Specify a version or version range via metadata + +Please repalce `^:antq/exclude` as follows. + +[source,clojure] +---- +;; Specific version +^{:antq/exclude "1.2.3"} +^{:antq/exclude ["1.2.3" "1.2.4"]} + +;; Version range +^{:antq/exclude "1.2.x"} +^{:antq/exclude ["1.2.x" "1.3.x"]} +---- + +=== Supported version ranges + +[cols="50a,50a"] +|=== +| Range | Description + +| `1.2.x` +| Matches to `1.2.0`, `1.2.1`, etc. + +|=== diff --git a/src/antq/core.clj b/src/antq/core.clj index 954fd5a8..01b6669f 100644 --- a/src/antq/core.clj +++ b/src/antq/core.clj @@ -39,6 +39,7 @@ [antq.upgrade.shadow] [antq.util.exception :as u.ex] [antq.util.maven :as u.maven] + [antq.util.ver :as u.ver] [antq.ver :as ver] [antq.ver.git-sha] [antq.ver.git-tag-and-sha] @@ -109,13 +110,17 @@ (contains? exclude-artifacts (:name dep))))) (defn remove-skipping-versions - [versions dep-name options] - (let [skip-vers (->> (:exclude options) + [versions dep options] + (let [dep-name (:name dep) + skip-vers (->> (:exclude options) (map #(str/split % #"@" 2)) (filter #(= dep-name (first %))) (keep second) - (set))] - (remove skip-vers versions))) + (concat (or (:exclude-versions dep) [])) + (distinct))] + (remove (fn [target-version] + (some #(u.ver/in-range? % target-version) skip-vers)) + versions))) (defn using-release-version? [dep] @@ -146,7 +151,7 @@ (let [vers (cond->> (:_versions dep) (not (ver/under-development? (:version dep))) (drop-while ver/under-development?)) - vers (remove-skipping-versions vers (:name dep) options) + vers (remove-skipping-versions vers dep options) latest-version (first vers)] (assoc dep :latest-version latest-version))) diff --git a/src/antq/dep/boot.clj b/src/antq/dep/boot.clj index 39ee2e5b..e192454f 100644 --- a/src/antq/dep/boot.clj +++ b/src/antq/dep/boot.clj @@ -10,7 +10,14 @@ (defn- exclude? [v] (-> (meta v) - (contains? const/deps-exclude-key))) + (get const/deps-exclude-key) + (true?))) + +(defn- exclude-version-range + [v] + (-> (meta v) + (get const/deps-exclude-key) + (u.dep/ensure-version-list))) (defn extract-deps {:malli/schema [:=> @@ -42,7 +49,7 @@ form) (read-string (str "(list " build-boot-content-str " )"))) (let [repositories (apply hash-map @repos)] - (for [[dep-name version] @deps + (for [[dep-name version :as dep] @deps :when (and (string? version) (seq version))] (r/map->Dependency {:project :boot :type :java @@ -51,7 +58,8 @@ (str dep-name) (str dep-name "/" dep-name)) :version version - :repositories repositories}))))) + :repositories repositories + :exclude-versions (seq (exclude-version-range dep))}))))) (defn load-deps {:malli/schema [:function diff --git a/src/antq/dep/clojure.clj b/src/antq/dep/clojure.clj index 94d76657..e18f211c 100644 --- a/src/antq/dep/clojure.clj +++ b/src/antq/dep/clojure.clj @@ -96,7 +96,15 @@ [dep] (-> (second dep) (meta) - (contains? const/deps-exclude-key))) + (get const/deps-exclude-key) + (true?))) + +(defn- exclude-version-range + [dep] + (-> (second dep) + (meta) + (get const/deps-exclude-key) + (u.dep/ensure-version-list))) (defn extract-deps {:malli/schema [:=> @@ -119,7 +127,7 @@ form) edn) (->> @deps - (mapcat (fn [[dep-name opt]] + (mapcat (fn [[dep-name opt :as dep]] (let [opt (adjust-version-via-deduction dep-name opt) type-and-version (extract-type-and-version opt)] (cond @@ -138,7 +146,8 @@ (str dep-name) (str dep-name "/" dep-name)) :repositories (merge cross-project-repositories - (:mvn/repos edn))} + (:mvn/repos edn)) + :exclude-versions (seq (exclude-version-range dep))} (merge type-and-version) (r/map->Dependency) (vector)) diff --git a/src/antq/dep/leiningen.clj b/src/antq/dep/leiningen.clj index bada8e87..eb0c4dc5 100644 --- a/src/antq/dep/leiningen.clj +++ b/src/antq/dep/leiningen.clj @@ -24,7 +24,14 @@ (defn- exclude? [v] (-> (meta v) - (contains? const/deps-exclude-key))) + (get const/deps-exclude-key) + (true?))) + +(defn- exclude-version-range + [v] + (-> (meta v) + (get const/deps-exclude-key) + (u.dep/ensure-version-list))) (defn extract-deps {:malli/schema [:=> @@ -56,14 +63,15 @@ form) (read-string (str "(list " project-clj-content-str " )"))) (let [repositories (normalize-repositories @repos)] - (for [[dep-name version] @deps + (for [[dep-name version :as dep] @deps :when (acceptable-version? version)] (r/map->Dependency {:project :leiningen :type :java :file file-path :name (normalize-name dep-name) :version version - :repositories repositories}))))) + :repositories repositories + :exclude-versions (seq (exclude-version-range dep))}))))) (defn load-deps {:malli/schema [:function diff --git a/src/antq/dep/shadow.clj b/src/antq/dep/shadow.clj index dbcf6f53..9a43e48d 100644 --- a/src/antq/dep/shadow.clj +++ b/src/antq/dep/shadow.clj @@ -29,7 +29,14 @@ (defn- exclude? [v] (-> (meta v) - (contains? const/deps-exclude-key))) + (get const/deps-exclude-key) + (true?))) + +(defn- exclude-version-range + [v] + (-> (meta v) + (get const/deps-exclude-key) + (u.dep/ensure-version-list))) (defn extract-deps {:malli/schema [:=> @@ -47,13 +54,14 @@ (swap! deps concat))) form) (edn/read-string readers shadow-cljs-edn-content-str)) - (for [[dep-name version] @deps + (for [[dep-name version :as dep] @deps :when (and (string? version) (seq version))] (r/map->Dependency {:project :shadow-cljs :type :java :file file-path :name (str dep-name) - :version version})))) + :version version + :exclude-versions (seq (exclude-version-range dep))})))) (defn load-deps {:malli/schema [:function diff --git a/src/antq/record.clj b/src/antq/record.clj index cb6b2fa2..edda4233 100644 --- a/src/antq/record.clj +++ b/src/antq/record.clj @@ -22,7 +22,8 @@ [:repositories [:maybe [:map-of 'string? ?repository]]] [:changes-url [:maybe 'string?]] [:latest-name [:maybe 'string?]] - [:only-newest-version? [:maybe 'boolean?]]]) + [:only-newest-version? [:maybe 'boolean?]] + [:exclude-versions [:maybe [:sequential 'string?]]]]) (def ?dependencies [:sequential ?dependency]) @@ -52,4 +53,6 @@ ;; c.f. https://github.com/clojars/clojars-web/wiki/Verified-Group-Names latest-name ;; Keep only the newest version in the same file. - only-newest-version?]) + only-newest-version? + ;; Ignore versions that match the specified version range + exclude-versions]) diff --git a/src/antq/util/dep.clj b/src/antq/util/dep.clj index 996ec1aa..669ca02b 100644 --- a/src/antq/util/dep.clj +++ b/src/antq/util/dep.clj @@ -119,3 +119,16 @@ ;; Skip showing diff URL when POM file is not found (catch java.io.FileNotFoundException _ nil))) (def get-scm-url (u.fn/memoize-by get-scm-url* :name)) + +(defn ensure-version-list + [x] + (cond + (string? x) + [x] + + (and (sequential? x) + (every? string? x)) + x + + :else + [])) diff --git a/src/antq/util/ver.clj b/src/antq/util/ver.clj index e02708fa..93ce7353 100644 --- a/src/antq/util/ver.clj +++ b/src/antq/util/ver.clj @@ -51,3 +51,13 @@ :else no-latest-version-error)) + +(defn in-range? + "e.g. '1.x' matches '1.0.0', '1.1.0' and so on." + [version-range target-version] + (let [re (-> version-range + (str/replace "." "\\.") + (str/replace "\\.x" "\\.+") + (->> (str "^")) + (re-pattern))] + (some? (re-seq re target-version)))) diff --git a/src/antq/ver/git_tag_and_sha.clj b/src/antq/ver/git_tag_and_sha.clj index 7b86994e..80ee1efa 100644 --- a/src/antq/ver/git_tag_and_sha.clj +++ b/src/antq/ver/git_tag_and_sha.clj @@ -24,3 +24,12 @@ [ex] (throw ex))))) +(defmethod ver/latest? :git-tag-and-sha + [dep] + (and (:version dep) + (:latest-version dep) + (string? (:version dep)) + (string? (:latest-version dep)) + (<= 0 (version/version-compare + (u.ver/normalize-version (:version dep)) + (u.ver/normalize-version (:latest-version dep)))))) diff --git a/test/antq/core_test.clj b/test/antq/core_test.clj index 842160d6..a0198550 100644 --- a/test/antq/core_test.clj +++ b/test/antq/core_test.clj @@ -118,30 +118,45 @@ :focus ["org.clojure/clojure"]}))))) (t/deftest remove-skipping-versions-test - (t/testing "there are no target to remove" - (t/is (= ["1" "2" "3"] - (sut/remove-skipping-versions ["1" "2" "3"] "foo" {}))) - (t/is (= ["1" "2" "3"] - (sut/remove-skipping-versions ["1" "2" "3"] "foo" {:exclude ["foo@4"]})))) - - (t/testing "only dep's name is matched" - (t/is (= ["1" "2" "3"] - (sut/remove-skipping-versions ["1" "2" "3"] "foo" {:exclude ["foo"]})))) - - (t/testing "only version number is matched" - (t/is (= ["1" "2" "3"] - (sut/remove-skipping-versions ["1" "2" "3"] "foo" {:exclude ["bar@2"]})))) - - (t/testing "dep's name and version number are matched" - (t/is (= ["1" "3"] - (sut/remove-skipping-versions ["1" "2" "3"] "foo" {:exclude ["foo@2"]}))) - (t/is (= ["1"] - (sut/remove-skipping-versions ["1" "2" "3"] "foo" {:exclude ["foo@2" + (let [dep (r/map->Dependency {:name "foo"})] + (t/testing "there are no target to remove" + (t/is (= ["1" "2" "3"] + (sut/remove-skipping-versions ["1" "2" "3"] dep {}))) + (t/is (= ["1" "2" "3"] + (sut/remove-skipping-versions ["1" "2" "3"] dep {:exclude ["foo@4"]})))) + + (t/testing "only dep's name is matched" + (t/is (= ["1" "2" "3"] + (sut/remove-skipping-versions ["1" "2" "3"] dep {:exclude ["foo"]})))) + + (t/testing "only version number is matched" + (t/is (= ["1" "2" "3"] + (sut/remove-skipping-versions ["1" "2" "3"] dep {:exclude ["bar@2"]})))) + + (t/testing "dep's name and version number are matched" + (t/is (= ["1" "3"] + (sut/remove-skipping-versions ["1" "2" "3"] dep {:exclude ["foo@2"]}))) + (t/is (= ["1"] + (sut/remove-skipping-versions ["1" "2" "3"] dep {:exclude ["foo@2" "foo@3"]}))) - (t/is (= [] - (sut/remove-skipping-versions ["1" "2" "3"] "foo" {:exclude ["foo@1" + (t/is (= [] + (sut/remove-skipping-versions ["1" "2" "3"] dep {:exclude ["foo@1" "foo@2" - "foo@3"]}))))) + "foo@3"]})))) + + (t/testing "version range" + (let [vers ["1.0.0" "1.0.1" "1.1.0" "1.1.1" "1.2.0" "2.0.0"]] + (t/is (= ["2.0.0"] + (sut/remove-skipping-versions vers dep {:exclude ["foo@1.x"]}))) + (t/is (= ["1.1.0" "1.1.1" "1.2.0" "2.0.0"] + (sut/remove-skipping-versions vers dep {:exclude ["foo@1.0.x"]}))) + (t/is (= ["1.0.0" "1.0.1" "1.1.0" "1.1.1"] + (sut/remove-skipping-versions vers dep {:exclude ["foo@1.2.x" + "foo@2.x"]}))) + (t/is (= ["1.0.0" "1.0.1" "1.1.0" "1.1.1" "1.2.0"] + (sut/remove-skipping-versions vers dep {:exclude ["foo@2.x"]}))) + (t/is (= ["1.0.0" "1.0.1" "1.1.0" "1.1.1" "1.2.0" "2.0.0"] + (sut/remove-skipping-versions vers dep {:exclude ["foo@9.x"]}))))))) (t/deftest using-release-version?-test (t/are [expected in] (= expected (sut/using-release-version? diff --git a/test/antq/dep/babashka_test.clj b/test/antq/dep/babashka_test.clj index 2094f4f9..5d424c43 100644 --- a/test/antq/dep/babashka_test.clj +++ b/test/antq/dep/babashka_test.clj @@ -7,17 +7,28 @@ (t/deftest load-deps-test (with-redefs [const.project-file/babashka "test_bb.edn"] - (t/is (= [(r/map->Dependency {:type :java - :file "test/resources/dep/test_bb.edn" - :name "bb/core" - :version "1.0.0" - :project :clojure - :repositories nil}) - (r/map->Dependency {:type :java - :file "test/resources/dep/test_bb.edn" - :name "with/meta" - :version "2.0.0" - :project :clojure - :repositories nil})] + (t/is (= (->> [(r/map->Dependency {:type :java + :file "test/resources/dep/test_bb.edn" + :name "bb/core" + :version "1.0.0" + :project :clojure}) + (r/map->Dependency {:type :java + :file "test/resources/dep/test_bb.edn" + :name "with/meta" + :version "2.0.0" + :project :clojure}) + (r/map->Dependency {:type :java + :file "test/resources/dep/test_bb.edn" + :name "meta/range-ignore1" + :version "4.0.0" + :project :clojure + :exclude-versions ["5.x"]}) + (r/map->Dependency {:type :java + :file "test/resources/dep/test_bb.edn" + :name "meta/range-ignore2" + :version "5.0.0" + :project :clojure + :exclude-versions ["6.x" "7.x"]})] + (sort-by :name)) (->> (sut/load-deps "test/resources/dep") (sort-by :name)))))) diff --git a/test/antq/dep/boot_test.clj b/test/antq/dep/boot_test.clj index ae9e44d1..4d45408c 100644 --- a/test/antq/dep/boot_test.clj +++ b/test/antq/dep/boot_test.clj @@ -23,11 +23,14 @@ (slurp (io/resource "dep/test_build.boot")))] (t/is (sequential? deps)) (t/is (every? #(instance? antq.record.Dependency %) deps)) - (t/is (= #{(dependency {:name "foo/core" :version "1.0.0"}) - (dependency {:name "bar/bar" :version "2.0.0"}) - (dependency {:name "baz/baz" :version "3.0.0"}) - (dependency {:name "with/meta" :version "4.0.0"})} - (set deps))))) + (t/is (= (->> [(dependency {:name "foo/core" :version "1.0.0"}) + (dependency {:name "bar/bar" :version "2.0.0"}) + (dependency {:name "baz/baz" :version "3.0.0"}) + (dependency {:name "with/meta" :version "4.0.0"}) + (dependency {:name "meta/range-ignore1" :version "6.0.0" :exclude-versions ["7.x"]}) + (dependency {:name "meta/range-ignore2" :version "7.0.0" :exclude-versions ["8.x" "9.x"]})] + (sort-by :name)) + (sort-by :name deps))))) (t/deftest load-deps-test (with-redefs [const.project-file/boot "test_build.boot"] diff --git a/test/antq/dep/clojure_test.clj b/test/antq/dep/clojure_test.clj index ec3be76f..285cc9e5 100644 --- a/test/antq/dep/clojure_test.clj +++ b/test/antq/dep/clojure_test.clj @@ -50,6 +50,10 @@ (java-dependency {:name "dft/dft" :version "6.0.0"}) (java-dependency {:name "short-meta/short-meta" :version "2.5.8"}) (java-dependency {:name "full-meta/full-meta" :version "2.6.9"}) + (java-dependency {:name "meta/range-ignore1" :version "4.6.9" + :exclude-versions ["5.x"]}) + (java-dependency {:name "meta/range-ignore2" :version "4.6.9" + :exclude-versions ["6.x" "7.x"]}) (git-sha-dependency {:name "sha/sha" :version "dummy-sha" :extra {:url "https://github.com/example/sha.git"}}) (git-sha-dependency {:name "git-sha/git-sha" :version "dummy-git-sha" diff --git a/test/antq/dep/leiningen_test.clj b/test/antq/dep/leiningen_test.clj index 652253b7..e42956f9 100644 --- a/test/antq/dep/leiningen_test.clj +++ b/test/antq/dep/leiningen_test.clj @@ -24,13 +24,16 @@ (slurp (io/resource "dep/test_project.clj")))] (t/is (sequential? deps)) (t/is (every? #(instance? antq.record.Dependency %) deps)) - (t/is (= #{(dependency {:name "foo/core" :version "1.0.0"}) - (dependency {:name "foo/core" :version "1.1.0"}) - (dependency {:name "bar/bar" :version "2.0.0"}) - (dependency {:name "baz/baz" :version "3.0.0"}) - (dependency {:name "plug/plug" :version "4.0.0"}) - (dependency {:name "managed/dependency" :version "5.0.0"})} - (set deps))))) + (t/is (= (->> [(dependency {:name "foo/core" :version "1.0.0"}) + (dependency {:name "foo/core" :version "1.1.0"}) + (dependency {:name "bar/bar" :version "2.0.0"}) + (dependency {:name "baz/baz" :version "3.0.0"}) + (dependency {:name "plug/plug" :version "4.0.0"}) + (dependency {:name "managed/dependency" :version "5.0.0"}) + (dependency {:name "meta/range-ignore1" :version "6.0.0" :exclude-versions ["7.x"]}) + (dependency {:name "meta/range-ignore2" :version "7.0.0" :exclude-versions ["8.x" "9.x"]})] + (sort-by :name)) + (sort-by :name deps))))) (t/deftest load-deps-test (with-redefs [const.project-file/leiningen "test_project.clj"] diff --git a/test/antq/dep/shadow_test.clj b/test/antq/dep/shadow_test.clj index cca8939b..5b1c78a5 100644 --- a/test/antq/dep/shadow_test.clj +++ b/test/antq/dep/shadow_test.clj @@ -23,11 +23,14 @@ (slurp (io/resource "dep/test_shadow-cljs.edn")))] (t/is (sequential? deps)) (t/is (every? #(instance? antq.record.Dependency %) deps)) - (t/is (= #{(dependency {:name "foo/core" :version "1.0.0"}) - (dependency {:name "bar" :version "2.0.0"}) - (dependency {:name "baz" :version "3.0.0"}) - (dependency {:name "with/meta" :version "4.0.0"})} - (set deps))))) + (t/is (= (->> [(dependency {:name "foo/core" :version "1.0.0"}) + (dependency {:name "bar" :version "2.0.0"}) + (dependency {:name "baz" :version "3.0.0"}) + (dependency {:name "with/meta" :version "4.0.0"}) + (dependency {:name "meta/range-ignore1" :version "6.0.0" :exclude-versions ["7.x"]}) + (dependency {:name "meta/range-ignore2" :version "7.0.0" :exclude-versions ["8.x" "9.x"]})] + (sort-by :name)) + (sort-by :name deps))))) (t/deftest extract-deps-with-env-tag-test (with-redefs [u.env/getenv {"ENV1" "1.0.0" @@ -39,12 +42,13 @@ (slurp (io/resource "dep/test_shadow-cljs-env.edn")))] (t/is (sequential? deps)) (t/is (every? #(instance? antq.record.Dependency %) deps)) - (t/is (= #{(dependency {:name "foo1" :version "1.0.0"}) - (dependency {:name "foo2" :version "2.0.0"}) - (dependency {:name "foo3" :version "default3"}) - (dependency {:name "foo4" :version "default4"}) - (dependency {:name "foo5" :version "5.0.0"})} - (set deps)))))) + (t/is (= (->> [(dependency {:name "foo1" :version "1.0.0"}) + (dependency {:name "foo2" :version "2.0.0"}) + (dependency {:name "foo3" :version "default3"}) + (dependency {:name "foo4" :version "default4"}) + (dependency {:name "foo5" :version "5.0.0"})] + (sort-by :name)) + (sort-by :name deps)))))) (t/deftest load-deps-test (with-redefs [const.project-file/shadow-cljs "test_shadow-cljs.edn"] diff --git a/test/antq/report/edn_test.clj b/test/antq/report/edn_test.clj index 49054163..080421c7 100644 --- a/test/antq/report/edn_test.clj +++ b/test/antq/report/edn_test.clj @@ -25,7 +25,8 @@ :only-newest-version? nil :repositories nil :changes-url nil - :diff-url nil} + :diff-url nil + :exclude-versions nil} {:file "b" :name "bar" :version "2" @@ -36,5 +37,6 @@ :only-newest-version? nil :repositories nil :changes-url "https://example.com" - :diff-url "https://example.com"}] + :diff-url "https://example.com" + :exclude-versions nil}] (sort-by :file (edn/read-string res)))))) diff --git a/test/antq/report/json_test.clj b/test/antq/report/json_test.clj index 9c47273c..5232f7b0 100644 --- a/test/antq/report/json_test.clj +++ b/test/antq/report/json_test.clj @@ -25,7 +25,8 @@ "only-newest-version?" nil "repositories" nil "changes-url" nil - "diff-url" nil} + "diff-url" nil + "exclude-versions" nil} {"file" "b" "name" "bar" "version" "2" @@ -36,5 +37,6 @@ "only-newest-version?" nil "repositories" nil "changes-url" "https://example.com" - "diff-url" "https://example.com"}] + "diff-url" "https://example.com" + "exclude-versions" nil}] (sort-by #(get % "file") (json/read-str res)))))) diff --git a/test/antq/util/ver_test.clj b/test/antq/util/ver_test.clj index fe083e68..bf824175 100644 --- a/test/antq/util/ver_test.clj +++ b/test/antq/util/ver_test.clj @@ -50,3 +50,16 @@ (sut/normalize-latest-version (r/map->Dependency {:type :git-sha :version "faf211b" :latest-version "4c484d08630a5711f5a04c4f7e23c5fb1dad6cf9"})))))) + +(t/deftest in-range?-test + (t/is (true? (sut/in-range? "1.0.0" "1.0.0"))) + (t/is (true? (sut/in-range? "1.0.x" "1.0.0"))) + (t/is (true? (sut/in-range? "1.x" "1.0.0"))) + (t/is (true? (sut/in-range? "1.x" "1.1.0"))) + (t/is (true? (sut/in-range? "2.x" "2.0.0"))) + + (t/is (false? (sut/in-range? "1.0.0" "10000"))) + (t/is (false? (sut/in-range? "1.0.1" "1.0.0"))) + (t/is (false? (sut/in-range? "1.0.x" "1.1.0"))) + (t/is (false? (sut/in-range? "1.x" "2.0.0"))) + (t/is (false? (sut/in-range? "2.x" "1.2.0")))) diff --git a/test/resources/dep/test_bb.edn b/test/resources/dep/test_bb.edn index aa4f2cb4..ccc4e150 100644 --- a/test/resources/dep/test_bb.edn +++ b/test/resources/dep/test_bb.edn @@ -1,3 +1,5 @@ {:deps {bb/core {:mvn/version "1.0.0"} with/meta ^:foo/bar {:mvn/version "2.0.0"} - meta/ignore ^:antq/exclude {:mvn/version "3.0.0"}}} + meta/ignore ^:antq/exclude {:mvn/version "3.0.0"} + meta/range-ignore1 ^{:antq/exclude "5.x"} {:mvn/version "4.0.0"} + meta/range-ignore2 ^{:antq/exclude ["6.x" "7.x"]} {:mvn/version "5.0.0"}}} diff --git a/test/resources/dep/test_build.boot b/test/resources/dep/test_build.boot index c5090e99..bfea670d 100644 --- a/test/resources/dep/test_build.boot +++ b/test/resources/dep/test_build.boot @@ -8,7 +8,9 @@ [ver-not-string :version] [ver-empty ""] ;; should be ignored - ^:antq/exclude [meta/ignore "5.0.0"]]) + ^:antq/exclude [meta/ignore "5.0.0"] + ^{:antq/exclude "7.x"} [meta/range-ignore1 "6.0.0"] + ^{:antq/exclude ["8.x" "9.x"]} [meta/range-ignore2 "7.0.0"]]) (set-env! :repositories #(conj % '["antq-test" {:url "s3://antq-repo/"}])) diff --git a/test/resources/dep/test_deps.edn b/test/resources/dep/test_deps.edn index af97aed8..ae2e9a77 100644 --- a/test/resources/dep/test_deps.edn +++ b/test/resources/dep/test_deps.edn @@ -27,6 +27,8 @@ ;; should be ignored local-repo/non-existing {:local/root "/path/to/non-existing-local/repo"} meta-ignore ^:antq/exclude {:mvn/version "3.5.8"} + meta/range-ignore1 ^{:antq/exclude "5.x"} {:mvn/version "4.6.9"} + meta/range-ignore2 ^{:antq/exclude ["6.x" "7.x"]} {:mvn/version "4.6.9"} ;; invalid versions should be ignored ver-not-string {:mvn/version :version} ver-empty {:mvn/version ""} diff --git a/test/resources/dep/test_project.clj b/test/resources/dep/test_project.clj index 5f589875..472cd0c5 100644 --- a/test/resources/dep/test_project.clj +++ b/test/resources/dep/test_project.clj @@ -4,7 +4,9 @@ [ver-not-string :version] [ver-empty ""] ;; should be ignored - ^:antq/exclude [meta-ignore "3.0.0"]] + ^:antq/exclude [meta-ignore "3.0.0"] + ^{:antq/exclude "7.x"} [meta/range-ignore1 "6.0.0"] + ^{:antq/exclude ["8.x" "9.x"]} [meta/range-ignore2 "7.0.0"]] :plugins [[plug "4.0.0"]] diff --git a/test/resources/dep/test_shadow-cljs.edn b/test/resources/dep/test_shadow-cljs.edn index 4404088e..a271b0cb 100644 --- a/test/resources/dep/test_shadow-cljs.edn +++ b/test/resources/dep/test_shadow-cljs.edn @@ -6,4 +6,6 @@ [ver-not-string :version] [ver-empty ""] ;; should be ignored - ^:antq/exclude [meta/ignore "5.0.0"]]} + ^:antq/exclude [meta/ignore "5.0.0"] + ^{:antq/exclude "7.x"} [meta/range-ignore1 "6.0.0"] + ^{:antq/exclude ["8.x" "9.x"]} [meta/range-ignore2 "7.0.0"]]}