Skip to content

Conversation

@brian-chebon
Copy link
Member

This PR

  • Added _ImmediateReadyProvider as default provider (already READY, no initialization delay)
  • Fixed setProvider() to await provider initialization before completing, preventing race conditions
  • Added state checks in evaluateBooleanFlag() to short-circuit when provider not READY
  • Updated error handling to keep providers in ERROR state per OpenFeature specification

Signed-off-by: Jeremy Andrews <jandrews@venturseed.com>
Signed-off-by: Jeremy Andrews <jandrews@venturseed.com>
Signed-off-by: Jeremy Andrews <jandrews@venturseed.com>
Signed-off-by: Jeremy Andrews <jandrews@venturseed.com>
Signed-off-by: Jeremy Andrews <jandrews@venturseed.com>
Signed-off-by: Jeremy Andrews <jandrews@venturseed.com>
Signed-off-by: Jeremy Andrews <jandrews@venturseed.com>
Signed-off-by: Jeremy Andrews <jandrews@venturseed.com>
Signed-off-by: Jeremy Andrews <jandrews@venturseed.com>
Signed-off-by: Jeremy Andrews <jandrews@venturseed.com>
Signed-off-by: Jeremy Andrews <jandrews@venturseed.com>
Signed-off-by: Jeremy Andrews <jandrews@venturseed.com>
Signed-off-by: Jeremy Andrews <jandrews@venturseed.com>
Signed-off-by: Jeremy Andrews <jandrews@venturseed.com>
Signed-off-by: Jeremy Andrews <jandrews@venturseed.com>
Signed-off-by: Jeremy Andrews <jandrews@venturseed.com>
Signed-off-by: Jeremy Andrews <jandrews@venturseed.com>
Signed-off-by: Jeremy Andrews <jandrews@venturseed.com>
Signed-off-by: Jeremy Andrews <jandrews@venturseed.com>
Signed-off-by: Jeremy Andrews <jandrews@venturseed.com>
Signed-off-by: Jeremy Andrews <jandrews@venturseed.com>
Signed-off-by: Jeremy Andrews <jandrews@venturseed.com>
Signed-off-by: Jeremy Andrews <jandrews@venturseed.com>
Signed-off-by: Jeremy Andrews <jandrews@venturseed.com>
Signed-off-by: Jeremy Andrews <jandrews@venturseed.com>
Signed-off-by: Jeremy Andrews <jandrews@venturseed.com>
Signed-off-by: Jeremy Andrews <jandrews@venturseed.com>
Signed-off-by: Jeremy Andrews <jandrews@venturseed.com>
Signed-off-by: Jeremy Andrews <jandrews@venturseed.com>
Signed-off-by: Jeremy Andrews <jandrews@venturseed.com>
ABC2015 and others added 18 commits October 1, 2025 16:27
Signed-off-by: Jeremy Andrews <jandrews@venturseed.com>
## This PR

- Adds required ProviderMetadata getter with name field to
FeatureProvider interface
- Implements proper FlagEvaluationResult construction with variant,
errorCode, errorMessage fields
- Adds OpenFeature-compliant state transitions: NOT_READY → CONNECTING →
READY → SHUTDOWN
- Implements standardized error codes: FLAG_NOT_FOUND, TYPE_MISMATCH,
GENERAL, PROVIDER_NOT_READY
- Updates InMemoryProvider to return proper error results instead of
silent fallbacks

Signed-off-by: Brian Chebon <brianlchebon@gmail.com>
…en-feature#64)

- **NEW**: `CachedFeatureProvider` base class handles provider-level
caching
-  **UPDATED**: `InMemoryProvider` extends `CachedFeatureProvider`
- **REMOVED**: All cache methods from `FeatureClient` (`_cache`,
`_addToCache`, `_getFromCache`)
-  Provider returns proper "CACHED" reason codes
-  Only successful evaluations cached (errors return defaults)
-  Configurable cache (TTL, size, enable/disable)
-  **Client**: Hook execution, context merging, metrics, error handling
-  **Provider**: Flag resolution, caching, state management

