Repository navigation
refactor: name the member directories for their role, not their crate - #10
Merged
Merged
Conversation
`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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Renames the workspace member directories to match the role, not the crate:
trash-core/→core/,trash-forensic/→forensic/No crate names change. The name lives in
Cargo.toml, not the folder, so nothing published moves —cargo metadatareports the same package names before and after.Why
CLAUDE.mdline 93 and ADR-0008 already say this: "two members:core/→<x>-coreandforensic/→<x>-forensic". A fleet survey found 8 of 70 workspaces had drifted to naming the directory after the crate. Nothing mechanical ever checked, so it was never caught in review.It isn't only tidiness — the duplication breaks tooling.
find -type d -name trash-forensicmatches two directories, the repo and the member inside it, so a script that resolves a repo by name silently reads the wrongCargo.toml. That happened twice while surveying this exact problem, and produced a confident "this repo has no workspace members" for five repos that have them.core/andforensic/cannot collide with a repo name.What else moved
A rename that only moves directories leaves silent breakage behind, so this also updates:
memberslist and inter-cratepath =deps../path dependenciespaths:filters in.github/workflows— these matter most: left stale they simply stop matching, and the workflow never fires again. Green by never running.URLs were deliberately left alone (the docs site lives at
securityronin.github.io/trash-forensic/, which a blanket substitution would have rewritten).Verification
Full test suite,
fmt --checkandclippy -D warningsclean;cargo metadataconfirms package names unchanged.🤖 Generated with Claude Code