Skip to content

Commit 24b79f5

Browse files
committed
Prepare version 0.8.0
1 parent f29367b commit 24b79f5

File tree

3 files changed

+59
-13
lines changed

3 files changed

+59
-13
lines changed

CHANGELOG.md

+57-12
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,58 @@
11
# Change Log
22

33
## [Unreleased]
4+
[Unreleased]: https://github.com/cashapp/redwood/compare/0.8.0...HEAD
5+
6+
7+
8+
9+
## [0.8.0] - 2024-02-22
10+
[0.8.0]: https://github.com/cashapp/redwood/releases/tag/0.8.0
11+
12+
New:
13+
- `flex(double)` modifier for layouts which acts as a weight along the main axis.
14+
- Allow reserving widget, modifier, property, and children tags in the schema. This can be used to document old items which no longer exist and prevent their values from accidentally being reused.
15+
- Add `dangerZone { }` DSL to the `redwood { }` Gradle extension which allows enabling Compose reports and metrics. Currently these features break build caching as Compose forces the use of absolute paths in the Kotlin compiler arguments when in use (hence why they're marked as dangerous).
16+
- `BackHandler` composable provides a callback for handling hardware back affordances (currently only on Android).
17+
- Expose `frameClock` on `StandardAppLifecycle` to allow monitoring host frames.
18+
- `CodeListener.onUncaughtException` notifies of any uncaught exceptions which occur in Treehouse guest code.
19+
- Preview: Add `Box` widget which stacks children on top of each other. This is currently only implemented for Android views and iOS UIKit.
20+
- Support `rememberSaveable` in plain Redwood compositions.
21+
- Programmatic scrolls on `LazyListState` can now set `animated=true` for an animated scroll.
22+
- Add `ziplineCreated`, `manifestReady`, and `codeLoadSkippedNotFresh` event callbacks to Treehouse `EventListener`.
23+
24+
Changed:
25+
- The Treehouse Zipline disk cache directory is no longer within the cache directory on Android. This ensures it can't be cleared while the app is running. Zipline automatically constrains the directory to a maximum size so old entires will still be purged automatically.
26+
- Set the Zipline thread's stack size to 8MiB on Android to match iOS.
27+
- Use `margin-inline-start` and `margin-inline-end` for the start and end margin, respectively, for the HTML DOM layout bindings.
28+
- `TestRedwoodComposition` now accepts only the initial `UiConfiuration` and exposes a `MutableStateFlow` for changing its value over time.
29+
- `TreehouseLayout` now defines a default ID to allow state saving and restoration to work. Note that this will only work when a single instance is present in the hierarchy. If you have multiple, supply your own unique IDs.
30+
- Emoji Search sample applications now bundle the latest guest code at compile-time and do not require the server running to work.
31+
- The built-in `RedwoodView` for `HTMLElement` now reports density changes to the `UiConfiguration`.
32+
- Redwood protocol modules have been renamed to 'guest' and 'host' to match Treehouse conventions.
33+
- Suppress deprecation warnings in generated code. This code often refers to user types which may be deprecated, and should not cause additional warnings.
34+
- `TreehouseAppContent.preload` is now idempotent.
35+
- `LazyList` on iOS has changed from `UICollectionView` to `UITableView`, and changes to the backing data are now reported granularly rather than reloading everything.
36+
- Allow arbitrary serializable content within `rememberSaveable` inside Treehouse.
37+
- Add a `TreehouseApp` argument to `CodeListener`. Combined with the new uncaught exception callback, this provides an easy way to restart a Treehouse application on a crash.
38+
- `EventListener.Factory` instances are now supplied as part of a `TreehouseApp` instead of a `TreehouseAppFactory`. This more closely scopes them with the lifetime of the `Zipline` instance.
39+
40+
Fixed:
41+
- Ensure changes to modifiers notify their parent widget when using Treehouse.
42+
- Explicitly mark the generated scope objects as `@Stable` to prevent needless recomposition.
43+
- Dispose the old composition when the `RedwoodContent` composable recomposes or is removed from the composition.
44+
- Ensure `UIViewChildren` indexes children using `typedArrangedSubviews` when removing views from a `UIStackView`.
45+
- Correctly parse `data object` modifiers in the schema.
46+
- Remember the default `CodeListener` for `TreehouseContent` to avoid unneccessary recomposition on creation.
47+
- When calling `TreehouseUi.start`, fall back to older API signature when newer one does not match. This is needed because an addiitonal parameter was added in newer versions, but older guest code may have the old signature.
48+
- Persist saved values from Treehouse without jumping back to the UI thread which allows proper restoration after a config change.
49+
- Reset the requested widths and heights of a layout in the underlying Yoga engine when the size is invalidated. This ensures that the engine will properly measure changed content the grows and shrinks in either dimension.
50+
51+
This version works with Kotlin 1.9.22 by default.
52+
453

554
## [0.7.0] - 2023-09-13
55+
[0.7.0]: https://github.com/cashapp/redwood/releases/tag/0.7.0
656

757
New:
858
- Expose viewport size and density in `UiConfiguration`.
@@ -22,6 +72,7 @@ This version works with Kotlin 1.9.10 by default.
2272

2373

2474
## [0.6.0] - 2023-08-10
75+
[0.6.0]: https://github.com/cashapp/redwood/releases/tag/0.6.0
2576

2677
New:
2778
- Support for specifying custom Compose compiler versions. This will allow you to use the latest
@@ -50,6 +101,7 @@ This version works with Kotlin 1.9.0 by default.
50101

51102

52103
## [0.5.0] - 2023-07-05
104+
[0.5.0]: https://github.com/cashapp/redwood/releases/tag/0.5.0
53105

54106
This release marks Redwood's "beta" period which provides slightly more stability guarantees than
55107
before. All future releases up to (but NOT including) 1.0 will have protocol and service
@@ -88,6 +140,7 @@ This version only works with Kotlin 1.8.22.
88140

89141

90142
## [0.4.0] - 2023-06-09
143+
[0.4.0]: https://github.com/cashapp/redwood/releases/tag/0.4.0
91144

92145
New:
93146
- Experimental support for refresh indicators on `LazyRow` and `LazyColumn` via `refreshing` boolean
@@ -142,6 +195,7 @@ This version only works with Kotlin 1.8.20.
142195

143196

144197
## [0.3.0] - 2023-05-15
198+
[0.3.0]: https://github.com/cashapp/redwood/releases/tag/0.3.0
145199

146200
New:
147201

@@ -187,6 +241,7 @@ This version only works with Kotlin 1.8.20.
187241

188242

189243
## [0.2.1] - 2023-01-31
244+
[0.2.1]: https://github.com/cashapp/redwood/releases/tag/0.2.1
190245

191246
Changed:
192247
- Do not use a `ScrollView`/`HorizontalScrollView` as the parent container for View-based `Row` and
@@ -199,6 +254,7 @@ This version only works with Kotlin 1.7.20.
199254

200255

201256
## [0.2.0] - 2023-01-30
257+
[0.2.0]: https://github.com/cashapp/redwood/releases/tag/0.2.0
202258

203259
New:
204260
- `redwood-layout-dom` module provides HTML implementations of `Row` and `Column`.
@@ -228,19 +284,8 @@ This version only works with Kotlin 1.7.20.
228284

229285

230286
## [0.1.0] - 2022-12-23
287+
[0.1.0]: https://github.com/cashapp/redwood/releases/tag/0.1.0
231288

232289
Initial release.
233290

234291
This version only works with Kotlin 1.7.20.
235-
236-
237-
238-
[Unreleased]: https://github.com/cashapp/redwood/compare/0.7.0...HEAD
239-
[0.7.0]: https://github.com/cashapp/redwood/releases/tag/0.7.0
240-
[0.6.0]: https://github.com/cashapp/redwood/releases/tag/0.6.0
241-
[0.5.0]: https://github.com/cashapp/redwood/releases/tag/0.5.0
242-
[0.4.0]: https://github.com/cashapp/redwood/releases/tag/0.4.0
243-
[0.3.0]: https://github.com/cashapp/redwood/releases/tag/0.3.0
244-
[0.2.1]: https://github.com/cashapp/redwood/releases/tag/0.2.1
245-
[0.2.0]: https://github.com/cashapp/redwood/releases/tag/0.2.0
246-
[0.1.0]: https://github.com/cashapp/redwood/releases/tag/0.1.0

README.md

+1
Original file line numberDiff line numberDiff line change
@@ -159,6 +159,7 @@ certain versions of Kotlin.
159159

160160
| Kotlin | Redwood |
161161
|--------|---------------|
162+
| 1.9.22 | 0.8.0 |
162163
| 1.9.10 | 0.7.0 |
163164
| 1.9.0 | 0.6.0 |
164165
| 1.8.22 | 0.5.0 |

build-support/src/main/kotlin/app/cash/redwood/buildsupport/RedwoodBuildPlugin.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ import org.jetbrains.kotlin.gradle.tasks.KotlinJvmCompile
5050
private const val REDWOOD_GROUP_ID = "app.cash.redwood"
5151

5252
// HEY! If you change the major version update release.yaml doc folder.
53-
private const val REDWOOD_VERSION = "0.8.0-SNAPSHOT"
53+
private const val REDWOOD_VERSION = "0.8.0"
5454

5555
@Suppress("unused") // Invoked reflectively by Gradle.
5656
class RedwoodBuildPlugin : Plugin<Project> {

0 commit comments

Comments
 (0)