Lintare e formattare automaticamente il codice prima dei commit

Il repository di discourse include la configurazione per lefthook. Questo controllerà automaticamente qualsiasi codice prima che venga committato su git e segnalerà eventuali problemi. Per configurarlo, è sufficiente accedere alla directory di sviluppo di discourse ed eseguire

pnpm install
pnpm run lefthook install

I file verranno ora controllati automaticamente prima del commit. In caso di problemi, il commit verrà annullato e verrà visualizzato un elenco di errori.


Questo documento è controllato tramite versione - suggerisci modifiche su github.

11 Mi Piace

Questo è stato molto bello quando funzionava.

Attualmente sto riscontrando una versione di questo errore con la versione principale corrente in WSL2.

Ha compromesso la mia capacità di fare 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)

Qualche idea?

Sembra che ci sia stato un aggiornamento di dependabot a lefthook solo 8 ore fa.

Dovrò forse modificare il mio package.json per tornare indietro di un passo?

OK, ci sono riuscito di nuovo spostando lefthook a 1.6.9 (!) e facendo yarn-ing

Qualsiasi suggerimento su un approccio migliore è molto apprezzato, perché ora sono fuori sincrono con il core!

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

Revertiamo l’aggiornamento mentre capiscono le cose

1 Mi Piace

David, sto facendo un aggiornamento locale a Jammy (Dodger)… vedrò se aiuta.

1 Mi Piace

Questa è la chiave… la versione più recente sulla precedente Ubuntu che avevo era GLIBC_2.31, credo.

L’aggiornamento del pacchetto libc6 ha portato la versione a questo valore, quindi sembra necessario un aggiornamento di versione importante.

Tornerei a breve quando i miei 16 core avranno elaborato quello.

1 Mi Piace

Secondo il loro problema su GitHub, la dipendenza dalle librerie condivise non è intenzionale. Anche se riesci a farlo funzionare, è probabile che altre persone abbiano problemi. Quindi eccoci qui:

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

1 Mi Piace

ok questo lo risolve (con la 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 Mi Piace