Skip to content

Release 3.1.0: new validation contracts and docs#197

Merged
fazedordecodigo merged 60 commits into
mainfrom
release/3.1.0
Dec 5, 2025
Merged

Release 3.1.0: new validation contracts and docs#197
fazedordecodigo merged 60 commits into
mainfrom
release/3.1.0

Conversation

@fazedordecodigo

Copy link
Copy Markdown
Owner

Descrição

Release 3.1.0 consolidates the new validation contracts, expanded docs, and CI/security tweaks described in the changelog.

Mudanças Propostas

  • Add specialized validation contracts for numeric, datetime, URL, and Brazilian documents (CPF/CNPJ).
  • Expand documentation (about + validations) and align README content.
  • Add dedicated tests for the new validation contracts.
  • Update CI matrix to include Python 3.14 and tighten Sonar/workflow permissions; add automation prompts/guides.

Checklist de Revisão

  • Eu li o Contributing.md
  • Os testes foram adicionados ou atualizados para refletir as mudanças (se aplicável).
  • Foi adicionada uma entrada no changelog / Meu PR não necessita de uma nova entrada no changelog.
  • A documentação em português foi atualizada ou criada, se necessário.
  • Se feita a documentação, a atualização do arquivo em inglês.
  • Eu documentei as minhas mudanças no código, adicionando docstrings e comentários.
  • O código segue as diretrizes de estilo e padrões de codificação do projeto.
  • Todos os testes passam.
  • O Pull Request foi testado localmente.
  • Não há conflitos de mesclagem.

Comentários Adicionais (opcional)

Release PR assembled from the current changelog items for v3.1.0.

Issue Relacionada

Closes #27, #28, #29, #33

claude and others added 30 commits November 17, 2025 01:06
- Cria documentação de validações numéricas (numeric.md)
- Cria documentação de validações de formato (format.md)
- Cria documentação de validações booleanas (boolean.md)
- Cria documentação de documentos brasileiros (brazilian_docs.md)
- Cria página sobre o Domain Notification Pattern (about.md)
- Atualiza e corrige index de validações com links funcionais

Resolve o gap entre a navegação do mkdocs.yml e os arquivos
de documentação que estavam faltando. Todos os links agora
funcionam corretamente.

Issue relacionada: Melhoria de credibilidade e documentação do projeto
## Validações Brasileiras (CPF/CNPJ)
- ✅ Implementa validação completa de CPF com dígitos verificadores
- ✅ Implementa validação completa de CNPJ com dígitos verificadores
- ✅ Rejeita números sequenciais e inválidos conhecidos
- ✅ Suporta formatação (com pontos/hífen) e sem formatação
- ✅ Adiciona testes completos para CPF e CNPJ

## Validações Numéricas Diretas
- ✅ Cria NumericValidationContract para valores int/float
- ✅ Implementa is_greater_than_number, is_lower_than_number
- ✅ Implementa is_between_numbers, is_positive, is_negative
- ✅ Implementa is_zero, is_not_zero
- ✅ Adiciona testes completos

## Validações de URL
- ✅ Cria URLValidationContract
- ✅ Implementa is_url() e is_not_url()
- ✅ Usa regex pattern existente

## Validações de DateTime
- ✅ Cria DateTimeValidationContract
- ✅ Implementa is_date_after, is_date_before, is_date_between
- ✅ Implementa is_date_in_past, is_date_in_future, is_today
- ✅ Suporta date e datetime

## CI/CD
- ✅ Corrige workflow de linters (uv add → uv sync --group linter)
- ✅ Evita modificação de arquivos durante CI

## Documentação
- ✅ Atualiza docs/validations/brazilian_docs.md
- ✅ Remove seções de "limitações" e "workarounds"
- ✅ Adiciona exemplos completos de uso
- ✅ Documenta algoritmos de validação

Resolve: #29 (Validação de Documentos)
Resolve: #28 (Validação de Números)
Resolve: #33 (Validação de URL)
Resolve: #27 (Validação de DateTime)
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
- Adiciona constantes para magic values (CPF_LENGTH, CNPJ_LENGTH, MAX_CHECKSUM_DIGIT)
- Substitui datetime.now() e date.today() por função _get_today() com UTC timezone
- Remove warnings PLR2004 (magic values)
- Remove warnings DTZ005/DTZ011 (timezone aware datetimes)

Todos os checks do Ruff agora passam com sucesso.
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: fazedordecodigo <38289677+fazedordecodigo@users.noreply.github.com>
- Adiciona constantes para valores mágicos (PLR2004)
- Adiciona anotações ClassVar para atributos de classe (RUF012)
- Substitui valores literais por constantes nomeadas nos testes
- Remove todos os avisos do Ruff (16 erros corrigidos)
…umeric.md

Co-authored-by: fazedordecodigo <38289677+fazedordecodigo@users.noreply.github.com>
Fix documentation errors from PR #183 review comments
Fix documentation inconsistencies in numeric validations
…nt-analysis-011CUMG8PYJSnJLdvayAaRuk

