# Line endings are a correctness concern here, not a style preference.
#
# Source text is canonical UTF-8 with LF bytes on every platform, and test
# fixtures are compared byte for byte. A checkout that translated line endings
# would break those comparisons for a reason that has nothing to do with the
# code under test.
#
# Normalize everything to LF in the repository and on checkout.
* text=auto eol=lf

# Files whose exact bytes are the thing under test are marked binary outright,
# so no filter, no autocrlf setting, and no future .gitattributes edit can touch
# them. eol=lf above would be enough today; -text is enough forever.
#
# test/fixtures/ holds the fingerprint sample the harness's digest is checked
# against, and a stale library root the staleness lane loads; a changed byte in
# either changes what those lanes measure.
test/fixtures/** -text
*.expected -text

# The vendored RFC 3986 text (decision 0005) is the IETF's bytes. Its sha256 is
# recorded in test/conformance/rfc3986/PROVENANCE, and the corpus-provenance
# lane re-derives the corpus from it and compares. It carries 61 form feeds, the
# RFC's page breaks, and a translated byte would change the digest and every
# line the extractor reads. -text is enough forever.
test/vendor/** -text

# Kept in the repository, left out of what is distributed. A GitHub source
# archive and the Akku package are both built the way `git archive` builds
# them, which leaves out every path marked export-ignore, and `akku install`
# unpacks the whole package into a consumer's .akku/src/. The design records
# and agent instructions are for working on uriparse, not for using it.
# `make check-akku` fails if any of them would ship.
.plans export-ignore
.superpowers export-ignore
AGENTS.md export-ignore
