dotnet/runtime - Open Source PR Review Scorecard

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

C-Rank Grade: S (Elite) - 70/100

External PR Merge Rate: 69%

Response Time: -

First Timer Success: 71%

Frequently Asked Questions

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

dotnet/runtime has a recorded first-timer success rate of 70.7%. Repositories ranked S 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 0.0 hours on average. Keeping PRs focused on single tasks and ensuring tests pass helps maintainers review faster.

What does the 70.5 C-Rank™ score (S 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 70.5 places dotnet/runtime in the S tier.

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

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

Are there Good First Issues available in dotnet/runtime?

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

dotnet
dotnet/runtimeS•Elite18.4k
GitHub
Back to Explorer
dotnet

dotnet/runtime

18,356
Active (30d)S•Elite(70/100)C#

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

GitHub
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
-
No reviewer activity recorded

Average Response Latency

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

Merge Efficiency
68.8%
Moderate PR acceptance rate

External Acceptance Rate

Percentage of community pull requests successfully merged into main.

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

First PR Conversion

Rate at which developers submitting their first repository PR succeed.

Active Maintainers
264 core
Highly collaborative maintainer core
Diagnostic Health HUD
68.8%
Merge Gauge
70.7%
1st-Timer
Community Vibe49/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 TensorPrimitives.MinNumber(ReadOnlySpan<T>) returns NaN when any element of the span is NaN, even when other elements are numbers. This appears inconsistent with MinNumber semantics, where a numeric operand should be preferred over NaN. Reproduction Steps using System; using System.Numerics.Tensors; float[] values = [1f, float.NaN, 2f]; Console.WriteLine(float.MinNumber(1f, float.NaN)); Console.WriteLine(TensorPrimitives.MinNumber(values)); Output: 1 NaN Expected behavior TensorPrimitives.MinNumber(values) should return: 1 A NaN should be ignored when another numeric value is available, consistent with float.MinNumber / T.MinNumber. If all elements are NaN, returning NaN would be expected. Actual behavior TensorPrimitives.MinNumber(values) returns NaN as soon as the reduction encounters a NaN. Regression? Unknown Known Workarounds Perform the reduction manually using T.MinNumber: T result = values[0]; for (int i = 1; i < values.Length; i++) { result = T.MinNumber(r

📅 Opened Sep 7, 2026💬 2 comments
Quality: 50/100Contribute

Description I'm working on adding ref struct support to the Boo compiler, and as expected it's producing some invalid IL until I get the details worked out. But one of the early tests is failing, throwing System.InvalidProgramException: Common Language Runtime detected an invalid program at runtime, while passing ILVerify with no errors. Reproduction Steps Open the attached zip file. It contains the testcase, and its ILDASM disassembly for convenience. The disassembly has one non-trivial method, Main. This is the original code. It should do exactly what it looks like it does: import System var span = "Hello, World!".AsSpan() for letter in span: Console.Write(letter) Console.WriteLine() The generated assembly throws InvalidProgramException at runtime, but ILVerify gives it a clean bill of health, so it's not clear what I need to fix in the codegen. Expected behavior ILVerify should correctly diagnose invalid assemblies. Actual behavior ILVerify shows no errors. Regression? No res

📅 Opened Aug 30, 2026💬 9 comments
Quality: 90/100Contribute

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💬 6 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 Jul 31, 2026💬 4 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 -. Out of all submitted pull requests from non-core authors in the last 180-day window, 68.8% 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 70.7%. Repositories ranked Elite 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 ~-. Keeping PRs scoped to single concerns and ensuring CI checks succeed will optimize review turnaround.

03

What does the 70.5 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 70.5 places dotnet/runtime in the Elite tier.

04

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

The external pull request merge rate is 68.8%. 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 27 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.