# Update projects to the latest Quarkus version

You can update or upgrade your Quarkus projects to the latest version of Quarkus by using an update command.

The update command primarily employs OpenRewrite recipes to automate updates for most project dependencies, source code, and documentation. Although these recipes update many migration items, they do not cover all the items detailed in the Migration Guides.

Post-update, if expected updates are missing, consider the following reasons:

- The recipe might not include a specific item in your project.

- Your project might use an extension that is incompatible with the latest Quarkus version.

- If you have Gradle Kotlin build files (`.kts`), Quarkus Update will fail until OpenRewrite supports these.

| For projects that use Hibernate ORM or Hibernate Reactive, review the Hibernate ORM 5 to 6 migration quick reference. The following update command covers only a subset of this guide.

## Prerequisites

To complete this guide, you need:

- Roughly 30 minutes

- An IDE

- JDK 17+ installed with `JAVA_HOME` configured appropriately

- Apache Maven 3.9.9

- Optionally the Quarkus CLI if you want to use it

- Optionally Mandrel or GraalVM installed and configured appropriately if you want to build a native executable (or Docker if you use a native container build)

- A project based on Quarkus version 2.13 or later.

## Procedure

1. Create a working branch for your project by using your version control system.

2. To use the Quarkus CLI in the next step, install the latest version of the Quarkus CLI. Confirm the version number using `quarkus -v`.

3. Go to the project directory and update the project to the latest stream:

   Using Quarkus CLI

       quarkus update

   Optional: To specify a particular stream, use the `--stream` option; for example: `--stream=3.2`

   Using Maven

       ./mvnw io.quarkus.platform:quarkus-maven-plugin:3.26.0.CR1:update -N

   Optional: To specify a particular stream, use the `-Dstream` option; for example: `-Dstream=3.2`

4. Analyze the update command output for potential instructions and perform the suggested tasks if necessary.

5. Use a diff tool to inspect all changes.

6. Review the Migration Guides for items that were not updated by the update command. If your project has such items, implement the additional steps advised in these topics.

7. Ensure the project builds without errors, all tests pass, and the application functions as required before deploying to production.