Skip to content

chore: renormalize line endings to LF per .gitattributes#42

Merged
LukeEvansTech merged 3 commits into
mainfrom
fix/renormalize-line-endings
Jul 24, 2026
Merged

chore: renormalize line endings to LF per .gitattributes#42
LukeEvansTech merged 3 commits into
mainfrom
fix/renormalize-line-endings

Conversation

@LukeEvansTech

Copy link
Copy Markdown
Owner

Fixes 28 files that showed as permanently modified on every clone and pull.

Cause

Commit 12b623b added .gitattributes declaring * text=auto eol=lf, but never renormalized the existing files. Their stored blobs kept CRLF, so git flagged them modified against the new LF policy for anyone who checked out the repo — a phantom-dirty tree that git checkout -- . cannot clear (checkout re-materializes the CRLF blob, the attribute re-flags it).

Fix

git add --renormalize . rewrites the blobs to LF so they match the declared policy. Content is unchanged — the diff has equal insertions and deletions (2449/2449), and git diff --ignore-cr-at-eol is empty. Line endings only.

Verification

super-linter v8.6.0 (the SHA pinned via shared-workflows in lint.yml) run locally against this branch and its parent: the branch has one fewer finding and no new findings. The dropped one is CSS_PRETTIER on docs/docs/assets/stylesheets/custom.css, which Prettier flagged for CRLF — so normalizing fixed it. Every other pre-existing finding is unchanged.

https://claude.ai/code/session_01RmUNAvT3AenY6hrt4D9GAx

Commit 12b623b added .gitattributes declaring `* text=auto eol=lf`, but the
existing files were never renormalized — their stored blobs kept CRLF. Git
therefore flagged all 28 as modified on every clone/pull/status, because the
working tree (CRLF) no longer matched the declared policy (LF).

`git add --renormalize .` rewrites the blobs to LF so they match. Content is
unchanged: the staged diff has equal insertions and deletions, and
`git diff --ignore-cr-at-eol` is empty — this is line endings only.

Stops the phantom-modified state recurring for every consumer of the repo.

Claude-Session: https://claude.ai/code/session_01RmUNAvT3AenY6hrt4D9GAx
@github-actions

Copy link
Copy Markdown

Super-linter summary

Language Validation result
CSS Fail ❌
CSS_PRETTIER Pass ✅
GIT_MERGE_CONFLICT_MARKERS Pass ✅
JSON Fail ❌
JSON_PRETTIER Fail ❌
MARKDOWN Fail ❌
MARKDOWN_PRETTIER Fail ❌
NATURAL_LANGUAGE Fail ❌
POWERSHELL Fail ❌
PRE_COMMIT Pass ✅
SPELL_CODESPELL Pass ✅

Super-linter detected linting errors

For more information, see the GitHub Actions workflow run

Powered by Super-linter

CSS

