From 5675a0d76b9d2633ffeeed40e2f6baab376c49d4 Mon Sep 17 00:00:00 2001 From: Jake Wharton Date: Wed, 5 Jul 2023 10:47:41 -0400 Subject: [PATCH] Prepare version 0.5.0 --- CHANGELOG.md | 41 ++++++++++++++++++- README.md | 11 +++++ RELEASING.md | 5 ++- .../buildsupport/RedwoodBuildPlugin.kt | 2 +- 4 files changed, 55 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e078c3aa34..3a9e0f21dc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,44 @@ ## [Unreleased] +## [0.5.0] - 2023-07-05 + +This release marks Redwood's "beta" period which provides slightly more stability guarantees than +before. All future releases up to (but NOT including) 1.0 will have protocol and service +compatibility with older versions. In practice, what this means is that you can use Redwood 0.6 +(and beyond) to compile and deploy Treehouse guest code which will run inside a Treehouse host +from Redwood 0.5. + +Redwood still reserves the right to make binary- and source-incompatible changes within the host +code or within the guest code. + +New: +- The relevant tags and names from your schema will now automatically be tracked in an API file and + changes will be validated to be backwards-compatible. The `redwoodApiGenerate` Gradle task will + generate or update the file, and the `redwoodApiCheck` task will validate the current schema as + part of the `check` lifecycle task. +- `width`, `height`, and `size` modifiers allow precise control over widget size within + Redwood layout. +- Preliminary support for `rememberSaveable` within Treehouse guest code with persistence only + available on Android hosts. + +Changes: +- The flexbox implementation has changed from being a Kotlin port of the Google's Java flexbox + layout to using Facebook's Yoga library. +- `LazyList` now has arguments for `margin` and cross-axis alignment + (`verticalAlignment` for `LazyRow`, `horizontalAlignment` for `LazyColumn`) +- Remove the ability to use custom implementations of `LazyList`. Any missing functionality from + the built-in versions should be filed as a feature request. +- The command-line tools (codegen, lint, schema) are now uploaded to Maven Central as standalone + zip files in addition to each regular jar artifact for use with non-Gradle build systems. + +Fixed: +- RTL layout direction is now supported by the Compose UI and View-based implementations of + Redwood layout. + +This version only works with Kotlin 1.8.22. + + ## [0.4.0] - 2023-06-09 New: @@ -150,7 +188,8 @@ This version only works with Kotlin 1.7.20. -[Unreleased]: https://github.com/cashapp/redwood/compare/0.4.0...HEAD +[Unreleased]: https://github.com/cashapp/redwood/compare/0.5.0...HEAD +[0.5.0]: https://github.com/cashapp/redwood/releases/tag/0.5.0 [0.4.0]: https://github.com/cashapp/redwood/releases/tag/0.4.0 [0.3.0]: https://github.com/cashapp/redwood/releases/tag/0.3.0 [0.2.1]: https://github.com/cashapp/redwood/releases/tag/0.2.1 diff --git a/README.md b/README.md index 7f9450bbf7..c5741d18c9 100644 --- a/README.md +++ b/README.md @@ -155,6 +155,17 @@ fun Counter(value: Int = 0) { } ``` +### Version compatibility + +Since Kotlin compiler plugins are an unstable API, certain versions of Redwood only work with +certain versions of Kotlin. + +| Kotlin | Redwood | +|--------|---------------| +| 1.8.22 | 0.5.0 | +| 1.8.20 | 0.3.0 - 0.4.0 | +| 1.7.20 | 0.1.0 - 0.2.1 | + [compose-server-side]: https://github.com/ShikaSD/compose-server-side [compose]: https://developer.android.com/jetpack/compose diff --git a/RELEASING.md b/RELEASING.md index dac155b838..0b916ff165 100644 --- a/RELEASING.md +++ b/RELEASING.md @@ -7,8 +7,9 @@ 2. Add a link URL to ensure the header link works. 3. Add a new `Unreleased` section to the top. -3. Update the `README.md` so the "Usage" section reflects the new release version and the - snapshot section reflects the next "SNAPSHOT" version. +3. Update the `README.md`: + 1. Update the Kotlin compatibility table with the new version. + 4. Commit diff --git a/build-support/src/main/kotlin/app/cash/redwood/buildsupport/RedwoodBuildPlugin.kt b/build-support/src/main/kotlin/app/cash/redwood/buildsupport/RedwoodBuildPlugin.kt index adf4f85ea1..4090a87181 100644 --- a/build-support/src/main/kotlin/app/cash/redwood/buildsupport/RedwoodBuildPlugin.kt +++ b/build-support/src/main/kotlin/app/cash/redwood/buildsupport/RedwoodBuildPlugin.kt @@ -28,7 +28,7 @@ import org.gradle.api.publish.maven.MavenPublication private const val redwoodGroupId = "app.cash.redwood" // HEY! If you change the major version update release.yaml doc folder. -private const val redwoodVersion = "0.5.0-SNAPSHOT" +private const val redwoodVersion = "0.5.0" @Suppress("unused") // Invoked reflectively by Gradle. class RedwoodBuildPlugin : Plugin {