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!: Use same type for flag metadata and event metadata #241

Merged
merged 3 commits into from
Apr 23, 2024

Conversation

benjiro
Copy link
Member

@benjiro benjiro commented Feb 21, 2024

This PR

BREAKING CHANGE, merge with 2.0

The spec describes two types(flag metadata, and event metadata) that are functionally the same. This PR makes a breaking change to bring both of the types to use a generic ImmutableMetadata type.

  • Rename BaseMetadata to ImmutableMetadata, make sealed class and implement a empty constructor

Related Issues

Fixes: #234

@benjiro benjiro requested a review from a team as a code owner February 21, 2024 12:14
Copy link

codecov bot commented Feb 21, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 94.46%. Comparing base (11a0333) to head (ee77da9).
Report is 4 commits behind head on main.

❗ Current head ee77da9 differs from pull request most recent head 0845fb6. Consider uploading reports for the commit 0845fb6 to get more accurate results

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #241      +/-   ##
==========================================
- Coverage   95.40%   94.46%   -0.95%     
==========================================
  Files          27       26       -1     
  Lines        1111     1102       -9     
  Branches      120      119       -1     
==========================================
- Hits         1060     1041      -19     
- Misses         34       37       +3     
- Partials       17       24       +7     

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

@toddbaert toddbaert added this to the 2.0 (breaking) milestone Feb 21, 2024
@benjiro benjiro force-pushed the feat/use-consistent-metadata-types branch from 1a41231 to ee77da9 Compare February 24, 2024 03:37
@beeme1mr
Copy link
Member

beeme1mr commented Apr 5, 2024

Hey @benjiro, we started prepping for the 2.0 release. When you have a moment, could you please resolve the conflicts? Thanks!

@toddbaert toddbaert force-pushed the feat/use-consistent-metadata-types branch 3 times, most recently from 7fc36ed to a016f66 Compare April 22, 2024 19:57
The spec describes two types(flag metadata, and event metadata) that are functionally the same. This PR
makes a breaking change to bring both of the types to use a generic ImmutableMetadata type.

- Rename BaseMetadata to Immutable, make sealed class and implement a empty constructor

Fixes: #234

Signed-off-by: Benjamin Evenson <2031163+benjiro@users.noreply.github.com>
@toddbaert
Copy link
Member

I've taken this up where @benjiro left off, fixed some conflicts, etc.

Copy link
Member

@askpt askpt left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me. The delta changes looks bigger but it is only formatting related. 👍

@toddbaert toddbaert merged commit ac7d7de into main Apr 23, 2024
11 checks passed
@toddbaert toddbaert deleted the feat/use-consistent-metadata-types branch April 23, 2024 16:24
toddbaert added a commit that referenced this pull request Aug 21, 2024
🤖 I have created a release *beep* *boop*
---


##
[2.0.0](v1.5.0...v2.0.0)
(2024-08-21)

Today we're announcing the release of the OpenFeature SDK for .NET,
v2.0! This release contains several ergonomic improvements to the SDK,
which .NET developers will appreciate. It also includes some performance
optimizations brought to you by the latest .NET primitives.

For details and migration tips, check out:
https://openfeature.dev/blog/dotnet-sdk-v2

### ⚠ BREAKING CHANGES

