Point out your outdated dependencies.
- Requirements
- Supported files
- Usage
- Options
- --upgrade
- --force
- --exclude=ARTIFACT_NAME[@VERSION] …
- --directory=DIRECTORY …
- --focus=ARTIFACT_NAME …
- --skip=PROJECT_TYPE …
- --error-format=ERROR_FORMAT
- --reporter=REPORTER
- --download
- --ignore-locals
- --check-gradle
- --check-clojure-tools
- --no-progress
- --no-changes
- --no-diff
- --changes-in-table
- --transitive
- --cooldown=DURATION
- Projects using antq
- Tips
- License
| File | Tool/Service | Supports Upgrade? | Note |
|---|---|---|---|
deps.edn |
✅ |
||
shadow-cljs.edn |
✅ |
||
project.clj |
✅ |
||
build.boot |
✅ |
||
pom.xml |
✅ |
||
.circleci/config.yml |
✅ |
||
.github/workflows/*.yml |
✅ |
Upgrades an action pinned to a commit SHA with a version comment, such as |
|
bb.edn |
✅ |
||
build.gradle, build.gradle.kts |
❌ |
Experimental. |
|
~/.clojure/tools |
✅ |
Disabled by default. |
Run the following command from your project root directory to quickly try antq:
clojure -Sdeps '{:deps {com.github.liquidz/antq {:mvn/version "2.11.1276"}}}' \
-M -m antq.coreOr add the following alias to your project deps.edn or $HOME/.clojure/deps.edn.
{
:aliases
{:outdated {;; Use `:deps` to replace your project default deps
:deps {com.github.liquidz/antq {:mvn/version "2.11.1276"}}
:main-opts ["-m" "antq.core"]}}
}Then, run clojure -M:outdated.
If you are using Clojure CLI version 1.11.1.1139 or later, you can install antq as a tool.
# Install tool
clojure -Ttools install-latest :lib com.github.liquidz/antq :as antq
# Uninstall tool
clojure -Ttools remove :tool antq
# Update tool
clojure -Ttools install-latest :tool antq
# Execute
clojure -Tantq outdated
# Execute with parameter
clojure -Tantq outdated :upgrade true
# Show help
clojure -A:deps -Tantq help/doc
# Show full CLI usage help
clojure -Tantq outdated :help true
# Upgrade outdated dependencies
clojure -Tantq outdated :check-clojure-tools true :upgrade trueInstall antq as a command with bbin.
bbin install io.github.clj-commons/antq
antqEnable shell completion in ~/.zshrc.
Replace zsh with bash, fish, powershell, or nushell for other shells.
source <(antq org.babashka.cli/completions snippet --shell zsh)Add the following dependency and alias to your project.clj or $HOME/.lein/profiles.clj.
{
:user
{:aliases {"outdated" ["with-profile" "antq" "run" "-m" "antq.core"]}}
:antq
{:dependencies [[com.github.liquidz/antq "2.11.1276"]]}
}Then, run lein outdated.
The Leiningen plugin is a newer offering.
It tends to be more accurate (since Leiningen evaluates your project.clj instead of antq parsing it).
However, it does not check any other sources (deps.edn, etc.), and the :upgrade option will not be supported (since the plugin cannot always know whether a given dependency came from a specific profile, middleware, etc.).
To use it, add the following plugin to your project.clj (or $HOME/.lein/profiles.clj):
:plugins [[com.github.liquidz/antq "2.11.1276"]]
;; optional - you can add antq options here:
:antq {}Then, run lein antq.
Antq can work with GitHub Actions. You can roll your own, or use the antq-action (example usage).
If you roll your own, use a custom --error-format to show findings as GitHub Actions annotations: --error-format="::error file={{file}}::{{message}}"
Antq experimentally supports Gradle. See our Gradle docs for details. Disabled by default, see --check-gradle.
Antq has timeouts for fetching various kinds of information. See Timeouts for details.
|
Tip
|
Repeatable Options:
Options documented with
|
|
Note
|
Option Syntaxes: We describe options here as they would be specified for clojure cli usage. Adapt as necessary when specifying for clojure tool usage or lein plugin :antq option usage. For example:
|
Upgrade outdated versions interactively. You can use the --force option for upgrading without confirmation, and the --download option to download upgraded dependencies on the fly.
|
Warning
|
The |
Use with --upgrade for a non-interactive upgrade.
Skip version checking for specified artifacts or versions. Specify multiple times for multiple artifacts.
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
# Exclude version range of specified artifact
--exclude=com.github.liquidz/antq@0.13.xWhen you specify a version number, antq will report the latest version excluding only the specified version.
You can also specify dependencies to exclude with :antq/exclude metadata.
See Exclusions for more information.
|
Note
|
You must specify groupId/artifactId for Java dependencies even when groupId and artifactId are the same.
For example: rewrite-clj/rewrite-clj.
|
Add a search path for project files.
The current directory (.) is added by default.
Specify multiple times for multiple directories.
E.g. -d foo --directory=bar:baz will search ".", "foo", "baz", and "bar" directories.
Focus version checking for specified artifacts only. Specify multiple times for multiple artifacts.
E.g. --focus=com.github.liquidz/antq
|
Note
|
You must specify groupId/artifactId for Java dependencies.
|
|
Warning
|
the --focus option takes precedence over the --exclude option.
|
If you want to focus the upgrade on a specific version of a dependency, you can use --focus=ARTIFACT_NAME[@VERSION].
E.g. --focus=com.github.liquidz/antq@50.2.0
This will set the antq dependency to version 50.2.0, even if that version doesn’t exist.
Skip searching of specified project files by type.
Must be one of boot, clojure-cli, github-action, gradle, pom, shadow-cljs, leiningen, or babashka.
Specify multiple times to skip multiple project file types.
E.g. --skip=pom --skip=leiningen
Customize the output for outdated dependencies.
E.g. --error-format="::error file={{file}}::{{message}}"
You can use the following variables:
| Variable Name | Description | ||
|---|---|---|---|
|
A filename containing outdated dependencies. |
||
|
The artifact name. |
||
|
The current version. |
||
|
The latest version. |
||
|
The latest artifact name. See details: Clojars Verified Group Names policy. |
||
|
The changes URL in the version control system. (Nullable) |
||
|
The ISO-8601 release date of the current version, Maven dependencies only. (Nullable) |
||
|
The ISO-8601 release date of the latest version, Maven dependencies only. (Nullable) |
||
|
The newest version outside the --cooldown=DURATION period. (Nullable) |
||
|
The ISO-8601 release date of the cooldown version. (Nullable) |
||
|
The --cooldown=DURATION period, e.g. |
||
|
The diff URL for the version control system. (Nullable) |
||
|
Default error message. |
e.g. {{name}}{{#latest-name}} → {{.}}{{/latest-name}}
|
Tip
|
When running as a clojure tool, you might need some extra escaping for this option’s value, for example: clojure -Tantq outdated :error-format '"{{file}}::{{message}}"' |
| Reporter Name | Description |
|---|---|
|
Report results in a table. See also --changes-in-table. |
|
Report results with a custom format. When you use the --error-format option, this reporter will be used automatically. |
|
Report results in JSON format. |
|
Report results in EDN format. |
If download is set and updated dependencies are found,
download them at the same time as a convenience. The default action
is not to download anything.
|
Warning
|
antq only downloads upgraded dependencies with the --upgrade option. If you upgrade manually or without the |
For Java dependencies, ignore versions installed to your local Maven repository (~/.m2/). Disabled by default.
Because Gradle dependencies are discovered by invoking gradlew or gradle, this implies some risk.
Checking Gradle dependencies is opt-in via --check-gradle.
Gradle dependencies do not support --upgrade.
Detect all tools installed in ~/.clojure/tools as dependencies.
You can also upgrade them with the --upgrade option.
|
Warning
|
DEPRECATED. Please use --no-changes instead. |
Skip checking the diff between deps' versions. Disabled by default.
Show changes URLs in the table. This option is only recognized when using --reporter=table. Disabled by default.
Scan outdated transitive dependencies. Disabled by default.
|
Note
|
The default scan depth is |
|
Warning
|
With this option, the number of reported dependencies tends to be very large, so it is recommended to use it with the --no-changes option. Otherwise, it may take a long time for the results to be reported. Reading release dates adds to this time: antq reads them for the current and latest versions of each outdated Maven dependency, and with --cooldown=DURATION also for newer versions until one is old enough. |
Only suggest versions released at least DURATION ago.
DURATION is a number of days with the unit d, e.g. --cooldown=7d (:cooldown '"7d"' when running as a clojure tool).
A cooldown gives time to spot a broken or compromised release before it reaches your project.
Disabled by default and with 0d.
For Maven dependencies, the table always shows the age of the current and latest versions in an age column next to each.
With this option, it also shows between the current and latest versions:
-
cooldown: the newest version released at leastDURATIONago, or the current version if all newer versions are too new -
age: the age of the cooldown version -
dur: the cooldown period
Like the latest version, the cooldown version is a pre-release only if the current version is one. It is never a SNAPSHOT version: a SNAPSHOT has no release date and can be replaced at any time.
The json and edn reporters include :released-at, :latest-released-at, :cooldown-version, :cooldown-released-at, and :cooldown, and --error-format=ERROR_FORMAT can use them too.
--upgrade upgrades to the cooldown version and prints the newer versions it skipped.
A dependency whose newer versions are all inside the cooldown is still reported, but does not make antq exit with 1.
|
Note
|
A release date is the |
-
clojure-dependency-update-action: A simple GitHub Actions to create pull requests for outdated tools.deps dependencies
-
Biff: The
updatetask upgrades dependencies with antq, and theaddtask uses antq to find the latest versions -
exoscale/tools.project: The
outdatedtask runs antq -
pbr: The
antq-outdatedbuild task runs antq -
Polylith:
poly libs :outdatedandpoly libs :updateuse antq -
practicalli/clojure-cli-config: The
:search/outdatedand:update/dependency-versionsaliases run antq -
task-keeper:
tk outdatedfor Leiningen projects runs antq through alein outdatedalias
Copyright © 2020-2025 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.