Skip to content

chore(formal-verification): OpenJML 21.0.28 - #169

Merged
bernardladenthin merged 1 commit into
mainfrom
chore/openjml-21.0.28
Oct 6, 2026
Merged

bernardladenthin merged 1 commit into
mainfrom
chore/openjml-21.0.28

Conversation

@bernardladenthin

Copy link
Copy Markdown
Owner

Summary

  • Formal verification moves to OpenJML 21.0.28. The SHA-256 comes from the release asset digest of openjml-ubuntu-24.04-21.0.28.zip. 21.0.28 switches the default solver to z3 5.1.0; ESC and RAC results are unchanged.
  • The bundled-spec workarounds in setup-openjml stay. 21.0.28 was built from Specs 1a91cb6, which predates the Atomic* fix (Fix RAC IllegalAccessError in Atomic{Long,Integer,Boolean} constructor specs OpenJML/Specs#29 and Add testspecs cases for Atomic{Long,Integer,Boolean} construction OpenJML/OpenJML#982, both merged into dev-21 on 2026-10-05). ArrayDeque.jml and the missing JAVA_VERSION key are still broken in 21.0.28 as well.
  • Docs: status of the upstream defects. Re-testing the class invariants (part of the bump checklist) gave a now reproducible finding: RAC throws NoSuchFieldError in constructors of non-static inner classes. There is a minimal reproducer in TODO.md, and the invariants stay omitted.

Test plan

  • Locally with 21.0.28, prepared like CI (both broken specs removed, JAVA_VERSION patched): ESC 14/14 clean proofs, RAC suite 285/285
  • check-shared-files, check-run-scripts, check-release-gate, Spotless clean
  • CI is green on this branch (Formal Verification: ESC + RAC)
  • Docs / CHANGELOG updated where applicable

Related issues / PRs

Refs OpenJML/Specs#29, OpenJML/OpenJML#982, OpenJML/OpenJML#806

Checklist

  • I have read CONTRIBUTING.md and CODE_OF_CONDUCT.md
  • My commits follow Conventional Commits
  • No security-sensitive changes (if there are, I have notified the maintainer privately per SECURITY.md)

🤖 Generated with Claude Code

https://claude.ai/code/session_018mLGtytvtJU7aNshBpnrB5

- OPENJML_VERSION 21.0.27 -> 21.0.28, SHA-256 from the release asset
  digest of openjml-ubuntu-24.04-21.0.28.zip.
- Verified locally with 21.0.28 (default solver z3 5.1.0): ESC 14/14
  clean proofs, RAC suite 285/285.
- Bundled-spec workarounds stay: 21.0.28 was built from Specs 1a91cb6,
  before the Atomic* fix (OpenJML/Specs#29, OpenJML/OpenJML#982, merged
  into dev-21). ArrayDeque.jml and the jdk/release JAVA_VERSION key are
  still broken too.
- Invariants re-tested per the bump checklist: RAC compiles them now but
  throws NoSuchFieldError in non-static inner-class constructors
  (minimal reproducer in TODO.md); invariants stay omitted.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018mLGtytvtJU7aNshBpnrB5
@claude

claude Bot commented Oct 6, 2026

Copy link
Copy Markdown

This is a well-executed tool version bump with thorough testing and comprehensive documentation. All changes are appropriate and safe.

What is Good:

  • Correct checksum verification: SHA-256 hash sourced from GitHub release asset digest
  • Comprehensive documentation updates across workflow, actions, CLAUDE.md, TODO.md, and JML specs
  • Known-issues tracking clearly documented with upstream PR status
  • Defensive updates: Comments correctly flag that 21.0.27 and 21.0.28 are both affected
  • Changelog entry documents that ESC/RAC results are unchanged

Technical Soundness:

  • Bundled-spec workarounds remain correct: fixes merged to dev-21 but not in 21.0.28
  • Class invariants issue: Excellent detective work isolating NoSuchFieldError with minimal reproducer
  • JAVA_VERSION key fix correctly identified as still needed

No issues found:

  • No code changes to library
  • Configuration updates are version/hash-related only
  • Documentation is accurate
  • SHA-256: 0a151820c4e680e32cb2e399a02615182c748fc24e308865b317783d4836df8a (from GitHub release asset)

Ready to merge once CI confirms formal verification passes (ESC 14/14, RAC 285/285).

@bernardladenthin
bernardladenthin merged commit 2c897df into main Oct 6, 2026
14 of 17 checks passed
@bernardladenthin
bernardladenthin deleted the chore/openjml-21.0.28 branch October 6, 2026 22:20
@sonarqubecloud

sonarqubecloud Bot commented Oct 6, 2026

Copy link
Copy Markdown

@bernardladenthin
bernardladenthin restored the chore/openjml-21.0.28 branch October 6, 2026 22:34

This branch had an error being deployed

1 failed deployment
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