chore(makefile): conserta os targets de qualidade - #470
Conversation
`make check`, `make pint` e `make format` falhavam. Cada linha de receita do make roda no próprio shell, então o par `export XDEBUG_MODE=off` / `unset` nunca teve efeito sobre o Pint — e a linha do `unset` ainda derrubava o target: o make a executa direto, sem shell, e `unset` é builtin, não binário (`make: unset: No such file or directory` → Error 1). Vale para a sintaxe correta também; o `=off` sobrando no test-pint era só o segundo erro. A variável agora vai inline no comando, que é onde ela precisa valer. - `test-phpstan` ganha o `--memory-limit=2G` que o target `phpstan` já tinha: sem ele o `make check` estoura os 128M padrão do PHP CLI e morre. - Corrige o help do `env-down`, que era cópia do `env-up`. O CI não passava por aqui (os workflows chamam `vendor/bin/*` direto), então o pipeline seguiu verde com o gate local quebrado — mas o CLAUDE.md manda rodar `make check` antes de commitar.
📝 WalkthroughWalkthroughThe Makefile now sets Suggested reviewers: 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
@sirelves, consegue abrir uma issue, pra gente não perder o trackamento? |
|
Boa lembrança, abri: #471 Coloquei lá o diagnóstico completo (o Aproveitei e registrei na issue aquela dúvida do |
Closes #471
make check,make pintemake formatestavam quebrados. OCLAUDE.mdmanda rodarmake checkantes de commitar — quem segue a doc bate num erro que não é dele.O bug
Cada linha de receita do make roda no próprio shell, então o
exportnunca teve efeito nenhum sobre o Pint. E ounsetderruba o target: o make executa a linha direto, sem shell, eunseté builtin, não binário —make: unset: No such file or directory→Error 1.Reproduzi isolado: acontece mesmo com a sintaxe correta (
unset XDEBUG_MODE). O=offsobrando notest-pintera só o segundo erro na mesma linha, não a causa. Por issomake pintemake formatcaíam junto, não só otest-pint.A variável agora vai inline no comando, que é onde ela precisa valer:
Também neste PR
test-phpstanganha--memory-limit=2G, que o targetphpstanjá tinha. Sem ele omake checkestoura os 128M padrão do PHP CLI e morre com fatal de memória — ou seja,make checktinha dois motivos independentes pra falhar.env-downdizia "Start the development environment" (cópia doenv-up).Por que o CI não pegou
Os workflows chamam
vendor/bin/pint,vendor/bin/phpstanevendor/bin/pestdireto — nenhum passa pelo Makefile. O pipeline seguia verde com o gate local quebrado. Vale considerar se o CI deveria consumir os mesmos targets, pra não haver duas definições de "checar o projeto" que podem divergir de novo.Verificação
Todos exit 0, e nenhum arquivo tocado além do Makefile:
make checkmake test-pintmake test-phpstanmake pintmake formatPergunta —
env-downé destrutivo de propósito?--volumesapaga o banco de desenvolvimento e--rmi allremove as imagens. Quem digitamake env-downesperando só parar os containers perde o Postgres local e paga o download/build de novo no próximoenv-up.Se for intencional, o help novo já avisa e tá resolvido. Se não for, eu proporia
env-down=downpuro e umenv-destroyseparado pro comportamento atual — mas não mudei nada aqui porque é decisão de vocês.