CLI tool for projects that uses gradle version catalog to check dependency updates.
Project description
Kataloger
Kataloger can help update your project dependencies with ease! All you need is point to libs.versions.toml file and supply it with repositories that you use in project.
Features
- Better than Android Studio built-in tool :)
- Gradle-free
- Can be used on CI
- Flexible and open-source
How to use?
Kataloger offers handy CLI which you can use locally or on CI.
You can pass path to version catalog using -p parameter and path to configuration with -c parameter:
kataloger -p ~/ProjectDir/libs.versions.toml -c ~/ProjectDir/default.configuration.toml
Repositories, where artifact updates will be searched for, should be specified in configuration file separately for libraries and plugins as shown below:
# ...
[libraries]
library_repository = "https://repository.link/library"
[plugins]
plugin_repository = "https://repository.link/plugin"
Tip: You can use default configuration file as template.
Paths to catalogs also can be specified in configuration file:
# ...
[catalogs]
androix_catalog = "./androidx.versions.toml"
kotlin_catalog = "./kotlin.versions.toml"
Important: Relative paths are resolved to the root directory of configuration.
And then you need specify only path to configuration:
kataloger -c ~/ProjectDir/project.configuration.toml
Or you can omit all parameters, then kataloger employs following logic to run:
default.configuration.tomlfile in current working directory will be used as configuration file.- Any file with
.versions.tomlextension found in the current directory or thegradlesubdirectory (if it exists) is considered a catalog.
cd ~/ProjectDir
kataloger
If configuration file not provided and can't be found in current working directory kataloger will use default configuration with next repositories: Maven Central, Google Maven and Gradle Plugin Portal.
kataloger -p ~/ProjectDir/libs.versions.toml
CLI options
-p [path] or --path [path] — specifies path to gradle version catalog file. You can pass more than one version catalog path. If no path provided kataloger try to find version catalogs (files with extension .versions.toml) in current working directory.
-c [path] or --configuration [path] — specifies path to .toml file with repositories credentials where updates will be looked for. If no path provided kataloger try to find default repositories file with name default.configuration.toml in current working directory. If repositories can't be found in current directory kataloger use predefined set of repositories (Maven Central, Google and Gradle Plugin Portal).
-v or --verbose — if specified print more info to console.
-u or --suggest-unstable — if specified suggest artifact update from stable version to unstable.
-f or --fail-on-updates — if specified return non-zero exit code when at least one update found. Can be useful on CI.
Installation
Kataloger is available on the Python Package Index (PyPI) and also as a Docker container.
PyPI
To install kataloger using pip (requires Python 3.10 or later), run the following command:
pip install kataloger
Docker
Alternatively, you can run kataloger as a Docker container. The image is published on GitHub Container Registry (GHCR):
docker run --rm -v "$(pwd)":/project --network=bridge ghcr.io/dzmpr/kataloger:latest
This command mounts the current working directory to the /project directory inside the container, connects the container to the default bridge network, and runs kataloger inside the container.
Use kataloger in python scripts
Kataloger has convenient API (I did my best), so you can write custom logic on top. More info about it can be found here.
License
Copyright 2023 Dzmitry Pryskoka
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file kataloger-0.5.0.tar.gz.
File metadata
- Download URL: kataloger-0.5.0.tar.gz
- Upload date:
- Size: 24.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
27e93ed79b462c4c7d9a05bd6f2270af7bc8c68134b7778197cefeb7b2fcab56
|
|
| MD5 |
1b8dabedf167511b4a4b6f8c810e8315
|
|
| BLAKE2b-256 |
7b3fe24827f37280f2c1ab5acf7e7880c19363e769fec089df1bf9f35026c91f
|
File details
Details for the file kataloger-0.5.0-py3-none-any.whl.
File metadata
- Download URL: kataloger-0.5.0-py3-none-any.whl
- Upload date:
- Size: 30.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f041aff5eadff42319d217a5af3c838e637de53eea54b5031e75955adc331d7d
|
|
| MD5 |
7273a71eedf8915cc3787bdd46ab1ab0
|
|
| BLAKE2b-256 |
2d66603233f6e63d98a3db717f0706d4500542b882b1cef3af0d4971f81ceda6
|