generated from Chris-Wolfgang/repo-template
-
Notifications
You must be signed in to change notification settings - Fork 0
Develop #51
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Develop #51
Changes from 169 commits
Commits
Show all changes
188 commits
Select commit
Hold shift + click to select a range
ff06168
Merge pull request #9 from Chris-Wolfgang/copilot/update-codeql-workflow
Chris-Wolfgang 6d4d098
Initial plan
Copilot 347ab22
Fix CodeQL workflow find command syntax with parentheses
Copilot b10019f
Merge pull request #11 from Chris-Wolfgang/copilot/update-codeql-work…
Chris-Wolfgang 4642228
Merge branch 'main' into develop
Chris-Wolfgang 43f9978
Merge branch 'main' into develop
Chris-Wolfgang 267b308
Initial plan
Copilot 72e99b6
Add code formatting enforcement infrastructure
Copilot e30c621
Improve .editorconfig with global defaults
Copilot e94fd81
Merge pull request #12 from Chris-Wolfgang/copilot/add-code-formattin…
Chris-Wolfgang f583321
Update .github/workflows/pr.yaml
Chris-Wolfgang a9bba6a
Initial plan
Copilot 1df400c
Add dotnet-format installation step to pr.yaml workflow
Copilot 5468db3
Merge pull request #14 from Chris-Wolfgang/copilot/sub-pr-13
Chris-Wolfgang 0a4ec97
Initial plan
Copilot 715f883
Fix format.ps1 Windows PowerShell compatibility with Allman braces an…
Copilot 7f5e6c4
Merge pull request #15 from Chris-Wolfgang/copilot/fix-parse-error-fo…
Chris-Wolfgang 9e0e15b
Initial plan
Copilot 1303bcb
Fix PowerShell script encoding with UTF-8 BOM and CRLF
Copilot 6b1431a
Merge pull request #16 from Chris-Wolfgang/copilot/fix-format-ps1-par…
Chris-Wolfgang 06b5809
Update .github/workflows/pr.yaml
Chris-Wolfgang 62c5ec7
Update format.ps1
Chris-Wolfgang ef8d395
Update README-FORMATTING.md
Chris-Wolfgang 03457c4
Update .editorconfig
Chris-Wolfgang f9942fc
Initial plan
Copilot 77ba7c4
Initial plan
Copilot 813eb79
Add .gitattributes file for consistent line ending handling
Copilot a3a1197
Initial plan
Copilot 6194c48
Add .gitattributes for consistent line ending handling
Copilot a62fced
Initial plan
Copilot a7f43bd
Fix .gitattributes to treat SVG files as text
Copilot f338963
Merge pull request #17 from Chris-Wolfgang/copilot/sub-pr-8
Chris-Wolfgang e5c8641
Add var preference rules to .editorconfig
Copilot 916a432
Add csharp_style_var_elsewhere for comprehensive var coverage
Copilot 2bf03ed
Merge pull request #20 from Chris-Wolfgang/copilot/sub-pr-8-yet-again
Chris-Wolfgang 682d76a
Merge pull request #19 from Chris-Wolfgang/copilot/sub-pr-8-another-one
Chris-Wolfgang 166d593
Apply suggestions from code review
Chris-Wolfgang 6e44a7a
Merge branch 'develop' into copilot/sub-pr-8-again
Chris-Wolfgang 0e277eb
Merge branch 'develop' into copilot/add-code-formatting-enforcement
Chris-Wolfgang 7690e21
Merge pull request #13 from Chris-Wolfgang/copilot/add-code-formattin…
Chris-Wolfgang 31aa458
Merge pull request #18 from Chris-Wolfgang/copilot/sub-pr-8-again
Chris-Wolfgang 79b5d39
Initial plan
Copilot c0b4703
Update README-FORMATTING.md
Chris-Wolfgang 36de9e0
Update .editorconfig
Chris-Wolfgang 1fc2e08
Plan: Update .editorconfig var_elsewhere setting per review feedback
Copilot e62fc0c
Update .editorconfig
Chris-Wolfgang 1843455
Update .github/workflows/pr.yaml
Chris-Wolfgang 710cebb
Update csharp_style_var_elsewhere to false per review feedback
Copilot 6a45980
Update .gitattributes
Chris-Wolfgang 1ce4753
Initial plan
Copilot 151abf2
Update .gitattributes
Chris-Wolfgang f15647e
Initial plan
Copilot 6544501
Merge pull request #21 from Chris-Wolfgang/copilot/sub-pr-8
Chris-Wolfgang 6b61cc5
Add code formatting enforcement with dotnet format
Copilot b665a21
Merge pull request #22 from Chris-Wolfgang/copilot/sub-pr-8-again
Chris-Wolfgang 7736c2c
Merge pull request #23 from Chris-Wolfgang/copilot/sub-pr-8-another-one
Chris-Wolfgang dca614d
Initial plan
Copilot 5839f42
Initial plan
Copilot 45b969e
Merge pull request #24 from Chris-Wolfgang/copilot/sub-pr-8
Chris-Wolfgang fb1d678
Add csharp_max_line_length and improve wrapping comments in .editorco…
Copilot 0b26ef0
Merge pull request #25 from Chris-Wolfgang/copilot/update-editorconfi…
Chris-Wolfgang e05317d
Format.ps1
Chris-Wolfgang f43a56f
Merge branch 'develop' of https://github.com/Chris-Wolfgang/IAsyncEum…
Chris-Wolfgang 54c256d
Initial plan
Copilot 278ebf0
Initial plan
Copilot 4e9125a
Initial plan
Copilot 5fc0708
Disable file header requirements in .editorconfig
Copilot 8d922da
Merge pull request #26 from Chris-Wolfgang/copilot/sub-pr-8
Chris-Wolfgang 610ee38
Merge pull request #28 from Chris-Wolfgang/copilot/update-editorconfi…
Chris-Wolfgang c96bfe9
Merge pull request #27 from Chris-Wolfgang/copilot/sub-pr-8-again
Chris-Wolfgang 98fc9fc
Initial plan
Copilot b52a46c
Add directory-specific StyleCop rules to .editorconfig
Copilot d3d8c1a
Merge pull request #29 from Chris-Wolfgang/copilot/update-editorconfi…
Chris-Wolfgang dd036e2
Initial plan
Copilot 719e702
Add IDE1006 and CA1707 diagnostic suppressions for test/benchmark/exa…
Copilot f2d4634
Merge pull request #30 from Chris-Wolfgang/copilot/update-editorconfi…
Chris-Wolfgang c8002f2
Initial plan
Copilot 969a5f3
Add Roslyn analyzers for code quality and async/await patterns
Copilot d421509
Address code review feedback on analyzer comments
Copilot fb11bba
Initial plan
Copilot 49b3cef
Disable VSTHRD111 analyzer rule for synchronous Cancel()
Copilot 2667fac
Address PR review feedback: enable EnforceCodeStyleInBuild, fix analy…
Copilot b84cc83
Refine CA1510 comment for clarity (.NET 6.0+ only)
Copilot b1ba9f4
Merge pull request #32 from Chris-Wolfgang/copilot/disable-vsthrd111-…
Chris-Wolfgang bd9c013
Add explicit configurations for all analyzer rules to avoid surprises
Copilot 7b63371
Merge pull request #31 from Chris-Wolfgang/copilot/add-roslyn-analyzers
Chris-Wolfgang fce36d5
Initial plan
Copilot 98fb7d1
Fix analyzer configuration: suppress SA0001, CA1849, and NetAnalyzers…
Copilot 2b68316
Merge pull request #33 from Chris-Wolfgang/copilot/fix-analyzer-confi…
Chris-Wolfgang 7d5df79
Enforce code quality and style in all project files
Chris-Wolfgang 620bbba
Add ConfigureAwait(false) to async enumerator calls
Chris-Wolfgang 50eac93
Improve async test cancellation and context handling
Chris-Wolfgang 2423b8d
Allow 'var' usage by disabling IDE0008 analyzer rule
Chris-Wolfgang b81ac5e
Initial plan
Copilot f240b2b
Add three new code quality and security analyzers
Copilot 3c503c5
Initial plan
Copilot a9a6448
Add BannedApiAnalyzers package and configuration
Copilot dfaff37
Update .editorconfig
Chris-Wolfgang d6e9b74
Update .editorconfig
Chris-Wolfgang af25148
Update Directory.Build.props
Chris-Wolfgang 0c1bfc2
Update .editorconfig
Chris-Wolfgang a9490a7
Update BannedApiAnalyzers version to 4.14.0 and fix BannedSymbols.txt…
Copilot 1aad9c8
Merge pull request #34 from Chris-Wolfgang/copilot/add-code-quality-a…
Chris-Wolfgang 9b562fe
Merge branch 'develop' into copilot/add-banned-api-analyzers
Chris-Wolfgang d47efef
Update BannedSymbols.txt
Chris-Wolfgang 4648c97
Update BannedSymbols.txt
Chris-Wolfgang c3bf921
Update BannedSymbols.txt
Chris-Wolfgang 9569bb5
Update BannedSymbols.txt
Chris-Wolfgang e7b81d8
Address PR feedback: refine BannedSymbols.txt to reduce false positives
Copilot de40873
Merge pull request #35 from Chris-Wolfgang/copilot/add-banned-api-ana…
Chris-Wolfgang 5eee967
Initial plan
Copilot b5b2714
Replace README.md and CONTRIBUTING.md with comprehensive documentation
Copilot bd17df6
Initial plan
Copilot 4346158
Update README.md
Chris-Wolfgang e753297
Fix documentation issues from PR review feedback
Copilot 4e15fae
Add SecurityCodeScan analyzer, update BannedSymbols.txt, and configur…
Copilot 7b9f044
Complete static analysis setup: Add SecurityCodeScan, update BannedSy…
Copilot 56ba679
Configure TreatWarningsAsErrors for Release builds only
Copilot c4f2ecb
Merge pull request #36 from Chris-Wolfgang/copilot/update-readme-and-…
Chris-Wolfgang b2d54d0
Remove deprecated methods from BannedSymbols.txt
Chris-Wolfgang e397f1b
Remove deprecated SecurityCodeScan.VS2019 package - rely on built-in …
Copilot ee4292d
Merge branch 'main' into develop
Chris-Wolfgang 1da7cf5
Merge pull request #37 from Chris-Wolfgang/copilot/add-securitycodesc…
Chris-Wolfgang 934cbdc
Initial plan
Copilot dba78ff
Apply suggestions from code review
Chris-Wolfgang 50c31a1
Remove duplicate analyzer configuration from benchmarks project
Copilot 767affc
Apply suggestions from code review
Chris-Wolfgang a4d7318
Update .editorconfig
Chris-Wolfgang f8c761b
Update .editorconfig
Chris-Wolfgang 89c14a5
Update .editorconfig
Chris-Wolfgang 4a91537
Initial plan
Copilot ec05360
Update README.md
Chris-Wolfgang 7dfc959
Update .editorconfig
Chris-Wolfgang d6e9129
Update .editorconfig
Chris-Wolfgang d24b226
Initial plan
Copilot d26abab
Complete Step #2: Add missing banned APIs and fix build
Copilot 0678034
Merge branch 'develop' into copilot/sub-pr-8-again
Chris-Wolfgang ef69830
Merge branch 'develop' into copilot/sub-pr-8
Chris-Wolfgang da168d2
Merge pull request #43 from Chris-Wolfgang/copilot/expand-banned-symb…
Chris-Wolfgang f37d52a
Merge pull request #41 from Chris-Wolfgang/copilot/sub-pr-8
Chris-Wolfgang 3c2231c
Merge pull request #42 from Chris-Wolfgang/copilot/sub-pr-8-again
Chris-Wolfgang 599d821
Initial plan
Copilot 968ab1c
Update BannedSymbols.txt
Chris-Wolfgang 4762fdc
Remove ConfigureAwait from test code
Copilot 29e7a75
Initial plan
Copilot 9a7e68c
Update .editorconfig
Chris-Wolfgang 76870f8
Remove global documentation rules and add to src folder configuration
Copilot 0c875c2
Update .editorconfig
Chris-Wolfgang bf5cb66
Initial plan
Copilot 23b9c2f
Update src/Wolfgang.Extensions.IAsyncEnumerable/IAsyncEnumerableExten…
Chris-Wolfgang 086ce39
Update CONTRIBUTING.md: correct analyzer count to 7 and remove StyleCop
Copilot dbd4113
Update README.md
Chris-Wolfgang ddd2e87
Initial plan
Copilot d0628cb
Remove ConfigureAwait calls from test code for consistency
Copilot 79646ce
Merge pull request #44 from Chris-Wolfgang/copilot/sub-pr-8
Chris-Wolfgang c7b7906
Merge pull request #47 from Chris-Wolfgang/copilot/sub-pr-8-yet-again
Chris-Wolfgang 333317b
Update CONTRIBUTING.md
Chris-Wolfgang 51f44c8
Merge pull request #46 from Chris-Wolfgang/copilot/sub-pr-8-another-one
Chris-Wolfgang f580327
Merge pull request #45 from Chris-Wolfgang/copilot/sub-pr-8-again
Chris-Wolfgang 9a0f832
Initial plan
Copilot cf867d0
Update all license references from MPL-2.0 to MIT
Copilot 8324a0b
Merge pull request #48 from Chris-Wolfgang/copilot/sub-pr-8
Chris-Wolfgang 18d8565
Initial plan
Copilot 43025c5
Fix ConfigureAwait warnings in src/, tests/, and benchmarks/
Copilot e9d3250
Merge pull request #49 from Chris-Wolfgang/copilot/fix-codeql-configu…
Chris-Wolfgang 74c8539
Initial plan
Copilot 0e2b2ae
Configure .editorconfig to allow var usage throughout codebase
Copilot 92eef40
Merge pull request #50 from Chris-Wolfgang/copilot/configure-editorco…
Chris-Wolfgang 106edf1
Initial plan
Copilot 4afb0b0
Initial plan
Copilot 479df14
Initial plan
Copilot b5bfcca
Remove setup instructions from README
Chris-Wolfgang 2f12067
Remove broken reference to SETUP.md from README
Copilot 0e620cc
Update README with correct documentation links and GitHub badge
Copilot a0eca8c
Merge pull request #61 from Chris-Wolfgang/copilot/sub-pr-51-f03e8be8…
Chris-Wolfgang d2b4512
Address review feedback on dotnet format and SETUP.md
Copilot 1d5f189
Fix unused variable in format.ps1
Copilot 9934a2f
Replace em dash with double hyphen for Markdown compatibility
Copilot 52c5d66
Merge branch 'develop' into copilot/create-readme-file
Chris-Wolfgang cee1aa1
Update README.md
Chris-Wolfgang a7bf07f
Fix typo in repository URLs: IAsyncEumerable -> IAsyncEnumerable
Copilot 88d0308
Merge pull request #60 from Chris-Wolfgang/copilot/create-readme-file
Chris-Wolfgang adfa0ae
Update README-FORMATTING.md
Chris-Wolfgang dad8782
Merge pull request #56 from Chris-Wolfgang/copilot/sub-pr-51-one-more…
Chris-Wolfgang 258a340
Update version, project URL, and include README in package
Chris-Wolfgang 904cf57
Reorder using directives for clarity
Chris-Wolfgang dedcc67
Release 0.1.0: update version from rc2 to final
Chris-Wolfgang c97d5cc
Reorder using directives in IAsyncEnumerableExtensions
Chris-Wolfgang File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,48 @@ | ||
| # Auto detect text files and perform LF normalization | ||
| * text=auto eol=lf | ||
|
|
||
| # Source code | ||
| *.cs text eol=lf | ||
| *.csx text eol=lf | ||
| *.vb text eol=lf | ||
| *.fs text eol=lf | ||
| *.fsx text eol=lf | ||
|
|
||
| # Scripts | ||
| *.sh text eol=lf | ||
| *.ps1 text eol=crlf | ||
|
|
||
|
|
||
| # Build and configuration files | ||
| *.xml text eol=lf | ||
| *.csproj text eol=lf | ||
| *.vbproj text eol=lf | ||
| *.fsproj text eol=lf | ||
| *.sln text eol=lf | ||
| *.slnx text eol=lf | ||
| *.props text eol=lf | ||
| *.targets text eol=lf | ||
| *.ruleset text eol=lf | ||
| *.config text eol=lf | ||
| *.json text eol=lf | ||
| *.yml text eol=lf | ||
| *.yaml text eol=lf | ||
|
|
||
| # Documentation | ||
| *.md text eol=lf | ||
| *.txt text eol=lf | ||
|
|
||
| # SVG files (XML-based text) | ||
| *.svg text eol=lf | ||
|
|
||
| # Denote all files that are truly binary and should not be modified | ||
| *.png binary | ||
| *.jpg binary | ||
| *.jpeg binary | ||
| *.gif binary | ||
| *.ico binary | ||
| *.pdf binary | ||
| *.dll binary | ||
| *.exe binary | ||
| *.nupkg binary | ||
| *.snupkg binary |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,46 +1,46 @@ | ||
| version: 2 | ||
| updates: | ||
| - package-ecosystem: "nuget" | ||
| directory: "/" # Root - for solution-level dependencies | ||
| schedule: | ||
| interval: "weekly" | ||
| open-pull-requests-limit: 5 | ||
| labels: | ||
| - "dependencies" | ||
| - "dotnet" | ||
| - package-ecosystem: "nuget" | ||
| directory: "/src" | ||
| schedule: | ||
| interval: "weekly" | ||
| open-pull-requests-limit: 5 | ||
| labels: | ||
| - "dependencies" | ||
| - "dotnet" | ||
| - package-ecosystem: "nuget" | ||
| directory: "/tests" | ||
| schedule: | ||
| interval: "weekly" | ||
| open-pull-requests-limit: 5 | ||
| labels: | ||
| - "dependencies" | ||
| - "dotnet" | ||
| - package-ecosystem: "nuget" | ||
| directory: "/benchmarks" | ||
| schedule: | ||
| interval: "weekly" | ||
| open-pull-requests-limit: 5 | ||
| labels: | ||
| - "dependencies" | ||
| - "dotnet" | ||
| - package-ecosystem: "nuget" | ||
| directory: "/examples" | ||
| schedule: | ||
| interval: "weekly" | ||
| open-pull-requests-limit: 5 | ||
| labels: | ||
| - "dependencies" | ||
| - "dotnet" | ||
| version: 2 | ||
| updates: | ||
| - package-ecosystem: "nuget" | ||
| directory: "/" # Root - for solution-level dependencies | ||
| schedule: | ||
| interval: "weekly" | ||
| open-pull-requests-limit: 5 | ||
| labels: | ||
| - "dependencies" | ||
| - "dotnet" | ||
|
|
||
| - package-ecosystem: "nuget" | ||
| directory: "/src" | ||
| schedule: | ||
| interval: "weekly" | ||
| open-pull-requests-limit: 5 | ||
| labels: | ||
| - "dependencies" | ||
| - "dotnet" | ||
|
|
||
| - package-ecosystem: "nuget" | ||
| directory: "/tests" | ||
| schedule: | ||
| interval: "weekly" | ||
| open-pull-requests-limit: 5 | ||
| labels: | ||
| - "dependencies" | ||
| - "dotnet" | ||
|
|
||
| - package-ecosystem: "nuget" | ||
| directory: "/benchmarks" | ||
| schedule: | ||
| interval: "weekly" | ||
| open-pull-requests-limit: 5 | ||
| labels: | ||
| - "dependencies" | ||
| - "dotnet" | ||
|
|
||
| - package-ecosystem: "nuget" | ||
| directory: "/examples" | ||
| schedule: | ||
| interval: "weekly" | ||
| open-pull-requests-limit: 5 | ||
| labels: | ||
| - "dependencies" | ||
| - "dotnet" |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,10 @@ | ||
| is_global = true | ||
|
|
||
| # Global analyzer configuration | ||
| global_level = 9999 | ||
|
|
||
| # Roslynator configuration | ||
| roslynator_accessibility_modifiers = explicit | ||
| roslynator_enum_has_flag_style = method | ||
| roslynator_object_creation_type_style = implicit_when_type_is_obvious | ||
| roslynator_use_anonymous_function_or_method_group = method_group |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,96 @@ | ||
| # BannedSymbols.txt - Async-First Enforcement for IAsyncEnumerable Extension Library | ||
| # Format: <API Documentation ID>; <Reason/Alternative> | ||
| # T: = Type, M: = Method, P: = Property, F: = Field | ||
| # Task.Wait() - All overloads - Absolutely NOT allowed in async code | ||
| M:System.Threading.Tasks.Task.Wait(); Use 'await' instead - this blocks the calling thread! | ||
| M:System.Threading.Tasks.Task.Wait(System.Int32); Use 'await' with CancellationToken timeout instead | ||
| M:System.Threading.Tasks.Task.Wait(System.TimeSpan); Use 'await' with CancellationToken timeout instead | ||
| M:System.Threading.Tasks.Task.Wait(System.Int32,System.Threading.CancellationToken); Use 'await' instead | ||
| M:System.Threading.Tasks.Task.Wait(System.Threading.CancellationToken); Use 'await' instead | ||
| # Task.WaitAll/WaitAny - Use async alternatives | ||
| M:System.Threading.Tasks.Task.WaitAll(System.Threading.Tasks.Task[]); Use 'await Task.WhenAll()' instead | ||
| M:System.Threading.Tasks.Task.WaitAll(System.Threading.Tasks.Task[],System.Int32); Use 'await Task.WhenAll()' with CancellationToken instead | ||
| M:System.Threading.Tasks.Task.WaitAll(System.Threading.Tasks.Task[],System.TimeSpan); Use 'await Task.WhenAll()' with CancellationToken instead | ||
| M:System.Threading.Tasks.Task.WaitAll(System.Threading.Tasks.Task[],System.Int32,System.Threading.CancellationToken); Use 'await Task.WhenAll()' instead | ||
| M:System.Threading.Tasks.Task.WaitAll(System.Threading.Tasks.Task[],System.Threading.CancellationToken); Use 'await Task.WhenAll()' instead | ||
| M:System.Threading.Tasks.Task.WaitAny(System.Threading.Tasks.Task[]); Use 'await Task.WhenAny()' instead | ||
| M:System.Threading.Tasks.Task.WaitAny(System.Threading.Tasks.Task[],System.Int32); Use 'await Task.WhenAny()' with CancellationToken instead | ||
| M:System.Threading.Tasks.Task.WaitAny(System.Threading.Tasks.Task[],System.TimeSpan); Use 'await Task.WhenAny()' with CancellationToken instead | ||
| M:System.Threading.Tasks.Task.WaitAny(System.Threading.Tasks.Task[],System.Int32,System.Threading.CancellationToken); Use 'await Task.WhenAny()' instead | ||
| M:System.Threading.Tasks.Task.WaitAny(System.Threading.Tasks.Task[],System.Threading.CancellationToken); Use 'await Task.WhenAny()' instead | ||
| # Task<T>.Result - Blocking property access | ||
| P:System.Threading.Tasks.Task`1.Result; Blocking! Use 'await' instead to get the result asynchronously | ||
| # GetAwaiter().GetResult() - Also blocking | ||
| M:System.Runtime.CompilerServices.TaskAwaiter.GetResult(); Blocking! Use 'await' instead | ||
| M:System.Runtime.CompilerServices.TaskAwaiter`1.GetResult(); Blocking! Use 'await' instead | ||
| # Thread.Sleep - Use Task.Delay for async delays | ||
| M:System.Threading.Thread.Sleep(System.Int32); Use 'await Task.Delay()' instead for async-friendly delays | ||
| M:System.Threading.Thread.Sleep(System.TimeSpan); Use 'await Task.Delay()' instead for async-friendly delays | ||
| # Obsolete/Deprecated Threading APIs | ||
| M:System.Threading.Thread.Suspend(); Deprecated and dangerous | ||
| M:System.Threading.Thread.Resume(); Deprecated and dangerous | ||
| T:System.ComponentModel.BackgroundWorker; Use async/await patterns instead of BackgroundWorker | ||
| # Synchronous File I/O - Use async versions | ||
| M:System.IO.File.ReadAllText(System.String); Use 'File.ReadAllTextAsync()' instead | ||
| M:System.IO.File.ReadAllText(System.String,System.Text.Encoding); Use 'File.ReadAllTextAsync()' instead | ||
| M:System.IO.File.ReadAllLines(System.String); Use 'File.ReadAllLinesAsync()' instead | ||
| M:System.IO.File.ReadAllLines(System.String,System.Text.Encoding); Use 'File.ReadAllLinesAsync()' instead | ||
| M:System.IO.File.ReadAllBytes(System.String); Use 'File.ReadAllBytesAsync()' instead | ||
| M:System.IO.File.WriteAllText(System.String,System.String); Use 'File.WriteAllTextAsync()' instead | ||
| M:System.IO.File.WriteAllText(System.String,System.String,System.Text.Encoding); Use 'File.WriteAllTextAsync()' instead | ||
| M:System.IO.File.WriteAllLines(System.String,System.Collections.Generic.IEnumerable{System.String}); Use 'File.WriteAllLinesAsync()' instead | ||
| M:System.IO.File.WriteAllLines(System.String,System.Collections.Generic.IEnumerable{System.String},System.Text.Encoding); Use 'File.WriteAllLinesAsync()' instead | ||
| M:System.IO.File.WriteAllLines(System.String,System.String[]); Use 'File.WriteAllLinesAsync()' instead | ||
| M:System.IO.File.WriteAllLines(System.String,System.String[],System.Text.Encoding); Use 'File.WriteAllLinesAsync()' instead | ||
| M:System.IO.File.WriteAllBytes(System.String,System.Byte[]); Use 'File.WriteAllBytesAsync()' instead | ||
| M:System.IO.File.AppendAllText(System.String,System.String); Use 'File.AppendAllTextAsync()' instead | ||
| M:System.IO.File.AppendAllText(System.String,System.String,System.Text.Encoding); Use 'File.AppendAllTextAsync()' instead | ||
| M:System.IO.File.AppendAllLines(System.String,System.Collections.Generic.IEnumerable{System.String}); Use 'File.AppendAllLinesAsync()' instead | ||
| M:System.IO.File.AppendAllLines(System.String,System.Collections.Generic.IEnumerable{System.String},System.Text.Encoding); Use 'File.AppendAllLinesAsync()' instead | ||
| # Synchronous Stream operations - Use async versions for file I/O | ||
| M:System.IO.Stream.Read(System.Byte[],System.Int32,System.Int32); Use 'ReadAsync()' instead | ||
| M:System.IO.Stream.Write(System.Byte[],System.Int32,System.Int32); Use 'WriteAsync()' instead | ||
| M:System.IO.Stream.CopyTo(System.IO.Stream); Use 'CopyToAsync()' instead | ||
| M:System.IO.Stream.CopyTo(System.IO.Stream,System.Int32); Use 'CopyToAsync()' instead | ||
| M:System.IO.Stream.Flush(); Use 'FlushAsync()' instead | ||
| M:System.IO.FileStream.Read(System.Byte[],System.Int32,System.Int32); Use 'ReadAsync()' instead | ||
| M:System.IO.FileStream.Write(System.Byte[],System.Int32,System.Int32); Use 'WriteAsync()' instead | ||
| # TextReader | ||
| M:System.IO.TextReader.ReadToEnd(); Use 'ReadToEndAsync()' instead | ||
| M:System.IO.TextReader.ReadLine(); Use 'ReadLineAsync()' instead | ||
| M:System.IO.TextReader.Read(); Use 'ReadAsync()' instead | ||
| M:System.IO.TextReader.Read(System.Char[],System.Int32,System.Int32); Use 'ReadAsync()' instead | ||
| M:System.IO.TextReader.ReadBlock(System.Char[],System.Int32,System.Int32); Use 'ReadBlockAsync()' instead | ||
| # TextWriter | ||
| M:System.IO.TextWriter.Write(System.String); Use 'WriteAsync()' instead | ||
| M:System.IO.TextWriter.Write(System.Char); Use 'WriteAsync()' instead | ||
| M:System.IO.TextWriter.Write(System.Char[]); Use 'WriteAsync()' instead | ||
| M:System.IO.TextWriter.Write(System.Char[],System.Int32,System.Int32); Use 'WriteAsync()' instead | ||
| M:System.IO.TextWriter.WriteLine(); Use 'WriteLineAsync()' instead | ||
| M:System.IO.TextWriter.WriteLine(System.String); Use 'WriteLineAsync()' instead | ||
| M:System.IO.TextWriter.Flush(); Use 'FlushAsync()' instead | ||
| # Obsolete Network APIs - Use HttpClient | ||
| T:System.Net.WebClient; Obsolete - use HttpClient instead | ||
| T:System.Net.WebRequest; Obsolete - use HttpClient instead | ||
| T:System.Net.HttpWebRequest; Obsolete - use HttpClient instead | ||
| T:System.Net.HttpWebResponse; Obsolete - use HttpClient instead | ||
| M:System.Net.WebClient.DownloadString(System.String); Use 'HttpClient.GetStringAsync()' instead | ||
| M:System.Net.WebClient.DownloadData(System.String); Use 'HttpClient.GetByteArrayAsync()' instead | ||
| M:System.Net.WebClient.UploadString(System.String,System.String); Use 'HttpClient.PostAsync()' instead | ||
| # Obsolete/Insecure Serialization | ||
| T:System.Runtime.Serialization.Formatters.Binary.BinaryFormatter; Insecure and deprecated - use System.Text.Json.JsonSerializer instead | ||
| T:System.Runtime.Serialization.Formatters.Soap.SoapFormatter; Insecure and deprecated - use System.Text.Json.JsonSerializer instead | ||
| # DateTime Anti-patterns - Prefer DateTimeOffset for timezone safety | ||
| P:System.DateTime.Now; Use 'DateTimeOffset.UtcNow' or 'DateTimeOffset.Now' for timezone-aware operations | ||
| T:System.DateTime; Consider using 'DateTimeOffset' for timezone-safe date/time operations (especially in libraries) | ||
| # Synchronous Parallel operations - Use async alternatives | ||
| M:System.Threading.Tasks.Parallel.For(System.Int32,System.Int32,System.Action{System.Int32}); Synchronous - prefer async concurrency patterns (e.g., 'Task.WhenAll()', dataflow). On .NET 6+ targets, 'Parallel.ForEachAsync()' is also available. | ||
| M:System.Threading.Tasks.Parallel.For(System.Int32,System.Int32,System.Threading.Tasks.ParallelOptions,System.Action{System.Int32}); Synchronous - prefer async concurrency patterns (e.g., 'Task.WhenAll()', dataflow). On .NET 6+ targets, 'Parallel.ForEachAsync()' is also available. | ||
| M:System.Threading.Tasks.Parallel.ForEach``1(System.Collections.Generic.IEnumerable{``0},System.Action{``0}); Synchronous - prefer async concurrency patterns (e.g., 'Task.WhenAll()', dataflow). On .NET 6+ targets, 'Parallel.ForEachAsync()' is also available. | ||
| M:System.Threading.Tasks.Parallel.ForEach``1(System.Collections.Generic.IEnumerable{``0},System.Threading.Tasks.ParallelOptions,System.Action{``0}); Synchronous - prefer async concurrency patterns (e.g., 'Task.WhenAll()', dataflow). On .NET 6+ targets, 'Parallel.ForEachAsync()' is also available. | ||
| M:System.Threading.Tasks.Parallel.Invoke(System.Action[]); Synchronous - use 'Task.WhenAll()' with async delegates instead | ||
| # Console Blocking operations - Avoid in async code | ||
| M:System.Console.ReadLine(); Blocking - avoid in async code paths | ||
| M:System.Console.Read(); Blocking - avoid in async code paths | ||
| M:System.Console.ReadKey(); Blocking - avoid in async code paths | ||
| M:System.Console.ReadKey(System.Boolean); Blocking - avoid in async code paths |
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
dotnet formatis invoked here, but the workflow doesn’t install/restore a known dotnet-format version (no tool manifest/tool restore step in repo). This makes CI dependent on whatever is (or isn’t) preinstalled on the runner. Consider adding a pinned tool (e.g., local tool manifest +dotnet tool restore, or explicit install) before callingdotnet format.