Starting with the Summer '10, you can develop a new package type called a patch version, which enables a developer to change the functionality of existing components in a managed package, while ensuring that subscribers experience no visible changes to the package.
Patch versions can only be created for major release packages. Subscribers can receive patch upgrades just like any other package version. However, you can also distribute a patch by using push upgrades to automatically upgrade all eligible customers running the same major release.
A push upgrade is a method of automatically upgrading your customers to a newer version of your package. You can only push
patches for existing installed managed packages.
A package subscriber doesn't need to do anything to receive the push upgrade. The only indication a subscriber receives after
a successful push upgrade is that the patch number has changed in the package's Version Number. Any upgrades that fail
must be resolved by the developer initiating the push.
Push upgrades minimize the potential risk of having multiple subscriber organizations running variations of the same major
release. Rather than asking each subscriber to manually install the upgrade, a push guarantees that all subscribers are running
the same patch version for a major release by automatically upgrading subscribers.
You can push an upgrade to any number of organizations that have installed your managed package.
Available in: Developer Edition