#
# Files excluded from the packaged, ready-to-download releases of this theme, and the line-ending
# rules that keep the repository usable on Windows. The format of this file is documented at
# https://git-scm.com/docs/gitattributes.
#
# Modelled on the site template's .gitattributes, NOT copied from it. Three of its export-ignore
# blocks name paths that do not exist here and are deliberately absent: /CLAUDE.md, /.claude and
# /specs (the process layer lives in the template's repository, not in this one), /.github and
# /.tugboat (this project has neither), and /.eslintrc.json (likewise). An export-ignore line for
# a path that does not exist is not harmless: it reads as a claim that the path is expected.
#

# --- Not part of a release ------------------------------------------------------------
# NOTE: export-ignore only affects the packaged tarball. Everything below stays fully available
# to anyone who clones the repository.

# CI configuration; useful for development, irrelevant to a site that installs the theme.
/.gitlab-ci.yml export-ignore

# A list of words that are legitimate, but not recognised by the spell checker used in CI.
/.cspell-project-words.txt export-ignore

# --- Deliberately NOT export-ignored, and why -----------------------------------------
# /tests is export-ignored in the site template, where an end user has no use for a recipe's
# test suite. A theme is different in kind: it is code that ships, and Drupal's own test
# runners discover a theme's tests inside the installed extension. This was left OPEN until
# the test tree existed; T-509 built it, and the question is SETTLED HERE, in favour of
# shipping /tests. Two reasons, both measured rather than assumed:
#
#   * The tree is what the accessibility gate is made of - tests/src/Nightwatch/Tests/axe.js
#     and the fixture module under tests/modules/ - and a theme that ships its templates while
#     withholding the evidence they were scanned is publishing the claim without the proof.
#   * The fixture module is INERT on a real site. Drupal only discovers modules under a
#     tests/ directory when $settings['extension_discovery_scan_tests'] is on, which a real
#     site never sets, so agora_theme_test can neither appear on /admin/modules nor be
#     installed there. It costs an end user disk space and nothing else.
#
# Note that export-ignore would not have hidden it from CI in any case: the pipeline checks
# out the repository, it does not download the packaged tarball.

# --- Line endings (a checkout attribute, not export-ignore) ---------------------------
# `core.autocrlf=true` is set at system scope by the Git for Windows installer, so a fresh
# clone checks shell scripts out as CRLF on any default Windows machine, which breaks their
# shebang. `eol` governs checkout in every clone. Scoped to shell scripts, never a blanket
# `* text=auto`.
tests/bin/** text eol=lf
*.sh text eol=lf

# The CSV fixtures are DATA UNDER TEST, so their bytes are pinned for the same reason a
# shell script is: with `core.autocrlf=true` and no attribute, a Windows checkout would
# hold CRLF and the Linux runner LF, and the two would be different inputs to the same
# assertion. The parser normalises line endings itself - that path is covered by the unit
# test, which supplies CRLF text directly - so pinning here costs no coverage and buys a
# fixture that is the same file everywhere.
tests/modules/agora_theme_test/fixtures/*.csv text eol=lf
