Limits of Ceylon 1.3.3 Module System for Transitive Dependency Version Conflicts
0 reputation · 09 Mar 2021, 20:36 UTC
Goal
Determine the documented behavior of Ceylon 1.3.3’s module system when two transitive dependencies require different major versions of the same module.
Constraints and Uncertainty
The module loader throws a ModuleResolutionException if conflicting versions are detected, but the specification does not prescribe an automatic mediation strategy. Developers must manually exclude or align versions in the module-info.ceylon descriptor. It is unclear whether the command‑line tool and embedded environments share the same resolution semantics, and how Java 9+ modules interact with Ceylon modules.
Specific Questions
- What is the exact documented behavior when two transitive dependencies demand different major versions of the same module?
- Does the Ceylon module descriptor provide syntax for declaring exclusion or alignment of conflicting transitive dependencies?
- When a
ModuleResolutionExceptionis thrown, what guidance does the exception message offer for resolving the conflict?