close
Skip to content

fix(build): LF contract for extensionless git hooks + a line-ending guard - #1699

Merged
DeusData merged 1 commit into
mainfrom
fix/lf-endings-distill
Aug 18, 2026
Merged

fix(build): LF contract for extensionless git hooks + a line-ending guard#1699
DeusData merged 1 commit into
mainfrom
fix/lf-endings-distill

Conversation

@DeusData

Copy link
Copy Markdown
Owner

Distills the remainder of #1272 with credit (Co-Authored-By @xumian520): the *.sh rule landed via #1314, but the extensionless git hooks were still uncovered, and the contract test keeps the whole class fixed — every shell entrypoint must carry eol=lf, wired as scripts/test.sh Step 0t with a matched-zero-files guard. Proven RED without the *.sh rule (105 uncovered entrypoints) and green on current main (108 files).

🤖 Generated with Claude Code

https://claude.ai/code/session_018RiRAw9RQhvCoshqe7eZHV

@DeusData DeusData added bug Something isn't working maintainer-notes Internal observations and improvement notes priority/normal Standard review queue; useful PR with ordinary maintainer urgency. labels Aug 18, 2026
…uard

The *.sh eol=lf rule landed via #1314, but the git hooks
(scripts/git-hooks/commit-msg, scripts/hooks/pre-commit) are extensionless
and were still at the mercy of core.autocrlf. Add their explicit entries,
plus the contract test from #1272 wired as scripts/test.sh Step 0t: every
shell entrypoint (*.sh + both hook directories) must carry an eol=lf
attribute, with a matched-zero-files guard so a broken glob can never pass
vacuously.

Distilled from #1272: the diagnosis (CRLF checkouts breaking shebangs under
WSL/MSYS), the hook-file coverage, and the guard design are @xumian520's;
verified RED without the *.sh rule (105 uncovered entrypoints) and green
with it (107 files).

Co-Authored-By: xumian520 <126989134+xumian520@users.noreply.github.com>
Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
@DeusData
DeusData force-pushed the fix/lf-endings-distill branch from 7ae4031 to 32633ba Compare August 18, 2026 09:21
@DeusData
DeusData merged commit 39bd040 into main Aug 18, 2026
60 of 62 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working maintainer-notes Internal observations and improvement notes priority/normal Standard review queue; useful PR with ordinary maintainer urgency.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant