Before You Submit
Related Issue
No response
Command
sf package version create
Org Type
Developer Edition
Did this work before?
Yes, this is a regression
Last Working Version
No response
Summary
sf package version create prints this warning on every run:
Warning: Record types defined in the scratch org definition file will stop being capitalized by default in a future release.
Set the org-capitalize-record-types config var to true to enforce capitalization.
Setting the config var doesn't stop it, because package creation never reads the config var. The same happens when the definitionfile has no objectSettings or record types at all.
Repository to Reproduce
No response
Steps to reproduce
- sf config set org-capitalize-record-types=true (or set SF_CAPITALIZE_RECORD_TYPES=true)
- Use any scratch org definition file, even one with no objectSettings
- sf package version create -p -v -x -w 60
Expected Result
No warning when org-capitalize-record-types is set. The setting should also apply to how the build org is created, as it does for sf org create scratch.
Actual Result
The warning appears every time, and the setting is ignored. The build org always uses the hardcoded fallback (true).
System Information
- @salesforce/cli/2.152.14 win32-x64 node-v24.20.0
- @salesforce/plugin-packaging 3.0.7
- @salesforce/packaging 5.0.12
- @salesforce/core 9.2.0
- Windows 11, PowerShell 7
Additional Information
Cause
@salesforce/packaging creates the settings generator without passing the setting:
// @salesforce/packaging 5.0.12 — lib/package/packageVersionCreate.js:339
const settingsGenerator = new core_1.ScratchOrgSettingsGenerator({ asDirectory: true });
packageConvert.js:185 does the same thing. In @salesforce/core, the ScratchOrgSettingsGenerator constructor warns whenever capitalizeRecordTypes is undefined:
// @salesforce/core 9.2.0 — lib/org/scratchOrgSettingsGenerator.js:200
if (options?.capitalizeRecordTypes === undefined) {
void Lifecycle.getInstance().emitWarning(messages.getMessage('noCapitalizeRecordTypeConfigVar'));
this.capitalizeRecordTypes = true;
}
Suggested fix: in both packaging call sites, read org-capitalize-record-types from the ConfigAggregator and pass it as capitalizeRecordTypes, the same way scratch org creation does.
Related: #2633 introduced the config var; #2970 shows the warning in an unrelated package version create report.
Screenshots or Log Files
No response
Before You Submit
sf doctorto diagnose common issuesRelated Issue
No response
Command
sf package version create
Org Type
Developer Edition
Did this work before?
Yes, this is a regression
Last Working Version
No response
Summary
sf package version create prints this warning on every run:
Warning: Record types defined in the scratch org definition file will stop being capitalized by default in a future release.
Set the
org-capitalize-record-typesconfig var totrueto enforce capitalization.Setting the config var doesn't stop it, because package creation never reads the config var. The same happens when the definitionfile has no objectSettings or record types at all.
Repository to Reproduce
No response
Steps to reproduce
Expected Result
No warning when org-capitalize-record-types is set. The setting should also apply to how the build org is created, as it does for sf org create scratch.
Actual Result
The warning appears every time, and the setting is ignored. The build org always uses the hardcoded fallback (true).
System Information
Additional Information
Cause
@salesforce/packaging creates the settings generator without passing the setting:
// @salesforce/packaging 5.0.12 — lib/package/packageVersionCreate.js:339
const settingsGenerator = new core_1.ScratchOrgSettingsGenerator({ asDirectory: true });
packageConvert.js:185 does the same thing. In @salesforce/core, the ScratchOrgSettingsGenerator constructor warns whenever capitalizeRecordTypes is undefined:
// @salesforce/core 9.2.0 — lib/org/scratchOrgSettingsGenerator.js:200
if (options?.capitalizeRecordTypes === undefined) {
void Lifecycle.getInstance().emitWarning(messages.getMessage('noCapitalizeRecordTypeConfigVar'));
this.capitalizeRecordTypes = true;
}
Suggested fix: in both packaging call sites, read org-capitalize-record-types from the ConfigAggregator and pass it as capitalizeRecordTypes, the same way scratch org creation does.
Related: #2633 introduced the config var; #2970 shows the warning in an unrelated package version create report.
Screenshots or Log Files
No response