refactor(common): move scanner/heal contracts into dedicated crates (#6615)

refactor(common): move scanner/heal domain contracts into dedicated crates

crates/common carried ~5.6K lines of scanner/heal domain code (metrics.rs,
heal_channel.rs, last_minute.rs) parked there to break dependency cycles;
every scanner type change recompiled all 11 rustfs-common dependents.

Pure move, zero renames, zero shape changes (backlog#1843):

- New crate rustfs-heal-contracts receives heal_channel.
- New crate rustfs-scanner-contracts receives metrics, last_minute, and the
  GLOBAL_INIT_TIME trio (metrics::report() reads it as the current-cycle
  fallback, so it must live below the shim to avoid a dependency cycle).
- rustfs-common re-exports everything at the old paths as a transitional
  shim; consumers migrate crate by crate, then the shims are deleted.
This commit is contained in:
Zhengchao An
2026-08-26 10:49:12 +08:00
committed by GitHub
parent 37a50f1e5d
commit df5ae13fd0
14 changed files with 204 additions and 39 deletions
Generated
+26 -5
View File
@@ -9390,13 +9390,10 @@ dependencies = [
name = "rustfs-common"
version = "1.0.0-rc.3"
dependencies = [
"chrono",
"hotpath",
"jiff",
"metrics",
"rmp-serde",
"serde",
"serde_json",
"rustfs-heal-contracts",
"rustfs-scanner-contracts",
"smallvec",
"tokio",
"tonic",
@@ -9684,6 +9681,15 @@ dependencies = [
"walkdir",
]
[[package]]
name = "rustfs-heal-contracts"
version = "1.0.0-rc.3"
dependencies = [
"serde",
"tokio",
"uuid",
]
[[package]]
name = "rustfs-iam"
version = "1.0.0-rc.3"
@@ -10416,6 +10422,21 @@ dependencies = [
"uuid",
]
[[package]]
name = "rustfs-scanner-contracts"
version = "1.0.0-rc.3"
dependencies = [
"chrono",
"jiff",
"metrics",
"rmp-serde",
"rustfs-heal-contracts",
"serde",
"serde_json",
"tokio",
"uuid",
]
[[package]]
name = "rustfs-security-governance"
version = "1.0.0-rc.3"