Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
90 changes: 10 additions & 80 deletions .github/workflows/rust.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@ on:
- 'asap-common/dependencies/rs/**'
- 'asap-common/tests/**'
- 'asap-common/sketch-core/**'
- 'Cargo.toml'
- 'Cargo.lock'
- '.github/workflows/rust.yml'
pull_request:
branches: [ main ]
Expand All @@ -16,6 +18,8 @@ on:
- 'asap-common/dependencies/rs/**'
- 'asap-common/tests/**'
- 'asap-common/sketch-core/**'
- 'Cargo.toml'
- 'Cargo.lock'
- '.github/workflows/rust.yml'
workflow_dispatch:

Expand Down Expand Up @@ -43,66 +47,14 @@ jobs:
path: |
~/.cargo/registry
~/.cargo/git
asap-query-engine/target
target
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}

- name: Check formatting
run: cargo fmt -- --check
working-directory: asap-query-engine

- name: Check formatting (sketch_db_common)
run: cargo fmt -- --check
working-directory: asap-common/dependencies/rs/sketch_db_common
run: cargo fmt --all -- --check

- name: Run clippy
run: cargo clippy --all-targets --all-features -- -D warnings
working-directory: asap-query-engine
env:
RUSTC_WRAPPER: sccache

- name: Run clippy (sketch_db_common)
run: cargo clippy --all-targets --all-features -- -D warnings
working-directory: asap-common/dependencies/rs/sketch_db_common
env:
RUSTC_WRAPPER: sccache

- name: Check formatting (sketch-core)
run: cargo fmt -- --check
working-directory: asap-common/sketch-core

- name: Run clippy (sketch-core)
run: cargo clippy --all-targets --all-features -- -D warnings
working-directory: asap-common/sketch-core
env:
RUSTC_WRAPPER: sccache

- name: Check formatting (sql_utilities)
run: cargo fmt -- --check
working-directory: asap-common/dependencies/rs/sql_utilities

- name: Run clippy (sql_utilities)
run: cargo clippy --all-targets --all-features -- -D warnings
working-directory: asap-common/dependencies/rs/sql_utilities
env:
RUSTC_WRAPPER: sccache

- name: Check formatting (promql_utilities)
run: cargo fmt -- --check
working-directory: asap-common/dependencies/rs/promql_utilities

- name: Run clippy (promql_utilities)
run: cargo clippy --all-targets --all-features -- -D warnings
working-directory: asap-common/dependencies/rs/promql_utilities
env:
RUSTC_WRAPPER: sccache

- name: Check formatting (datafusion_summary_library)
run: cargo fmt -- --check
working-directory: asap-common/dependencies/rs/datafusion_summary_library

- name: Run clippy (datafusion_summary_library)
run: cargo clippy --all-targets --all-features -- -D warnings
working-directory: asap-common/dependencies/rs/datafusion_summary_library
run: cargo clippy --workspace --all-targets --all-features -- -D warnings
env:
RUSTC_WRAPPER: sccache

Expand All @@ -125,33 +77,11 @@ jobs:
path: |
~/.cargo/registry
~/.cargo/git
asap-query-engine/target
target
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}

- name: Run QueryEngineRust tests
run: cargo test
working-directory: asap-query-engine
env:
RUSTC_WRAPPER: sccache

- name: Run sql_utilities tests
run: cargo test
working-directory: asap-common/dependencies/rs/sql_utilities
env:
RUSTC_WRAPPER: sccache

- name: Run promql_utilities tests
run: cargo test
working-directory: asap-common/dependencies/rs/promql_utilities
env:
RUSTC_WRAPPER: sccache

- name: Run sketch-core tests
run: cargo test
working-directory: asap-common/sketch-core
- name: Run sketch_db_common tests
run: cargo test
working-directory: asap-common/dependencies/rs/sketch_db_common
- name: Run all workspace tests
run: cargo test --workspace
env:
RUSTC_WRAPPER: sccache

Expand Down
107 changes: 15 additions & 92 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -66,114 +66,37 @@ repos:
- prometheus-client
- urllib3

# Rust formatting and linting
# Rust formatting, linting, and tests (workspace-level)
- repo: local
hooks:
- id: cargo-fmt
name: cargo fmt
description: Format Rust files with rustfmt.
entry: bash -c 'cargo fmt --manifest-path asap-query-engine/Cargo.toml -- --check'
description: Format all Rust workspace crates with rustfmt.
entry: bash -c 'cargo fmt --all -- --check'
language: system
files: ^asap-query-engine/.*\.rs$
files: \.rs$
pass_filenames: false

- id: cargo-check
name: cargo check
description: Check the package for errors.
entry: bash -c 'cargo check --manifest-path asap-query-engine/Cargo.toml --all'
description: Check the workspace for errors.
entry: bash -c 'cargo check --workspace'
language: system
files: ^asap-query-engine/.*\.rs$
files: \.rs$
pass_filenames: false

- id: cargo-clippy
name: cargo clippy
description: Lint Rust sources
entry: bash -c 'cargo clippy --manifest-path asap-query-engine/Cargo.toml --all-targets --all-features -- -D warnings'
description: Lint all Rust workspace crates.
entry: bash -c 'cargo clippy --workspace --all-targets --all-features -- -D warnings'
language: system
files: ^asap-query-engine/.*\.rs$
files: \.rs$
pass_filenames: false

