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
16 changes: 14 additions & 2 deletions .github/workflows/lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -136,17 +136,29 @@ jobs:

- name: Run clippy
if: always() && steps.lints.outputs.clippy == 'true'
# `bash` gives us `pipefail`, so a failing `turbo`/`clippy` fails the step instead of
# being masked by a later pipeline stage exiting 0.
shell: bash
run: |
pushd ${{ matrix.path }}
turbo run lint:clippy --filter "${{ matrix.name }}" -- --message-format=json \
Comment thread
Copilot marked this conversation as resolved.
| tee clippy-output.log \
| clippy-sarif \
| jq --arg path "${{ matrix.path }}" '.runs[].results |= map(select(.locations[].physicalLocation.artifactLocation.uri | startswith($path)))' \
| jq '.runs[].results |= unique' \
> clippy.sarif
popd
cat ${{ matrix.path }}/clippy.sarif | sarif-fmt

jq -e '.runs[].results == []' ${{ matrix.path }}/clippy.sarif> /dev/null
jq -e '.runs[].results == []' ${{ matrix.path }}/clippy.sarif > /dev/null

# Cargo's manifest lints (e.g. `cargo::unused_dependencies`) are plain text, not compiler
# JSON, so they bypass the SARIF gate above and were consumed by the pipeline. Re-print
# the human-readable output (dropping JSON) and fail on the package-level lint. The
# workspace-level variant is ignored: it false-positives in the pruned per-package repo.
if grep -qF "warning: unused dependency" ${{ matrix.path }}/clippy-output.log; then
grep -vF '{"reason":' ${{ matrix.path }}/clippy-output.log
exit 1
fi

