quarkusio / quarkus

Quarkus: Supersonic Subatomic Java.
https://quarkus.io
Apache License 2.0
13.35k stars 2.56k forks source link

Implement first rev of quarkus:update #7272

Open emmanuelbernard opened 4 years ago

emmanuelbernard commented 4 years ago

Description

quarkus:update aims to help user migrate from one version of Quarkus to the other as seamlessly as possible. An example of this is the Angular ng update command. Since Quarkus updates frequently compared to the usual Java framework, the goal of this command is to make the update as smooth and short as possible.

Implementation ideas

We need to start small and concrete. There are about a million grandiose possible ideas but let's build a base that helps people concretely and improve over time.

Here is a proposal for the minimal viable solution:

Note: this does not apply to extension development but to end user project at this stage.

Necessary base work

Any change to an extension code (Pull Request) must declare whether or not the change does break things. And if it does, it must offer a .adoc representing the necessary migration steps (or lack of). This means, we need to

Further more grandiose ideas (for later)

johnaohara commented 4 years ago

This could also be useful in quarkus:update https://github.com/quarkusio/quarkus/issues/9149

maxandersen commented 4 years ago
  • list the new version of GraalVM to use for native compilation

Is this information even available anywhere in an artifact today ? @aloubyansky @gsmet ?

list and display (or URL) the migration guides for each extension used by the project if there is a necessary change

  • explicit API usage update
  • dependency update (and a pointer to their migration guide? Wrapped?)

I would not include this as part of MVP of this feature as doc info, migration guide, api usage etc. are not. in any form available/defined today. @emmanuelbernard

emmanuelbernard commented 4 years ago

list and display (or URL) the migration guides for each extension used by the project if there is a necessary change

  • explicit API usage update
  • dependency update (and a pointer to their migration guide? Wrapped?)

I would not include this as part of MVP of this feature as doc info, migration guide, api usage etc. are not. in any form available/defined today. @emmanuelbernard

My hope was that this work would trigger the definition of a metadata format and could be empty for extensions that need to catch up. But yes can definitely be LessMVP

geoand commented 4 months ago

@gsmet @maxandersen I assume we can close this as quarkus update pretty much fits the bill, correct?