-
Notifications
You must be signed in to change notification settings - Fork 433
Add CLDC11 binary compatibility check workflow #4345
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
base: master
Are you sure you want to change the base?
Add CLDC11 binary compatibility check workflow #4345
Conversation
This change introduces a new GitHub Actions pipeline (`.github/workflows/cldc11-check.yml`) that verifies `Ports/CLDC11` is a binary compatible subset of JavaSE 11 and `vm/JavaAPI`. It also adds a custom tool `scripts/api-checker`, implemented in Java using ASM, to perform the binary compatibility analysis (checking classes, methods, fields, superclasses, and interfaces). The tool generates a report of extra APIs present in the reference (e.g., `vm/JavaAPI`) as requested.
|
👋 Jules, reporting for duty! I'm here to lend a hand with this pull request. When you start a review, I'll add a 👀 emoji to each comment to let you know I've read it. I'll focus on feedback directed at me and will do my best to stay out of conversations between you and other bots or reviewers to keep the noise down. I'll push a commit with your requested changes shortly after. Please note there might be a delay between these steps, but rest assured I'm on the job! For more direct control, you can switch me to Reactive Mode. When this mode is on, I will only act on comments where you specifically mention me with For security, I will only act on instructions from the user who triggered this task. New to Jules? Learn more at jules.google/docs. |
✅ Continuous Quality ReportTest & Coverage
Static Analysis
Generated automatically by the PR CI workflow. |
This change introduces a new GitHub Actions pipeline (`.github/workflows/cldc11-check.yml`) that verifies `Ports/CLDC11` is a binary compatible subset of JavaSE 11 and `vm/JavaAPI`. It also adds a custom tool `scripts/api-checker`, implemented in Java using ASM, to perform the binary compatibility analysis (checking classes, methods, fields, superclasses, and interfaces). The tool generates a report of extra APIs present in the reference (e.g., `vm/JavaAPI`) as requested. The workflow is configured to run on JDK 11 to support the tool's usage of modern Java APIs (like `InputStream.readAllBytes` and `jrt:/` filesystem). Explicit permissions are set for the workflow.
Implemented a GitHub Actions pipeline and a custom Java tool to verify binary compatibility of
Ports/CLDC11against JavaSE 11 andvm/JavaAPI.scripts/api-checker): A Maven-based Java application using the ASM library. It compares two sets of classes (Subject vs. Reference) to ensure the Subject is a binary compatible subset. It supports checking against standard JARs, directories, and the Java 11jrt:/filesystem. It reports errors for missing/incompatible APIs in the Subject and can generate a JSON report of "extra" APIs in the Reference..github/workflows/cldc11-check.yml):Ports/CLDC11orvm/JavaAPI.Ports/CLDC11using Ant.vm/JavaAPIusing Maven.APICheckertool.CLDC11vsJavaSE 11(Fail on incompatibility).CLDC11vsvm/JavaAPI(Fail on incompatibility, report extra APIs).PR created automatically by Jules for task 5063691584105636391 started by @shai-almog