dotnet/runtime - Open Source PR Review Scorecard

.NET is a cross-platform runtime for cloud, mobile, desktop, and IoT apps.

C-Rank Grade: A (Welcoming) - 65/100

External PR Merge Rate: 73%

Response Time: 13h

First Timer Success: 64%

Frequently Asked Questions

Is dotnet/runtime welcoming to first-time open-source contributors?

dotnet/runtime has a recorded first-timer success rate of 63.9%. Repositories ranked A typically provide actionable feedback during code reviews and actively nurture new community contributors.

How fast can I expect code review feedback on my pull request?

Maintainers in dotnet/runtime respond to incoming external pull requests in approximately 13.4 hours on average. Keeping PRs focused on single tasks and ensuring tests pass helps maintainers review faster.

What does the 64.8 C-Rank™ score (A Tier) represent?

The C-Rank™ system evaluates GitHub projects on a 0–100 scale using real data: PR merge rates, review turnaround time, active maintainer presence, and first-time contributor success. A score of 64.8 places dotnet/runtime in the A tier.

What is the external contributor pull request merge rate for dotnet/runtime?

The external contributor pull request merge rate for dotnet/runtime is 72.9%, based on public PR activity from non-core contributors.

Are there Good First Issues available in dotnet/runtime?

dotnet/runtime currently has 30 active issue(s) tagged with beginner-friendly labels like "good first issue", "beginner", or "up-for-grabs".

dotnet
dotnet/runtimeAWelcoming18.2k
GitHub
Back to Explorer
dotnet

dotnet/runtime

18,237
AWelcoming(65/100)C#

.NET is a cross-platform runtime for cloud, mobile, desktop, and IoT apps.

Compare
Jump to:

AI Maintainer Review Guidelines

Review Persona

Welcoming Community Builder

Warmth Score
8.9/10
Patience Score
8.8/10
Nitpick Rate
30%

Highly welcoming maintainers in dotnet/runtime. Prompt code reviews with positive guidance for new contributors.

Top PR Submission Do's

  • Ensure code complies with the project coding style
  • Keep PRs scoped to a single concern
  • Include context and link to the related issue

