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

feat: add dotnet 9 support, rm dotnet 6 #317

Merged
merged 21 commits into from
Dec 31, 2024
Merged

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).
Report is 1 commits behind head on main.

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.

@askpt askpt marked this pull request as ready for review December 31, 2024 11:53
@askpt askpt requested a review from a team as a code owner December 31, 2024 11:53
@toddbaert toddbaert changed the title chore(deps): Add dotnet 9 support chore(deps): add dotnet 9 support, rm dotnet 6 Dec 31, 2024
@toddbaert toddbaert changed the title chore(deps): add dotnet 9 support, rm dotnet 6 feat: add dotnet 9 support, rm dotnet 6 Dec 31, 2024
@askpt askpt requested a review from toddbaert December 31, 2024 14:10
@toddbaert toddbaert merged commit 2774b0d into main Dec 31, 2024
16 of 17 checks passed
@toddbaert toddbaert deleted the askpt/add-dotnet-9-support branch December 31, 2024 14:18
kylejuliandev pushed a commit to kylejuliandev/dotnet-sdk that referenced this pull request Jan 9, 2025
## This PR

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

### Notes

- .net6 is now EOF by Microsoft, so we should remove it. See
https://dotnet.microsoft.com/en-us/platform/support/policy/dotnet-core
for reference
- I needed to use a beta version of AutoFixture since, with .net9, it is
more strict in package vulnerabilities, and a library version used by
AutoFixture has vulnerabilities. See
https://learn.microsoft.com/en-us/nuget/release-notes/nuget-6.12 for
extra Nuget information and
AutoFixture/AutoFixture#1481 for AutoFixture

---------

Signed-off-by: André Silva <[email protected]>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Artyom Tonoyan <[email protected]>
Signed-off-by: Kyle Julian <[email protected]>
toddbaert added a commit that referenced this pull request Jan 31, 2025
🤖 I have created a release *beep* *boop*
---


##
[2.3.0](v2.2.0...v2.3.0)
(2025-01-31)


### ⚠ BREAKING CHANGES

#### Hook Changes

The signature of the `finally` hook stage has been changed. The
signature now includes the `evaluation details`, as per the [OpenFeature
specification](https://openfeature.dev/specification/sections/hooks#requirement-438).
Note that since hooks are still `experimental,` this does not constitute
a change requiring a new major version. To migrate, update any hook that
implements the `finally` stage to accept `evaluation details` as the
second argument.

* Add evaluation details to finally hook stage
([#335](#335))
([2ef9955](2ef9955))

#### .NET 6

Removed support for .NET 6.

* add dotnet 9 support, rm dotnet 6
([#317](#317))
([2774b0d](2774b0d))

### 🐛 Bug Fixes

* Adding Async Lifetime method to fix flaky unit tests
([#333](#333))
([e14ab39](e14ab39))
* Fix issue with DI documentation
([#350](#350))
([728ae47](728ae47))


### ✨ New Features

* add dotnet 9 support, rm dotnet 6
([#317](#317))
([2774b0d](2774b0d))
* Add evaluation details to finally hook stage
([#335](#335))
([2ef9955](2ef9955))
* Implement Default Logging Hook
([#308](#308))
([7013e95](7013e95))
* Implement transaction context
([#312](#312))
([1b5a0a9](1b5a0a9))


### 🧹 Chore

* **deps:** update actions/upload-artifact action to v4.5.0
([#332](#332))
([fd68cb0](fd68cb0))
* **deps:** update codecov/codecov-action action to v5
([#316](#316))
([6c4cd02](6c4cd02))
* **deps:** update codecov/codecov-action action to v5.1.2
([#334](#334))
([b9ebddf](b9ebddf))
* **deps:** update codecov/codecov-action action to v5.3.1
([#355](#355))
([1e8ebc4](1e8ebc4))
* **deps:** update dependency coverlet.collector to 6.0.3
([#336](#336))
([8527b03](8527b03))
* **deps:** update dependency coverlet.msbuild to 6.0.3
([#337](#337))
([26fd235](26fd235))
* **deps:** update dependency dotnet-sdk to v9.0.101
([#339](#339))
([dd26ad6](dd26ad6))
* **deps:** update dependency fluentassertions to 7.1.0
([#346](#346))
([dd1c8e4](dd1c8e4))
* **deps:** update dependency microsoft.net.test.sdk to 17.12.0
([#322](#322))
([6f5b049](6f5b049))


### 📚 Documentation

* disable space in link text lint rule
([#329](#329))
([583b2a9](583b2a9))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

---------

Signed-off-by: Todd Baert <[email protected]>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Todd Baert <[email protected]>
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