- Update Kotlin from
1.6.10
to1.9.10
- Update kotlinx.coroutines from
1.6.1
to1.7.3
- Remove
Controller.currentState
. - Remove
Flow.bind
andFlow.distinctMap
extensions. - Binary compatibility will now be verified and held up on every release.
- Refactor
Controller.state
fromFlow<State>
toStateFlow<State>
. - Deprecate
Controller.currentState
. - Internal
BroadcastChannel
implementations changed toSharedFlow
.
- Update kotlinx.coroutines to
1.5.2
. - Remove kotlin as
api
dependency. - Remove
ControllerLog.default
. - Lazily start controller when accessing
Controller.effects
field (#26) control-core
will now be deployed to mavenCentral
- Remove
atomicfu
.
- Add
EffectController
andCoroutineScope.createEffectController
. - Rename
Controller.stub()
toController.toStub()
to better reflect what it is doing.
- Remove
Mutation
generic type fromController
interface. - Remove
CoroutineScope.createSynchronousController
. - Remove
ManagedController
. - Make
ControllerLog
log creation lazy.
CoroutineScope.createController
andCoroutineScope.createSynchronousController
now accept a customControllerStart
parameter instead ofCoroutineStart
.- Add
ManagedController
. Controller.stub
is now marked as@TestOnly
.- binary compatibility is now checked on each
[build]
&[publish]
.
ControllerStub
is removed fromController
interface.ControllerStub
is now accessible via theController.stub()
extension function. once aController
is stubbed via this extension function, it cannot be un-stubbed.
ControllerImplementation
now usesMutableStateFlow
instead ofConflatedBroadCastChannel
internally.Controller.state
emissions are now distinct by default (viaStateFlow
).