Description
Three long-deprecated CDS compiler flags — noKeyPropagationWithExpansions, includesNonShadowedFirst, and eagerPersistenceForGeneratedEntities — are silently removed in CDS compiler v7 (CDS 10). The compiler no longer reads or applies these flags; it does not emit a warning or error when they are present in configuration. Projects that set any of these flags and relied on the behavior they controlled will silently revert to the current default behavior, which may differ from what the flag enforced. This is a silent behavioral change with no build-time signal.
How to Check
- [ ] Search all config files (
.cdsrc.json,package.jsoncdssection,.cdsrc.yaml, environment variables) fornoKeyPropagationWithExpansions. - [ ] Search the same files for
includesNonShadowedFirst. - [ ] Search the same files for
eagerPersistenceForGeneratedEntities. - [ ] Run
cds envand check the full output for any of these flag names.
Migration Steps
Remove the flags from all config files to keep configuration clean:
diff// package.json { "cds": { "compiler": { - "noKeyPropagationWithExpansions": true, - "includesNonShadowedFirst": true, - "eagerPersistenceForGeneratedEntities": false } } }Verify that removing the flags does not change the compiler's output by comparing generated CSN or HANA artifacts before and after:
shcds compile srv/ --to csn > before.json # remove flags, then: cds compile srv/ --to csn > after.json diff before.json after.jsonIf differences are observed, investigate whether the behavioral change affects the application's correctness and update the data model or service definitions accordingly.
Notes
Because the compiler silently drops these flags, there is no runtime error to alert the project to the change. The risk is highest for projects that set these flags to work around a specific compiler behavior that has since become the permanent default — in which case removal is safe. Projects that set them to opt into non-default behavior may see a meaningful behavioral regression. Run the integration test suite after removing the flags to surface any such regressions.