Skip to content

Commit 5c4e632

Browse files
snazyHonahXeric-maynardsinghpk234flyrain
authored
Dremio merge 2025 06 20 17 35 (#87)
* Cleanup unnecessary files in client/python (apache#1878) Cleanup unnecessary files in `client/python` * Bump version in version.txt With the release/1.0.0 branch being cut, we should bump this to reflect the current state of main * JDBC: Refactor DatabaseOps (apache#1843) * removes the databaseType computation from JDBCMetastoreManagerFactory to DbOperations * wraps the bootstrap in a transaction ! * refactor Production Readiness checks for Postgres * Fix two wrong links in README.md (apache#1879) * Avoid using org.testcontainers.shaded.** (apache#1876) * main: Update dependency io.smallrye.config:smallrye-config-core to v3.13.2 (apache#1888) * main: Update registry.access.redhat.com/ubi9/openjdk-21-runtime Docker tag to v1.22-1.1749462970 (apache#1887) * main: Update dependency boto3 to v1.38.36 (apache#1886) * fix(build): Fix deprecation warnings in PolarisIntegrationTestExtension (apache#1895) * Enable patch version updates for maintained Polaris version (apache#1891) Polaris 1.x will be a supported/maintained release. It is crucial to apply bug and security fixes to such release branches. Therefore, this change enables patch-version updates for Polaris 1.* * Add Polaris community meeting record for 2025-06-12 (apache#1892) * Do not use relative path inside CLI script Issue apache#1868 reported that the Polaris script can fail when it's run from an unexpected path. The recent addition of a reference to `./gradlew` looks incorrect here, and should be changed to use an absolute path. Fixes apache#1868 * feat(build): Add Checkstyle plugin and an IllegalImport rule (apache#1880) * Python CI: pin mypy version to avoid CI failure due to new release (apache#1903) Mypy did a new release 1.16.1 and it cause our CI to fail for about 20 minutes due to missing wheel (upload not completed) ``` | Unable to find installation candidates for mypy (1.16.1) | | This is likely not a Poetry issue. | | - 14 candidate(s) were identified for the package | - 14 wheel(s) were skipped as your project's environment does not support the identified abi tags | | Solutions: | Make sure the lockfile is up-to-date. You can try one of the following; | | 1. Regenerate lockfile: poetry lock --no-cache --regenerate | 2. Update package : poetry update --no-cache mypy | | If neither works, please first check to verify that the mypy has published wheels available from your configured source that are compatible with your environment- ie. operating system, architecture (x86_64, arm64 etc.), python interpreter. | ``` This PR temporarily restrict the mypy version to avoid the similar issue. We may consider bring poetry.lock back to git tracking so we won't automatically update test dependencies all the time * Remove `.github/CODEOWNERS` (apache#1902) As per this [dev-ML discussion](https://lists.apache.org/thread/jjr5w3hslk755yvxy8b3z45c7094cxdn) * Rename quarkus as runtime (apache#1695) * Rename runtime/test-commons to runtime/test-common (for consistency with module name) (apache#1906) * docs: Add `Polaris Evolution` page (apache#1890) --------- Co-authored-by: Eric Maynard <emaynard@apache.org> * feat(ci): Split Java Gradle CI in many jobs to reduce execution time (apache#1897) * Add webpage for Generic Table support (apache#1889) * add change * add comment * address feedback * update limitations * update docs * update doc * address feedback * Improve the parsing and validation of UserSecretReferenceUrns (apache#1840) This change addresses all the TODOs found the org.polaris.core.secrets package. Main changes: - Create a helper to parse, validate and build the URN strings. - Use Regex instead of `String.split()`. - Add Precondition checks to ensure that the URN is valid and the UserSecretManager matches the expected type. - Remove the now unused `GLOBAL_INSTANCE` of the UnsafeInMemorySecretsManager. Testing - Existing `UnsafeInMemorySecretsManagerTest` captures most of the functional changes. - Added `UserSecretReferenceUrnHelperTest` to capture the utilities exposed. * Reuse shadowJar for spark client bundle jar maven publish (apache#1857) * fix spark client * fix test failure and address feedback * fix error * update regression test * update classifier name * address comment * add change * update doc * update build and readme * add back jr * udpate dependency * add change * update * update tests * remove merge service file * update readme * update readme * fix(ci): Remove dummy "build" job from Gradle CI (apache#1911) Since apache#1897, the jobs in gradle.yaml changed and the "build" job was split into many smaller jobs. But since it was a required job, it couldn't be removed immediately. * main: Update Quarkus Platform and Group to v3.23.3 (apache#1797) * main: Update Quarkus Platform and Group to v3.23.3 * Adopt polaris-admin test invocation --------- Co-authored-by: Robert Stupp <snazy@snazy.de> * Feature: Rollback compaction on conflict (apache#1285) Intention is make the catalog smarter, to revert the compaction commits in case of crunch to let the writers who are actually adding or removing the data to the table succeed. In a sense treating compaction as always a lower priority process. Presently the rest catalog client creates the snapshot and asks the Rest Server to apply the snapshot and gives this in a combination of requirement and update. Polaris could apply some basic inference and generate some updates to metadata given a property is enabled at a table level, by saying that It will revert back the commit which was created by compaction and let the write succeed. I had this PR in OSS, which was essentially doing this at the client end, but we think its best if we do this as server end. to support more such clients. How to use this Enable a catalog level configuration : polaris.config.rollback.compaction.on-conflicts.enabled when this is enabled polaris will apply the intelligence of rollbacking those REPLACE ops snapshot which have the property of polaris.internal.rollback.compaction.on-conflict in their snapshot summary to resolve conflicts at the server end ! a sample use case is there is a deployment of a Polaris where this config is enabled and there is auto compaction (maintenance job) which is updating the table state, it adds the snapshot summary that polaris.internal.rollback.compaction.on-conflict is true now when a backfill process running for 8 hours want to commit but can't because the compaction job committed before so in this case it will reach out to Polaris and Polaris will see if the snapshot of compation aka replace snapshot has this property if yes roll it back and let the writer succeed ! Devlist: https://lists.apache.org/thread/8k8t77dgk1vc124fnb61932bdp9kf1lc * NoSQL: nits * `AutoCloseable` for `PersistenceTestExtension` * checkstyle adoptions * fix: unify bootstrap credentials and standardize POLARIS setup (apache#1905) - unified formatting across docker, gradle - reverted secret to s3cr3t - updated docker-compose, README, conftest.py use POLARIS for consistency across docker, gradle and others. * Add doc for rollback config (apache#1919) * Revert "Reuse shadowJar for spark client bundle jar maven publish (apache#1857)" (apache#1921) …857)" This reverts commit 1f7f127. The shadowJar plugin actually stops publish the original jar, which is not what spark client intend to publish for the --package usage. Revert it for now, will follow up with a better way to reuse the shadow jar plugin, likely with a separate bundle project * fix(build): Gradle caching effectively not working (apache#1922) Using a `custom()` spotless formatter check effectively disables caching, see `com.diffplug.gradle.spotless.FormatExtension#custom(java.lang.String, com.diffplug.spotless.FormatterFunc)` using `globalState`, which is a `NeverUpToDateBetweenRuns`. This change refactors this to be cachable. We also already have a errorprone rule, so we can get rid entirely of the spotless step. * Update spark client to use the shaded iceberg-core in iceberg-spark-runtime to avoid spark compatibilities issue (apache#1908) * add change * add comment * update change * add comment * add change * add tests * add comment * clean up style check * update build * Revert "Reuse shadowJar for spark client bundle jar maven publish (apache#1857)" This reverts commit 1f7f127. * Reuse shadowJar for spark client bundle jar maven publish (apache#1857) * fix spark client * fix test failure and address feedback * fix error * update regression test * update classifier name * address comment * add change * update doc * update build and readme * add back jr * udpate dependency * add change * update * update tests * remove merge service file * update readme * update readme * update checkstyl * rebase with main * Revert "Reuse shadowJar for spark client bundle jar maven publish (apache#1857)" This reverts commit 40f4d36. * update checkstyle * revert change * address comments * trigger tests * Last merged commit 93938fd --------- Co-authored-by: Honah (Jonas) J. <honahx@apache.org> Co-authored-by: Eric Maynard <eric.maynard+oss@snowflake.com> Co-authored-by: Prashant Singh <35593236+singhpk234@users.noreply.github.com> Co-authored-by: Yufei Gu <yufei@apache.org> Co-authored-by: Dmitri Bourlatchkov <dmitri.bourlatchkov@gmail.com> Co-authored-by: Mend Renovate <bot@renovateapp.com> Co-authored-by: Alexandre Dutra <adutra@users.noreply.github.com> Co-authored-by: JB Onofré <jbonofre@apache.org> Co-authored-by: Eric Maynard <emaynard@apache.org> Co-authored-by: Yun Zou <yunzou.colostate@gmail.com> Co-authored-by: Pooja Nilangekar <poojan@umd.edu> Co-authored-by: Seungchul Lee <scleefe01@gmail.com>
1 parent 4e53f9c commit 5c4e632

File tree

724 files changed

+2566
-39715
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

724 files changed

+2566
-39715
lines changed

.asf.yaml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,9 @@ github:
5454
# of the job's `name` property if it's present.
5555
contexts:
5656
- markdown-link-check
57-
- build
57+
- "Unit Tests"
58+
- "Quarkus Tests"
59+
- "Integration Tests"
5860
- regtest
5961
- spark-plugin-regtest
6062
- site

.github/CODEOWNERS

Lines changed: 0 additions & 20 deletions
This file was deleted.

.github/renovate.json5

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,10 @@
3030

3131
// Added for posterity how to let Renovate manage version-branches, assuming that release branches
3232
// have the `release/` prefix.
33-
baseBranches: ["main"],
33+
baseBranches: [
34+
"main",
35+
"/^release\\/1[.].*",
36+
],
3437
additionalBranchPrefix: "{{baseBranch}}/",
3538
commitMessagePrefix: "{{baseBranch}}: ",
3639

.github/workflows/check-md-link.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,5 +43,5 @@ jobs:
4343
with:
4444
use-quiet-mode: 'yes'
4545
config-file: '.github/workflows/check-md-link-config.json'
46-
folder-path: 'regtests, .github, build-logic, polaris-core, service, quarkus, persistence, spec, k8, getting-started, helm'
46+
folder-path: 'regtests, .github, build-logic, polaris-core, service, runtime, persistence, spec, k8, getting-started, helm'
4747
file-path: 'CHAT_BYLAWS.md, CODE_OF_CONDUCT.md, CONTRIBUTING.md, README.md, SECURITY.md'

.github/workflows/gradle.yml

Lines changed: 54 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -33,65 +33,89 @@ on:
3333
branches: [ "main" ]
3434

3535
jobs:
36-
build:
3736

37+
unit-tests:
38+
name: Unit Tests
3839
runs-on: ubuntu-latest
3940
permissions:
4041
contents: read
41-
4242
steps:
4343
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
4444
- name: Set up JDK 21
4545
uses: actions/setup-java@c5195efecf7bdfc987ee8bae7a71cb8b11521c00 # v4
4646
with:
4747
java-version: '21'
4848
distribution: 'temurin'
49-
50-
# Configure Gradle for optimal use in GiHub Actions, including caching of downloaded dependencies.
51-
# See: https://github.com/gradle/actions/blob/main/setup-gradle/README.md
5249
- name: Setup Gradle
5350
uses: gradle/actions/setup-gradle@ac638b010cf58a27ee6c972d7336334ccaf61c96 # v4
5451
with:
55-
# The setup-gradle action fails, if the wrapper is not using the right version or is not present.
56-
# Our `gradlew` validates the integrity of the `gradle-wrapper.jar`, so it's safe to disable this.
5752
validate-wrappers: false
58-
59-
- name: Code style checks and tests
60-
run: ./gradlew --continue check
61-
62-
- name: Check Maven publication
63-
run: ./gradlew publishToMavenLocal sourceTarball
64-
53+
- name: Run unit tests
54+
run: |
55+
./gradlew check sourceTarball distTar distZip publishToMavenLocal \
56+
-x :polaris-runtime-service:test \
57+
-x :polaris-admin:test \
58+
-x intTest --continue
6559
- name: Archive test results
6660
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
6761
if: always()
6862
with:
69-
name: upload-test-artifacts
63+
name: upload-unit-test-artifacts
7064
path: |
7165
**/build/test-results/**
7266
73-
- name: Stop Gradle daemons
74-
run: ./gradlew --stop
75-
76-
# Ensure that the build works properly when building against the "latest greatest" Java version
77-
- name: Set up JDK 23
67+
quarkus-tests:
68+
name: Quarkus Tests
69+
runs-on: ubuntu-latest
70+
permissions:
71+
contents: read
72+
steps:
73+
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
74+
- name: Set up JDK 21
7875
uses: actions/setup-java@c5195efecf7bdfc987ee8bae7a71cb8b11521c00 # v4
7976
with:
80-
java-version: '23'
77+
java-version: '21'
8178
distribution: 'temurin'
82-
- name: Show Java version
83-
run: java -version
84-
- name: Clean
85-
run: ./gradlew clean
86-
- name: Build
87-
run: ./gradlew compileAll
88-
- name: Run selected tests
89-
run: ./gradlew :polaris-quarkus-service:intTest
79+
- name: Setup Gradle
80+
uses: gradle/actions/setup-gradle@ac638b010cf58a27ee6c972d7336334ccaf61c96 # v4
81+
with:
82+
validate-wrappers: false
83+
- name: Run Quarkus tests
84+
run: |
85+
./gradlew \
86+
:polaris-runtime-service:test \
87+
:polaris-admin:test \
88+
--continue
89+
- name: Archive test results
90+
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
91+
if: always()
92+
with:
93+
name: upload-quarkus-test-artifacts
94+
path: |
95+
**/build/test-results/**
9096
97+
integration-tests:
98+
name: Integration Tests
99+
runs-on: ubuntu-latest
100+
permissions:
101+
contents: read
102+
steps:
103+
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
104+
- name: Set up JDK 21
105+
uses: actions/setup-java@c5195efecf7bdfc987ee8bae7a71cb8b11521c00 # v4
106+
with:
107+
java-version: '21'
108+
distribution: 'temurin'
109+
- name: Setup Gradle
110+
uses: gradle/actions/setup-gradle@ac638b010cf58a27ee6c972d7336334ccaf61c96 # v4
111+
with:
112+
validate-wrappers: false
113+
- name: Run integration tests
114+
run: ./gradlew intTest --continue
91115
- name: Archive test results
92116
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
93117
if: always()
94118
with:
95-
name: upload-test-artifacts-java-23
119+
name: upload-integration-test-artifacts
96120
path: |
97121
**/build/test-results/**

.github/workflows/helm.yml

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -86,12 +86,11 @@ jobs:
8686
run: |
8787
eval $(minikube -p minikube docker-env)
8888
./gradlew \
89-
:polaris-quarkus-server:assemble \
90-
:polaris-quarkus-server:quarkusAppPartsBuild --rerun \
91-
:polaris-quarkus-admin:assemble \
92-
:polaris-quarkus-admin:quarkusAppPartsBuild --rerun \
93-
-Dquarkus.container-image.build=true \
94-
-PeclipseLinkDeps=org.postgresql:postgresql:42.7.4
89+
:polaris-server:assemble \
90+
:polaris-server:quarkusAppPartsBuild --rerun \
91+
:polaris-admin:assemble \
92+
:polaris-admin:quarkusAppPartsBuild --rerun \
93+
-Dquarkus.container-image.build=true
9594
minikube image ls
9695
9796
- name: Install fixtures

.github/workflows/python-client.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -81,8 +81,8 @@ jobs:
8181
- name: Image build
8282
run: |
8383
./gradlew \
84-
:polaris-quarkus-server:assemble \
85-
:polaris-quarkus-server:quarkusAppPartsBuild --rerun \
84+
:polaris-server:assemble \
85+
:polaris-server:quarkusAppPartsBuild --rerun \
8686
-Dquarkus.container-image.build=true
8787
8888
- name: Integration Tests

.github/workflows/regtest.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,8 +49,8 @@ jobs:
4949
- name: Image build
5050
run: |
5151
./gradlew \
52-
:polaris-quarkus-server:assemble \
53-
:polaris-quarkus-server:quarkusAppPartsBuild --rerun \
52+
:polaris-server:assemble \
53+
:polaris-server:quarkusAppPartsBuild --rerun \
5454
-Dquarkus.container-image.build=true
5555
5656
- name: Regression Test

.github/workflows/spark_client_regtests.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,8 +52,8 @@ jobs:
5252
- name: Image build
5353
run: |
5454
./gradlew \
55-
:polaris-quarkus-server:assemble \
56-
:polaris-quarkus-server:quarkusAppPartsBuild --rerun \
55+
:polaris-server:assemble \
56+
:polaris-server:quarkusAppPartsBuild --rerun \
5757
-Dquarkus.container-image.build=true
5858
5959
# NOTE: the regression test runs with spark 3.5.5 and scala 2.12 in Java 17. We also have integration

.gitignore

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,11 @@ client/python/poetry.lock
2828
/poetry.lock
2929
/polaris-venv/
3030
/pyproject.toml
31-
/client/python/
32-
!/client/python/pyproject.toml
31+
client/python/.openapi-generator/
32+
client/python/docs/
33+
client/python/polaris/
34+
client/python/test/
35+
!client/python/test/test_cli_parsing.py
3336

3437
# Polaris CLI profile
3538
.polaris.json

0 commit comments

Comments
 (0)