-
Notifications
You must be signed in to change notification settings - Fork 39
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
Migrate java.io.File Usage to Kotlin Multiplatform-Compatible Abstraction #302
Comments
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [io.github.takahirom.roborazzi](https://github.com/takahirom/roborazzi) | plugin | minor | `1.12.0` -> `1.13.0` | | [io.github.takahirom.roborazzi:roborazzi-junit-rule](https://github.com/takahirom/roborazzi) | dependencies | minor | `1.12.0` -> `1.13.0` | | [io.github.takahirom.roborazzi:roborazzi-compose](https://github.com/takahirom/roborazzi) | dependencies | minor | `1.12.0` -> `1.13.0` | | [io.github.takahirom.roborazzi:roborazzi](https://github.com/takahirom/roborazzi) | dependencies | minor | `1.12.0` -> `1.13.0` | --- > [!WARNING] > Some dependencies could not be looked up. Check the Dependency Dashboard for more information. --- ### Release Notes <details> <summary>takahirom/roborazzi (io.github.takahirom.roborazzi)</summary> ### [`v1.13.0`](https://github.com/takahirom/roborazzi/releases/tag/1.13.0) [Compare Source](https://github.com/takahirom/roborazzi/compare/1.12.0...1.13.0) ##### Add experimental, minimal support for iOS in Compose Multiplatform Roborazzi has supported Compose Desktop, but we hadn't yet supported iOS, which could be a major use case for Compose Multiplatform. Therefore, I have added support for iOS. Now, you can record, compare, and verify just as you would with Android support. https://takahirom.github.io/roborazzi/compose-multiplatform.html#experimental-feature-ios-support ![ios_button_compare](https://github.com/takahirom/roborazzi/assets/1386930/2d7a8faf-f57f-4543-bade-b1aef82ed15a) However, Roborazzi is fundamentally based on the JVM. Currently, we offer only minimal features. If you are interested in helping to improve these features, please take a look at these issues: [https://github.com/takahirom/roborazzi/issues/302](https://github.com/takahirom/roborazzi/issues/302) [https://github.com/takahirom/roborazzi/issues/305](https://github.com/takahirom/roborazzi/issues/305) ##### Changes Affecting Existing Support To support iOS, we have made some dependency changes for Android and Compose Desktop. I believe these changes will not affect existing behavior. However, if you notice anything, please let me know. All Kotlin: 1.8.22 -> 1.9.21 dropbox/differ: 0.0.1 -> 0.0.2 ##### Desktop Compose Version Compose Multiplatform: 1.4.3 -> 1.6.1 ##### What's Changed - Add Minimal Compose Multiplatform iOS Support by [@​takahirom](https://github.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/301](https://github.com/takahirom/roborazzi/pull/301) - \[docs]Fix docs page by [@​takahirom](https://github.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/303](https://github.com/takahirom/roborazzi/pull/303) - \[docs]Fix docs by [@​takahirom](https://github.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/304](https://github.com/takahirom/roborazzi/pull/304) - Add roborazzi-painter ios file for building klib by [@​takahirom](https://github.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/306](https://github.com/takahirom/roborazzi/pull/306) - \[CI]Fix false positive diff in Roborazzi CI by using the same platform for store and compare by [@​takahirom](https://github.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/307](https://github.com/takahirom/roborazzi/pull/307) - Remove unneeded jvm form compose ios by [@​takahirom](https://github.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/308](https://github.com/takahirom/roborazzi/pull/308) - Fix task and fix ios recording by [@​takahirom](https://github.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/310](https://github.com/takahirom/roborazzi/pull/310) - Fix iOS recording path by [@​takahirom](https://github.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/311](https://github.com/takahirom/roborazzi/pull/311) - Fix iOS golden path and report time logic by [@​takahirom](https://github.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/312](https://github.com/takahirom/roborazzi/pull/312) - Fix iOS comparison logic by [@​takahirom](https://github.com/takahirom) in [https://github.com/takahirom/roborazzi/pull/313](https://github.com/takahirom/roborazzi/pull/313) **Full Changelog**: takahirom/roborazzi@1.12.0...1.13.0 </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about these updates again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zMTMuMSIsInVwZGF0ZWRJblZlciI6IjM3LjMxMy4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->
Did you have any library in mind for this? I see these Which do you think will be more appropriate for Roborazzi? If we agree on one, I don't mind picking this issue to work on. Let me know. |
@eyedol @RyuNen344 |
@takahirom thanks for your quick response. Yeah I think so too,
If it's not a concern, I guess we can run away with using it. And yes let's see what RyuNen344 says... |
@takahirom Since kotlinx-io is built upon Okio's implementation, both libraries should function with Roborazzi. kotlinx-io
Okio
Roborazzi likely doesn't necessitate stream or encryption stream handling, so kotlinx-io might suffice for basic file I/O needs. If you foresee complex file operations or stream processing in the future, Okio offers a richer feature set. Ultimately, the choice depends on your project's requirements. Both libraries are well-maintained by reputable organizations. |
@takahirom I believe per @RyuNen344 comprehensive response, it's safe to say that we can use |
We're using java.io.File which is not compatible with Kotlin Multiplatform (KMP). We need to replace it with a KMP-friendly alternative to achieve cross-platform compatibility like iOS
The text was updated successfully, but these errors were encountered: