Code vor Commits automatisch linten und formatieren

Das Discourse-Repository enthält eine Konfiguration für lefthook. Dieses überprüft automatisch jeden Code, bevor er in git committet wird, und meldet alle Probleme. Um alles einzurichten, wechseln Sie einfach in Ihr Discourse-Entwicklungsverzeichnis und führen Sie aus

pnpm install
pnpm run lefthook install

Dateien werden nun vor dem Committen automatisch überprüft. Wenn es Probleme gibt, wird der Commit abgebrochen und Ihnen wird eine Liste der Fehler angezeigt.


Dieses Dokument wird versioniert – schlagen Sie Änderungen auf github vor.

11 „Gefällt mir“

Das war sehr cool, als es noch funktionierte.

Derzeit erhalte ich eine Version dieses Fehlers mit dem aktuellen Main in WSL2.

Es hat meine Fähigkeit zu committen beeinträchtigt:

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)

Irgendwelche Ideen?

Es sieht so aus, als hätte es vor 8 Stunden ein Dependabot-Update für lefthook gegeben.

Muss ich mein package.json vielleicht ein Stück zurücksetzen?

OK, ich habe es wieder zum Laufen gebracht, indem ich lefthook auf 1.6.9 (!) zurückgesetzt und yarn-ing habe.

Jeder Vorschlag für einen besseren Ansatz wird sehr geschätzt, da ich jetzt nicht mehr mit dem Kern synchron bin!

Sieht aus wie Version 1.7.6 fails installation on CI · Issue #783 · evilmartians/lefthook · GitHub

Lass uns das Update rückgängig machen, während sie die Dinge klären.

1 „Gefällt mir“

David, ich führe ein lokales Upgrade auf Jammy (Dodger) durch … Ich werde sehen, ob das hilft.

1 „Gefällt mir“

Das ist entscheidend … die neueste Version auf dem früheren Ubuntu, das ich hatte, war meiner Meinung nach GLIBC_2.31.

Das Aktualisieren des Pakets libc6 hat die Version auf diese maximiert, daher scheint ein Major-Release-Upgrade notwendig zu sein.

Ich werde mich kurz darauf zurückmelden, wenn meine 16 Kerne das durchgearbeitet haben.

1 „Gefällt mir“

Laut ihrem GitHub-Issue ist die Abhängigkeit von Shared Libs nicht beabsichtigt. Selbst wenn Sie es zum Laufen bringen können, werden andere Leute wahrscheinlich Probleme haben. Also los geht’s:

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

1 „Gefällt mir“

ok das behebt es (mit 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 „Gefällt mir“