- id: cargo-fmt-datafusion-summary-library
name: cargo fmt (datafusion_summary_library)
description: Format datafusion_summary_libraryRust files with rustfmt.
entry: bash -c 'cargo fmt --manifest-path asap-common/dependencies/rs/datafusion_summary_library/Cargo.toml -- --check'
- id: cargo-test
name: cargo test
description: Run all Rust workspace tests.
entry: bash -c 'cargo test --workspace'
language: system
files: ^asap-common/dependencies/rs/datafusion_summary_library/.*\.rs$
pass_filenames: false

- id: cargo-test-datafusion-summary-library
name: cargo test (datafusion_summary_library)
description: Run datafusion_summary_library tests.
entry: bash -c 'cargo test --manifest-path asap-common/dependencies/rs/datafusion_summary_library/Cargo.toml'
language: system
files: ^asap-common/dependencies/rs/datafusion_summary_library/.*\.rs$
pass_filenames: false

- id: cargo-fmt-sql-utilities
name: cargo fmt (sql_utilities)
description: Format sql_utilities Rust files with rustfmt.
entry: bash -c 'cargo fmt --manifest-path asap-common/dependencies/rs/sql_utilities/Cargo.toml -- --check'
language: system
files: ^asap-common/dependencies/rs/sql_utilities/.*\.rs$
pass_filenames: false

- id: cargo-test-sql-utilities
name: cargo test (sql_utilities)
description: Run sql_utilities tests.
entry: bash -c 'cargo test --manifest-path asap-common/dependencies/rs/sql_utilities/Cargo.toml'
language: system
files: ^asap-common/dependencies/rs/sql_utilities/.*\.rs$
pass_filenames: false

- id: cargo-fmt-promql-utilities
name: cargo fmt (promql_utilities)
description: Format promql_utilities Rust files with rustfmt.
entry: bash -c 'cargo fmt --manifest-path asap-common/dependencies/rs/promql_utilities/Cargo.toml -- --check'
language: system
files: ^asap-common/dependencies/rs/promql_utilities/.*\.rs$
pass_filenames: false

- id: cargo-test-promql-utilities
name: cargo test (promql_utilities)
description: Run promql_utilities tests.
entry: bash -c 'cargo test --manifest-path asap-common/dependencies/rs/promql_utilities/Cargo.toml'
language: system
files: ^asap-common/dependencies/rs/promql_utilities/.*\.rs$
pass_filenames: false
- id: cargo-fmt-sketch-core
name: cargo fmt (sketch-core)
description: Format sketch-core Rust files with rustfmt.
entry: bash -c 'cargo fmt --manifest-path asap-common/sketch-core/Cargo.toml -- --check'
language: system
files: ^asap-common/sketch-core/.*\.rs$
pass_filenames: false

- id: cargo-clippy-sketch-core
name: cargo clippy (sketch-core)
description: Lint sketch-core Rust sources.
entry: bash -c 'cargo clippy --manifest-path asap-common/sketch-core/Cargo.toml --all-targets --all-features -- -D warnings'
language: system
files: ^asap-common/sketch-core/.*\.rs$
pass_filenames: false

- id: cargo-test-sketch-core
name: cargo test (sketch-core)
description: Run sketch-core tests.
entry: bash -c 'cargo test --manifest-path asap-common/sketch-core/Cargo.toml'
language: system
files: ^asap-common/sketch-core/.*\.rs$
- id: cargo-fmt-sketch-db-common
name: cargo fmt (sketch_db_common)
description: Format sketch_db_common Rust files with rustfmt.
entry: bash -c 'cargo fmt --manifest-path asap-common/dependencies/rs/sketch_db_common/Cargo.toml -- --check'
language: system
files: ^asap-common/dependencies/rs/sketch_db_common/.*\.rs$
pass_filenames: false

- id: cargo-test-sketch-db-common
name: cargo test (sketch_db_common)
description: Run sketch_db_common tests.
entry: bash -c 'cargo test --manifest-path asap-common/dependencies/rs/sketch_db_common/Cargo.toml'
language: system
files: ^asap-common/dependencies/rs/sketch_db_common/.*\.rs$
files: \.rs$
pass_filenames: false
34 changes: 33 additions & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,3 +1,35 @@
[workspace]
members = ["asap-common/sketch-core", "asap-query-engine"]
resolver = "2"
members = [
"asap-common/sketch-core",
"asap-common/dependencies/rs/promql_utilities",
"asap-common/dependencies/rs/sql_utilities",
"asap-common/dependencies/rs/sketch_db_common",
"asap-common/dependencies/rs/datafusion_summary_library",
"asap-query-engine",
]

[workspace.package]
edition = "2021"
version = "0.1.0"

[workspace.dependencies]
# Shared external deps (used by 2+ crates)
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
serde_yaml = "0.9"
thiserror = "1.0"
anyhow = "1.0"
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
clap = { version = "4.0", features = ["derive"] }
chrono = { version = "0.4", features = ["serde"] }
promql-parser = "0.5.0"
tokio = { version = "1.0", features = ["full"] }

# Internal crates
sketch-core = { path = "asap-common/sketch-core" }
promql_utilities = { path = "asap-common/dependencies/rs/promql_utilities" }
sql_utilities = { path = "asap-common/dependencies/rs/sql_utilities" }
sketch_db_common = { path = "asap-common/dependencies/rs/sketch_db_common" }
datafusion_summary_library = { path = "asap-common/dependencies/rs/datafusion_summary_library" }
Loading