Analyze Project for Potential Improvements
Bumps the github_actions group with 1 update in the /.github/workflows directory: [SonarSource/sonarqube-scan-action](https://github.com/sonarsource/sonarqube-scan-action).


Updates `SonarSource/sonarqube-scan-action` from 5 to 6
- [Release notes](https://github.com/sonarsource/sonarqube-scan-action/releases)
- [Commits](SonarSource/sonarqube-scan-action@v5...v6)

---
updated-dependencies:
- dependency-name: SonarSource/sonarqube-scan-action
  dependency-version: '6'
  dependency-type: direct:production
  dependency-group: github_actions
...

Signed-off-by: dependabot[bot] <support@github.com>
…s/dot-github/workflows/github_actions-3e76b0ee14

build(deps): Bump SonarSource/sonarqube-scan-action from 5 to 6 in /.github/workflows in the github_actions group across 1 directory
…in permissions

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
Potential fix for code scanning alert no. 22: Workflow does not contain permissions
…in permissions

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
Potential fix for code scanning alert no. 21: Workflow does not contain permissions
Emerson Delatorre and others added 6 commits December 5, 2025 17:39
…n 3.14

Adiciona informações sobre novos contratos de validação, documentação expandida e melhorias na automação do CI.
Adiciona seções sobre compatibilidade com Python 3.11+, validações fluentes e contratos especializados. Atualiza informações de documentação e requisitos.
Substitui ferramentas obsoletas por novas referências para melhorar a funcionalidade do modo Beast.
… de CNPJ e atualiza exemplos de uso em testes

Melhora a legibilidade do código ao remover quebras de linha desnecessárias nas somas de validação de CNPJ. Atualiza os exemplos de uso nos testes para melhor clareza.
… de logs

Ajusta a atribuição do logger para uma variável e melhora a formatação das mensagens de log para uma apresentação mais clara.
Release 3.1.0: new validation contracts and docs
Copilot AI review requested due to automatic review settings December 5, 2025 21:01
@continue

continue Bot commented Dec 5, 2025

Copy link
Copy Markdown

Keep this PR in a mergeable state →

Learn more

All Green is an AI agent that automatically:

✅ Addresses code review comments

✅ Fixes failing CI checks

✅ Resolves merge conflicts

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This release PR consolidates version 3.1.0, which adds specialized validation contracts for common scenarios (numeric values, datetime, URLs, and Brazilian documents), expands documentation significantly, and updates the CI pipeline to include Python 3.14 support with improved security configurations.

Key Changes:

  • Introduces four new validation contract classes (Numeric, DateTime, URL, Brazilian Documents) extending the fluent validation API
  • Adds comprehensive documentation in docs/ covering the Domain Notification Pattern, validation guides, and usage examples
  • Updates CI matrix to test against Python 3.14 and tightens GitHub Actions permissions
  • Includes automation prompts/guides and detailed Copilot instructions for contributors

Reviewed changes

Copilot reviewed 73 out of 75 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
pyproject.toml Version bump to 3.1.0, dependency updates, Python 3.14 classifier, keyword additions
CHANGELOG.md / CHANGELOG_EN.md Release notes for 3.1.0 with Added/Changed/Security sections
flunt/validations/numeric_validation_contract.py New contract for numeric validations (ranges, limits, sign)
flunt/validations/datetime_validation_contract.py New contract for date/datetime validations (intervals, min/max)
flunt/validations/url_validation_contract.py New contract for URL validation
flunt/validations/brazilian_document_validation_contract.py New contract for CPF/CNPJ validation with check digits
flunt/validations/contract.py Updated to inherit from new contracts
tests/validations/test_numeric_validation_contract.py Comprehensive tests for numeric contract
tests/validations/test_brazilian_document_validation_contract.py Comprehensive tests for Brazilian document contract
tox.ini Added Python 3.14 to test matrix
.github/workflows/*.yml Added explicit permissions, Python 3.14 support, updated SonarQube action
docs/about.md New comprehensive guide on Domain Notification Pattern
docs/validations/*.md New validation documentation (numeric, boolean, format, Brazilian docs, index)
README.md / README_EN.md Updated with highlights, new contracts, requirements section
samples/*.py Minor formatting improvements (logger usage, blank lines)
.gitignore Added Copilot-Processing.md to ignore list
.github/prompts/*.md New automation prompts for various development tasks
.github/instructions/*.md New instruction files for Copilot behavior
.github/chatmodes/*.md New chatmode for technical debt remediation
AGENTS.md New file with project overview and workflows for AI agents

Comment thread flunt/validations/url_validation_contract.py Outdated
Emerson Delatorre added 10 commits December 5, 2025 18:08
Ajusta a importação e a chamada da função de compilação de regex para melhorar a legibilidade e a consistência do código.
…retrizes e ferramentas

Implementa dois novos agentes com foco em boas práticas de programação e planejamento de testes. O Pythonic Guardian segue o Zen of Python e Clean Code, enquanto o QA Sentinel se concentra em análise estática e cobertura de testes.
…o DateTime

Inclui testes para verificar a funcionalidade de comparação de datas,
incluindo casos de datas válidas, iguais, inválidas e limites de intervalo.
Adiciona a função _to_date para garantir que comparações entre
instâncias de date e datetime não gerem TypeError. Atualiza os
testes para validar o comportamento esperado sem erros.
…ção de data

Ajusta a formatação das funções de teste para melhorar a legibilidade e a consistência do código.
…ção de data

Ajusta a formatação das funções de teste para seguir as convenções de estilo e melhorar a legibilidade.
…os testes

Atualiza os testes para garantir que as comparações entre tipos de data e datetime
considerem corretamente a informação de fuso horário, melhorando a precisão
das validações de data.
@sonarqubecloud

sonarqubecloud Bot commented Dec 5, 2025

Copy link
Copy Markdown

@fazedordecodigo fazedordecodigo merged commit af0026e into main Dec 5, 2025
17 checks passed
@fazedordecodigo fazedordecodigo deleted the release/3.1.0 branch December 5, 2025 23:37
@github-project-automation github-project-automation Bot moved this to Done in PyFlunt Dec 5, 2025
@fazedordecodigo fazedordecodigo restored the release/3.1.0 branch December 5, 2025 23:37
@fazedordecodigo fazedordecodigo deleted the release/3.1.0 branch December 5, 2025 23:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

4 participants