workspace: remove dependencies that are declared but never used

Thirty four crates listed apsis-core or apsis-math without referencing it,
and apsis-kepler listed apsis-time and apsis-tle as well. Each was verified
removable by compiling with it taken out. An unused dependency still costs
build time and makes the dependency graph and the layer check report
relations that do not exist. The layer check now reports 104 edges, down
from 141.
This commit is contained in:
ApsisRS contributors 2026-09-26 23:36:38 +08:00
parent 8f74f8f97a
commit 4d45d4cf41
32 changed files with 10 additions and 86 deletions

45
Cargo.lock generated
View File

@ -6,7 +6,6 @@ version = 4
name = "apsis-access" name = "apsis-access"
version = "0.1.0" version = "0.1.0"
dependencies = [ dependencies = [
"apsis-core",
"apsis-coverage", "apsis-coverage",
"apsis-geodesy", "apsis-geodesy",
"apsis-math", "apsis-math",
@ -16,7 +15,6 @@ dependencies = [
name = "apsis-antenna" name = "apsis-antenna"
version = "0.1.0" version = "0.1.0"
dependencies = [ dependencies = [
"apsis-core",
"apsis-rf", "apsis-rf",
] ]
@ -24,7 +22,6 @@ dependencies = [
name = "apsis-atmosphere" name = "apsis-atmosphere"
version = "0.1.0" version = "0.1.0"
dependencies = [ dependencies = [
"apsis-core",
"apsis-rf", "apsis-rf",
] ]
@ -32,7 +29,6 @@ dependencies = [
name = "apsis-conflict" name = "apsis-conflict"
version = "0.1.0" version = "0.1.0"
dependencies = [ dependencies = [
"apsis-core",
"apsis-resource", "apsis-resource",
"apsis-schedule", "apsis-schedule",
"apsis-task", "apsis-task",
@ -42,9 +38,7 @@ dependencies = [
name = "apsis-constellation" name = "apsis-constellation"
version = "0.1.0" version = "0.1.0"
dependencies = [ dependencies = [
"apsis-core",
"apsis-kepler", "apsis-kepler",
"apsis-math",
"apsis-sgp4", "apsis-sgp4",
] ]
@ -52,7 +46,6 @@ dependencies = [
name = "apsis-coord" name = "apsis-coord"
version = "0.1.0" version = "0.1.0"
dependencies = [ dependencies = [
"apsis-core",
"apsis-frames", "apsis-frames",
"apsis-geodesy", "apsis-geodesy",
"apsis-math", "apsis-math",
@ -66,7 +59,6 @@ version = "0.1.0"
name = "apsis-coverage" name = "apsis-coverage"
version = "0.1.0" version = "0.1.0"
dependencies = [ dependencies = [
"apsis-core",
"apsis-geodesy", "apsis-geodesy",
"apsis-math", "apsis-math",
] ]
@ -83,7 +75,6 @@ dependencies = [
name = "apsis-ephemeris" name = "apsis-ephemeris"
version = "0.1.0" version = "0.1.0"
dependencies = [ dependencies = [
"apsis-core",
"apsis-kepler", "apsis-kepler",
"apsis-math", "apsis-math",
] ]
@ -91,15 +82,11 @@ dependencies = [
[[package]] [[package]]
name = "apsis-event" name = "apsis-event"
version = "0.1.0" version = "0.1.0"
dependencies = [
"apsis-core",
]
[[package]] [[package]]
name = "apsis-frames" name = "apsis-frames"
version = "0.1.0" version = "0.1.0"
dependencies = [ dependencies = [
"apsis-core",
"apsis-math", "apsis-math",
] ]
@ -107,17 +94,12 @@ dependencies = [
name = "apsis-geodesy" name = "apsis-geodesy"
version = "0.1.0" version = "0.1.0"
dependencies = [ dependencies = [
"apsis-core",
"apsis-math", "apsis-math",
] ]
[[package]] [[package]]
name = "apsis-handover" name = "apsis-handover"
version = "0.1.0" version = "0.1.0"
dependencies = [
"apsis-core",
"apsis-math",
]
[[package]] [[package]]
name = "apsis-interference" name = "apsis-interference"
@ -131,7 +113,6 @@ dependencies = [
name = "apsis-isl" name = "apsis-isl"
version = "0.1.0" version = "0.1.0"
dependencies = [ dependencies = [
"apsis-core",
"apsis-math", "apsis-math",
] ]
@ -139,10 +120,7 @@ dependencies = [
name = "apsis-kepler" name = "apsis-kepler"
version = "0.1.0" version = "0.1.0"
dependencies = [ dependencies = [
"apsis-core",
"apsis-math", "apsis-math",
"apsis-time",
"apsis-tle",
] ]
[[package]] [[package]]
@ -167,7 +145,6 @@ version = "0.1.0"
name = "apsis-maneuver" name = "apsis-maneuver"
version = "0.1.0" version = "0.1.0"
dependencies = [ dependencies = [
"apsis-core",
"apsis-kepler", "apsis-kepler",
"apsis-math", "apsis-math",
] ]
@ -180,8 +157,6 @@ version = "0.1.0"
name = "apsis-mesh" name = "apsis-mesh"
version = "0.1.0" version = "0.1.0"
dependencies = [ dependencies = [
"apsis-core",
"apsis-math",
"apsis-topology", "apsis-topology",
] ]
@ -197,29 +172,21 @@ dependencies = [
name = "apsis-orbit" name = "apsis-orbit"
version = "0.1.0" version = "0.1.0"
dependencies = [ dependencies = [
"apsis-core",
"apsis-ephemeris", "apsis-ephemeris",
"apsis-kepler", "apsis-kepler",
"apsis-maneuver", "apsis-maneuver",
"apsis-math", "apsis-math",
"apsis-sgp4", "apsis-sgp4",
"apsis-time",
"apsis-tle", "apsis-tle",
] ]
[[package]] [[package]]
name = "apsis-output" name = "apsis-output"
version = "0.1.0" version = "0.1.0"
dependencies = [
"apsis-core",
]
[[package]] [[package]]
name = "apsis-resource" name = "apsis-resource"
version = "0.1.0" version = "0.1.0"
dependencies = [
"apsis-core",
]
[[package]] [[package]]
name = "apsis-rf" name = "apsis-rf"
@ -232,8 +199,6 @@ dependencies = [
name = "apsis-routing" name = "apsis-routing"
version = "0.1.0" version = "0.1.0"
dependencies = [ dependencies = [
"apsis-core",
"apsis-math",
"apsis-topology", "apsis-topology",
] ]
@ -287,7 +252,6 @@ dependencies = [
name = "apsis-scenario" name = "apsis-scenario"
version = "0.1.0" version = "0.1.0"
dependencies = [ dependencies = [
"apsis-core",
"apsis-resource", "apsis-resource",
"apsis-task", "apsis-task",
] ]
@ -296,7 +260,6 @@ dependencies = [
name = "apsis-schedule" name = "apsis-schedule"
version = "0.1.0" version = "0.1.0"
dependencies = [ dependencies = [
"apsis-core",
"apsis-resource", "apsis-resource",
"apsis-task", "apsis-task",
] ]
@ -306,7 +269,6 @@ name = "apsis-scheduler"
version = "0.1.0" version = "0.1.0"
dependencies = [ dependencies = [
"apsis-conflict", "apsis-conflict",
"apsis-core",
"apsis-resource", "apsis-resource",
"apsis-schedule", "apsis-schedule",
"apsis-task", "apsis-task",
@ -316,7 +278,6 @@ dependencies = [
name = "apsis-sgp4" name = "apsis-sgp4"
version = "0.1.0" version = "0.1.0"
dependencies = [ dependencies = [
"apsis-core",
"apsis-math", "apsis-math",
"apsis-time", "apsis-time",
"apsis-tle", "apsis-tle",
@ -326,7 +287,6 @@ dependencies = [
name = "apsis-sim" name = "apsis-sim"
version = "0.1.0" version = "0.1.0"
dependencies = [ dependencies = [
"apsis-core",
"apsis-event", "apsis-event",
"apsis-output", "apsis-output",
"apsis-resource", "apsis-resource",
@ -341,7 +301,6 @@ dependencies = [
name = "apsis-sim-engine" name = "apsis-sim-engine"
version = "0.1.0" version = "0.1.0"
dependencies = [ dependencies = [
"apsis-core",
"apsis-event", "apsis-event",
] ]
@ -349,7 +308,6 @@ dependencies = [
name = "apsis-task" name = "apsis-task"
version = "0.1.0" version = "0.1.0"
dependencies = [ dependencies = [
"apsis-core",
"apsis-resource", "apsis-resource",
] ]
@ -357,7 +315,6 @@ dependencies = [
name = "apsis-time" name = "apsis-time"
version = "0.1.0" version = "0.1.0"
dependencies = [ dependencies = [
"apsis-core",
"apsis-leap", "apsis-leap",
] ]
@ -365,7 +322,6 @@ dependencies = [
name = "apsis-tle" name = "apsis-tle"
version = "0.1.0" version = "0.1.0"
dependencies = [ dependencies = [
"apsis-core",
"apsis-time", "apsis-time",
] ]
@ -373,7 +329,6 @@ dependencies = [
name = "apsis-topology" name = "apsis-topology"
version = "0.1.0" version = "0.1.0"
dependencies = [ dependencies = [
"apsis-core",
"apsis-math", "apsis-math",
] ]

View File

@ -11,7 +11,6 @@ publish = false
workspace = true workspace = true
[dependencies] [dependencies]
apsis-core.workspace = true
apsis-math.workspace = true apsis-math.workspace = true
apsis-geodesy.workspace = true apsis-geodesy.workspace = true
apsis-coverage.workspace = true apsis-coverage.workspace = true

View File

@ -11,7 +11,5 @@ publish = false
workspace = true workspace = true
[dependencies] [dependencies]
apsis-core.workspace = true
apsis-math.workspace = true
apsis-kepler.workspace = true apsis-kepler.workspace = true
apsis-sgp4.workspace = true apsis-sgp4.workspace = true

View File

@ -11,6 +11,5 @@ publish = false
workspace = true workspace = true
[dependencies] [dependencies]
apsis-core.workspace = true
apsis-math.workspace = true apsis-math.workspace = true
apsis-geodesy.workspace = true apsis-geodesy.workspace = true

View File

@ -11,5 +11,3 @@ publish = false
workspace = true workspace = true
[dependencies] [dependencies]
apsis-core.workspace = true
apsis-math.workspace = true

View File

@ -11,5 +11,4 @@ publish = false
workspace = true workspace = true
[dependencies] [dependencies]
apsis-core.workspace = true
apsis-math.workspace = true apsis-math.workspace = true

View File

@ -11,6 +11,4 @@ publish = false
workspace = true workspace = true
[dependencies] [dependencies]
apsis-core.workspace = true
apsis-math.workspace = true
apsis-topology.workspace = true apsis-topology.workspace = true

View File

@ -11,6 +11,4 @@ publish = false
workspace = true workspace = true
[dependencies] [dependencies]
apsis-core.workspace = true
apsis-math.workspace = true
apsis-topology.workspace = true apsis-topology.workspace = true

View File

@ -11,5 +11,4 @@ publish = false
workspace = true workspace = true
[dependencies] [dependencies]
apsis-core.workspace = true
apsis-math.workspace = true apsis-math.workspace = true

View File

@ -11,7 +11,6 @@ publish = false
workspace = true workspace = true
[dependencies] [dependencies]
apsis-core.workspace = true
apsis-resource.workspace = true apsis-resource.workspace = true
apsis-task.workspace = true apsis-task.workspace = true
apsis-schedule.workspace = true apsis-schedule.workspace = true

View File

@ -11,4 +11,3 @@ publish = false
workspace = true workspace = true
[dependencies] [dependencies]
apsis-core.workspace = true

View File

@ -11,6 +11,5 @@ publish = false
workspace = true workspace = true
[dependencies] [dependencies]
apsis-core.workspace = true
apsis-resource.workspace = true apsis-resource.workspace = true
apsis-task.workspace = true apsis-task.workspace = true

View File

@ -11,7 +11,6 @@ publish = false
workspace = true workspace = true
[dependencies] [dependencies]
apsis-core.workspace = true
apsis-resource.workspace = true apsis-resource.workspace = true
apsis-task.workspace = true apsis-task.workspace = true
apsis-schedule.workspace = true apsis-schedule.workspace = true

View File

@ -11,5 +11,4 @@ publish = false
workspace = true workspace = true
[dependencies] [dependencies]
apsis-core.workspace = true
apsis-resource.workspace = true apsis-resource.workspace = true

View File

@ -11,7 +11,6 @@ publish = false
workspace = true workspace = true
[dependencies] [dependencies]
apsis-core.workspace = true
apsis-math.workspace = true apsis-math.workspace = true
[dev-dependencies] [dev-dependencies]

View File

@ -11,7 +11,4 @@ publish = false
workspace = true workspace = true
[dependencies] [dependencies]
apsis-core.workspace = true
apsis-math.workspace = true apsis-math.workspace = true
apsis-time.workspace = true
apsis-tle.workspace = true

View File

@ -11,6 +11,5 @@ publish = false
workspace = true workspace = true
[dependencies] [dependencies]
apsis-core.workspace = true
apsis-math.workspace = true apsis-math.workspace = true
apsis-kepler.workspace = true apsis-kepler.workspace = true

View File

@ -11,9 +11,7 @@ publish = false
workspace = true workspace = true
[dependencies] [dependencies]
apsis-core.workspace = true
apsis-math.workspace = true apsis-math.workspace = true
apsis-time.workspace = true
apsis-tle.workspace = true apsis-tle.workspace = true
apsis-sgp4.workspace = true apsis-sgp4.workspace = true
apsis-kepler.workspace = true apsis-kepler.workspace = true

View File

@ -11,7 +11,6 @@ publish = false
workspace = true workspace = true
[dependencies] [dependencies]
apsis-core.workspace = true
apsis-math.workspace = true apsis-math.workspace = true
apsis-tle.workspace = true apsis-tle.workspace = true
apsis-time.workspace = true apsis-time.workspace = true

View File

@ -11,5 +11,4 @@ publish = false
workspace = true workspace = true
[dependencies] [dependencies]
apsis-core.workspace = true
apsis-time.workspace = true apsis-time.workspace = true

View File

@ -11,7 +11,6 @@ publish = false
workspace = true workspace = true
[dependencies] [dependencies]
apsis-core.workspace = true
apsis-math.workspace = true apsis-math.workspace = true
apsis-geodesy.workspace = true apsis-geodesy.workspace = true
apsis-frames.workspace = true apsis-frames.workspace = true

View File

@ -11,5 +11,4 @@ publish = false
workspace = true workspace = true
[dependencies] [dependencies]
apsis-core.workspace = true
apsis-math.workspace = true apsis-math.workspace = true

View File

@ -11,5 +11,4 @@ publish = false
workspace = true workspace = true
[dependencies] [dependencies]
apsis-core.workspace = true
apsis-math.workspace = true apsis-math.workspace = true

View File

@ -11,5 +11,4 @@ publish = false
workspace = true workspace = true
[dependencies] [dependencies]
apsis-core.workspace = true
apsis-leap.workspace = true apsis-leap.workspace = true

View File

@ -11,5 +11,4 @@ publish = false
workspace = true workspace = true
[dependencies] [dependencies]
apsis-core.workspace = true
apsis-rf.workspace = true apsis-rf.workspace = true

View File

@ -11,5 +11,4 @@ publish = false
workspace = true workspace = true
[dependencies] [dependencies]
apsis-core.workspace = true
apsis-rf.workspace = true apsis-rf.workspace = true

View File

@ -11,4 +11,3 @@ publish = false
workspace = true workspace = true
[dependencies] [dependencies]
apsis-core.workspace = true

View File

@ -11,4 +11,3 @@ publish = false
workspace = true workspace = true
[dependencies] [dependencies]
apsis-core.workspace = true

View File

@ -11,6 +11,5 @@ publish = false
workspace = true workspace = true
[dependencies] [dependencies]
apsis-core.workspace = true
apsis-resource.workspace = true apsis-resource.workspace = true
apsis-task.workspace = true apsis-task.workspace = true

View File

@ -11,5 +11,4 @@ publish = false
workspace = true workspace = true
[dependencies] [dependencies]
apsis-core.workspace = true
apsis-event.workspace = true apsis-event.workspace = true

View File

@ -11,7 +11,6 @@ publish = false
workspace = true workspace = true
[dependencies] [dependencies]
apsis-core.workspace = true
apsis-resource.workspace = true apsis-resource.workspace = true
apsis-task.workspace = true apsis-task.workspace = true
apsis-schedule.workspace = true apsis-schedule.workspace = true

View File

@ -41,13 +41,19 @@ index(B) > index(A) 违规(反向依赖)
## 全局基准 ## 全局基准
`apsis-core`(错误、常量、单位标记)与 `apsis-math`(`Vec3`、`Mat3`、 `apsis-core`(通用错误、常量、单位标记)与 `apsis-math`(`Vec3`、
`Quat`)被各层共用,包括最左的 `foundation` 之外的所有层。它们本身在 `Mat3`、`Quat`)被各层共用。它们本身在 `foundation` 中,所以"只向左依赖"
`foundation` 中,所以"只向左依赖"已经允许任何层使用它们,无需特例。 已经允许任何层使用它们,无需特例。
这与"层内基准"不同:`apsis-core` 也是 `foundation` 内的基准,但它的可用 这与"层内基准"不同:`apsis-core` 也是 `foundation` 内的基准,但它的可用
范围是整个工作区,而不只是同层。 范围是整个工作区,而不只是同层。
**只有真正使用的依赖才声明。** `apsis-core` 与 `apsis-math` 可以被任何
crate 使用,但一个不引用它们的 crate 不应把它们写进清单:未使用的依赖会
拖慢编译、让 `cargo tree` 与分层检查产生噪声,并让"谁依赖什么"失真。
需要时再加,是一条随时可走的单行改动。`scripts/check-layers.sh` 报告的
边数因此是真实的使用关系,而不是一份预留清单。
## 层内门面 ## 层内门面
每层以一个门面 crate 作为整合点: 每层以一个门面 crate 作为整合点:
@ -80,4 +86,4 @@ bash scripts/check-layers.sh
``` ```
脚本输出检查过的依赖边数,并在发现反向依赖时逐条列出后以退出码 1 结束。 脚本输出检查过的依赖边数,并在发现反向依赖时逐条列出后以退出码 1 结束。
对当前工作区,它检查 141 条边,全部方向正确。 对当前工作区,它检查 104 条边,全部方向正确。