Skip to content

Commit 8d17d53

Browse files
Shanthoosh Pazhanjur VenkataramanShanthoosh Pazhanjur Venkataraman
authored andcommitted
Rebase changes.
1 parent f07da8d commit 8d17d53

File tree

8 files changed

+118
-139
lines changed

8 files changed

+118
-139
lines changed

.github/workflows/java-ci.yml

Lines changed: 26 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
#
21
# Licensed to the Apache Software Foundation (ASF) under one
32
# or more contributor license agreements. See the NOTICE file
43
# distributed with this work for additional information
@@ -21,19 +20,18 @@ name: "Java CI"
2120
on:
2221
push:
2322
branches: ['openhouse-1.2.0']
24-
tags-ignore: [v*] # release tags are autogenerated after a successful CI, no need to run CI against them
23+
tags-ignore: [v*]
2524
pull_request:
2625
branches: ['**']
2726
paths-ignore:
28-
- '.github/ISSUE_TEMPLATE/iceberg_bug_report.yml'
2927
- '.github/workflows/python-ci.yml'
3028
- '.github/workflows/spark-ci.yml'
3129
- '.github/workflows/flink-ci.yml'
3230
- '.github/workflows/hive-ci.yml'
3331
- '.gitignore'
34-
- '.asf.yml'
3532
- 'dev/**'
3633
- 'python/**'
34+
- 'python_legacy/**'
3735
- 'docs/**'
3836
- 'open-api/**'
3937
- 'format/**'
@@ -48,36 +46,38 @@ concurrency:
4846
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
4947

5048
jobs:
51-
build:
49+
build-checks:
5250
runs-on: ubuntu-latest
53-
if: "! contains(toJSON(github.event.commits.*.message), '[skip ci]')"
54-
5551
steps:
52+
- uses: actions/checkout@v4
53+
- uses: actions/setup-java@v4
54+
with:
55+
distribution: zulu
56+
java-version: 8
57+
- run: ./gradlew -DsparkVersions=3.1 build -x test -x javadoc -x integrationTest
5658

57-
- name: 1. Check out code
58-
uses: actions/checkout@v2 # https://github.com/actions/checkout
59+
release:
60+
if: ${{ github.event_name == 'push' }}
61+
runs-on: ubuntu-latest
62+
steps:
63+
- uses: actions/checkout@v4
5964
with:
60-
fetch-depth: '0' # https://github.com/shipkit/shipkit-changelog#fetch-depth-on-ci
61-
62-
- name: 2. Set up Java
63-
uses: actions/setup-java@v1
65+
fetch-depth: '0'
66+
- uses: actions/setup-java@v4
6467
with:
65-
java-version: 1.8
66-
67-
- name: 3. Perform build
68-
run: ./gradlew build
68+
distribution: zulu
69+
java-version: 8
70+
- run: echo -e "$(ip addr show eth0 | grep "inet\b" | awk '{print $2}' | cut -d/ -f1)\t$(hostname -f) $(hostname -s)" | sudo tee -a /etc/hosts
6971

70-
- name: 4. Perform release
71-
# Release job, only for pushes to the main development branch
72-
if: github.event_name == 'push'
72+
- name: Perform release
73+
if: ${{ github.event_name == 'push'
7374
&& github.ref == 'refs/heads/openhouse-1.2.0'
7475
&& github.repository == 'linkedin/iceberg'
75-
&& !contains(toJSON(github.event.commits.*.message), '[skip release]')
76-
77-
run: ./gradlew githubRelease publishToSonatype closeAndReleaseStagingRepository
76+
&& !contains(toJSON(github.event.commits.*.message), '[skip release]') }}
77+
run: ./gradlew -DsparkVersions=3.1 githubRelease publishToSonatype closeAndReleaseStagingRepository -x test -x integrationTest
7878
env:
7979
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
80-
SONATYPE_USER: ${{secrets.SONATYPE_USER}}
81-
SONATYPE_PWD: ${{secrets.SONATYPE_PWD}}
80+
SONATYPE_USER: ${{secrets.SONATYPE_USERNAME}}
81+
SONATYPE_PWD: ${{secrets.SONATYPE_PASSWORD}}
8282
PGP_KEY: ${{secrets.PGP_KEY}}
83-
PGP_PWD: ${{secrets.PGP_PWD}}
83+
PGP_PWD: ${{secrets.PGP_PWD}}

.github/workflows/spark-ci.yml

