Build fails on Windows clones because of CRLF line endings

Offen Anfängerfreundlich
#21 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Maintainer antworten meist innerhalb von 1 Tag

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
2/5
Geschätzter Aufwand
1-3 Stunden
Anfängerfreundlichkeit
78/100
Issue-Typ
Bug
Klarheit
Klar beschrieben
Aktivitätsstatus
Aktiv
Tech-Stack
bash, git, typescript
Bereich
build-system

Rechercherichtung

Beginne mit den Zeilenende-Einstellungen des Repositorys und untersuche skills/go-mode/scripts/model-table.mjs und scripts/build.mjs, um die gemeldeten LF-Annahmen zu bestätigen; prüfe, ob gebündelte .sh-Skripte ebenfalls einheitliche Zeilenenden benötigen. Füge .gitattributes mit der vorgeschlagenen Richtlinie hinzu und überprüfe anschließend, ob ein frisches Windows checkout mit node scripts/build.mjs claude-code erstellt werden kann und die Modellrollen problemlos geparst werden.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

bug

Problem

node scripts/build.mjs claude-code fails on a fresh Windows clone:

skills/go-mode/references/model-roles.md:27: role row needs a `role`, an Entries of "one" or "list", and a Can drop of "yes" or "no"

Git for Windows checks files out with CRLF line endings by default (core.autocrlf=true). tableRows in skills/go-mode/scripts/model-table.mjs splits on \n, so each line keeps a trailing \r. isSeparatorRow (/^\|[\s:|-]+\|$/) then fails to match |---|…|\r, and the header row is parsed as a role row.

Reproduced on macOS: model-roles.md parses with 0 problems as checked in, and with 2 problems after converting it to CRLF.

Other places also assume LF:

  • mergeFrontmatter in scripts/build.mjs matches ^---\n.
  • Bash rejects the bundled .sh scripts if they have CRLF line endings.

Fix

Add a .gitattributes with * text=auto eol=lf so every checkout gets LF regardless of core.autocrlf. Making the parser accept \r?\n too is optional and would harden the build against files edited in a CRLF editor.

Workaround

Clone with git clone -c core.autocrlf=false https://github.com/gregogun/gstack.git.

Vorherrschende Sprache
JavaScript
Sterne
0
Forks
0
Ø Merge
1 T. 3 Std.
Gemergte PRs (30 T.)
37

Entwicklungsumgebung

Dieses Projekt bietet weder Dev-Container noch Dockerfile noch Beitragsleitfaden – die Einrichtung liegt bei Ihnen. Beginnen Sie mit der README; die allgemeinen Schritte stehen in unserem Leitfaden für den ersten Beitrag.

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus gregogun/gstack

Alle Issues in gregogun/gstack

Ähnliche Issues

Weitere Issues zu JavaScript

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.