build: update Paparazzi to 2.0.0-alpha05 - #3937
Closed
AlvaroBrey wants to merge 1 commit into
Closed
Conversation
📸 Snapshot Test31 modified, 590 unchanged
🛸 Powered by Emerge Tools |
AlvaroBrey
force-pushed
the
build/bump-paparazzi
branch
from
August 11, 2026 16:22
5f2ed7c to
b7f28bf
Compare
AlvaroBrey
force-pushed
the
build/bump-kotlin-poko
branch
from
August 13, 2026 09:21
985d606 to
e9f498e
Compare
AlvaroBrey
force-pushed
the
build/bump-paparazzi
branch
from
August 13, 2026 09:21
b7f28bf to
1e86caf
Compare
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## build/bump-kotlin-poko #3937 +/- ##
=======================================================
Coverage 82.72% 82.72%
=======================================================
Files 425 425
Lines 17472 17472
Branches 2629 2629
=======================================================
Hits 14453 14453
Misses 2132 2132
Partials 887 887 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
AlvaroBrey
force-pushed
the
build/bump-kotlin-poko
branch
from
August 13, 2026 09:52
e9f498e to
0912ec0
Compare
AlvaroBrey
force-pushed
the
build/bump-paparazzi
branch
from
August 13, 2026 09:52
1e86caf to
9353c88
Compare
AlvaroBrey
force-pushed
the
build/bump-kotlin-poko
branch
from
August 13, 2026 10:34
0912ec0 to
1382809
Compare
alpha02 cannot run on Gradle 9: its plugin reads AGP's BaseExtension, which AGP 9 removes (cashapp/paparazzi#2095), and its forked test-report renderer calls the changed internal TestResultsProvider.hasOutput, crashing record/verify (cashapp/paparazzi#2227). alpha05 fixes both: verified against the alpha05 tag's source that PaparazziPlugin.kt now uses com.android.build.api.dsl.CommonExtension with no BaseExtension reference, and branches on isAgpAtLeast(9). Requires Kotlin 2.2.10 (alpha05 ships kotlin-stdlib 2.3.0), which is why the stale "can't use alpha04" comment goes away with it. Golden images are deliberately not re-recorded. The two committed ui/debugview snapshots pass on CI but fail locally on macOS both before and after this bump, by near-identical margins (0.047%/0.455% on alpha02 vs 0.055%/0.467% on alpha05), so the local delta is rendering-environment noise rather than drift. Re-recording here would bake macOS output into images CI verifies on Linux.
AlvaroBrey
force-pushed
the
build/bump-paparazzi
branch
from
August 13, 2026 10:34
9353c88 to
1c2e5a2
Compare
Member
Author
|
See #3934 (comment) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Part of the AGP 9 upgrade pre-work. Paparazzi alpha02 cannot run on Gradle 9 in two separate ways, so it has to move before the AGP/Gradle bump.
Agent description
Motivation
Part of the AGP 9 upgrade, split into small independently-shippable PRs. Paparazzi is a hard
prerequisite for Gradle 9, for the two reasons in the summary above.
The AGP-9 support claim needed checking, because the sources conflict. The alpha05 changelog
says "This release supports pre-AGP 9.0 consumers", which reads like AGP 9 is unsupported, and
the PR carrying the AGP-9 API migration (cashapp/paparazzi#2106, "[DNM] AGP 9.0 API Changes") was
closed unmerged. Resolved it against the
2.0.0-alpha05tag's actual source instead:PaparazziPlugin.ktimportscom.android.build.api.dsl.CommonExtensionand contains noBaseExtensionreference at all, so the migration did land, just via a different change.isAgpAtLeast(major = 9), used to enable ASM instrumentation on AGP 9+: anAGP-9-aware feature branch, not a version cap.
CarouselComponentView#2095 isclosed / completed, milestoned2.0.0-alpha05.So alpha05 supports AGP 9, and the changelog line means it also retains pre-AGP-9 support.
On the golden images. alpha05 bumps LayoutLib 16.1.1 → 16.2.1 and Compose to 1.11.2, which can
legitimately shift rendering, so the two committed
ui/debugviewPNGs were the main risk. What themeasurements showed:
notConfiguredconfiguredBoth already fail locally on unmodified
mainby the first row's margins, whileci/circleci: test_defaults_debugis green onmain(that job runstestDefaultsDebugUnitTestacross all modules, which includes
DebugViewSnapshotTest). So the goldens match CI's Linuxrendering and simply do not match macOS. alpha05 adds roughly +0.008% / +0.012% on top of that
pre-existing gap, which is the same order as the environment noise itself.
Re-recording on macOS would therefore replace CI-valid images with locally-valid ones and break the
job that currently passes. Leaving them untouched; CI is the authority here, and if alpha05's
rendering change does cross the threshold on Linux,
test_defaults_debugon this PR will say so.Description
gradle/libs.versions.toml:paparrazzi(sic)2.0.0-alpha02→2.0.0-alpha05, and removed thenow-false
# Can't use alpha04 because it requires higher Kotlin version than we're usingcomment, which this PR's Kotlin dependency resolves.
Also checked while here, no changes needed:
fastlane/Fastfile's<module>:recordPaparazziDebug(which has no flavor, while both modulescarry the
apisdimension) resolves correctly torecordPaparazziDefaultsDebugvia Gradle'scamel-case abbreviation. Confirmed with
--dry-run.fastlane/Fastfilecarries a commented-outpaparazzi.snapshot.dirproperty noting it isunsupported in the current version. Left alone; not required here and worth its own look.
Tested: build configures cleanly on Kotlin 2.2.10 with no stdlib conflict;
:ui:revenuecatui:testDefaultsDebugUnitTest1678/1679 pass, the single failure being thepre-existing
PaywallComponentsTemplatePreviewRecordererror from an uninitializedupstream/paywall-preview-resourcessubmodule in this environment;detektAllclean;:ui:debugview:recordPaparazziDefaultsDebugstill succeeds, so the path CI actually uses works(re-recorded output was reverted, goldens are byte-identical to
main).