Skip to content

Commit 9f1200e

Browse files
authored
Merge branch 'dremio_27.0_23_19' into prashanthbdremio/dx-122953
2 parents 9d50ee1 + 2334954 commit 9f1200e

357 files changed

Lines changed: 26579 additions & 2544 deletions

File tree

Some content is hidden

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

‎.asf.yaml‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,14 +29,14 @@ github:
2929
rebase: false
3030
squash: true
3131
features:
32+
discussions: true
3233
issues: true
3334
protected_branches:
3435
main:
3536
required_linear_history: true
36-
collaborators: # Note: the number of collaborators is limited to 10
37-
- jbonofre
3837
notifications:
3938
commits: commits@arrow.apache.org
39+
discussions: user@arrow.apache.org
4040
issues_status: issues@arrow.apache.org
4141
issues_comment: github@arrow.apache.org
4242
pullrequests: github@arrow.apache.org

‎.env‎

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ ARCH_SHORT=amd64
4040

4141
# Default repository to pull and push images from
4242
REPO=ghcr.io/apache/arrow-java-dev
43-
ARROW_REPO=apache/arrow-dev
43+
ARROW_REPO=ghcr.io/apache/arrow-dev
4444

4545
# The setup attempts to generate coredumps by default, in order to disable the
4646
# coredump generation set it to 0
@@ -53,5 +53,4 @@ MAVEN=3.9.9
5353
# Versions for various dependencies used to build artifacts
5454
# Keep in sync with apache/arrow
5555
ARROW_REPO_ROOT=./arrow
56-
PYTHON=3.9
57-
VCPKG="f7423ee180c4b7f40d43402c2feb3859161ef625" # 2024.06.15 Release
56+
VCPKG="4334d8b4c8916018600212ab4dd4bbdc343065d1" # 2025.09.17 Release

‎.github/CODEOWNERS‎

Lines changed: 25 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -23,34 +23,34 @@
2323
# documentation about the syntax: https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners
2424

2525
# modules
26-
/adapter/ @lidavidm @laurentgo @wgtmac
27-
/algorithm/ @lidavidm @laurentgo @wgtmac
28-
/arrow-format/ @lidavidm @laurentgo @wgtmac
29-
/c/ @lidavidm @laurentgo @wgtmac
30-
/compression/ @lidavidm @laurentgo @wgtmac
31-
/dataset/ @lidavidm @laurentgo @wgtmac
32-
/flight/ @lidavidm @laurentgo @wgtmac
33-
/format/ @lidavidm @laurentgo @wgtmac
34-
/gandiva/ @lidavidm @laurentgo @wgtmac
35-
/memory/ @lidavidm @laurentgo @wgtmac
36-
/performance/ @lidavidm @laurentgo @wgtmac
37-
/tools/ @lidavidm @laurentgo @wgtmac
38-
/vector/ @lidavidm @laurentgo @wgtmac
39-
CMakeLists.txt @lidavidm @laurentgo @wgtmac
26+
/adapter/ @lidavidm @laurentgo @wgtmac @jbonofre
27+
/algorithm/ @lidavidm @laurentgo @wgtmac @jbonofre
28+
/arrow-format/ @lidavidm @laurentgo @wgtmac @jbonofre
29+
/c/ @lidavidm @laurentgo @wgtmac @jbonofre
30+
/compression/ @lidavidm @laurentgo @wgtmac @jbonofre
31+
/dataset/ @lidavidm @laurentgo @wgtmac @jbonofre
32+
/flight/ @lidavidm @laurentgo @wgtmac @jbonofre
33+
/format/ @lidavidm @laurentgo @wgtmac @jbonofre
34+
/gandiva/ @lidavidm @laurentgo @wgtmac @jbonofre
35+
/memory/ @lidavidm @laurentgo @wgtmac @jbonofre
36+
/performance/ @lidavidm @laurentgo @wgtmac @jbonofre
37+
/tools/ @lidavidm @laurentgo @wgtmac @jbonofre
38+
/vector/ @lidavidm @laurentgo @wgtmac @jbonofre
39+
CMakeLists.txt @lidavidm @laurentgo @wgtmac @jbonofre
4040

