From 4cfd338886002aa4b34f32827426759d235c5222 Mon Sep 17 00:00:00 2001 From: Fokko Driesprong Date: Tue, 1 Sep 2026 15:40:08 +0200 Subject: [PATCH 1/6] Produce nightly snapshot This adds a workflow to produce a nighthly snapshot --- .github/workflows/publish_snapshot.yml | 54 ++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 .github/workflows/publish_snapshot.yml diff --git a/.github/workflows/publish_snapshot.yml b/.github/workflows/publish_snapshot.yml new file mode 100644 index 000000000..1ddb1aa36 --- /dev/null +++ b/.github/workflows/publish_snapshot.yml @@ -0,0 +1,54 @@ +# 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: Publish Snapshot + +on: + push: + branches: + - master + +jobs: + publish-snapshot: + if: github.repository == 'apache/parquet-format' + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v5 + + - uses: actions/setup-java@v5 + with: + distribution: temurin + java-version: 17 + + - name: Install Thrift + run: | + sudo apt-get update -qq + sudo apt-get install -qq protobuf-compiler + sudo apt-get install -qq libboost-dev libboost-test-dev libboost-program-options-dev libevent-dev automake libtool flex bison pkg-config g++ libssl-dev + wget -qO- https://archive.apache.org/dist/thrift/0.23.0/thrift-0.23.0.tar.gz | tar zxf - + cd thrift-0.23.0/ + chmod +x ./configure + ./configure --disable-libs + sudo make install + + - name: Publish snapshot + env: + ASF_USERNAME: ${{ secrets.NEXUS_USER }} + ASF_PASSWORD: ${{ secrets.NEXUS_PW }} + run: | + echo "apache.snapshots.https$ASF_USERNAME$ASF_PASSWORD" > "$RUNNER_TEMP/settings.xml" + mvn --settings "$RUNNER_TEMP/settings.xml" --batch-mode -ntp -DskipTests deploy From 624c5268f6bee5dec181fdad556ce59a8e19cb96 Mon Sep 17 00:00:00 2001 From: Fokko Driesprong Date: Tue, 1 Sep 2026 16:18:15 +0200 Subject: [PATCH 2/6] Bump Thrift to 0.24.0 --- .github/workflows/publish_snapshot.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/publish_snapshot.yml b/.github/workflows/publish_snapshot.yml index 1ddb1aa36..fe08ea612 100644 --- a/.github/workflows/publish_snapshot.yml +++ b/.github/workflows/publish_snapshot.yml @@ -39,8 +39,8 @@ jobs: sudo apt-get update -qq sudo apt-get install -qq protobuf-compiler sudo apt-get install -qq libboost-dev libboost-test-dev libboost-program-options-dev libevent-dev automake libtool flex bison pkg-config g++ libssl-dev - wget -qO- https://archive.apache.org/dist/thrift/0.23.0/thrift-0.23.0.tar.gz | tar zxf - - cd thrift-0.23.0/ + wget -qO- https://archive.apache.org/dist/thrift/0.24.0/thrift-0.24.0.tar.gz | tar zxf - + cd thrift-0.24.0/ chmod +x ./configure ./configure --disable-libs sudo make install From 329336ed582bd785288d909174f786ec027a62e6 Mon Sep 17 00:00:00 2001 From: Fokko Driesprong Date: Tue, 1 Sep 2026 16:23:31 +0200 Subject: [PATCH 3/6] Move installing Thrift to a separate script --- .github/workflows/publish_snapshot.yml | 10 +------- .github/workflows/test.yml | 10 +------- dev/install-thrift.sh | 35 ++++++++++++++++++++++++++ 3 files changed, 37 insertions(+), 18 deletions(-) create mode 100755 dev/install-thrift.sh diff --git a/.github/workflows/publish_snapshot.yml b/.github/workflows/publish_snapshot.yml index 1ddb1aa36..12be625ad 100644 --- a/.github/workflows/publish_snapshot.yml +++ b/.github/workflows/publish_snapshot.yml @@ -35,15 +35,7 @@ jobs: java-version: 17 - name: Install Thrift - run: | - sudo apt-get update -qq - sudo apt-get install -qq protobuf-compiler - sudo apt-get install -qq libboost-dev libboost-test-dev libboost-program-options-dev libevent-dev automake libtool flex bison pkg-config g++ libssl-dev - wget -qO- https://archive.apache.org/dist/thrift/0.23.0/thrift-0.23.0.tar.gz | tar zxf - - cd thrift-0.23.0/ - chmod +x ./configure - ./configure --disable-libs - sudo make install + run: ./dev/install-thrift.sh - name: Publish snapshot env: diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index d0f3c2a51..3b07e8de5 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -49,15 +49,7 @@ jobs: java-version: ${{ matrix.java }} distribution: temurin - name: before_install - run: | - sudo apt-get update -qq - sudo apt-get install -qq protobuf-compiler - sudo apt-get install -qq libboost-dev libboost-test-dev libboost-program-options-dev libevent-dev automake libtool flex bison pkg-config g++ libssl-dev - wget -qO- https://archive.apache.org/dist/thrift/0.23.0/thrift-0.23.0.tar.gz | tar zxf - - cd thrift-0.23.0/ - chmod +x ./configure - ./configure --disable-libs - sudo make install + run: ./dev/install-thrift.sh - name: install run: | mvn install --batch-mode -DskipTests=true -Dmaven.javadoc.skip=true -Dsource.skip=true -Djava.version=${{ matrix.java }} diff --git a/dev/install-thrift.sh b/dev/install-thrift.sh new file mode 100755 index 000000000..d6be3bbd5 --- /dev/null +++ b/dev/install-thrift.sh @@ -0,0 +1,35 @@ +#!/bin/bash +# +# 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. +# +# Installs Apache Thrift (and its build dependencies) from source. +# Used by the GitHub Actions workflows to generate the Parquet thrift bindings. + +set -euo pipefail + +THRIFT_VERSION="${THRIFT_VERSION:-0.23.0}" + +sudo apt-get update -qq +sudo apt-get install -qq protobuf-compiler +sudo apt-get install -qq libboost-dev libboost-test-dev libboost-program-options-dev libevent-dev automake libtool flex bison pkg-config g++ libssl-dev + +wget -qO- "https://archive.apache.org/dist/thrift/${THRIFT_VERSION}/thrift-${THRIFT_VERSION}.tar.gz" | tar zxf - +cd "thrift-${THRIFT_VERSION}/" +chmod +x ./configure +./configure --disable-libs +sudo make install From f9c410cbf4cac621649dd6577d3a2332fe0b5a80 Mon Sep 17 00:00:00 2001 From: Fokko Driesprong Date: Tue, 1 Sep 2026 17:38:32 +0200 Subject: [PATCH 4/6] Bump Thrift to 0.24.0 --- dev/install-thrift.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dev/install-thrift.sh b/dev/install-thrift.sh index d6be3bbd5..f2ac40b04 100755 --- a/dev/install-thrift.sh +++ b/dev/install-thrift.sh @@ -22,7 +22,7 @@ set -euo pipefail -THRIFT_VERSION="${THRIFT_VERSION:-0.23.0}" +THRIFT_VERSION="${THRIFT_VERSION:-0.24.0}" sudo apt-get update -qq sudo apt-get install -qq protobuf-compiler From 3437edbed3d5ecf3ed27f8552fb82fe0f7523e10 Mon Sep 17 00:00:00 2001 From: Fokko Driesprong Date: Thu, 3 Sep 2026 15:16:51 +0200 Subject: [PATCH 5/6] Only run when thrift.parquet changes --- .github/workflows/publish_snapshot.yml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/.github/workflows/publish_snapshot.yml b/.github/workflows/publish_snapshot.yml index 12be625ad..db24634ae 100644 --- a/.github/workflows/publish_snapshot.yml +++ b/.github/workflows/publish_snapshot.yml @@ -21,15 +21,19 @@ on: push: branches: - master + paths: + - 'src/main/thrift/parquet.thrift' # Only run when there are changes in the structure jobs: publish-snapshot: if: github.repository == 'apache/parquet-format' runs-on: ubuntu-latest steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 + with: + persist-credentials: false - - uses: actions/setup-java@v5 + - uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5.7.0 with: distribution: temurin java-version: 17 From 77f55a1da23a965acccdcbe41f3251e74a8cfd5a Mon Sep 17 00:00:00 2001 From: Fokko Driesprong Date: Thu, 3 Sep 2026 15:35:49 +0200 Subject: [PATCH 6/6] Add permissions block --- .github/workflows/publish_snapshot.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/publish_snapshot.yml b/.github/workflows/publish_snapshot.yml index db24634ae..4dc331fc7 100644 --- a/.github/workflows/publish_snapshot.yml +++ b/.github/workflows/publish_snapshot.yml @@ -24,6 +24,9 @@ on: paths: - 'src/main/thrift/parquet.thrift' # Only run when there are changes in the structure +permissions: + contents: read + jobs: publish-snapshot: if: github.repository == 'apache/parquet-format'