-
Notifications
You must be signed in to change notification settings - Fork 10.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Figure out when to require Java 11 for new Guava versions #6614
Comments
I think I failed to actually mention the new "note I wanted to make about this," which was:
|
Notes: - The GWT bump requires changing the browser setting from "FF38" to "FF." - I skipped the `jsinterop-annotations` bump to 2.1.0 because it's built with `-target 11`, while we still support 8. (Closes #1147) (I've noted this in google/guava#6614) - The command I used is: ``` mvn org.codehaus.mojo:versions-maven-plugin:2.16.0:{update-properties,use-latest-releases} -DgenerateBackupPoms=false -Dexcludes=com.google.guava:guava ``` That tried to update protobuf to a release candidate. I had thought that perhaps this was the result of [a protobuf change from "-rc1" to "-rc-1"](protocolbuffers/protobuf#6522), but I'm wondering if it's actually just that `versions-maven-plugin` (in contrast to Dependabot) counts release candidates [as releases](https://www.mojohaus.org/versions/versions-maven-plugin/use-latest-releases-mojo.html)? I'd have to investigate further and perhaps [use `rulesUri`](https://stackoverflow.com/a/46935363/28465). But since we normally rely on Dependabot (and I was using `versions-maven-plugin` here only "to make things easier"... :)), I'm not going to worry about it now.
Notes: - The GWT bump requires changing the browser setting from "FF38" to "FF." - I skipped the `jsinterop-annotations` bump to 2.1.0 because it's built with `-target 11`, while we still support 8. (Closes #1147) (I've noted this in google/guava#6614) - The command I used is: ``` mvn org.codehaus.mojo:versions-maven-plugin:2.16.0:{update-properties,use-latest-releases} -DgenerateBackupPoms=false -Dexcludes=com.google.guava:guava ``` That tried to update protobuf to a release candidate. I had thought that perhaps this was the result of [a protobuf change from "-rc1" to "-rc-1"](protocolbuffers/protobuf#6522), but I'm wondering if it's actually just that `versions-maven-plugin` (in contrast to Dependabot) counts release candidates [as releases](https://www.mojohaus.org/versions/versions-maven-plugin/use-latest-releases-mojo.html)? I'd have to investigate further and perhaps [use `rulesUri`](https://stackoverflow.com/a/46935363/28465). But since we normally rely on Dependabot (and I was using `versions-maven-plugin` here only "to make things easier"... :)), I'm not going to worry about it now. ... Also, it looks like protobuf 4 might remove the `hasPresence()` method that we'd migrated to back in cl/508716698. If so, there's a good chance that the protobuf team will fix things for us :) If not, I'm assuming that this will relate to ["Editions."](https://protobuf.dev/editions/overview/)
Notes: - The GWT bump requires changing the browser setting from "FF38" to "FF." - I skipped the `jsinterop-annotations` bump to 2.1.0 because it's built with `-target 11`, while we still support 8. (Closes #1147) (I've noted this in google/guava#6614) - The command I used is: ``` mvn org.codehaus.mojo:versions-maven-plugin:2.16.0:{update-properties,use-latest-releases} -DgenerateBackupPoms=false -Dexcludes=com.google.guava:guava ``` That tried to update protobuf to a release candidate. I had thought that perhaps this was the result of [a protobuf change from "-rc1" to "-rc-1"](protocolbuffers/protobuf#6522), but I'm wondering if it's actually just that `versions-maven-plugin` (in contrast to Dependabot) counts release candidates [as releases](https://www.mojohaus.org/versions/versions-maven-plugin/use-latest-releases-mojo.html)? I'd have to investigate further and perhaps [use `rulesUri`](https://stackoverflow.com/a/46935363/28465). But since we normally rely on Dependabot (and I was using `versions-maven-plugin` here only "to make things easier"... :)), I'm not going to worry about it now. ... Also, it looks like protobuf 4 might remove the `hasPresence()` method that we'd migrated to back in cl/508716698. If so, there's a good chance that the protobuf team will fix things for us :) If not, I'm assuming that this will relate to ["Editions."](https://protobuf.dev/editions/overview/) Fixes #1149 Fixes #1148 Fixes #1146 Fixes #1145
It turns out that the latest release of jsinterop-annotations is built to require Java 11. That said:
|
Notes: - The GWT bump requires changing the browser setting from "FF38" to "FF." - I skipped the `jsinterop-annotations` bump to 2.1.0 because it's built with `-target 11`, while we still support 8. (Closes #1147) (I've noted this in google/guava#6614) - The command I used is: ``` mvn org.codehaus.mojo:versions-maven-plugin:2.16.0:{update-properties,use-latest-releases} -DgenerateBackupPoms=false -Dexcludes=com.google.guava:guava ``` That tried to update protobuf to a release candidate. I had thought that perhaps this was the result of [a protobuf change from "-rc1" to "-rc-1"](protocolbuffers/protobuf#6522), but I'm wondering if it's actually just that `versions-maven-plugin` (in contrast to Dependabot) counts release candidates [as releases](https://www.mojohaus.org/versions/versions-maven-plugin/use-latest-releases-mojo.html)? I'd have to investigate further and perhaps [use `rulesUri`](https://stackoverflow.com/a/46935363/28465). But since we normally rely on Dependabot (and I was using `versions-maven-plugin` here only "to make things easier"... :)), I'm not going to worry about it now. ... Also, it looks like protobuf 4 might remove the `hasPresence()` method that we'd migrated to back in cl/508716698. If so, there's a good chance that the protobuf team will fix things for us :) If not, I'm assuming that this will relate to ["Editions."](https://protobuf.dev/editions/overview/) Fixes #1149 Fixes #1148 Fixes #1146 Fixes #1145 Fixes #1150 RELNOTES=n/a PiperOrigin-RevId: 550553262
Notes: - The GWT bump requires changing the browser setting from "FF38" to "FF." - I skipped the `jsinterop-annotations` bump to 2.1.0 because it's built with `-target 11`, while we still support 8. (Closes #1147) (I've noted this in google/guava#6614) - The command I used is: ``` mvn org.codehaus.mojo:versions-maven-plugin:2.16.0:{update-properties,use-latest-releases} -DgenerateBackupPoms=false -Dexcludes=com.google.guava:guava ``` That tried to update protobuf to a release candidate. I had thought that perhaps this was the result of [a protobuf change from "-rc1" to "-rc-1"](protocolbuffers/protobuf#6522), but I'm wondering if it's actually just that `versions-maven-plugin` (in contrast to Dependabot) counts release candidates [as releases](https://www.mojohaus.org/versions/versions-maven-plugin/use-latest-releases-mojo.html)? I'd have to investigate further and perhaps [use `rulesUri`](https://stackoverflow.com/a/46935363/28465). But since we normally rely on Dependabot (and I was using `versions-maven-plugin` here only "to make things easier"... :)), I'm not going to worry about it now. ... Also, it looks like protobuf 4 might remove the `hasPresence()` method that we'd migrated to back in cl/508716698. If so, there's a good chance that the protobuf team will fix things for us :) If not, I'm assuming that this will relate to ["Editions."](https://protobuf.dev/editions/overview/) Fixes #1149 Fixes #1148 Fixes #1146 Fixes #1145 Fixes #1150 RELNOTES=n/a PiperOrigin-RevId: 550560426
Java 11 brought nestmates, which would let us make fields like this one Admittedly, making nested classes' members Anyway, the point here is that we'd pick up this improvement (and others, like better string concatenation) if we didn't have to target Java 8. (Hmm, I guess we could theoretically provide a multi-release jar with the exact same classes built for both versions, just with different (I was tempted to add that we could consider targeting a newer version of Java for guava-android, since newer bytecode gets converted to Android bytecode that supports even old versions of Android. But of course we say that guava-android is usable under a JVM, too, so that wouldn't work.) |
Other potentially nice things for the future:
(As always, we'd want to keep in mind that we also still target Android, including fairly old versions, so we might not want to make at least some changes until we can make them there, too.) |
I learned yesterday that nestmates also enable runtime access through |
More notes: Historically, one reason that we've maintained support for Java 8 is the Google Cloud Client Libraries. The documentation for those libraries currently says: I'm not sure how much we've pushed on the idea that those libraries could stick with an older version of Guava if Guava were to drop support for Java 8 before Cloud did. I would expect that approach to work well in practice for Cloud users, but I could imagine that some users would have reservations about running with a newer version of Guava than the one that Cloud recommends, and that may be enough to stop the idea. Anyway, the reason that I'm thinking about this yet again is that the majority of my week is going to reworking our nullness annotations to work better with Java 8 (e.g., #7566). That's turned what should have been a straightforward update of https://github.com/google/guava/tree/jspecify-preview into a Project. |
Whenever we do do this, Cloud (and others) may want us to bump our major version. It's left a bit up in the air in https://opensource.google/documentation/policies/library-breaking-change. Additionally, that policy refers to "vendor support," which can mean a lot of things in the context of Java (and something else in the context of Cloud). It's something for us to look into. |
Probably not soon :) I just had another note I wanted to make about this, so now seems like the time to start collecting those notes.
VarHandle
and forProcessHandle
in From Guava 32.0.1-jre, Files.createTempDir() and FileBackedOutputStream can fail or create un-deletable directories/files when used from a Windows service #6634]The text was updated successfully, but these errors were encountered: