Skip to content

πŸ”§ MAINTENANCE SCRIPTS - GUÍA

Scripts para mantener dependencias actualizadas, seguras, y limpias.


πŸ“œ SCRIPTS DISPONIBLES

Script PropΓ³sito Tiempo CuΓ‘ndo Usar
update_dependencies.ps1 Actualizar todas las dependencias 10-20 min Mensualmente
clean_dependencies.ps1 Limpiar dependencias < 1 min Troubleshooting
check_security.ps1 Audit vulnerabilidades 2-5 min Antes de releases

πŸ”„ UPDATE_DEPENDENCIES.PS1

PropΓ³sito

Actualiza todas las dependencias (vcpkg + Python) a sus ΓΊltimas versiones.

Uso

.\update_dependencies.ps1

QuΓ© Hace

  1. Actualiza vcpkg:

    cd external/vcpkg
    git pull
    ./bootstrap-vcpkg.bat
    

  2. Actualiza packages de vcpkg:

    vcpkg update
    vcpkg upgrade --no-dry-run
    

  3. Actualiza Python tools:

    pip install --upgrade black pytest sphinx
    

  4. Actualiza registry:

    ..\03_03_01_installation_scripts\update_registry.ps1
    

Output Esperado

╔════════════════════════════════════════════╗
β•‘  πŸ”„ AudioLab Dependency Updater            β•‘
β•šβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•

πŸ“¦ Updating vcpkg...
  βœ“ vcpkg updated to latest

πŸ”„ Checking for package updates...
  Found 3 packages to upgrade:
  - fftw3: 3.3.9 β†’ 3.3.10
  - eigen3: 3.4.0 β†’ 3.4.1
  - fmt: 10.0.0 β†’ 10.1.1

πŸ“¦ Upgrading packages...
  βœ“ fftw3 upgraded
  βœ“ eigen3 upgraded
  βœ“ fmt upgraded

🐍 Updating Python tools...
  βœ“ black upgraded
  βœ“ pytest upgraded
  βœ“ sphinx upgraded

πŸ“‹ Updating registry...
  βœ“ Registry updated

╔════════════════════════════════════════════╗
β•‘  βœ… All dependencies updated               β•‘
β•šβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•

⚠️  IMPORTANTE: Ejecutar tests para verificar compatibilidad
    cd ..\..\03_02_build_infrastructure\03_02_03_build_scripts
    .\build.ps1

CuΓ‘ndo Usar

  • πŸ“… Mensualmente: Mantenerse actualizado
  • πŸ› Cuando hay bugfixes: Actualizar library especΓ­fica
  • πŸ”’ Security updates: ASAP si hay vulnerabilidades

DespuΓ©s de Actualizar

# 1. Verificar instalaciΓ³n
..\03_03_01_installation_scripts\verify_installation.ps1

# 2. Build proyecto
cd ..\..\03_02_build_infrastructure\03_02_03_build_scripts
.\build.ps1

# 3. Ejecutar tests
ctest --test-dir build

# 4. Si todo OK, commit registry
git add ..\03_03_00_package_manifests\_installed_registry\
git commit -m "Update dependencies to latest versions"

🧹 CLEAN_DEPENDENCIES.PS1

PropΓ³sito

Limpia dependencias instaladas (nuclear option para troubleshooting).

Uso

.\clean_dependencies.ps1 [opciones]

Opciones:
  -All              Limpiar TODO (vcpkg + Python)
  -Vcpkg            Limpiar solo vcpkg packages
  -Python           Limpiar solo Python tools
  -Force            No pedir confirmaciΓ³n

Ejemplos

# Limpiar todo (con confirmaciΓ³n)
.\clean_dependencies.ps1 -All

# Limpiar solo vcpkg sin preguntar
.\clean_dependencies.ps1 -Vcpkg -Force

# Limpiar solo Python
.\clean_dependencies.ps1 -Python

QuΓ© Hace

Con -All o -Vcpkg:

vcpkg remove fftw3 eigen3 libsndfile catch2 benchmark fmt spdlog

Con -All o -Python:

pip uninstall black pytest sphinx

Output Esperado

╔════════════════════════════════════════════╗
β•‘  🧹 AudioLab Dependency Cleaner            β•‘
β•šβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•

⚠️  WARNING: This will remove all dependencies!
   Continue? (y/N): y

πŸ—‘οΈ  Removing vcpkg packages...
  βœ“ fftw3 removed
  βœ“ eigen3 removed
  βœ“ libsndfile removed
  βœ“ catch2 removed
  βœ“ benchmark removed
  βœ“ fmt removed
  βœ“ spdlog removed

πŸ—‘οΈ  Removing Python tools...
  βœ“ black removed
  βœ“ pytest removed
  βœ“ sphinx removed

╔════════════════════════════════════════════╗
β•‘  βœ… Dependencies cleaned                   β•‘
β•šβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•

πŸ’‘ To reinstall:
   ..\03_03_01_installation_scripts\install_all_dependencies.ps1

CuΓ‘ndo Usar

  • πŸ”΄ Troubleshooting: Dependencias corruptas
  • πŸ”΄ Version conflicts: MΓΊltiples versiones instaladas
  • πŸ”΄ Clean slate: Empezar desde cero

DespuΓ©s de Limpiar

