Lint e formate o código automaticamente antes dos commits

O repositório do Discourse inclui configuração para o lefthook. Isso verificará automaticamente qualquer código antes que ele seja confirmado no git e alertará sobre quaisquer problemas. Para configurar, basta entrar no seu diretório de desenvolvimento do Discourse e executar

pnpm install
pnpm run lefthook install

Os arquivos serão verificados automaticamente antes de serem confirmados. Se houver algum problema, o commit será cancelado e você verá uma lista de erros.


Este documento é controlado por versão - sugira alterações no github.

11 curtidas

Isso foi muito legal quando estava funcionando.

Atualmente estou recebendo uma versão deste erro com o main atual no WSL2

Isso quebrou minha capacidade de fazer commit:

robert@blah:~/discourse$ git commit -m "fix test setup"
/home/robert/discourse/node_modules/lefthook-linux-x64/bin/lefthook: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by /home/robert/discourse/node_modules/lefthook-linux-x64/bin/lefthook)
/home/robert/discourse/node_modules/lefthook-linux-x64/bin/lefthook: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.32' not found (required by /home/robert/discourse/node_modules/lefthook-linux-x64/bin/lefthook)

Alguma ideia?

Parece que houve uma atualização do dependabot para o lefthook há apenas 8 horas.

Talvez eu tenha que voltar um pouco no meu package.json?

OK, consegui fazer funcionar novamente movendo o lefthook de volta para 1.6.9 (!) e usando o yarn
Qualquer sugestão sobre uma abordagem melhor será muito apreciada, porque agora estou fora de sincronia com o core!

Parece com Version 1.7.6 fails installation on CI · Issue #783 · evilmartians/lefthook · GitHub

Vamos reverter a atualização enquanto eles resolvem as coisas

1 curtida

David, estou fazendo um upgrade local para o Jammy (Dodger)… Vou ver se isso ajuda.

1 curtida

Esta é a chave… a versão mais recente no Ubuntu anterior que eu tinha era GLIBC_2.31, acredito.

Atualizar o pacote libc6 levou a versão a este ponto, então parece que uma atualização de versão principal é necessária.

Voltarei em breve quando meus 16 núcleos processarem isso.

1 curtida

De acordo com o problema do github deles, a dependência de bibliotecas compartilhadas não é intencional. Mesmo que você consiga fazê-lo funcionar, outras pessoas provavelmente terão problemas. Então, aqui vamos nós:

Revert "Build(deps-dev): Bump lefthook from 1.7.5 to 1.7.7 (#28068)" … · discourse/discourse@1b7a583 · GitHub :fire:

1 curtida

ok isso corrige (com 1.7.7!):

robert@blah:~/discourse$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 22.04.4 LTS
Release:        22.04
Codename:       jammy

(@JammyDodger)

:rocket:

robert@blah:~/discourse$ yarn list --pattern lefthook
yarn list v1.22.19
warning Resolution field "unset-value@2.0.1" is incompatible with requested version "unset-value@^1.0.0"
├─ lefthook-darwin-arm64@1.7.7
├─ lefthook-darwin-x64@1.7.7
├─ lefthook-freebsd-arm64@1.7.7
├─ lefthook-freebsd-x64@1.7.7
├─ lefthook-linux-arm64@1.7.7
├─ lefthook-linux-x64@1.7.7
├─ lefthook-windows-arm64@1.7.7
├─ lefthook-windows-x64@1.7.7
└─ lefthook@1.7.7
Done in 0.53s
robert@blah:~/discourse$ git status
On branch test_branch
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
        new file:   mytestfile

robert@blah:~/discourse$ git commit -m "test file addition"
│  ember-template-lint (skip) no files for inspection
│  yaml-syntax (skip) no files for inspection
│  i18n-lint (skip) no files for inspection
│  rubocop (skip) no files for inspection
│  eslint (skip) no files for inspection
│  prettier (skip) no files for inspection
│  prettier-scss (skip) no files for inspection
│  syntax_tree (skip) no files for inspection

  ────────────────────────────────────
summary: (done in 0.06 seconds)
[test_branch 1cd0bb3839] test file addition
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 mytestfile
2 curtidas