Lines changed: 9 additions & 77 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
#
21
# Licensed to the Apache Software Foundation (ASF) under one
32
# or more contributor license agreements. See the NOTICE file
43
# distributed with this work for additional information
@@ -21,18 +20,13 @@ name: "Spark CI"
2120
on:
2221
push:
2322
branches:
24-
- 'master'
25-
- '0.**'
26-
tags:
27-
- 'apache-iceberg-**'
23+
- 'openhouse-1.2.0'
2824
pull_request:
2925
paths-ignore:
30-
- '.github/ISSUE_TEMPLATE/iceberg_bug_report.yml'
3126
- '.github/workflows/python-ci.yml'
3227
- '.github/workflows/flink-ci.yml'
3328
- '.github/workflows/hive-ci.yml'
3429
- '.gitignore'
35-
- '.asf.yml'
3630
- 'dev/**'
3731
- 'mr/**'
3832
- 'hive3/**'
@@ -41,6 +35,7 @@ on:
4135
- 'flink/**'
4236
- 'pig/**'
4337
- 'python/**'
38+
- 'python_legacy/**'
4439
- 'docs/**'
4540
- 'open-api/**'
4641
- 'format/**'
@@ -55,88 +50,25 @@ concurrency:
5550
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
5651

5752
jobs:
58-
spark2-tests:
59-
runs-on: ubuntu-22.04
60-
env:
61-
SPARK_LOCAL_IP: localhost
62-
steps:
63-
- uses: actions/checkout@v4
64-
- uses: actions/setup-java@v4
65-
with:
66-
distribution: zulu
67-
java-version: 8
68-
- uses: actions/cache@v4
69-
with:
70-
path: |
71-
~/.gradle/caches
72-
~/.gradle/wrapper
73-
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
74-
restore-keys: ${{ runner.os }}-gradle-
75-
- run: echo -e "$(ip addr show eth0 | grep "inet\b" | awk '{print $2}' | cut -d/ -f1)\t$(hostname -f) $(hostname -s)" | sudo tee -a /etc/hosts
76-
- run: ./gradlew -DsparkVersions=2.4 -DhiveVersions= -DflinkVersions= :iceberg-spark:check :iceberg-spark:iceberg-spark-2.4:check :iceberg-spark:iceberg-spark-runtime-2.4:check -Pquick=true -x javadoc
77-
- uses: actions/upload-artifact@v4
78-
if: failure()
79-
with:
80-
name: test logs
81-
path: |
82-
**/build/testlogs
83-
8453
spark-3x-scala-2-12-tests:
8554
runs-on: ubuntu-22.04
55+
if: "github.repository == 'linkedin/iceberg'"
8656
strategy:
8757
matrix:
88-
jvm: [8, 11]
89-
spark: ['3.1', '3.2', '3.3']
58+
spark: ['3.1']
9059
env:
9160
SPARK_LOCAL_IP: localhost
9261
steps:
9362
- uses: actions/checkout@v4
9463
- uses: actions/setup-java@v4
9564
with:
9665
distribution: zulu
97-
java-version: ${{ matrix.jvm }}
66+
java-version: 8
9867
- uses: actions/cache@v4
9968
with:
100-
path: |
101-
~/.gradle/caches
102-
~/.gradle/wrapper
103-
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
104-
restore-keys: ${{ runner.os }}-gradle-
69+
path: ~/.gradle/caches
70+
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle') }}
71+
restore-keys: ${{ runner.os }}-gradle
10572
- run: echo -e "$(ip addr show eth0 | grep "inet\b" | awk '{print $2}' | cut -d/ -f1)\t$(hostname -f) $(hostname -s)" | sudo tee -a /etc/hosts
106-
- run: ./gradlew -DsparkVersions=${{ matrix.spark }} -DscalaVersion=2.12 -DhiveVersions= -DflinkVersions= :iceberg-spark:iceberg-spark-${{ matrix.spark }}_2.12:check :iceberg-spark:iceberg-spark-extensions-${{ matrix.spark }}_2.12:check :iceberg-spark:iceberg-spark-runtime-${{ matrix.spark }}_2.12:check -Pquick=true -x javadoc
107-
- uses: actions/upload-artifact@v4
108-
if: failure()
109-
with:
110-
name: test logs
111-
path: |
112-
**/build/testlogs
11373