- name: Print clippy errors to summary
if: failure() && steps.lints.outputs.clippy == 'true'
Expand Down
32 changes: 1 addition & 31 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 0 additions & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -216,7 +216,6 @@ postgres-types = { version = "0.2.11", default-features = fa
pretty = { version = "0.12.5", default-features = false }
pretty_assertions = { version = "1.4.1", default-features = false, features = ["alloc"] }
prettyplease = { version = "0.2.37", default-features = false }
proc-macro-error2 = { version = "2.0.1", default-features = false }
proc-macro2 = { version = "1.0.103", default-features = false }
prometheus-client = { version = "0.24.0", default-features = false }
proptest = { version = "1.7.0", default-features = false, features = ["alloc", "std"] } # `std` or `no_std` are required, `no_std` pulls in `libm`
Expand Down
2 changes: 1 addition & 1 deletion apps/hash-graph/src/main.rs
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
//! # HASH Graph
//!
//! ## Workspace dependencies
#![cfg_attr(doc, doc = simple_mermaid::mermaid!("../docs/dependency-diagram.mmd"))]
#![doc = simple_mermaid::mermaid!("../docs/dependency-diagram.mmd")]
#![forbid(unsafe_code)]
#![expect(
unreachable_pub,
Expand Down
1 change: 0 additions & 1 deletion libs/@blockprotocol/type-system/rust/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,6 @@ uuid = { workspace = true, public = true, features = ["v5", "serde",

# Private third-party dependencies
derive_more = { workspace = true, features = ["display", "error", "from"] }
futures = { workspace = true }
itertools = { workspace = true, features = ["use_alloc"] }
regex = { workspace = true, features = ["std"] }
serde = { workspace = true, features = ["derive", "rc"] }
Expand Down
2 changes: 1 addition & 1 deletion libs/@blockprotocol/type-system/rust/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -336,7 +336,7 @@
//! - `utoipa` - Enables OpenAPI schema generation
//!
//! ## Workspace dependencies
#![cfg_attr(doc, doc = simple_mermaid::mermaid!("../docs/dependency-diagram.mmd"))]
#![doc = simple_mermaid::mermaid!("../docs/dependency-diagram.mmd")]

extern crate alloc;

Expand Down
11 changes: 6 additions & 5 deletions libs/@local/codec/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ harpc-wire-protocol = { workspace = true, public = true, optional = true }
postgres-types = { workspace = true, public = true, optional = true }

# Public third-party dependencies
bytes = { workspace = true, public = true }
bytes = { workspace = true, public = true, optional = true }
regex = { workspace = true, public = true, optional = true }
serde_core = { workspace = true, public = true, optional = true }
specta = { workspace = true, public = true, optional = true, features = ["derive"] }
Expand Down Expand Up @@ -45,15 +45,19 @@ name = "codegen"
required-features = ["codegen", "numeric"]

[features]
codegen = ["dep:specta"]
bytes = [
"dep:bytes",
"dep:serde_core",
"dep:serde",
"dep:derive-where",
"dep:serde_json",
"dep:tokio-util",
"dep:error-stack",
]
codegen = ["dep:specta"]
harpc = ["dep:bytes", "dep:harpc-wire-protocol", "dep:tokio-util", "dep:error-stack"]
numeric = ["dep:dashu-base", "dep:dashu-float", "dep:derive_more"]
postgres = ["dep:bytes", "dep:postgres-types"]
serde = [
"dep:serde_core",
"dep:serde",
Expand All @@ -62,9 +66,6 @@ serde = [
"dep:uuid",
"dep:derive_more",
]
harpc = ["dep:harpc-wire-protocol", "dep:tokio-util", "dep:error-stack"]
numeric = ["dep:dashu-base", "dep:dashu-float", "dep:derive_more"]
postgres = ["dep:postgres-types"]
utoipa = ["dep:utoipa"]

[lints]
Expand Down
23 changes: 22 additions & 1 deletion libs/@local/codec/src/lib.rs
Original file line number Diff line number Diff line change
@@ -1,10 +1,31 @@
#![cfg_attr(doc, doc = include_str!("../README.md"))]
//!
//! ## Workspace dependencies
#![cfg_attr(doc, doc = simple_mermaid::mermaid!("../docs/dependency-diagram.mmd"))]
#![doc = simple_mermaid::mermaid!("../docs/dependency-diagram.mmd")]

extern crate alloc;

// `postgres` and `utoipa` pull `postgres-types`/`bytes` and `utoipa`, but those are only consumed
// by the `Real` integration in the `numeric` module, i.e. at the *intersection* of `numeric` and
// the respective feature. Cargo activates a dependency on the feature *union*, so enabling one
// side without `numeric` pulls the dependency without compiling a user of it. Anchor those
// combinations so `cargo::unused_dependencies` (checked across the merge-queue powerset) stays
// quiet.
// `bytes` is additionally pulled by `postgres` (for the `Real` `ToSql` impl), but also used
// directly by the `bytes` and `harpc` modules. Only anchor it when none of its consumers
// compile.
#[cfg(all(
feature = "postgres",
not(feature = "numeric"),
not(feature = "bytes"),
not(feature = "harpc")
))]
use bytes as _;
#[cfg(all(feature = "postgres", not(feature = "numeric")))]
use postgres_types as _;
#[cfg(all(feature = "utoipa", not(feature = "numeric")))]
use utoipa as _;

#[cfg(feature = "bytes")]
pub mod bytes;
#[cfg(feature = "harpc")]
Expand Down
2 changes: 1 addition & 1 deletion libs/@local/codegen/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
//! Code generation utilities for the HASH ecosystem.
//!
//! ## Workspace dependencies
#![cfg_attr(doc, doc = simple_mermaid::mermaid!("../docs/dependency-diagram.mmd"))]
#![doc = simple_mermaid::mermaid!("../docs/dependency-diagram.mmd")]
#![expect(clippy::todo)]

use alloc::{borrow::Cow, collections::BTreeSet};
Expand Down
2 changes: 1 addition & 1 deletion libs/@local/effect-dns/hickory/src/lib.rs
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
//! # Effect-DNS Hickory
//!
//! ## Workspace dependencies
#![cfg_attr(doc, doc = simple_mermaid::mermaid!("../docs/dependency-diagram.mmd"))]
#![doc = simple_mermaid::mermaid!("../docs/dependency-diagram.mmd")]
#![allow(clippy::cfg_not_test, reason = "napi macro uses cfg(not(test))")]

use napi_derive::napi;
Expand Down
1 change: 0 additions & 1 deletion libs/@local/graph/api/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,6 @@ md-5 = { workspace = true }
mime = { workspace = true }
opentelemetry = { workspace = true }
opentelemetry-semantic-conventions = { workspace = true, features = ["semconv_experimental"] }
opentelemetry_sdk = { workspace = true, features = ["rt-tokio"] }
reqwest = { workspace = true }
sentry = { workspace = true }
serde = { workspace = true, features = ['derive'] }
Expand Down
2 changes: 1 addition & 1 deletion libs/@local/graph/api/src/lib.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#![cfg_attr(doc, doc = include_str!("../README.md"))]
//! ## Workspace dependencies
#![cfg_attr(doc, doc = simple_mermaid::mermaid!("../docs/dependency-diagram.mmd"))]
#![doc = simple_mermaid::mermaid!("../docs/dependency-diagram.mmd")]
#![feature(
// Language Features
impl_trait_in_assoc_type,
Expand Down
3 changes: 0 additions & 3 deletions libs/@local/graph/authorization/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,7 @@ error-stack = { workspace = true, public = true, features = ["unstable"] }
type-system = { workspace = true, public = true }

# Public third-party dependencies
futures-core = { workspace = true, public = true }
postgres-types = { workspace = true, public = true, features = ["derive", "with-uuid-1"], optional = true }
reqwest = { workspace = true, public = true, features = ["json", "stream"] }
specta = { workspace = true, public = true, optional = true, features = ["derive"] }

# Private workspace dependencies
Expand All @@ -26,7 +24,6 @@ cedar-policy-core = { workspace = true }
derive-where = { workspace = true }
derive_more = { workspace = true, features = ["display", "error", "from"] }
enum-iterator = { workspace = true }
futures = { workspace = true }
serde = { workspace = true, features = ["derive", "unstable"] }
serde_json = { workspace = true }
serde_plain = { workspace = true }
Expand Down
2 changes: 1 addition & 1 deletion libs/@local/graph/authorization/src/lib.rs
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
//! # HASH Graph Authorization
//!
//! ## Workspace dependencies
#![cfg_attr(doc, doc = simple_mermaid::mermaid!("../docs/dependency-diagram.mmd"))]
#![doc = simple_mermaid::mermaid!("../docs/dependency-diagram.mmd")]
#![feature(
// Language Features
exhaustive_patterns,
Expand Down
19 changes: 9 additions & 10 deletions libs/@local/graph/migrations-macros/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -13,16 +13,15 @@ proc-macro = true
# Workspace dependencies

# Third-party dependencies
convert_case = { workspace = true }
derive_more = { workspace = true, features = ["display", "error", "from"] }
proc-macro-error2 = { workspace = true }
proc-macro2 = { workspace = true }
quote = { workspace = true }
regex = { workspace = true }
sha2 = { workspace = true }
simple-mermaid = { workspace = true }
syn = { workspace = true }
walkdir = { workspace = true }
convert_case = { workspace = true }
derive_more = { workspace = true, features = ["display", "error", "from"] }
proc-macro2 = { workspace = true }
quote = { workspace = true }
regex = { workspace = true }
sha2 = { workspace = true }
simple-mermaid = { workspace = true }
syn = { workspace = true }
walkdir = { workspace = true }

[lints]
workspace = true
2 changes: 1 addition & 1 deletion libs/@local/graph/migrations-macros/src/lib.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
//!
//! ## Workspace dependencies
#![cfg_attr(doc, doc = simple_mermaid::mermaid!("../docs/dependency-diagram.mmd"))]
#![doc = simple_mermaid::mermaid!("../docs/dependency-diagram.mmd")]

extern crate alloc;

Expand Down
2 changes: 1 addition & 1 deletion libs/@local/graph/migrations/src/lib.rs
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
//! # HASH Graph Migrations
//!
//! ## Workspace dependencies
#![cfg_attr(doc, doc = simple_mermaid::mermaid!("../docs/dependency-diagram.mmd"))]
#![doc = simple_mermaid::mermaid!("../docs/dependency-diagram.mmd")]
#![feature(
// Language Features
impl_trait_in_assoc_type,
Expand Down
2 changes: 1 addition & 1 deletion libs/@local/graph/postgres-store/src/lib.rs
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
//! The entity-graph query-layer for the HASH datastore.
//!
//! ## Workspace dependencies
#![cfg_attr(doc, doc = simple_mermaid::mermaid!("../docs/dependency-diagram.mmd"))]
#![doc = simple_mermaid::mermaid!("../docs/dependency-diagram.mmd")]
#![feature(
// Language Features
impl_trait_in_assoc_type,
Expand Down
1 change: 1 addition & 0 deletions libs/@local/graph/store/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ hash-graph-types = { workspace = true, public = true }
hash-temporal-client = { workspace = true, public = true }

# Public third-party dependencies
futures-core = { workspace = true, public = true }
postgres-types = { workspace = true, public = true, optional = true, features = ["derive", "with-serde_json-1", "with-uuid-1"] }
specta = { workspace = true, public = true, optional = true, features = ["derive"] }
tokio-postgres = { workspace = true, public = true, optional = true }
Expand Down
2 changes: 1 addition & 1 deletion libs/@local/graph/store/src/lib.rs
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
//! # HASH Graph Store
//!
//! ## Workspace dependencies
#![cfg_attr(doc, doc = simple_mermaid::mermaid!("../docs/dependency-diagram.mmd"))]
#![doc = simple_mermaid::mermaid!("../docs/dependency-diagram.mmd")]
#![feature(
// Language Features
impl_trait_in_assoc_type
Expand Down
2 changes: 1 addition & 1 deletion libs/@local/graph/temporal-versioning/src/lib.rs
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
//! # HASH Graph Temporal Versioning
//!
//! ## Workspace dependencies
#![cfg_attr(doc, doc = simple_mermaid::mermaid!("../docs/dependency-diagram.mmd"))]
#![doc = simple_mermaid::mermaid!("../docs/dependency-diagram.mmd")]

mod axis;
mod bounds;
Expand Down
2 changes: 1 addition & 1 deletion libs/@local/graph/type-defs/src/lib.rs
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
//! # HASH Graph Type Defs
//!
//! ## Workspace dependencies
#![cfg_attr(doc, doc = simple_mermaid::mermaid!("../docs/dependency-diagram.mmd"))]
#![doc = simple_mermaid::mermaid!("../docs/dependency-diagram.mmd")]

pub mod error;
pub mod status_payloads {
Expand Down
Loading
Loading