4141
# release scripts
42-
/ci/ @lidavidm @laurentgo @wgtmac @kou
43-
/dev/ @lidavidm @laurentgo @wgtmac @kou
42+
/ci/ @lidavidm @laurentgo @wgtmac @kou @jbonofre
43+
/dev/ @lidavidm @laurentgo @wgtmac @kou @jbonofre
4444

4545
# PR CI and repository files
46-
/.github/ @lidavidm @laurentgo @wgtmac @kou
47-
/.asf.yaml @lidavidm @laurentgo @wgtmac @kou
48-
/.env @lidavidm @laurentgo @wgtmac
49-
/.pre-commit-config.yaml @lidavidm @laurentgo @wgtmac
50-
/Brewfile @lidavidm @laurentgo @wgtmac
51-
/docker-compose.yaml @lidavidm @laurentgo @wgtmac
46+
/.github/ @lidavidm @laurentgo @wgtmac @kou @jbonofre
47+
/.asf.yaml @lidavidm @laurentgo @wgtmac @kou @jbonofre
48+
/.env @lidavidm @laurentgo @wgtmac @jbonofre
49+
/.pre-commit-config.yaml @lidavidm @laurentgo @wgtmac @jbonofre
50+
/Brewfile @lidavidm @laurentgo @wgtmac @jbonofre
51+
/docker-compose.yaml @lidavidm @laurentgo @wgtmac @jbonofre
5252

5353
# Java specific
54-
/.mvn/ @lidavidm @laurentgo @wgtmac
55-
/bom/ @lidavidm @laurentgo @wgtmac
56-
pom.xml @lidavidm @laurentgo @wgtmac
54+
/.mvn/ @lidavidm @laurentgo @wgtmac @jbonofre
55+
/bom/ @lidavidm @laurentgo @wgtmac @jbonofre
56+
pom.xml @lidavidm @laurentgo @wgtmac @jbonofre

‎.github/workflows/comment_bot.yml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ jobs:
3030
if: github.event.comment.body == 'take'
3131
runs-on: ubuntu-latest
3232
steps:
33-
- uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
33+
- uses: actions/github-script@v8
3434
with:
3535
github-token: ${{ secrets.GITHUB_TOKEN }}
3636
script: |-

‎.github/workflows/dev.yml‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,16 +33,16 @@ jobs:
3333
name: "pre-commit"
3434
runs-on: ubuntu-latest
3535
steps:
36-
- uses: actions/checkout@v4
36+
- uses: actions/checkout@v6
3737
with:
3838
fetch-depth: 0
3939
persist-credentials: false
4040

41-
- uses: actions/setup-python@v5
41+
- uses: actions/setup-python@v6
4242
with:
4343
python-version: '3.x'
4444
- name: pre-commit (cache)
45-
uses: actions/cache@d4323d4df104b026a6aa633fdb11d772146be0bf # v4.2.2
45+
uses: actions/cache@9255dc7a253b0ccc959486e2bca901246202afeb # v5.0.1
4646
with:
4747
path: ~/.cache/pre-commit
4848
key: pre-commit-${{ hashFiles('.pre-commit-config.yaml') }}

‎.github/workflows/dev_pr.js‎