114-
spark-3x-scala-2-13-tests:
115-
runs-on: ubuntu-22.04
116-
strategy:
117-
matrix:
118-
jvm: [8, 11]
119-
spark: ['3.2','3.3']
120-
env:
121-
SPARK_LOCAL_IP: localhost
122-
steps:
123-
- uses: actions/checkout@v4
124-
- uses: actions/setup-java@v4
125-
with:
126-
distribution: zulu
127-
java-version: ${{ matrix.jvm }}
128-
- uses: actions/cache@v4
129-
with:
130-
path: |
131-
~/.gradle/caches
132-
~/.gradle/wrapper
133-
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
134-
restore-keys: ${{ runner.os }}-gradle-
135-
- run: echo -e "$(ip addr show eth0 | grep "inet\b" | awk '{print $2}' | cut -d/ -f1)\t$(hostname -f) $(hostname -s)" | sudo tee -a /etc/hosts
136-
- run: ./gradlew -DsparkVersions=${{ matrix.spark }} -DscalaVersion=2.13 -DhiveVersions= -DflinkVersions= :iceberg-spark:iceberg-spark-${{ matrix.spark }}_2.13:check :iceberg-spark:iceberg-spark-extensions-${{ matrix.spark }}_2.13:check :iceberg-spark:iceberg-spark-runtime-${{ matrix.spark }}_2.13:check -Pquick=true -x javadoc
137-
- uses: actions/upload-artifact@v4
138-
if: failure()
139-
with:
140-
name: test logs
141-
path: |
142-
**/build/testlogs
74+
- run: ./gradlew -DsparkVersions=${{ matrix.spark }} -DscalaVersion=2.12 -DhiveVersions= -DflinkVersions= :iceberg-spark:iceberg-spark-${{ matrix.spark }}_2.12:check :iceberg-spark:iceberg-spark-extensions-${{ matrix.spark }}_2.12:check :iceberg-spark:iceberg-spark-runtime-${{ matrix.spark }}_2.12:check -Pquick=true -x test -x integrationTest -x javadoc

