Skip to content

Switch from Roborazzi to Paparazzi for snapshot testing#767

Open
runningcode wants to merge 18 commits intomainfrom
no/switch-roborazzi-to-paparazzi
Open

Switch from Roborazzi to Paparazzi for snapshot testing#767
runningcode wants to merge 18 commits intomainfrom
no/switch-roborazzi-to-paparazzi

Conversation

@runningcode
Copy link
Copy Markdown
Contributor

@runningcode runningcode commented Mar 18, 2026

Replace Roborazzi plugin with Paparazzi for snapshot generation.

This PR also updates to Gradle 9.1 because paparazzi requires it.

🤖 Generated with Claude Code

@runningcode runningcode force-pushed the no/switch-roborazzi-to-paparazzi branch from 5305a6a to 18adf8b Compare March 19, 2026 07:46
@emerge-tools
Copy link
Copy Markdown

emerge-tools bot commented Mar 19, 2026

🛰️ Build Distribution

Build available for installation

App Name App ID Platform Version Tag Install Page
Hacker News com.emergetools.hackernews android 1.0.6 release 🔗 Install Build

🛸 Powered by Emerge Tools

@sentry
Copy link
Copy Markdown

sentry bot commented Mar 19, 2026

Sentry Build Distribution

App Name App ID Version Configuration Install Page
Hacker News com.emergetools.hackernews 1.0.6 (17) release Install Build

@emerge-tools
Copy link
Copy Markdown

emerge-tools bot commented Mar 19, 2026

📸 Snapshot Test

Base build not found

No build was found for the base commit a79c91d. This is required to generate a snapshot diff for your pull request.

It's possible that you created a branch off the base commit before all of the CI steps have finished processing, e.g. the one that uploads a build to our system. If that's the case, no problem! Just wait and this will eventually resolve.


🛸 Powered by Emerge Tools

uses: actions/setup-java@v5
with:
java-version: "17"
java-version: "21"
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

paparazzi 2.0.0-alpha4 requires jdk 21.

distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.4-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-9.1.0-bin.zip
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

paparazzi requires Gradle 9.1+

@runningcode runningcode force-pushed the no/switch-roborazzi-to-paparazzi branch from 7057c21 to 57e8120 Compare March 20, 2026 09:52
@runningcode runningcode force-pushed the no/switch-roborazzi-to-paparazzi branch from 02772aa to ef8328a Compare April 2, 2026 15:23
getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro"
)
signingConfig = signingConfigs.getByName("debug")
enableUnitTestCoverage = false
Copy link
Copy Markdown
Contributor Author

@runningcode runningcode Apr 2, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is just here in order to test a bug where users could disable unit tests for specific variants and the auto-wiring would fail trying to find a non-existent task.

snapshotsPath.set(
project.extensions.getByType<RoborazziExtension>().outputDir
)
snapshots {
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Here's our API! Everything else is wired up automatically when the paparazzi plugin is detected.

runningcode and others added 9 commits April 2, 2026 18:07
Replace Roborazzi with Paparazzi for snapshot generation and wire the
sentryUploadSnapshotsRelease task to consume Paparazzi's output
directory.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Instead of hardcoding the snapshot directory path, use the output
directory registered by Paparazzi on testDebugUnitTest.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Instead of fragile name matching on "snapshots", use the registered
property name "paparazzi.snapshots.output.dir" to find the output dir.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The Gradle public API doesn't expose task output properties by name.
The withPropertyName API is only for up-to-date checking, not lookup.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Upgrade SAGP from 6.3.0-alpha.01 to 6.4.0-alpha.1
- Switch Paparazzi plugin to use version catalog alias
- Remove Roborazzi dependencies and plugin references
- Add SENTRY_DONT_IGNORE_DEBUG env var to CI snapshot job
- Conditionally include debug in ignoredVariants based on env var
- Remove manual afterEvaluate snapshot path wiring
- Add mavenLocal() to plugin repositories

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
runningcode and others added 9 commits April 2, 2026 18:07
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…ebug

Remove manual snapshotsPath wiring and let SAGP resolve it automatically.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Configure the sentryUploadSnapshotsDebug task to resolve the snapshots
path from the testDebugUnitTest task outputs, and upgrade SAGP to
6.4.0-alpha.3.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Replace the manual afterEvaluate task wiring with the new SAGP
snapshots DSL block. Also remove the SENTRY_DONT_IGNORE_DEBUG
workaround and disable unit test coverage for release builds.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@runningcode runningcode force-pushed the no/switch-roborazzi-to-paparazzi branch from c516a51 to e016669 Compare April 2, 2026 16:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant