Commit Graph

345 Commits

Author SHA1 Message Date
renovate[bot] 9ba08128cf
chore(deps): update dependency python to 3.14 (#342)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [python](https://redirect.github.com/actions/python-versions) |
uses-with | minor | `3.13` -> `3.14` |

---

### Release Notes

<details>
<summary>actions/python-versions (python)</summary>

###
[`v3.14.0`](https://redirect.github.com/actions/python-versions/releases/tag/3.14.0-18313368925):
3.14.0

[Compare
Source](https://redirect.github.com/actions/python-versions/compare/3.13.8-18331000654...3.14.0-18313368925)

Python 3.14.0

</details>

---

### Configuration

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

🚦 **Automerge**: Enabled.

♻ **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/spec).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xMzEuOSIsInVwZGF0ZWRJblZlciI6IjQxLjE0My4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJyZW5vdmF0ZSJdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-09 21:09:42 +00:00
renovate[bot] 10b9ba594f
chore(deps): update actions/checkout action to v5 (#333)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [actions/checkout](https://redirect.github.com/actions/checkout) |
action | major | `v4` -> `v5` |

---

### Release Notes

<details>
<summary>actions/checkout (actions/checkout)</summary>

### [`v5`](https://redirect.github.com/actions/checkout/compare/v4...v5)

[Compare
Source](https://redirect.github.com/actions/checkout/compare/v4...v5)

</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/spec).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS42MC40IiwidXBkYXRlZEluVmVyIjoiNDEuMTQzLjEiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbInJlbm92YXRlIl19-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-09 14:16:09 -04:00
Michael Beemer 25dac91f8a
chore: rename from log to event, clarify value requirements (#341)
Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2025-09-25 12:51:13 -04:00
renovate[bot] ece8b7ce04
chore(deps): update actions/setup-node action to v5 (#337)
Coming soon: The Renovate bot (GitHub App) will be renamed to Mend. PRs
from Renovate will soon appear from 'Mend'. Learn more
[here](https://redirect.github.com/renovatebot/renovate/discussions/37842).

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [actions/setup-node](https://redirect.github.com/actions/setup-node) |
action | major | `v4` -> `v5` |

---

### Release Notes

<details>
<summary>actions/setup-node (actions/setup-node)</summary>

###
[`v5`](https://redirect.github.com/actions/setup-node/compare/v4...v5)

[Compare
Source](https://redirect.github.com/actions/setup-node/compare/v4...v5)

</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 becomes conflicted, 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/spec).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS45MS4xIiwidXBkYXRlZEluVmVyIjoiNDEuMTMwLjEiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbInJlbm92YXRlIl19-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-25 11:17:02 -04:00
Todd Baert 65728e6975
feat: stabilize - evaluation, providers, harden - hooks, events, context (#314)
This PR: 

* stabilizes evaluation API
* stabilizes providers
* hardens hooks, events and context
* hardens all "static context" (client-side) points

This is a pretty substantial step.
`stable` means that we have no more leeway at all in SDKs - **any
breaking changes to the parts of the SDK implementing stable APIs means
a new major version of the SDK is required, without exception**.

I've also opted to "harden" the `static context paradigm` since we have
numerous client implementations in the wild, in particular React and
Angular, but also Android. There could still be breaking changes here
but the bar is higher. I think this is how we're acting already with
regards to these APIs, in all honesty.

I did not promote the [context
propagation](https://openfeature.dev/specification/sections/evaluation-context#33-context-propagation)
sub-section, or the new tracking section - these are _relatively_ new,
though I'm open to opinions on hardening these further.

Potential blockers:

- https://github.com/open-feature/go-sdk/issues/389
- https://github.com/open-feature/spec/issues/270

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2025-09-16 09:47:35 -04:00
Simon Schrottner 4542c3cdfe
fix: add additional tags for better filtering options (#339)
it is hard not to diverge between a cached and a stable response - so i
added an additional tag to separate both cases

Signed-off-by: Simon Schrottner <simon.schrottner@dynatrace.com>
2025-09-10 22:25:02 -04:00
Todd Baert a6dc4c7087
fix: gherkin error
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2025-09-10 10:38:54 -04:00
Simon Schrottner 43c36a988d
test: improve gherkin suite with spec information and testdata (#336)
Adding newer evaluation tests, in the usual style. Additionally i am
adding a json file with test data, so we do not need to manually create
it all the time, but could use a json parser

---------

Signed-off-by: Simon Schrottner <simon.schrottner@dynatrace.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2025-09-10 08:57:40 -04:00
renovate[bot] 969e11c4d5
chore(deps): update dependency python to 3.13 (#332)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [python](https://redirect.github.com/actions/python-versions) |
uses-with | minor | `3.12` -> `3.13` |

---

### Release Notes

<details>
<summary>actions/python-versions (python)</summary>

###
[`v3.13.6`](https://redirect.github.com/actions/python-versions/releases/tag/3.13.6-16792117939):
3.13.6

[Compare
Source](https://redirect.github.com/actions/python-versions/compare/3.13.5-15601068749...3.13.6-16792117939)

Python 3.13.6

###
[`v3.13.5`](https://redirect.github.com/actions/python-versions/releases/tag/3.13.5-15601068749):
3.13.5

[Compare
Source](https://redirect.github.com/actions/python-versions/compare/3.13.4-15433317575...3.13.5-15601068749)

Python 3.13.5

###
[`v3.13.4`](https://redirect.github.com/actions/python-versions/releases/tag/3.13.4-15433317575):
3.13.4

[Compare
Source](https://redirect.github.com/actions/python-versions/compare/3.13.3-14344076652...3.13.4-15433317575)

Python 3.13.4

###
[`v3.13.3`](https://redirect.github.com/actions/python-versions/releases/tag/3.13.3-14344076652):
3.13.3

[Compare
Source](https://redirect.github.com/actions/python-versions/compare/3.13.2-13708744326...3.13.3-14344076652)

Python 3.13.3

###
[`v3.13.2`](https://redirect.github.com/actions/python-versions/releases/tag/3.13.2-13708744326):
3.13.2

[Compare
Source](https://redirect.github.com/actions/python-versions/compare/3.13.1-13437882550...3.13.2-13708744326)

Python 3.13.2

###
[`v3.13.1`](https://redirect.github.com/actions/python-versions/releases/tag/3.13.1-13437882550):
3.13.1

[Compare
Source](https://redirect.github.com/actions/python-versions/compare/3.13.0-13707372259...3.13.1-13437882550)

Python 3.13.1

###
[`v3.13.0`](https://redirect.github.com/actions/python-versions/releases/tag/3.13.0-13707372259):
3.13.0

[Compare
Source](https://redirect.github.com/actions/python-versions/compare/3.12.11-15433310049...3.13.0-13707372259)

Python 3.13.0

</details>

---

### Configuration

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

🚦 **Automerge**: Enabled.

♻ **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/spec).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS42MC40IiwidXBkYXRlZEluVmVyIjoiNDEuNjAuNCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsicmVub3ZhdGUiXX0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-10 17:36:49 +00:00
Michael Beemer c4babd3051
docs: clarify evaluation context in hook requirements (#330)
## This PR

- clarify evaluation context in hook requirements

### Related Issues

Fixes #328

### Notes

I added the clarification in the non-normative section. Hopefully, this
addresses the ambiguity around what we mean by `evaluation context`.

Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2025-08-04 15:46:28 -04:00
Michael Beemer baec39b3fe
chore: address markdown lint issues (#327)
Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2025-07-21 14:10:01 -04:00
Todd Baert 2d4b27b116
feat: add point 1.6.2, 2.5.3 about shutdown details (#323)
This is a change that I suspect will have little practical impact for
most users, but helps disambiguate some behavior that recently caused
[issues](https://github.com/open-feature/go-sdk/issues/397) and
[confusion](https://github.com/open-feature/go-sdk/pull/400/files#r2191214490).

This is only one means of addressing this concern, so please don't
hesitate to put forward alternative proposals.

"Idempotent" may not be exactly the right word here, since it's only
idempotent within the scope of one execution of the life-cycle, so I'm
open to copy changes here as well.

# EDIT

⚠️ I've substantially changed this PR based on feedback, and
dismissed all approvals:

As @erka and others have pointed out, practically, `shutdown` has been
used for more than just cleaning up providers, it's also used frequently
to "reset" the API for testing purposes. I think this is a valid
use-case and I don't see any reason why it can't be added to what (at
least my understanding of) the original intent of the function was... so
I've changed 1.6.2 to say that the `shutdown` now also resets the state
of the API fully (removes hooks, providers, event handlers, etc) from
the API.

As @chrfwow noted (and I was concerned about as well) guaranteeing that
`shutdown` is not called while a provider is still starting up will be
tricky to implement. Instead I've changed 1.6.1 to say we will
unconditionally run shutdown on all providers, and also added a
recommendation that providers handle this gracefully in the provider
spec.

@sahidvelji I've also added a pre-amble about shutdown in general as you
requested.

@lukas-reining @erka @beeme1mr @sahidvelji @chrfwow  please re-review.

---------

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: Sahid Velji <sahidvelji@gmail.com>
2025-07-16 09:25:26 -04:00
Jonathan Norris 1e98b79719
docs(multi-provider): Document Track Method Support in Multi-Provider (#320)
## This PR

This PR updates the Multi-Provider documentation in the OpenFeature
specification to document the new `track` method support that was added
in [PR #1323](https://github.com/open-feature/js-sdk-contrib/pull/1323).

### 📚 New Documentation Sections

- **Track Method Support**: Added a section explaining how the
Multi-Provider implements tracking functionality
- **Introduction Section**: Updated use case examples to highlight
tracking capabilities
- **BaseEvaluationStrategy**: Added `shouldTrackWithThisProvider` method
to the abstract class

## Code Examples Added

```typescript
// Basic tracking usage
const multiProvider = new MultiProvider([
  { provider: new ProviderA() },
  { provider: new ProviderB() }
])

await OpenFeature.setProviderAndWait(multiProvider)
const client = OpenFeature.getClient()

// Track events across all ready providers
client.track('purchase', { targetingKey: 'user123' }, { value: 99.99, currency: 'USD' })
```

---------

Signed-off-by: Jonathan Norris <jonathan@taplytics.com>
2025-07-11 13:49:19 -04:00
Michael Beemer 224b26e44e
chore: add semcon value release info to appendix d (#324)
Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2025-07-10 13:37:33 -04:00
renovate[bot] a3678719bf
chore(deps): update dependency prettier to v3.6.2 (#322)
This PR contains the following updates:

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

---

### Release Notes

<details>
<summary>prettier/prettier (prettier)</summary>

###
[`v3.6.2`](https://redirect.github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#362)

[Compare
Source](https://redirect.github.com/prettier/prettier/compare/3.6.1...3.6.2)


[diff](https://redirect.github.com/prettier/prettier/compare/3.6.1...3.6.2)

##### Markdown: Add missing blank line around code block
([#&#8203;17675](https://redirect.github.com/prettier/prettier/pull/17675)
by [@&#8203;fisker](https://redirect.github.com/fisker))

<!-- prettier-ignore -->

````md
<!-- Input -->
1. Some text, and code block below, with newline after code block

   ```yaml
   ---
   foo: bar
   ```

   1. Another
   2. List

<!-- Prettier 3.6.1 -->
1. Some text, and code block below, with newline after code block

   ```yaml
   ---
   foo: bar
   ```
   1. Another
   2. List

<!-- Prettier 3.6.2 -->
1. Some text, and code block below, with newline after code block

   ```yaml
   ---
   foo: bar
   ```

   1. Another
   2. List
````

</details>

---

### Configuration

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

🚦 **Automerge**: Enabled.

♻ **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/spec).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MC42Mi4xIiwidXBkYXRlZEluVmVyIjoiNDAuNjIuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsicmVub3ZhdGUiXX0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-30 14:02:44 +00:00
renovate[bot] 705d086779
chore(deps): update dependency prettier to v3.6.1 (#321)
This PR contains the following updates:

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

---

### Release Notes

<details>
<summary>prettier/prettier (prettier)</summary>

###
[`v3.6.1`](https://redirect.github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#361)

[Compare
Source](https://redirect.github.com/prettier/prettier/compare/3.6.0...3.6.1)


[diff](https://redirect.github.com/prettier/prettier/compare/3.6.0...3.6.1)

##### TypeScript: Allow const without initializer
([#&#8203;17650](https://redirect.github.com/prettier/prettier/pull/17650),
[#&#8203;17654](https://redirect.github.com/prettier/prettier/pull/17654)
by [@&#8203;fisker](https://redirect.github.com/fisker))

<!-- prettier-ignore -->

```jsx
// Input
export const version: string;

// Prettier 3.6.0 (--parser=babel-ts)
SyntaxError: Unexpected token (1:21)
> 1 | export const version: string;
    |                     ^

// Prettier 3.6.0 (--parser=oxc-ts)
SyntaxError: Missing initializer in const declaration (1:14)
> 1 | export const version: string;
    |              ^^^^^^^^^^^^^^^

// Prettier 3.6.1
export const version: string;
```

##### Miscellaneous: Avoid closing files multiple times
([#&#8203;17665](https://redirect.github.com/prettier/prettier/pull/17665)
by [@&#8203;43081j](https://redirect.github.com/43081j))

When reading a file to infer the interpreter from a shebang, we use the
`n-readlines` library to read the first line in order to get the
shebang.

This library closes files when it reaches EOF, and we later try close
the same
files again. We now close files only if `n-readlines` did not already
close
them.

</details>

---

### Configuration

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

🚦 **Automerge**: Enabled.

♻ **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/spec).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MC42Mi4xIiwidXBkYXRlZEluVmVyIjoiNDAuNjIuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsicmVub3ZhdGUiXX0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-28 14:45:53 +00:00
renovate[bot] c37ac17c80
chore(deps): update dependency prettier to v3.6.0 (#319)
This PR contains the following updates:

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

---

### Release Notes

<details>
<summary>prettier/prettier (prettier)</summary>

###
[`v3.6.0`](https://redirect.github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#360)

[Compare
Source](https://redirect.github.com/prettier/prettier/compare/3.5.3...3.6.0)


[diff](https://redirect.github.com/prettier/prettier/compare/3.5.3...3.6.0)

🔗 [Release Notes](https://prettier.io/blog/2025/06/23/3.6.0)

</details>

---

### Configuration

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

🚦 **Automerge**: Enabled.

♻ **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/spec).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MC42Mi4xIiwidXBkYXRlZEluVmVyIjoiNDAuNjIuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsicmVub3ZhdGUiXX0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-26 13:36:17 +00:00
Todd Baert 1965aae810
fix: correct shutdown points after status removal (#317)
This is a minor point of clarification with no material changes.

When we removed `status` from the providers, we didn't migrate this
point to the evaluation API, as @fabriziodemaria pointed out
[here](https://github.com/open-feature/spec/issues/270).

Fixes: https://github.com/open-feature/spec/issues/270

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2025-06-23 13:10:32 -04:00
Todd Baert 42340bb9f5
fix: clarify hook ordering (#315)
This clarifies some ambiguity in hook execution order, mentioned in
https://github.com/open-feature/spec/issues/164:

> The issue here is that the overall hook execution order would vary if
any of these hooks have more than one entry. For example:
> 
> ```
> API = [A, B]
> Client = [C, D]
> Invocation = [E, F]
> Provider = [G, H]
> 
> # `before` list
> before_hooks = API + Client + Invocation + Provider
> 
> # spreading directly (like Python)
> list1 = Provider + Invocation + Client + API
> # results in [G, H, E, F, C, D, A, B]
> 
> # reversing the before list (like JavaScript)
> list2 = before_hooks[:]
> list2.reverse()
> # results in [H, G, F, E, D, C, B, A]
> ```

This change makes clear that `[H, G, F, E, D, C, B, A]` is the correct
answer here, which is the more intuitive choice, in my opinion.

This is also one of the few (only?) normative spec points that isn't a
single sentence, but instead has point-form clauses, so I've also
attempted to fix that.

I've work-shopped this with a few people and they interpreted it
correctly, though admittedly, the term "stack-wise" is doing a lot of
work here. I'm hopeful that our audience is familiar enough with that
sort of term that the intent is clear.

I believe there's a few SDKs where this is incorrectly implemented, I'll
audit those and create issues if this is merged. I don't expect that
such an implementation change will significantly impact anyone.

---------

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2025-06-11 12:11:23 -04:00
Sahid Velji cbfa0a9a78
docs: explicitly mark the Hooks section experimental (#312)
<!-- Please use this template for your pull request. -->
<!-- Please use the sections that you need and delete other sections -->

## This PR
<!-- add the description of the PR here -->

Even though the README says that no explicit status implies experimental
status, I think we should explicitly mark the Hooks section experimental
to align with the other sections.

### Related Issues
<!-- add here the GitHub issue that this PR resolves if applicable -->



### Notes
<!-- any additional notes for this PR -->

### Follow-up Tasks
<!-- anything that is related to this PR but not done here should be
noted under this section -->
<!-- if there is a need for a new issue, please link it here -->

### How to test
<!-- if applicable, add testing instructions under this section -->

Signed-off-by: Sahid Velji <sahidvelji@gmail.com>
2025-06-09 12:42:46 -04:00
Yoneo Arai bb2dc2ce32
Fix header for requirements (#311)
Signed-off-by: Yoneo Arai <yoneo.arai@split.io>
2025-06-05 12:15:57 -04:00
Sahid Velji f0148060e6
docs: fix typos (#310)
Signed-off-by: Sahid Velji <sahid.velji@capitalone.com>
2025-05-23 13:05:35 -04:00
Michael Beemer edf0debe0b
Add a codeowner, set TSC as the spec owner. (#308)
Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2025-05-13 17:01:37 -04:00
Michael Beemer c66684f030
feat!: update the observability appendix to include the latest otel semcon (#306)
Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2025-05-13 16:45:24 -04:00
Ryan Lamb d27e000b6c
fix: Broaden definition of hook data value types. (#307)
## This PR
Loosens the value definition for hook data.

In the example within the spec, and within the implementation in the
dotnet-sdk, the intent was to allow any type of data. For example
creating an open telemetry span in before, storing it hook data, and
ending it in after.

### Notes
Related to: https://github.com/open-feature/dotnet-sdk/pull/387

---------

Signed-off-by: Ryan Lamb <4955475+kinyoklion@users.noreply.github.com>
2025-04-24 18:57:14 -04:00
renovate[bot] 2ba05d89b5
chore(deps): update dependency markdownlint-cli to ^0.44.0 (#291)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[markdownlint-cli](https://redirect.github.com/igorshubovych/markdownlint-cli)
| [`^0.43.0` ->
`^0.44.0`](https://renovatebot.com/diffs/npm/markdownlint-cli/0.43.0/0.44.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/markdownlint-cli/0.44.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/markdownlint-cli/0.44.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/markdownlint-cli/0.43.0/0.44.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/markdownlint-cli/0.43.0/0.44.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>igorshubovych/markdownlint-cli (markdownlint-cli)</summary>

###
[`v0.44.0`](https://redirect.github.com/igorshubovych/markdownlint-cli/releases/tag/v0.44.0)

[Compare
Source](https://redirect.github.com/igorshubovych/markdownlint-cli/compare/v0.43.0...v0.44.0)

-   Update `markdownlint` dependency to `0.37.4`
    -   Convert module to ECMAScript (breaking change)
    -   Stop using `require`, convert to `import`
    -   Improve `MD032`
-   Update all dependencies via `Dependabot`

</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/spec).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xMjUuMSIsInVwZGF0ZWRJblZlciI6IjM5LjEyNS4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJyZW5vdmF0ZSJdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-24 11:21:40 -04:00
Todd Baert a5ba017a9c
chore: delete dupe CODEOWNERS
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2025-04-24 11:06:29 -04:00
renovate[bot] 36944c68dd
chore(deps): update dependency node to v22 (#300)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [node](https://redirect.github.com/actions/node-versions) | uses-with
| major | `18` -> `22` |

---

### Release Notes

<details>
<summary>actions/node-versions (node)</summary>

###
[`v22.14.0`](https://redirect.github.com/actions/node-versions/releases/tag/22.14.0-13265982013):
22.14.0

[Compare
Source](https://redirect.github.com/actions/node-versions/compare/22.13.1-12900459766...22.14.0-13265982013)

Node.js 22.14.0

###
[`v22.13.1`](https://redirect.github.com/actions/node-versions/releases/tag/22.13.1-12900459766):
22.13.1

[Compare
Source](https://redirect.github.com/actions/node-versions/compare/22.13.0-12671059536...22.13.1-12900459766)

Node.js 22.13.1

###
[`v22.13.0`](https://redirect.github.com/actions/node-versions/releases/tag/22.13.0-12671059536):
22.13.0

[Compare
Source](https://redirect.github.com/actions/node-versions/compare/22.12.0-12152383658...22.13.0-12671059536)

Node.js 22.13.0

###
[`v22.12.0`](https://redirect.github.com/actions/node-versions/releases/tag/22.12.0-12152383658):
22.12.0

[Compare
Source](https://redirect.github.com/actions/node-versions/compare/22.11.0-11593095476...22.12.0-12152383658)

Node.js 22.12.0

###
[`v22.11.0`](https://redirect.github.com/actions/node-versions/releases/tag/22.11.0-11593095476):
22.11.0

[Compare
Source](https://redirect.github.com/actions/node-versions/compare/22.10.0-11377615849...22.11.0-11593095476)

Node.js 22.11.0

###
[`v22.10.0`](https://redirect.github.com/actions/node-versions/releases/tag/22.10.0-11377615849):
22.10.0

[Compare
Source](https://redirect.github.com/actions/node-versions/compare/22.9.0-10914884886...22.10.0-11377615849)

Node.js 22.10.0

###
[`v22.9.0`](https://redirect.github.com/actions/node-versions/releases/tag/22.9.0-10914884886):
22.9.0

[Compare
Source](https://redirect.github.com/actions/node-versions/compare/22.8.0-10685632420...22.9.0-10914884886)

Node.js 22.9.0

###
[`v22.8.0`](https://redirect.github.com/actions/node-versions/releases/tag/22.8.0-10685632420):
22.8.0

[Compare
Source](https://redirect.github.com/actions/node-versions/compare/22.7.0-10511334152...22.8.0-10685632420)

Node.js 22.8.0

###
[`v22.7.0`](https://redirect.github.com/actions/node-versions/releases/tag/22.7.0-10511334152):
22.7.0

[Compare
Source](https://redirect.github.com/actions/node-versions/compare/22.6.0-10277432289...22.7.0-10511334152)

Node.js 22.7.0

###
[`v22.6.0`](https://redirect.github.com/actions/node-versions/releases/tag/22.6.0-10277432289):
22.6.0

[Compare
Source](https://redirect.github.com/actions/node-versions/compare/22.5.1-10010673511...22.6.0-10277432289)

Node.js 22.6.0

###
[`v22.5.1`](https://redirect.github.com/actions/node-versions/releases/tag/22.5.1-10010673511):
22.5.1

[Compare
Source](https://redirect.github.com/actions/node-versions/compare/22.5.0-9985144103...22.5.1-10010673511)

Node.js 22.5.1

###
[`v22.5.0`](https://redirect.github.com/actions/node-versions/releases/tag/22.5.0-9985144103):
22.5.0

[Compare
Source](https://redirect.github.com/actions/node-versions/compare/22.4.1-9860948056...22.5.0-9985144103)

Node.js 22.5.0

###
[`v22.4.1`](https://redirect.github.com/actions/node-versions/releases/tag/22.4.1-9860948056):
22.4.1

[Compare
Source](https://redirect.github.com/actions/node-versions/compare/22.4.0-9766506602...22.4.1-9860948056)

Node.js 22.4.1

###
[`v22.4.0`](https://redirect.github.com/actions/node-versions/releases/tag/22.4.0-9766506602):
22.4.0

[Compare
Source](https://redirect.github.com/actions/node-versions/compare/22.3.0-9569309553...22.4.0-9766506602)

Node.js 22.4.0

###
[`v22.3.0`](https://redirect.github.com/actions/node-versions/releases/tag/22.3.0-9569309553):
22.3.0

[Compare
Source](https://redirect.github.com/actions/node-versions/compare/22.2.0-9105861751...22.3.0-9569309553)

Node.js 22.3.0

###
[`v22.2.0`](https://redirect.github.com/actions/node-versions/releases/tag/22.2.0-9105861751):
22.2.0

[Compare
Source](https://redirect.github.com/actions/node-versions/compare/22.1.0-8926142033...22.2.0-9105861751)

Node.js 22.2.0

###
[`v22.1.0`](https://redirect.github.com/actions/node-versions/releases/tag/22.1.0-8926142033):
22.1.0

[Compare
Source](https://redirect.github.com/actions/node-versions/compare/22.0.0-8879734543...22.1.0-8926142033)

Node.js 22.1.0

###
[`v22.0.0`](https://redirect.github.com/actions/node-versions/releases/tag/22.0.0-8879734543):
22.0.0

[Compare
Source](https://redirect.github.com/actions/node-versions/compare/20.18.3-13244516310...22.0.0-8879734543)

Node.js 22.0.0

###
[`v20.18.3`](https://redirect.github.com/actions/node-versions/releases/tag/20.18.3-13244516310):
20.18.3

[Compare
Source](https://redirect.github.com/actions/node-versions/compare/20.18.2-12900461873...20.18.3-13244516310)

Node.js 20.18.3

###
[`v20.18.2`](https://redirect.github.com/actions/node-versions/releases/tag/20.18.2-12900461873):
20.18.2

[Compare
Source](https://redirect.github.com/actions/node-versions/compare/20.18.1-11936931582...20.18.2-12900461873)

Node.js 20.18.2

###
[`v20.18.1`](https://redirect.github.com/actions/node-versions/releases/tag/20.18.1-11936931582):
20.18.1

[Compare
Source](https://redirect.github.com/actions/node-versions/compare/20.18.0-11182621166...20.18.1-11936931582)

Node.js 20.18.1

###
[`v20.18.0`](https://redirect.github.com/actions/node-versions/releases/tag/20.18.0-11182621166):
20.18.0

[Compare
Source](https://redirect.github.com/actions/node-versions/compare/20.17.0-10501110630...20.18.0-11182621166)

Node.js 20.18.0

###
[`v20.17.0`](https://redirect.github.com/actions/node-versions/releases/tag/20.17.0-10501110630):
20.17.0

[Compare
Source](https://redirect.github.com/actions/node-versions/compare/20.16.0-10080284600...20.17.0-10501110630)

Node.js 20.17.0

###
[`v20.16.0`](https://redirect.github.com/actions/node-versions/releases/tag/20.16.0-10080284600):
20.16.0

[Compare
Source](https://redirect.github.com/actions/node-versions/compare/20.15.1-9860950555...20.16.0-10080284600)

Node.js 20.16.0

###
[`v20.15.1`](https://redirect.github.com/actions/node-versions/releases/tag/20.15.1-9860950555):
20.15.1

[Compare
Source](https://redirect.github.com/actions/node-versions/compare/20.15.0-9607683765...20.15.1-9860950555)

Node.js 20.15.1

###
[`v20.15.0`](https://redirect.github.com/actions/node-versions/releases/tag/20.15.0-9607683765):
20.15.0

[Compare
Source](https://redirect.github.com/actions/node-versions/compare/20.14.0-9279690001...20.15.0-9607683765)

Node.js 20.15.0

###
[`v20.14.0`](https://redirect.github.com/actions/node-versions/releases/tag/20.14.0-9279690001):
20.14.0

[Compare
Source](https://redirect.github.com/actions/node-versions/compare/20.13.1-9021092103...20.14.0-9279690001)

Node.js 20.14.0

###
[`v20.13.1`](https://redirect.github.com/actions/node-versions/releases/tag/20.13.1-9021092103):
20.13.1

[Compare
Source](https://redirect.github.com/actions/node-versions/compare/20.13.0-8995628607...20.13.1-9021092103)

Node.js 20.13.1

###
[`v20.13.0`](https://redirect.github.com/actions/node-versions/releases/tag/20.13.0-8995628607):
20.13.0

[Compare
Source](https://redirect.github.com/actions/node-versions/compare/20.12.2-8647736879...20.13.0-8995628607)

Node.js 20.13.0

###
[`v20.12.2`](https://redirect.github.com/actions/node-versions/releases/tag/20.12.2-8647736879):
20.12.2

[Compare
Source](https://redirect.github.com/actions/node-versions/compare/20.12.1-8541409420...20.12.2-8647736879)

Node.js 20.12.2

###
[`v20.12.1`](https://redirect.github.com/actions/node-versions/releases/tag/20.12.1-8541409420):
20.12.1

[Compare
Source](https://redirect.github.com/actions/node-versions/compare/20.12.0-8446029429...20.12.1-8541409420)

Node.js 20.12.1

###
[`v20.12.0`](https://redirect.github.com/actions/node-versions/releases/tag/20.12.0-8446029429):
20.12.0

[Compare
Source](https://redirect.github.com/actions/node-versions/compare/20.11.1-7910924545...20.12.0-8446029429)

Node.js 20.12.0

###
[`v20.11.1`](https://redirect.github.com/actions/node-versions/releases/tag/20.11.1-7910924545):
20.11.1

[Compare
Source](https://redirect.github.com/actions/node-versions/compare/20.11.0-7531642937...20.11.1-7910924545)

Node.js 20.11.1

###
[`v20.11.0`](https://redirect.github.com/actions/node-versions/releases/tag/20.11.0-7531642937):
20.11.0

[Compare
Source](https://redirect.github.com/actions/node-versions/compare/20.10.0-6972104774...20.11.0-7531642937)

Node.js 20.11.0

###
[`v20.10.0`](https://redirect.github.com/actions/node-versions/releases/tag/20.10.0-6972104774):
20.10.0

[Compare
Source](https://redirect.github.com/actions/node-versions/compare/20.9.0-6797996195...20.10.0-6972104774)

Node.js 20.10.0

###
[`v20.9.0`](https://redirect.github.com/actions/node-versions/releases/tag/20.9.0-6797996195):
20.9.0

[Compare
Source](https://redirect.github.com/actions/node-versions/compare/20.8.1-6529388730...20.9.0-6797996195)

Node.js 20.9.0

###
[`v20.8.1`](https://redirect.github.com/actions/node-versions/releases/tag/20.8.1-6529388730):
20.8.1

[Compare
Source](https://redirect.github.com/actions/node-versions/compare/20.8.0-6353460105...20.8.1-6529388730)

Node.js 20.8.1

###
[`v20.8.0`](https://redirect.github.com/actions/node-versions/releases/tag/20.8.0-6353460105):
20.8.0

[Compare
Source](https://redirect.github.com/actions/node-versions/compare/20.7.0-6231175880...20.8.0-6353460105)

Node.js 20.8.0

###
[`v20.7.0`](https://redirect.github.com/actions/node-versions/releases/tag/20.7.0-6231175880):
20.7.0

[Compare
Source](https://redirect.github.com/actions/node-versions/compare/20.6.1-6142062498...20.7.0-6231175880)

Node.js 20.7.0

###
[`v20.6.1`](https://redirect.github.com/actions/node-versions/releases/tag/20.6.1-6142062498):
20.6.1

[Compare
Source](https://redirect.github.com/actions/node-versions/compare/20.6.0-6092715008...20.6.1-6142062498)

Node.js 20.6.1

###
[`v20.6.0`](https://redirect.github.com/actions/node-versions/releases/tag/20.6.0-6092715008):
20.6.0

[Compare
Source](https://redirect.github.com/actions/node-versions/compare/20.5.1-5819736097...20.6.0-6092715008)

Node.js 20.6.0

###
[`v20.5.1`](https://redirect.github.com/actions/node-versions/releases/tag/20.5.1-5819736097):
20.5.1

[Compare
Source](https://redirect.github.com/actions/node-versions/compare/20.5.0-5619267642...20.5.1-5819736097)

Node.js 20.5.1

###
[`v20.5.0`](https://redirect.github.com/actions/node-versions/releases/tag/20.5.0-5619267642):
20.5.0

[Compare
Source](https://redirect.github.com/actions/node-versions/compare/20.4.0-5484146983...20.5.0-5619267642)

Node.js 20.5.0

###
[`v20.4.0`](https://redirect.github.com/actions/node-versions/releases/tag/20.4.0-5484146983):
20.4.0

[Compare
Source](https://redirect.github.com/actions/node-versions/compare/20.3.1-5342956167...20.4.0-5484146983)

Node.js 20.4.0

###
[`v20.3.1`](https://redirect.github.com/actions/node-versions/releases/tag/20.3.1-5342956167):
20.3.1

[Compare
Source](https://redirect.github.com/actions/node-versions/compare/20.3.0-5218671512...20.3.1-5342956167)

Node.js 20.3.1

###
[`v20.3.0`](https://redirect.github.com/actions/node-versions/releases/tag/20.3.0-5218671512):
20.3.0

[Compare
Source](https://redirect.github.com/actions/node-versions/compare/20.2.0-4994802831...20.3.0-5218671512)

Node.js 20.3.0

###
[`v20.2.0`](https://redirect.github.com/actions/node-versions/releases/tag/20.2.0-4994802831):
20.2.0

[Compare
Source](https://redirect.github.com/actions/node-versions/compare/20.1.0-4890533026...20.2.0-4994802831)

Node.js 20.2.0

###
[`v20.1.0`](https://redirect.github.com/actions/node-versions/releases/tag/20.1.0-4890533026):
20.1.0

[Compare
Source](https://redirect.github.com/actions/node-versions/compare/20.0.0-4805425216...20.1.0-4890533026)

Node.js 20.1.0

###
[`v20.0.0`](https://redirect.github.com/actions/node-versions/releases/tag/20.0.0-4805425216):
20.0.0

[Compare
Source](https://redirect.github.com/actions/node-versions/compare/18.20.7-13438827950...20.0.0-4805425216)

Node.js 20.0.0

</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/spec).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xOTQuMSIsInVwZGF0ZWRJblZlciI6IjM5LjE5NC4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJyZW5vdmF0ZSJdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-23 14:03:38 -04:00
Jonathan Norris 18cde1708e
chore: update multi-provider spec docs (#305)
Signed-off-by: Jonathan Norris <jonathan@taplytics.com>
2025-04-14 13:29:27 -04:00
alexandraoberaigner 27e4461b45
fix(docs): change tracking code example to use proper java syntax (#299)
## This PR
just fixes the java syntax in the providers tracking code example

Signed-off-by: Alexandra Oberaigner <alexandra.oberaigner@dynatrace.com>
2025-03-24 19:52:34 -04:00
André Silva 130df3eb61
fix: Clarify scenario descriptions in context merging feature (#304)
<!-- Please use this template for your pull request. -->
<!-- Please use the sections that you need and delete other sections -->

## This PR
<!-- add the description of the PR here -->

This pull request includes updates to the
`specification/assets/gherkin/contextMerging.feature` file to improve
the clarity of scenario descriptions by specifying the context
(transaction, hook, or both) in which the context entries are added or
overwritten.

Changes to scenario descriptions:

* Updated the scenario description to specify that the context entry is
added for a transaction.
* Updated the scenario description to specify that the context entry is
added for a hook.
* Updated the scenario description to specify that the context entry is
added for both a transaction and a hook.
* Updated the scenario outline description to specify that the context
entry overwrites values for a transaction.
* Updated the scenario outline description to specify that the context
entry overwrites values for a hook.
* Updated the scenario outline description to specify that the context
entry overwrites values for both a transaction and a hook.

### Related Issues
<!-- add here the GitHub issue that this PR resolves if applicable -->

Fixes #303

Signed-off-by: André Silva <2493377+askpt@users.noreply.github.com>
2025-03-24 12:56:03 -04:00
renovate[bot] aad6193d77
chore(deps): update dependency markdown-link-check to v3.13.7 (#301)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[markdown-link-check](https://redirect.github.com/tcort/markdown-link-check)
| [`3.12.2` ->
`3.13.7`](https://renovatebot.com/diffs/npm/markdown-link-check/3.12.2/3.13.7)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/markdown-link-check/3.13.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/markdown-link-check/3.13.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/markdown-link-check/3.12.2/3.13.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/markdown-link-check/3.12.2/3.13.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>tcort/markdown-link-check (markdown-link-check)</summary>

###
[`v3.13.7`](https://redirect.github.com/tcort/markdown-link-check/blob/HEAD/CHANGELOG.md#Version-3137)

[Compare
Source](https://redirect.github.com/tcort/markdown-link-check/compare/v3.13.6...v3.13.7)

- Do not override reporter option if not defined in config file (issue
[#&#8203;369](https://redirect.github.com/tcort/markdown-link-check/issues/369))
by [@&#8203;smainil](https://redirect.github.com/smainil) in
[https://github.com/tcort/markdown-link-check/pull/372](https://redirect.github.com/tcort/markdown-link-check/pull/372)
- chore(deps-dev): bump eslint from 9.14.0 to 9.20.0 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/tcort/markdown-link-check/pull/408](https://redirect.github.com/tcort/markdown-link-check/pull/408)
- chore(deps-dev): bump
[@&#8203;eslint/js](https://redirect.github.com/eslint/js) from 9.14.0
to 9.20.0 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/tcort/markdown-link-check/pull/407](https://redirect.github.com/tcort/markdown-link-check/pull/407)
- chore(deps-dev): bump express from 4.21.1 to 4.21.2 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/tcort/markdown-link-check/pull/383](https://redirect.github.com/tcort/markdown-link-check/pull/383)
- chore(deps): bump proxy-agent from 6.4.0 to 6.5.0 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/tcort/markdown-link-check/pull/384](https://redirect.github.com/tcort/markdown-link-check/pull/384)
- chore(deps): bump chalk from 5.3.0 to 5.4.1 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/tcort/markdown-link-check/pull/392](https://redirect.github.com/tcort/markdown-link-check/pull/392)
- chore(deps-dev): bump globals from 15.12.0 to 15.14.0 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/tcort/markdown-link-check/pull/391](https://redirect.github.com/tcort/markdown-link-check/pull/391)
- chore(deps-dev): bump
[@&#8203;eslint/js](https://redirect.github.com/eslint/js) from 9.20.0
to 9.21.0 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/tcort/markdown-link-check/pull/414](https://redirect.github.com/tcort/markdown-link-check/pull/414)
- chore(deps-dev): bump mocha from 10.8.2 to 11.1.0 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/tcort/markdown-link-check/pull/399](https://redirect.github.com/tcort/markdown-link-check/pull/399)
- chore(deps): bump commander from 12.1.0 to 13.1.0 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/tcort/markdown-link-check/pull/400](https://redirect.github.com/tcort/markdown-link-check/pull/400)
- chore(deps-dev): bump eslint from 9.20.0 to 9.21.0 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/tcort/markdown-link-check/pull/419](https://redirect.github.com/tcort/markdown-link-check/pull/419)
- chore(deps-dev): bump globals from 15.14.0 to 16.0.0 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/tcort/markdown-link-check/pull/418](https://redirect.github.com/tcort/markdown-link-check/pull/418)
- chore(deps-dev): bump
[@&#8203;eslint/js](https://redirect.github.com/eslint/js) from 9.21.0
to 9.22.0 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/tcort/markdown-link-check/pull/426](https://redirect.github.com/tcort/markdown-link-check/pull/426)
- chore(deps-dev): bump eslint from 9.21.0 to 9.22.0 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/tcort/markdown-link-check/pull/425](https://redirect.github.com/tcort/markdown-link-check/pull/425)

###
[`v3.13.6`](https://redirect.github.com/tcort/markdown-link-check/blob/HEAD/CHANGELOG.md#Version-3136)

[Compare
Source](https://redirect.github.com/tcort/markdown-link-check/compare/v3.13.5...v3.13.6)

-   fix: move script back to its original location

###
[`v3.13.5`](https://redirect.github.com/tcort/markdown-link-check/blob/HEAD/CHANGELOG.md#Version-3135)

[Compare
Source](https://redirect.github.com/tcort/markdown-link-check/compare/v3.13.4...v3.13.5)

- fix: MODULE_NOT_FOUND error
[#&#8203;368](https://redirect.github.com/tcort/markdown-link-check/issues/368)

###
[`v3.13.4`](https://redirect.github.com/tcort/markdown-link-check/blob/HEAD/CHANGELOG.md#Version-3134)

[Compare
Source](https://redirect.github.com/tcort/markdown-link-check/compare/v3.13.3...v3.13.4)

- fix: MODULE_NOT_FOUND error
[#&#8203;368](https://redirect.github.com/tcort/markdown-link-check/issues/368)

###
[`v3.13.3`](https://redirect.github.com/tcort/markdown-link-check/blob/HEAD/CHANGELOG.md#Version-3133)

[Compare
Source](https://redirect.github.com/tcort/markdown-link-check/compare/v3.13.2...v3.13.3)

- fix: MODULE_NOT_FOUND error
[#&#8203;368](https://redirect.github.com/tcort/markdown-link-check/issues/368)

###
[`v3.13.2`](https://redirect.github.com/tcort/markdown-link-check/blob/HEAD/CHANGELOG.md#Version-3132)

[Compare
Source](https://redirect.github.com/tcort/markdown-link-check/compare/v3.13.1...v3.13.2)

- fix: MODULE_NOT_FOUND error
[#&#8203;368](https://redirect.github.com/tcort/markdown-link-check/issues/368)

###
[`v3.13.1`](https://redirect.github.com/tcort/markdown-link-check/blob/HEAD/CHANGELOG.md#Version-3131)

[Compare
Source](https://redirect.github.com/tcort/markdown-link-check/compare/v3.13.0...v3.13.1)

- fix: MODULE_NOT_FOUND error
[#&#8203;368](https://redirect.github.com/tcort/markdown-link-check/issues/368)

###
[`v3.13.0`](https://redirect.github.com/tcort/markdown-link-check/blob/HEAD/CHANGELOG.md#Version-3130)

[Compare
Source](https://redirect.github.com/tcort/markdown-link-check/compare/v3.12.2...v3.13.0)

- feat: anchor link checks support HTML tags like `<a name="foo"></a>`
[#&#8203;331](https://redirect.github.com/tcort/markdown-link-check/issues/331)
[@&#8203;dklimpel](https://redirect.github.com/dklimpel)
-  add support for additional test reporters
[#&#8203;364](https://redirect.github.com/tcort/markdown-link-check/issues/364)
[@&#8203;dudeofawesome](https://redirect.github.com/dudeofawesome)
- feat: support iterate link check over directories in CLI
[#&#8203;334](https://redirect.github.com/tcort/markdown-link-check/issues/334)
[@&#8203;dklimpel](https://redirect.github.com/dklimpel)
- Update hook names
[#&#8203;366](https://redirect.github.com/tcort/markdown-link-check/issues/366)
[@&#8203;henrygerardmoore](https://redirect.github.com/henrygerardmoore)
- chore(deps): remove lodash
[#&#8203;332](https://redirect.github.com/tcort/markdown-link-check/issues/332)
[@&#8203;dklimpel](https://redirect.github.com/dklimpel)
- fix: add used `@eslint/js` to dev dependencies in package.json
[#&#8203;330](https://redirect.github.com/tcort/markdown-link-check/issues/330)
[@&#8203;dklimpel](https://redirect.github.com/dklimpel)
- fix: remove not used const url
[#&#8203;329](https://redirect.github.com/tcort/markdown-link-check/issues/329)
[@&#8203;dklimpel](https://redirect.github.com/dklimpel)
- feat: add support for unicode characters in anchor links
[#&#8203;328](https://redirect.github.com/tcort/markdown-link-check/issues/328)
[@&#8203;dklimpel](https://redirect.github.com/dklimpel)
- docs(readme): explain named regex groups in replacementPatterns
[#&#8203;327](https://redirect.github.com/tcort/markdown-link-check/issues/327)
[@&#8203;AndreyNautilus](https://redirect.github.com/AndreyNautilus)
- ci: bump nodejs
[#&#8203;367](https://redirect.github.com/tcort/markdown-link-check/issues/367)
[@&#8203;dklimpel](https://redirect.github.com/dklimpel)
-   update dependencies

</details>

---

### Configuration

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

🚦 **Automerge**: Enabled.

♻ **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/spec).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yMDAuMCIsInVwZGF0ZWRJblZlciI6IjM5LjIwMC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJyZW5vdmF0ZSJdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-14 14:44:00 +00:00
renovate[bot] 09aef37063
chore(deps): update dependency prettier to v3.5.3 (#298)
This PR contains the following updates:

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

---

### Release Notes

<details>
<summary>prettier/prettier (prettier)</summary>

###
[`v3.5.3`](https://redirect.github.com/prettier/prettier/compare/3.5.2...b51ba9d46765bcfab714ebca982bd04ad25ae562)

[Compare
Source](https://redirect.github.com/prettier/prettier/compare/3.5.2...3.5.3)

</details>

---

### Configuration

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

🚦 **Automerge**: Enabled.

♻ **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/spec).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xODUuNCIsInVwZGF0ZWRJblZlciI6IjM5LjE4NS40IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJyZW5vdmF0ZSJdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-06 06:22:08 +00:00
chrfwow 25c57ee7b6
feat: Add new test suite for context merging (#293)
## This PR
Adds gherkin tests to verify the merging order of contexts:
https://openfeature.dev/specification/sections/evaluation-context/#requirement-323

See https://github.com/open-feature/flagd-testbed/issues/13

---------

Signed-off-by: christian.lutnik <christian.lutnik@dynatrace.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2025-03-05 21:12:46 -05:00
renovate[bot] 0cd553d85f
chore(deps): update dependency prettier to v3.5.2 (#297)
This PR contains the following updates:

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

---

### Release Notes

<details>
<summary>prettier/prettier (prettier)</summary>

###
[`v3.5.2`](https://redirect.github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#352)

[Compare
Source](https://redirect.github.com/prettier/prettier/compare/3.5.1...3.5.2)


[diff](https://redirect.github.com/prettier/prettier/compare/3.5.1...3.5.2)

##### Remove `module-sync` condition
([#&#8203;17156](https://redirect.github.com/prettier/prettier/pull/17156)
by [@&#8203;fisker](https://redirect.github.com/fisker))

In Prettier 3.5.0, [we added `module-sync` condition to
`package.json`](https://prettier.io/blog/2025/02/09/3.5.0#use-esm-entrypoint-for-requireesm-16958-by-tats-u),
so that `require("prettier")` can use ESM version, but turns out it
doesn't work if CommonJS and ESM plugins both imports builtin plugins.
To solve this problem, we decide simply remove the `module-sync`
condition, so `require("prettier")` will still use the CommonJS version,
we'll revisit until `require(ESM)` feature is more stable.

</details>

---

### Configuration

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

🚦 **Automerge**: Enabled.

♻ **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/spec).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xNzYuMiIsInVwZGF0ZWRJblZlciI6IjM5LjE3Ni4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJyZW5vdmF0ZSJdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-25 13:36:09 +00:00
renovate[bot] a69f748db2
chore(deps): update dependency prettier to v3.5.1 (#296)
This PR contains the following updates:

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

---

### Release Notes

<details>
<summary>prettier/prettier (prettier)</summary>

###
[`v3.5.1`](https://redirect.github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#351)

[Compare
Source](https://redirect.github.com/prettier/prettier/compare/3.5.0...3.5.1)


[diff](https://redirect.github.com/prettier/prettier/compare/3.5.0...3.5.1)

##### Fix CLI crash when cache for old version exists
([#&#8203;17100](https://redirect.github.com/prettier/prettier/pull/17100)
by [@&#8203;sosukesuzuki](https://redirect.github.com/sosukesuzuki))

Prettier 3.5 uses a different cache format than previous versions,
Prettier 3.5.0 crashes when reading existing cache file, Prettier 3.5.1
fixed the problem.

##### Support dockercompose and github-actions-workflow in VSCode
([#&#8203;17101](https://redirect.github.com/prettier/prettier/pull/17101)
by [@&#8203;remcohaszing](https://redirect.github.com/remcohaszing))

Prettier now supports the `dockercompose` and `github-actions-workflow`
languages in Visual Studio Code.

</details>

---

### Configuration

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

🚦 **Automerge**: Enabled.

♻ **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/spec).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xNjcuMSIsInVwZGF0ZWRJblZlciI6IjM5LjE2Ny4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJyZW5vdmF0ZSJdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-16 22:34:05 +00:00
renovate[bot] 54952f3b54
chore(deps): update dependency prettier to v3.5.0 (#295)
This PR contains the following updates:

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

---

### Release Notes

<details>
<summary>prettier/prettier (prettier)</summary>

###
[`v3.5.0`](https://redirect.github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#350)

[Compare
Source](https://redirect.github.com/prettier/prettier/compare/3.4.2...3.5.0)


[diff](https://redirect.github.com/prettier/prettier/compare/3.4.2...3.5.0)

🔗 [Release Notes](https://prettier.io/blog/2025/02/09/3.5.0.html)

</details>

---

### Configuration

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

🚦 **Automerge**: Enabled.

♻ **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/spec).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xNjcuMSIsInVwZGF0ZWRJblZlciI6IjM5LjE2Ny4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJyZW5vdmF0ZSJdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-12 20:03:34 +00:00
chrfwow be56f22af9
noissue: fix the test hook behaviour on type error (#294)
Signed-off-by: christian.lutnik <christian.lutnik@dynatrace.com>
2025-02-10 09:35:49 -05:00
chrfwow 95fe981d9e
Add gherkin tests to verify evaluation details in finally hooks (#290)
Signed-off-by: christian.lutnik <christian.lutnik@dynatrace.com>
2025-02-07 14:06:35 -05:00
Michael Beemer 8d6eeb3247
chore!: remove flag type property, add requirement level and footnotes (#292)
Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2025-02-03 11:45:24 -05:00
chrfwow 5b07065985
feat: Update test harness with metadata assertions #1467 (#289)
## This PR
Adds gherkin test to verify that flag evaluations provide metadata

### Related Issues

Part of #1467
([https://github.com/open-feature/flagd/issues/1467](https://github.com/open-feature/flagd/issues/1467))

### Follow-up Tasks
Implement steps of the gherkin file in the repositories, and add test
data according to the issue

---------

Signed-off-by: christian.lutnik <christian.lutnik@dynatrace.com>
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: Simon Schrottner <simon.schrottner@dynatrace.com>
2025-01-27 09:10:20 -05:00
Todd Baert 6c673d7716
feat: add appendix D (observability) (#287)
- adds small appendix section to spec that defines how particular SDK
fields are mapped to the recently merge OTel semantics
- this allows providers and hooks to export OTel data consistently for
easy interop
- adds a couple supporting glossary liks

---------

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2025-01-15 14:14:51 -05:00
Ryan Lamb c287b5844a
feat: Add hook-data concept for hooks. (#273)
<!-- Please use this template for your pull request. -->
<!-- Please use the sections that you need and delete other sections -->

## This PR
<!-- add the description of the PR here -->

Add support for the hook-data concept for hooks. Hook-data allows for
per-evaluation data to be propagated between hooks.

This is especially useful for analytics purposes where you may want to
measure things that happen between stages, or you want to do something
like create a span in one stage and close it in another.

This concept is similar to the `series data` concept for LaunchDarkly
hooks.
https://github.com/launchdarkly/open-sdk-specs/tree/main/specs/HOOK-hooks#evaluationseriesdata

Unlike `series data` the data in this approach is mutable. This is
because the `before` stage already has a return value. We could
workaround this by specifying a return structure, but it maybe seems
more complex. The data is only passed to a specific hook instance, so
mutability is not of great concern.

Some functional languages may still need to use an immutable with return
values approach.

I can create an OFEP if we think this merits discussion prior to
proposal.

### Related Issues
<!-- add here the GitHub issue that this PR resolves if applicable -->
Related discussion in a PR comment.

https://github.com/open-feature/java-sdk/pull/1049#discussion_r1718895742

---------

Signed-off-by: Ryan Lamb <4955475+kinyoklion@users.noreply.github.com>
Co-authored-by: Michael Beemer <beeme1mr@users.noreply.github.com>
Co-authored-by: Lukas Reining <lukas.reining@codecentric.de>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2025-01-15 09:29:09 -05:00
renovate[bot] d261f68331
chore(deps): update dependency markdownlint-cli to ^0.43.0 (#257)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[markdownlint-cli](https://redirect.github.com/igorshubovych/markdownlint-cli)
| [`^0.39.0` ->
`^0.43.0`](https://renovatebot.com/diffs/npm/markdownlint-cli/0.39.0/0.43.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/markdownlint-cli/0.43.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/markdownlint-cli/0.43.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/markdownlint-cli/0.39.0/0.43.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/markdownlint-cli/0.39.0/0.43.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>igorshubovych/markdownlint-cli (markdownlint-cli)</summary>

###
[`v0.43.0`](https://redirect.github.com/igorshubovych/markdownlint-cli/compare/v0.42.0...v0.43.0)

[Compare
Source](https://redirect.github.com/igorshubovych/markdownlint-cli/compare/v0.42.0...v0.43.0)

###
[`v0.42.0`](https://redirect.github.com/igorshubovych/markdownlint-cli/releases/tag/v0.42.0)

[Compare
Source](https://redirect.github.com/igorshubovych/markdownlint-cli/compare/v0.41.0...v0.42.0)

-   Update `markdownlint` dependency to `0.35.0`
    -   Add `MD058`/`blanks-around-tables`
- Use `micromark` in
`MD001`/`MD003`/`MD009`/`MD010`/`MD013`/`MD014`/`MD019`/`MD021`/`MD023`/`MD024`/`MD025`/`MD039`/`MD042`/`MD043`
    -   Improve `MD018`/`MD020`/`MD031`/`MD034`/`MD044`
    -   `markdown-it` parser no longer invoked by default
    -   Improve performance
-   Update all dependencies via `Dependabot`

###
[`v0.41.0`](https://redirect.github.com/igorshubovych/markdownlint-cli/releases/tag/v0.41.0):
0.41.0

[Compare
Source](https://redirect.github.com/igorshubovych/markdownlint-cli/compare/v0.40.0...v0.41.0)

- Change TOML parser to `smol-toml` which supports v1.0.0 of the
specification
-   Update all dependencies via `Dependabot`

###
[`v0.40.0`](https://redirect.github.com/igorshubovych/markdownlint-cli/releases/tag/v0.40.0):
0.40.0

[Compare
Source](https://redirect.github.com/igorshubovych/markdownlint-cli/compare/v0.39.0...v0.40.0)

-   Update `markdownlint` dependency to `0.34.0`
- Use micromark in
`MD027`/`MD028`/`MD036`/`MD040`/`MD041`/`MD046`/`MD048`
    -   Improve `MD013`/`MD034`/`MD049`/`MD050`/`MD051`
-   Add support for `TOML` configuration files via `--config`
-   Add `--configPointer` argument for nested configuration
-   Update `--ignore` for directories to ignore all files within
-   Update all dependencies via `Dependabot`

</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/spec).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zMzEuMCIsInVwZGF0ZWRJblZlciI6IjM5LjE5LjAiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbInJlbm92YXRlIl19-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-02 10:25:59 -05:00
Nayeon Kim 435b11a9b2
fix: typo in specification_parser (#288)
Signed-off-by: Nayeon Kim <inourbubble2@gmail.com>
2025-01-02 10:23:19 -05:00
renovate[bot] ed0f9ef5a3
chore(deps): update dependency prettier to v3.4.2 (#284)
This PR contains the following updates:

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

---

### Release Notes

<details>
<summary>prettier/prettier (prettier)</summary>

###
[`v3.4.2`](https://redirect.github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#342)

[Compare
Source](https://redirect.github.com/prettier/prettier/compare/3.4.1...3.4.2)


[diff](https://redirect.github.com/prettier/prettier/compare/3.4.1...3.4.2)

##### Treat U+30A0 & U+30FB in Katakana Block as CJK
([#&#8203;16796](https://redirect.github.com/prettier/prettier/pull/16796)
by [@&#8203;tats-u](https://redirect.github.com/tats-u))

Prettier doesn't treat U+30A0 & U+30FB as Japanese. U+30FB is commonly
used in Japanese to represent the delimitation of first and last names
of non-Japanese people or “and”. The following “C言語・C++・Go・Rust” means
“C language & C++ & Go & Rust” in Japanese.

<!-- prettier-ignore -->

```md
<!-- Input (--prose-wrap=never) -->

C言
語
・
C++
・
Go
・
Rust

<!-- Prettier 3.4.1 -->
C言語・ C++ ・ Go ・ Rust

<!-- Prettier 3.4.2 -->
C言語・C++・Go・Rust
```

U+30A0 can be used as the replacement of the `-` in non-Japanese names
(e.g. “Saint-Saëns” (Charles Camille Saint-Saëns) can be represented as
“サン゠サーンス” in Japanese), but substituted by ASCII hyphen (U+002D) or
U+FF1D (full width hyphen) in many cases (e.g. “サン=サーンス” or “サン=サーンス”).

##### Fix comments print on class methods with decorators
([#&#8203;16891](https://redirect.github.com/prettier/prettier/pull/16891)
by [@&#8203;fisker](https://redirect.github.com/fisker))

<!-- prettier-ignore -->

```jsx
// Input
class A {
  @&#8203;decorator
  /** 
   * The method description
   *
  */
  async method(foo: Foo, bar: Bar) {
    console.log(foo);
  }
}

// Prettier 3.4.1
class A {
  @&#8203;decorator
  async /**
   * The method description
   *
   */
  method(foo: Foo, bar: Bar) {
    console.log(foo);
  }
}

// Prettier 3.4.2
class A {
  @&#8203;decorator
  /**
   * The method description
   *
   */
  async method(foo: Foo, bar: Bar) {
    console.log(foo);
  }
}
```

##### Fix non-idempotent formatting
([#&#8203;16899](https://redirect.github.com/prettier/prettier/pull/16899)
by [@&#8203;seiyab](https://redirect.github.com/seiyab))

This bug fix is not language-specific. You may see similar change in any
languages. This fixes regression in 3.4.0 so change caused by it should
yield same formatting as 3.3.3.

<!-- prettier-ignore -->

```jsx
// Input
<div>
  foo
  <span>longlonglonglonglonglonglonglonglonglonglonglonglonglonglongl foo</span>
  , abc
</div>;

// Prettier 3.4.1 (first)
<div>
  foo
  <span>
    longlonglonglonglonglonglonglonglonglonglonglonglonglonglongl foo
  </span>, abc
</div>;

// Prettier 3.4.1 (second)
<div>
  foo
  <span>longlonglonglonglonglonglonglonglonglonglonglonglonglonglongl foo</span>
  , abc
</div>;

// Prettier 3.4.2
<div>
  foo
  <span>longlonglonglonglonglonglonglonglonglonglonglonglonglonglongl foo</span>
  , abc
</div>;
```

</details>

---

### Configuration

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

🚦 **Automerge**: Enabled.

♻ **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/spec).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS40Mi40IiwidXBkYXRlZEluVmVyIjoiMzkuNDIuNCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsicmVub3ZhdGUiXX0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-07 10:10:12 +00:00
Michael Beemer 776ee1f396
feat!: add evaluation details to finally hook (#280)
Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2024-12-06 15:46:14 +00:00
renovate[bot] d4a9a91094
chore(deps): update dependency prettier to v3.4.1 (#283)
This PR contains the following updates:

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

---

### Release Notes

<details>
<summary>prettier/prettier (prettier)</summary>

###
[`v3.4.1`](https://redirect.github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#341)

[Compare
Source](https://redirect.github.com/prettier/prettier/compare/3.4.0...3.4.1)


[diff](https://redirect.github.com/prettier/prettier/compare/3.4.0...3.4.1)

##### Remove unnecessary parentheses around assignment in `v-on`
([#&#8203;16887](https://redirect.github.com/prettier/prettier/pull/16887)
by [@&#8203;fisker](https://redirect.github.com/fisker))

<!-- prettier-ignore -->

```vue
<!-- Input -->
<template>
  <button @&#8203;click="foo += 2">Click</button>
</template>

<!-- Prettier 3.4.0 -->
<template>
  <button @&#8203;click="(foo += 2)">Click</button>
</template>

<!-- Prettier 3.4.1 -->
<template>
  <button @&#8203;click="foo += 2">Click</button>
</template>
```

</details>

---

### Configuration

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

🚦 **Automerge**: Enabled.

♻ **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/spec).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xOS4wIiwidXBkYXRlZEluVmVyIjoiMzkuMTkuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsicmVub3ZhdGUiXX0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-29 15:59:50 +00:00
renovate[bot] 6ecbbfd004
chore(deps): update dependency prettier to v3.4.0 (#282)
This PR contains the following updates:

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

---

### Release Notes

<details>
<summary>prettier/prettier (prettier)</summary>

###
[`v3.4.0`](https://redirect.github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#340)

[Compare
Source](https://redirect.github.com/prettier/prettier/compare/3.3.3...3.4.0)


[diff](https://redirect.github.com/prettier/prettier/compare/3.3.3...3.4.0)

🔗 [Release Notes](https://prettier.io/blog/2024/11/26/3.4.0.html)

</details>

---

### Configuration

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

🚦 **Automerge**: Enabled.

♻ **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/spec).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xOS4wIiwidXBkYXRlZEluVmVyIjoiMzkuMTkuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsicmVub3ZhdGUiXX0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-29 09:23:30 +00:00
Anton Grübel 7a78eed656
chore: add mypy and pytest CI step (#275)
Signed-off-by: gruebel <anton.gruebel@gmail.com>
2024-11-27 12:17:01 -05:00