I have a managed package. I have a picklist about where to store something. If the picklist has "Files" and "Notes and Attachments", and I want to add "Content" as an enumeration, when I make a new package and provide it for my customers, will they get the new picklist value or will they need to add it manually?
We tried to support this scenario in Winter '18, as correctly stated in the release notes document posted above, but we had to revert that change and pull it from the release.
September 27, 2017
Add New Picklist Values in Managed Package Upgrades We removed this entry from the release notes. This feature is no longer available in the Winter ‘18 release, and we are evaluating it for a future release.
I'm looking into why it wasn't removed from the Release notes.
Sorry for the confusion,
Yes. No - see the answer from Salesforce Product Manager Vladimir Gerasimov.
New behaviour is (incorrectly) documented in the Add New Picklist Values in Managed Package Upgrades part of the Winter '18 release notes:
Developers can now deploy new picklist values to subscriber orgs in managed package upgrades.
Previously, managed package upgrades could not add new picklist values in subscriber orgs without post-deployment steps. Now, a managed package upgrade can add values, based on the value’s API name, automatically.
A managed package upgrade with new picklist values has the following behaviors.
- Adds new picklist values that have been added to the package since it was last deployed
- Does not deactivate or activate existing values
- Does not delete existing values
- Does not change default values
- Does not change existing value labels
From the ISVforce Guide : Special Behavior of Components in Packages: (my emphasis)
- When explicitly referencing a picklist value in code, keep in mind that subscribers can add, edit, and delete picklist field values for custom fields. Carefully consider this possibility when explicitly referencing a picklist value in code. Developers can add and delete picklist values, but new picklist values are not installed into the subscriber’s org for existing fields during a package upgrade. Picklist values deleted by the developer are still available in the subscriber’s org.
- Package upgrades remove dependent picklist values that are saved in a managed custom field.
So, as at Summer '19, any new packaged picklist values will need to be either manually added after the upgrade or created via a post install script with the Metadata API.