docs/docs/assets/stylesheets/custom.css
   �[2m4:1�[22m  �[31m�[31m✖�[39m  Expected class selector ".md-footer-meta__inner" to be kebab-case  �[2mselector-class-pattern�[22m
   �[2m8:1�[22m  �[31m�[31m✖�[39m  Expected class selector ".md-footer-meta__inner" to be kebab-case  �[2mselector-class-pattern�[22m
  �[2m12:1�[22m  �[31m�[31m✖�[39m  Expected class selector ".md-footer-meta__inner" to be kebab-case  �[2mselector-class-pattern�[22m

�[31m✖�[39m 3 problems (�[31m3 errors�[39m, �[33m0 warnings�[39m)
JSON

/github/workspace/.vscode/extensions.json
  2:5  error  Unexpected comment  jsonc/no-comments
  3:5  error  Unexpected comment  jsonc/no-comments

/github/workspace/.vscode/settings.json
  2:5  error  Unexpected comment  jsonc/no-comments
  4:5  error  Unexpected comment  jsonc/no-comments
  6:5  error  Unexpected comment  jsonc/no-comments

/github/workspace/.vscode/tasks.json
   1:1   error  Unexpected comment  jsonc/no-comments
   2:1   error  Unexpected comment  jsonc/no-comments
   3:1   error  Unexpected comment  jsonc/no-comments
   4:1   error  Unexpected comment  jsonc/no-comments
   5:1   error  Unexpected comment  jsonc/no-comments
   6:1   error  Unexpected comment  jsonc/no-comments
   7:1   error  Unexpected comment  jsonc/no-comments
   8:1   error  Unexpected comment  jsonc/no-comments
   9:1   error  Unexpected comment  jsonc/no-comments
  10:1   error  Unexpected comment  jsonc/no-comments
  11:1   error  Unexpected comment  jsonc/no-comments
  12:1   error  Unexpected comment  jsonc/no-comments
  13:1   error  Unexpected comment  jsonc/no-comments
  14:1   error  Unexpected comment  jsonc/no-comments
  15:1   error  Unexpected comment  jsonc/no-comments
  16:1   error  Unexpected comment  jsonc/no-comments
  17:1   error  Unexpected comment  jsonc/no-comments
  18:1   error  Unexpected comment  jsonc/no-comments
  19:1   error  Unexpected comment  jsonc/no-comments
  20:1   error  Unexpected comment  jsonc/no-comments
  21:1   error  Unexpected comment  jsonc/no-comments
  27:17  error  Unexpected comment  jsonc/no-comments

✖ 27 problems (27 errors, 0 warnings)
JSON_PRETTIER
Checking formatting...[�[33mwarn�[39m] .vscode/extensions.json
[�[33mwarn�[39m] .vscode/settings.json
[�[33mwarn�[39m] .vscode/tasks.json
[�[33mwarn�[39m] Code style issues found in 3 files. Run Prettier with --write to fix.
MARKDOWN
/github/workspace/.github/CONTRIBUTING.md:25 error MD012/no-multiple-blanks Multiple consecutive blank lines [Expected: 1; Actual: 2]
/github/workspace/.github/ISSUE_TEMPLATE/bug-report.md:12 error MD001/heading-increment Heading levels should only increment by one level at a time [Expected: h2; Actual: h3]
/github/workspace/.github/ISSUE_TEMPLATE/feature_request.md:10 error MD001/heading-increment Heading levels should only increment by one level at a time [Expected: h2; Actual: h3]
/github/workspace/.github/SECURITY.md:18:145 error MD047/single-trailing-newline Files should end with a single newline character
/github/workspace/docs/docs/Get-RedditOAuthToken.md:36:234 error MD009/no-trailing-spaces Trailing spaces [Expected: 0 or 2; Actual: 1]
/github/workspace/docs/docs/Get-RedditOAuthToken.md:37:51 error MD034/no-bare-urls Bare URL used [Context: "http://go.microsoft.com/fwlink..."]
/github/workspace/docs/docs/Get-RedditSubredditPost.md:209:234 error MD009/no-trailing-spaces Trailing spaces [Expected: 0 or 2; Actual: 1]
/github/workspace/docs/docs/Get-RedditSubredditPost.md:210:51 error MD034/no-bare-urls Bare URL used [Context: "http://go.microsoft.com/fwlink..."]
/github/workspace/docs/docs/Get-RedditUserPost.md:207:234 error MD009/no-trailing-spaces Trailing spaces [Expected: 0 or 2; Actual: 1]
/github/workspace/docs/docs/Get-RedditUserPost.md:208:51 error MD034/no-bare-urls Bare URL used [Context: "http://go.microsoft.com/fwlink..."]
/github/workspace/docs/docs/module-manifest.md:9 error MD022/blanks-around-headings Headings should be surrounded by blank lines [Expected: 1; Actual: 0; Below] [Context: "# PSReddit Module"]
/github/workspace/docs/docs/module-manifest.md:10 error MD022/blanks-around-headings Headings should be surrounded by blank lines [Expected: 1; Actual: 0; Above] [Context: "## Description"]
/github/workspace/docs/docs/module-manifest.md:10 error MD022/blanks-around-headings Headings should be surrounded by blank lines [Expected: 1; Actual: 0; Below] [Context: "## Description"]
/github/workspace/docs/docs/module-manifest.md:13 error MD022/blanks-around-headings Headings should be surrounded by blank lines [Expected: 1; Actual: 0; Below] [Context: "## PSReddit Cmdlets"]
/github/workspace/docs/docs/module-manifest.md:14 error MD022/blanks-around-headings Headings should be surrounded by blank lines [Expected: 1; Actual: 0; Above] [Context: "### [Get-RedditOAuthToken](Get-RedditOAuthToken.md)"]
/github/workspace/docs/docs/module-manifest.md:14 error MD022/blanks-around-headings Headings should be surrounded by blank lines [Expected: 1; Actual: 0; Below] [Context: "### [Get-RedditOAuthToken](Get-RedditOAuthToken.md)"]
/github/workspace/docs/docs/module-manifest.md:17 error MD022/blanks-around-headings Headings should be surrounded by blank lines [Expected: 1; Actual: 0; Below] [Context: "### [Get-RedditSubredditPost](Get-RedditSubredditPost.md)"]
/github/workspace/docs/docs/module-manifest.md:20 error MD022/blanks-around-headings Headings should be surrounded by blank lines [Expected: 1; Actual: 0; Below] [Context: "### [Get-RedditUserPost](Get-RedditUserPost.md)"]
/github/workspace/docs/MIGRATION.md:18 error MD022/blanks-around-headings Headings should be surrounded by blank lines [Expected: 1; Actual: 0; Below] [Context: "### New Files"]
/github/workspace/docs/MIGRATION.md:19 error MD032/blanks-around-lists Lists should be surrounded by blank lines [Context: "- `zensical.toml` - Main Zensi..."]
/github/workspace/docs/MIGRATION.md:23 error MD022/blanks-around-headings Headings should be surrounded by blank lines [Expected: 1; Actual: 0; Below] [Context: "### Updated Files"]
/github/workspace/docs/MIGRATION.md:24 error MD032/blanks-around-lists Lists should be surrounded by blank lines [Context: "- `docs/requirements.txt` - No..."]
/github/workspace/docs/MIGRATION.md:29 error MD022/blanks-around-headings Headings should be surrounded by blank lines [Expected: 1; Actual: 0; Below] [Context: "### Preserved Files"]
/github/workspace/docs/MIGRATION.md:30 error MD032/blanks-around-lists Lists should be surrounded by blank lines [Context: "- All markdown documentation f..."]
/github/workspace/docs/MIGRATION.md:39 error MD031/blanks-around-fences Fenced code blocks should be surrounded by blank lines [Context: "```yaml"]
/github/workspace/docs/MIGRATION.md:53 error MD031/blanks-around-fences Fenced code blocks should be surrounded by blank lines [Context: "```yaml"]
/github/workspace/docs/MIGRATION.md:76 error MD031/blanks-around-fences Fenced code blocks should be surrounded by blank lines [Context: "```yaml"]
/github/workspace/docs/MIGRATION.md:97 error MD022/blanks-around-headings Headings should be surrounded by blank lines [Expected: 1; Actual: 0; Below] [Context: "### Before (MkDocs)"]
/github/workspace/docs/MIGRATION.md:98 error MD031/blanks-around-fences Fenced code blocks should be surrounded by blank lines [Context: "```bash"]
/github/workspace/docs/MIGRATION.md:112 error MD022/blanks-around-headings Headings should be surrounded by blank lines [Expected: 1; Actual: 0; Below] [Context: "### After (Zensical)"]
/github/workspace/docs/MIGRATION.md:113 error MD031/blanks-around-fences Fenced code blocks should be surrounded by blank lines [Context: "```bash"]
/github/workspace/docs/MIGRATION.md:131 error MD022/blanks-around-headings Headings should be surrounded by blank lines [Expected: 1; Actual: 0; Below] [Context: "### GitHub Actions"]
/github/workspace/docs/MIGRATION.md:133 error MD032/blanks-around-lists Lists should be surrounded by blank lines [Context: "1. **Build Job**: Builds the s..."]
/github/workspace/docs/MIGRATION.md:137 error MD032/blanks-around-lists Lists should be surrounded by blank lines [Context: "- Better separation of concern..."]
/github/workspace/docs/MIGRATION.md:142 error MD022/blanks-around-headings Headings should be surrounded by blank lines [Expected: 1; Actual: 0; Below] [Context: "### ReadTheDocs"]
/github/workspace/docs/MIGRATION.md:144 error MD031/blanks-around-fences Fenced code blocks should be surrounded by blank lines [Context: "```yaml"]
/github/workspace/docs/MIGRATION.md:156 error MD032/blanks-around-lists Lists should be surrounded by blank lines [Context: "- All URLs remain the same"]
/github/workspace/docs/MIGRATION.md:178 error MD031/blanks-around-fences Fenced code blocks should be surrounded by blank lines [Context: "```bash"]
/github/workspace/docs/MIGRATION.md:205 error MD032/blanks-around-lists Lists should be surrounded by blank lines [Context: "1. Check the build logs in Git..."]
/github/workspace/README.md:61 error MD022/blanks-around-headings Headings should be surrounded by blank lines [Expected: 1; Actual: 0; Below] [Context: "## Docs"]
/github/workspace/README.md:64 error MD022/blanks-around-headings Headings should be surrounded by blank lines [Expected: 1; Actual: 0; Below] [Context: "## Development"]
/github/workspace/README.md:65 error MD032/blanks-around-lists Lists should be surrounded by blank lines [Context: "- Run tests: `Invoke-Pester ./..."]
MARKDOWN_PRETTIER
Checking formatting...[�[33mwarn�[39m] .github/CODE_OF_CONDUCT.md
[�[33mwarn�[39m] .github/CONTRIBUTING.md
[�[33mwarn�[39m] .github/ISSUE_TEMPLATE/bug-report.md
[�[33mwarn�[39m] .github/ISSUE_TEMPLATE/feature_request.md
[�[33mwarn�[39m] README.md
[�[33mwarn�[39m] .github/SECURITY.md
[�[33mwarn�[39m] docs/MIGRATION.md
[�[33mwarn�[39m] docs/docs/Get-RedditOAuthToken.md
[�[33mwarn�[39m] docs/docs/Get-RedditSubredditPost.md
[�[33mwarn�[39m] docs/docs/Get-RedditUserPost.md
[�[33mwarn�[39m] docs/docs/module-manifest.md
[�[33mwarn�[39m] Code style issues found in 11 files. Run Prettier with --write to fix.
NATURAL_LANGUAGE

/github/workspace/.github/CODE_OF_CONDUCT.md
  50:71  ✓ error  Incorrect term: “e-mail”, use “email” instead  terminology

/github/workspace/.github/SECURITY.md
  13:6  ✓ error  Incorrect term: “repo”, use “repository” instead  terminology

/github/workspace/docs/MIGRATION.md
   20:25  ✓ error  Incorrect term: “NPM”, use “npm” instead            terminology
   30:7   ✓ error  Incorrect term: “markdown”, use “Markdown” instead  terminology
  171:55  ✓ error  Incorrect term: “git”, use “Git” instead            terminology

✖ 5 problems (5 errors, 0 warnings, 0 infos)
✓ 5 fixable problems.
Try to run: $ textlint --fix [file]
POWERSHELL

�[32;1mRuleName                           �[0m�[32;1m Severity    �[0m�[32;1m ScriptName�[0m�[32;1m Line �[0m�[32;1m Message�[0m
�[32;1m--------                           �[0m �[32;1m--------    �[0m �[32;1m----------�[0m �[32;1m---- �[0m �[32;1m-------�[0m
PSUseDeclaredVarsMoreThanAssignment Warning      ExportedFu 9     The variable
s                                                nctions.Te       'moduleExport
                                                 sts.ps1          ed' is assign
                                                                  ed but never
                                                                  used.
PSUseDeclaredVarsMoreThanAssignment Warning      ExportedFu 10    The variable
s                                                nctions.Te       'manifestExpo
                                                 sts.ps1          rted' is assi
                                                                  gned but neve
                                                                  r used.
PSUseDeclaredVarsMoreThanAssignment Warning      ExportedFu 18    The variable
s                                                nctions.Te       'moduleExport
                                                 sts.ps1          ed' is assign
                                                                  ed but never
                                                                  used.
PSUseDeclaredVarsMoreThanAssignment Warning      ExportedFu 19    The variable
s                                                nctions.Te       'manifestExpo
                                                 sts.ps1          rted' is assi
                                                                  gned but neve
                                                                  r used.
PSUseDeclaredVarsMoreThanAssignment Warning      ExportedFu 50    The variable
s                                                nctions.Te       'help' is ass
                                                 sts.ps1          igned but nev
                                                                  er used.


�[32;1mRuleName                           �[0m�[32;1m Severity    �[0m�[32;1m ScriptName�[0m�[32;1m Line �[0m�[32;1m Message�[0m
�[32;1m--------                           �[0m �[32;1m--------    �[0m �[32;1m----------�[0m �[32;1m---- �[0m �[32;1m-------�[0m
PSUseDeclaredVarsMoreThanAssignment Warning      PSReddit-M 6     The variable
s                                                odule.Test       'PathToManife
                                                 s.ps1            st' is assign
                                                                  ed but never
                                                                  used.
PSUseDeclaredVarsMoreThanAssignment Warning      PSReddit-M 7     The variable
s                                                odule.Test       'PathToModule
                                                 s.ps1            ' is assigned
                                                                   but never us
                                                                  ed.

The line-ending renormalization touched 28 files, and super-linter
(soft-launch:false, changed-files-only) then lints all of them — surfacing
pre-existing style debt that was dormant only because those files hadn't
changed since the linters tightened. None of it is caused by the line-ending
change; this commit clears it so the lint gate stays green.

Content fixes (super-linter's own prettier/markdownlint/textlint toolchain,
plus manual heading levels):
- Markdown formatting: blanks around headings/lists/fences, trailing spaces,
  single trailing newline, bare URLs wrapped (MD009/022/031/032/034/047).
- MD001: issue-template sections promoted h3 -> h2 (they had no parent heading).
- Prettier reflow of the docs/.github markdown.
- Terminology: e-mail->email, repo->repository, NPM->npm, markdown->Markdown.

Config (honoring existing/appropriate policy, not loosening standards):
- .github/linters/.powershell-psscriptanalyzer.psd1 mirrors the repo's own
  src/PSScriptAnalyzerSettings.psd1 (super-linter reads its PSSA settings from
  .github/linters/, not src/), so the Pester-scoping false positive
  PSUseDeclaredVarsMoreThanAssignments is excluded consistently.
- .github/linters/.stylelintrc.json extends super-linter's default and disables
  selector-class-pattern: custom.css styles Material-theme BEM classes
  (.md-footer-meta__inner) we don't control and can't rename.
- lint.yml excludes .vscode/*.json (JSONC — comments are valid there) from the
  JSON linter via filter-regex-exclude.

Claude-Session: https://claude.ai/code/session_01RmUNAvT3AenY6hrt4D9GAx
@github-actions

Copy link
Copy Markdown

Super-linter summary

Language Validation result
CSS Pass ✅
CSS_PRETTIER Pass ✅
GITHUB_ACTIONS Pass ✅
GITHUB_ACTIONS_ZIZMOR Pass ✅
GIT_MERGE_CONFLICT_MARKERS Pass ✅
JSON Pass ✅
JSON_PRETTIER Pass ✅
MARKDOWN Pass ✅
MARKDOWN_PRETTIER Pass ✅
NATURAL_LANGUAGE Pass ✅
POWERSHELL Fail ❌
PRE_COMMIT Pass ✅
SPELL_CODESPELL Pass ✅
YAML Pass ✅
YAML_PRETTIER Pass ✅

Super-linter detected linting errors

For more information, see the GitHub Actions workflow run

Powered by Super-linter

POWERSHELL

�[32;1mRuleName                           �[0m�[32;1m Severity    �[0m�[32;1m ScriptName�[0m�[32;1m Line �[0m�[32;1m Message�[0m
�[32;1m--------                           �[0m �[32;1m--------    �[0m �[32;1m----------�[0m �[32;1m---- �[0m �[32;1m-------�[0m
PSUseBOMForUnicodeEncodedFile       Warning      .powershel       Missing BOM e
                                                 l-psscript       ncoding for n
                                                 analyzer.p       on-ASCII enco
                                                 sd1              ded file '.po
                                                                  wershell-pssc
                                                                  riptanalyzer.
                                                                  psd1'

The em-dash in a comment tripped PSUseBOMForUnicodeEncodedFile (PSScriptAnalyzer
lints the settings file itself as a changed .psd1). Replaced with ASCII.

Claude-Session: https://claude.ai/code/session_01RmUNAvT3AenY6hrt4D9GAx
@github-actions

Copy link
Copy Markdown

Super-linter summary

Language Validation result
CSS Pass ✅
CSS_PRETTIER Pass ✅
GITHUB_ACTIONS Pass ✅
GITHUB_ACTIONS_ZIZMOR Pass ✅
GIT_MERGE_CONFLICT_MARKERS Pass ✅
JSON Pass ✅
JSON_PRETTIER Pass ✅
MARKDOWN Pass ✅
MARKDOWN_PRETTIER Pass ✅
NATURAL_LANGUAGE Pass ✅
POWERSHELL Pass ✅
PRE_COMMIT Pass ✅
SPELL_CODESPELL Pass ✅
YAML Pass ✅
YAML_PRETTIER Pass ✅

All files and directories linted successfully

For more information, see the GitHub Actions workflow run

Powered by Super-linter

@LukeEvansTech
LukeEvansTech merged commit 8196213 into main Jul 24, 2026
25 checks passed
@LukeEvansTech
LukeEvansTech deleted the fix/renormalize-line-endings branch July 24, 2026 07:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant