Metadata-Version: 2.4
Name: avaintegration_metapackage
Version: 6.0.5.32
Summary: Meta-pacote para projetos Django
Author-email: IFRN - DEAD <dead.zl@ifrn.edu.br>
License: # The MIT License
        
        Copyright (c) 2026 CTE/ZL/IFRN
        
        Permission is hereby granted, free of charge, to any person obtaining a copy
        of this software and associated documentation files (the "Software"), to deal
        in the Software without restriction, including without limitation the rights
        to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
        copies of the Software, and to permit persons to whom the Software is
        furnished to do so, subject to the following conditions:
        
        The above copyright notice and this permission notice shall be included in all
        copies or substantial portions of the Software.
        
        THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
        AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
        OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
        SOFTWARE.
        
Project-URL: Homepage, https://github.com/cte-zl-ifrn/integration-avaintegration_metapackage
Project-URL: Source, https://github.com/cte-zl-ifrn/integration-avaintegration_metapackage
Project-URL: Bug Tracker, https://github.com/cte-zl-ifrn/integration-avaintegration_metapackage/issues
Project-URL: Download, https://github.com/cte-zl-ifrn/integration-avaintegration_metapackage/releases/
Project-URL: Docs, https://cte-zl-ifrn.github.io/integration-avaintegration_metapackage/
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.14
Requires-Python: >=3.14
Description-Content-Type: text/markdown
License-File: LICENSE.md
Requires-Dist: Django==6.0.5
Requires-Dist: django-extensions==4.1
Requires-Dist: sc4py==1.1.9
Requires-Dist: sc4net==1.2.0
Requires-Dist: pyfwf==1.0.1
Requires-Dist: abrasileirado==1.0.1
Requires-Dist: django-rule-engine==1.0.1
Requires-Dist: django-suap-auth==1.0.1
Requires-Dist: django-sabia-auth==1.1.0
Requires-Dist: django-dsgovbr==5.2.4
Requires-Dist: django-better-choices==3.1
Requires-Dist: django-safedelete==1.4.1
Requires-Dist: jsonschema==4.26.0
Requires-Dist: requests==2.33.1
Requires-Dist: django-ninja==1.6.2
Requires-Dist: django-valkey==0.4.1
Requires-Dist: valkey==6.1.1
Requires-Dist: pyjwt==2.12.1
Requires-Dist: django-simple-history==3.11.0
Requires-Dist: whitenoise==6.12.0
Requires-Dist: django-import-export==4.4.1
Requires-Dist: django-json-widget==2.1.1
Requires-Dist: django-admin-autocomplete-filter==0.7.1
Requires-Dist: django-richtextfield==1.6.2
Requires-Dist: psycopg[binary,pool]==3.3.4
Requires-Dist: httpie==3.2.4
Requires-Dist: sentry-sdk[django,rq]==2.60.0
Requires-Dist: uvicorn==0.47.0
Requires-Dist: gunicorn==26.0.0
Provides-Extra: dev
Requires-Dist: pre-commit>=4.6.0; extra == "dev"
Requires-Dist: black>=26.5.1; extra == "dev"
Requires-Dist: ruff>=0.15.11; extra == "dev"
Requires-Dist: doc8>=2.0.0; extra == "dev"
Requires-Dist: pytest>=9.0.3; extra == "dev"
Requires-Dist: pytest-cov>=7.1.0; extra == "dev"
Requires-Dist: python-dotenv>=1.2.2; extra == "dev"
Requires-Dist: pytest-coverage-gate>=1.0.3; extra == "dev"
Requires-Dist: pytest-django>=4.12.0; extra == "dev"
Requires-Dist: responses>=0.26.0; extra == "dev"
Dynamic: license-file


# AVA Integration Metapackage

Project :
[![License](https://img.shields.io/badge/License-MIT-lemon.svg)](https://opensource.org/licenses/MIT)
![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit)
![Docs](https://github.com/cte-zl-ifrn/integration-avaintegration_metapackage/actions/workflows/docs.yml/badge.svg)

Publish: 
![Publish](https://github.com/cte-zl-ifrn/integration-avaintegration_metapackage/actions/workflows/publish.yml/badge.svg)
![Python](https://img.shields.io/pypi/pyversions/avaintegration_metapackage.svg)
![Docker](https://img.shields.io/docker/v/ctezlifrn/avaintegrationbase)

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


## 📦 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](https://img.shields.io/badge/Django-6.0.4-092E20?style=flat&logo=django&logoColor=white)
![Python](https://img.shields.io/badge/Python-3.14.4-3776AB?style=flat&logo=python&logoColor=white)
![PostgreSQL](https://img.shields.io/badge/PostgreSQL-16-336791?style=flat&logo=postgresql&logoColor=white)
![Redis](https://img.shields.io/badge/Valkey-6.1.1-DC382D?style=flat&logo=redis&logoColor=white)
![Docker](https://img.shields.io/badge/Docker-enabled-2496ED?style=flat&logo=docker&logoColor=white)
![Gunicorn](https://img.shields.io/badge/Gunicorn-25.3.0-499848?style=flat&logo=gunicorn&logoColor=white)
![Sentry](https://img.shields.io/badge/Sentry-2.57.0-362D59?style=flat&logo=sentry&logoColor=white)

Olhe o arquivo [setup.py](https://github.com/cte-zl-ifrn/integration-avaintegration_metapackage/blob/e7ec1a52f216d008539f4a56161fe9461d360c4e/setup.py#L33), atributo `install_requires`, para conhecer as demais bibliotecas.

## 🚀 Instalação

### Via PyPI

```bash
pip install avaintegration_metapackage
```

### Via Docker

A imagem Docker base já inclui o metapackage instalado:

```dockerfile
FROM ctezlifrn/avaintegrationbase:6.0.5.32
```

## 🔄 Workflow de CI/CD


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

- `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:
   ```bash
   pip install -e .
   ```
3. Faça commit e crie uma nova tag

### Testando localmente

```bash
# 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.5.32 .
```

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