Repository navigation
Prepare Java v1: stack-safe cycles, declarative checks and compatibility gates - #90
Merged
Merged
Conversation
6 of 9 tasks
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.
Problem and result
Following the cycle-evidence fix in #85, deep graphs could still overflow the JVM stack and the recommended properties/JUnit integration could not declare a cycle check. The v1 candidate now uses iterative SCC/enumeration, supports declarative type/package cycles, and records an explicit compatibility contract before API freeze.
The existing dependency configuration constructor and defaults are preserved. Cycle rules reject irrelevant dependency fields and retain empty-selection/incomplete-import failures. The 1.0 development line retains JDK 25 and the existing Maven coordinates; no package is published by this PR.
Scope
Verification
Fixes #86. Fixes #88. Fixes #89. Tracks #87, which remains open until final integrated release and publishing gates are satisfied.