bugsnag / bugsnag-android

BugSnag crash monitoring and reporting tool for Android apps
https://www.bugsnag.com/platforms/android/
Other
1.19k stars 205 forks source link

Replaced the buildSrc plugin with discrete build files #2107

Closed lemnik closed 6 hours ago

lemnik commented 1 week ago

Goal

Break up the build plugin moving the majority of the build logic back into the build.gradle.kts files.

The build plugin within buildSrc created a Gradle classpath structure and plugin application order that has blocked various upgrades (AGP and Kotlin mostly). By splitting up the build plugin and moving to simpler utility functions, we can upgrade components and then migrate more of the build logic back into utilities when/if we can.

Design

The common version details have been rearranged within the Versions object, which now includes a ModuleWithVersion utility class. This serves a similar purpose to a Gradle Version catalog, but can easily be used from within the build sources (buildSrc) and therefore used within utility functions (such as addCommonModuleDependencies() and loadDefaultPlugins()).

Testing

The existing build steps all still work without change. Manually published to Sonatype staging repository.

bugsnagbot commented 1 week ago

Android notifier sizes

Format Size impact of Bugsnag (kB) Size impact of Bugsnag when Minified (kB)
APK 1864.02 1675.78
arm64_v8a 643.33 450.82
armeabi_v7a 577.8 385.29
x86 717.04 528.62
x86_64 688.38 495.86

Generated by :no_entry_sign: Danger