build.gradle

Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,9 @@ buildscript {
2828
}
2929
dependencies {
3030
classpath 'gradle.plugin.com.github.jengelman.gradle.plugins:shadow:7.0.0'
31-
classpath 'com.palantir.baseline:gradle-baseline-java:4.42.0'
31+
classpath('com.palantir.baseline:gradle-baseline-java:4.42.0') {
32+
exclude group: 'com.palantir.tritium'
33+
}
3234
// com.palantir.baseline:gradle-baseline-java:4.42.0 (the last version supporting Java 8) pulls
3335
// in an old version of the errorprone, which doesn't work w/ Gradle 8, so bump errorpone as
3436
// well.
@@ -131,6 +133,15 @@ subprojects {
131133
apply plugin: 'nebula.dependency-recommender'
132134
apply plugin: 'java-library'
133135

136+
configurations.all {
137+
resolutionStrategy {
138+
// Force specific versions of tritium to resolve version conflicts
139+
force 'com.palantir.tritium:tritium-registry:0.17.0'
140+
force 'com.palantir.tritium:tritium-core:0.17.0'
141+
force 'com.palantir.tritium:tritium-metrics:0.17.0'
142+
}
143+
}
144+
134145
if (project.name in REVAPI_PROJECTS) {
135146
apply plugin: 'com.palantir.revapi'
136147
revapi {
@@ -867,19 +878,7 @@ String getVersionFromFile() {
867878

868879
String getProjectVersion() {
869880
if (versionFileExists()) {
870-
String version = getVersionFromFile()
871-
// If version is in 900+ series, treat it as a pre-release
872-
Pattern pattern = Pattern.compile("^([0-9]+)\\.([0-9]+)\\.([0-9]+)\\.([0-9]+)(.*)?\$")
873-
Matcher matcher = pattern.matcher(version)
874-
if (matcher.matches()) {
875-
int lastNum = Integer.valueOf(matcher.group(4))
876-
if (lastNum >= 900) {
877-
// Convert 1.2.0.900+ to 1.2.0.0-rcX format
878-
int rcNum = lastNum - 899
879-
return matcher.group(1) + "." + matcher.group(2) + "." + matcher.group(3) + "." + rcNum
880-
}
881-
}
882-
return version
881+
return getVersionFromFile()
883882
}
884883

885884
try {

deploy.gradle

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,30 @@ subprojects {
9595
}
9696
issueManagement {
9797
system = 'GitHub'
98-
url = 'https://github.com/apache/iceberg/issues'
98+
url = 'https://github.com/linkedin/iceberg/issues'
99+
}
100+
developers {
101+
[
102+
'wmoustafa:Walaa Eldin Moustafa',
103+
'sumedhsakdeo:Sumedh Sakdeo',
104+
'maluchari:Malini Mahalakshmi Venkatachari',
105+
'rdsr:Ratandeep Ratti'
106+
].each { devData ->
107+
developer {
108+
def devInfo = devData.split(':')
109+
id = devInfo[0]
110+
name = devInfo[1]
111+
url = 'https://github.com/' + devInfo[0]
112+
roles = ["Core developer"]
113+
}
114+
}
115+
}
116+
scm {
117+
url = 'https://github.com/linkedin/iceberg.git'
118+
}
119+
ciManagement {
120+
url = 'https://github.com/linkedin/iceberg/actions'
121+
system = 'GitHub Actions'
99122
}
100123
}
101124
}

shipkit.gradle

Lines changed: 43 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -25,23 +25,48 @@ tasks.named("generateChangelog") {
2525
previousRevision = project.ext.'shipkit-auto-version.previous-tag'
2626
githubToken = System.getenv("GITHUB_TOKEN")
2727
repository = "linkedin/iceberg"
28-
29-
// Make generateChangelog depend on all necessary subproject tasks
30-
subprojects.each { subproject ->
31-
// Compilation tasks
32-
dependsOn subproject.tasks.withType(JavaCompile)
33-
34-
// Documentation tasks
35-
dependsOn subproject.tasks.withType(Javadoc)
36-
37-
// Publication tasks
38-
dependsOn subproject.tasks.matching { it.name == 'generatePomFileForJavaLibraryPublication' }
39-
40-
// Resource processing tasks
41-
dependsOn subproject.tasks.withType(ProcessResources)
28+
// Write changelog into the root build directory to avoid broad root-dir overlaps
29+
outputFile = file("${buildDir}/CHANGELOG.md")
30+
}
31+
32+
// Ensure Gradle knows ordering relative to tasks that write inside the repository
33+
// to avoid implicit dependency validation errors in Gradle 8+
34+
gradle.projectsEvaluated {
35+
def genTaskProvider = tasks.named("generateChangelog")
36+
genTaskProvider.configure { t ->
37+
// Ensure we run after root task that writes to root build output
38+
t.mustRunAfter(rootProject.tasks.matching { it.name == 'generateGitProperties' })
39+
40+
rootProject.subprojects.each { prj ->
41+
// Run after resource processing tasks
42+
t.mustRunAfter(prj.tasks.matching { it.name == 'processResources' })
43+
t.mustRunAfter(prj.tasks.matching { it.name == 'processTestResources' })
44+
45+
// Run after Java compilation tasks
46+
t.mustRunAfter(prj.tasks.matching { it.name == 'compileJava' })
47+
t.mustRunAfter(prj.tasks.matching { it.name == 'compileTestJava' })
48+
49+
// Run after documentation and archive tasks that may touch repo files
50+
t.mustRunAfter(prj.tasks.withType(org.gradle.api.tasks.javadoc.Javadoc))
51+
t.mustRunAfter(prj.tasks.withType(org.gradle.api.tasks.bundling.Jar))
52+
53+
// Run after any POM generation tasks created by maven-publish
54+
t.mustRunAfter(prj.tasks.withType(org.gradle.api.publish.maven.tasks.GenerateMavenPom))
55+
56+
// Run after module metadata tasks, if present
57+
t.mustRunAfter(prj.tasks.matching { it.name.startsWith('generateMetadataFileFor') })
58+
59+
// Run after signing tasks (from 'signing' plugin)
60+
t.mustRunAfter(prj.tasks.matching { it.name.startsWith('sign') })
61+
62+
// Run after publish tasks to avoid implicit dependency warnings in release pipelines
63+
t.mustRunAfter(prj.tasks.matching { it.name.startsWith('publish') })
64+
}
4265
}
4366
}
4467

68+
69+
4570
apply plugin: "org.shipkit.shipkit-github-release" //https://github.com/shipkit/shipkit-changelog
4671
tasks.named("githubRelease") {
4772
def genTask = tasks.named("generateChangelog").get()
@@ -59,12 +84,11 @@ nexusPublishing {
5984
sonatype {
6085
username = System.getenv("SONATYPE_USER")
6186
password = System.getenv("SONATYPE_PWD")
62-
nexusUrl.set(uri("https://s01.oss.sonatype.org/service/local/"))
63-
snapshotRepositoryUrl.set(uri("https://s01.oss.sonatype.org/content/repositories/snapshots/"))
87+
nexusUrl.set(uri("https://ossrh-staging-api.central.sonatype.com/service/local/"))
88+
// nexusUrl.set(uri("https://s01.oss.sonatype.org/service/local/"))
89+
snapshotRepositoryUrl.set(uri("https://central.sonatype.com/repository/maven-snapshots/"))
90+
// snapshotRepositoryUrl.set(uri("https://s01.oss.sonatype.org/content/repositories/snapshots/"))
6491
}
6592
}
6693
}
67-
transitionCheckOptions {
68-
maxRetries.set(100)
69-
}
7094
}

version.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,4 +19,4 @@
1919
# Version of the produced binaries.
2020
# The version is inferred by shipkit-auto-version Gradle plugin (https://github.com/shipkit/shipkit-auto-version)
2121
# Using 900+ series to indicate pre-release versions
22-
version=1.2.0.900
22+
version=1.2.0.901

version.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
1.2.0.0-rc1
1+
1.2.0.*

versions.props

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
org.slf4j:* = 1.7.36
2+
com.palantir.tritium:* = 0.17.0
23
org.apache.avro:avro = 1.11.1
34
org.apache.calcite:* = 1.10.0
45
org.apache.hadoop:* = 2.7.3

0 commit comments

Comments
 (0)