diff --git a/CHANGELOG.md b/CHANGELOG.md index dd3002a93b..7d866c25cd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,34 @@ Change Log ========== +## Version 1.0.0 +_2022-06-03_ + +### New +* Support for Composable snapshots +* Migrate Paparazzi to layoutlib Bumblebee 2021.1.1 for better rendering and API 31 support +* Update Paparazzi configuration via new `unsafeUpdateConfig` method instead of `snapshot`/`gif` +* Cache Paparazzi bootstrap logic for better performance per test suite +* Surface internally thrown exceptions from layoutlib +* Throw a more helpful exception if Android platform is missing +* Bump default compileSdk to API 31 +* Compose 1.1.1 +* Kotlin 1.6.10 +* [Gradle Plugin] Gradle 7.4.2 +* [Gradle Plugin] Android Gradle Plugin 7.1.2 + +### Fixed +* Prepend paths with file:// for clickable error output in IDE +* Update default SDK path on Linux +* Fix accessibility test logic to avoid unnecessary coloring changes on updated view ids +* Fixes crash when using InputMethodManager to show/hide keyboard +* Temporarily work around Compose runtime memory leaks +* [Gradle Plugin] Prefer namespace DSL declaration over manifest package declaration +* [Gradle Plugin] Publish plugin marker on snapshot builds +* [Gradle Plugin] Exclude androidTest sourceSets during paparazzi runs + +Kudos to @luis-cortes, @nak5ive, @alexvanyo, @gamepro65 and others for contributions this release! + ## Version 0.9.3 _2022-01-20_ @@ -33,7 +61,7 @@ Kudos to @luis-cortes, @geoff-powell, @autonomousapps and @LuK1709 for their con _2021-11-22_ ### New -* Migrate Paparazzi to layoutlib Arctic Fox 2020.3.1, providing native support for M1 machines +* Migrate Paparazzi to layoutlib Arctic Fox 2020.3.1, providing native support for M1 machines * Migrate Paparazzi to layoutlib 4.2, unlocking future Compose support * Add support for projects enabling non-transitive resources * RenderExtension now visits view hierarchy pre-rendering instead of layering bitmaps post-rendering @@ -49,8 +77,8 @@ _2021-11-22_ * Don't generate empty mov files on snapshot failure * Add Kotlin platform bom to prevent classpath conflicts during test builds * Use correct default Android SDK path on Windows -* Use platform-agnostic file paths in Gradle artifacts to support remote caching across platforms -* Use platform-agnostic file paths in Javascript for web page support on Windows +* Use platform-agnostic file paths in Gradle artifacts to support remote caching across platforms +* Use platform-agnostic file paths in Javascript for web page support on Windows * Fix font scaling issue in AccessibilityRenderExtension by using bundled font Kudos to @luis-cortes, @geoff-powell and @TWiStErRob for their contributions this release! diff --git a/README.md b/README.md index 3b673a6135..16d4da1465 100644 --- a/README.md +++ b/README.md @@ -9,15 +9,15 @@ class LaunchViewTest { val paparazzi = Paparazzi( deviceConfig = PIXEL_5, theme = "android:Theme.Material.Light.NoActionBar" - // ...see docs for more options + // ...see docs for more options ) - + @Test fun simple() { val view = paparazzi.inflate(R.layout.launch) - // or... + // or... // val view = LaunchView(paparazzi.context) - + view.setModel(LaunchModel(title = "paparazzi")) paparazzi.snapshot(view) } @@ -32,14 +32,14 @@ Tasks $ ./gradlew sample:testDebug ``` -Runs tests and generates an HTML report at `sample/build/reports/paparazzi/` showing all -test runs and snapshots. +Runs tests and generates an HTML report at `sample/build/reports/paparazzi/` showing all +test runs and snapshots. ``` $ ./gradlew sample:recordPaparazziDebug ``` -Saves snapshots as golden values to a predefined source-controlled location +Saves snapshots as golden values to a predefined source-controlled location (defaults to `src/test/snapshots`). ``` @@ -110,7 +110,7 @@ buildscript { google() } dependencies { - classpath 'app.cash.paparazzi:paparazzi-gradle-plugin:0.9.3' + classpath 'app.cash.paparazzi:paparazzi-gradle-plugin:1.0.0' } } @@ -120,7 +120,7 @@ apply plugin: 'app.cash.paparazzi' Using the plugins DSL: ```groovy plugins { - id 'app.cash.paparazzi' version '0.9.3' + id 'app.cash.paparazzi' version '1.0.0' } ``` @@ -135,32 +135,6 @@ Snapshots of the development version are available in [Sonatype's `snapshots` re } ``` -Known Limitations -------- - -#### Running Tests from the IDE -``` -java.lang.NullPointerException - at java.base/java.io.File.(File.java:278) - at app.cash.paparazzi.EnvironmentKt.detectEnvironment(Environment.kt:36) -``` -Running tests from the IDE requires Android Studio Arctic Fox or later. - -#### Could not find ... resource matching value 0x... (resolved name: ...) in current configuration. -``` -Could not find dimen resource matching value 0x10500C0 (resolved name: config_scrollbarSize) in current configuration. -android.content.res.Resources$NotFoundException: Could not find dimen resource matching value 0x10500C0 (resolved name: config_scrollbarSize) in current configuration. - -Could not find integer resource matching value 0x10E00B4 (resolved name: config_screenshotChordKeyTimeout) in current configuration. -android.content.res.Resources$NotFoundException: Could not find integer resource matching value 0x10E00B4 (resolved name: config_screenshotChordKeyTimeout) in current configuration. -``` -`compileSdkVersion` has to be 29 or higher. -```groovy -android { - compileSdkVersion 29 -} -``` - License ------- @@ -180,8 +154,8 @@ See the License for the specific language governing permissions and limitations under the License. ``` - [changelog]: https://cashapp.github.io/paparazzi/changelog/ [paparazzi]: https://cashapp.github.io/paparazzi/ [sample]: https://github.com/cashapp/paparazzi/tree/master/sample - [snap]: https://oss.sonatype.org/content/repositories/snapshots/app/cash/paparazzi/ [lfs]: https://git-lfs.github.com/ + [changelog]: https://cashapp.github.io/paparazzi/changelog/ + [snap]: https://oss.sonatype.org/content/repositories/snapshots/app/cash/paparazzi/ diff --git a/gradle.properties b/gradle.properties index d0f4ce4fca..342a73098b 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,5 +1,5 @@ GROUP=app.cash.paparazzi -VERSION_NAME=1.0.0-SNAPSHOT +VERSION_NAME=1.0.0 POM_URL=https://github.com/cashapp/paparazzi/ POM_SCM_URL=https://github.com/cashapp/paparazzi/