* Remove legacy benchmark build type
Now that we have the baseline profile gradle plugin,
there is no need for a benchmark build type.
The plugin does the setup and configuration and runs against the
correct app flavor.
* Remove explicit benchmark build type from benchmark module
* Remove stale build task exclusions
* Fix tracing import location
FYI @mlykotom
As discussed in https://github.com/coil-kt/coil/issues/2097 the problem is caused by regitering system services, which will be fixed in 2.6.0
Change-Id: I9085309780508137f10b25ff82deed3c62e5d159
This way, we can load Coil's backend on a background thread and not block the MainThread with it.
Previously, the Coil image loader was initialized with the first composed image, which caused ~10ms duration and most likely skipped frames.
Change-Id: Iaa583b6adc1df7d7a51dbae1473e539f2c0b0b62
* Run dependencyGuard task during CI
Run the `dependencyGuard` task during CI, which will fail if there are
detected changes.
Change-Id: If5f2b18a4c765bd38a3353df2adaaa91cf1739c3
* Add actions to update dependency guard baselines
* Update baselines
* Better glob for update baselines action
- Reduce the visibility of multiple Hilt `Module`s and implementations of public interfaces
- Correctly configure the visibility of dependencies:
- `api` when it's part of it's public `api`
- `implementation` when it's part of it's internal `implementation`
- Remove unnecessary dependencies in build.gradle.kts files
- Remove unnecessary dependencies provided by plugins
- Remove unnecessary applied plugins (i.e. roborazzi)
- Sort dependencies in `build.gradle.kts`
- Delete unused entries in `libs.versions.toml`
- Remove unnecessary nullable types
- Replace no-op method bodies with Unit
- Convert to expression body
- Replace if with when
- Remove braces from 'when' entries
- Remove braces from if statement
- Convert to single line lambda
- oneline if/returns
- Replace 'contains' call with 'in' operator
Following this refactor, it could be great to envision a more "strict" code formatter like ktlint 1.0 (we are currently stuck at 0.48.1)
Baseline profile generation is disabled for the PR level Build task. Release tasks require a fresh baseline profile. A new profile is generated using the baseline profile Gradle plugin.
* Prepare for usage of dex layout optimizations which can be actively used once NiA switches to AGP 8.2+.
* Add GMD config to release build
* Switch to macos-latest
* Update names for StartupBenchmark tests to better reflect states
* Stable release and recent GMD device
* Reduce flakiness by adding wait to benchmark
* More convenient waiting for objects
* Rename junit dependency to androidx-junit
* Only run baseline profile benchmarks during GH workflow
* Enable automatic BP generation for only release builds
* Disable BP generation from Build workflow
* Specify modules and skip benchmarking Build workflow
Bug: b/299334172
* Moved protobuf to separate module to avoid having to wire KSP's Plugin with the Protobuf Plugin.
* `@Binds` function cannot be an extension function.
* Commented `kotlin.compiler.execution.strategy=in-process` in CI to circumvent OOMs due to increased metaspace usage.
* [CI] Runs build in macos to generate a cache for androidTest runs
* Build projects before running emulator
* Fixes flaky coroutines test
* Moves spotless up in local tests job
* Enables config cache by setting problems to warn. Fixes#1022
- Prevent logging multiple times (because of `onResume()` callback)
- Remove unnecessary io dispatcher: `ListenableFuture<T>.await()` is already main-safe and prevent acquiring io slot.
- Merge comments into a single javadoc comment on the `ProfileVerifierLogger` type.
- Add proper javadoc format with markdown specific blocks.
- Update logs & tag to be more uniform.
Closes#945
* WIP: Adds screenshot tests to :core:designsystem
Change-Id: I0672845feba4064652dd8d60f07047b87864e121
* 🤖 Updates screenshots
* Creates tests for more components and cleans up
Change-Id: I61fe3ae6a4e8a41a599d520e16fc14aa6a643a22
* WIP: More cleanup and more combinations of themes
Change-Id: I34312bc7d147b31f1c638cd505a9c241f8267523
* Added the rest of the screenshot tests for designsystem
Change-Id: Ic427db5491910781c038882055524e3f3dbed194
* Some more cleanup
Change-Id: I7384e55864719af9122ad9da8e50a09cb9a60180
* Spotless
Change-Id: I22aa46e1f56b8b638c9d609ababbe49d471a26c6
* 🤖 Updates screenshots
* ScreenshotHelper cleanup
Change-Id: Ic94d41618e7850ab47f294d8022b405f18c843f0
* Adds screenshot tests using Roborazzi (Robolectric Native Graphics)
- Adds Roborazzi to convention plugins
- Adds Screenshot helper in :core-testing
- Creates screenshot suites for :app and :feature-foryou
* CI and spotless
* Moves :app tests to testDemo and makes NiaAppScreenSizesScreenshotTests prettier
* CI: Moves local tests to their own step
* CI: Adds --rerun to screenshot task
* CI: Moves screenshots before local tests
* CI: Fixes wrong if statement in workflow
* CI WIP: trying to trigger the push step
* CI: Re-enables roborazzi verification
* Fixes flaky screenshot tests by setting LocalInspectionMode on
* CI: screenshot commits now use the original author intead of bot account
* CI: Disables globbing because file_pattern didn't work
* CI: Trying new file pattern for png files
* CI: Adds a check for forks
* 🤖 Updates screenshots
* Code review: toml cleanup, comments
* Use new github.event.pull_request.head.repo.fork
Co-authored-by: Simon Marquis <contact@simon-marquis.fr>
* Uses Robolectric qualifiers to set the dpi, adds section to README
* Spotless
* Delegates creation of repository to Hilt in test
* Revert "Use new github.event.pull_request.head.repo.fork"
* 🤖 Updates screenshots
* Empty commit to trigger GHA on main branch
* Makes time zones deterministic in screenshot tests
* Increases GMD timeout to 90m, but it has to be reduced
---------
Co-authored-by: Simon Marquis <contact@simon-marquis.fr>
By looking at the Gradle scan's dependency tab, junit 4.12 is already replaced by 4.13.2.
There is no need to manually force this at the configuration level.