---------

Signed-off-by: Brian Chebon <brianlchebon@gmail.com>
Signed-off-by: Jeremy Andrews <jandrews@venturseed.com>
Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
Signed-off-by: Usman <ubabar@venturseed.com>
Signed-off-by: ubabar123 <ubabar@venturseed.com>
Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
Signed-off-by: Brian Chebon <your.email@example.com>
Co-authored-by: Jeremy Andrews <jandrews@venturseed.com>
Co-authored-by: Michael Beemer <beeme1mr@users.noreply.github.com>
Co-authored-by: ubabar123 <ubabar@venturseed.com>
Co-authored-by: ABC2015 <6826984+ABC2015@users.noreply.github.com>
Co-authored-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
- Adds required ProviderMetadata getter with name field to
FeatureProvider interface
- Implements proper FlagEvaluationResult construction with variant,
errorCode, errorMessage fields
- Adds OpenFeature-compliant state transitions: NOT_READY → CONNECTING →
READY → SHUTDOWN
- Implements standardized error codes: FLAG_NOT_FOUND, TYPE_MISMATCH,
GENERAL, PROVIDER_NOT_READY
- Updates InMemoryProvider to return proper error results instead of
silent fallbacks

---------

Signed-off-by: Jeremy Andrews <jandrews@venturseed.com>
Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
Signed-off-by: Usman <ubabar@venturseed.com>
Signed-off-by: ubabar123 <ubabar@venturseed.com>
Signed-off-by: Brian Chebon <brianlchebon@gmail.com>
Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
Signed-off-by: Brian Chebon <your.email@example.com>
Co-authored-by: Jeremy Andrews <jandrews@venturseed.com>
Co-authored-by: Michael Beemer <beeme1mr@users.noreply.github.com>
Co-authored-by: ubabar123 <ubabar@venturseed.com>
Co-authored-by: ABC2015 <6826984+ABC2015@users.noreply.github.com>
Co-authored-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
- NEW: CachedFeatureProvider base class handles provider-level caching
- UPDATED: InMemoryProvider extends CachedFeatureProvider
- REMOVED: All cache methods from FeatureClient (_cache, _addToCache,
_getFromCache)
- Provider returns proper "CACHED" reason codes
- Only successful evaluations cached (errors return defaults)
- Configurable cache (TTL, size, enable/disable)
- Client: Hook execution, context merging, metrics, error handling
- Provider: Flag resolution, caching, state management
-

---------

Signed-off-by: Jeremy Andrews <jandrews@venturseed.com>
Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
Signed-off-by: Usman <ubabar@venturseed.com>
Signed-off-by: ubabar123 <ubabar@venturseed.com>
Signed-off-by: Brian Chebon <brianlchebon@gmail.com>
Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
Signed-off-by: Brian Chebon <your.email@example.com>
Co-authored-by: Jeremy Andrews <jandrews@venturseed.com>
Co-authored-by: Michael Beemer <beeme1mr@users.noreply.github.com>
Co-authored-by: ubabar123 <ubabar@venturseed.com>
Co-authored-by: ABC2015 <6826984+ABC2015@users.noreply.github.com>
Co-authored-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
🤖 I have created a release *beep* *boop*
---


##
[0.0.10](open-feature/dart-server-sdk@v0.0.9...v0.0.10)
(2025-06-16)


### 🧹 Chore

