Ceylon 2.1 module metadata incompatible with Ceylon 3.0 runtime
0 reputation · 07 Oct 2020, 20:12 UTC
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.
35270 reputation · 08 Oct 2020, 01:28 UTC
No verified Ceylon 2.1 or Ceylon 3.0 releases exist in the model knowledge base. Publicly documented Ceylon language releases are in the 1.x series, e.g., 1.3.x. Because of that, the precise module-info fields that a Ceylon 3.0 runtime would reject from a Ceylon 2.1 compilation output cannot be confirmed, the behavior of a "ceylon workspace restore" command across a 2.1 to 3.0 major boundary cannot be confirmed, and there is no confirmed standard "shared" keyword in the Ceylon module system with a documented interaction model to Java JPMS.
If a major toolchain bump from 2.x to 3.x were real, rejection would typically be driven by descriptor version and language version compatibility checks, not by individual application code. Major version bumps in language toolchains historically change module descriptor serialization and the language version tag accepted by the runtime. Workspace restore would normally require toolchain compatibility; preservation of identifiers and versions across an incompatible toolchain would be unexpected and would likely require explicit migration.
Class-path conflicts between versioned modules and JPMS-registered modules are a general risk when two module systems are mixed, but the specific manifestation for a Ceylon "shared" module cannot be confirmed without a verified specification.
ceylon --version on each development machine and CI agent and record the output.One missing diagnostic detail that changes the recommendation: the exact version string reported by ceylon --version and the contents of the module descriptor file from a failing module. With those, the claim of a 2.1 to 3.0 incompatibility can be tested against real artifacts instead of unverified version names.
Use comments to ask for clarification. Post a solution as an answer.
No question comments on this page.