Releases: orbit-mvi/orbit-mvi
10.0.0
New features
- Support for all Kotlin Multiplatform platforms.
- ViewModel Multiplatform and Compose Multiplatform support, with a new Compose Multiplatform sample app.
expectStateOn
to better support sealed class state testing
API changes
orbit-core
- [Breaking]
blockingIntent
is now an extension function.
orbit-compose
- [Breaking] Removed deprecated collectState from
ContainerHostExtensionsKt
orbit-test
- Initial state is now automatically asserted in tests, deprecating
expectInitialState()
.TestSettings.autoCheckInitialState
can be used to override this behaviour. expectStateOn
added.
orbit-viewmodel
- Added kotlinx serializable for savedstatehandle support
What's Changed
- Update to latest dependencies by @mattmook in #237
- Add extended platform support by @mattmook in #238
- ViewModel multiplatform and Compose multiplatform support by @mattmook in #239
- Update README.md by @mattmook in #249
- Replace AtomicFu with Kotlin standard library implementation by @mattmook in #251
- Auto check initial state in tests by @mattmook in #250
- Fix broken Container Settings links by @mattmook in #252
- Add expectStateOn test function by @mattmook in #258
- Ensure transitive dependencies we expose directly are exported by @mattmook in #259
- Update documentation for multiplatform by @mattmook in #260
- Create plugin to retrieve latest release from github by @mattmook in #262
- Bump image-size from 1.2.0 to 1.2.1 in /website by @dependabot in #264
- Bump @babel/runtime from 7.19.0 to 7.27.0 in /website by @dependabot in #265
- Bump serialize-javascript from 6.0.0 to 6.0.2 in /website by @dependabot in #266
- Bump cross-spawn from 7.0.3 to 7.0.6 in /website by @dependabot in #267
- Bump micromatch from 4.0.5 to 4.0.8 in /website by @dependabot in #270
- Bump express from 4.18.1 to 4.21.2 in /website by @dependabot in #268
- Bump http-proxy-middleware from 2.0.6 to 2.0.7 in /website by @dependabot in #269
- Bump braces from 3.0.2 to 3.0.3 in /website by @dependabot in #271
- Bump follow-redirects from 1.15.1 to 1.15.9 in /website by @dependabot in #272
- Bump estree-util-value-to-estree from 3.3.2 to 3.3.3 in /website by @dependabot in #275
- Bump http-proxy-middleware from 2.0.7 to 2.0.9 in /website by @dependabot in #276
- Update to latest dependencies inc Kotlin 2.1.21 by @mattmook in #279
- Fix tag build deployment by @mattmook in #278
- Ensure runTest correctly wraps tests by @mattmook in #274
- Compose multiplatform sample by @mattmook in #253
- Remove runBlocking from RealContainer by @mattmook in #263
- Example of Compose TextField state hoisting by @mattmook in #283
- Enable js support by @mattmook in #282
- Add compose multiplatform web target to sample app by @mattmook in #287
- Update README for v10.0.0 release. by @mattmook in #261
- Enable jacoco coverage for multiplatform by @mattmook in #288
- Documentation and dependency updates by @mattmook in #289
Full Changelog: 9.0.0...10.0.0
9.0.0
What's Changed
- Upgrade deprecated build actions by @mattmook in #226
- Pull syntax functions down into the relevant classes instead of relyi… by @Rosomack in #225
- Fix build error by @Rosomack in #227
Full Changelog: 8.0.0...9.0.0
Breaking changes
Syntax extension functions have been pulled up to reduce internal complexity and open up new functionality, such as reified types on runOn
.
Migration guide
API | Pre-9.0.0 | 9.0.0 | Action to take |
---|---|---|---|
class SimpleSyntax | org.orbitmvi.orbit.syntax.simple.SimpleSyntax | Renamed to org.orbitmvi.orbit.syntax.Syntax | Search and replace imports and usages |
class SimpleContext | org.orbitmvi.orbit.syntax.simple.SimpleContext | Renamed to org.orbitmvi.orbit.syntax.IntentContext | Search and replace imports and usages |
extension function ContainerHost.intent |
org.orbitmvi.orbit.syntax.simple.intent | Moved into ContainerHost interface |
Remove import |
extension function ContainerHost.blockingIntent |
org.orbitmvi.orbit.syntax.simple.blockingIntent | Moved into ContainerHost interface |
Remove import |
extension function ContainerHost.subIntent |
org.orbitmvi.orbit.syntax.simple.subIntent | Moved into ContainerHost interface |
Remove import |
extension function SimpleSyntax.postSideEffect |
org.orbitmvi.orbit.syntax.simple.postSideEffect | Moved into Syntax class |
Remove import |
extension function SimpleSyntax.reduce |
org.orbitmvi.orbit.syntax.simple.reduce | Moved into Syntax class |
Remove import |
extension function SimpleSyntax.repeatOnSubscription |
org.orbitmvi.orbit.syntax.simple.repeatOnSubscription | Moved into Syntax class |
Remove import |
extension function SimpleSyntax.runOn |
org.orbitmvi.orbit.syntax.simple.runOn | Moved into Syntax class |
Remove import |
extension function SimpleSyntax.runOn |
runOn(ExampleState.Ready::class) |
Uses reified type parameter now runOn<ExampleState.Ready> |
Search and replace |
8.0.0
What's Changed
- Remove old test framework by @mattmook in #218
- Removed dead code by @Rosomack in #220
- Refactor test names, get rid of runblocking by @Rosomack in #221
Breaking changes
The old testing framework has been deprecated for a long while. The time has come to prune it from the library.
In case your project is still using old style tests, use https://github.com/orbit-mvi/orbit-mvi/tree/7.2.0 until your tests are migrated to the new test style.
Alternatively, you can copy the testing classes from https://github.com/orbit-mvi/orbit-mvi/tree/7.2.0 into your project to unlock the upgrade to 8.0.0
and beyond. Please note no support will be provided for the old testing framework.
Full Changelog: 7.2.0...8.0.0
7.1.1
7.2.0
7.1.0
7.0.1
7.0.0
What's Changed
- Fix Detekt by @TWiStErRob in #199
- Update Turbine to 1.0.0 by @chrisbanes in #206
- Remove experimental annotations from stable APIs by @Rosomack in #209
- Add subintents API by @Rosomack in #210
- Fix repeatOnSubscription to take into account external subscribers only by @Rosomack in #211
New Contributors
- @chrisbanes made their first contribution in #206
Full Changelog: 6.1.1...7.0.0
6.1.1
6.1.0
This is a maintenance release. We've made some (non-breaking) changes to the new tests API to clean it up a little.
What's Changed
- Update the docs for 6.0.0 by @Rosomack in #173
- Update to new Orbit Multiplatform logo by @mattmook in #174
- Bump semver from 5.7.1 to 5.7.2 in /website by @dependabot in #183
- Minor build files cleanup by @TWiStErRob in #178
- Add expectNoItems to OrbitTestContext by @abyrnes in #195
- Fix/orbit 6 issues by @Rosomack in #193
New Contributors
- @TWiStErRob made their first contribution in #178
- @abyrnes made their first contribution in #195
Full Changelog: 6.0.0...6.1.0-SNAPSHOT