Dependency Management - C-Suite
Este documento descreve o processo de gerenciamento de dependências para o ecossistema C-Suite.
Visão Geral
Dependências devem ser atualizadas regularmente para garantir segurança e compatibilidade.
Ferramentas
Dependabot
Dependabot está configurado para atualizar dependências automaticamente.
Configuração: .github/dependabot.yml
- Atualizações semanais de dependências Python
- Atualizações mensais de GitHub Actions e Docker
- Cria PRs automaticamente
- Ignora atualizações major (requerem revisão manual)
Safety
Safety verifica vulnerabilidades conhecidas em dependências Python.
Instalação:
pip install safety
Uso:
safety check --file requirements.txt
pip-audit
Alternativa ao safety, mantido pela Python Packaging Authority.
Instalação:
pip install pip-audit
Uso:
pip-audit -r requirements.txt
Processo
1. Atualização Regular
- Dependabot cria PRs automaticamente
- Revisar PRs semanalmente
- Testar antes de aprovar
2. Verificação de Vulnerabilidades
# Verificar vulnerabilidades
safety check --file requirements.txt
# Ou com pip-audit
pip-audit -r requirements.txt
3. Atualização Manual
Se necessário atualizar manualmente:
# Atualizar todas as dependências
pip install --upgrade -r requirements.txt
# Atualizar dependência específica
pip install --upgrade package-name
# Gerar novo requirements.txt
pip freeze > requirements.txt
4. Pinning de Versões
Sempre pin versões em produção:
# Bom
fastapi==0.115.0
pydantic==2.9.2
# Evitar
fastapi>=0.115.0
pydantic~=2.9
Estratégias de Versionamento
Semantic Versioning
- Major (X.0.0): Breaking changes
- Minor (0.X.0): Novas funcionalidades, backward compatible
- Patch (0.0.X): Bug fixes, backward compatible
Pinning Strategy
- Produção: Versões exatas (
==) - Desenvolvimento: Versões mínimas (
>=) para flexibilidade - CI/CD: Versões exatas para reprodutibilidade
Verificação de Compatibilidade
Antes de Atualizar
- Verificar changelog da dependência
- Verificar breaking changes
- Testar em ambiente de staging
- Verificar compatibilidade com outras dependências
Depois de Atualizar
- Executar testes completos
- Verificar logs por warnings
- Monitorar métricas por problemas
Dependências Críticas
Dependências críticas requerem atenção especial:
- FastAPI: Framework principal
- SQLAlchemy: ORM de banco de dados
- Prometheus: Métricas
- OpenTelemetry: Tracing
- Pydantic: Validação de dados
Vulnerabilidades Conhecidas
Verificação Regular
# Adicionar ao CI/CD
safety check --file requirements.txt || exit 1
Resposta a Vulnerabilidades
- Crítica: Atualizar imediatamente
- Alta: Atualizar dentro de 7 dias
- Média: Atualizar dentro de 30 dias
- Baixa: Atualizar no próximo ciclo
Requirements Files
Estrutura
requirements.txt # Produção (pinned)
requirements-dev.txt # Desenvolvimento (flexível)
requirements-test.txt # Testes
requirements-common.txt # Módulos comuns
Boas Práticas
- Separar por ambiente
- Documentar propósito de cada arquivo
- Manter sincronizados
- Revisar regularmente
CI/CD Integration
GitHub Actions
- name: Check dependencies
run: |
pip install safety
safety check --file requirements.txt
GitLab CI
check-dependencies:
script:
- pip install safety
- safety check --file requirements.txt