Hi all,

As mentioned already in another email earlier today, we still have a few
PRs to merge to fully achieve the transition to Quarkus.

The first one is the Docker PR: https://github.com/apache/polaris/pull/610

Since it's an important topic, I would like to summarize the most important
changes here:

1) The Dockerfile at the root of the repo has gone. It's not needed
anymore, and has security flaws – see
https://github.com/apache/polaris/issues/537 for details). If users want to
build a local image for adhoc testing, this can now be done by simply
building Polaris with:

  ./gradlew assemble -Dquarkus.container-image.build=true

2) The docker-compose file for regression tests has been moved to the
regtests folder. Regression tests can be run with:

  ./gradlew assemble -Dquarkus.container-image.build=true
   docker compose -f regtests/docker-compose.yml up --build
--exit-code-from regtest

3) Eclipse Link and JDBC drivers

This is perhaps the most important change. With Quarkus, it's impossible to
add jars at runtime. Therefore, Polaris server artifacts *must* be built
with all the required dependencies.

>From now on, the polaris-eclipse-link module includes 2 JDBC drivers: H2
and Postgres.

Also from now on, the polaris-quarkus-server artifacts (distribution
tarballs, zips and the Docker images) will contain the 2 drivers.

>From the legal perspective, both drivers are compatible with ASF guidelines
and the license and notice files were updated accordingly.

I would argue that this change greatly simplifies the statu quo by not
requiring users to include their own JDBC jars anymore, and make Polaris
with EclipseLink "just work". There is also no more need to modify the
Dockerfiles to include EclipseLink dependencies via build args.

We can add more JDBC drivers in the future if we want, for example, the
MariaDB JDBC driver is compatible with ASF and connects to both MySQL and
MariaDB databases.

4) Future binary releases

With this PR, the distribution tarballs and zips generated for
polaris-quarkus-server are valid ones. You can generate the distribution
artifacts with:

   ./gradlew clean build

You can unpack and run the distribution zip with the following commands:

  cd quarkus/server/build/distributions
  unzip polaris-quarkus-server-1.0.0-incubating-SNAPSHOT.zip
  cd polaris-quarkus-server-1.0.0-incubating-SNAPSHOT
  java -jar quarkus-run.jar

However, this PR intentionally leaves the question of Docker image releases
for a follow-up discussion, mainly because we still need to figure out our
strategy wrt which registries we want to push to, and which platforms we
want to support.

--

I am eager to get the community's feedback on this, either in this email
thread or in the PR directly.

Thanks,

Alex

Reply via email to