-
Notifications
You must be signed in to change notification settings - Fork 108
Expand file tree
/
Copy path.gitattributes
More file actions
31 lines (28 loc) · 1.65 KB
/
Copy path.gitattributes
File metadata and controls
31 lines (28 loc) · 1.65 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# Keep generated pack installers deterministic across OSes so CI's
# "installers up to date" check is stable.
*.sh text eol=lf
*.bat text eol=crlf
# The 0.49.0 tool-surface ratchet SHA-256-pins these files' exact bytes
# (BASELINE_SHA256 / PANEL_BASELINE_SHA256 in src/tools/vocabulary.ts, and the
# vocab:export --check comparison). With core.autocrlf they would check out as
# CRLF on Windows and hash differently than the LF form CI produces, breaking
# the gate for Windows contributors. Force LF so the pinned bytes are identical
# on every platform.
docs/design/tool-surface.txt text eol=lf
docs/design/panel-surface.txt text eol=lf
docs/design/tool-vocabulary.json text eol=lf
# Same reasoning, one gate later. `locales/en/main.json` is GENERATED from the
# `tr()` call sites (scripts/i18n-build-en.mjs) and a test compares the committed
# file to a fresh build byte for byte. `core.autocrlf` is on for most Windows
# developers, so without this the checked-out file is CRLF, the build writes LF,
# and that test fails on a clean clone for a reason nothing about it would
# suggest. The translations are pinned alongside it so every catalog in the
# directory is the same shape on every platform.
locales/**/*.json text eol=lf
# Shebang .mjs files imported by vitest fail to COLLECT on Windows when
# core.autocrlf checks them out as CRLF (#1857). The transform treats
# `#!/usr/bin/env node\r` as a syntax error; the file reports "1 failed /
# Tests no tests" and the tests that exist never run. `node --check` is
# fine either way — it strips shebangs itself. CI is Linux, so the hole
# is invisible there. Force LF the same way we do for the ratchet files.
*.mjs text eol=lf