# Update Your First-Generation Managed Package

Your app is ready for an update. Learn how to fix small issues with patches and make major changes with upgrades.

- **[Package Versions in First-Generation Managed Packages](/docs/platform/pkg1-dev/guide/dev-package-versions-overview.md)**

  A package version is a number that identifies the set of components uploaded in a package. The version number has the format *majorNumber.minorNumber.patchNumber* (for example, 2.1.3).

- **[Create and Upload Patches in First-Generation Managed Packages](/docs/platform/pkg1-dev/guide/patches-creating.md)**

  Patch versions are developed and maintained in a patch development org.

- **[Work with Patch Versions](/docs/platform/pkg1-dev/guide/packaging-patches-about.md)**

  A patch version enables a developer to change the functionality of existing components in a managed package. Subscribers experience no visible changes to the package. Patches are minor upgrades to a Managed - Released package and only used for fixing bugs or other errors.

- **[Versioning Apex Code](/docs/platform/pkg1-dev/guide/packaging-behavior-apex.md)**

  When subscribers install multiple versions of your package and write code that references Apex classes or triggers in your package, they must specify the version that they’re referencing.

- **[Apex Deprecation Effects for Subscribers](/docs/platform/pkg1-dev/guide/packaging-effects-subscribers.md)**

  Explore how deprecation of an Apex method impacts subscribers that install your managed package.
