Remove Grace from external DI container conformance tests

Open Beginner friendly
#128,690 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
2/5
Estimated time
1-3 hours
Newbie friendliness
76/100
Issue type
Refactor
Clarity
Clearly specified
Activity status
Quiet
Tech stack
csharp

Research direction

Start with Microsoft.Extensions.DependencyInjection.ExternalContainers.Tests.csproj, Grace.cs, and the Microsoft.Extensions.DependencyInjection README named in the steps. Remove the Grace package reference and source file, remove its README entry, and verify the external container tests and documentation no longer list Grace; the linked ASP.NET Core docs update is a separate task.

Written by the indexing model from the issue text.

Description

area-Extensions-DependencyInjection

Drop Grace from Microsoft.Extensions.DependencyInjection.ExternalContainers.Tests and the README's list of recognised third-party containers. Grace has now been explicitly sunset by its author. From the Grace README:

After many years of development I am making the decision to sunset Grace. While it's still possible to use Grace, the evolution of the built-in dependency injection container has made Grace less relevant. […] You can check out my next project that builds on top of the existing Microsoft DI container: https://github.com/ipjohnson/DependencyModules.

Signal Value
Deprecation notice committed 2025-02-08
Last non-README commit January 2023
Last open PR ("Support for new .net 8.0 features") unmerged since Jun 2024
Grace.DependencyInjection.Extensions (the MS.DI adapter we depend on) no release since 7.1.0
Grace.cs already skips 3 spec tests + opts out of IServiceProviderIsService yes

Steps

  1. Remove the Grace.DependencyInjection.Extensions PackageReference from
    src/libraries/Microsoft.Extensions.DependencyInjection/tests/DI.External.Tests/Microsoft.Extensions.DependencyInjection.ExternalContainers.Tests.csproj.
  2. Delete src/libraries/Microsoft.Extensions.DependencyInjection/tests/DI.External.Tests/Grace.cs.
  3. Remove the Grace bullet from src/libraries/Microsoft.Extensions.DependencyInjection/README.md.
  4. Update Microsoft docs section "Default service container replacement" which still lists Grace; that page lives in dotnet/AspNetCore.Docs and should be updated separately.
Dominant language
C#
Stars
18.3k
Forks
5.6k
Avg merge
2d 20h
Merged PRs (30d)
633

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from dotnet/runtime

All issues in dotnet/runtime

Similar issues

More C# issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.