Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2,937 changes: 2,435 additions & 502 deletions .editorconfig

Large diffs are not rendered by default.

304 changes: 27 additions & 277 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -1,278 +1,28 @@
# Catch all for anything we forgot. Add rules if you get CRLF to LF warnings.
* text=auto
# Text files that should be normalized to LF in odb.
*.cs text diff=csharp
*.xaml text
*.config text
*.c text
*.h text
*.cpp text
*.hpp text
*.sln text
*.csproj text
*.vcxproj text
*.tt text
*.sh text
*.ps1 text
*.cmd text
*.bat text
*.markdown text
*.msbuild text
# Binary files that should not be normalized or diffed
*.png binary
*.jpg binary
*.gif binary
*.ico binary
*.rc binary
*.pfx binary
*.snk binary
*.dll binary
*.exe binary
*.lib binary
*.exp binary
*.pdb binary
*.sdf binary
*.7z binary
# Generated file should just use CRLF, it's fiiine
SolutionInfo.cs text eol=crlf diff=csharp
# Every text file is stored and checked out with LF, on every platform.
#
# Without this, a Windows checkout with core.autocrlf=true rewrites LF to CRLF
# on the way to disk. The line-ending analyzer then fails the whole build on the
# Windows leg while the Linux and macOS legs pass, because the files on disk no
# longer match what is in the repository. `eol=lf` pins the checkout, so the
# working tree matches the index everywhere.
#
# The .editorconfig already sets end_of_line = lf for editors; this is the same
# rule for git, which editors do not control.
* text=auto eol=lf

# Binary content that no other rule covers.
*.3ds binary
*.3g2 binary
*.3gp binary
*.BMP binary
*.DS_Store binary
*.GIF binary
*.JPEG binary
*.JPG binary
*.PNG binary
*.a binary
*.aac binary
*.adp binary
*.ai binary
*.aif binary
*.aiff binary
*.alz binary
*.ape binary
*.apk binary
*.ar binary
*.arj binary
*.asf binary
*.au binary
*.avi binary
*.bak binary
*.baml binary
*.bh binary
*.bin binary
*.bk binary
*.bmp binary
*.btif binary
*.bz2 binary
*.bzip2 binary
*.cab binary
*.caf binary
*.cgm binary
*.class binary
*.cmx binary
*.cpio binary
*.cr2 binary
*.csv binary
*.cur binary
*.dat binary
*.dcm binary
*.deb binary
*.dex binary
*.djvu binary
*.dmg binary
*.dng binary
*.doc binary
*.docm binary
*.docx binary
*.dot binary
*.dotm binary
*.dra binary
*.dsk binary
*.dts binary
*.dtshd binary
*.dvb binary
*.dwg binary
*.dxf binary
*.ecelp4800 binary
*.ecelp7470 binary
*.ecelp9600 binary
*.egg binary
*.eol binary
*.eot binary
*.epub binary
*.f4v binary
*.fbs binary
*.fh binary
*.fla binary
*.flac binary
*.fli binary
*.flv binary
*.fpx binary
*.fst binary
*.fvt binary
*.g3 binary
*.graffle binary
*.gz binary
*.gzip binary
*.h261 binary
*.h263 binary
*.h264 binary
*.icns binary
*.ief binary
*.img binary
*.ipa binary
*.iso binary
*.jar binary
*.jpeg binary
*.jpgv binary
*.jpm binary
*.jxr binary
*.key binary
*.ktx binary
*.lha binary
*.lvp binary
*.lz binary
*.lzh binary
*.lzma binary
*.lzo binary
*.m3u binary
*.m4a binary
*.m4v binary
*.mar binary
*.mht binary
*.mid binary
*.midi binary
*.mj2 binary
*.mka binary
*.mkv binary
*.mmr binary
*.mng binary
*.mobi binary
*.mov binary
*.movie binary
*.mp3 binary
*.mp4 binary
*.mp4a binary
*.mpeg binary
*.mpg binary
*.mpga binary
*.mxu binary
*.nef binary
*.npx binary
*.numbers binary
*.o binary
*.oga binary
*.ogg binary
*.ogv binary
*.otf binary
*.pages binary
*.pbm binary
*.pcx binary
*.pdf binary
*.pea binary
*.pgm binary
*.pic binary
*.pnm binary
*.pot binary
*.potm binary
*.potx binary
*.ppa binary
*.ppam binary
*.ppm binary
*.pps binary
*.ppsm binary
*.ppsx binary
*.ppt binary
*.pptm binary
*.pptx binary
*.psd binary
*.pya binary
*.pyc binary
*.pyo binary
*.pyv binary
*.qt binary
*.rar binary
*.ras binary
*.raw binary
*.resources binary
*.rgb binary
*.rip binary
*.rlc binary
*.rmf binary
*.rmvb binary
*.rtf binary
*.rz binary
*.s3m binary
*.s7z binary
*.scpt binary
*.sgi binary
*.shar binary
*.sil binary
*.sketch binary
*.slk binary
*.smv binary
*.so binary
*.sub binary
*.swf binary
*.tar binary
*.tbz binary
*.tbz2 binary
*.tga binary
*.tgz binary
*.thmx binary
*.tif binary
*.tiff binary
*.tlz binary
*.ttc binary
*.ttf binary
*.txz binary
*.udf binary
*.uvh binary
*.uvi binary
*.uvm binary
*.uvp binary
*.uvs binary
*.uvu binary
*.viv binary
*.vob binary
*.war binary
*.wav binary
*.wax binary
*.wbmp binary
*.wdp binary
*.weba binary
*.webm binary
*.webp binary
*.whl binary
*.wim binary
*.wm binary
*.wma binary
*.wmv binary
*.wmx binary
*.woff binary
*.woff2 binary
*.wvx binary
*.xbm binary
*.xif binary
*.xla binary
*.xlam binary
*.xls binary
*.xlsb binary
*.xlsm binary
*.xlsx binary
*.xlt binary
*.xltm binary
*.xltx binary
*.xm binary
*.xmind binary
*.xpi binary
*.xpm binary
*.xwd binary
*.xz binary
*.z binary
*.zip binary
*.zipx binary
# Never normalise binary content — a stray LF-to-CRLF pass corrupts it.
*.png binary
*.jpg binary
*.jpeg binary
*.gif binary
*.ico binary
*.pdf binary
*.snk binary
*.pfx binary
*.dll binary
*.exe binary
*.zip binary
*.nupkg binary
*.ttf binary
*.woff binary
*.woff2 binary
24 changes: 1 addition & 23 deletions .github/renovate.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,7 @@
],
"groupName": "analyzers",
"matchPackageNames": [
"/^Roslynator\\./",
"/^stylecop\\.analyzers$/i"
"/^(Style|Performance|Security|PublicApi)Sharp\\.Analyzers$/"
]
},
{
Expand All @@ -26,17 +25,6 @@
"/^Microsoft\\.SourceLink\\./"
]
},
{
"description": "Verify.TUnit is built against a specific TUnit version. The shared preset groups TUnit separately from Verify.*, which can split a matched pair across two PRs and red the build; keep them together here.",
"matchManagers": [
"nuget"
],
"groupName": "TUnit",
"matchPackageNames": [
"/^TUnit(\\.|$)/",
"/^Verify\\./"
]
},
{
"description": "MessageBox.Avalonia is part of the Avalonia sample stack but does not carry the Avalonia prefix the shared preset matches on.",
"matchManagers": [
Expand All @@ -47,16 +35,6 @@
"/^Avalonia(\\.|$)/",
"/^MessageBox\\.Avalonia$/"
]
},
{
"description": "Test and benchmark helpers that sit outside the framework cohorts the shared preset already groups.",
"matchManagers": [
"nuget"
],
"groupName": "test tooling",
"matchPackageNames": [
"/^PublicApiGenerator$/"
]
}
]
}
8 changes: 5 additions & 3 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ dotnet restore ReactiveUI.Validation.slnx
# Build the solution
dotnet build ReactiveUI.Validation.slnx -c Release

