How do I deprecate a custom field from a managed package? This package is being created by us, we wanted a field which was packaged by mistake to be deprecated or just removed. How do I do that?
This feature is currently GA (you can log a case with partner support to get this feature enabled).
The way this feature is designed, for the component types that can be deleted from a published managed package, there is a multi-step process:
1) The developer deletes the components from the managed package in the dev org (deletion succeeds as long as there are no references).
2) The developer uploads a new version of the package.
3) When a subcriber's org upgrades to this new version, the components become delete-able (i.e. the delete link is available for these componennts) by the subscriber org sys admin. But we do not delete these components at upgrade. It is up to the subscriber org sys admin to export the data, dis-entangle references if any in their org, and then delete these components. This means, at upgrade, you have access to the "deleted components" in the subscriber org.
A field can not be deprecated despite the
<deprecated> elements at the metadata xml files. These are the remains of a deprecation feature, which never saw the light of an official release.
But you can contact the support and enable field deletion, which is available since Spring '14.
You might visit the following questions for further reference: