Repository navigation
Commit 283bfe8
committed
chore(deps): move the workspace onto openfeature-sdk 0.10.0
The lock has resolved 0.8.4 since 2025-12-09 while 0.9.0 and 0.10.0 have
shipped, so nothing in this repository has ever been tested against either.
Nothing pinned it there: every floor is a `>=`, every member is
`requires-python >=3.10`, and the lock carries no constraints -- renovate's
lock-file maintenance simply never picked the release up. `uv lock
--upgrade-package openfeature-sdk` moves 0.8.4 -> 0.10.0 and touches nothing
else.
Two behaviour changes reach the tests. Neither touches the flagd source,
which needs no change and stays clean under `poe mypy` on 26 files.
First, 0.10.0 made `set_provider` non-blocking, so a test that sets a
provider and evaluates on the next line now races initialisation and reads
PROVIDER_NOT_READY -- 20 failures across test_errors.py and test_metadata.py.
`set_provider_and_wait` restores the old blocking behaviour with one
difference that matters here: it re-raises whatever `initialize` raised,
where `set_provider` only dispatched PROVIDER_ERROR. Several of these
scenarios feed the provider a deliberately broken flag file, so that raise is
the scenario rather than a failure, hence the `contextlib.suppress`; it is
not papering over an unexpected error.
Second, 0.10.0 isolated event-handler dispatch onto a ThreadPoolExecutor
where 0.8.4 called handlers inline -- open-feature/python-sdk#599.
test_grpc_sync_fail_deadline read a flag set by a PROVIDER_ERROR handler on
the line after the call returned, which is now a race: `_run_initialize`
submits the event and then re-raises, and submit is not run. Rather than wait
on the handler, the assertion goes: it existed because the old `set_provider`
blocked and swallowed the error, leaving the event as the only way to observe
a failed init, and `pytest.raises(ProviderNotReadyError)` now carries that
claim directly. What the handler would assert today is that the SDK's
registry dispatches PROVIDER_ERROR when `initialize` raises -- SDK plumbing,
uniform across providers, and not this suite's to cover. The deadline
measurement it shared the test with is untouched, though it now has to wait
rather than time a call that would return immediately.
The other two handler-driven tests here -- test_invalid_flag_set_metadata and
the e2e event steps -- already poll with a timeout and need nothing.
The tests are the only thing that needs 0.10.0, so the floor goes in flagd's
dev group and the runtime floor stays at 0.8.2.
Measured, not assumed: flagd is 208 passed at 0.8.4 and 208 passed at 0.10.0
after this change, having been 188 passed / 20 failed in between. CI covers
tests/e2e, which needs docker, and reported 783 passed on this branch with
the handler race as its only failure. The other nine packages pass tests and
mypy unchanged, except unleash, which the next commit fixes.
Signed-off-by: Simon Schrottner <simon.schrottner@flagsmith.com>1 parent 8416d9d commit 283bfe8
4 files changed
Lines changed: 31 additions & 23 deletions
File tree
- providers/openfeature-provider-flagd
- tests
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
35 | 35 | | |
36 | 36 | | |
37 | 37 | | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
38 | 41 | | |
39 | 42 | | |
40 | 43 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
1 | 2 | | |
2 | 3 | | |
3 | 4 | | |
| |||
7 | 8 | | |
8 | 9 | | |
9 | 10 | | |
10 | | - | |
11 | | - | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
12 | 16 | | |
13 | 17 | | |
14 | 18 | | |
15 | 19 | | |
16 | | - | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
17 | 24 | | |
18 | 25 | | |
19 | 26 | | |
| |||
119 | 126 | | |
120 | 127 | | |
121 | 128 | | |
122 | | - | |
123 | | - | |
124 | | - | |
125 | | - | |
126 | | - | |
127 | | - | |
128 | | - | |
129 | | - | |
130 | 129 | | |
131 | | - | |
132 | | - | |
133 | | - | |
134 | | - | |
135 | | - | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
136 | 137 | | |
137 | | - | |
138 | 138 | | |
139 | 139 | | |
140 | 140 | | |
141 | | - | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
1 | 2 | | |
2 | 3 | | |
3 | 4 | | |
| |||
11 | 12 | | |
12 | 13 | | |
13 | 14 | | |
14 | | - | |
| 15 | + | |
15 | 16 | | |
16 | 17 | | |
17 | 18 | | |
| |||
21 | 22 | | |
22 | 23 | | |
23 | 24 | | |
24 | | - | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
25 | 29 | | |
26 | 30 | | |
27 | 31 | | |
| |||
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
0 commit comments