Top PR Friction Pitfalls (Don'ts)

  • Do not submit PRs without linking an issue
  • Do not break existing tests without fixing them
  • Do not mix unrelated refactors in a single PR
Response Velocity
13 hours
Standard maintainer review cycle

Average Response Latency

Tracks hours until a maintainer leaves a review, comment, or PR response.

Merge Efficiency
72.9%
Moderate PR acceptance rate

External Acceptance Rate

Percentage of community pull requests successfully merged into main.

First-Timer Success
63.9%
Strong first-timer PR acceptance rate

First PR Conversion

Rate at which developers submitting their first repository PR succeed.

Active Maintainers
173 core
Highly collaborative maintainer core
Diagnostic Health HUD
72.9%
Merge Gauge
63.9%
1st-Timer
Community Vibe68/100

Embed C-Rank Badge

Show contributors that your repository actively reviews and merges external pull requests.

GetMerged C-Rank badge for dotnet/runtime
[![GetMerged C-Rank](https://getmerged.abhishekco.de/api/badge/dotnet/runtime)](https://getmerged.abhishekco.de/dotnet/runtime?utm_source=github&utm_medium=badge)

Active Good First Issues (5)

View on GitHub

Description i was instructed to post the issue here, as its about .NET api main issue when SetEnvironmentVariable() is used that contains a %variable% the registry key is set as reg_sz instead of expanded so the variable is not correctly save and breaking for example the path environment variable or other created variables Proposed technical implementation details (optional) GetEnvironmentVariable() add a new optional parameter that can be used to get a variable not expanded This allows to save it to a variable and pass it directly to SetEnvironmentVariable without breaking %% inside variables also for SetEnvironmentVariable it should detect if a % is inside the parameter and set the korrekt registrykey type when saving (reg_expand_sz) currently it always saves as reg_sz which breaks Path variable when used here the current behaviour is described. for the correct behaviour when creating the reg key (reg_sz or expanded), you can also look here at line 90 https://github.com/microsoft/Po

📅 Opened Aug 16, 2026💬 4 comments
Quality: 90/100Contribute

Description The method ICollection<KeyValuePair<TKey, TValue>>.CopyTo(KeyValuePair<TKey, TValue>[], int) from Dictionary<TKey, TValue> seems to produce an incorrect exception message in some situations, telling that a non-negative index is required when that is not exactly the error that was produced. Reproduction Steps using System.Collections.Generic; Dictionary<int, int> actual = new(); KeyValuePair<int, int>[] array = new KeyValuePair<int, int>[0]; ((ICollection<KeyValuePair<int, int>>)actual).CopyTo(array, array.Length + 1); The same also happens if the dictionary isn't empty or the array has some length. It also happens with non-generic ICollection method. Expected behavior System.ArgumentException: The number of elements in the source is greater than the available space from index to the end of the destination array. (Parameter 'index') (According to documentation) Actual behavior System.ArgumentOutOfRangeException: Non-negative number required. (Parameter 'index') Regression?

📅 Opened Aug 4, 2026💬 6 comments
Quality: 50/100Contribute

Title StringBuilder.ToString() throws misleading ArgumentOutOfRangeException for internal chunk inconsistency Description StringBuilder.ToString() validates internal chunk boundaries before copying: if ((uint)(chunkLength + chunkOffset) > (uint)result.Length || (uint)chunkLength > (uint)sourceArray.Length) { throw new ArgumentOutOfRangeException( nameof(chunkLength), SR.ArgumentOutOfRange_IndexMustBeLessOrEqual); } This exception is misleading: ToString() has no parameters. chunkLength is a private local copied from internal StringBuilder state. The caller cannot provide or correct a parameter named chunkLength. The failed condition indicates an inconsistent internal snapshot, normally caused by concurrent mutation. A real occurrence was reported in #46022. Concurrent use is caller misuse because StringBuilder is not thread-safe, but reporting it as an invalid argument obscures the real cause. Expected behavior Throw an exception representing an invalid or inc

📅 Opened Aug 1, 2026💬 4 comments
Quality: 90/100Contribute

Summary Three distinct problems — agent/LLM token cost, GitHub tool interaction, and GitHub UI/search — all stem from the same root cause: files that have grown without a size budget. This issue tracks candidates for splitting and flags files that break specific documented thresholds. Audit methodology: git ls-tree -r -l HEAD for byte sizes, git show | split for per-file line and max-line-length, git log --oneline --since=2.years for 2-year commit counts. No large files were opened whole; the audit itself was non-destructive. Confirmed thresholds Limit Value Source view tool truncation 20 KB Tool documentation Agent token cost morph.cpp (~585 KB) ≈ 137k tokens ≈ 200 AI credits per full read Measured in this repo (tiktoken/o200k_base) Code search file exclusion > 350 KiB docs.github.com Code search line truncation Lines > 1,024 chars Same Code search full exclusion Files with > 1 line over 4,096 bytes Same Per-PR diff > 20,000 lines or > 1 MB docs.github.com

📅 Opened Jul 28, 2026💬 1 comment
Quality: 90/100Contribute

Not sure if these were missed or intentionally left out. It refers to e.g. runtime/src/libraries/System.Private.CoreLib/src/System/MemoryExtensions.cs Lines 938 to 961 in 8f65ed7 public static unsafe int IndexOfAnyExcept<T>(this ReadOnlySpan<T> span, T value0, T value1) where T : IEquatable<T>? { if (RuntimeHelpers.IsBitwiseEquatable<T>()) { if (sizeof(T) == sizeof(byte)) { return SpanHelpers.IndexOfAnyExceptValueType( ref Unsafe.As<T, byte>(ref MemoryMarshal.GetReference(span)), Unsafe.BitCast<T,

📅 Opened Jul 25, 2026💬 5 comments
Quality: 90/100Contribute
Looking for more C# beginner tasks?Explore C# GFI

Contributor Community Vibe Feedback

Rate what actually matters after opening a pull request here.

Have you contributed to this repo?

Rate your first-hand PR experience (review speed, maintainer responsiveness, and onboarding ease) to help other contributors.

3 ratings required
Maintainer helpfulness
Review speed
Beginner friendliness

Contributor Compatibility & Review Speed Analysis for dotnet/runtime

When evaluating whether to contribute to dotnet/runtime, response velocity and maintainer engagement are crucial. GetMerged continuously tracks pull request trajectories, first-comment latency, and code review rounds to help developers avoid submitting pull requests to backlogged repositories.

Currently, maintainers of dotnet/runtime acknowledge new external contributions in approximately 13 hours. Out of all submitted pull requests from non-core authors in the last 180-day window, 72.9% were successfully merged into the primary branch.

Frequently Asked Questions - Contributing to dotnet/runtime

01

Is dotnet/runtime welcoming to first-time open-source contributors?

dotnet/runtime has a recorded first-timer success rate of 63.9%. Repositories ranked Welcoming typically provide actionable feedback during code reviews and actively nurture new community contributors.

02

How fast can I expect code review feedback on my pull request?

The initial maintainer response time averages ~13 hours. Keeping PRs scoped to single concerns and ensuring CI checks succeed will optimize review turnaround.

03

What does the 64.8 C-Rank™ score represent?

The C-Rank™ index scores repositories on a 0 to 100 scale using an objective formula: external PR merge rates, initial response speed, active maintainer count, and first-time contributor retention. A score of 64.8 places dotnet/runtime in the Welcoming tier.

04

What is the external contributor pull request merge rate for dotnet/runtime?

The external pull request merge rate is 72.9%. GetMerged isolates non-core community contributions so external developers get an accurate benchmark of PR acceptance probability.

05

Are there beginner Good First Issues open in dotnet/runtime?

Yes, dotnet/runtime currently has 30 active issue(s) tagged with beginner-friendly labels. You can inspect these directly from the repository issues tab.

GetMerged C-Rank™ Indexing Standard

All metrics displayed for dotnet/runtime are automatically retrieved via the public GitHub API and recalculated daily. Insider pull requests submitted by repository owners or organization members are excluded from merge rate calculations to preserve objective external contributor statistics.