Fixed
Status Update
Comments
al...@google.com <al...@google.com> #2
Hi Ed, Thank you so much for these suggestions. I've been reviewing them and merging them in. Hopefully it should be live. I've included a thank you note too in the article.
ni...@google.com <ni...@google.com> #3
Great! Thanks a lot, I'll look for the live updates soon!
du...@google.com <du...@google.com> #4
To be clear I'm not suggesting that we change the name to @OptIn, just that we make sure we support and are compatible with kotlin's @OptIn.
Also any kotlin samples and documentation we have should point to @OptIn over @UseExperimental.
al...@google.com <al...@google.com> #5
Re #4, understood. My argument in #2 is against my own default reaction to the change.
For docs, I can go ahead and update the API guidelines. Though... our own @UseExperimental
annotation works in Kotlin as well. If we're going to diverge from @OptIn
for Java, it may be better to consistently use one annotation across both languages.
al...@google.com <al...@google.com>
al...@google.com <al...@google.com> #6
Merged! That was awful.
ap...@google.com <ap...@google.com> #7
Project: platform/frameworks/support
Branch: androidx-master-dev
commit 89b60486595decdd61d718aee5d4276c2803cb89
Author: Alan Viverette <alanv@google.com>
Date: Mon Oct 05 21:00:39 2020
Update annotation-experimental to support RequiresOptIn
Fixes: 151331381
Test: RequiresOptInDetectorTest
Relnote: "The androidx variant of the Experimental annotation has been
deprecated to provide parity with Kotlin. It has been replaced by the
RequiresOptIn annotation, and the Java-facing linter has been updated to
support both the new Kotlin annotation and the new androidx variant."
Change-Id: I52495721777cf9d2243a825fc491e59c031d2e96
M annotation/annotation-experimental-lint/integration-tests/build.gradle
A annotation/annotation-experimental-lint/integration-tests/lint-baseline.xml
M annotation/annotation-experimental-lint/integration-tests/src/main/java/sample/experimental/DateProvider.java
M annotation/annotation-experimental-lint/integration-tests/src/main/java/sample/experimental/DateProviderKt.kt
M annotation/annotation-experimental-lint/integration-tests/src/main/java/sample/experimental/ExperimentalDateTime.java
M annotation/annotation-experimental-lint/integration-tests/src/main/java/sample/experimental/ExperimentalDateTimeKt.kt
M annotation/annotation-experimental-lint/integration-tests/src/main/java/sample/experimental/ExperimentalLocation.java
M annotation/annotation-experimental-lint/integration-tests/src/main/java/sample/experimental/ExperimentalLocationKt.kt
M annotation/annotation-experimental-lint/integration-tests/src/main/java/sample/experimental/LocationProvider.java
M annotation/annotation-experimental-lint/integration-tests/src/main/java/sample/experimental/LocationProviderKt.kt
M annotation/annotation-experimental-lint/integration-tests/src/main/java/sample/experimental/TimeProviderKt.kt
M annotation/annotation-experimental-lint/integration-tests/src/main/java/sample/experimental/UseJavaExperimentalFromJava.java
M annotation/annotation-experimental-lint/integration-tests/src/main/java/sample/experimental/UseJavaExperimentalFromKt.kt
M annotation/annotation-experimental-lint/integration-tests/src/main/java/sample/experimental/UseJavaPackageFromJava.java
M annotation/annotation-experimental-lint/integration-tests/src/main/java/sample/experimental/UseJavaPackageFromKt.kt
M annotation/annotation-experimental-lint/integration-tests/src/main/java/sample/experimental/UseKtExperimentalFromJava.java
M annotation/annotation-experimental-lint/integration-tests/src/main/java/sample/experimental/foo/Bar.java
M annotation/annotation-experimental-lint/integration-tests/src/main/java/sample/experimental/foo/ExperimentalPackage.java
M annotation/annotation-experimental-lint/integration-tests/src/main/java/sample/experimental/foo/package-info.java
M annotation/annotation-experimental-lint/integration-tests/src/main/java/sample/optin/DateProvider.java
M annotation/annotation-experimental-lint/integration-tests/src/main/java/sample/optin/DateProviderKt.kt
M annotation/annotation-experimental-lint/integration-tests/src/main/java/sample/optin/ExperimentalDateTime.java
M annotation/annotation-experimental-lint/integration-tests/src/main/java/sample/optin/ExperimentalDateTimeKt.kt
M annotation/annotation-experimental-lint/integration-tests/src/main/java/sample/optin/ExperimentalLocation.java
M annotation/annotation-experimental-lint/integration-tests/src/main/java/sample/optin/ExperimentalLocationKt.kt
M annotation/annotation-experimental-lint/integration-tests/src/main/java/sample/optin/LocationProvider.java
M annotation/annotation-experimental-lint/integration-tests/src/main/java/sample/optin/LocationProviderKt.kt
M annotation/annotation-experimental-lint/integration-tests/src/main/java/sample/optin/TimeProviderKt.kt
M annotation/annotation-experimental-lint/integration-tests/src/main/java/sample/optin/UseJavaExperimentalFromJava.java
M annotation/annotation-experimental-lint/integration-tests/src/main/java/sample/optin/UseJavaExperimentalFromKt.kt
M annotation/annotation-experimental-lint/integration-tests/src/main/java/sample/optin/UseJavaPackageFromJava.java
M annotation/annotation-experimental-lint/integration-tests/src/main/java/sample/optin/UseJavaPackageFromKt.kt
M annotation/annotation-experimental-lint/integration-tests/src/main/java/sample/optin/UseKtExperimentalFromJava.java
M annotation/annotation-experimental-lint/integration-tests/src/main/java/sample/optin/foo/Bar.java
M annotation/annotation-experimental-lint/integration-tests/src/main/java/sample/optin/foo/ExperimentalPackage.java
M annotation/annotation-experimental-lint/integration-tests/src/main/java/sample/optin/foo/package-info.java
M annotation/annotation-experimental-lint/src/main/java/androidx/annotation/experimental/lint/ExperimentalDetector.kt
M annotation/annotation-experimental-lint/src/test/kotlin/androidx/annotation/experimental/lint/ExperimentalDetectorTest.kt
A annotation/annotation-experimental-lint/src/test/kotlin/androidx/annotation/experimental/lint/RequiresOptInDetectorTest.kt
M annotation/annotation-experimental/api/current.txt
M annotation/annotation-experimental/api/public_plus_experimental_current.txt
M annotation/annotation-experimental/api/restricted_current.txt
A annotation/annotation-experimental/src/main/java/androidx/annotation/OptIn.kt
A annotation/annotation-experimental/src/main/java/androidx/annotation/RequiresOptIn.kt
M annotation/annotation-experimental/src/main/java/androidx/annotation/experimental/Experimental.kt
M annotation/annotation-experimental/src/main/java/androidx/annotation/experimental/UseExperimental.kt
M camera/camera-camera2-pipe-integration/src/androidTest/java/androidx/camera/camera2/pipe/integration/InitializationTest.kt
M camera/camera-lifecycle/src/androidTest/java/androidx/camera/lifecycle/ProcessCameraProviderTest.kt
M camera/camera-lifecycle/src/main/java/androidx/camera/lifecycle/ExperimentalCameraProviderConfiguration.java
M camera/camera-lifecycle/src/main/java/androidx/camera/lifecycle/ExperimentalUseCaseGroupLifecycle.java
M camera/camera-lifecycle/src/main/java/androidx/camera/lifecycle/ProcessCameraProvider.java
M paging/samples/src/main/java/androidx/paging/samples/java/RemoteMediatorGuavaItemKeyedSample.java
M paging/samples/src/main/java/androidx/paging/samples/java/RemoteMediatorGuavaPageKeyedSample.java
M paging/samples/src/main/java/androidx/paging/samples/java/RemoteMediatorRxItemKeyedSample.java
M paging/samples/src/main/java/androidx/paging/samples/java/RemoteMediatorRxPageKeyedSample.java
https://android-review.googlesource.com/1377800
Branch: androidx-master-dev
commit 89b60486595decdd61d718aee5d4276c2803cb89
Author: Alan Viverette <alanv@google.com>
Date: Mon Oct 05 21:00:39 2020
Update annotation-experimental to support RequiresOptIn
Fixes: 151331381
Test: RequiresOptInDetectorTest
Relnote: "The androidx variant of the Experimental annotation has been
deprecated to provide parity with Kotlin. It has been replaced by the
RequiresOptIn annotation, and the Java-facing linter has been updated to
support both the new Kotlin annotation and the new androidx variant."
Change-Id: I52495721777cf9d2243a825fc491e59c031d2e96
M annotation/annotation-experimental-lint/integration-tests/build.gradle
A annotation/annotation-experimental-lint/integration-tests/lint-baseline.xml
M annotation/annotation-experimental-lint/integration-tests/src/main/java/sample/experimental/DateProvider.java
M annotation/annotation-experimental-lint/integration-tests/src/main/java/sample/experimental/DateProviderKt.kt
M annotation/annotation-experimental-lint/integration-tests/src/main/java/sample/experimental/ExperimentalDateTime.java
M annotation/annotation-experimental-lint/integration-tests/src/main/java/sample/experimental/ExperimentalDateTimeKt.kt
M annotation/annotation-experimental-lint/integration-tests/src/main/java/sample/experimental/ExperimentalLocation.java
M annotation/annotation-experimental-lint/integration-tests/src/main/java/sample/experimental/ExperimentalLocationKt.kt
M annotation/annotation-experimental-lint/integration-tests/src/main/java/sample/experimental/LocationProvider.java
M annotation/annotation-experimental-lint/integration-tests/src/main/java/sample/experimental/LocationProviderKt.kt
M annotation/annotation-experimental-lint/integration-tests/src/main/java/sample/experimental/TimeProviderKt.kt
M annotation/annotation-experimental-lint/integration-tests/src/main/java/sample/experimental/UseJavaExperimentalFromJava.java
M annotation/annotation-experimental-lint/integration-tests/src/main/java/sample/experimental/UseJavaExperimentalFromKt.kt
M annotation/annotation-experimental-lint/integration-tests/src/main/java/sample/experimental/UseJavaPackageFromJava.java
M annotation/annotation-experimental-lint/integration-tests/src/main/java/sample/experimental/UseJavaPackageFromKt.kt
M annotation/annotation-experimental-lint/integration-tests/src/main/java/sample/experimental/UseKtExperimentalFromJava.java
M annotation/annotation-experimental-lint/integration-tests/src/main/java/sample/experimental/foo/Bar.java
M annotation/annotation-experimental-lint/integration-tests/src/main/java/sample/experimental/foo/ExperimentalPackage.java
M annotation/annotation-experimental-lint/integration-tests/src/main/java/sample/experimental/foo/package-info.java
M annotation/annotation-experimental-lint/integration-tests/src/main/java/sample/optin/DateProvider.java
M annotation/annotation-experimental-lint/integration-tests/src/main/java/sample/optin/DateProviderKt.kt
M annotation/annotation-experimental-lint/integration-tests/src/main/java/sample/optin/ExperimentalDateTime.java
M annotation/annotation-experimental-lint/integration-tests/src/main/java/sample/optin/ExperimentalDateTimeKt.kt
M annotation/annotation-experimental-lint/integration-tests/src/main/java/sample/optin/ExperimentalLocation.java
M annotation/annotation-experimental-lint/integration-tests/src/main/java/sample/optin/ExperimentalLocationKt.kt
M annotation/annotation-experimental-lint/integration-tests/src/main/java/sample/optin/LocationProvider.java
M annotation/annotation-experimental-lint/integration-tests/src/main/java/sample/optin/LocationProviderKt.kt
M annotation/annotation-experimental-lint/integration-tests/src/main/java/sample/optin/TimeProviderKt.kt
M annotation/annotation-experimental-lint/integration-tests/src/main/java/sample/optin/UseJavaExperimentalFromJava.java
M annotation/annotation-experimental-lint/integration-tests/src/main/java/sample/optin/UseJavaExperimentalFromKt.kt
M annotation/annotation-experimental-lint/integration-tests/src/main/java/sample/optin/UseJavaPackageFromJava.java
M annotation/annotation-experimental-lint/integration-tests/src/main/java/sample/optin/UseJavaPackageFromKt.kt
M annotation/annotation-experimental-lint/integration-tests/src/main/java/sample/optin/UseKtExperimentalFromJava.java
M annotation/annotation-experimental-lint/integration-tests/src/main/java/sample/optin/foo/Bar.java
M annotation/annotation-experimental-lint/integration-tests/src/main/java/sample/optin/foo/ExperimentalPackage.java
M annotation/annotation-experimental-lint/integration-tests/src/main/java/sample/optin/foo/package-info.java
M annotation/annotation-experimental-lint/src/main/java/androidx/annotation/experimental/lint/ExperimentalDetector.kt
M annotation/annotation-experimental-lint/src/test/kotlin/androidx/annotation/experimental/lint/ExperimentalDetectorTest.kt
A annotation/annotation-experimental-lint/src/test/kotlin/androidx/annotation/experimental/lint/RequiresOptInDetectorTest.kt
M annotation/annotation-experimental/api/current.txt
M annotation/annotation-experimental/api/public_plus_experimental_current.txt
M annotation/annotation-experimental/api/restricted_current.txt
A annotation/annotation-experimental/src/main/java/androidx/annotation/OptIn.kt
A annotation/annotation-experimental/src/main/java/androidx/annotation/RequiresOptIn.kt
M annotation/annotation-experimental/src/main/java/androidx/annotation/experimental/Experimental.kt
M annotation/annotation-experimental/src/main/java/androidx/annotation/experimental/UseExperimental.kt
M camera/camera-camera2-pipe-integration/src/androidTest/java/androidx/camera/camera2/pipe/integration/InitializationTest.kt
M camera/camera-lifecycle/src/androidTest/java/androidx/camera/lifecycle/ProcessCameraProviderTest.kt
M camera/camera-lifecycle/src/main/java/androidx/camera/lifecycle/ExperimentalCameraProviderConfiguration.java
M camera/camera-lifecycle/src/main/java/androidx/camera/lifecycle/ExperimentalUseCaseGroupLifecycle.java
M camera/camera-lifecycle/src/main/java/androidx/camera/lifecycle/ProcessCameraProvider.java
M paging/samples/src/main/java/androidx/paging/samples/java/RemoteMediatorGuavaItemKeyedSample.java
M paging/samples/src/main/java/androidx/paging/samples/java/RemoteMediatorGuavaPageKeyedSample.java
M paging/samples/src/main/java/androidx/paging/samples/java/RemoteMediatorRxItemKeyedSample.java
M paging/samples/src/main/java/androidx/paging/samples/java/RemoteMediatorRxPageKeyedSample.java
Description
As of Kotlin 1.3.70 @UseExperimental has been deprecated in favor of @OptIn.
We should update our docs / recommendations for kotlin users accordingly in our Java @Experimental library and add lint compatibility with @OptIn.
Progress for upgrading AndroidX to Kotlin 1.3.70 can be tracked here:https://android-review.googlesource.com/c/platform/frameworks/support/+/1255674