zu-java holds the stability item - #580
Merged
Merged
Conversation
api/surface.txt has a line for every exported type and every member a caller outside the module can name, and a test regenerates it and compares, so a change to the API is a change to that file in the same commit. Same file name and same place as zu-go, because a reviewer moving between the clients should not have to learn a second mechanism. No japicmp and no revapi: both compare against a published baseline and nothing is published yet. A checked-in file compares against the last commit, which is what a reviewer is looking at anyway. tamnd/zu-java#14. That takes the practice score to 70, and what is left is leaks and install, which are apparatus, and api-map and perf, which are reports the release collects.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
tamnd/zu-java#14 landed the surface gate, so the scorecard says so.
api/surface.txthas one line for every exported type and every member a caller outside the module can name, across the two packages the module exports.SurfaceTestregenerates it from the compiled classes and compares, so moving the API means moving that file, in the same commit, at the top of the diff rather than buried in one.The file name and the place are zu-go's on purpose. That client already keeps its published names in
api/surface.txt, in the shape of theapi/go1.N.txtfiles Go holds itself to, and a reviewer moving between the two should not have to learn a second mechanism.There is no japicmp and no revapi, and that is a decision rather than an omission. Both of them compare against a published baseline, and nothing from this repository is published yet, so today they would compare against nothing. A checked-in file compares against the last commit instead, which is what a reviewer has in front of them, and it keeps working the same way after the first release.
The part worth knowing about is that nothing in the generated file comes from
Class.toGenericString. JDK 21 leaves the sealed marker out of it and JDK 25 puts it in, so the first version of the gate would have gone red on two rows of theapimatrix for a change nobody made. A gate that cries wolf on a version matrix is a gate that gets turned off. It is all read off the class file now, and the output is byte for byte identical on 21 and 25.That is 60 to 70 on practice. What is left for zu-java is
leaksandinstall, which are apparatus, andapi-mapandperf, which are reports the release collects.docs/clients/overview.mdis regenerated bycargo run -q -p xtask -- clientsand not hand-edited.