π§ 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¶
QuΓ© Hace¶
-
Actualiza vcpkg:
-
Actualiza packages de vcpkg:
-
Actualiza Python tools:
-
Actualiza registry:
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:
Con -All o -Python:
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¶
- Check vcpkg packages:
- Busca CVEs conocidas
- Verifica versiones contra security advisories
-
Usa base de datos de NVD (National Vulnerability Database)
-
Check Python packages:
-
Genera reporte:
- Vulnerabilidades encontradas
- Severidad (Critical, High, Medium, Low)
- VersiΓ³n afectada
- 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¶
- Installation Scripts: ../03_03_01_installation_scripts/README.md
- Troubleshooting: ../03_03_09_troubleshooting/DEPENDENCY_TROUBLESHOOTING_GUIDE.md
- Cheat Sheet: ../DEPENDENCY_CHEAT_SHEET.md
Γltima actualizaciΓ³n: 2025-10-09