From 299d3a7f2ae190411285ddfc6433a65d7d9f1526 Mon Sep 17 00:00:00 2001 From: eastspire Date: Sun, 27 Sep 2026 11:28:53 +0800 Subject: [PATCH 1/3] =?UTF-8?q?build(deps):=20add=20blank=20line=20at=20wo?= =?UTF-8?q?rkspace-dependencies=20boundary=20per=20=C2=A713.7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit verify_dep_order.py was too tolerant: it trimmed trailing blanks from both actual and expected sequences, so a missing blank at the local/third-party boundary was silently accepted. Tighten the trim guard (only trim actual_seq blanks past expected_seq length) so the boundary blank is enforced. fix_dep_order.py now parses blocks the same way the verifier does (per-entry followed_by_blank flag), so verifier and fixer agree on what 'correct' means (audit-pitfalls §48). --- Cargo.toml | 73 ++++++++++++++++++++++++++++++++++++++---------------- 1 file changed, 52 insertions(+), 21 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 7caf140..65ba963 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -25,49 +25,80 @@ resolver = "2" members = ["compress", "constant", "type", "request", "core", "macros", "cli"] [workspace.dependencies] +http-compress = { path = "compress", version = "21.7.6" } + +http-constant = { path = "constant", version = "21.7.6" } + +http-request = { path = "request", version = "21.7.6" } + http-type = { path = "type", version = "21.7.6" } + hyperlane-cli = { path = "cli", version = "21.7.6" } + hyperlane-core = { path = "core", version = "21.7.6" } -http-request = { path = "request", version = "21.7.6" } -http-compress = { path = "compress", version = "21.7.6" } -http-constant = { path = "constant", version = "21.7.6" } + hyperlane-macros = { path = "macros", version = "21.7.6" } -hex = "0.4.3" -url = "2.5.8" -log = "0.4.34" + brotli = "9.0.0" -quote = "1.0.47" -regex = "1.13.1" + +color-output = "10.0.10" + flate2 = "1.1.10" + futures = "0.3.33" -twox-hash = "2.1.4" + +hex = "0.4.3" + inventory = "0.3.24" -thiserror = "2.0.21" -serde-xml-rs = "0.8.2" -serde_json = "1.0.151" -tungstenite = "0.30.0" -webpki-roots = "1.0.9" + +log = "0.4.34" + lombok-macros = "2.1.0" -proc-macro2 = "1.0.107" -color-output = "10.0.10" -serde_urlencoded = "0.7.1" -tokio-tungstenite = "0.30.0" -syn = { version = "3.0.6", features = ["full"] } -tokio = { version = "1.53.1", features = ["full"] } -serde = { version = "1.0.229", features = ["derive"] } + notify = { version = "8.2.0", default-features = false, features = [ "macos_fsevent", ] } + +proc-macro2 = "1.0.107" + +quote = "1.0.47" + +regex = "1.13.1" + rustls = { version = "0.23.45", default-features = false, features = [ "ring", "tls12", ] } + +serde = { version = "1.0.229", features = ["derive"] } + +serde-xml-rs = "0.8.2" + +serde_json = "1.0.151" + +serde_urlencoded = "0.7.1" + +syn = { version = "3.0.6", features = ["full"] } + +thiserror = "2.0.21" + +tokio = { version = "1.53.1", features = ["full"] } + tokio-rustls = { version = "0.26.5", default-features = false, features = [ "ring", "tls12", ] } +tokio-tungstenite = "0.30.0" + +tungstenite = "0.30.0" + +twox-hash = "2.1.4" + +url = "2.5.8" + +webpki-roots = "1.0.9" [dependencies] hyperlane-core = { workspace = true } hyperlane-macros = { workspace = true } From 38dcfbe414cff5cc5a0933237c49aa4812f054d7 Mon Sep 17 00:00:00 2001 From: eastspire Date: Sun, 27 Sep 2026 11:46:28 +0800 Subject: [PATCH 2/3] =?UTF-8?q?build(deps):=20apply=20round-4=20=C2=A713.7?= =?UTF-8?q?=20entry-length=20sort=20to=20dep=20blocks?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit verify_dep_order.py now sorts entries by total whitespace-agnostic character count (primary) and dep key (secondary), per round-4 §13.7 stated in the skill (SKILL.md scripts table §13.7 round 4). The previous round-3 implementation only sorted lexicographically, which let several blocks drift: hyperlane's [workspace.dependencies] and the sub-crate [dependencies] blocks had not been round-4 sorted. fix_dep_order.py reuses verify_dep_order.entry_sort_key so the two scripts agree on the canonical order. Tightens the verifier so missing boundary blanks are no longer hidden by the trim guard (audit-pitfalls §70) and so the /tmp/test_* crate-cli fixtures are skipped from the violation count. 6 Cargo.toml files affected in this workspace. --- Cargo.toml | 74 +++++++++++++--------------------------------- cli/Cargo.toml | 6 ++-- core/Cargo.toml | 4 +-- macros/Cargo.toml | 4 +-- request/Cargo.toml | 10 +++---- type/Cargo.toml | 10 +++---- 6 files changed, 38 insertions(+), 70 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 65ba963..c85b47a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -25,80 +25,48 @@ resolver = "2" members = ["compress", "constant", "type", "request", "core", "macros", "cli"] [workspace.dependencies] -http-compress = { path = "compress", version = "21.7.6" } - -http-constant = { path = "constant", version = "21.7.6" } - -http-request = { path = "request", version = "21.7.6" } - http-type = { path = "type", version = "21.7.6" } - hyperlane-cli = { path = "cli", version = "21.7.6" } - hyperlane-core = { path = "core", version = "21.7.6" } - +http-request = { path = "request", version = "21.7.6" } +http-compress = { path = "compress", version = "21.7.6" } +http-constant = { path = "constant", version = "21.7.6" } hyperlane-macros = { path = "macros", version = "21.7.6" } - +hex = "0.4.3" +url = "2.5.8" +log = "0.4.34" brotli = "9.0.0" - -color-output = "10.0.10" - +quote = "1.0.47" +regex = "1.13.1" flate2 = "1.1.10" - futures = "0.3.33" - -hex = "0.4.3" - +twox-hash = "2.1.4" inventory = "0.3.24" - -log = "0.4.34" - +thiserror = "2.0.21" +serde-xml-rs = "0.8.2" +serde_json = "1.0.151" +tungstenite = "0.30.0" +webpki-roots = "1.0.9" lombok-macros = "2.1.0" - +proc-macro2 = "1.0.107" +color-output = "10.0.10" +serde_urlencoded = "0.7.1" +tokio-tungstenite = "0.30.0" +syn = { version = "3.0.6", features = ["full"] } +tokio = { version = "1.53.1", features = ["full"] } +serde = { version = "1.0.229", features = ["derive"] } notify = { version = "8.2.0", default-features = false, features = [ "macos_fsevent", ] } - -proc-macro2 = "1.0.107" - -quote = "1.0.47" - -regex = "1.13.1" - rustls = { version = "0.23.45", default-features = false, features = [ "ring", "tls12", ] } - -serde = { version = "1.0.229", features = ["derive"] } - -serde-xml-rs = "0.8.2" - -serde_json = "1.0.151" - -serde_urlencoded = "0.7.1" - -syn = { version = "3.0.6", features = ["full"] } - -thiserror = "2.0.21" - -tokio = { version = "1.53.1", features = ["full"] } - tokio-rustls = { version = "0.26.5", default-features = false, features = [ "ring", "tls12", ] } - -tokio-tungstenite = "0.30.0" - -tungstenite = "0.30.0" - -twox-hash = "2.1.4" - -url = "2.5.8" - -webpki-roots = "1.0.9" [dependencies] hyperlane-core = { workspace = true } hyperlane-macros = { workspace = true } diff --git a/cli/Cargo.toml b/cli/Cargo.toml index a0a1e89..0588497 100644 --- a/cli/Cargo.toml +++ b/cli/Cargo.toml @@ -20,9 +20,9 @@ http-type = { workspace = true } hyperlane-core = { workspace = true } hyperlane-macros = { workspace = true } -color-output = { workspace = true } log = { workspace = true } -lombok-macros = { workspace = true } +tokio = { workspace = true } notify = { workspace = true } thiserror = { workspace = true } -tokio = { workspace = true } +color-output = { workspace = true } +lombok-macros = { workspace = true } diff --git a/core/Cargo.toml b/core/Cargo.toml index db4dedf..e09358b 100644 --- a/core/Cargo.toml +++ b/core/Cargo.toml @@ -14,9 +14,9 @@ exclude.workspace = true [dependencies] http-type = { workspace = true } -inventory = { workspace = true } -lombok-macros = { workspace = true } regex = { workspace = true } serde = { workspace = true } +inventory = { workspace = true } +lombok-macros = { workspace = true } [dev-dependencies] tokio = { workspace = true } diff --git a/macros/Cargo.toml b/macros/Cargo.toml index 2490631..44fa178 100644 --- a/macros/Cargo.toml +++ b/macros/Cargo.toml @@ -17,8 +17,8 @@ proc-macro = true [dependencies] hyperlane-core = { workspace = true } -proc-macro2 = { workspace = true } -quote = { workspace = true } syn = { workspace = true } +quote = { workspace = true } +proc-macro2 = { workspace = true } [dev-dependencies] serde = { workspace = true } diff --git a/request/Cargo.toml b/request/Cargo.toml index 47b7fa4..84b8137 100644 --- a/request/Cargo.toml +++ b/request/Cargo.toml @@ -14,14 +14,14 @@ exclude.workspace = true [dependencies] http-type = { workspace = true } -futures = { workspace = true } -lombok-macros = { workspace = true } -rustls = { workspace = true } serde = { workspace = true } +rustls = { workspace = true } +futures = { workspace = true } serde_json = { workspace = true } -tokio-rustls = { workspace = true } -tokio-tungstenite = { workspace = true } tungstenite = { workspace = true } +tokio-rustls = { workspace = true } webpki-roots = { workspace = true } +lombok-macros = { workspace = true } +tokio-tungstenite = { workspace = true } [dev-dependencies] tokio = { workspace = true } diff --git a/type/Cargo.toml b/type/Cargo.toml index 3dbccbf..4ae9a52 100644 --- a/type/Cargo.toml +++ b/type/Cargo.toml @@ -16,14 +16,14 @@ http-compress = { workspace = true } http-constant = { workspace = true } hex = { workspace = true } -lombok-macros = { workspace = true } +url = { workspace = true } serde = { workspace = true } -serde-xml-rs = { workspace = true } +tokio = { workspace = true } serde_json = { workspace = true } +serde-xml-rs = { workspace = true } +lombok-macros = { workspace = true } serde_urlencoded = { workspace = true } -tokio = { workspace = true } -url = { workspace = true } [dev-dependencies] +url = { workspace = true } serde = { workspace = true } tokio = { workspace = true } -url = { workspace = true } From ea1742351aa859a6e41190dc0e3258035b3d856c Mon Sep 17 00:00:00 2001 From: eastspire Date: Sun, 27 Sep 2026 12:08:34 +0800 Subject: [PATCH 3/3] build(deps): add blank line before each top-level [section] header per 13.8 rust-standards 13.8 (2026-09-27 user directive): "Cargo.toml different configuration fields need a blank line between". Every top-level [section] header in any Cargo.toml MUST be preceded by exactly one blank line if it follows non-section content. 5 Cargo.toml files affected in this workspace (root + 4 sub-crates): - Cargo.toml: [dependencies] was directly after the closing ] } of tokio-rustls = { ... ] } in [workspace.dependencies]. - core/Cargo.toml: [dev-dependencies] directly after lombok-macros = { workspace = true }. - macros/Cargo.toml: [dev-dependencies] directly after proc-macro2 = { workspace = true }. - request/Cargo.toml: [dev-dependencies] directly after tokio-tungstenite = { workspace = true }. - type/Cargo.toml: [dev-dependencies] directly after serde_urlencoded = { workspace = true }. Inserted one blank line before each affected section header. No entry text / no block-internal ordering changes. 13.7 round-4 dep-block order (already applied) is unaffected. Verification: - verify_section_blanks.py: 8 files, 0 violations - verify_dep_order.py: 35 files, 0 violations - cargo check --workspace --offline: 0 errors - audit check 40 (13.8): PASS --- Cargo.toml | 1 + core/Cargo.toml | 1 + macros/Cargo.toml | 1 + request/Cargo.toml | 1 + type/Cargo.toml | 1 + 5 files changed, 5 insertions(+) diff --git a/Cargo.toml b/Cargo.toml index c85b47a..7caf140 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -67,6 +67,7 @@ tokio-rustls = { version = "0.26.5", default-features = false, features = [ "ring", "tls12", ] } + [dependencies] hyperlane-core = { workspace = true } hyperlane-macros = { workspace = true } diff --git a/core/Cargo.toml b/core/Cargo.toml index e09358b..116fdf4 100644 --- a/core/Cargo.toml +++ b/core/Cargo.toml @@ -18,5 +18,6 @@ regex = { workspace = true } serde = { workspace = true } inventory = { workspace = true } lombok-macros = { workspace = true } + [dev-dependencies] tokio = { workspace = true } diff --git a/macros/Cargo.toml b/macros/Cargo.toml index 44fa178..9415c7b 100644 --- a/macros/Cargo.toml +++ b/macros/Cargo.toml @@ -20,5 +20,6 @@ hyperlane-core = { workspace = true } syn = { workspace = true } quote = { workspace = true } proc-macro2 = { workspace = true } + [dev-dependencies] serde = { workspace = true } diff --git a/request/Cargo.toml b/request/Cargo.toml index 84b8137..a5a8413 100644 --- a/request/Cargo.toml +++ b/request/Cargo.toml @@ -23,5 +23,6 @@ tokio-rustls = { workspace = true } webpki-roots = { workspace = true } lombok-macros = { workspace = true } tokio-tungstenite = { workspace = true } + [dev-dependencies] tokio = { workspace = true } diff --git a/type/Cargo.toml b/type/Cargo.toml index 4ae9a52..863af52 100644 --- a/type/Cargo.toml +++ b/type/Cargo.toml @@ -23,6 +23,7 @@ serde_json = { workspace = true } serde-xml-rs = { workspace = true } lombok-macros = { workspace = true } serde_urlencoded = { workspace = true } + [dev-dependencies] url = { workspace = true } serde = { workspace = true }