/antq

Point out your outdated dependencies.

Primary LanguageClojureOtherNOASSERTION

Antq

Point out your outdated dependencies.

GitHub Actions for test workflow GitHub Actions for lint workflow GitHub Actions for dependencies workflow codecov

Clojars Project GitHub Container Registry

Note

Antq requires Clojure 1.9.0 or later.
If you’d like to use with 1.8.0 or earlier, please see here.

Supported files

File Tool/Service Note

deps.edn

Clojure CLI

shadow-cljs.edn

Shadow-cljs

project.clj

Leiningen

Provides 2 ways of program and plug-in.

build.boot

Boot

pom.xml

Maven

.github/workflows/*.yml

GitHub Actions

bb.edn

Babashka

build.gradle

Gradle

Experimental. gradle command must be installed.

Usage

Clojure CLI (deps.edn)

Run the following command for trial.

clojure -Sdeps '{:deps {com.github.liquidz/antq {:mvn/version "RELEASE"}}}' -M -m antq.core

Or add the following alias to your $HOME/.clojure/deps.edn.

{
 :aliases
 {:outdated {:extra-deps {com.github.liquidz/antq {:mvn/version "RELEASE"}}
             :main-opts ["-m" "antq.core"]}}
 }

Then, run clojure -M:outdated. (run clojure -A:outdated for Clojure CLI Tool 1.10.1.645 or earlier).

Clojure CLI Tools (1.10.3.933 or later)

From Clojure CLI ver 1.10.3.933, tool installation is supported.

# install
clojure -Ttools install com.github.liquidz/antq '{:git/tag "1.3.1"}' :as antq
# uninstall
clojure -Ttools remove :tool antq
# execute
clojure -Tantq outdated
# execute with parameter
clojure -Tantq outdated :upgrade true
# help
clojure -A:deps -Tantq help/doc

Leiningen (as a main program)

Add the following dependency and alias to your $HOME/.lein/profiles.clj.

{
 :user
 {:dependencies [[com.github.liquidz/antq "RELEASE"]]
  :aliases {"outdated" ["run" "-m" "antq.core"]}
  }
 }

Then, run lein outdated.

Leiningen (as a plugin)

The Leiningen plugin is a newer offering. It tends to be more accurate (since it won’t parse your project.clj, having it evaluated by Leiningen instead). However the :upgrade option will not be supported (since the plugin cannot always know if a given dependency came from a specific profile, middleware, etc).

In order to use it, add the following plugin to your project.clj (or $HOME/.lein/profiles.clj):

 :plugins [[com.github.liquidz/antq "RELEASE"]]
 ;; optional - you can add antq options here:
 :antq {}

Then, run lein antq.

GitHub Actions

Antq can work with GitHub Actions. See antq’s workflow for concrete example.

In another way, you can use the following action.

Gradle

Antq experimentally supports Gradle. See here for details.

Options

--upgrade

Upgrade outdated versions interactively. You can use --force option for upgrading without confirmation.

Warning

For now, --upgrade option only supports following files.

  • deps.edn

  • shadow-cljs.edn

  • project.clj

  • build.boot

  • pom.xml

--exclude=ARTIFACT_NAME[@VERSION]

Skip version checking for specified artifacts or versions.

E.g.

# Exclude all versions of specified artifact
--exclude=com.github.liquidz/antq
# Exclude specific version of specified artifact
--exclude=com.github.liquidz/antq@0.13.0

When you specified a version number, antq will report the latest version excluding only the specified version.

Note
You must specify groupId/artifactId for Java dependencies.

--directory=DIRECTORY

Add search path for projects. Current directory(.) is added by default.

E.g. -d foo --directory=bar:baz will search "foo", "baz" and "bar" directories.

--focus=ARTIFACT_NAME

Focus version checking for specified artifacts.

E.g. --focus=com.github.liquidz/antq

Note
You must specify groupId/artifactId for Java dependencies.
Warning
focus option is prefer than exclude option.

--skip=PROJECT_TYPE

Skip to search specified project files. Must be one of boot, clojure-cli, github-action, pom, shadow-cljs and leiningen.

E.g. --skip=pom

--error-format=ERROR_FORMAT

Customize outputs for outdated dependencies.

E.g. --error-format="::error file={{file}}::{{message}}"

You can use following variables:

Variable Name Description

{{file}}

A filename containing outdated dependencies.

{{name}}

The artifact name.

{{version}}

The current version.

{{latest-version}}

The latest version.

{{latest-name}}

The latest artifact name. See details: Clojars Verified Group Names policy.

{{diff-url}}

The diff URL for Version Control System. (Nullable)

{{message}}

Default error message.

--reporter=REPORTER

Reporter Name Description

table (default)

Report results in a table.

format

Report results with a custom format. When you use --error-format option, this reporter will be used automatically.

json

Report results as a JSON format.

edn

Report results as a EDN format.

Projects using antq

Tips

License

Copyright © 2020-2021 Masashi Iizuka

This program and the accompanying materials are made available under the terms of the Eclipse Public License 2.0 which is available at http://www.eclipse.org/legal/epl-2.0.

This Source Code may also be made available under the following Secondary Licenses when the conditions for such availability set forth in the Eclipse Public License, v. 2.0 are satisfied: GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version, with the GNU Classpath Exception which is available at https://www.gnu.org/software/classpath/license.html.