🧠 Context
The scraper tests run against saved HTML snapshots of real Carleton pages under tests/ingestion/fixtures/ (several of them are hundreds of lines / hundreds of KB). GitHub's language detector (Linguist) counts every tracked file toward the repo's language breakdown, so those fixtures make the repo show up as mostly HTML on the GitHub language bar — misrepresenting what is a Python project.
Those fixtures are captured third-party data, not code we author. Linguist has a standard mechanism for exactly this: mark such paths as vendored so they're excluded from the language stats (while staying in the repo — the tests still need them).
🛠 Implementation Plan
- Add a
.gitattributes file at the repo root that marks the fixture HTML as vendored, using a Linguist override — see the GitHub docs on overriding language stats. Scope the pattern to the fixtures directory so only those files are affected, not any HTML we might write ourselves later.
- Confirm the pattern matches every fixture file currently under
tests/ingestion/fixtures/.
📝 Notes
linguist-vendored excludes the files from language stats but keeps them tracked and unchanged — the offline scraper tests still read them. This is a stats-only change; no code or test behavior changes.
- The GitHub language bar only recomputes after the change lands on the default branch and GitHub re-analyzes the repo, so the effect isn't visible from the PR branch — that's expected.
- Keep the pattern scoped to the fixtures path. Don't blanket-vendor all
*.html, in case real HTML is added elsewhere later.
✅ Acceptance Criteria
- A root
.gitattributes marks the tests/ingestion/fixtures/ HTML fixtures as linguist-vendored.
- The pattern covers all current fixture files and nothing outside that directory.
- No changes to test behavior;
make test and make lint still pass.
🧠 Context
The scraper tests run against saved HTML snapshots of real Carleton pages under
tests/ingestion/fixtures/(several of them are hundreds of lines / hundreds of KB). GitHub's language detector (Linguist) counts every tracked file toward the repo's language breakdown, so those fixtures make the repo show up as mostly HTML on the GitHub language bar — misrepresenting what is a Python project.Those fixtures are captured third-party data, not code we author. Linguist has a standard mechanism for exactly this: mark such paths as vendored so they're excluded from the language stats (while staying in the repo — the tests still need them).
🛠 Implementation Plan
.gitattributesfile at the repo root that marks the fixture HTML as vendored, using a Linguist override — see the GitHub docs on overriding language stats. Scope the pattern to the fixtures directory so only those files are affected, not any HTML we might write ourselves later.tests/ingestion/fixtures/.📝 Notes
linguist-vendoredexcludes the files from language stats but keeps them tracked and unchanged — the offline scraper tests still read them. This is a stats-only change; no code or test behavior changes.*.html, in case real HTML is added elsewhere later.✅ Acceptance Criteria
.gitattributesmarks thetests/ingestion/fixtures/HTML fixtures aslinguist-vendored.make testandmake lintstill pass.