Skip to content

PHPAY-119: Dependabot para de propor major do Guzzle - #120

Merged
mariolucasdev merged 1 commit into
developfrom
chore/phpay-119
Oct 22, 2026
Merged

mariolucasdev merged 1 commit into
developfrom
chore/phpay-119

Conversation

@mariolucasdev

Copy link
Copy Markdown
Collaborator

Closes #119.

O que muda

Uma regra de ignore no .github/dependabot.yml, para guzzlehttp/guzzle e só para version-update:semver-major.

Por quê

O #118 subiu o Guzzle para 8.3.0 e o CI reprovou com:

Call to undefined method GuzzleHttp\Exception\ConnectException::getHandlerContext()
  em RetryPolicy::neverSent()

No Guzzle 8 a ConnectException é uma classe vazia e esse acessor não existe mais. É o que a RetryPolicy usa para separar "não saiu da máquina" de "deu timeout depois de enviar o corpo", e é essa distinção que impede repetir um POST já processado — cobrar o cliente duas vezes.

Vale registrar que os jobs de versão mínima passaram: o Dependabot propôs ^7.3 || ^8.0, então o lowest e o 8.1 resolvem 7.x. Quem reprovou foram os quatro jobs onde o 8.3 é instalado de fato, mais o lint. Não é piso de PHP, é API removida.

Suportar o Guzzle 8 é trabalho de código — achar o errno do cURL na API nova, reconfirmar o .p12 do mTLS (a 7.3 é a primeira que entrega .p12 ao cURL pela extensão) e refazer os testes da política. Enquanto isso, major reaberto a cada release só gasta revisão. Patch e minor continuam chegando.

Como testar

composer test segue verde (não toca src/). O próprio Dependabot valida o arquivo: o check .github/dependabot.yml aparece neste PR e reprova sintaxe inválida.

Checklist

  • composer test passa (Pint, Pest e PHPStan nível 9)
  • Cobri a mudança com testes, usando HTTP mockado (nenhum teste acessa a rede) — não se aplica: configuração
  • Atualizei README, CLAUDE.md ou UPGRADE.md, se a mudança afeta quem usa a biblioteca — não se aplica
  • Nenhuma credencial, token ou dado pessoal real foi commitado
  • Li e aceito o Contributor License Agreement

Guzzle 8 drops ConnectException::getHandlerContext(), which is how RetryPolicy tells "never left this machine" from "timed out after the body went out" — the distinction that keeps a processed POST from being repeated and charging twice. The CI of #118 failed on exactly that call.

Supporting Guzzle 8 is code work, not a bump: find the curl errno in the new API, re-confirm the .p12 path for mTLS, and redo the policy tests. Until then a reopened PR on every Guzzle release only spends review, so major is ignored for this one package. Patch and minor keep coming.
@mariolucasdev
mariolucasdev merged commit 4df3c6c into develop Oct 22, 2026
7 checks passed
@mariolucasdev
mariolucasdev deleted the chore/phpay-119 branch October 22, 2026 16:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Dependabot: parar de propor major do Guzzle

1 participant