# Reinstalar
..\03_03_01_installation_scripts\install_all_dependencies.ps1

# Verificar
..\03_03_01_installation_scripts\verify_installation.ps1

πŸ” CHECK_SECURITY.PS1

PropΓ³sito

Audita dependencias para detectar vulnerabilidades conocidas.

Uso

.\check_security.ps1 [opciones]

Opciones:
  -Detailed         Mostrar detalles de vulnerabilidades
  -Export <file>    Exportar reporte a archivo

Ejemplos

# Audit bΓ‘sico
.\check_security.ps1

# Con detalles completos
.\check_security.ps1 -Detailed

# Exportar reporte
.\check_security.ps1 -Export security_audit.txt

QuΓ© Hace

  1. Check vcpkg packages:
  2. Busca CVEs conocidas
  3. Verifica versiones contra security advisories
  4. Usa base de datos de NVD (National Vulnerability Database)

  5. Check Python packages:

    pip-audit
    # O: safety check
    

  6. Genera reporte:

  7. Vulnerabilidades encontradas
  8. Severidad (Critical, High, Medium, Low)
  9. VersiΓ³n afectada
  10. Fix disponible (update a versiΓ³n X)

Output Esperado

Sin vulnerabilidades:

╔════════════════════════════════════════════╗
β•‘  πŸ” AudioLab Security Audit                β•‘
β•šβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•

πŸ” Checking vcpkg packages...
  βœ“ fftw3 3.3.10 - No vulnerabilities
  βœ“ eigen3 3.4.1 - No vulnerabilities
  βœ“ libsndfile 1.2.0 - No vulnerabilities
  βœ“ catch2 3.4.0 - No vulnerabilities
  βœ“ benchmark 1.8.3 - No vulnerabilities
  βœ“ fmt 10.1.1 - No vulnerabilities
  βœ“ spdlog 1.12.0 - No vulnerabilities

πŸ” Checking Python packages...
  βœ“ black 23.9.1 - No vulnerabilities
  βœ“ pytest 7.4.2 - No vulnerabilities
  βœ“ sphinx 7.2.6 - No vulnerabilities

╔════════════════════════════════════════════╗
β•‘  βœ… No vulnerabilities found               β•‘
β•šβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•

Con vulnerabilidades:

╔════════════════════════════════════════════╗
β•‘  πŸ” AudioLab Security Audit                β•‘
β•šβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•

πŸ” Checking packages...

⚠️  VULNERABILITIES FOUND:

❌ libsndfile 1.1.0
   CVE-2022-33065 - CRITICAL
   Description: Integer overflow in WAV file parsing
   Fixed in: 1.2.0
   Action: Update to 1.2.0 or later

πŸ” Python packages...
  βœ“ All Python packages secure

╔════════════════════════════════════════════╗
β•‘  ⚠️  1 vulnerability found                 β•‘
β•šβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•

πŸ’‘ Recommended actions:
   1. Update libsndfile: vcpkg upgrade libsndfile
   2. Run update_dependencies.ps1
   3. Rerun security check

CuΓ‘ndo Usar

  • πŸ“… Mensualmente: Audit de rutina
  • πŸš€ Antes de releases: SIEMPRE antes de distribuir
  • πŸ”” Cuando hay CVE news: Verificar si estΓ‘s afectado

DespuΓ©s de Encontrar Vulnerabilidades

# 1. Actualizar dependencias
.\update_dependencies.ps1

# 2. Re-audit
.\check_security.ps1

# 3. Si persiste, investigar
#    - ΒΏHay fix disponible?
#    - ΒΏEs false positive?
#    - ΒΏNecesitamos mitigar?

# 4. Documentar
git add security_audit.txt
git commit -m "Security audit - all clear"

🎯 WORKFLOW RECOMENDADO

Mantenimiento Mensual

# 1. Security audit
.\check_security.ps1 -Detailed -Export audit_$(Get-Date -Format 'yyyy-MM-dd').txt

# 2. Si hay issues, actualizar
.\update_dependencies.ps1

# 3. Verificar
..\03_03_01_installation_scripts\verify_installation.ps1

# 4. Build + test
cd ..\..\03_02_build_infrastructure\03_02_03_build_scripts
.\build.ps1
ctest --test-dir build

# 5. Commit si OK
git add ..\..\..\03_INFRA\03_03_dependency_management\03_03_00_package_manifests\_installed_registry\
git commit -m "Monthly dependency update - $(Get-Date -Format 'yyyy-MM-dd')"

Pre-Release Checklist

# 1. Security audit
.\check_security.ps1 -Detailed

# 2. Debe ser CLEAN (no vulnerabilities)

# 3. Generar attributions
cd ..\03_03_04_license_management
.\generate_attributions.ps1

# 4. Include THIRD_PARTY_LICENSES.md en distribuciΓ³n

Troubleshooting Dependencies

# 1. Clean
.\clean_dependencies.ps1 -All -Force

# 2. Reinstall
..\03_03_01_installation_scripts\install_all_dependencies.ps1

# 3. Verify
..\03_03_01_installation_scripts\verify_installation.ps1

# 4. Test
cd ..\..\03_02_build_infrastructure\03_02_03_build_scripts
.\build.ps1

πŸ“š RECURSOS


Última actualización: 2025-10-09