Hi everyone,

After a few weeks of discussing and experimenting with Tiago Bento, we
reached a point where we are comfortable sharing that the experiment of
permanently having `kogito-images` and `kogito-serverless-operator` inside
`kie-tools` has received positive feedback from the people who usually
develop these modules. This new proposal targets `main` (I.e., Apache KIE
10.1 and beyond), so Apache KIE 10.0 is unaffected.

To be clear, this proposal invalidates the previous agreement we had on
“Unblocking and releasing Apache KIE 10” [1], of removing
`sonataflow-devmode-image`, `sonataflow-builder-image`, and
`sonataflow-operator` from `kie-tools` once Apache KIE 10.0 is released.
(See this PR https://github.com/apache/incubator-kie-tools/pull/2472.)

The infrastructure `kie-tools` provides is suitable for continuing to
develop and release Kogito Images and the SonataFlow Operator. The CI
system and PR checks in place worked well and with reasonable performance,
and there were no big disruptions for local development and further
maintenance.

This proposal includes:
- Permanently move each image from `kogito-images` and the content of
`kogito-serverless-operator` as individual packages on `kie-tools`,
preserving commit history (essentially the same move we did for Apache KIE
10, but now for all images)

- Write and publish a “KIE Tools User Manual” as a markdown file on
`kie-tools` itself

- Adapting release scripts for publishing the “new” images from `kie-tools`
instead of from `kogito-images`.

- Permanently archive `kogito-images` and `kogito-serverless-operator`,
removing them from all Jenkins and GitHub Actions automations

All Kogito Images and the SonataFlow Operator will then depend on the
timestamped SNAPSHOT version of upstream projects (automatically published
every Sunday night or on demand) and will be in sync at all times with the
rest of the `kie-tools` repository, meaning the SonataFlow Quarkus Dev UI,
Serverless Logic Web Tools as a whole, and the SonataFlow Knative Plugin
(CLI).

By creating a package for each “new” Kogito Image, all PR checks and the CI
will work, requiring zero changes to the existing automations.

We believe this improves our codebase structure and, more importantly, our
release automations, with minimal disruption to those contributing to those
packages.

Since some of the `sonataflow-builder-image`, the
`sonataflow-devmode-image`, and the `sonataflow-operator` packages were
already moved to the `main` branch of `kie-tools` as a temporary solution
for unblocking and releasing Apache KIE 10, if this proposal is approved,
we’d need to override the existing packages, bringing with commit history
and in a permanent fashion. The execution plan of this proposal is as
follows:
1. Push the finalized version of a “KIE Tools User Guide” as a markdown
file hosted on `kie-tools` itself

2. Push new packages for each “new” Kogito Image override the existing
`sonataflow-builder-image`, `sonataflow-devmode-image`, and
`sonataflow-operator`, with commit history

3. Adapt existing packages on `kie-tools` to depend on and consume the new
ones

4. Change release scripts on `kie-tools` to publish the “new” images from it

5. Remove `kogito-images` and `kogito-serverless-operator` from GitHub
Actions and Jenkins automations

6. Archive `kogito-images` and `kogito-serverless-operator` on GitHub,
changing their README to communicate the change

7. Update documentation references to reflect the change on repo URLs etc

Lastly, if this proposal is approved, further optimizations will be done to
ensure the code is more robust, PR checks are faster and consume less
resources:

1. Stop building kogito-apps modules during Kogito Images build (pull from
Maven instead, based on the the timestamped SNAPSHOT version)

2. Convert the SonataFlow Knative Plugin (CLI) from a package to a module
inside the SonataFlow Operator package

3. Reduce the size of serverless-logic-web-tools-swf-dev-mode-image
(currently at 1.68GB on Docker Hub)

4. Parameterize Quarkus version on Kogito Images, SonataFlow Operator and
Knative Plugin (CLI) based on the `kie-tools`’s Quarkus version

Please let me know,

Regards,

[1] https://lists.apache.org/thread/58xm7pqdyztf7qztmhvntf8wdmvfx7jx

--
Ricardo Zanini Fernandes
Vida longa e próspera.

Reply via email to