From ed1dbabbb11944d922d856d7ec6fd167acf3dd5e Mon Sep 17 00:00:00 2001 From: Shiyan Xu <2701446+xushiyan@users.noreply.github.com> Date: Thu, 30 Jan 2025 01:18:41 -0600 Subject: [PATCH] build(dep): upgrade rustc, arrow, and tarpaulin setting (#276) --- .github/workflows/ci.yml | 2 +- .github/workflows/code.yml | 2 +- Cargo.toml | 28 ++++++++++++++-------------- crates/core/src/table/mod.rs | 2 +- demo/infra/runner/Dockerfile | 2 +- demo/table-api-rust/Cargo.toml | 2 +- python/Cargo.toml | 3 +++ python/src/internal.rs | 18 +++++++++--------- python/src/lib.rs | 2 +- rust-toolchain.toml | 2 +- 10 files changed, 33 insertions(+), 30 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 80861c07..ebdfde01 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -57,7 +57,7 @@ jobs: os: [ ubuntu-22.04 ] runs-on: ${{ matrix.os }} container: - image: xd009642/tarpaulin:0.30.0 + image: xd009642/tarpaulin:0.31.5 options: --security-opt seccomp=unconfined steps: - uses: actions/checkout@v4 diff --git a/.github/workflows/code.yml b/.github/workflows/code.yml index d0eabffc..a8bb1d69 100644 --- a/.github/workflows/code.yml +++ b/.github/workflows/code.yml @@ -41,7 +41,7 @@ jobs: - name: Setup Python uses: actions/setup-python@v5 with: - python-version: '3.8' + python-version: '3.9' cache: pip cache-dependency-path: pyproject.toml diff --git a/Cargo.toml b/Cargo.toml index ab764ecb..ffe1de40 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -26,7 +26,7 @@ resolver = "2" version = "0.3.0" edition = "2021" license = "Apache-2.0" -rust-version = "1.79" +rust-version = "1.81" keywords = ["apachehudi", "hudi", "datalake", "arrow"] readme = "README.md" description = "A native Rust library for Apache Hudi" @@ -35,19 +35,19 @@ repository = "https://github.com/apache/hudi-rs" [workspace.dependencies] # arrow -arrow = { version = "= 53.3.0", features = ["pyarrow"] } -arrow-arith = { version = "= 53.3.0" } -arrow-array = { version = "= 53.3.0" } -arrow-buffer = { version = "= 53.3.0" } -arrow-cast = { version = "= 53.3.0" } -arrow-ipc = { version = "= 53.3.0" } -arrow-json = { version = "= 53.3.0" } -arrow-ord = { version = "= 53.3.0" } -arrow-row = { version = "= 53.3.0" } -arrow-schema = { version = "= 53.3.0", features = ["serde"] } -arrow-select = { version = "= 53.3.0" } +arrow = { version = "= 53.4.0", features = ["pyarrow"] } +arrow-arith = { version = "= 53.4.0" } +arrow-array = { version = "= 53.4.0" } +arrow-buffer = { version = "= 53.4.0" } +arrow-cast = { version = "= 53.4.0" } +arrow-ipc = { version = "= 53.4.0" } +arrow-json = { version = "= 53.4.0" } +arrow-ord = { version = "= 53.4.0" } +arrow-row = { version = "= 53.4.0" } +arrow-schema = { version = "= 53.4.0", features = ["serde"] } +arrow-select = { version = "= 53.4.0" } object_store = { version = "= 0.11.2", features = ["aws", "azure", "gcp"] } -parquet = { version = "= 53.3.0", features = ["async", "object_store"] } +parquet = { version = "= 53.4.0", features = ["async", "object_store"] } # datafusion datafusion = { version = "= 43.0.0" } @@ -61,7 +61,7 @@ serde = { version = "1.0", features = ["derive"] } serde_json = { version = "1.0" } # "stdlib" -thiserror = { version = "2.0.10" } +thiserror = { version = "2.0.11" } bytes = { version = "1" } chrono = { version = "0.4" } lazy_static = { version = "1.5.0" } diff --git a/crates/core/src/table/mod.rs b/crates/core/src/table/mod.rs index 8d6a137d..2415b656 100644 --- a/crates/core/src/table/mod.rs +++ b/crates/core/src/table/mod.rs @@ -56,7 +56,7 @@ //! } //! ``` //! 4. get file slice -//! Users can obtain metadata to customize reading methods, read in batches, perform parallel reads, and more. +//! Users can obtain metadata to customize reading methods, read in batches, perform parallel reads, and more. //! ```rust //! use url::Url; //! use hudi_core::table::Table; diff --git a/demo/infra/runner/Dockerfile b/demo/infra/runner/Dockerfile index eadf90b6..d7dbe7f7 100644 --- a/demo/infra/runner/Dockerfile +++ b/demo/infra/runner/Dockerfile @@ -15,7 +15,7 @@ # specific language governing permissions and limitations # under the License. -FROM rust:1.79 +FROM rust:1.81 RUN apt-get update && apt-get install -y python3-dev python3-venv diff --git a/demo/table-api-rust/Cargo.toml b/demo/table-api-rust/Cargo.toml index 06fd6235..99606936 100644 --- a/demo/table-api-rust/Cargo.toml +++ b/demo/table-api-rust/Cargo.toml @@ -25,6 +25,6 @@ edition = "2021" [dependencies] tokio = "^1" -arrow = { version = "= 53.3.0", features = ["pyarrow"] } +arrow = { version = "= 53.4.0", features = ["pyarrow"] } hudi = { path = "../../crates/hudi" } diff --git a/python/Cargo.toml b/python/Cargo.toml index efcb9f46..08e84dd6 100644 --- a/python/Cargo.toml +++ b/python/Cargo.toml @@ -47,3 +47,6 @@ tokio = { workspace = true } [dependencies.pyo3] version = "0.22.6" features = ["extension-module", "abi3", "abi3-py39"] + +[lints.rust] +unexpected_cfgs = { level = "warn", check-cfg = ['cfg(tarpaulin_include)'] } diff --git a/python/src/internal.rs b/python/src/internal.rs index 6ee9a01c..90eb4af6 100644 --- a/python/src/internal.rs +++ b/python/src/internal.rs @@ -56,14 +56,14 @@ impl From for PyErr { } } -#[cfg(not(tarpaulin))] +#[cfg(not(tarpaulin_include))] #[derive(Clone, Debug)] #[pyclass] pub struct HudiFileGroupReader { inner: FileGroupReader, } -#[cfg(not(tarpaulin))] +#[cfg(not(tarpaulin_include))] #[pymethods] impl HudiFileGroupReader { #[new] @@ -113,7 +113,7 @@ impl HudiFileGroupReader { } } -#[cfg(not(tarpaulin))] +#[cfg(not(tarpaulin_include))] #[derive(Clone, Debug)] #[pyclass] pub struct HudiFileSlice { @@ -135,7 +135,7 @@ pub struct HudiFileSlice { num_records: i64, } -#[cfg(not(tarpaulin))] +#[cfg(not(tarpaulin_include))] #[pymethods] impl HudiFileSlice { fn base_file_relative_path(&self) -> PyResult { @@ -174,7 +174,7 @@ impl HudiFileSlice { } } -#[cfg(not(tarpaulin))] +#[cfg(not(tarpaulin_include))] impl From<&FileSlice> for HudiFileSlice { fn from(f: &FileSlice) -> Self { let file_id = f.file_id().to_string(); @@ -199,13 +199,13 @@ impl From<&FileSlice> for HudiFileSlice { } } -#[cfg(not(tarpaulin))] +#[cfg(not(tarpaulin_include))] #[pyclass] pub struct HudiTable { inner: Table, } -#[cfg(not(tarpaulin))] +#[cfg(not(tarpaulin_include))] #[pymethods] impl HudiTable { #[new] @@ -399,7 +399,7 @@ impl HudiTable { } } -#[cfg(not(tarpaulin))] +#[cfg(not(tarpaulin_include))] #[pyfunction] #[pyo3(signature = (base_uri, hudi_options=None, storage_options=None, options=None))] pub fn build_hudi_table( @@ -420,7 +420,7 @@ pub fn build_hudi_table( Ok(HudiTable { inner }) } -#[cfg(not(tarpaulin))] +#[cfg(not(tarpaulin_include))] fn rt() -> &'static Runtime { static TOKIO_RT: OnceLock = OnceLock::new(); TOKIO_RT.get_or_init(|| Runtime::new().expect("Failed to create a tokio runtime.")) diff --git a/python/src/lib.rs b/python/src/lib.rs index b44832b1..afd3e593 100644 --- a/python/src/lib.rs +++ b/python/src/lib.rs @@ -20,7 +20,7 @@ use pyo3::prelude::*; mod internal; -#[cfg(not(tarpaulin))] +#[cfg(not(tarpaulin_include))] #[pymodule] fn _internal(_py: Python, m: &Bound<'_, PyModule>) -> PyResult<()> { m.add("__version__", env!("CARGO_PKG_VERSION"))?; diff --git a/rust-toolchain.toml b/rust-toolchain.toml index af06e236..5631a32b 100644 --- a/rust-toolchain.toml +++ b/rust-toolchain.toml @@ -16,6 +16,6 @@ # under the License. [toolchain] -channel = "1.79" +channel = "1.81" components = ["rustfmt", "clippy"] profile = "minimal"