Resync Line Endings to the Fleet LF Default - #327
Conversation
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Pro Plus Run ID: 📒 Files selected for processing (5)
Included review availability: Your plan provides up to 10 included reviews per hour; 0 remain after this review. 📝 WalkthroughWalkthroughThe change standardizes repository line endings to LF, preserves CRLF for batch scripts, updates formatting rules, and makes generated LanguageTags source files use LF output. Other source, test, tooling, configuration, and documentation files receive formatting-only updates. ChangesLine ending normalization
Estimated code review effort: 2 (Simple) | ~10 minutes Merge Risk:⚪ Minimal · up to This PR standardizes repository line endings and updates related generators and documentation; no actionable merge-blocking risk remains after normal checks. 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
Full details: Docstring CoverageExplanation Docstring coverage is 19.61% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 306 functions across 32 files. (1 skipped: 1 unsupported.)
✨ Finishing Touches 💡 1📝 Generate docstrings 💡
🧪 Generate unit tests (beta)
Comment |
PR Summary by QodoAlign Repository Line Endings with Fleet LF Default
AI Description
Diagram
High-Level Assessment
Files changed (73) |
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@## develop #327 +/- ##
========================================
Coverage 87.06% 87.06% ========================================
Files 8 8 Lines 835 835 Branches 139 139 ========================================
Hits 727 727 Misses 65 65 Partials 43 43
🚀 New features to boost your workflow:
|
There was a problem hiding this comment.
🟡 Changes recommended
LanguageSchema.cs still hardcodes CRLF (NewLine = "\r\n") for JSON source generation, which contradicts the LF-default goal and can reintroduce CRLF on regeneration.
Once you've addressed the issues Copilot identified, you can request another Copilot review.
Pull request overview
This PR aligns the repository with the fleet’s LF line-ending default by updating git/editor configuration, renormalizing tracked files, and adjusting codegen/output emitters so regenerated artifacts won’t reintroduce CRLF under the new policy.
Changes:
- Switches repo-wide normalization to LF via
.gitattributes, with CRLF pinned only for*.bat/*.cmdandLanguageData/**pinned as-text. - Carries the hub’s
.editorconfig-checker.jsonExcludepatterns and renormalizes files to the new line-ending policy. - Updates code/emitter-related newline behavior (notably data/codegen emitters), though one JSON source-gen newline setting still appears to be CRLF.
File summaries
| File | Description |
|---|---|
| version.json | Renormalized line endings/formatting under new LF policy. |
| spec/secrets.json | Renormalized line endings/formatting under new LF policy. |
| repo-config/settings.json | Renormalized line endings/formatting under new LF policy. |
| repo-config/main.json | Renormalized line endings/formatting under new LF policy. |
| repo-config/develop.json | Renormalized line endings/formatting under new LF policy. |
| LICENSE | Renormalized line endings under new LF policy. |
| LanguageTagsTests/UnM49Tests.cs | Renormalized line endings under new LF policy. |
| LanguageTagsTests/Rfc5646Tests.cs | Renormalized line endings under new LF policy. |
| LanguageTagsTests/LogOptionsTests.cs | Renormalized line endings under new LF policy. |
| LanguageTagsTests/LogExtensionsTests.cs | Renormalized line endings under new LF policy. |
| LanguageTagsTests/LanguageTagsTests.csproj | Renormalized line endings under new LF policy. |
| LanguageTagsTests/LanguageTagParserTests.cs | Renormalized line endings under new LF policy. |
| LanguageTagsTests/LanguageTagBuilderTests.cs | Renormalized line endings under new LF policy. |
| LanguageTagsTests/LanguageSchemaTests.cs | Renormalized line endings under new LF policy. |
| LanguageTagsTests/LanguageLookupTests.cs | Renormalized line endings under new LF policy. |
| LanguageTagsTests/Iso6393Tests.cs | Renormalized line endings under new LF policy. |
| LanguageTagsTests/Iso6392Tests.cs | Renormalized line endings under new LF policy. |
| LanguageTagsTests/GlobalUsings.cs | Renormalized line endings under new LF policy. |
| LanguageTagsTests/Fixture.cs | Renormalized line endings under new LF policy. |
| LanguageTagsTests/.editorconfig | Renormalized line endings/formatting under new LF policy. |
| LanguageTagsCreate/Program.cs | Renormalized line endings under new LF policy. |
| LanguageTagsCreate/LoggerFactory.cs | Renormalized line endings under new LF policy. |
| LanguageTagsCreate/LanguageTagsCreate.csproj | Renormalized line endings under new LF policy. |
| LanguageTagsCreate/GlobalUsings.cs | Renormalized line endings under new LF policy. |
| LanguageTagsCreate/Extensions.cs | Renormalized line endings under new LF policy. |
| LanguageTagsCreate/CommandLine.cs | Renormalized line endings under new LF policy. |
| LanguageTagsCreate/.editorconfig | Renormalized line endings/formatting under new LF policy. |
| LanguageTags/LogOptions.cs | Renormalized line endings under new LF policy. |
| LanguageTags/LanguageTags.csproj | Renormalized line endings under new LF policy. |
| LanguageTags/LanguageTagBuilder.cs | Renormalized line endings under new LF policy. |
| LanguageTags/LanguageSchema.cs | Contains JSON source-gen NewLine configuration; still set to CRLF and should be updated to LF. |
| LanguageTags/GlobalUsings.cs | Renormalized line endings under new LF policy. |
| LanguageTags/Extensions.cs | Renormalized line endings under new LF policy. |
| LanguageTags/.editorconfig | Renormalized line endings/formatting under new LF policy. |
| LanguageTags.slnx | Renormalized line endings under new LF policy. |
| LanguageTags.code-workspace | Renormalized line endings under new LF policy. |
| HISTORY.md | Renormalized line endings under new LF policy. |
| global.json | Renormalized line endings under new LF policy. |
| Directory.Packages.props | Renormalized line endings under new LF policy. |
| Directory.Build.props | Renormalized line endings under new LF policy. |
| cspell.json | Renormalized line endings under new LF policy. |
| CODESTYLE.md | Renormalized line endings under new LF policy. |
| codecov.yml | Renormalized line endings under new LF policy. |
| CLAUDE.md | Renormalized line endings under new LF policy. |
| AUDIT.md | Renormalized line endings under new LF policy. |
| .vscode/tasks.json | Renormalized line endings under new LF policy. |
| .vscode/launch.json | Renormalized line endings under new LF policy. |
| .markdownlint-cli2.jsonc | Renormalized line endings under new LF policy. |
| .husky/task-runner.json | Renormalized line endings under new LF policy. |
| .gitignore | Renormalized line endings under new LF policy. |
| .github/dependabot.yml | Renormalized line endings under new LF policy. |
| .gitattributes | Changes default normalization to * text=auto eol=lf, pins *.bat/*.cmd to CRLF, and preserves LanguageData/** bytes via -text. |
| .editorconfig-checker.json | Adds hub-carried Exclude patterns while keeping existing disables. |
| .config/dotnet-tools.json | Renormalized line endings under new LF policy. |
Review details
- Files reviewed: 9/75 changed files
- Comments generated: 1
- Review effort level: Lite
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Uh oh!
There was an error while loading. Please reload this page.
Code Review by Qodo
1. |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Adopts the hub's current .editorconfig / .gitattributes / .editorconfig-checker.json shape: [*] end_of_line = lf with CRLF pinned only for *.bat/*.cmd (Windows requires it), and git-level text=auto eol=lf normalization to match. This repo's own CRLF default (PR #242) matched the fleet template as it stood in July; the hub has since flipped its own default to LF, and the line-ending policy keeps release repos on the fleet LF default (no operational-repo override applies here). LanguageData/ stays byte-preserved via an explicit .gitattributes pin, since the prior '* -text' repo-wide default no longer covers it. Renormalizes every tracked file's line endings to match (content unchanged, verified with --ignore-cr-at-eol); updates the two docs that described the old CRLF default. Also fixes the five codegen data-file emitters (Iso6392Data, Iso6393Data, Rfc5646Data, UnM49Data, LanguageSchema's JsonSourceGenerationOptions), which hardcoded a CRLF NewLine to match the old default. Left as-is, regenerating any *DataGen.cs or LanguageData/*.json locally would emit CRLF and either fail editorconfig-checker or drift from the codegen-drift CI gate under the new LF default. Regenerates and commits LanguageData/*.json offline (--skip-download) to match, verified content-identical (--ignore-cr-at-eol).
7478f7c to
4ee66b6Compareptr727
commented
Aug 29, 2026
Answering Qodo's suppressed finding 1, "Repository files lose existing endings" (version.json etc.): declined, this is the PR's intended effect, not a violation of it. The fleet's line-ending discipline ( |
ptr727
commented
Aug 29, 2026
Answering Qodo's suppressed finding 2, "Non-workflow yaml forced to lf" (codecov.yml, .github/dependabot.yml etc.): declined, the CRLF-for-non-workflow-YAML / LF-for-workflow-YAML split it wants restored no longer applies. That split existed only because this repo's old |
There was a problem hiding this comment.
🟢 Approval recommended
The changes consistently enforce LF defaults (with explicit CRLF/byte-preserve exceptions) and update generators to prevent future line-ending drift.
Review details
- Files reviewed: 10/79 changed files
- Comments generated: 0 new
- Review effort level: Lite
Uh oh!
There was an error while loading. Please reload this page.
Converges this repo's line-ending policy with the hub (
ptr727/ProjectTemplate). The hub's.editorconfig/.gitattributesdefault flipped from CRLF to LF after this repo's own CRLF default was added (PR #242, matching what the hub carried at the time). The fleet's line-ending policy keepsreleaserepos on the fleet LF default; nooperational-repo override applies here..editorconfig:[*] end_of_line = lf, CRLF pinned only for*.bat/*.cmd(the one type Windows requires it for). Drops the now-redundant per-type CRLF/LF overrides that existed only to work around the old CRLF default..gitattributes:* text=auto eol=lf, CRLF pinned for*.bat/*.cmd.LanguageData/(downloaded source data the parser reads byte-for-byte) gets an explicit-textpin, since the prior repo-wide* -textdefault no longer covers it..editorconfig-checker.json: carries the hub's addedExcludeblock (inert in this pure-.NET repo).git diff --ignore-cr-at-eolagainst the parent commit).Iso6392Data,Iso6393Data,Rfc5646Data,UnM49Data), which hardcodedStreamWriter NewLine = "\r\n"to match the old CRLF default. Left as-is, regenerating any*DataGen.cslocally would emit CRLF and faileditorconfig-checkerunder the new LF default.OPERATIONS.mdandWORKFLOW.md, the only two docs that described the old CRLF default.Verified:
dotnet buildanddotnet testboth clean (310/310 passing), zero content diff outside the five intentionally-edited files.🤖 Generated with Claude Code
Summary by CodeRabbit
Refactor
Documentation
Chores