Skip to main content

Meta-pacote para projetos Django

Project description

AVA Integration Metapackage

PyPI version Python Version Docker Image GitHub Workflow Status GitHub License GitHub Stars GitHub Issues GitHub Last Commit

Tecnologias

Django Python PostgreSQL Redis Docker Gunicorn Sentry

Meta-pacote Python que agrega todas as dependências necessárias para projetos Django do ecossistema de Integração AVA (Integrador, Painel e Gestor).

📦 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

🎯 Dependências Incluídas

Core Django

  • Django 5.2.11
  • django-extensions 4.1
  • sc4py 0.1.4

Pacotes Internos DEAD

  • django-rule-engine 1.0.1
  • django-dsgovbr 5.2.3

Banco de Dados

  • psycopg[binary,pool] 3.3.2

Models & Validação

  • django-better-choices 1.18
  • jsonschema 4.26.0
  • rule-engine 4.5.3

REST & HTTP

  • httpie 3.2.4
  • requests 2.32.5

Cache & Session

  • django-valkey 0.4.0
  • valkey 6.1.1

Auditoria

  • django-simple-history 3.11.0

Interface & UI

  • whitenoise 6.11.0
  • django-import-export 4.4.0
  • django-json-widget 2.1.1
  • django-admin-autocomplete-filter 0.7.1
  • django-richtextfield 1.6.2
  • libsass 0.23.0
  • django-compressor 4.6.0
  • django-sass-processor 1.4.2

Produção & Monitoramento

  • sentry-sdk[django,rq] 2.49.0
  • gunicorn 23.0.0
  • uvicorn 0.40.0

🚀 Instalação

Via PyPI

pip install avaintegration_metapackage

Via Docker

A imagem Docker base já inclui o metapackage instalado:

FROM avaintegrationbase:latest

Ou versão específica:

FROM avaintegrationbase:1.0.0

📋 Uso

Em projetos Django

Adicione ao seu requirements.txt ou pyproject.toml:

avaintegration_metapackage==1.0.0

Com Poetry

poetry add avaintegration_metapackage

Com pip-tools

# requirements.in
avaintegration_metapackage==1.0.0
pip-compile requirements.in
pip-sync requirements.txt

🔄 Workflow de CI/CD

Este projeto utiliza GitHub Actions para automatizar:

  1. Publicação no PyPI ao criar uma tag Git
  2. Build da imagem Docker usando o pacote publicado
  3. Push para Docker Hub com tags latest e versionada

Como fazer um release

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

# 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:

  • PYPI_API_TOKEN - Token de API do PyPI
  • 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=1.0.0 .

📝 Licença

Este projeto está licenciado sob a [Licença especificada no arquivo LICENSE].

🤝 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)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

avaintegration_metapackage-1.0.2.tar.gz (5.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

avaintegration_metapackage-1.0.2-py3-none-any.whl (5.4 kB view details)

Uploaded Python 3

File details

Details for the file avaintegration_metapackage-1.0.2.tar.gz.

File metadata

File hashes

Hashes for avaintegration_metapackage-1.0.2.tar.gz
Algorithm Hash digest
SHA256 f8fe0c81ab3131fb37bbfbaff0d666bf44951d2b784527d815967d7151d7ecc7
MD5 68bcf19adb02cc39ab276d83c92261f4
BLAKE2b-256 35fd109a4fadfaa8c131b7724c551975423b537c5089be368399eea5f97c7daf

See more details on using hashes here.

Provenance

The following attestation bundles were made for avaintegration_metapackage-1.0.2.tar.gz:

Publisher: publish-pypi-and-docker.yml on cte-zl-ifrn/integration-avaintegration_metapackage

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file avaintegration_metapackage-1.0.2-py3-none-any.whl.

File metadata

File hashes

Hashes for avaintegration_metapackage-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 bf8a784cb0dd3711aec0dd04d26bd8ee2849a5c75c2eb8512f39e3ab8d2318f3
MD5 66be9cc469a5e9460dde54407f2927fd
BLAKE2b-256 814ecf82cd84e1e40bdf055d3342ff947a3ef79e52bb7aaf729aa5ae65e0936d

See more details on using hashes here.

Provenance

The following attestation bundles were made for avaintegration_metapackage-1.0.2-py3-none-any.whl:

Publisher: publish-pypi-and-docker.yml on cte-zl-ifrn/integration-avaintegration_metapackage

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page