# Build with warnings as errors (includes StyleCop violations)
# Build with warnings as errors (includes StyleSharp, PerformanceSharp and SecuritySharp violations)
dotnet build ReactiveUI.Validation.slnx -c Release -warnaserror

# Clean the solution
Expand Down Expand Up @@ -215,8 +215,10 @@ this.ValidationRule(
### Style Enforcement

- EditorConfig rules (`.editorconfig`) - comprehensive C# formatting and naming conventions
- StyleCop Analyzers - builds fail on violations
- Roslynator Analyzers - additional code quality rules
- StyleSharp.Analyzers (SST rules) - style and maintainability; builds fail on violations
- PerformanceSharp.Analyzers (PSH rules) - performance
- SecuritySharp.Analyzers (SES rules) - security
- Rule docs: https://github.com/glennawatson/RoslynCommonAnalyzers/tree/main/docs/rules
- **All public APIs require XML documentation comments**

### C# Style Rules
Expand Down
8 changes: 5 additions & 3 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ dotnet restore ReactiveUI.Validation.slnx
# Build the solution
dotnet build ReactiveUI.Validation.slnx -c Release

# Build with warnings as errors (includes StyleCop violations)
# Build with warnings as errors (includes StyleSharp, PerformanceSharp and SecuritySharp violations)
dotnet build ReactiveUI.Validation.slnx -c Release -warnaserror

# Clean the solution
Expand Down Expand Up @@ -215,8 +215,10 @@ this.ValidationRule(
### Style Enforcement

- EditorConfig rules (`.editorconfig`) - comprehensive C# formatting and naming conventions
- StyleCop Analyzers - builds fail on violations
- Roslynator Analyzers - additional code quality rules
- StyleSharp.Analyzers (SST rules) - style and maintainability; builds fail on violations
- PerformanceSharp.Analyzers (PSH rules) - performance
- SecuritySharp.Analyzers (SES rules) - security
- Rule docs: https://github.com/glennawatson/RoslynCommonAnalyzers/tree/main/docs/rules
- **All public APIs require XML documentation comments**

### C# Style Rules
Expand Down
Loading
Loading