mirror of
https://github.com/garrytan/gstack.git
synced 2026-09-21 20:30:47 +02:00
stabilize generated iOS assets on Windows
This commit is contained in:
@@ -30,6 +30,14 @@ bin/* text eol=lf
|
|||||||
*.mjs text eol=lf
|
*.mjs text eol=lf
|
||||||
*.cjs text eol=lf
|
*.cjs text eol=lf
|
||||||
|
|
||||||
|
# Runtime and generated iOS assets are copied byte-for-byte and hash-pinned in
|
||||||
|
# the GStack 2 provenance manifests. Keep their source bytes platform-neutral
|
||||||
|
# so a Windows checkout cannot turn CRLF conversion into generated drift.
|
||||||
|
*.swift text eol=lf
|
||||||
|
*.h text eol=lf
|
||||||
|
*.m text eol=lf
|
||||||
|
*.template text eol=lf
|
||||||
|
|
||||||
# Binary files — never touch.
|
# Binary files — never touch.
|
||||||
*.png binary
|
*.png binary
|
||||||
*.jpg binary
|
*.jpg binary
|
||||||
|
|||||||
@@ -15,6 +15,14 @@ describe('GStack 2 skill parity', () => {
|
|||||||
.toBe(blobShaForPath('cso/SKILL.md.tmpl'));
|
.toBe(blobShaForPath('cso/SKILL.md.tmpl'));
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test('pins hash-provenance asset sources to LF on every checkout', () => {
|
||||||
|
const attributes = readFileSync(join(ROOT, '.gitattributes'), 'utf8');
|
||||||
|
const normalizedLines = attributes.split(/\r?\n/).map((line) => line.trim().replace(/\s+/g, ' '));
|
||||||
|
for (const pattern of ['*.swift', '*.h', '*.m', '*.template']) {
|
||||||
|
expect(normalizedLines).toContain(`${pattern} text eol=lf`);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
test('preserves the pinned specialist corpus and generated evidence', () => {
|
test('preserves the pinned specialist corpus and generated evidence', () => {
|
||||||
const result = runParity();
|
const result = runParity();
|
||||||
expect(result.sources).toBe(55);
|
expect(result.sources).toBe(55);
|
||||||
|
|||||||
Reference in New Issue
Block a user