Lines changed: 47 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -122,15 +122,20 @@ module.exports = {
122122
const title = context.payload.pull_request.title;
123123
if (title.startsWith("MINOR: ")) {
124124
console.log("PR is a minor PR");
125-
return {"issue": null};
125+
return {"issue": null, "type": "minor"};
126126
}
127127

128-
const match = title.match(/^GH-([0-9]+): .*$/);
128+
const match = title.match(/^(GH|DX)-([0-9]+): .*$/);
129129
if (match === null) {
130-
core.setFailed("Invalid PR title format. Must either be MINOR: or GH-NNN:");
131-
return {"issue": null};
130+
core.setFailed("Invalid PR title format. Must either be MINOR:, GH-NNN:, or DX-NNN:");
131+
return {"issue": null, "type": null};
132132
}
133-
return {"issue": parseInt(match[1], 10)};
133+
134+
const issueType = match[1]; // "GH" or "DX"
135+
const issueNumber = parseInt(match[2], 10);
136+
137+
console.log(`PR references ${issueType}-${issueNumber}`);
138+
return {"issue": issueNumber, "type": issueType};
134139
},
135140

136141
apply_labels: async function({core, github, context}) {
@@ -203,9 +208,28 @@ See [CONTRIBUTING.md](https://github.com/apache/arrow-java/blob/main/CONTRIBUTIN
203208
console.log("This is a MINOR PR");
204209
return;
205210
}
206-
const expected = `https://github.com/apache/arrow-java/issues/${issue.issue}`;
207211

208-
const query = `
212+
// Handle Jira tickets (DX-NNN)
213+
if (issue.type === "DX") {
214+
const jiraUrl = `https://dremio.atlassian.net/browse/DX-${issue.issue}`;
215+
console.log(`This PR references Jira ticket: ${jiraUrl}`);
216+
217+
// Add a comment with the Jira link
218+
const comment_tag = "jira_link_comment";
219+
const maybe_comment_id = await have_comment(github, context, context.payload.pull_request.number, comment_tag);
220+
const body_text = `<!-- ${comment_tag} -->
221+
**Related Jira Ticket:** [DX-${issue.issue}](${jiraUrl})`;
222+
223+
await upsert_comment(github, maybe_comment_id, body_text, true);
224+
console.log("Added/updated Jira link comment");
225+
return;
226+
}
227+
228+
// Handle GitHub issues (GH-NNN)
229+
if (issue.type === "GH") {
230+
const expected = `https://github.com/apache/arrow-java/issues/${issue.issue}`;
231+
232+
const query = `
209233
query($owner: String!, $name: String!, $number: Int!) {
210234
repository(owner: $owner, name: $name) {
211235
pullRequest(number: $number) {
@@ -220,22 +244,23 @@ query($owner: String!, $name: String!, $number: Int!) {
220244
}
221245
}`;
222246

223-
const result = await github.graphql(query, {
224-
owner: context.repo.owner,
225-
name: context.repo.repo,
226-
number: context.payload.pull_request.number,
227-
});
228-
const issues = result.repository.pullRequest.closingIssuesReferences.edges;
229-
console.log(issues);
230-
231-
for (const link of issues) {
232-
console.log(`PR is linked to ${link.node.number}`);
233-
if (link.node.number === issue.issue) {
234-
console.log(`Found link to ${expected}`);
235-
return;
247+
const result = await github.graphql(query, {
248+
owner: context.repo.owner,
249+
name: context.repo.repo,
250+
number: context.payload.pull_request.number,
251+
});
252+
const issues = result.repository.pullRequest.closingIssuesReferences.edges;
253+
console.log(issues);
254+
255+
for (const link of issues) {
256+
console.log(`PR is linked to ${link.node.number}`);
257+
if (link.node.number === issue.issue) {
258+
console.log(`Found link to ${expected}`);
259+
return;
260+
}
236261
}
262+
console.log(`Did not find link to ${expected}`);
263+
core.setFailed("Missing link to issue in title");
237264
}
238-
console.log(`Did not find link to ${expected}`);
239-
core.setFailed("Missing link to issue in title");
240265
},
241266
};

‎.github/workflows/dev_pr.yml‎

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -35,43 +35,51 @@ concurrency:
3535

3636
permissions:
3737
contents: read
38+
issues: write
3839
pull-requests: write
3940

