Skip to content

chore: refuse hand-built libs/ jars in pull requests - #89

Closed
hal-eisen-adfa wants to merge 1 commit into
mainfrom
chore/ci-only-libs
Closed

chore: refuse hand-built libs/ jars in pull requests#89
hal-eisen-adfa wants to merge 1 commit into
mainfrom
chore/ci-only-libs

Conversation

@hal-eisen-adfa

Copy link
Copy Markdown
Contributor

Why

Publish addons failed on d09f05a with:

java.lang.UnsupportedClassVersionError: com/itsaky/androidide/plugins/build/PluginBuilder
has been compiled by a more recent version of the Java Runtime (class file version 65.0),
this version of the Java Runtime only recognizes class file versions up to 61.0

PR #87 committed libs/ jars built on a laptop running JDK 21, which emits class file version 65. Every workflow here runs JDK 17, which reads up to 61. The tree built fine on the machine that produced it, so nothing caught it until publish time.

Update libs from CodeOnTheGo (run 34164643060) has already restored a class-61 jar in 055e6dc. This PR stops it happening again.

What

  • Check toolchain — the only workflow that runs automatically on pull requests — now fails any PR that changes a file under libs/.
  • CLAUDE.md records the policy: run scripts/update-libs.sh locally to test a CoGo change, then throw the diff away.

Update libs from CodeOnTheGo pushes straight to main with an admin PAT that bypasses the main ruleset, so it never runs this check. The main ruleset requires pull requests, so every human path is covered.

Note

The main ruleset has no required_status_checks rule, so Check toolchain is advisory — a red PR can still be merged. Adding it as a required check would make this guard binding.

https://claude.ai/code/session_01XWXk1HTqbD46eYmnfAMPNv

libs/ holds build outputs. The "Update libs from CodeOnTheGo" workflow
builds them on JDK 17, the JDK every runner here uses, and pushes to main
with an admin PAT that bypasses the main ruleset. A laptop on JDK 21
writes class file version 65 into gradle-plugin.jar instead; a JDK 17
runner reads only up to 61. PR #87 shipped such a jar, so "Publish
addons" failed with UnsupportedClassVersionError on a tree that built
fine on the machine that produced it.

Every human change reaches main through a pull request, so a PR-level
check closes the laptop path without touching the CI path.

Claude-Session: https://claude.ai/code/session_01XWXk1HTqbD46eYmnfAMPNv

@claude claude Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Claude Code Review

This repository is configured for manual code reviews. Comment @claude review for a one-time review, or @claude review always to subscribe this PR to a review on every future push.

Tip: disable this comment in your organization's Code Review settings.

@hal-eisen-adfa

Copy link
Copy Markdown
Contributor Author

Claude went wild and opened this without a ticket or me asking for it

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.

1 participant