Skip to content

chore(makefile): conserta os targets de qualidade - #470

Open
sirelves wants to merge 1 commit into
4.xfrom
chore/makefile-quality-targets
Open

chore(makefile): conserta os targets de qualidade#470
sirelves wants to merge 1 commit into
4.xfrom
chore/makefile-quality-targets

Conversation

@sirelves

@sirelves sirelves commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

Closes #471

make check, make pint e make format estavam quebrados. O CLAUDE.md manda rodar make check antes de commitar — quem segue a doc bate num erro que não é dele.

O bug

pint:
	@export XDEBUG_MODE=off      # morre aqui: não alcança a linha de baixo
	@$(CURDIR)/vendor/bin/pint --parallel
	@unset XDEBUG_MODE           # ← e esta linha mata o target

Cada linha de receita do make roda no próprio shell, então o export nunca teve efeito nenhum sobre o Pint. E o unset derruba o target: o make executa a linha direto, sem shell, e unset é builtin, não binário — make: unset: No such file or directoryError 1.

Reproduzi isolado: acontece mesmo com a sintaxe correta (unset XDEBUG_MODE). O =off sobrando no test-pint era só o segundo erro na mesma linha, não a causa. Por isso make pint e make format caíam junto, não só o test-pint.

A variável agora vai inline no comando, que é onde ela precisa valer:

test-pint:
	@XDEBUG_MODE=off $(CURDIR)/vendor/bin/pint --test --parallel

Também neste PR

  • test-phpstan ganha --memory-limit=2G, que o target phpstan já tinha. Sem ele o make check estoura os 128M padrão do PHP CLI e morre com fatal de memória — ou seja, make check tinha dois motivos independentes pra falhar.
  • Help do env-down dizia "Start the development environment" (cópia do env-up).

Por que o CI não pegou

Os workflows chamam vendor/bin/pint, vendor/bin/phpstan e vendor/bin/pest direto — 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 check ✅ 0
make test-pint ✅ 0
make test-phpstan ✅ 0
make pint ✅ 0
make format ✅ 0

Pergunta — env-down é destrutivo de propósito?

@docker compose --file docker-compose.yml down --rmi all --volumes

--volumes apaga o banco de desenvolvimento e --rmi all remove as imagens. Quem digita make env-down esperando só parar os containers perde o Postgres local e paga o download/build de novo no próximo env-up.

Se for intencional, o help novo já avisa e tá resolvido. Se não for, eu proporia env-down = down puro e um env-destroy separado pro comportamento atual — mas não mudei nada aqui porque é decisão de vocês.

`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.
@sirelves
sirelves requested a review from a team August 3, 2026 15:20
@coderabbitai

coderabbitai Bot commented Aug 3, 2026

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

The Makefile now sets XDEBUG_MODE=off inline for Pint targets. The test-PHPStan target now uses a 2G memory limit. The env-down description now states that the target stops the environment and removes images and volumes.

Suggested reviewers: gvieira18

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Title check ✅ Passed The title clearly identifies the Makefile quality-target fixes, which are the main changes in the pull request.
Description check ✅ Passed The description directly explains the Makefile fixes, validation results, and retained env-down behavior.

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@sirelves sirelves mentioned this pull request Aug 3, 2026
@stherzada

Copy link
Copy Markdown
Collaborator

@sirelves, consegue abrir uma issue, pra gente não perder o trackamento?

@sirelves

sirelves commented Aug 3, 2026

Copy link
Copy Markdown
Contributor Author

Boa lembrança, abri: #471

Coloquei lá o diagnóstico completo (o unset derrubando o target, o test-phpstan sem o memory-limit, e o motivo do CI não ter pego nada disso), mais os critérios de aceite. Já linkei com Closes #471 na descrição daqui, então fecha sozinho no merge.

Aproveitei e registrei na issue aquela dúvida do env-down, que hoje roda --rmi all --volumes e apaga o banco local de quem só queria parar os containers. Não mexi nisso no PR porque é decisão de vocês, mas assim não se perde.

@YuriSouzaDev YuriSouzaDev 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.

LGTM

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.

chore(makefile): make check, make pint e make format estão quebrados

3 participants