Skip to content
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

[WIP] feat: jpms (v2) #43

Draft
wants to merge 16 commits into
base: master
Choose a base branch
from
Draft

[WIP] feat: jpms (v2) #43

wants to merge 16 commits into from

Conversation

sgammon
Copy link
Owner

@sgammon sgammon commented Feb 5, 2025

Coming soon. Filed for PR testing.

@sgammon sgammon self-assigned this Feb 5, 2025
Copy link
Owner Author

@sgammon sgammon left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

next round of self-review

@sgammon sgammon force-pushed the feat/jpms-v2 branch 2 times, most recently from 4d3e157 to ecbde64 Compare February 7, 2025 01:32
@sgammon sgammon force-pushed the feat/jpms-v2 branch 6 times, most recently from b47a9ca to 8134bad Compare February 8, 2025 03:28
Stephan202 and others added 16 commits February 9, 2025 08:22
Analogous to google#7636.

Fixes google#7650

RELNOTES=n/a
PiperOrigin-RevId: 724923137
The implementation code expects `Comparable` implementations to throw
`ClassCastException`s when trying to compare to objects of the wrong type.

Kotlin/Native `Comparable`s don’t make this guarantee yet (This is expected to
change when https://youtrack.jetbrains.com/issue/KT-71001/ is fixed).

The assertions are preventing us from making a compiler flag change that changes
the behavior that made these assertions pass accidentally.

PiperOrigin-RevId: 725264702
Bumps the github-actions group with 1 update: [github/codeql-action](https://github.com/github/codeql-action).

Updates `github/codeql-action` from 3.28.8 to 3.28.9
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](github/codeql-action@dd74661...9e8d078)

Fixes google#7652

RELNOTES=n/a
PiperOrigin-RevId: 725311401
RELNOTES=n/a
PiperOrigin-RevId: 725318466
This is the first piece of google#7094, which is progress toward [modularization](google#2970): javac (rightly or wrongly) wants a version number that starts with a number. We saw this previously [with Error Prone](google/error-prone#4311 (comment)) and [with JSpecify](jspecify/jspecify@0d39a0e).

Relates-To: elide-dev/jpms#1
Signed-off-by: Sam Gammon <[email protected]>
RELNOTES=n/a
PiperOrigin-RevId: 725625326
… new methods depending on java time)

RELNOTES=n/a
PiperOrigin-RevId: 725660700
…nings.

The `TreeBasedTable` overrides come from cl/16105641. I verified that the methods still appear in the Javadoc when I remove the overrides. (Maven didn't want to regenerate the Javadoc until I ran `clean`....)

RELNOTES=n/a
PiperOrigin-RevId: 725677309
RELNOTES=n/a
PiperOrigin-RevId: 725684361
RELNOTES=n/a
PiperOrigin-RevId: 725697082
RELNOTES=n/a
PiperOrigin-RevId: 725740741
This prepares us to potentially add `java.io.Serial` to them at some point.

Mostly, this CL adds `@GwtIncompatible` and/or `@J2ktIncompatible`. We have already needed the latter previously need for `serialVersionUID` fields in _inner_ classes, such as in cl/605627910. But now we may need them because `java.io.Serial` is not (currently) available under those environments.

It's possible that I added the annotations in some cases in which they aren't necessary.

I also left a comment in one class where I noticed a `serialVersionUID` field in one flavor but not the other. I ended up ignoring at least one other such class because that one was an implementation of an immutable collection, the implementations of which sometimes vary significantly between flavors.

RELNOTES=n/a
PiperOrigin-RevId: 725785821
RELNOTES=n/a
PiperOrigin-RevId: 725859649
It's kind of amazing how much this improves readability in some cases.

(Also, use `getOrDefault` in one place where we can, and suppress some suggestions to use it in places where we can't.)

RELNOTES=n/a
PiperOrigin-RevId: 725869779
This changeset adds full support for modular Java builds in Guava,
and in libraries which depend on Guava.

The Guava JAR for JRE now structures as a Multi-Release JAR, with
a module definition situated in `META-INF/versions/9/`. Guava
remains compatible with JDK 8.

- feat: add `module-info.java` to `guava` module
- feat(jpms): add `module-info.java` to `failureaccess`
- feat(jpms): add `module-info.java` to `testlib`
- fix: necessary fixes to get testsuite running on modular java
- chore: update `guava` to build MRJAR
- chore: adjust dev version → `1.0-HEAD-[jre|android]-SNAPSHOT`
- chore: upgrade maven compiler plugin → `3.12.1`

Fixes and closes google#2970

Relates-To: elide-dev/jpms#1
Signed-off-by: Sam Gammon <[email protected]>
Adds two build parameters
- `publishing.repository.snapshots`: Snapshot repo to deploy to
- `publishing.repository.releases`: Releases repo to deploy to

Both default to their current values, Sonatype. This small inert
change allows a fork to easily publish to a different repository
without resorting to a code change.

Signed-off-by: Sam Gammon <[email protected]>
Signed-off-by: Sam Gammon <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants