-
Notifications
You must be signed in to change notification settings - Fork 14
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update xstate monorepo to v5 (major) #476
Open
renovate
wants to merge
1
commit into
main
Choose a base branch
from
renovate/major-xstate-monorepo
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
✅ Deploy Preview for superstore-redwood-stripe ready!
To edit notification comments on pull requests, go to your Netlify site configuration. |
renovate
bot
force-pushed
the
renovate/major-xstate-monorepo
branch
4 times, most recently
from
April 9, 2024 15:48
99de6d0
to
4b4d5df
Compare
renovate
bot
force-pushed
the
renovate/major-xstate-monorepo
branch
3 times, most recently
from
April 17, 2024 01:45
b2154b6
to
6e7a9e4
Compare
renovate
bot
force-pushed
the
renovate/major-xstate-monorepo
branch
4 times, most recently
from
April 27, 2024 03:24
0ba61ab
to
49c91a4
Compare
renovate
bot
force-pushed
the
renovate/major-xstate-monorepo
branch
from
May 5, 2024 00:32
49c91a4
to
cbe2be6
Compare
renovate
bot
force-pushed
the
renovate/major-xstate-monorepo
branch
from
June 1, 2024 16:36
cbe2be6
to
11d7556
Compare
renovate
bot
force-pushed
the
renovate/major-xstate-monorepo
branch
4 times, most recently
from
June 18, 2024 11:41
016fa17
to
bf4f0f8
Compare
renovate
bot
force-pushed
the
renovate/major-xstate-monorepo
branch
2 times, most recently
from
June 22, 2024 12:45
2a410a2
to
db65755
Compare
renovate
bot
force-pushed
the
renovate/major-xstate-monorepo
branch
3 times, most recently
from
July 5, 2024 08:31
5ca27e2
to
123852a
Compare
renovate
bot
force-pushed
the
renovate/major-xstate-monorepo
branch
4 times, most recently
from
July 16, 2024 19:56
20b2fed
to
c4ee3eb
Compare
renovate
bot
force-pushed
the
renovate/major-xstate-monorepo
branch
from
July 26, 2024 14:35
c4ee3eb
to
bd6a722
Compare
renovate
bot
force-pushed
the
renovate/major-xstate-monorepo
branch
2 times, most recently
from
July 31, 2024 19:56
77b1cdf
to
b0258ac
Compare
renovate
bot
force-pushed
the
renovate/major-xstate-monorepo
branch
3 times, most recently
from
August 15, 2024 17:39
efcbeaf
to
6c7e772
Compare
renovate
bot
force-pushed
the
renovate/major-xstate-monorepo
branch
4 times, most recently
from
August 30, 2024 16:49
881766a
to
c19f668
Compare
renovate
bot
force-pushed
the
renovate/major-xstate-monorepo
branch
from
September 6, 2024 11:10
c19f668
to
e531b78
Compare
renovate
bot
force-pushed
the
renovate/major-xstate-monorepo
branch
from
September 21, 2024 07:56
e531b78
to
780f433
Compare
renovate
bot
force-pushed
the
renovate/major-xstate-monorepo
branch
from
November 12, 2024 15:23
780f433
to
b06be3a
Compare
renovate
bot
changed the title
Update xstate monorepo (major)
Update xstate monorepo to v5 (major)
Nov 12, 2024
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
3.2.2
->5.0.0
4.38.0
->5.19.0
Release Notes
statelyai/xstate (@xstate/react)
v5.0.0
Compare Source
Major Changes
d3d6149
: If context types are specified in the machine config, thecontext
property will now be required:d3d6149
: - The third argument ofmachine.transition(state, event)
has been removed. Thecontext
should always be given as part of thestate
.machine.microstep(snapshot, event)
which returns the resulting intermediateMachineSnapshot
object that represents a single microstep being taken when transitioning fromsnapshot
via theevent
. This is theMachineSnapshot
that does not take into account transient transitions nor raised events, and is useful for debugging.state.events
property has been removed from theState
objectstate.historyValue
property now more closely represents the original SCXML algorithm, and is a mapping of state node IDs to their historic descendent state nodes. This is used for resolving history states, and should be considered internal.stateNode.isTransient
property is removed fromStateNode
..initial
property of a state node config object can now contain executable content (i.e., actions):assign()
) will now be executed "in order", rather than automatically prioritized. They will be evaluated after previously defined actions are evaluated, and actions that read fromcontext
will have those intermediate values applied, rather than the final resolved value of allassign()
actions taken, which was the previous behavior.This shouldn't change the behavior for most state machines. To maintain the previous behavior, ensure that
assign()
actions are defined before any other actions.d3d6149
: An error will be thrown if aninitial
state key is not specified for compound state nodes. For example:You will get the error:
d3d6149
: IDs for delayed events are no longer derived from event types so this won't work automatically:Please use explicit IDs:
d3d6149
: RemovedState#toStrings
method.d3d6149
: The machine'scontext
is now restricted to anRecord<string, any>
. This was the most common usage, but now the typings preventcontext
from being anything but an object:If
context
isundefined
, it will now default to an empty object{}
.d3d6149
: Actors are now always part of a "system", which is a collection of actors that can communicate with each other. Systems are implicitly created, and can be used to get and set references to any actor in the system via thesystemId
prop:Any invoked/spawned actor that is part of a system will be able to reference that actor:
Each top-level
createActor(...)
call creates a separate implicit system. In this example example,actor1
andactor2
are part of different systems and are unrelated:d3d6149
:external
property on transitions has been renamed toreenter
d3d6149
: Theinterpreter.onStop(...)
method has been removed. Use an observer instead viaactorRef.subscribe({ complete() { ... } })
instead.d3d6149
: RemovedMachineSnapshot['nextEvents']
.d3d6149
: Renamedmachine.withConfig(...)
tomachine.provide(...)
.d3d6149
: Removed third parameter (context) from Machine's transition method. If you want to transition with a particular context value you should create appropriateMachineSnapshot
usingmachine.resolveState
. So instead of this -machine.transition('green', { type: 'TIMER' }, { elapsed: 100 })
, you should do this -machine.transition(machine.resolveState({ value: 'green', context: { elapsed: 100 } }), { type: 'TIMER' })
.d3d6149
: Sending a string event toactorRef.send('some string')
will now throw a proper error message.d3d6149
: Theself
actor reference is now available in all action metas. This makes it easier to reference the "self"ActorRef
so that actions such assendTo
can include it in the event payload:d3d6149
:isState
/isStateConfig
were replaced byisMachineSnapshot
. Similarly,AnyState
type was deprecated and it's replaced byAnyMachineSnapshot
type.d3d6149
: All actor snapshots now have a consistent, predictable shape containing these common properties:status
:'active' | 'done' | 'error' | 'stopped'
output
: The output data of the actor when it has reachedstatus: 'done'
error
: The error thrown by the actor when it has reachedstatus: 'error'
context
: The context of the actorThis makes it easier to work with actors in a consistent way, and to inspect their snapshots.
d3d6149
: Restoring persisted state is now done by passing the state into thesnapshot: ...
property of thecreateActor
options argument:The persisted snapshot is obtained from an actor by calling
actor.getPersistedSnapshot()
:d3d6149
: - Theexecute
option for an interpreted service has been removed. If you don't want to execute actions, it's recommended that you don't hardcode implementation details into the basemachine
that will be interpreted, and extend the machine'soptions.actions
instead. By default, the interpreter will execute all actions according to SCXML semantics (immediately upon transition).xstate/devTools/redux
:By default, dev tools are attached to the global
window.__xstate__
object:And creating your own custom dev tools adapter is a function that takes in the
actorRef
:These handlers have been removed, as they are redundant and can all be accomplished with
.onTransition(...)
and/or.subscribe(...)
:actorRef.onEvent()
actorRef.onSend()
actorRef.onChange()
The
actorRef.send(...)
method no longer returns the next state. It is avoid
function (fire-and-forget).The
actorRef.sender(...)
method has been removed as redundant. UseactorRef.send(...)
instead.d3d6149
: The output data on final states is now specified as.output
instead of.data
:d3d6149
: Support for getters as a transition target (instead of referencing state nodes by ID or relative key) has been removed.The
Machine()
andcreateMachine()
factory functions no longer support passing incontext
as a third argument.The
context
property in the machine configuration no longer accepts a function for determining context (which was introduced in 4.7). This might change as the API becomes finalized.The
activities
property was removed fromState
objects, as activities are now part ofinvoke
declarations.The state nodes will not show the machine's
version
on them - theversion
property is only available on the root machine node.d3d6149
: Thein: ...
property for transitions is removed and replaced with guards. It is recommended to usestateIn()
andnot(stateIn())
guard creators instead:d3d6149
: RemovedActor['status']
from publicly available properties.d3d6149
: All builtin action creators (assign
,sendTo
, etc) are now returning functions. They exact shape of those is considered an implementation detail of XState and users are meant to only pass around the returned values.d3d6149
: Autoforwarding events is no longer supported and theautoForward
property has been removed.Instead of autoforwarding, events should be explicitly sent to actors:
d3d6149
: The machine.schema
property is now.types
:And the
.tsTypes
property is now.types.typegen
:d3d6149
: Returning promises when creating a callback actor doesn't work anymore. Only cleanup functions can be returned now (orundefined
).d3d6149
: There is now support for higher-level guards, which are guards that can compose other guards:and([guard1, guard2, /* ... */])
returnstrue
if all guards evaluate to truthy, otherwisefalse
or([guard1, guard2, /* ... */])
returnstrue
if any guard evaluates to truthy, otherwisefalse
not(guard1)
returnstrue
if a single guard evaluates tofalse
, otherwisetrue
d3d6149
: The.send(...)
method onactorRef.send(...)
now requires the first argument (the event to send) to be an object; that is, either:{ type: 'someEvent' }
)The second argument (payload) is no longer supported, and should instead be included within the object:
d3d6149
: Actions and guards that follow eventless transitions will now receive the event that triggered the transition instead of a "null" event ({ type: '' }
), which no longer exists:d3d6149
: You can now add asystemId
to spawned actors to reference them anywhere in the system.d3d6149
: Reading the initial state from an actor viaactorRef.initialState
is removed. UseactorRef.getSnapshot()
instead.d3d6149
:machine.initialState
has been removed, you can usemachine.getInitialState(...)
insteadd3d6149
: Target resolution improvements: targeting sibling nodes from the root is no longer valid, since the root node has no siblings:d3d6149
: ThecreateActor(...)
function now acceptsinput
in the second argument, which passes input data in the"xstate.init"
event:d3d6149
: Invoked actors can now be deeply persisted and restored. When the persisted state of an actor is obtained viaactorRef.getPersistedSnapshot()
, the states of all invoked actors are also persisted, if possible. This state can be restored by passing the persisted state into thesnapshot: ...
property of thecreateActor
options argument:d3d6149
: Atomic and parallel states should no longer be reentered when the transition target doesn't escape them. You can get the reentering behavior by configuringreenter: true
for the transition.d3d6149
: Restored state will no longer contain actions, since they are assumed to have already been executed. Actions will not be replayed.If you want to replay actions when restoring state, it is recommended to use an event sourcing approach.
d3d6149
: Thein: '...'
transition property can now be replaced withstateIn(...)
andstateNotIn(...)
guards, imported fromxstate/guards
:The
stateIn(...)
andstateNotIn(...)
guards also can be used the same way assnapshot.matches(...)
:An error will now be thrown if the
assign(...)
action is executed when thecontext
isundefined
. Previously, there was only a warning.Error events raised by the machine will be thrown if there are no error listeners registered on an actor via
actorRef.subscribe({ error: () => {} })
.d3d6149
: Action/actor/delay/guard arguments are now consolidated into a single object argument. This is a breaking change for all of those things that are called with arguments.d3d6149
: Eventless transitions must now be specified in thealways: { ... }
object and not in theon: { ... }
object:d3d6149
: Removed the ability to pass a string value directly toinvoke
. To migrate you should use the object version ofinvoke
:d3d6149
:machine.transition(...)
andmachine.getInitialState(...)
require now anactorScope
argumentd3d6149
: All events automatically generated by XState will now be prefixed byxstate.
. Naming scheme changed slightly as well, for exampledone.invoke.*
events becamexstate.done.actor.*
events.d3d6149
: Theescalate()
action is removed. Just throw an error normally.d3d6149
: Theactor.onTransition(...)
method has been removed in favor of.subscribe(...)
d3d6149
: Observing an actor viaactorRef.subscribe(...)
no longer immediately receives the current snapshot. Instead, the current snapshot can be read fromactorRef.getSnapshot()
, and observers will receive snapshots only when a transition in the actor occurs.d3d6149
: Actors can no longer be stopped directly by calling. They can only be stopped from its parent internally (which might happen when you useactor.stop()
stop
action or automatically when a machine leaves the invoking state). The root actor can still be stopped since it has no parent.d3d6149
: ThematchState(...)
helper function is removed.d3d6149
: Parameterized actions now require aparams
property:d3d6149
: The history resolution algorithm has been refactored to closely match the SCXML algorithm, which changes the shape ofstate.historyValue
to map history state node IDs to their most recently resolved target state nodes.d3d6149
: Custom action objects and guard objects are now expected to put extra parameters on theparams
property:d3d6149
: Thestrict: true
option for machine config has been removed.d3d6149
: Removed the ability to define delayed transitions using an array. Only object variant is supported now:d3d6149
: RemovedState['transitions']
.d3d6149
: Removed the deprecatedsend
action creator. Please usesendTo
when sending events to other actors orraise
when sending to itself.d3d6149
: ThecreateEmptyActor()
function has been added to make it easier to create actors that do nothing ("empty" actors). This is useful for testing, or for some integrations such asuseActor(actor)
in@xstate/react
that require an actor:d3d6149
:machine.transition
no longer accepts state values. You have to resolve the state value to aState
before passing it tomachine.transition
d3d6149
: RemoveddeferEvents
from the actor options.d3d6149
: Thestate.history
property has been removed. This does not affect the machine "history" mechanism.Storing previous state should now be done explicitly:
d3d6149
: All errors caught while executing the actor should now consistently include the error in itssnapshot.error
and should be reported to the closesterror
listener.d3d6149
: You can now import the following fromxstate
:The
send
action was removed from exports; usesendTo(...)
orraise(...)
instead.d3d6149
: BREAKING: Thecond
property in transition config objects has been renamed toguard
. This unifies terminology for guarded transitions and guard predicates (previously called "cond", or "conditional", predicates):d3d6149
: TheMachine()
function has been removed. Use thecreateMachine()
function instead.d3d6149
: Theinterpreter.onError(...)
method has been removed. Useinterpreter.subscribe({ error(err) => { ... } })
instead.d3d6149
: Actions are no longer called withstate
d3d6149
:spawn
is no longer importable fromxstate
. Instead you get it inassign
like this:In addition to that, you can now
spawn
actors defined in your implementations object, in the same way that you were already able to do that withinvoke
. To do that just reference the defined actor like this:d3d6149
:State
class has been removed and replaced byMachineSnapshot
object. They largely have the same properties and methods. On of the main noticeable results of this change is that you can no longer checkstate instanceof State
.d3d6149
: Guard arguments are now consolidated into a single object argument. This is a breaking change for all guards that are called with arguments.d3d6149
: Theservice.batch(events)
method is no longer available.d3d6149
: TheStateSchema
type has been removed from all generic type signatures.d3d6149
: RemovedState['_internalQueue']
.d3d6149
:EmittedFrom
type helper has been renamed toSnapshotFrom
.d3d6149
: ThefromReducer(...)
function is now calledfromTransition(...)
.d3d6149
: Thepure()
andchoose()
action creators have been removed, in favor of the more flexibleenqueueActions()
action creator:d3d6149
: Changed behavior ofalways
transitions. Previously they were always selected after selecting any transition (including thealways
transitions). Because of that it was relatively easy to create an infinite loop using them.Now they are no longer selected if the preceeding transition doesn't change the state of a machine.
d3d6149
: Breaking: Thestate.children
property is now a mapping of invoked actor IDs to theirActorRef
instances.Breaking: The way that you interface with invoked/spawned actors is now through
ActorRef
instances. AnActorRef
is an opaque reference to anActor
, which should be never referenced directly.Breaking: The
origin
of anSCXML.Event
is no longer a string, but anActorRef
instance.d3d6149
: Theservices
option passed as the second argument tocreateMachine(config, options)
is renamed toactors
. Each value inactors
should be a function that takes incontext
andevent
and returns a [behavior](TODO: link) for an actor. The provided behavior creators are:fromMachine
fromPromise
fromCallback
fromObservable
fromEventObservable
d3d6149
: The error event (type: 'xstate.error.*'
) now has the error data on theevent.error
instead ofevent.data
:d3d6149
:_event
has been removed from all APIs and types. It was a wrapper structure containing theevent
that users were using directly.d3d6149
: Actor types can now be specified in the.types
property ofcreateMachine
:d3d6149
:Interpreter['off']
method has been removed.d3d6149
:.nextState
method has been removed from theInterpreter
.State#can
can be used to check if sending a particular event would lead to a state change.d3d6149
: Support for compound string state values has been dropped from Machine's transition method. It's no longer allowed to call transition like this -machine.transition('a.b', { type: 'NEXT' })
, instead it's required to use "state value" representation like this -machine.transition({ a: 'b' }, { type: 'NEXT' })
.d3d6149
: - Breaking: activities removed (can be invoked)Since activities can be considered invoked services, they can be implemented as such. Activities are services that do not send any events back to the parent machine, nor do they receive any events, other than a "stop" signal when the parent changes to a state where the activity is no longer active. This is modeled the same way as a callback service is modeled.
d3d6149
: Removed previously deprecated config properties:onEntry
,onExit
,parallel
andforward
.d3d6149
: Thestate._sessionid
property has been removed. It should be obtained directly from the actor:actor.sessionId
.d3d6149
: Thesystem
can now be accessed in all available actor logic creator functions:d3d6149
: Typings forTypestate
have been removed. The reason for this is that types for typestates needed to be manually specified, which is unsound because it is possible to specify impossible typestates; i.e., typings for a state'svalue
andcontext
that are impossible to achieve.d3d6149
: Theactor.onDone(...)
method is removed. Useactor.subscribe({ complete() {... } })
instead.d3d6149
: ThecreateModel()
function has been removed in favor of relying on strong types in the machine configuration.d3d6149
:sync
option has been removed frominvoke
andspawn
.d3d6149
: RemovedState['event']
.d3d6149
: The finaloutput
of a state machine is now specified directly in theoutput
property of the machine config:d3d6149
: Invoked/spawned actors are no longer available onservice.children
- they can only be accessed fromstate.children
.d3d6149
: RemovedmapState
utility function.d3d6149
: Theinterpret(...)
function has been deprecated and renamed tocreateActor(...)
:d3d6149
: Prefix wildcard event descriptors are now supported. These are event descriptors ending with".*"
which will match all events that start with the prefix (the partial event type before".*"
):Note: wildcards are only valid as the entire event type (
"*"
) or at the end of an event type, preceded by a period (".*"
):"*"
"event.*"
"event.something.*"
"event.*.something"
"event*"
"event*.some*thing"
"*.something"
d3d6149
: The interface for guard objects has changed. Notably, all guard parameters should be placed in theparams
property of the guard object:Example taken from Custom Guards:
d3d6149
: All transitions became internal by default. The style of thetarget
pattern (.child
,sibling
,#id
) has now no effect on the transition type.Internal transitions don't reenter their source state when the target lies within it. You can still create external transitions (ones that reenter the source state under the mentioned circumstances) by explicitly setting
external: true
on the given transition.d3d6149
:exit
actions of all states are no longer called when the machine gets stopped externally. Note that they are still called when the machine reaches its final state.d3d6149
:Machine#transition
no longer handles invalid state values such as values containing non-existent state regions. If you rehydrate your machines and change machine's schema then you should migrate your data accordingly on your own.d3d6149
: Removed support forservice.send(type, payload)
. We are usingsend
API at multiple places and this was the only one supporting this shape of parameters. Additionally, it had not strict TS types and using it was unsafe (type-wise).d3d6149
: Spawned actors that have a referenced source (not inline) can be deeply persisted and restored:d3d6149
: RemovedState['actions']
. Actions are considered to be a side-effect of a transition, things that happen in the moment and are not meant to be persisted beyond that.Minor Changes
d3d6149
:exports
field has been added to thepackage.json
manifest. It limits what files can be imported from a package - it's no longer possible to import from files that are not considered to be a part of the public API.d3d6149
: MergesendBack
andreceive
with other properties offromCallback
logic creator.d3d6149
: Thestate
option ofcreateActor(...)
has been renamed tosnapshot
:Likewise, the
.getPersistedState()
method has been renamed to.getPersistedSnapshot()
:d3d6149
:spawn
can now benefit from the actor types. Its arguments are strongly-typed based on them.d3d6149
: Significant improvements to error handling have been made:actor.subscribe(observer)
)..error()
handler:d3d6149
: You can nowspawnChild(...)
actors directly outside ofassign(...)
action creators:d3d6149
:onSnapshot
is now available for invoke configs. You can specify a transition there to be taken when a snapshot of an invoked actor gets updated. It works similarly toonDone
/onError
.d3d6149
: Partial event descriptors are now type-safe:d3d6149
:State.from
,StateMachine#createState
andStateMachine#resolveStateValue
were removed. They largely served the same purpose asStateMachine#resolveState
and this is the method that is still available and can be used instead of them.d3d6149
: Params ofactions
andguards
can now be resolved dynamicallyd3d6149
: Children IDs in combination withsetup
can now be typed usingtypes.children
:d3d6149
: You can now specify guard types for machines:d3d6149
: You can now define strict tags for machines:d3d6149
: Thestate.configuration
property has been renamed tostate.nodes
.d3d6149
: TheonSnapshot: { ... }
transition object is now supported for invoked machines, observables, promises, and transition functions:d3d6149
: Thestop(...)
action creator is renamed tostopChild(...)
, to make it clear that only child actors may be stopped from the parent actor.d3d6149
: Action parameters can now be directly accessed from the 2nd argument of the action implementation:d3d6149
: Input types can now be specified for machines:d3d6149
:xstate.done.state.*
events will now be generated recursively for all parallel states on the ancestors path.d3d6149
: Actor logic creators now have access toself
:d3d6149
: Guard parameters can now be directly accessed from the 2nd argument of the guard implementation:d3d6149
: You can now inspect actor system updates using theinspect
option increateActor(logic, { inspect })
. The types of inspection events you can observe include:@xstate.actor
- An actor ref has been created in the system@xstate.event
- An event was sent from a source actor ref to a target actor ref in the system@xstate.snapshot
- An actor ref emitted a snapshot due to a received eventd3d6149
: Added support for expressions tocancel
action.d3d6149
: The newenqueueActions(...)
action creator can now be used to enqueue actions to be executed. This is a helpful alternative to thepure(...)
andchoose(...)
action creators.d3d6149
: The defaulttimeout
forwaitFor(...)
is nowInfinity
instead of 10 seconds.d3d6149
: You can now specify action types for machines:d3d6149
: Thestate.meta
getter has been replaced withstate.getMeta()
methods:d3d6149
: Output types can now be specified in the machine:d3d6149
: Added interop observable symbols toActorRef
so that actor refs are compatible with libraries like RxJS.d3d6149
: You can now use thesetup({ ... }).createMachine({ ... })
function to setup implementations foractors
,actions
,guards
, anddelays
that will be used in the created machine: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 these updates again.
This PR was generated by Mend Renovate. View the repository job log.