Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
2dd3087
Build: Bump com.google.errorprone:error_prone_annotations (#9972)
dependabot[bot] Mar 18, 2024
54246a0
Build: Bump org.awaitility:awaitility from 4.2.0 to 4.2.1 (#9970)
dependabot[bot] Mar 18, 2024
1c50227
Docs: Add 13 Dremio Blogs + Fix a few incorrect dates (#9967)
AlexMercedCoder Mar 18, 2024
20bd4ca
Build: Fix ignoring major version update in dependabot (#9981)
manuzhang Mar 18, 2024
82137b9
Build: Bump nessie from 0.77.1 to 0.79.0 (#9976)
dependabot[bot] Mar 18, 2024
b0a4a90
Build: Bump datamodel-code-generator from 0.25.4 to 0.25.5 (#9979)
dependabot[bot] Mar 18, 2024
1bc5c7c
Build: Bump mkdocs-material from 9.5.9 to 9.5.14 (#9983)
dependabot[bot] Mar 18, 2024
f79fb3f
Core: Migrate tests to JUnit5 (#9964)
tomtongue Mar 18, 2024
0cdf62f
Build: Bump spring-boot from 2.5.4 to 2.7.18 (#9985)
dependabot[bot] Mar 18, 2024
e687954
Build: Bump org.springframework:spring-web from 5.3.30 to 5.3.33 (#9989)
dependabot[bot] Mar 18, 2024
a3f8879
Build: Bump jetty from 9.4.53.v20231009 to 9.4.54.v20240208 (#9982)
dependabot[bot] Mar 18, 2024
7a6143a
Build: Bump guava from 33.0.0-jre to 33.1.0-jre (#9977)
dependabot[bot] Mar 18, 2024
f614a3f
API: Fix `TestStrictMetricsEvaluator` assertion message (#9992)
Fokko Mar 18, 2024
353e55e
Build: Bump arrow from 15.0.0 to 15.0.1 (#9910)
dependabot[bot] Mar 19, 2024
f425dc7
AWS, Core: Replace .withFailMessage() usage with .as() (#10000)
nastra Mar 19, 2024
fae0f81
Core: Migrate tests to JUnit5 (#9999)
tomtongue Mar 20, 2024
f8d60ea
Docs: Add Daft into Iceberg documentation (#9836)
jaychia Mar 20, 2024
aa17c0a
Core: Migrate tests to JUnit5 (#9994)
tomtongue Mar 20, 2024
7151401
Add issue template and docs for iceberg proposals (#9932)
danielcweeks Mar 20, 2024
59ffa33
Core: Migrate tests to JUnit5 (#10014)
tomtongue Mar 21, 2024
e769add
Kafka Connect: Record converters (#9641)
bryanck Mar 21, 2024
9cbc2f4
Core: Use <?> as type parameter instead of raw type for SnapshotUpdat…
nastra Mar 22, 2024
c9795fd
Docs: Add local nightly build to test current docs changes (#9943)
bitsondatadev Mar 22, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
50 changes: 50 additions & 0 deletions .github/ISSUE_TEMPLATE/iceberg_proposal.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
#

---
name: Iceberg Improvement Proposal
description: Propose a Spec change or major feature
labels: ["proposal"]
body:
- type: markdown
attributes:
value: "Please see documentation site for information on [contributing proposals](https://iceberg.apache.org/contribute/#apache-iceberg-improvement-proposals)"
- type: textarea
attributes:
label: Proposed Change
description: Please describe the proposal and elaborate on the use case and motivation
validations:
required: true
- type: input
attributes:
label: Proposal document
description: |
Link to the proposal document. Google Docs is preferred format to allow for public
comment and sharing
- type: checkboxes
attributes:
label: Specifications
description: Which specifications are affected by this proposal?
options:
- label: Table
- label: View
- label: REST
- label: Puffin
- label: Encryption
- label: Other
13 changes: 9 additions & 4 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,19 +24,24 @@ updates:
schedule:
interval: "weekly"
day: "sunday"
ignore:
- dependency-name: "*"
update-types: ["version-update:semver-major"]
- package-ecosystem: "gradle"
directory: "/"
schedule:
interval: "weekly"
day: "sunday"
open-pull-requests-limit: 50
ignore:
- dependency-name: "*"
update-types: ["version-update:semver-major"]
- package-ecosystem: "pip"
directory: "/"
schedule:
interval: "weekly"
day: "sunday"
open-pull-requests-limit: 5
- ignore:
dependency-name: "*"
update-types: ["version-update:semver-major"]

ignore:
- dependency-name: "*"
update-types: ["version-update:semver-major"]
Original file line number Diff line number Diff line change
Expand Up @@ -592,7 +592,7 @@ public void testIntegerNotIn() {
boolean shouldRead =
new StrictMetricsEvaluator(SCHEMA, notIn("id", INT_MIN_VALUE - 25, INT_MIN_VALUE - 24))
.eval(FILE);
assertThat(shouldRead).as("Should not match: all values !=5 and !=6").isTrue();
assertThat(shouldRead).as("Should match: all values !=5 and !=6").isTrue();

shouldRead =
new StrictMetricsEvaluator(SCHEMA, notIn("id", INT_MIN_VALUE - 1, INT_MIN_VALUE))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ public void testApplyClientRegion() {
Mockito.verify(mockS3ClientBuilder).region(regionArgumentCaptor.capture());
Region region = regionArgumentCaptor.getValue();
Assertions.assertThat(region.id())
.withFailMessage("region parameter should match what is set in CLIENT_REGION")
.as("region parameter should match what is set in CLIENT_REGION")
.isEqualTo("us-east-1");
}

Expand All @@ -56,9 +56,9 @@ public void testDefaultCredentialsConfiguration() {
AwsCredentialsProvider credentialsProvider =
awsClientProperties.credentialsProvider(null, null, null);

Assertions.assertThat(credentialsProvider instanceof DefaultCredentialsProvider)
.withFailMessage("Should use default credentials if nothing is set")
.isTrue();
Assertions.assertThat(credentialsProvider)
.as("Should use default credentials if nothing is set")
.isInstanceOf(DefaultCredentialsProvider.class);
}

@Test
Expand All @@ -70,7 +70,7 @@ public void testCreatesNewInstanceOfDefaultCredentialsConfiguration() {
awsClientProperties.credentialsProvider(null, null, null);

Assertions.assertThat(credentialsProvider)
.withFailMessage("Should create a new instance in each call")
.as("Should create a new instance in each call")
.isNotSameAs(credentialsProvider2);
}

Expand All @@ -81,17 +81,15 @@ public void testBasicCredentialsConfiguration() {
AwsCredentialsProvider credentialsProvider =
awsClientProperties.credentialsProvider("key", "secret", null);

Assertions.assertThat(credentialsProvider.resolveCredentials() instanceof AwsBasicCredentials)
.withFailMessage(
"Should use basic credentials if access key ID and secret access key are set")
.isTrue();
Assertions.assertThat(credentialsProvider.resolveCredentials())
.as("Should use basic credentials if access key ID and secret access key are set")
.isInstanceOf(AwsBasicCredentials.class);
Assertions.assertThat(credentialsProvider.resolveCredentials().accessKeyId())
.withFailMessage("The access key id should be the same as the one set by tag ACCESS_KEY_ID")
.as("The access key id should be the same as the one set by tag ACCESS_KEY_ID")
.isEqualTo("key");

Assertions.assertThat(credentialsProvider.resolveCredentials().secretAccessKey())
.withFailMessage(
"The secret access key should be the same as the one set by tag SECRET_ACCESS_KEY")
.as("The secret access key should be the same as the one set by tag SECRET_ACCESS_KEY")
.isEqualTo("secret");
}

Expand All @@ -102,15 +100,14 @@ public void testSessionCredentialsConfiguration() {
AwsCredentialsProvider credentialsProvider =
awsClientProperties.credentialsProvider("key", "secret", "token");

Assertions.assertThat(credentialsProvider.resolveCredentials() instanceof AwsSessionCredentials)
.withFailMessage("Should use session credentials if session token is set")
.isTrue();
Assertions.assertThat(credentialsProvider.resolveCredentials())
.as("Should use session credentials if session token is set")
.isInstanceOf(AwsSessionCredentials.class);
Assertions.assertThat(credentialsProvider.resolveCredentials().accessKeyId())
.withFailMessage("The access key id should be the same as the one set by tag ACCESS_KEY_ID")
.as("The access key id should be the same as the one set by tag ACCESS_KEY_ID")
.isEqualTo("key");
Assertions.assertThat(credentialsProvider.resolveCredentials().secretAccessKey())
.withFailMessage(
"The secret access key should be the same as the one set by tag SECRET_ACCESS_KEY")
.as("The secret access key should be the same as the one set by tag SECRET_ACCESS_KEY")
.isEqualTo("secret");
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -45,9 +45,9 @@ public void testUrlHttpClientConfiguration() {
Mockito.verify(mockS3ClientBuilder).httpClientBuilder(httpClientBuilderCaptor.capture());
SdkHttpClient.Builder capturedHttpClientBuilder = httpClientBuilderCaptor.getValue();

Assertions.assertThat(capturedHttpClientBuilder instanceof UrlConnectionHttpClient.Builder)
.withFailMessage("Should use url connection http client")
.isTrue();
Assertions.assertThat(capturedHttpClientBuilder)
.as("Should use url connection http client")
.isInstanceOf(UrlConnectionHttpClient.Builder.class);
}

@Test
Expand All @@ -62,9 +62,9 @@ public void testApacheHttpClientConfiguration() {
httpClientProperties.applyHttpClientConfigurations(mockS3ClientBuilder);
Mockito.verify(mockS3ClientBuilder).httpClientBuilder(httpClientBuilderCaptor.capture());
SdkHttpClient.Builder capturedHttpClientBuilder = httpClientBuilderCaptor.getValue();
Assertions.assertThat(capturedHttpClientBuilder instanceof ApacheHttpClient.Builder)
.withFailMessage("Should use apache http client")
.isTrue();
Assertions.assertThat(capturedHttpClientBuilder)
.as("Should use apache http client")
.isInstanceOf(ApacheHttpClient.Builder.class);
}

@Test
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ public void testS3FileIOImplCatalogPropertyDefined() {
"org.apache.iceberg.aws.s3.DefaultS3FileIOAwsClientFactory");
Object factoryImpl = S3FileIOAwsClientFactories.initialize(properties);
Assertions.assertThat(factoryImpl)
.withFailMessage(
.as(
"should instantiate an object of type S3FileIOAwsClientFactory when s3.client-factory-impl is set")
.isInstanceOf(S3FileIOAwsClientFactory.class);
}
Expand All @@ -46,7 +46,7 @@ public void testS3FileIOImplCatalogPropertyNotDefined() {
Map<String, String> properties = Maps.newHashMap();
Object factoryImpl = S3FileIOAwsClientFactories.initialize(properties);
Assertions.assertThat(factoryImpl)
.withFailMessage(
.as(
"should instantiate an object of type AwsClientFactory when s3.client-factory-impl is not set")
.isInstanceOf(AwsClientFactory.class);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -447,13 +447,13 @@ public void testApplyS3ServiceConfigurations() {

S3Configuration s3Configuration = s3ConfigurationCaptor.getValue();
Assertions.assertThat(s3Configuration.pathStyleAccessEnabled())
.withFailMessage("s3 path style access enabled parameter should be set to true")
.as("s3 path style access enabled parameter should be set to true")
.isTrue();
Assertions.assertThat(s3Configuration.useArnRegionEnabled())
.withFailMessage("s3 use arn region enabled parameter should be set to true")
.as("s3 use arn region enabled parameter should be set to true")
.isTrue();
Assertions.assertThat(s3Configuration.accelerateModeEnabled())
.withFailMessage("s3 acceleration mode enabled parameter should be set to true")
.as("s3 acceleration mode enabled parameter should be set to true")
.isFalse();
}

Expand Down
10 changes: 5 additions & 5 deletions core/src/test/java/org/apache/iceberg/TableTestBase.java
Original file line number Diff line number Diff line change
Expand Up @@ -375,24 +375,24 @@ void validateSnapshot(Snapshot old, Snapshot snap, long sequenceNumber, DataFile
}

@SuppressWarnings("checkstyle:HiddenField")
Snapshot commit(Table table, SnapshotUpdate snapshotUpdate, String branch) {
Snapshot commit(Table table, SnapshotUpdate<?> snapshotUpdate, String branch) {
Snapshot snapshot;
if (branch.equals(SnapshotRef.MAIN_BRANCH)) {
snapshotUpdate.commit();
snapshot = table.currentSnapshot();
} else {
((SnapshotProducer) snapshotUpdate.toBranch(branch)).commit();
((SnapshotProducer<?>) snapshotUpdate.toBranch(branch)).commit();
snapshot = table.snapshot(branch);
}

return snapshot;
}

Snapshot apply(SnapshotUpdate snapshotUpdate, String branch) {
Snapshot apply(SnapshotUpdate<?> snapshotUpdate, String branch) {
if (branch.equals(SnapshotRef.MAIN_BRANCH)) {
return ((SnapshotProducer) snapshotUpdate).apply();
return ((SnapshotProducer<?>) snapshotUpdate).apply();
} else {
return ((SnapshotProducer) snapshotUpdate.toBranch(branch)).apply();
return ((SnapshotProducer<?>) snapshotUpdate.toBranch(branch)).apply();
}
}

Expand Down
10 changes: 5 additions & 5 deletions core/src/test/java/org/apache/iceberg/TestBase.java
Original file line number Diff line number Diff line change
Expand Up @@ -366,24 +366,24 @@ void validateSnapshot(Snapshot old, Snapshot snap, long sequenceNumber, DataFile
}

@SuppressWarnings("checkstyle:HiddenField")
Snapshot commit(Table table, SnapshotUpdate snapshotUpdate, String branch) {
Snapshot commit(Table table, SnapshotUpdate<?> snapshotUpdate, String branch) {
Snapshot snapshot;
if (branch.equals(SnapshotRef.MAIN_BRANCH)) {
snapshotUpdate.commit();
snapshot = table.currentSnapshot();
} else {
((SnapshotProducer) snapshotUpdate.toBranch(branch)).commit();
((SnapshotProducer<?>) snapshotUpdate.toBranch(branch)).commit();
snapshot = table.snapshot(branch);
}

return snapshot;
}

Snapshot apply(SnapshotUpdate snapshotUpdate, String branch) {
Snapshot apply(SnapshotUpdate<?> snapshotUpdate, String branch) {
if (branch.equals(SnapshotRef.MAIN_BRANCH)) {
return ((SnapshotProducer) snapshotUpdate).apply();
return ((SnapshotProducer<?>) snapshotUpdate).apply();
} else {
return ((SnapshotProducer) snapshotUpdate.toBranch(branch)).apply();
return ((SnapshotProducer<?>) snapshotUpdate.toBranch(branch)).apply();
}
}

Expand Down
19 changes: 12 additions & 7 deletions core/src/test/java/org/apache/iceberg/TestCommitReporting.java
Original file line number Diff line number Diff line change
Expand Up @@ -21,21 +21,26 @@
import static org.assertj.core.api.Assertions.assertThat;

import java.io.IOException;
import java.util.Arrays;
import java.util.List;
import org.apache.iceberg.ScanPlanningAndReportingTestBase.TestMetricsReporter;
import org.apache.iceberg.metrics.CommitMetricsResult;
import org.apache.iceberg.metrics.CommitReport;
import org.apache.iceberg.relocated.com.google.common.collect.ImmutableSet;
import org.junit.Test;
import org.junit.jupiter.api.TestTemplate;
import org.junit.jupiter.api.extension.ExtendWith;

public class TestCommitReporting extends TableTestBase {
@ExtendWith(ParameterizedTestExtension.class)
public class TestCommitReporting extends TestBase {

private final TestMetricsReporter reporter = new TestMetricsReporter();

public TestCommitReporting() {
super(2);
@Parameters(name = "formatVersion = {0}")
protected static List<Object> parameters() {
return Arrays.asList(2);
}

@Test
@TestTemplate
public void addAndDeleteDataFiles() {
String tableName = "add-and-delete-data-files";
Table table =
Expand Down Expand Up @@ -80,7 +85,7 @@ public void addAndDeleteDataFiles() {
assertThat(metrics.totalFilesSizeInBytes().value()).isEqualTo(0L);
}

@Test
@TestTemplate
public void addAndDeleteDeleteFiles() {
String tableName = "add-and-delete-delete-files";
Table table =
Expand Down Expand Up @@ -150,7 +155,7 @@ public void addAndDeleteDeleteFiles() {
assertThat(metrics.totalFilesSizeInBytes().value()).isEqualTo(0L);
}

@Test
@TestTemplate
public void addAndDeleteManifests() throws IOException {
String tableName = "add-and-delete-manifests";
Table table =
Expand Down
Loading