4041
jobs:
4142
pr-label:
4243
name: "Ensure PR format"
4344
runs-on: ubuntu-latest
4445
steps:
45-
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
46+
- uses: actions/checkout@v6
4647
with:
4748
fetch-depth: 0
4849
persist-credentials: false
4950

5051
- name: Ensure PR title format
5152
id: title-format
52-
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
53+
uses: actions/github-script@v8
5354
with:
5455
script: |
5556
const scripts = require(`${process.env.GITHUB_WORKSPACE}/.github/workflows/dev_pr.js`);
5657
return scripts.check_title_format({core, github, context});
5758
5859
- name: Label PR
59-
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
60+
uses: actions/github-script@v8
6061
with:
6162
script: |
6263
const scripts = require(`${process.env.GITHUB_WORKSPACE}/.github/workflows/dev_pr.js`);
6364
await scripts.apply_labels({core, github, context});
6465
6566
- name: Ensure PR is labeled
66-
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
67+
uses: actions/github-script@v8
6768
with:
6869
script: |
6970
const scripts = require(`${process.env.GITHUB_WORKSPACE}/.github/workflows/dev_pr.js`);
7071
await scripts.check_labels({core, github, context});
7172
7273
- name: Ensure PR is linked to an issue
73-
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
74+
uses: actions/github-script@v8
7475
with:
7576
script: |
7677
const scripts = require(`${process.env.GITHUB_WORKSPACE}/.github/workflows/dev_pr.js`);
7778
await scripts.check_linked_issue({core, github, context, issue: ${{ steps.title-format.outputs.result }}});
79+
80+
- name: Assign milestone
81+
if: '! github.event.pull_request.draft'
82+
env:
83+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
84+
run: |
85+
./.github/workflows/dev_pr_milestone.sh "${GITHUB_REPOSITORY}" ${{ github.event.number }}
Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
#!/usr/bin/env bash
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+
# Assign a milestone to the given PR based on the open milestones and known
20+
# releases.
21+
22+
set -euo pipefail
23+
24+
main() {
25+
local -r repo="${1}"
26+
local -r pr_number="${2}"
27+
echo "On ${repo} pull ${pr_number}"
28+
29+
local -r existing_milestone=$(gh pr view "${pr_number}" \
30+
--json milestone \
31+
-t '{{if .milestone}}{{.milestone.title}}{{end}}')
32+
33+
if [[ -n "${existing_milestone}" ]]; then
34+
echo "PR has milestone: ${existing_milestone}"
35+
local -r milestone="${existing_milestone}"
36+
else
37+
local -r milestone=$(
38+
gh api "/repos/${repo}/milestones" |
39+
jq --raw-output '.[] | .title' |
40+
grep -E '^[0-9]+\.[0-9]+\.[0-9]+$' |
41+
head -n1
42+
)
43+
44+
echo "Assigning milestone: ${milestone}"
45+
gh pr edit "${pr_number}" -m "${milestone}"
46+
fi
47+
48+
local -r repo_owner=$(echo "${repo}" | cut -d'/' -f1)
49+
local -r repo_name=$(echo "${repo}" | cut -d'/' -f2)
50+
local -r graphql_query="{
51+
repository(owner: \"${repo_owner}\", name: \"${repo_name}\") {
52+
pullRequest(number: ${pr_number}) {
53+
closingIssuesReferences(first: 5) {
54+
edges {
55+
node {
56+
number
57+
}
58+
}
59+
}
60+
}
61+
}
62+
}"
63+
local -r linked_issues=$(gh api graphql -f query="${graphql_query}" | jq -r '.data.repository.pullRequest.closingIssuesReferences.edges | .[].node.number')
64+
for issue in ${linked_issues}; do
65+
echo "Linked issue: ${issue}"
66+
gh issue edit "${issue}" --milestone "${milestone}"
67+
done
68+
}
69+
70+
main "$@"

0 commit comments

Comments
 (0)