Repository navigation
Expand file tree
/
Copy path.gitattributes
More file actions
85 lines (79 loc) · 4.34 KB
/
Copy path.gitattributes
File metadata and controls
85 lines (79 loc) · 4.34 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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
# Wire goldens are byte-exact NDJSON (contracts/VERSIONING.md §1: LF,
# no BOM) consumed byte-for-byte by both language suites — EOL
# conversion on checkout (Windows runners default autocrlf=true) would
# redden them. Never translate.
*.ndjson -text
# sh scripts and the sh-sourced manifest run under git-bash on Windows
# too (plugin starter + bootstrap e2e, M7-P1) — a CRLF checkout would
# \r-poison them (the M5-3a lesson, second application). Pin LF.
*.sh text eol=lf
manifest.env text eol=lf
# Haskell sources are parsed by ce's own Haskell grammar (tree-sitter-
# haskell): a string gap — the `\` … `\` pair that lets one literal span
# lines, the shape the flow battery's case tables take — is legal with a
# CR inside it for GHC but not for that grammar, which drops the whole
# binding and shifts every token after it (plan v2.31 step 3, CI
# 36661220515: the Windows checkout made the self census, the clone
# gate and the roast block disagree with ubuntu by exactly those six
# bindings). LF on every checkout: the ndjson rule's fifth application.
*.hs text eol=lf
# Query programs ride to the core as their texts (query/1 `texts`, plan
# v2.33 W1): the built-in prelude is compiled in with include_str! and
# its bytes are the query goldens' request lines, so a CRLF checkout on
# the Windows runner would file a request the ubuntu leg never makes.
# LF on every checkout: the ndjson rule's sixth application.
*.rules text eol=lf
# The demo corpus is byte-gated end to end (demo_replay): the seed tree
# is written verbatim, steps.js cuts the seed at LF markers, and the
# committed outputs plus the READMEs' generated blocks (demo / parity)
# are byte-compared with what this build produces — a CRLF
# checkout on the Windows runner moved every marker (CI 33271753662).
# Pin LF: the ndjson rule's third application.
demo/** text eol=lf
README.md text eol=lf
README.zh.md text eol=lf
# GitHub linguist (v0.5.0 cleanup batch; revised 2026-09-25): the
# language bar counts the product plus the Haskell core's own
# property batteries (core/test) — a user ruling of 2026-09-25 (the
# Haskell share target, plan banner v2.31). It is NOT symmetric: the
# Rust test suites live in the CodeEraser-tests submodule, which
# linguist never reads, so the bar leans toward Haskell by that
# battery's size. Frozen contract fixtures stay scaffolding; the
# website is documentation. The judgment core is Haskell, the
# measurement plumbing Rust (ADR-001/002).
cli/tests/** linguist-vendored
contracts/** linguist-vendored
site/** linguist-documentation
# Documentation, the site and the contract JSON — the derived-fact
# projection (ADR-009), the citation ledger, the eval records — are
# read by gates that compare bytes: chips, generated blocks, the
# citation renderer, the language gate, the facts projection (plan
# v2.21 ⑧). LF on every checkout, on every platform; images stay
# binary. (The ndjson goldens keep their own rule — re-asserted below,
# after the broad fixture rule that would otherwise swallow it.)
contracts/**/*.json text eol=lf
# The crosscheck fixtures are frozen upstream slices whose content
# sha256 is the identity every similar-oracle row carries (plan v2.29
# step 2): the Windows checkout hashed CRLF text, the ubuntu leg LF
# (CI 33953181231). LF on every checkout: the ndjson rule's fourth
# application.
contracts/fixtures/** text eol=lf
# …and the goldens keep theirs. The rule above is broader than
# `*.ndjson` at the top of this file and, being LATER, wins — git takes
# the last matching line per attribute — so the wire goldens read
# `text: set` (`git check-attr text eol -- contracts/fixtures/daemon/
# replies.ndjson`), not the `-text` this file twice says they get.
# Checkout bytes agree either way while the broad rule says lf; `git
# add` does not — under `text` it NORMALISES a CRLF-poisoned golden
# into the index (measured: the same CRLF stream stores as LF under the
# broad rule, verbatim under this one), and the byte-exact suites would
# never see the poisoning. Narrower rule re-asserted here, so
# precedence and the comment above finally agree.
contracts/fixtures/**/*.ndjson -text
docs/** text eol=lf
site/** text eol=lf
# The package-manager projections (plan v2.29 step 10, O71) are
# generated with LF and compared byte for byte with the generator's
# output by tests/it/packaging.rs on every platform.
packaging/** text eol=lf
*.png binary