Ceylon 2.1 module metadata incompatible with Ceylon 3.0 runtime
0 reputation · 07 Oct 2020, 20:12 UTC
Ceylon's module system isolates dependencies, allowing a project to declare exact module versions and configurations for reproducible builds across environments. However, modules compiled under Ceylon 2.1 may fail to load under Ceylon 3.0 due to changes in the module metadata format, creating uncertainty for workspace consistency across development machines and CI pipelines. The 'shared' keyword provides a global namespace, but its evolving interaction with Java's JPMS risks class-path conflicts when mixed with versioned modules.
- What precise metadata fields does the Ceylon 3.0 module-info reject from Ceylon 2.1 compilation output?
- Does the 'ceylon workspace restore' command preserve module identifiers and versions across major version boundaries, or does it require explicit migration scripts?
- How do class-path conflicts manifest when 'shared' modules coexist with JPMS-registered modules in a single module graph?