This is an automated email from the ASF dual-hosted git repository.
milenkovicm pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/datafusion-ballista.git
The following commit(s) were added to refs/heads/main by this push:
new 6e3154ba document private items and update docs CI (#1327)
6e3154ba is described below
commit 6e3154ba56ee59c7b0afb95a6ede4db55eb6d92c
Author: killzoner <[email protected]>
AuthorDate: Tue Oct 14 21:34:42 2025 +0200
document private items and update docs CI (#1327)
* document private items and update docs CI
* update checkout to v5
---
.github/workflows/build.yml | 16 ++++----
.github/workflows/dev.yml | 2 +-
.github/workflows/dev_pr.yml | 2 +-
.github/workflows/docker.yml | 2 +-
.github/workflows/docs.yaml | 4 +-
.github/workflows/rust.yml | 47 ++++++++++++++++++------
ballista/core/src/client.rs | 6 ++-
ballista/executor/src/cpu_bound_executor.rs | 2 +-
ballista/executor/src/executor.rs | 2 +-
ballista/scheduler/src/cluster/mod.rs | 2 +-
ballista/scheduler/src/config.rs | 4 +-
ballista/scheduler/src/display.rs | 2 +-
ballista/scheduler/src/state/execution_graph.rs | 6 +--
ballista/scheduler/src/state/executor_manager.rs | 4 +-
ci/scripts/rust_docs.sh | 22 +++++++++++
15 files changed, 86 insertions(+), 37 deletions(-)
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index f985deca..d1663ce3 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -40,7 +40,7 @@ jobs:
- "3.12"
- "3.13"
steps:
- - uses: actions/checkout@v4
+ - uses: actions/checkout@v5
- uses: actions/setup-python@v5
with:
@@ -67,7 +67,7 @@ jobs:
build:
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v4
+ - uses: actions/checkout@v5
- name: Install Python
uses: actions/setup-python@v5
with:
@@ -94,7 +94,7 @@ jobs:
generate-license:
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v4
+ - uses: actions/checkout@v5
- uses: astral-sh/setup-uv@v6
with:
enable-cache: true
@@ -115,7 +115,7 @@ jobs:
python-version: ["3.10"]
os: [macos-latest, windows-latest]
steps:
- - uses: actions/checkout@v4
+ - uses: actions/checkout@v5
- uses: actions/setup-python@v5
with:
@@ -172,7 +172,7 @@ jobs:
matrix:
python-version: ["3.10"]
steps:
- - uses: actions/checkout@v4
+ - uses: actions/checkout@v5
- uses: actions/setup-python@v5
with:
@@ -217,7 +217,7 @@ jobs:
name: Manylinux x86_64
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v4
+ - uses: actions/checkout@v5
- uses: dtolnay/rust-toolchain@stable
@@ -257,7 +257,7 @@ jobs:
name: Manylinux arm64
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v4
+ - uses: actions/checkout@v5
- uses: dtolnay/rust-toolchain@stable
@@ -297,7 +297,7 @@ jobs:
name: Source distribution
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v4
+ - uses: actions/checkout@v5
- uses: dtolnay/rust-toolchain@stable
diff --git a/.github/workflows/dev.yml b/.github/workflows/dev.yml
index 08d239de..3f7f51f1 100644
--- a/.github/workflows/dev.yml
+++ b/.github/workflows/dev.yml
@@ -28,7 +28,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
- uses: actions/checkout@v4
+ uses: actions/checkout@v5
- name: Setup Python
uses: actions/setup-python@v4
with:
diff --git a/.github/workflows/dev_pr.yml b/.github/workflows/dev_pr.yml
index 87368111..fb5b9c08 100644
--- a/.github/workflows/dev_pr.yml
+++ b/.github/workflows/dev_pr.yml
@@ -33,7 +33,7 @@ jobs:
name: Process
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v4
+ - uses: actions/checkout@v5
- name: Assign GitHub labels
if: |
diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml
index 4c8d81ad..d59e9e56 100644
--- a/.github/workflows/docker.yml
+++ b/.github/workflows/docker.yml
@@ -28,7 +28,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
- uses: actions/checkout@v4
+ uses: actions/checkout@v5
- name: Installs Rust and Cargo
run: curl -y --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
- name: Run script
diff --git a/.github/workflows/docs.yaml b/.github/workflows/docs.yaml
index 257224f1..d7429607 100644
--- a/.github/workflows/docs.yaml
+++ b/.github/workflows/docs.yaml
@@ -32,10 +32,10 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout docs sources
- uses: actions/checkout@v4
+ uses: actions/checkout@v5
- name: Checkout asf-site branch
- uses: actions/checkout@v4
+ uses: actions/checkout@v5
with:
ref: asf-site
path: asf-site
diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml
index abe9d3f4..55308556 100644
--- a/.github/workflows/rust.yml
+++ b/.github/workflows/rust.yml
@@ -46,9 +46,10 @@ jobs:
container:
image: amd64/rust
steps:
- - uses: actions/checkout@v4
+ - uses: actions/checkout@v5
with:
submodules: true
+ fetch-depth: 1
- name: Setup Rust toolchain
uses: ./.github/actions/setup-builder
- name: Prepare cargo build
@@ -64,9 +65,10 @@ jobs:
container:
image: amd64/rust
steps:
- - uses: actions/checkout@v4
+ - uses: actions/checkout@v5
with:
submodules: true
+ fetch-depth: 1
- name: Setup Rust toolchain
uses: ./.github/actions/setup-builder
- name: Run tests
@@ -79,15 +81,32 @@ jobs:
CARGO_HOME: "/github/home/.cargo"
CARGO_TARGET_DIR: "/github/home/target"
+ # Run `cargo doc` to ensure the rustdoc is clean
+ linux-rustdoc:
+ name: cargo doc
+ needs: linux-build-lib
+ runs-on: ubuntu-latest
+ container:
+ image: amd64/rust
+ steps:
+ - uses: actions/checkout@v5
+ - name: Setup Rust toolchain
+ uses: ./.github/actions/setup-builder
+ with:
+ rust-version: stable
+ - name: Run cargo doc
+ run: ci/scripts/rust_docs.sh
+
linux-build-workspace:
name: check linux workspace
runs-on: ubuntu-latest
container:
image: amd64/rust
steps:
- - uses: actions/checkout@v4
+ - uses: actions/checkout@v5
with:
submodules: true
+ fetch-depth: 1
- name: Setup Rust toolchain
uses: ./.github/actions/setup-builder
- name: Try to compile when `--no-default-features` is selected
@@ -106,9 +125,10 @@ jobs:
container:
image: amd64/rust
steps:
- - uses: actions/checkout@v4
+ - uses: actions/checkout@v5
with:
submodules: true
+ fetch-depth: 1
- name: Setup Rust toolchain
uses: ./.github/actions/setup-builder
- name: Run Ballista tests
@@ -127,9 +147,10 @@ jobs:
name: windows test
runs-on: windows-latest
steps:
- - uses: actions/checkout@v4
+ - uses: actions/checkout@v5
with:
submodules: true
+ fetch-depth: 1
- name: Setup Rust toolchain
uses: ./.github/actions/setup-windows-builder
- name: Run tests
@@ -146,9 +167,10 @@ jobs:
name: macos test
runs-on: macos-latest
steps:
- - uses: actions/checkout@v4
+ - uses: actions/checkout@v5
with:
submodules: true
+ fetch-depth: 1
- name: Setup Rust toolchain
uses: ./.github/actions/setup-macos-builder
- name: Run tests
@@ -166,9 +188,10 @@ jobs:
container:
image: amd64/rust
steps:
- - uses: actions/checkout@v4
+ - uses: actions/checkout@v5
with:
submodules: true
+ fetch-depth: 1
- name: Setup Rust toolchain
uses: ./.github/actions/setup-builder
- name: Verify that benchmark queries return expected results
@@ -181,7 +204,7 @@ jobs:
container:
image: amd64/rust
steps:
- - uses: actions/checkout@v4
+ - uses: actions/checkout@v5
- name: Setup toolchain
run: |
rustup toolchain install stable
@@ -207,9 +230,10 @@ jobs:
# "1" means line tables only, which is useful for panic tracebacks.
RUSTFLAGS: "-C debuginfo=1"
steps:
- - uses: actions/checkout@v4
+ - uses: actions/checkout@v5
with:
submodules: true
+ fetch-depth: 1
- name: Setup Rust toolchain
uses: ./.github/actions/setup-builder
with:
@@ -237,9 +261,10 @@ jobs:
# "1" means line tables only, which is useful for panic tracebacks.
RUSTFLAGS: "-C debuginfo=1"
steps:
- - uses: actions/checkout@v4
+ - uses: actions/checkout@v5
with:
submodules: true
+ fetch-depth: 1
- name: Setup Rust toolchain
uses: ./.github/actions/setup-builder
with:
@@ -274,7 +299,7 @@ jobs:
# arch: [amd64]
# rust: [stable]
# steps:
-# - uses: actions/checkout@v4
+# - uses: actions/checkout@v5
# with:
# submodules: true
# - name: Cache Cargo
diff --git a/ballista/core/src/client.rs b/ballista/core/src/client.rs
index 528570f9..6775dce0 100644
--- a/ballista/core/src/client.rs
+++ b/ballista/core/src/client.rs
@@ -141,6 +141,7 @@ impl BallistaClient {
})
}
+ #[allow(rustdoc::private_intra_doc_links)]
/// Executes the specified action and retrieves the results from the
remote executor.
///
/// This method establishes a [FlightDataStream] to facilitate the
transfer of data
@@ -298,7 +299,7 @@ impl BallistaClient {
/// compared to file-level compression, as it operates on smaller data
segments.
///
/// For further discussion regarding performance implications, refer to:
-/// https://github.com/apache/datafusion-ballista/issues/1315
+/// <https://github.com/apache/datafusion-ballista/issues/1315>
struct FlightDataStream {
stream: Streaming<FlightData>,
schema: SchemaRef,
@@ -346,6 +347,7 @@ impl RecordBatchStream for FlightDataStream {
self.schema.clone()
}
}
+#[allow(rustdoc::private_intra_doc_links)]
/// [BlockDataStream] facilitates the transfer of original shuffle files in a
block-by-block manner.
/// This implementation utilizes a custom `do_action` method on the Arrow
Flight server.
/// The primary distinction from [FlightDataStream] is that it does not
decompress or decode
@@ -353,7 +355,7 @@ impl RecordBatchStream for FlightDataStream {
/// on the Flight server and enables the transmission of less data, owing to
improved file-level compression.
///
/// For a detailed discussion of the performance advantages, see:
-/// https://github.com/apache/datafusion-ballista/issues/1315
+/// <https://github.com/apache/datafusion-ballista/issues/1315>
pub struct BlockDataStream<S: Stream<Item = Result<prost::bytes::Bytes>> +
Unpin> {
decoder: StreamDecoder,
state_buffer: Buffer,
diff --git a/ballista/executor/src/cpu_bound_executor.rs
b/ballista/executor/src/cpu_bound_executor.rs
index 5f1ed229..83e2c1cd 100644
--- a/ballista/executor/src/cpu_bound_executor.rs
+++ b/ballista/executor/src/cpu_bound_executor.rs
@@ -84,7 +84,7 @@ impl std::fmt::Debug for DedicatedExecutor {
}
impl DedicatedExecutor {
- /// https://stackoverflow.com/questions/62536566
+ /// <https://stackoverflow.com/questions/62536566>
/// Creates a new `DedicatedExecutor` with a dedicated tokio
/// runtime that is separate from the `[tokio::main]` threadpool.
///
diff --git a/ballista/executor/src/executor.rs
b/ballista/executor/src/executor.rs
index a8fdce17..3723c42e 100644
--- a/ballista/executor/src/executor.rs
+++ b/ballista/executor/src/executor.rs
@@ -110,7 +110,7 @@ impl Executor {
}
/// Create a new executor instance with given [RuntimeEnv],
- /// [ScalarUDF], [AggregateUDF] and [WindowUDF]
+ /// [datafusion::logical_expr::ScalarUDF],
[datafusion::logical_expr::AggregateUDF] and
[datafusion::logical_expr::WindowUDF]
#[allow(clippy::too_many_arguments)]
pub fn new(
metadata: ExecutorRegistration,
diff --git a/ballista/scheduler/src/cluster/mod.rs
b/ballista/scheduler/src/cluster/mod.rs
index 64da28d2..4942d452 100644
--- a/ballista/scheduler/src/cluster/mod.rs
+++ b/ballista/scheduler/src/cluster/mod.rs
@@ -149,7 +149,7 @@ pub trait ClusterState: Send + Sync + 'static {
Ok(())
}
- /// Bind the ready to running tasks from [`active_jobs`] with available
executors.
+ /// Bind the ready to running tasks from `active_jobs` with available
executors.
///
/// If `executors` is provided, only bind slots from the specified
executor IDs
async fn bind_schedulable_tasks(
diff --git a/ballista/scheduler/src/config.rs b/ballista/scheduler/src/config.rs
index e02a6d61..559f1d67 100644
--- a/ballista/scheduler/src/config.rs
+++ b/ballista/scheduler/src/config.rs
@@ -356,7 +356,7 @@ pub enum TaskDistribution {
/// Distribute tasks evenly across executors. This will try and iterate
through available executors
/// and assign one task to each executor until all tasks are assigned.
RoundRobin,
- /// 1. Firstly, try to bind tasks without scanning source files by
[`RoundRobin`] policy.
+ /// 1. Firstly, try to bind tasks without scanning source files by
`RoundRobin` policy.
/// 2. Then for a task for scanning source files, firstly calculate a hash
value based on input files.
/// And then bind it with an execute according to consistent hashing
policy.
/// 3. If needed, work stealing can be enabled based on the tolerance of
the consistent hashing.
@@ -391,7 +391,7 @@ pub enum TaskDistributionPolicy {
/// Distribute tasks evenly across executors. This will try and iterate
through available executors
/// and assign one task to each executor until all tasks are assigned.
RoundRobin,
- /// 1. Firstly, try to bind tasks without scanning source files by
[`RoundRobin`] policy.
+ /// 1. Firstly, try to bind tasks without scanning source files by
`RoundRobin` policy.
/// 2. Then for a task for scanning source files, firstly calculate a hash
value based on input files.
/// And then bind it with an execute according to consistent hashing
policy.
/// 3. If needed, work stealing can be enabled based on the tolerance of
the consistent hashing.
diff --git a/ballista/scheduler/src/display.rs
b/ballista/scheduler/src/display.rs
index fa26331e..ea6d488e 100644
--- a/ballista/scheduler/src/display.rs
+++ b/ballista/scheduler/src/display.rs
@@ -16,7 +16,7 @@
// under the License.
//! Implementation of ballista physical plan display with metrics. See
-//! [`crate::physical_plan::displayable`] for examples of how to
+//! [`datafusion::physical_plan::display`] for examples of how to
//! format
use ballista_core::utils::collect_plan_metrics;
diff --git a/ballista/scheduler/src/state/execution_graph.rs
b/ballista/scheduler/src/state/execution_graph.rs
index fb5d470d..38339a3d 100644
--- a/ballista/scheduler/src/state/execution_graph.rs
+++ b/ballista/scheduler/src/state/execution_graph.rs
@@ -66,7 +66,7 @@ use crate::state::task_manager::UpdatedStages;
///
/// CoalesceBatchesExec: target_batch_size=4096
/// RepartitionExec: partitioning=Hash([Column { name: "id", index: 0 }],
4)
-/// AggregateExec: mode=Partial, gby=[id@0 as id],
aggr=[SUM(some_table.gmv)]
+/// AggregateExec: mode=Partial, gby=[id\@0 as id],
aggr=[SUM(some_table.gmv)]
/// TableScan: some_table
///
/// The Ballista `DistributedPlanner` will turn this into a distributed plan
by creating a shuffle
@@ -78,12 +78,12 @@ use crate::state::task_manager::UpdatedStages;
/// =========UnResolvedStage[id=2, children=1]=========
/// Inputs{1: StageOutput { partition_locations: {}, complete: false }}
/// ShuffleWriterExec: None
-/// AggregateExec: mode=FinalPartitioned, gby=[id@0 as id],
aggr=[SUM(?table?.gmv)]
+/// AggregateExec: mode=FinalPartitioned, gby=[id\@0 as id],
aggr=[SUM(?table?.gmv)]
/// CoalesceBatchesExec: target_batch_size=4096
/// UnresolvedShuffleExec
/// =========ResolvedStage[id=1, partitions=1]=========
/// ShuffleWriterExec: Some(Hash([Column { name: "id", index: 0 }], 4))
-/// AggregateExec: mode=Partial, gby=[id@0 as id], aggr=[SUM(?table?.gmv)]
+/// AggregateExec: mode=Partial, gby=[id\@0 as id], aggr=[SUM(?table?.gmv)]
/// TableScan: some_table
///
///
diff --git a/ballista/scheduler/src/state/executor_manager.rs
b/ballista/scheduler/src/state/executor_manager.rs
index 9f3e2f5d..9c515d8f 100644
--- a/ballista/scheduler/src/state/executor_manager.rs
+++ b/ballista/scheduler/src/state/executor_manager.rs
@@ -70,7 +70,7 @@ impl ExecutorManager {
}
///
- /// Bind the ready to run tasks from [`active_jobs`] to available
executors.
+ /// Bind the ready to run tasks from `active_jobs` to available executors.
pub async fn bind_schedulable_tasks(
&self,
running_jobs: Arc<HashMap<String, JobInfoCache>>,
@@ -226,7 +226,7 @@ impl ExecutorManager {
/// It's only used for pull-based task scheduling.
///
- /// For push-based one, we should use [`register_executor`], instead.
+ /// For push-based one, we should use [`Self::register_executor`], instead.
pub async fn save_executor_metadata(&self, metadata: ExecutorMetadata) ->
Result<()> {
trace!(
"save executor metadata {} with {} task slots (pull-based
registration)",
diff --git a/ci/scripts/rust_docs.sh b/ci/scripts/rust_docs.sh
new file mode 100755
index 00000000..e90bfdf8
--- /dev/null
+++ b/ci/scripts/rust_docs.sh
@@ -0,0 +1,22 @@
+#!/usr/bin/env 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.
+
+set -ex
+export RUSTDOCFLAGS="-D warnings"
+cargo doc --document-private-items --no-deps --workspace
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]