* domain instead of client name
([#294](#294))
* internally maintain provider status
([#276](#276))
* add CancellationTokens, ValueTasks hooks
([#268](#268))
* Use same type for flag metadata and event metadata
([#241](#241))
* Enable nullable reference types
([#253](#253))

### 🐛 Bug Fixes

* Add missing error message when an error occurred
([#256](#256))
([949d53c](949d53c))
* Should map metadata when converting from ResolutionDetails to
FlagEvaluationDetails
([#282](#282))
([2f8bd21](2f8bd21))


### ✨ New Features

* add CancellationTokens, ValueTasks hooks
([#268](#268))
([33154d2](33154d2))
* back targetingKey with internal map
([#287](#287))
([ccc2f7f](ccc2f7f))
* domain instead of client name
([#294](#294))
([4c0592e](4c0592e))
* Drop net7 TFM
([#284](#284))
([2dbe1f4](2dbe1f4))
* internally maintain provider status
([#276](#276))
([63faa84](63faa84))
* Use same type for flag metadata and event metadata
([#241](#241))
([ac7d7de](ac7d7de))


### 🧹 Chore

* cleanup code
([#277](#277))
([44cf586](44cf586))
* **deps:** Project file cleanup and remove unnecessary dependencies
([#251](#251))
([79def47](79def47))
* **deps:** update actions/upload-artifact action to v4.3.3
([#263](#263))
([7718649](7718649))
* **deps:** update actions/upload-artifact action to v4.3.4
([#278](#278))
([15189f1](15189f1))
* **deps:** update actions/upload-artifact action to v4.3.5
([#291](#291))
([00e99d6](00e99d6))
* **deps:** update codecov/codecov-action action to v4
([#227](#227))
([11a0333](11a0333))
* **deps:** update codecov/codecov-action action to v4.3.1
([#267](#267))
([ff9df59](ff9df59))
* **deps:** update codecov/codecov-action action to v4.5.0
([#272](#272))
([281295d](281295d))
* **deps:** update dependency benchmarkdotnet to v0.14.0
([#293](#293))
([aec222f](aec222f))
* **deps:** update dependency coverlet.collector to v6.0.2
([#247](#247))
([ab34c16](ab34c16))
* **deps:** update dependency coverlet.msbuild to v6.0.2
([#239](#239))
([e654222](e654222))
* **deps:** update dependency dotnet-sdk to v8.0.204
([#261](#261))
([8f82645](8f82645))
* **deps:** update dependency dotnet-sdk to v8.0.301
([#271](#271))
([acd0385](acd0385))
* **deps:** update dependency dotnet-sdk to v8.0.303
([#275](#275))
([871dcac](871dcac))
* **deps:** update dependency dotnet-sdk to v8.0.400
([#295](#295))
([bb4f352](bb4f352))
* **deps:** update dependency githubactionstestlogger to v2.4.1
([#274](#274))
([46c2b15](46c2b15))
* **deps:** update dependency microsoft.net.test.sdk to v17.10.0
([#273](#273))
([581ff81](581ff81))
* **deps:** update dotnet monorepo
([#218](#218))
([bc8301d](bc8301d))
* **deps:** update xunit-dotnet monorepo
([#262](#262))
([43f14cc](43f14cc))
* **deps:** update xunit-dotnet monorepo
([#279](#279))
([fb1cc66](fb1cc66))
* **deps:** update xunit-dotnet monorepo to v2.8.1
([#266](#266))
([a7b6d85](a7b6d85))
* Enable nullable reference types
([#253](#253))
([5a5312c](5a5312c))
* in-memory UpdateFlags to UpdateFlagsAsync
([#298](#298))
([390205a](390205a))
* prompt 2.0
([9b9c3fd](9b9c3fd))
* Support for determining spec support for the repo
([#270](#270))
([67a1a0a](67a1a0a))

---
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 <todd.baert@dynatrace.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
arttonoyan pushed a commit to arttonoyan/dotnet-sdk that referenced this pull request Oct 16, 2024
🤖 I have created a release *beep* *boop*
---

##
[2.0.0](open-feature/dotnet-sdk@v1.5.0...v2.0.0)
(2024-08-21)

Today we're announcing the release of the OpenFeature SDK for .NET,
v2.0! This release contains several ergonomic improvements to the SDK,
which .NET developers will appreciate. It also includes some performance
optimizations brought to you by the latest .NET primitives.

For details and migration tips, check out:
https://openfeature.dev/blog/dotnet-sdk-v2

### ⚠ BREAKING CHANGES

* domain instead of client name
([open-feature#294](open-feature#294))
* internally maintain provider status
([open-feature#276](open-feature#276))
* add CancellationTokens, ValueTasks hooks
([open-feature#268](open-feature#268))
* Use same type for flag metadata and event metadata
([open-feature#241](open-feature#241))
* Enable nullable reference types
([open-feature#253](open-feature#253))

### 🐛 Bug Fixes

* Add missing error message when an error occurred
([open-feature#256](open-feature#256))
([949d53c](open-feature@949d53c))
* Should map metadata when converting from ResolutionDetails to
FlagEvaluationDetails
([open-feature#282](open-feature#282))
([2f8bd21](open-feature@2f8bd21))

### ✨ New Features

* add CancellationTokens, ValueTasks hooks
([open-feature#268](open-feature#268))
([33154d2](open-feature@33154d2))
* back targetingKey with internal map
([open-feature#287](open-feature#287))
([ccc2f7f](open-feature@ccc2f7f))
* domain instead of client name
([open-feature#294](open-feature#294))
([4c0592e](open-feature@4c0592e))
* Drop net7 TFM
([open-feature#284](open-feature#284))
([2dbe1f4](open-feature@2dbe1f4))
* internally maintain provider status
([open-feature#276](open-feature#276))
([63faa84](open-feature@63faa84))
* Use same type for flag metadata and event metadata
([open-feature#241](open-feature#241))
([ac7d7de](open-feature@ac7d7de))

### 🧹 Chore

* cleanup code
([open-feature#277](open-feature#277))
([44cf586](open-feature@44cf586))
* **deps:** Project file cleanup and remove unnecessary dependencies
([open-feature#251](open-feature#251))
([79def47](open-feature@79def47))
* **deps:** update actions/upload-artifact action to v4.3.3
([open-feature#263](open-feature#263))
([7718649](open-feature@7718649))
* **deps:** update actions/upload-artifact action to v4.3.4
([open-feature#278](open-feature#278))
([15189f1](open-feature@15189f1))
* **deps:** update actions/upload-artifact action to v4.3.5
([open-feature#291](open-feature#291))
([00e99d6](open-feature@00e99d6))
* **deps:** update codecov/codecov-action action to v4
([open-feature#227](open-feature#227))
([11a0333](open-feature@11a0333))
* **deps:** update codecov/codecov-action action to v4.3.1
([open-feature#267](open-feature#267))
([ff9df59](open-feature@ff9df59))
* **deps:** update codecov/codecov-action action to v4.5.0
([open-feature#272](open-feature#272))
([281295d](open-feature@281295d))
* **deps:** update dependency benchmarkdotnet to v0.14.0
([open-feature#293](open-feature#293))
([aec222f](open-feature@aec222f))
* **deps:** update dependency coverlet.collector to v6.0.2
([open-feature#247](open-feature#247))
([ab34c16](open-feature@ab34c16))
* **deps:** update dependency coverlet.msbuild to v6.0.2
([open-feature#239](open-feature#239))
([e654222](open-feature@e654222))
* **deps:** update dependency dotnet-sdk to v8.0.204
([open-feature#261](open-feature#261))
([8f82645](open-feature@8f82645))
* **deps:** update dependency dotnet-sdk to v8.0.301
([open-feature#271](open-feature#271))
([acd0385](open-feature@acd0385))
* **deps:** update dependency dotnet-sdk to v8.0.303
([open-feature#275](open-feature#275))
([871dcac](open-feature@871dcac))
* **deps:** update dependency dotnet-sdk to v8.0.400
([open-feature#295](open-feature#295))
([bb4f352](open-feature@bb4f352))
* **deps:** update dependency githubactionstestlogger to v2.4.1
([open-feature#274](open-feature#274))
([46c2b15](open-feature@46c2b15))
* **deps:** update dependency microsoft.net.test.sdk to v17.10.0
([open-feature#273](open-feature#273))
([581ff81](open-feature@581ff81))
* **deps:** update dotnet monorepo
([open-feature#218](open-feature#218))
([bc8301d](open-feature@bc8301d))
* **deps:** update xunit-dotnet monorepo
([open-feature#262](open-feature#262))
([43f14cc](open-feature@43f14cc))
* **deps:** update xunit-dotnet monorepo
([open-feature#279](open-feature#279))
([fb1cc66](open-feature@fb1cc66))
* **deps:** update xunit-dotnet monorepo to v2.8.1
([open-feature#266](open-feature#266))
([a7b6d85](open-feature@a7b6d85))
* Enable nullable reference types
([open-feature#253](open-feature#253))
([5a5312c](open-feature@5a5312c))
* in-memory UpdateFlags to UpdateFlagsAsync
([open-feature#298](open-feature#298))
([390205a](open-feature@390205a))
* prompt 2.0
([9b9c3fd](open-feature@9b9c3fd))
* Support for determining spec support for the repo
([open-feature#270](open-feature#270))
([67a1a0a](open-feature@67a1a0a))

---
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 <todd.baert@dynatrace.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
Signed-off-by: Artyom Tonoyan <artonoyan@servicetitan.com>
arttonoyan pushed a commit to arttonoyan/dotnet-sdk that referenced this pull request Nov 17, 2024
…re#241)

## This PR

**BREAKING CHANGE**, merge with 2.0

The spec describes two types(flag metadata, and event metadata) that are
functionally the same. This PR makes a breaking change to bring both of
the types to use a generic ImmutableMetadata type.

- Rename BaseMetadata to ImmutableMetadata, make sealed class and
implement a empty constructor

### Related Issues

Fixes: open-feature#234

---------

Signed-off-by: Benjamin Evenson <2031163+benjiro@users.noreply.github.com>
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
Signed-off-by: Artyom Tonoyan <artonoyan@servicetitan.com>
arttonoyan pushed a commit to arttonoyan/dotnet-sdk that referenced this pull request Nov 17, 2024
🤖 I have created a release *beep* *boop*
---

##
[2.0.0](open-feature/dotnet-sdk@v1.5.0...v2.0.0)
(2024-08-21)

Today we're announcing the release of the OpenFeature SDK for .NET,
v2.0! This release contains several ergonomic improvements to the SDK,
which .NET developers will appreciate. It also includes some performance
optimizations brought to you by the latest .NET primitives.

For details and migration tips, check out:
https://openfeature.dev/blog/dotnet-sdk-v2

### ⚠ BREAKING CHANGES

* domain instead of client name
([open-feature#294](open-feature#294))
* internally maintain provider status
([open-feature#276](open-feature#276))
* add CancellationTokens, ValueTasks hooks
([open-feature#268](open-feature#268))
* Use same type for flag metadata and event metadata
([open-feature#241](open-feature#241))
* Enable nullable reference types
([open-feature#253](open-feature#253))

### 🐛 Bug Fixes

* Add missing error message when an error occurred
([open-feature#256](open-feature#256))
([949d53c](open-feature@949d53c))
* Should map metadata when converting from ResolutionDetails to
FlagEvaluationDetails
([open-feature#282](open-feature#282))
([2f8bd21](open-feature@2f8bd21))

### ✨ New Features

* add CancellationTokens, ValueTasks hooks
([open-feature#268](open-feature#268))
([33154d2](open-feature@33154d2))
* back targetingKey with internal map
([open-feature#287](open-feature#287))
([ccc2f7f](open-feature@ccc2f7f))
* domain instead of client name
([open-feature#294](open-feature#294))
([4c0592e](open-feature@4c0592e))
* Drop net7 TFM
([open-feature#284](open-feature#284))
([2dbe1f4](open-feature@2dbe1f4))
* internally maintain provider status
([open-feature#276](open-feature#276))
([63faa84](open-feature@63faa84))
* Use same type for flag metadata and event metadata
([open-feature#241](open-feature#241))
([ac7d7de](open-feature@ac7d7de))

### 🧹 Chore

* cleanup code
([open-feature#277](open-feature#277))
([44cf586](open-feature@44cf586))
* **deps:** Project file cleanup and remove unnecessary dependencies
([open-feature#251](open-feature#251))
([79def47](open-feature@79def47))
* **deps:** update actions/upload-artifact action to v4.3.3
([open-feature#263](open-feature#263))
([7718649](open-feature@7718649))
* **deps:** update actions/upload-artifact action to v4.3.4
([open-feature#278](open-feature#278))
([15189f1](open-feature@15189f1))
* **deps:** update actions/upload-artifact action to v4.3.5
([open-feature#291](open-feature#291))
([00e99d6](open-feature@00e99d6))
* **deps:** update codecov/codecov-action action to v4
([open-feature#227](open-feature#227))
([11a0333](open-feature@11a0333))
* **deps:** update codecov/codecov-action action to v4.3.1
([open-feature#267](open-feature#267))
([ff9df59](open-feature@ff9df59))
* **deps:** update codecov/codecov-action action to v4.5.0
([open-feature#272](open-feature#272))
([281295d](open-feature@281295d))
* **deps:** update dependency benchmarkdotnet to v0.14.0
([open-feature#293](open-feature#293))
([aec222f](open-feature@aec222f))
* **deps:** update dependency coverlet.collector to v6.0.2
([open-feature#247](open-feature#247))
([ab34c16](open-feature@ab34c16))
* **deps:** update dependency coverlet.msbuild to v6.0.2
([open-feature#239](open-feature#239))
([e654222](open-feature@e654222))
* **deps:** update dependency dotnet-sdk to v8.0.204
([open-feature#261](open-feature#261))
([8f82645](open-feature@8f82645))
* **deps:** update dependency dotnet-sdk to v8.0.301
([open-feature#271](open-feature#271))
([acd0385](open-feature@acd0385))
* **deps:** update dependency dotnet-sdk to v8.0.303
([open-feature#275](open-feature#275))
([871dcac](open-feature@871dcac))
* **deps:** update dependency dotnet-sdk to v8.0.400
([open-feature#295](open-feature#295))
([bb4f352](open-feature@bb4f352))
* **deps:** update dependency githubactionstestlogger to v2.4.1
([open-feature#274](open-feature#274))
([46c2b15](open-feature@46c2b15))
* **deps:** update dependency microsoft.net.test.sdk to v17.10.0
([open-feature#273](open-feature#273))
([581ff81](open-feature@581ff81))
* **deps:** update dotnet monorepo
([open-feature#218](open-feature#218))
([bc8301d](open-feature@bc8301d))
* **deps:** update xunit-dotnet monorepo
([open-feature#262](open-feature#262))
([43f14cc](open-feature@43f14cc))
* **deps:** update xunit-dotnet monorepo
([open-feature#279](open-feature#279))
([fb1cc66](open-feature@fb1cc66))
* **deps:** update xunit-dotnet monorepo to v2.8.1
([open-feature#266](open-feature#266))
([a7b6d85](open-feature@a7b6d85))
* Enable nullable reference types
([open-feature#253](open-feature#253))
([5a5312c](open-feature@5a5312c))
* in-memory UpdateFlags to UpdateFlagsAsync
([open-feature#298](open-feature#298))
([390205a](open-feature@390205a))
* prompt 2.0
([9b9c3fd](open-feature@9b9c3fd))
* Support for determining spec support for the repo
([open-feature#270](open-feature#270))
([67a1a0a](open-feature@67a1a0a))

---
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 <todd.baert@dynatrace.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
Signed-off-by: Artyom Tonoyan <artonoyan@servicetitan.com>
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.

Change EventMetadata type
5 participants