Home

Meta-pacote Python 3.14 que agrega todas as dependências necessárias para projetos Django 6.0 do ecossistema AVA do IFRN(Integrador AVA, Painel AVA, Gestor AVA e Leitor EaD).

GitHub Repository License Python Docker Docs pre-commit Publish

📦 O que é um metapackage?

Um metapackage é um pacote Python que não contém código próprio, mas declara um conjunto de dependências. Ao instalar o metapackage, todas as suas dependências são instaladas automaticamente, garantindo:

  • ✅ Versionamento unificado de dependências entre projetos

  • ✅ Consistência entre ambientes de desenvolvimento, teste e produção

  • ✅ Simplificação do gerenciamento de dependências

  • ✅ Sincronização automática via imagem Docker base

Tecnologias

Django Python PostgreSQL Valkey Docker Gunicorn Sentry

Olhe o arquivo pyproject.toml, atributo dependencies, para conhecer as demais bibliotecas.

🚀 Instalação

Via pip

pip install avaintegration_metapackage

Via Docker

A imagem Docker base já inclui o metapackage instalado:

FROM ctezlifrn/avaintegrationbase:6.0.8.40

🔄 Workflow de CI/CD

# 1. Atualize a versão no setup.py (será sobrescrita pela tag)
# 2. Crie e envie a tag
git tag 6.0.4.13
git push origin 6.0.4.13

# 3. O GitHub Action irá:
#    - Atualizar setup.py com a versão da tag
#    - Publicar no PyPI
#    - Aguardar 60s para propagação
#    - Construir imagem Docker instalando o pacote do PyPI
#    - Publicar imagem no Docker Hub

Secrets necessários no GitHub

Configure os seguintes secrets no repositório:

  • DOCKERHUB_USERNAME - Usuário do Docker Hub

  • DOCKERHUB_TOKEN - Token de acesso do Docker Hub

🛠️ Desenvolvimento

Estrutura do projeto

metapackage/
├── .github/
│   ├── docker/
│   │   └── Dockerfile          # Dockerfile para imagem base
│   └── workflows/
│       └── publish-pypi-and-docker.yml
├── avaintegration_metapackage/
│   └── __init__.py             # Versão do pacote
├── setup.py                    # Configuração e dependências
├── Dockerfile                  # Dockerfile de desenvolvimento
└── README.md

Atualizando dependências

  1. Edite setup.py e ajuste as versões em install_requires

  2. Teste localmente pip install -e .

  3. Faça commit e crie uma nova tag

Testando localmente

# Build do pacote
python -m build

# Instalação local
pip install dist/avaintegration_metapackage-*.whl

# Teste da imagem Docker
docker build -t avaintegrationbase:test -f .github/docker/Dockerfile --build-arg PACKAGE_VERSION=6.0.8.40 .

🤝 Contribuindo

Contribuições são bem-vindas! Por favor:

  1. Crie um fork do projeto

  2. Crie uma branch para sua feature (git checkout -b feature/nova-dependencia)

  3. Commit suas mudanças (git commit -am ‘Adiciona nova dependência X’)

  4. Push para a branch (git push origin feature/nova-dependencia)

  5. Abra um Pull Request

📞 Suporte

Para questões ou problemas, abra uma issue no repositório do projeto.

Mantido por: IFRN - Diretoria de Educação a Distância (DEAD)

Next steps