If I have a Managed Package with Namespace ns2, with package components that depend on / extend components in ns1, then ns1 must first be installed in an org before ns2 can be installed - as ns2 has become an "extension" package of the ns1 "base" package.

So my question is: if I remove the components in ns2 that depend on ns1, and then push out a new version of ns2, will the new version of ns2 still require ns1 to be installed? I believe that the answer is YES, but I have not actually tried it before. Has anyone ever tried this?

Example scenario:

  1. ns1 has a global virtual Apex Class called BaseController
  2. ns2 has a public class called NS2ControllerImpl which extends ns1.BaseController
  3. Since the ns2 class is public, I can change the class signature so that it no longer extends ns1.BaseController
  4. Assuming that this is the only remaining reference in ns2 to ns1, if I push out a new version of ns2, will I be able to install ns2 into an org without having ns1 installed in that org?

1 Answer 1


I have tried this before and can confirm I have seen it remove the dependency from the Dependencies page available from the Package details page. You might need to make sure the metadata files associated with your Apex, VF pages and components are updated. But this should work. Be careful though as you cannot put back those components or reuse their names. I have seen issues with shadow copies of them holding a package dependency in the past, but lately this seems to have been resolved.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .