Skip to content

feat: Implementar análisis de dependencia multilingüe para las versiones #37

@thomas-vilte

Description

@thomas-vilte

Problema

Las notas de la versión no incluyen cambios en las dependencias, lo cual es información crucial para que los usuarios comprendan qué bibliotecas se actualizaron, agregaron o eliminaron.

Solución propuesta

Implementar un sistema flexible de análisis de dependencias que detecte y analice automáticamente los cambios en:

  • Módulos Go (go.mod)
  • Paquetes Node.js (package.json)

Características

  • Detección automática: Detecta qué gestores de dependencias están presentes
  • Análisis de semver: Calcula la gravedad (mayor/menor/parche) para identificar cambios importantes
  • Clasificación directa/indirecta: Distingue entre dependencias de producción y de desarrollo
  • Extensible: Fácil de añadir más lenguajes (Rust, Python, Ruby, etc.)

Implementación

Nuevos modelos y analizadores para:

  • Interfaz DependencyAnalyzer
  • GoModAnalyzer: analiza go.mod y detecta dependencias indirectas
  • PackageJsonAnalyzer: analiza package.json y gestiona prefijos npm (^, ~)
  • AnalyzerRegistry: organiza múltiples analizadores
  • Integración con EnrichReleaseContext

Criterios de aceptación

  • Detecta y analiza archivos go.mod
  • Detecta y analiza archivos package.json
  • Identifica dependencias añadidas, actualizadas o eliminadas
  • Calcula la severidad de las actualizaciones
  • Distingue entre dependencias directas e indirectas/de desarrollo
  • Se integra con el enriquecimiento del contexto de la versión
  • La IA recibe información de las dependencias en las solicitudes
  • Realiza pruebas para todos los analizadores

Resultado esperado

ACTUALIZACIONES DE DEPENDENCIAS:

  • github.com/urfave/cli/v3: v2.25.0 → v3.0.0 (mayor)
  • react: ^17.0.0 → ^18.2.0 (mayor)
  • prettier: 2.8.0 → 2.8.8 (parche, desarrollo)

Metadata

Metadata

Assignees

No one assigned

    Labels

    dependenciesDependency updates or dependency filesenhancementImprovement or extension of an existing functionalityreleaseTasks related to releases and versioning

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions