Skip to content

Add runtime jar dependency closure test - #549

Open
ludoch wants to merge 1 commit into
mainfrom
agent-skills-runtime-deps
Open

ludoch wants to merge 1 commit into
mainfrom
agent-skills-runtime-deps

Conversation

@ludoch

@ludoch ludoch commented Oct 24, 2026 •

Copy link
Copy Markdown
Collaborator

RuntimeJarDependencyClosureTest (CI guard)

Adds runtime/test/src/test/java/com/google/apphosting/runtime/RuntimeJarDependencyClosureTest.java, parameterized over runtime-impl-jetty12.jar and runtime-impl-jetty121.jar:

  • Runs jdeps -verbose:class (through ToolProvider) on the jar from the runtime deployment, with runtime-main.jar and the runtime-shared-*.jar on the class path.
  • Walks every class reachable from com.google.appengine.* / com.google.apphosting.* through the bundled libraries.
  • Fails on any missing class outside a short KNOWN_MISSING_PACKAGES list. The listed exceptions are pre-existing, on unused paths, each with a reason: antlr for the borgcron Groc parser, google-api-client for the Cloud Datastore v1 client, io.grpc.alts (DirectPath), Jetty ALPN, and JNDI transactions.
  • The failure message lists each missing class with the reference chain, e.g. com.google.auth.Credentials <- com.google.appengine.api.taskqueue.CloudTasksClientWrapper.
  • Skipped (assumption) if jdeps isn't available (JRE only). It takes about 4 s per jar.

Verified:
Both runtime-impl-jetty12.jar and runtime-impl-jetty121.jar pass:

[INFO] Running com.google.apphosting.runtime.RuntimeJarDependencyClosureTest
[INFO] Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 5.511 s

@ludoch

ludoch commented Oct 24, 2026

Copy link
Copy Markdown
Collaborator Author

Verified that the new skills in .agent/skills/ are picked up and work as expected in Antigravity (agy CLI) as well:

  • Skills (runtime-jar-deps, pom-dependency-change, internal-runtime-usage, runtime-e2e-tests) are discovered and loaded into the agent context automatically.
  • Executed the verification workflow specified in runtime-jar-deps by running RuntimeJarDependencyClosureTest (passed cleanly: 2 tests run, 0 failures).
  • Verified the companion script .agent/skills/pom-dependency-change/scripts/jar_size_diff.sh is executable and functional.

@ludoch
ludoch force-pushed the cloudtasks-runtime-okhttp branch from 15e9a3f to 73920f3 Compare October 24, 2026 12:50
@ludoch
ludoch force-pushed the agent-skills-runtime-deps branch from 3b7e368 to 539240e Compare October 24, 2026 12:50
@ludoch
ludoch force-pushed the cloudtasks-runtime-okhttp branch from 73920f3 to e8f9158 Compare October 24, 2026 15:48
@ludoch
ludoch force-pushed the agent-skills-runtime-deps branch from 539240e to 8537760 Compare October 24, 2026 15:48
@ludoch
ludoch changed the base branch from cloudtasks-runtime-okhttp to main October 24, 2026 15:49
@ludoch
ludoch force-pushed the agent-skills-runtime-deps branch from f8b236a to 209dee8 Compare October 28, 2026 16:42
@maigovannon

Copy link
Copy Markdown
Collaborator

@gajjarc do we still need this?

Checks that every class reachable from the App Engine classes bundled in
runtime-impl-jetty12.jar and runtime-impl-jetty121.jar can be loaded from
the runtime class path.

Runs jdeps -verbose:class on each runtime-impl jar with the deployment
jars on the class path, follows references starting from com.google.appengine.*
and com.google.apphosting.* classes, and fails on any unexpected missing class.
@ludoch
ludoch force-pushed the agent-skills-runtime-deps branch from 1f688ec to 311b7cd Compare October 30, 2026 16:36
@ludoch ludoch changed the title Add a runtime jar dependency closure test and agent skills for runtime deps Add runtime jar dependency closure test Oct 30, 2026
@ludoch

ludoch commented Oct 30, 2026

Copy link
Copy Markdown
Collaborator Author

PTAL

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants