diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..f576759 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,16 @@ +version: 2 +updates: + - package-ecosystem: "cargo" + directory: "/" + schedule: + interval: "daily" + + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: "daily" + + - package-ecosystem: "gitsubmodule" + directory: "/" + schedule: + interval: "daily" diff --git a/.github/workflows/cron.yml b/.github/workflows/cron.yml new file mode 100644 index 0000000..ccc846a --- /dev/null +++ b/.github/workflows/cron.yml @@ -0,0 +1,14 @@ +name: Cron + +on: + schedule: + - cron: "0 0 * * *" + +jobs: + audit: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - uses: actions-rs/audit-check@v1 + with: + token: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml new file mode 100644 index 0000000..6e03811 --- /dev/null +++ b/.github/workflows/docs.yml @@ -0,0 +1,47 @@ +name: Docs + +on: [push, pull_request] + +permissions: + contents: read + pages: write + id-token: write + +concurrency: + group: pages + cancel-in-progress: true + +jobs: + rustdoc: + name: Rustdoc + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + with: + submodules: recursive + - uses: actions-rs/toolchain@v1.0.7 + with: + profile: minimal + toolchain: stable + - uses: arduino/setup-protoc@v1 + - uses: actions-rs/cargo@v1.0.3 + with: + command: doc + args: --no-deps + - if: github.event_name == 'push' && github.ref == 'refs/heads/main' + uses: actions/upload-pages-artifact@v1 + with: + path: target/doc/ + + deploy: + name: Deploy + if: github.event_name == 'push' && github.ref == 'refs/heads/main' + runs-on: ubuntu-latest + needs: rustdoc + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + steps: + - uses: actions/configure-pages@v2 + - uses: actions/deploy-pages@v1 + id: deployment diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 0000000..7d76e23 --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,69 @@ +name: Test + +on: [push, pull_request] + +jobs: + check: + name: Check + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + with: + submodules: recursive + - uses: actions-rs/toolchain@v1.0.7 + with: + profile: minimal + toolchain: stable + - uses: arduino/setup-protoc@v1 + - uses: actions-rs/cargo@v1.0.3 + with: + command: check + + test: + name: Test + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + with: + submodules: recursive + - uses: actions-rs/toolchain@v1.0.7 + with: + profile: minimal + toolchain: stable + - uses: arduino/setup-protoc@v1 + - uses: actions-rs/cargo@v1.0.3 + with: + command: test + + rustfmt: + name: Rustfmt + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - uses: actions-rs/toolchain@v1.0.7 + with: + profile: minimal + toolchain: stable + components: rustfmt + - uses: actions-rs/cargo@v1.0.3 + with: + command: fmt + args: --all -- --check + + clippy: + name: Clippy + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + with: + submodules: recursive + - uses: actions-rs/toolchain@v1.0.7 + with: + profile: minimal + toolchain: stable + components: clippy + - uses: arduino/setup-protoc@v1 + - uses: actions-rs/cargo@v1.0.3 + with: + command: clippy + args: -- -Dwarnings diff --git a/Cargo.lock b/Cargo.lock index c810512..be8c09c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2,15 +2,6 @@ # It is not intended for manual editing. version = 3 -[[package]] -name = "aho-corasick" -version = "0.7.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f" -dependencies = [ - "memchr", -] - [[package]] name = "anyhow" version = "1.0.55" @@ -76,12 +67,9 @@ checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e" [[package]] name = "heck" -version = "0.3.3" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c" -dependencies = [ - "unicode-segmentation", -] +checksum = "2540771e65fc8cb83cd6e8a237f70c319bd5c29f78ed1084ba5d50eeac86f7f9" [[package]] name = "indexmap" @@ -132,12 +120,6 @@ dependencies = [ "cfg-if", ] -[[package]] -name = "memchr" -version = "2.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "308cc39be01b73d0d18f82a0e7b2a3df85245f84af96fdddc5d202d27e47b86a" - [[package]] name = "multimap" version = "0.8.3" @@ -165,9 +147,9 @@ dependencies = [ [[package]] name = "prost" -version = "0.9.0" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "444879275cb4fd84958b1a1d5420d15e6fcf7c235fe47f053c9c2a80aceb6001" +checksum = "399c3c31cdec40583bb68f0b18403400d01ec4289c383aa047560439952c4dd7" dependencies = [ "bytes", "prost-derive", @@ -175,9 +157,9 @@ dependencies = [ [[package]] name = "prost-build" -version = "0.9.0" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62941722fb675d463659e49c4f3fe1fe792ff24fe5bbaa9c08cd3b98a1c354f5" +checksum = "7f835c582e6bd972ba8347313300219fed5bfa52caf175298d860b61ff6069bb" dependencies = [ "bytes", "heck", @@ -195,9 +177,9 @@ dependencies = [ [[package]] name = "prost-derive" -version = "0.9.0" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9cc1a3263e07e0bf68e96268f37665207b49560d98739662cdfaae215c720fe" +checksum = "7345d5f0e08c0536d7ac7229952590239e77abf0a0100a1b1d890add6ea96364" dependencies = [ "anyhow", "itertools", @@ -208,9 +190,9 @@ dependencies = [ [[package]] name = "prost-types" -version = "0.9.0" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "534b7a0e836e3c482d2693070f982e39e7611da9695d4d1f5a4b186b51faef0a" +checksum = "4dfaa718ad76a44b3415e6c4d53b17c8f99160dcb3a99b10470fce8ad43f6e3e" dependencies = [ "bytes", "prost", @@ -236,20 +218,18 @@ dependencies = [ [[package]] name = "regex" -version = "1.5.4" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d07a8629359eb56f1e2fb1652bb04212c072a87ba68546a04065d525673ac461" +checksum = "4c4eb3267174b8c6c2f654116623910a0fef09c4753f8dd83db29c48a0df988b" dependencies = [ - "aho-corasick", - "memchr", "regex-syntax", ] [[package]] name = "regex-syntax" -version = "0.6.25" +version = "0.6.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f497285884f3fcff424ffc933e56d7cbca511def0c9831a7f9b5f6153e3cc89b" +checksum = "a3f87b73ce11b1619a3c6332f45341e0047173771e8b8b73f87bfeefb7b56244" [[package]] name = "remove_dir_all" @@ -295,12 +275,6 @@ dependencies = [ "winapi", ] -[[package]] -name = "unicode-segmentation" -version = "1.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e8820f5d777f6224dc4be3632222971ac30164d4a258d595640799554ebfd99" - [[package]] name = "unicode-xid" version = "0.2.2" diff --git a/Cargo.toml b/Cargo.toml index 34b1555..3dedb8d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -15,9 +15,9 @@ keywords = [ "substrait" ] # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -prost = "0.9" -prost-types = "0.9" +prost = "0.11" +prost-types = "0.11" [build-dependencies] glob = "0.3" -prost-build = { version = "0.9" } \ No newline at end of file +prost-build = "0.11" diff --git a/src/lib.rs b/src/lib.rs index 4f69a21..5aa5df6 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,18 +1,20 @@ // SPDX-License-Identifier: Apache-2.0 -// include the generated protobuf source as a submodule +/// Generated types for the protobuf `substrait` package #[allow(clippy::all)] pub mod protobuf { + + /// Generated types for the protobuf `substrait.extensions` package pub mod extensions { include!(concat!(env!("OUT_DIR"), "/substrait.extensions.rs")); } + include!(concat!(env!("OUT_DIR"), "/substrait.rs")); } #[cfg(test)] mod tests { - use crate::protobuf::expression::literal::LiteralType; - use crate::protobuf::expression::Literal; + use crate::protobuf::expression::{literal::LiteralType, Literal}; #[test] fn literal() {