Skip to content

Commit 7e55bff

Browse files
committed
refactor: name the member directories for their role, not their crate
`trash-core/` -> `core/`, `trash-forensic/` -> `forensic/`. No crate name changes, so nothing published moves -- the name lives in Cargo.toml, not in the folder. This is what CLAUDE.md line 93 and ADR-0008 have always said ("two members: `core/` -> `<x>-core` and `forensic/` -> `<x>-forensic`"). A fleet survey found 8 of 70 workspaces had drifted to naming the directory after the crate; nothing mechanical ever checked, so 70 code reviews did not catch it. The duplication is not only untidy, it breaks tooling. `find -type d -name trash-forensic` matches TWO directories -- the repo and the member inside it -- so a script that resolves a repo by name silently reads the wrong Cargo.toml. That happened twice while surveying this very problem, and produced a confident "this repo has no workspace members" for five repos that have them. `core/` and `forensic/` cannot collide with a repo name. Updated beyond the two `git mv`s, because a rename that only moves directories leaves silent breakage behind: - root Cargo.toml: members list and the inter-crate `path = "core"` - fuzz/Cargo.toml: both `../` path deps - .github/workflows/fuzz.yml: the `paths:` filters, which would otherwise stop matching and the fuzz workflow would simply never fire again -- green by never running - docs/PRD.md and all eight ADRs, which cite evidence by file path URLs were deliberately left alone: the docs site is `securityronin.github.io/trash-forensic/`, and a blanket substitution would have rewritten it. 84 tests across 6 targets pass; fmt, clippy -D warnings and mkdocs --strict clean; the fuzz manifest still resolves.
1 parent c48b965 commit 7e55bff

96 files changed

Lines changed: 15427 additions & 27 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎.git-msg.tmp‎

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
refactor: name the member directories for their role, not their crate
2+
3+
`trash-core/` -> `core/`, `trash-forensic/` -> `forensic/`. No crate name
4+
changes, so nothing published moves -- the name lives in Cargo.toml, not in the
5+
folder.
6+
7+
This is what CLAUDE.md line 93 and ADR-0008 have always said ("two members:
8+
`core/` -> `<x>-core` and `forensic/` -> `<x>-forensic`"). A fleet survey found 8
9+
of 70 workspaces had drifted to naming the directory after the crate; nothing
10+
mechanical ever checked, so 70 code reviews did not catch it.
11+
12+
The duplication is not only untidy, it breaks tooling. `find -type d -name
13+
trash-forensic` matches TWO directories -- the repo and the member inside it --
14+
so a script that resolves a repo by name silently reads the wrong Cargo.toml.
15+
That happened twice while surveying this very problem, and produced a confident
16+
"this repo has no workspace members" for five repos that have them. `core/` and
17+
`forensic/` cannot collide with a repo name.
18+
19+
Updated beyond the two `git mv`s, because a rename that only moves directories
20+
leaves silent breakage behind:
21+
22+
- root Cargo.toml: members list and the inter-crate `path = "core"`
23+
- fuzz/Cargo.toml: both `../` path deps
24+
- .github/workflows/fuzz.yml: the `paths:` filters, which would otherwise stop
25+
matching and the fuzz workflow would simply never fire again -- green by
26+
never running
27+
- docs/PRD.md and all eight ADRs, which cite evidence by file path
28+
29+
URLs were deliberately left alone: the docs site is
30+
`securityronin.github.io/trash-forensic/`, and a blanket substitution would have
31+
rewritten it.
32+
33+
84 tests across 6 targets pass; fmt, clippy -D warnings and mkdocs --strict clean;
34+
the fuzz manifest still resolves.

‎.github/workflows/fuzz.yml‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@ name: fuzz
33
on:
44
push:
55
paths:
6-
- "trash-core/**"
7-
- "trash-forensic/**"
6+
- "core/**"
7+
- "forensic/**"
88
- "fuzz/**"
99
- ".github/workflows/fuzz.yml"
1010
pull_request:

‎Cargo.toml‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[workspace]
22
resolver = "2"
3-
members = ["trash-core", "trash-forensic"]
3+
members = ["core", "forensic"]
44

55
# Single source of truth for fields shared by every member (DRY): bump version /
66
# MSRV / license here once; members inherit via `field.workspace = true`.
@@ -15,7 +15,7 @@ repository = "https://github.com/SecurityRonin/trash-forensic"
1515
# members write `dep.workspace = true`. The inter-crate `trash-core`
1616
# version lives here too, so a bump touches one line.
1717
[workspace.dependencies]
18-
trash-core = { path = "trash-core", version = "0.3.2" }
18+
trash-core = { path = "core", version = "0.3.2" }
1919
forensicnomicon = "1"
2020
chrono = { version = "0.4", default-features = false, features = ["std"] }
2121
thiserror = "2"
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.

0 commit comments

Comments
 (0)