Skip to content
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

chore(deps): Add dotnet 9 support #317

Draft
wants to merge 21 commits into
base: main
Choose a base branch
from
Draft

Conversation

askpt
Copy link
Member

@askpt askpt commented Nov 15, 2024

This PR

  • Updates all dotnet packages
  • Updates the Target Framework
  • Updates all GH actions
  • Removes net6.0
  • Updates AutoFixture to a beta version

Notes

Copy link

codecov bot commented Nov 18, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 85.17%. Comparing base (e14ab39) to head (79df2f9).

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #317      +/-   ##
==========================================
- Coverage   85.30%   85.17%   -0.14%     
==========================================
  Files          36       36              
  Lines        1477     1477              
  Branches      150      150              
==========================================
- Hits         1260     1258       -2     
- Misses        187      188       +1     
- Partials       30       31       +1     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

renovate bot and others added 13 commits November 18, 2024 16:17
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [NSubstitute](https://nsubstitute.github.io/)
([source](https://redirect.github.com/nsubstitute/NSubstitute)) |
`5.1.0` -> `5.3.0` |
[![age](https://developer.mend.io/api/mc/badges/age/nuget/NSubstitute/5.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/nuget/NSubstitute/5.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/nuget/NSubstitute/5.1.0/5.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/nuget/NSubstitute/5.1.0/5.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>nsubstitute/NSubstitute (NSubstitute)</summary>

###
[`v5.3.0`](https://redirect.github.com/nsubstitute/NSubstitute/blob/HEAD/CHANGELOG.md#530-October-2024)

- \[NEW] Introduced `Substitute.ForTypeForwardingTo` to create
substitutes that forward interceptable calls to a concrete class. This
provides an easy way of implementing a test spy over an existing type.
Designed and implemented by
[@&#8203;marcoregueira](https://redirect.github.com/marcoregueira) in
[https://github.com/nsubstitute/NSubstitute/pull/700](https://redirect.github.com/nsubstitute/NSubstitute/pull/700)
from a proposal by [@&#8203;wsaeed](https://redirect.github.com/wsaeed).
Thanks to all who contributed to discussions of this feature.
- \[NEW] Support Raise.EventWith default constructor
([#&#8203;788](https://redirect.github.com/nsubstitute/NSubstitute/issues/788))
by
[@&#8203;mihnea-radulescu](https://redirect.github.com/mihnea-radulescu)
in
[https://github.com/nsubstitute/NSubstitute/pull/813](https://redirect.github.com/nsubstitute/NSubstitute/pull/813)
- \[NEW] Implement When(...).Throws to avoid confusion with Throw method
([#&#8203;803](https://redirect.github.com/nsubstitute/NSubstitute/issues/803))
by
[@&#8203;mihnea-radulescu](https://redirect.github.com/mihnea-radulescu)
in
[https://github.com/nsubstitute/NSubstitute/pull/818](https://redirect.github.com/nsubstitute/NSubstitute/pull/818)
- \[FIX] Arg.Any\<Arg.AnyType>() does not match arguments passed by
reference
([#&#8203;787](https://redirect.github.com/nsubstitute/NSubstitute/issues/787))
by
[@&#8203;mihnea-radulescu](https://redirect.github.com/mihnea-radulescu)
in
[https://github.com/nsubstitute/NSubstitute/pull/811](https://redirect.github.com/nsubstitute/NSubstitute/pull/811)
- \[FIX] Support matching arguments whose type is generic, when their
concrete type is not known
([#&#8203;786](https://redirect.github.com/nsubstitute/NSubstitute/issues/786))
by
[@&#8203;mihnea-radulescu](https://redirect.github.com/mihnea-radulescu)
in
[https://github.com/nsubstitute/NSubstitute/pull/814](https://redirect.github.com/nsubstitute/NSubstitute/pull/814)
- \[FIX] Release build workflow
[https://github.com/nsubstitute/NSubstitute/pull/797](https://redirect.github.com/nsubstitute/NSubstitute/pull/797)7)
- \[DOC] Add Throws for exceptions to the docs by
[@&#8203;304NotModified](https://redirect.github.com/304NotModified) in
[https://github.com/nsubstitute/NSubstitute/pull/795](https://redirect.github.com/nsubstitute/NSubstitute/pull/795)
- \[DOC] Remove Visual Studio for Mac from readme by
[@&#8203;Romfos](https://redirect.github.com/Romfos) in
[https://github.com/nsubstitute/NSubstitute/pull/807](https://redirect.github.com/nsubstitute/NSubstitute/pull/807)
- \[TECH] Migrate from NUnit 3 to NUnit 4 by
[@&#8203;Romfos](https://redirect.github.com/Romfos) in
[https://github.com/nsubstitute/NSubstitute/pull/783](https://redirect.github.com/nsubstitute/NSubstitute/pull/783)
- \[TECH] Update build project to .net 8 by
[@&#8203;Romfos](https://redirect.github.com/Romfos) in
[https://github.com/nsubstitute/NSubstitute/pull/776](https://redirect.github.com/nsubstitute/NSubstitute/pull/776)
- \[TECH] Code style: use C# 12 collection literals by
[@&#8203;Romfos](https://redirect.github.com/Romfos) in
[https://github.com/nsubstitute/NSubstitute/pull/810](https://redirect.github.com/nsubstitute/NSubstitute/pull/810)
- \[TECH] Use c# 12 primary constructors by
[@&#8203;Romfos](https://redirect.github.com/Romfos) in
[https://github.com/nsubstitute/NSubstitute/pull/812](https://redirect.github.com/nsubstitute/NSubstitute/pull/812)
- \[TECH] Added csharp_style_prefer_primary_constructors into
editorconfig by [@&#8203;Romfos](https://redirect.github.com/Romfos) in
[https://github.com/nsubstitute/NSubstitute/pull/819](https://redirect.github.com/nsubstitute/NSubstitute/pull/819)

Thanks to first-time contributors
[@&#8203;mihnea-radulescu](https://redirect.github.com/mihnea-radulescu)
and [@&#8203;marcoregueira](https://redirect.github.com/marcoregueira)!
Thanks also
[@&#8203;304NotModified](https://redirect.github.com/304NotModified) and
[@&#8203;Romfos](https://redirect.github.com/Romfos) for their continued
support and contributions to this release.

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/dotnet-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC4xMjAuMSIsInVwZGF0ZWRJblZlciI6IjM4LjEyMC4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Signed-off-by: André Silva <[email protected]>
Signed-off-by: André Silva <[email protected]>
Signed-off-by: André Silva <[email protected]>
Signed-off-by: André Silva <[email protected]>
Signed-off-by: André Silva <[email protected]>
Signed-off-by: André Silva <[email protected]>
Signed-off-by: André Silva <[email protected]>
Signed-off-by: André Silva <[email protected]>
)

> [!NOTE]
> This initial version of OpenFeature.DependencyInjection and
OpenFeature.Hosting introduces basic provider management and lifecycle
support for .NET Dependency Injection environments. While I haven't
included extensive tests, particularly for the Hosting project, if this
approach is approved and the scope is considered sufficient for the
first DI and Hosting release, I will expand the test coverage to include
both unit and integration tests. Additionally, I'll provide a sample
application to demonstrate the usage.

This pull request introduces key features and improvements to the
OpenFeature project, focusing on Dependency Injection and Hosting
support:

- **OpenFeature.DependencyInjection Project:**
- Implemented `OpenFeatureBuilder`, including
`OpenFeatureBuilderExtensions` for seamless integration.
  - Added `IFeatureLifecycleManager` interface and its implementation.
- Introduced `AddProvider` extension method for easy provider
configuration.
- Created `OpenFeatureServiceCollectionExtensions` for service
registration.

- **OpenFeature.Hosting Project:**
- Added `HostedFeatureLifecycleService` to manage the lifecycle of
feature providers in hosted environments.

- **Testing Enhancements:**
- Created unit tests for critical methods, including
`OpenFeatureBuilderExtensionsTests` and
`OpenFeatureServiceCollectionExtensionsTests`.
- Replicated and tested `NoOpFeatureProvider` implementation for better
test coverage.

These changes significantly improve OpenFeature's extensibility and
lifecycle management for feature providers within Dependency Injection
(DI) and hosted environments.

---

**NuGet Packages for installation:**
```bash
dotnet add package OpenFeature
dotnet add package OpenFeature.DependencyInjection
dotnet add package OpenFeature.Hosting
```

---

**Usage Example:**

```csharp
builder.Services.AddOpenFeature(featureBuilder => {
    featureBuilder
        .AddHostedFeatureLifecycle() // From Hosting package
        .AddContext((context, serviceProvider) => {
            // Context settings are applied here. Each feature flag evaluation will
            // automatically have access to these context parameters.
            // Do something with the service provider.
            context
                .Set("kind", "tenant")
                .Set("key", "<some key>");
        })
        // Example of a feature provider configuration
        // .AddLaunchDarkly(builder.Configuration["LaunchDarkly:SdkKey"], cfg => cfg.StartWaitTime(TimeSpan.FromSeconds(10)));
});
```

Signed-off-by: Artyom Tonoyan <[email protected]>
Signed-off-by: André Silva <[email protected]>

# Conflicts:
#	Directory.Packages.props
Signed-off-by: André Silva <[email protected]>
Signed-off-by: André Silva <[email protected]>
Signed-off-by: André Silva <[email protected]>
@askpt askpt force-pushed the askpt/add-dotnet-9-support branch 2 times, most recently from 42edfce to 360edf5 Compare November 18, 2024 16:23
# Conflicts:
#	.github/workflows/code-coverage.yml
#	Directory.Packages.props
#	src/OpenFeature.DependencyInjection/OpenFeature.DependencyInjection.csproj
#	src/OpenFeature.Hosting/OpenFeature.Hosting.csproj
#	test/OpenFeature.DependencyInjection.Tests/OpenFeature.DependencyInjection.Tests.csproj
@askpt askpt changed the title chore(deps): Add dotnet 9 native support chore(deps): Add dotnet 9 support Nov 18, 2024
@toddbaert
Copy link
Member

LGTM, ready to approve a non-draft version.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants