Repository navigation
v0.8.0
0.8.0 (2026-10-23)
⚠ BREAKING CHANGES
- make hook inputs immutable (#357)
Bug Fixes
- do not mutate the provider's ResolutionDetails (#358) (ec657a5)
- make hook inputs immutable (#357) (9e166fe)
Migrating from 0.7.x
#357 makes hook inputs immutable (spec 4.1.3, 4.1.4.1 and 4.2.2). A hook that only reads its inputs needs no change. You need to change your code if you do one of the following:
- Change the evaluation context after the
beforestage. Onlybeforehooks can change it. Either return anEvaluationContext, which the SDK merges in, or assignhook_context.evaluation_context. Inafter,errorandfinally, the context is a frozen copy, so assigning it or writing to itsfieldsraisesFrozenError. That is handled like any other hook error, so inafterthe evaluation returns the default. - Change the other hook inputs in place. The flag key, the default value, the hints and the provider metadata are now frozen copies, and that includes nested hint values. Make your own copy before changing one. In return, the SDK no longer freezes the default value you pass in.
- Call
HookExecutor#executedirectly. It now requires adefault_value:keyword. - Freeze an
EvaluationContextyourself.EvaluationContext#freezenow freezes itsfieldstoo.
0.8.1 tightens this further and fixes the cases that could still break:
- only the spec's value types are copied, and other objects in the context are passed to hooks as they are;
- times stay convertible with
utcandlocaltime; NotImplementedErrorfrom hooks, handlers and providers is handled.
Upgrading straight to 0.8.1 is recommended.