Closed ZacSweers closed 3 years ago
One proposal for supporting these going forward could be to make AGP handling separate artifacts and implemented via service loader. Then these artifacts could be versioned separately (i.e. with matching -alpha13
or similar qualifiers to match the AGP version they target). That would help with semver, and is likely the only reasonable way I can think of for supporting unreleased versions. Then when it's stable, move the implementation into the main artifact as the default. If that sounds reasonable, I can take a crack at a PR
@ZacSweers - that sounds interesting. But if we change the default when a version of AGP is released/stable, doesn't that effectively mean a breaking change for users of the Bugsnag plugin?
the default would be whatever your minimum supported AGP version is, and users would have to add the extension artifact for the version they need
Hey Zac, thanks for reporting this. We plan on looking at this after the API change has stabilised and AGP 4.2-beta is released, as this shouldn't be too far away. If it's possible to workaround the API change using reflection we'll probably go with that approach to maintain backwards compatibility across all versions - otherwise we'll consider using the service loader approach or perhaps re-evaluating the versions of AGP we support depending on the difficulty of a fix.
Just to note - beta releases of AGP don't inherently imply API stability. They use gradle's @Incubating
annotation instead for communicating API (in)stability. Waiting for 4.2 beta will not likely have any bearing on API stability
In this case the upcoming canary14 is known to have some further API changes, so it's likely that any time spent looking at this now could be wasted effort. We recognize that the API is marked as @Incubating
and is therefore unstable, but are hoping that there's less risk of further changes in a beta version than there would in the canary channel.
I see this is closed but I'm still experiencing this issue with Bugsnag 5.4.0
Hey @rwmorey71, this issue is still open, and is on our radar. https://github.com/bugsnag/bugsnag-js/issues/1100 was closed as it was a duplicate.
This has been fixed in #350 by using a Groovy shim to access the old API on 4.1, which avoided the need for a service loader pattern. A release should be coming soon
Closing as it appears to be resolved
Describe the bug
When used with AGP 4.2.0-alpha13, this error occurs during configuration
This is unfortunate, as basically what's happened is that while a new API was introduced in 4.1 to replace the previous API that was used in 4.0 and older, the new API is not stable yet and was changed.
Environment
Example Repo
https://github.com/zacsweers/catchup and just update the AGP version in buildSrc/build.gradle.kts