From 133cc70f33c1d0bae83ceb92828e137275ccb539 Mon Sep 17 00:00:00 2001 From: Jeff Mesnil Date: Thu, 6 Jun 2024 10:28:02 +0200 Subject: [PATCH 1/8] Proposal to update WildFly download distributions using channels Signed-off-by: Jeff Mesnil --- _data/wildfly-categories.yaml | 3 + wf-galleon/wildfly_channel_in_zips.adoc | 125 ++++++++++++++++++++++++ 2 files changed, 128 insertions(+) create mode 100644 wf-galleon/wildfly_channel_in_zips.adoc diff --git a/_data/wildfly-categories.yaml b/_data/wildfly-categories.yaml index be7894a5..5753bf0a 100644 --- a/_data/wildfly-categories.yaml +++ b/_data/wildfly-categories.yaml @@ -99,6 +99,9 @@ categories: - name: POJO id: pojo description: Legacy JBoss Microcontainer support + - name: Provisioning + id: provisioning + description: WildFly Provisioning - name: Quickstarts id: quickstarts description: Quickstart examples for WildFly diff --git a/wf-galleon/wildfly_channel_in_zips.adoc b/wf-galleon/wildfly_channel_in_zips.adoc new file mode 100644 index 00000000..9904727f --- /dev/null +++ b/wf-galleon/wildfly_channel_in_zips.adoc @@ -0,0 +1,125 @@ +--- +categories: +- provisioning +--- += [Experimental] Update WildFly download distributions using channels +:author: Jeff Mesnil +:email: jmesnil@redhat.com +:toc: left +:icons: font +:idprefix: +:idseparator: - + +[abstract] +As an user, I can download WildFly from a zip archive and be able to update it to a more recent release. + +== Overview + +WildFly now publishes https://repo1.maven.org/maven2/org/wildfly/channels/[channels] that is a mechanism to keep a WildFly installation up to date with the latest releases. + +This works out of the box if users is provisioning WildFly (using the wildfly-maven-plugin or Prospero). +However for users that are downloading WildFly from our traditional distributions (zip & tgz archives) they can not take advantage of this mechanism. + +If our archives would work out of the box with channels, it would significantely simplify updating an installation. + +The workflow would be as simple as: + +1. Download WildFly version x.y.z from our download page +2. Use it as normal +3. A micro release of WildFly x.y.(z+ 1) is made available +4. Run a script in the existing WildFly installation to update if from x.y.z to x.y.(z+1) +5. Reload the server to run your applications on WildFly x.y.(z+ 1) + +If there are multiple available updates for WildFly, the user must be able to decide which one they want to update to. +This lets the user decide whether they want to update to the latest micro release or the next major release. + + +== Issue Metadata + +=== Issue + +* https://issues.redhat.com/browse/WFLY-19221 + +=== Related Issues + +* https://issues.redhat.com/browse/WFLY-19130 + +=== Stability Level + +* [X] Experimental + +=== Dev Contacts + +* mailto:{email}[{author}] +* mailto:{bstansbe@redhat.com}[{Brian Stansberry}] +* mailto:{bspyrkos@redhat.com}[{Bartosz Spyrko-Smietanko}] + +=== Testing By + +* [X] Engineering + +=== Affected Projects or Components + +* WildFly + +=== Other Interested Projects + +=== Relevant Installation Types + +* [x] Traditional standalone server (unzipped) + +== Requirements + +* WildFly distributions archives (zip & tgz) must contain the channel metadata that describes their installation state. +* WildFly distributions archives (zip & tgz) must contain the tooling (as scripts) to let users update their installations +** Users must be able to list and select the updates to apply to their installations +** The user MUST specify the updates to apply. +* Updates must not discard any users changes to an installation (in their configuration files or JBoss modules directory) + +=== Non-Requirements + +* Trimming an existing installation coming from WildFly distributions with Galleon layers is not supported. + +=== Future Work + +WIP + +== Backwards Compatibility + +This enhancement does not affect previous versions of WildFly. + +=== Default Configuration + +Updating an installation could update its default configuration (eg if the update is to a major version). + +WildFly does not make guarantee that its default configuration will be compatible from one major version to another (even though in practice, that's often the case) + +=== Importing Existing Configuration + +[jmesnil] TBD - I'm not sure what section means in the context of this enhancement + +=== Deployments + +Deployments can be affected by this enhancement if there are incompatibilities between the existing WildFly installation and the update. + +Testing an installation is out of scope of this enhancement but should be incorporated in the user workflow (eg to test the update in a staging environment). + +=== Interoperability + +== Test Plan + +TBD + +== Community Documentation + +The https://docs.wildfly.org/32/Installation_Guide.html[Installation Guide] needs to be updated. + +Its section `Installing WildFly from a zipped distribution` would be expanded to include information about updating the installation. + +Once we have 2 releases of WildFly with that feature, we can add a guide to https://www.wildfly.org/guides/ that showcases that feature. +The guide would let the users download WildFly (eg 33.0.0.Final), check if there are updates (eg 33.0.1.Final and 34.0.0.Final), and update their installation with a micro bump. + +== Release Note Content + + +WildFly downloads can now be updated to more recent releases out of the box. \ No newline at end of file From 27157b5faa7d90cf78e8372d892ffc5f935e9186 Mon Sep 17 00:00:00 2001 From: Jeff Mesnil Date: Thu, 6 Jun 2024 14:44:59 +0200 Subject: [PATCH 2/8] add Bartosz feedback Signed-off-by: Jeff Mesnil --- wf-galleon/wildfly_channel_in_zips.adoc | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/wf-galleon/wildfly_channel_in_zips.adoc b/wf-galleon/wildfly_channel_in_zips.adoc index 9904727f..96a63930 100644 --- a/wf-galleon/wildfly_channel_in_zips.adoc +++ b/wf-galleon/wildfly_channel_in_zips.adoc @@ -51,8 +51,8 @@ This lets the user decide whether they want to update to the latest micro releas === Dev Contacts * mailto:{email}[{author}] -* mailto:{bstansbe@redhat.com}[{Brian Stansberry}] -* mailto:{bspyrkos@redhat.com}[{Bartosz Spyrko-Smietanko}] +* mailto:bstansbe@redhat.com[Brian Stansberry] +* mailto:bspyrkos@redhat.com[Bartosz Spyrko-Smietanko] === Testing By @@ -61,6 +61,7 @@ This lets the user decide whether they want to update to the latest micro releas === Affected Projects or Components * WildFly +* Prospero === Other Interested Projects @@ -74,7 +75,8 @@ This lets the user decide whether they want to update to the latest micro releas * WildFly distributions archives (zip & tgz) must contain the tooling (as scripts) to let users update their installations ** Users must be able to list and select the updates to apply to their installations ** The user MUST specify the updates to apply. -* Updates must not discard any users changes to an installation (in their configuration files or JBoss modules directory) +** As this feature is experimental, the tooling should warn the user that udpating their installation is an experimental mechanism +* Updates must not discard any user changes to an installation (in their configuration files or JBoss modules directory) === Non-Requirements From f816548fe6c3e43a4629ac03ecd6b33b5a70f8d3 Mon Sep 17 00:00:00 2001 From: Jeff Mesnil Date: Thu, 13 Jun 2024 11:37:08 +0200 Subject: [PATCH 3/8] update proposal Signed-off-by: Jeff Mesnil --- wf-galleon/wildfly_channel_in_zips.adoc | 94 ++++++++++++++++++++----- 1 file changed, 76 insertions(+), 18 deletions(-) diff --git a/wf-galleon/wildfly_channel_in_zips.adoc b/wf-galleon/wildfly_channel_in_zips.adoc index 96a63930..63eb7cc4 100644 --- a/wf-galleon/wildfly_channel_in_zips.adoc +++ b/wf-galleon/wildfly_channel_in_zips.adoc @@ -20,33 +20,76 @@ WildFly now publishes https://repo1.maven.org/maven2/org/wildfly/channels/[chann This works out of the box if users is provisioning WildFly (using the wildfly-maven-plugin or Prospero). However for users that are downloading WildFly from our traditional distributions (zip & tgz archives) they can not take advantage of this mechanism. -If our archives would work out of the box with channels, it would significantely simplify updating an installation. +If WildFly archives would work out of the box with channels, it would significantely simplify updating an installation. The workflow would be as simple as: 1. Download WildFly version x.y.z from our download page 2. Use it as normal -3. A micro release of WildFly x.y.(z+ 1) is made available -4. Run a script in the existing WildFly installation to update if from x.y.z to x.y.(z+1) -5. Reload the server to run your applications on WildFly x.y.(z+ 1) +3. A more recent version of WildFly x.y.(z+ 1) is made available +4. Run a script in the existing WildFly installation to update it to this new version +5. Restart the server to run your applications on this new version If there are multiple available updates for WildFly, the user must be able to decide which one they want to update to. This lets the user decide whether they want to update to the latest micro release or the next major release. +=== WildFly Channels + +WildFly channels are published for each of its distributions since 32.0.0.Beta1: + +* https://repo1.maven.org/maven2/org/wildfly/channels/wildfly/[org.wildfly.channels:wildfly] +* https://repo1.maven.org/maven2/org/wildfly/channels/wildfly-ee/[org.wildfly.channels:wildfly-ee] +* https://repo1.maven.org/maven2/org/wildfly/channels/wildfly-preview/[org.wildfly.channels:wildfly-preview] + +These channels are versioned based on the WildFly versions (e.g. `org.wildfly.channels:wildfly:32.0.1.Final` contains all the dependencies to provision WildFly 32.0.1.Final's full installation) + +The http://docs.wildfly.org/wildfly-proposals/build/WFLY-19130_publish_Wildfly_channel_manifest.html[Analysis Document for WFLY-19130] states that the channels publish the latest manifest with no backwards compatibility guarantee, meaning each channel will always contain components of the latest released version of WildFly. + +There are no guarantee that the channel will not break between major releases of WildFly. +We guarantee that minor and micro releases of WildFly do not contain breaking changes and this extends to their channels. + +=== Tooling Workflow + +With that in mind, we propose to incorporate the channel metadata in the WildFly distributions that describes the exact version of the channel used to provision the server. +In practice, that means that the installation would be "stuck" to a versioned channel (eg `org.wildfly.channels:wildfly:33.0.0.Final`). + +Updating to a more recent version is a user decision and would require the user to give as input the version of the WildFly they want to _update to_ (e.g. `33.0.1.Final` or `34.0.0.Final`). +After the update is successful, the channel metadata would be updated to point to the current version of the installation. + +WildFly must contain the tooling to let user update installations without having to download another piece of software. + +The tooling should be made available in the `bin` directory of this installation and affects only the parent directory (`JBOSS_HOME` would have no bearing for update). + +The tooling would need to provide the following operations: + +* List the actual provisioned version of the installation (the channel it was provisioned from, read from the metadata added by WFLY-19221) +** Informational only - no changes to the installation state +* List the available updates for the installations (can be obtained by querying Maven Central to get all the versions for the channel artifact based on the maven-metadata.xml) +** Informational only - no changes to the installation state +* Apply an update to a more recent version of WildFly (based on the list mentioned above) +** Verify that the installation is not running. +** The changes that would be applied to the installation are shown to the user +** After their confirmation, the update is applied and the installation state changes +** After the update, the provisioned version of the installation is the more recent version that was applied + +Since https://issues.redhat.com/browse/WFCORE-6206[WFCORE-6206], there is `installation-manager` script that is meant for internal usage. This script could be repurposed to provide these operations to the user. + == Issue Metadata === Issue -* https://issues.redhat.com/browse/WFLY-19221 +* https://issues.redhat.com/browse/WFLY-19221 - [Preview] Incorporate channel metadata in the download zips === Related Issues -* https://issues.redhat.com/browse/WFLY-19130 +* https://issues.redhat.com/browse/WFLY-19130 - [Community] Publish Wildfly channel and manifest during project build +** http://docs.wildfly.org/wildfly-proposals/build/WFLY-19130_publish_Wildfly_channel_manifest.html[Analysis Document] +* https://issues.redhat.com/browse/WFCORE-6206 - Add new module to allow an integration of an Installation Manager === Stability Level -* [X] Experimental +* [x] Experimental === Dev Contacts @@ -56,12 +99,14 @@ This lets the user decide whether they want to update to the latest micro releas === Testing By -* [X] Engineering +* [x] Engineering === Affected Projects or Components -* WildFly -* Prospero +* https://github.com/wildfly/wildfly[WildFly] +** WildFly distributions will incorporate channel metadata used to create the distributions and tooling to update the installation to a more recent version. +* https://github.com/wildfly-extras/prospero[Prospero] +** Prospero will be used as the library to update WildFly installations but will not surface to the user (the `installation-manager` script is the user entry point) === Other Interested Projects @@ -72,14 +117,19 @@ This lets the user decide whether they want to update to the latest micro releas == Requirements * WildFly distributions archives (zip & tgz) must contain the channel metadata that describes their installation state. +** tracked by https://issues.redhat.com/browse/WFLY-19221[WFLY-19221] +** Provisioned feature packs are referenced by their Maven artifacts coordinates (e.g. `org.wildfly:wildfly-galleon-pack:33.0.0.Final`) and not by their Galleon feature-pack-locations (e.g. `wildfly@maven(org.jboss.universe:community-universe):current#33.0.0.Final`). * WildFly distributions archives (zip & tgz) must contain the tooling (as scripts) to let users update their installations +** not tracked in JIRA ** Users must be able to list and select the updates to apply to their installations ** The user MUST specify the updates to apply. -** As this feature is experimental, the tooling should warn the user that udpating their installation is an experimental mechanism +** As this feature is experimental, the tooling should warn the user that updating their installation is an experimental mechanism +** these operations will be using Prospero that needs to be integrated as a JBoss module in the WildFly distributions. * Updates must not discard any user changes to an installation (in their configuration files or JBoss modules directory) === Non-Requirements +* Changing the type of distributions during an update is not supported (in other words, it is not possible to download the zip for WildFly 33.0.0.Final and update the installation to WildFly Preview) * Trimming an existing installation coming from WildFly distributions with Galleon layers is not supported. === Future Work @@ -92,29 +142,36 @@ This enhancement does not affect previous versions of WildFly. === Default Configuration -Updating an installation could update its default configuration (eg if the update is to a major version). +Updating an installation could update its default configuration (e.g. if the update is to a major version). + +WildFly does not make guarantee that its default configuration will be compatible from one major version to another (even though in practice, that's often the case). -WildFly does not make guarantee that its default configuration will be compatible from one major version to another (even though in practice, that's often the case) === Importing Existing Configuration -[jmesnil] TBD - I'm not sure what section means in the context of this enhancement +This section is not relevant in the context of this enhancement. === Deployments Deployments can be affected by this enhancement if there are incompatibilities between the existing WildFly installation and the update. -Testing an installation is out of scope of this enhancement but should be incorporated in the user workflow (eg to test the update in a staging environment). +Testing an installation is out of scope of this enhancement but should be incorporated in the user workflow (e.g. to test the update in a staging environment). === Interoperability +This section is not relevant in the context of this enhancement. + == Test Plan -TBD +=== Test Plan for WFLY-19221 - [Preview] Incorporate channel metadata in the download zips + +* Verify that WildFly generated distributions (from the `dist`, `ee-dist`, and `preview-dist` Maven Modules) contain the channel metadata files corresponding to their provisioning states. == Community Documentation -The https://docs.wildfly.org/32/Installation_Guide.html[Installation Guide] needs to be updated. +WFLY-19221 does not require community documentation as it only ensures that the distributions contain the channel metadata to be _eventually_ updated. + +Once the tooling is in place to actually perform the updates, the https://docs.wildfly.org/32/Installation_Guide.html[Installation Guide] will have to be updated. Its section `Installing WildFly from a zipped distribution` would be expanded to include information about updating the installation. @@ -123,5 +180,6 @@ The guide would let the users download WildFly (eg 33.0.0.Final), check if there == Release Note Content +* Related to WFLY-19221 - [Preview] Incorporate channel metadata in the download zips -WildFly downloads can now be updated to more recent releases out of the box. \ No newline at end of file +> [Preview] WildFly archives (zip & tgz distributions) contain channel metadata required for future updates From 094c94508c1da4d5b15896f5c068f8b0d3c89af7 Mon Sep 17 00:00:00 2001 From: Jeff Mesnil Date: Fri, 6 Sep 2024 14:17:54 +0200 Subject: [PATCH 4/8] update proposal Signed-off-by: Jeff Mesnil --- .../wildfly_channel_in_zips.adoc | 55 ++++++++++++++----- 1 file changed, 40 insertions(+), 15 deletions(-) rename {wf-galleon => provisioning}/wildfly_channel_in_zips.adoc (70%) diff --git a/wf-galleon/wildfly_channel_in_zips.adoc b/provisioning/wildfly_channel_in_zips.adoc similarity index 70% rename from wf-galleon/wildfly_channel_in_zips.adoc rename to provisioning/wildfly_channel_in_zips.adoc index 63eb7cc4..0308cbba 100644 --- a/wf-galleon/wildfly_channel_in_zips.adoc +++ b/provisioning/wildfly_channel_in_zips.adoc @@ -17,7 +17,7 @@ As an user, I can download WildFly from a zip archive and be able to update it t WildFly now publishes https://repo1.maven.org/maven2/org/wildfly/channels/[channels] that is a mechanism to keep a WildFly installation up to date with the latest releases. -This works out of the box if users is provisioning WildFly (using the wildfly-maven-plugin or Prospero). +This works out of the box if users is provisioning WildFly (using the https://github.com/wildfly/wildfly-maven-plugin[wildfly-maven-plugin] or https://github.com/wildfly-extras/prospero[Prospero]). However for users that are downloading WildFly from our traditional distributions (zip & tgz archives) they can not take advantage of this mechanism. If WildFly archives would work out of the box with channels, it would significantely simplify updating an installation. @@ -51,7 +51,7 @@ We guarantee that minor and micro releases of WildFly do not contain breaking ch === Tooling Workflow With that in mind, we propose to incorporate the channel metadata in the WildFly distributions that describes the exact version of the channel used to provision the server. -In practice, that means that the installation would be "stuck" to a versioned channel (eg `org.wildfly.channels:wildfly:33.0.0.Final`). +In practice, that means that the installation would be "bound" to a versioned channel (eg `org.wildfly.channels:wildfly:33.0.0.Final`). Updating to a more recent version is a user decision and would require the user to give as input the version of the WildFly they want to _update to_ (e.g. `33.0.1.Final` or `34.0.0.Final`). After the update is successful, the channel metadata would be updated to point to the current version of the installation. @@ -74,18 +74,19 @@ The tooling would need to provide the following operations: Since https://issues.redhat.com/browse/WFCORE-6206[WFCORE-6206], there is `installation-manager` script that is meant for internal usage. This script could be repurposed to provide these operations to the user. - == Issue Metadata === Issue -* https://issues.redhat.com/browse/WFLY-19221 - [Preview] Incorporate channel metadata in the download zips +* https://issues.redhat.com/browse/WFLY-19221[WFLY-19221] - [Preview] Incorporate channel metadata in the download zips +* https://github.com/wildfly-extras/prospero/issues/754[prospero#754] - Add ability to specify a "target" version for updates +* https://issues.redhat.com/browse/WFMP-271[WFMP-271] Add a parameter to the configuration === Related Issues -* https://issues.redhat.com/browse/WFLY-19130 - [Community] Publish Wildfly channel and manifest during project build +* https://issues.redhat.com/browse/WFLY-19130[WFLY-19130] - [Community] Publish Wildfly channel and manifest during project build ** http://docs.wildfly.org/wildfly-proposals/build/WFLY-19130_publish_Wildfly_channel_manifest.html[Analysis Document] -* https://issues.redhat.com/browse/WFCORE-6206 - Add new module to allow an integration of an Installation Manager +* https://issues.redhat.com/browse/WFCORE-6206[WFCORE-6206] - Add new module to allow an integration of an Installation Manager === Stability Level @@ -107,6 +108,8 @@ Since https://issues.redhat.com/browse/WFCORE-6206[WFCORE-6206], there is `insta ** WildFly distributions will incorporate channel metadata used to create the distributions and tooling to update the installation to a more recent version. * https://github.com/wildfly-extras/prospero[Prospero] ** Prospero will be used as the library to update WildFly installations but will not surface to the user (the `installation-manager` script is the user entry point) +* https://github.com/wildfly/wildfly-maven-plugin[wildfly-maven-plugin] +** The WildFly Maven Plug-in provides the functionality to provision WildFly to create the distributions with the expected channel metadata. === Other Interested Projects @@ -118,9 +121,11 @@ Since https://issues.redhat.com/browse/WFCORE-6206[WFCORE-6206], there is `insta * WildFly distributions archives (zip & tgz) must contain the channel metadata that describes their installation state. ** tracked by https://issues.redhat.com/browse/WFLY-19221[WFLY-19221] -** Provisioned feature packs are referenced by their Maven artifacts coordinates (e.g. `org.wildfly:wildfly-galleon-pack:33.0.0.Final`) and not by their Galleon feature-pack-locations (e.g. `wildfly@maven(org.jboss.universe:community-universe):current#33.0.0.Final`). -* WildFly distributions archives (zip & tgz) must contain the tooling (as scripts) to let users update their installations -** not tracked in JIRA +** Provisioned feature packs remain referenced by their Galleon feature-pack-locations (e.g. `wildfly@maven(org.jboss.universe:community-universe):current#33.0.0.Final`). +*** Users that use Galleon tool to udpate their WildFly installation will continue to be able to do so. +*** Galleon universe artifacts (`org.jboss.universe:community-universe` & `org.jboss.universe.producer:wildfly-producers`) will be added to the WildFly channels +* WildFly distributions archives (zip & tgz) must contain the tooling to let users update their installations +** tracked in https://github.com/wildfly-extras/prospero/issues/749[prospero #749] ** Users must be able to list and select the updates to apply to their installations ** The user MUST specify the updates to apply. ** As this feature is experimental, the tooling should warn the user that updating their installation is an experimental mechanism @@ -132,9 +137,31 @@ Since https://issues.redhat.com/browse/WFCORE-6206[WFCORE-6206], there is `insta * Changing the type of distributions during an update is not supported (in other words, it is not possible to download the zip for WildFly 33.0.0.Final and update the installation to WildFly Preview) * Trimming an existing installation coming from WildFly distributions with Galleon layers is not supported. -=== Future Work +=== Implementation Plan + +The channel metadata are stored in the `.installation` directory when a WildFly server is provisioned. +The WildFly distributions (zip & tar.fz archives) will contain this directory. +This is covered by https://issues.redhat.com/browse/WFLY-19221[WFLY-19221] and provides the foundation to update their installations. + +Prospero will be updated to cover the additional use cases from this proposal. +In particular, it would have to be able to let a user chose a new "target" channel to update to. +This is covered by https://github.com/wildfly-extras/prospero/issues/749. + +While it would be possible for users to download Prospero separately to apply updates to their installations, it will provide a better user experience +if the tooling is included directly in the distributions. +This means that Prospero library will be added to the WildFly distribution as a JBoss module. +The CLI script that the user will use could be the `prospero` script or a simplified CLI script that only exposes the functionality required for updating an installation +(and not for doing a full installation) -WIP +==== Galleon Universe + +WildFly provisioning metadata contains a recording of the Galleon provisioning state in `.installation/provisioning_record.xml`. + +Feature Packs are identified with Galleon feature pack location (e.g. `wildfly@maven(org.jboss.universe:community-universe):current#33.0.0.Final`) as described in the https://docs.wildfly.org/galleon/#_feature_pack_location[Galleon documentation]. + +Prospero is not able to "understand" this location without access to the universe artifacts (`org.jboss.universe:community-universe` & `org.jboss.universe.producer:wildfly-producers`). +The WildFly producer is frequently updated to add new major versions of WildFly including the upcoming major version. +By adding these artifacts to the WildFly channel manifest, Prospero will be able to resolve the feature pack location and ultimately point to the appropriate Maven artifact for the feature pack. == Backwards Compatibility @@ -176,10 +203,8 @@ Once the tooling is in place to actually perform the updates, the https://docs.w Its section `Installing WildFly from a zipped distribution` would be expanded to include information about updating the installation. Once we have 2 releases of WildFly with that feature, we can add a guide to https://www.wildfly.org/guides/ that showcases that feature. -The guide would let the users download WildFly (eg 33.0.0.Final), check if there are updates (eg 33.0.1.Final and 34.0.0.Final), and update their installation with a micro bump. +The guide would let the users download WildFly (eg 33.0.0.Final) and update their installation with a micro bump. == Release Note Content -* Related to WFLY-19221 - [Preview] Incorporate channel metadata in the download zips - -> [Preview] WildFly archives (zip & tgz distributions) contain channel metadata required for future updates +* [Preview] WildFly archives (zip & tgz distributions) contain channel metadata required for future updates From 7cf12b23842716dd276697cac733ee5b1b1497c8 Mon Sep 17 00:00:00 2001 From: Jeff Mesnil Date: Mon, 9 Sep 2024 14:01:39 +0200 Subject: [PATCH 5/8] Added Future Work section Signed-off-by: Jeff Mesnil --- provisioning/wildfly_channel_in_zips.adoc | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/provisioning/wildfly_channel_in_zips.adoc b/provisioning/wildfly_channel_in_zips.adoc index 0308cbba..1e36c187 100644 --- a/provisioning/wildfly_channel_in_zips.adoc +++ b/provisioning/wildfly_channel_in_zips.adoc @@ -86,7 +86,6 @@ Since https://issues.redhat.com/browse/WFCORE-6206[WFCORE-6206], there is `insta * https://issues.redhat.com/browse/WFLY-19130[WFLY-19130] - [Community] Publish Wildfly channel and manifest during project build ** http://docs.wildfly.org/wildfly-proposals/build/WFLY-19130_publish_Wildfly_channel_manifest.html[Analysis Document] -* https://issues.redhat.com/browse/WFCORE-6206[WFCORE-6206] - Add new module to allow an integration of an Installation Manager === Stability Level @@ -137,6 +136,13 @@ Since https://issues.redhat.com/browse/WFCORE-6206[WFCORE-6206], there is `insta * Changing the type of distributions during an update is not supported (in other words, it is not possible to download the zip for WildFly 33.0.0.Final and update the installation to WildFly Preview) * Trimming an existing installation coming from WildFly distributions with Galleon layers is not supported. +=== Future Work + +This feature is `experimental`. + +To make it a `preview` or `community` feature, we will pay attention to the user experience. In particular, the distributions should be "self-updatable" and should not need +to rely on the external download of Prospero to be updated. Promotion to `preview` or `community` would involve the integration of Prospero library into WildFly (as a JBoss module or a separate feature pack). The user interface could also be directly the `prospero` cli tool, a streamlined CLI focused on updates, or additional commands provided within `jboss-cli` tool. + === Implementation Plan The channel metadata are stored in the `.installation` directory when a WildFly server is provisioned. @@ -147,12 +153,6 @@ Prospero will be updated to cover the additional use cases from this proposal. In particular, it would have to be able to let a user chose a new "target" channel to update to. This is covered by https://github.com/wildfly-extras/prospero/issues/749. -While it would be possible for users to download Prospero separately to apply updates to their installations, it will provide a better user experience -if the tooling is included directly in the distributions. -This means that Prospero library will be added to the WildFly distribution as a JBoss module. -The CLI script that the user will use could be the `prospero` script or a simplified CLI script that only exposes the functionality required for updating an installation -(and not for doing a full installation) - ==== Galleon Universe WildFly provisioning metadata contains a recording of the Galleon provisioning state in `.installation/provisioning_record.xml`. From 7772bf546aac5fde3552c46b8af1d13bef68ab2b Mon Sep 17 00:00:00 2001 From: Jeff Mesnil Date: Thu, 12 Sep 2024 16:03:33 +0200 Subject: [PATCH 6/8] add stability-level field to the front matter Signed-off-by: Jeff Mesnil --- provisioning/wildfly_channel_in_zips.adoc | 1 + 1 file changed, 1 insertion(+) diff --git a/provisioning/wildfly_channel_in_zips.adoc b/provisioning/wildfly_channel_in_zips.adoc index 1e36c187..8c48faed 100644 --- a/provisioning/wildfly_channel_in_zips.adoc +++ b/provisioning/wildfly_channel_in_zips.adoc @@ -1,6 +1,7 @@ --- categories: - provisioning +stability-level: experimental --- = [Experimental] Update WildFly download distributions using channels :author: Jeff Mesnil From 814a4b8282a41e9ec9f18eba1fa04d23b49cb236 Mon Sep 17 00:00:00 2001 From: Jeff Mesnil Date: Mon, 14 Oct 2024 11:12:49 +0200 Subject: [PATCH 7/8] add missing issue in front matter Signed-off-by: Jeff Mesnil --- provisioning/wildfly_channel_in_zips.adoc | 1 + 1 file changed, 1 insertion(+) diff --git a/provisioning/wildfly_channel_in_zips.adoc b/provisioning/wildfly_channel_in_zips.adoc index 8c48faed..21528756 100644 --- a/provisioning/wildfly_channel_in_zips.adoc +++ b/provisioning/wildfly_channel_in_zips.adoc @@ -2,6 +2,7 @@ categories: - provisioning stability-level: experimental +issue: https://issues.redhat.com/browse/WFLY-19221 --- = [Experimental] Update WildFly download distributions using channels :author: Jeff Mesnil From d28c82ffb83a9957b583b342f7793cdb18dde9ab Mon Sep 17 00:00:00 2001 From: Jeff Mesnil Date: Mon, 14 Oct 2024 11:17:40 +0200 Subject: [PATCH 8/8] Remove [Experimental] from the title Signed-off-by: Jeff Mesnil --- provisioning/wildfly_channel_in_zips.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/provisioning/wildfly_channel_in_zips.adoc b/provisioning/wildfly_channel_in_zips.adoc index 21528756..01bdd5dd 100644 --- a/provisioning/wildfly_channel_in_zips.adoc +++ b/provisioning/wildfly_channel_in_zips.adoc @@ -4,7 +4,7 @@ categories: stability-level: experimental issue: https://issues.redhat.com/browse/WFLY-19221 --- -= [Experimental] Update WildFly download distributions using channels += Update WildFly download distributions using channels :author: Jeff Mesnil :email: jmesnil@redhat.com :toc: left