Skip to content

Commit 9355e6f

Browse files
snazyrenovate-botModEtchFillsinghpk234pjanuario
authored
Dremio merge 2025 05 27 08 46 (#76)
* fix(nightly-CI): Do not publish snapshots from forks (apache#1635) Adopt the `Nightly Build` workflow to not (try to) publish every night from forks. * main: Update dependency io.smallrye.config:smallrye-config-core to v3.13.0 (apache#1637) * Use echo to print script errors (apache#1648) * [HOTFIX] QUICKSTART (apache#1646) The change adds the following to fix Quick start experience : [1] ENV variables required by common assets after apache#1522 [2] New configs required to enable FILE based sources apache#1649 Co-authored-by: singhpk234 <singhpk234@users.noreply.github.com> Co-authored-by: pjanuario <pjanuario@users.noreply.github.com> * main: Update dependency gradle to v8.14.1 (apache#1652) * main: Update dependency gradle to v8.14.1 * Re-adopt PR to the project's needs --------- Co-authored-by: Robert Stupp <snazy@snazy.de> * [Policy Store] Add policyTypeCode to Slice/Index for Future Filtering Support and Update Policy Persistence Method (apache#1628) This PR adds policyTypeCode to the in-memory tree map store's slice and the SQL index on policy_mapping_records (already done in JDBC in apache#1468). This prepares for future features that need to filter efficiently by policy type, like listing all entities with a data compaction policy. It also updates the loadAllTargetsOnPolicy method to accept policyTypeCode, enabling it to use the new index for better performance. * fix(test): Do not let some more tests spam `/tmp` (apache#1651) * fix(test): Do not let some more tests not spam `/tmp` * `PolarisRestCatalogViewFileIntegrationTest` * `FileIOExceptionsTest` * `PolarisRestCatalogViewFileIntegrationTest` Changes the tests to leverage JUnit's `@TempDir`. Simplifies `PolarisEclipseLinkMetaStoreManagerTest` * review: rename the (now) abstract class * fix(testing): Do not let PolarisOverlappingTableTest spam `/tmp` (apache#1641) Changes the test to leverage JUnit's `@TempDir`. * Add CATALOG_MANAGE_METADATA to super privilege set of policy attachment privileges (apache#1643) * Fix quickstart doc with docker compose (apache#1610) * main: Update dependency boto3 to v1.38.22 (apache#1657) * Refactor IcebergCatalog to isolate internal state (apache#1659) Following up on apache#1694 * Restore `private` scope on internal fields in `IcebergCatalog` * Use a test-only setter instead of sub-classing to manage injecting test FileIO implementations * Refactor: Use per-request STS credentials (apache#1629) * Refactor: Use per-request STS credentials No functional changes. This is mostly to allow more storage integration flexibility in downstream build. This might also be useful for non-AWS storage. * fix and enforce more errorprone checks (apache#1663) enforces the following checks: https://errorprone.info/bugpattern/ObjectsHashCodePrimitive https://errorprone.info/bugpattern/OptionalMapToOptional https://errorprone.info/bugpattern/StringCharset https://errorprone.info/bugpattern/VariableNameSameAsType * Create a wrapper script to generate python client; regenerate the python client (apache#1347) As noted in apache#755 and elsewhere, the generated types in client/python are currently out of date. This introduces a script to regenerate them and a gradle task to run that script. I've also run the script, which necessitated several things to get tests passing: 1. There were small nonfunctional spec changes needed in order to keep the Python client working 2. The CLI and its tests required a few fixes to work with the updated Python client 3. Many of the regtests required fixes to work with the updated Python client * [Python Client] CI for Python client (Continue PR#1096) (apache#1639) Adds CI for python client. It does not include caching poetry step for now since we do not have poetry.lock (it is in .gitignore), see relevant discussion in: apache#1102 (comment), apache#1096 (comment), we can add that later * main: Update actions/setup-python action to v5 (apache#1671) * main: Update actions/checkout action to v4 (apache#1670) * main: Update python Docker tag to v3.13 (apache#1669) * main: Update dependency pytest to ~=7.4.4 (apache#1668) * main: Update dependency software.amazon.awssdk:bom to v2.31.50 (apache#1677) * main: Update dependency boto3 to v1.38.23 (apache#1667) * feat(build): make archive builds reproducible (apache#1664) See https://docs.gradle.org/current/userguide/working_with_files.html#sec:reproducible_archives * main: Update dependency io.prometheus:prometheus-metrics-exporter-servlet-jakarta to v1.3.8 (apache#1679) * NoSQL: adapt to change on oss/main * INFO: Last merged commit: 6ef8b3e --------- Co-authored-by: Mend Renovate <bot@renovateapp.com> Co-authored-by: ModEtchFill <50123102+ModEtchFill@users.noreply.github.com> Co-authored-by: Prashant Singh <35593236+singhpk234@users.noreply.github.com> Co-authored-by: singhpk234 <singhpk234@users.noreply.github.com> Co-authored-by: pjanuario <pjanuario@users.noreply.github.com> Co-authored-by: Honah (Jonas) J. <honahx@apache.org> Co-authored-by: MonkeyCanCode <yongzheng0809@gmail.com> Co-authored-by: Dmitri Bourlatchkov <dmitri.bourlatchkov@dremio.com> Co-authored-by: Dmitri Bourlatchkov <dmitri.bourlatchkov@gmail.com> Co-authored-by: Christopher Lambert <xn137@gmx.de> Co-authored-by: Eric Maynard <eric.maynard+oss@snowflake.com>
1 parent a21f74e commit 9355e6f

File tree

694 files changed

+33333
-2727
lines changed

Some content is hidden

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

694 files changed

+33333
-2727
lines changed

.github/workflows/nightly.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ permissions:
4343
jobs:
4444
nightly_build:
4545
runs-on: ubuntu-latest
46+
if: github.repository == 'apache/polaris'
4647
steps:
4748
- name: Checkout
4849
uses: actions/checkout@v4
Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
#
2+
# Licensed to the Apache Software Foundation (ASF) under one
3+
# or more contributor license agreements. See the NOTICE file
4+
# distributed with this work for additional information
5+
# regarding copyright ownership. The ASF licenses this file
6+
# to you under the Apache License, Version 2.0 (the
7+
# "License"); you may not use this file except in compliance
8+
# with the License. You may obtain a copy of the License at
9+
#
10+
# http://www.apache.org/licenses/LICENSE-2.0
11+
#
12+
# Unless required by applicable law or agreed to in writing,
13+
# software distributed under the License is distributed on an
14+
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15+
# KIND, either express or implied. See the License for the
16+
# specific language governing permissions and limitations
17+
# under the License.
18+
#
19+
20+
# This workflow uses actions that are not certified by GitHub.
21+
# They are provided by a third-party and are governed by
22+
# separate terms of service, privacy policy, and support
23+
# documentation.
24+
# This workflow will build a Python project with Poetry and cache/restore any dependencies to improve the workflow execution time
25+
# For more information see: https://docs.github.com/en/actions/use-cases-and-examples/building-and-testing/building-and-testing-python
26+
27+
name: Python Client CI
28+
29+
on:
30+
push:
31+
branches: [ "main" ]
32+
pull_request:
33+
branches: [ "main" ]
34+
35+
jobs:
36+
build:
37+
38+
runs-on: ubuntu-latest
39+
strategy:
40+
matrix:
41+
python-version: ["3.9", "3.10", "3.11"]
42+
43+
steps:
44+
- name: Checkout Polaris project
45+
uses: actions/checkout@v4
46+
47+
- name: Set up Python ${{ matrix.python-version }}
48+
uses: actions/setup-python@v5
49+
with:
50+
python-version: ${{ matrix.python-version }}
51+
52+
- name: Install Poetry
53+
run: |
54+
pip install --user --upgrade -r regtests/requirements.txt
55+
56+
# TODO: add cache for poetry dependencies once we have poetry.lock in the repo
57+
- name: Install dependencies
58+
working-directory: client/python
59+
run: poetry install --all-extras
60+
61+
- name: Lint with flake8
62+
working-directory: client/python
63+
run: |
64+
poetry run flake8 --select=E9,F63,F7,F82 --max-line-length=127 --statistics
65+
66+
- name: Test with pytest
67+
working-directory: client/python
68+
run: |
69+
export SCRIPT_DIR="non-existing-mock-directory"
70+
poetry run pytest

api/iceberg-service/src/main/java/org/apache/polaris/service/types/NotificationType.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919
package org.apache.polaris.service.types;
2020

2121
import java.util.Arrays;
22-
import java.util.Locale;
2322
import java.util.Map;
2423
import java.util.Optional;
2524
import java.util.stream.Collectors;
@@ -84,9 +83,9 @@ public static Optional<NotificationType> lookupByName(String name) {
8483
return Optional.empty();
8584
}
8685

87-
for (NotificationType NotificationType : NotificationType.values()) {
88-
if (name.toUpperCase(Locale.ROOT).equals(NotificationType.name())) {
89-
return Optional.of(NotificationType);
86+
for (NotificationType notificationType : NotificationType.values()) {
87+
if (name.equalsIgnoreCase(notificationType.name())) {
88+
return Optional.of(notificationType);
9089
}
9190
}
9291
return Optional.empty();

build-logic/src/main/kotlin/polaris-java.gradle.kts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -213,3 +213,10 @@ configurations.all {
213213
}
214214
}
215215
}
216+
217+
// ensure jars conform to reproducible builds
218+
// (https://docs.gradle.org/current/userguide/working_with_files.html#sec:reproducible_archives)
219+
tasks.withType<AbstractArchiveTask>().configureEach {
220+
isPreserveFileTimestamps = false
221+
isReproducibleFileOrder = true
222+
}

build.gradle.kts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,18 @@ tasks.named<RatTask>("rat").configure {
145145
excludes.add("plugins/**/*.ref")
146146
}
147147

148+
tasks.register<Exec>("regeneratePythonClient") {
149+
description = "Regenerates the python client"
150+
151+
workingDir = project.projectDir
152+
commandLine("bash", "client/templates/regenerate.sh")
153+
154+
dependsOn(":polaris-api-iceberg-service:processResources")
155+
dependsOn(":polaris-api-management-service:processResources")
156+
dependsOn(":polaris-api-catalog-service:processResources")
157+
dependsOn(":polaris-api-management-model:processResources")
158+
}
159+
148160
// Pass environment variables:
149161
// ORG_GRADLE_PROJECT_apacheUsername
150162
// ORG_GRADLE_PROJECT_apachePassword

client/python/.github/workflows/python.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
#
2323
# ref: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python
2424

25-
name: polaris.management Python package
25+
name: polaris.catalog Python package
2626

2727
on: [push, pull_request]
2828

client/python/.gitlab-ci.yml

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
#
2+
# Licensed to the Apache Software Foundation (ASF) under one
3+
# or more contributor license agreements. See the NOTICE file
4+
# distributed with this work for additional information
5+
# regarding copyright ownership. The ASF licenses this file
6+
# to you under the Apache License, Version 2.0 (the
7+
# "License"); you may not use this file except in compliance
8+
# with the License. You may obtain a copy of the License at
9+
#
10+
# http://www.apache.org/licenses/LICENSE-2.0
11+
#
12+
# Unless required by applicable law or agreed to in writing,
13+
# software distributed under the License is distributed on an
14+
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15+
# KIND, either express or implied. See the License for the
16+
# specific language governing permissions and limitations
17+
# under the License.
18+
#
19+
20+
# NOTE: This file is auto generated by OpenAPI Generator.
21+
# URL: https://openapi-generator.tech
22+
#
23+
# ref: https://docs.gitlab.com/ee/ci/README.html
24+
# ref: https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/ci/templates/Python.gitlab-ci.yml
25+
26+
stages:
27+
- test
28+
29+
.pytest:
30+
stage: test
31+
script:
32+
- pip install -r requirements.txt
33+
- pip install -r test-requirements.txt
34+
- pytest --cov=polaris.catalog
35+
36+
pytest-3.7:
37+
extends: .pytest
38+
image: python:3.13-alpine
39+
pytest-3.8:
40+
extends: .pytest
41+
image: python:3.13-alpine
42+
pytest-3.9:
43+
extends: .pytest
44+
image: python:3.13-alpine
45+
pytest-3.10:
46+
extends: .pytest
47+
image: python:3.13-alpine
48+
pytest-3.11:
49+
extends: .pytest
50+
image: python:3.13-alpine

0 commit comments

Comments
 (0)