* development to main
([open-feature#62](open-feature#62))
([5d0cb78](open-feature@5d0cb78))

---
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: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
Signed-off-by: Jeremy Andrews <jandrews@venturseed.com>
Signed-off-by: Jeremy Andrews <jandrews@venturseed.com>
Signed-off-by: Jeremy Andrews <jandrews@venturseed.com>
- Cleans up CI workflow YAML (spacing/formatting).
- Raises the minimum Dart version in CI from 3.7.2 → 3.7.3.
- Updates the package SDK constraint in pubspec.yaml to ^3.9.2 and bumps
several deps.
- Fixes double-counting of provider errors in FeatureClient metrics
(removes a duplicated error-handling block).
- Performs minor code tidy-ups (remove stray newlines/comments).
- Syncs release metadata in README & manifest to v0.0.9 (but see
“Versioning inconsistencies” below).

---------

Signed-off-by: Jeremy Andrews <jandrews@venturseed.com>
Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
Signed-off-by: Usman <ubabar@venturseed.com>
Signed-off-by: ubabar123 <ubabar@venturseed.com>
Signed-off-by: Brian Chebon <brianlchebon@gmail.com>
Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
Signed-off-by: Brian Chebon <your.email@example.com>
Co-authored-by: Jeremy Andrews <jandrews@venturseed.com>
Co-authored-by: Michael Beemer <beeme1mr@users.noreply.github.com>
Co-authored-by: ubabar123 <ubabar@venturseed.com>
Co-authored-by: ABC2015 <6826984+ABC2015@users.noreply.github.com>
Co-authored-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
🤖 I have created a release *beep* *boop*
---


##
[0.0.11](open-feature/dart-server-sdk@v0.0.10...v0.0.11)
(2025-08-28)


### 🧹 Chore

* Development to Main
([open-feature#69](open-feature#69))
([d21c553](open-feature@d21c553))

---
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: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
Prepping the readme for inclusion on openfeature.dev

Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
Signed-off-by: ABC2015 <6826984+ABC2015@users.noreply.github.com>
Co-authored-by: ABC2015 <6826984+ABC2015@users.noreply.github.com>
🤖 I have created a release *beep* *boop*
---


##
[0.0.12](open-feature/dart-server-sdk@v0.0.11...v0.0.12)
(2025-08-30)


### 📚 Documentation

* update install version and links
([open-feature#68](open-feature#68))
([3f1f302](open-feature@3f1f302))

---
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: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
Signed-off-by: Jeremy Andrews <jandrews@venturseed.com>
Signed-off-by: Jeremy Andrews <jandrews@venturseed.com>
Signed-off-by: Jeremy Andrews <jandrews@venturseed.com>
## This PR

- Added `_ImmediateReadyProvider` as default provider (already READY, no
initialization delay)
- Fixed `setProvider()` to await provider initialization before
completing, preventing race conditions
- Added state checks in `evaluateBooleanFlag()` to short-circuit when
provider not READY
- Updated error handling to keep providers in ERROR state per
OpenFeature specification

---------

Signed-off-by: Brian Chebon <brianlchebon@gmail.com>
Signed-off-by: Jeremy Andrews <jandrews@venturseed.com>
@brian-chebon brian-chebon force-pushed the development branch 2 times, most recently from 62a9f59 to 3b730c9 Compare October 1, 2025 14:07
Signed-off-by: Brian Chebon <brianlchebon@gmail.com>
Signed-off-by: Brian Chebon <brianlchebon@gmail.com>
Signed-off-by: Brian Chebon <brianlchebon@gmail.com>
Signed-off-by: Brian Chebon <brianlchebon@gmail.com>
Copy link
Contributor

@ABC2015 ABC2015 left a comment

Choose a reason for hiding this comment

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

Reviewed PR release.

@ABC2015 ABC2015 added this pull request to the merge queue Oct 1, 2025
Merged via the queue into open-feature:main with commit ab1b015 Oct 1, 2025
15 of 16 checks passed
github-merge-queue bot pushed a commit that referenced this pull request Oct 1, 2025
🤖 I have created a release *beep* *boop*
---


##
[0.0.13](v0.0.12...v0.0.13)
(2025-10-01)


### 🧹 Chore

* development to main
([#77](#77))
([ab1b015](ab1b015))

---
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: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.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.

5 participants