Skip to content

Bash + Python tool to monitor Gradle dependency versions. Parses libs.versions.toml, queries Maven repositories, and generates JSON reports with version status categorization.

License

pfranccino/toml-deps-checker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Gradle Deps Monitor 🔍

Un script automatizado para verificar y comparar las versiones de dependencias Maven en proyectos Android/Gradle contra las últimas versiones disponibles en Maven Central y Google Maven.

🚀 Características

  • ✅ Analiza archivos libs.versions.toml de Gradle
  • 🔍 Consulta automáticamente Maven Central y Google Maven
  • 📊 Categoriza dependencias por estado de actualización:
    • 🔴 Diferencia Major (actualización importante requerida)
    • 🟡 Diferencia Minor o Patch > 5 (actualización recomendada)
    • 🟢 Actualizado (diferencia mínima o igual)
    • ⚫ Estado desconocido (no se pudo verificar)
  • 🏷️ Distingue entre dependencias de Google y Maven Central
  • 💾 Genera reporte JSON detallado
  • 🐍 Manejo automático de entorno virtual Python

📋 Prerrequisitos

  • Python 3.6+
  • Bash
  • Acceso a internet para consultas Maven

🛠️ Instalación

  1. Clona este repositorio:
git clone https://github.com/pfranccino/gradle-deps-monitor.git
cd gradle-deps-monitor
  1. Dale permisos de ejecución al script:
chmod +x check-dependencies.sh

📖 Uso

Ejecuta el script proporcionando la ruta a tu directorio Gradle que contiene libs.versions.toml:

./check-dependencies.sh /ruta/al/directorio/gradle

Ejemplo:

./check-dependencies.sh ./app/gradle

📊 Salida

El script genera un archivo dependency_status.json con información detallada de cada dependencia:

{
  "com.squareup.retrofit2:retrofit": {
    "url": "https://central.sonatype.com/artifact/com.squareup.retrofit2/retrofit",
    "version_used": "2.9.0",
    "latest_version": "2.11.0",
    "timestamp": "2024-01-15T10:30:00",
    "status": "🟡",
    "type": "maven"
  },
  "androidx.core:core-ktx": {
    "url": "https://maven.google.com/web/index.html#androidx.core",
    "version_used": "1.10.1",
    "latest_version": "1.12.0",
    "timestamp": "2024-01-15T10:30:00",
    "status": "🟡",
    "type": "google"
  }
}

🏗️ Estructura del proyecto

├── check-dependencies.sh    # Script principal de Bash
├── version-stats.py        # Script de Python para análisis
├── README.md              # Este archivo
└── dependency_status.json # Archivo de salida (generado)

⚙️ Cómo funciona

  1. Validación: Verifica que existe el directorio y el archivo libs.versions.toml
  2. Entorno virtual: Crea y activa un entorno virtual Python
  3. Instalación: Instala las dependencias Python necesarias (requests)
  4. Análisis:
    • Parsea el archivo libs.versions.toml
    • Extrae información de dependencias
    • Consulta Maven Central y/o Google Maven por las últimas versiones
  5. Comparación: Evalúa el estado de cada dependencia
  6. Reporte: Genera un archivo JSON con los resultados

🔧 Configuración

Tipos de dependencias soportadas

  • Google/Android: androidx.*, com.google.*, com.android.*, etc.
  • Maven Central: Todas las demás dependencias públicas

Criterios de estado

  • 🔴 Major: Cambio en versión mayor (ej: 1.x.x → 2.x.x)
  • 🟡 Minor/Patch: Cambio en versión menor o parche > 5
  • 🟢 Actualizado: Versión igual o diferencia mínima
  • Desconocido: No se pudo determinar la versión

🤝 Contribuir

  1. Fork el proyecto
  2. Crea una rama para tu feature (git checkout -b feature/AmazingFeature)
  3. Commit tus cambios (git commit -m 'Add some AmazingFeature')
  4. Push a la rama (git push origin feature/AmazingFeature)
  5. Abre un Pull Request

🐛 Reportar problemas

Si encuentras algún bug o tienes una sugerencia, por favor abre un issue.

About

Bash + Python tool to monitor Gradle dependency versions. Parses libs.versions.toml, queries Maven repositories, and generates JSON reports with version status categorization.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published