Skip to content

Move the format crates from plugins/ to crates/formats/ - #456

Merged
schmitch merged 1 commit into
mainfrom
claude/443-crates-formats
Oct 24, 2026
Merged

schmitch merged 1 commit into
mainfrom
claude/443-crates-formats

Conversation

@schmitch

Copy link
Copy Markdown
Member

Fixes #443

Part of #442. Since #437 the server links in every format, so plugins/ was only a second directory of workspace crates. NuGet and raw now live in crates/formats/<id>/. The crate names (forge-format-nuget, forge-format-raw) and their code are unchanged, and plugins/README.md is now crates/formats/README.md.

Changes

  • git mv plugins/<id> crates/formats/<id> for nuget and raw. plugins/ is gone.
  • Paths that depend on directory depth:
    • the workspace members;
    • the path dependencies on the format crates in crates/core, crates/e2e and crates/server (now ../formats/<id>);
    • the format crates' own dependency on forge-plugin-api (../../plugin-api);
    • NuGet's tests/parse.rs, which reads fixtures/nuget from one level deeper.
  • Tooling:
    • ci-changes.sh and the touches check in codeql.yml no longer name plugins, since crates covers the new place;
    • the comment in codeql-config.yml now names crates/formats/*/tests;
    • .dockerignore drops /plugins/*/target. That ignore existed for crates built on their own target dir; every format crate now builds into the workspace's /target. .gitignore had no such line.
  • Docs and comments now name crates/formats/<id>:
    • the AGENTS.md section, now Formats: every format lives under crates/formats/, which also no longer says raw still has to move (it moved in Raw repositories as a built-in format plugin over a host file store #441);
    • README.md (the crate table and the formats paragraph);
    • DEVELOPMENT.md (the formats section and the Rust paths in the CI and CodeQL tables);
    • docs/format-plugins.md, docs/raw.md and crates/formats/README.md, including their relative links;
    • the module docs of forge-plugin, forge-plugin-api, forge-core and forge-server;
    • the expect messages that named plugins/<id>/plugin.toml;
    • the comment in fixtures/nuget/make_fixtures.py.

DEVELOPMENT.md's CI table listed a plugins job, which ci.yml no longer has. I dropped it along with the plugins/ path.

No changelog fragment, since nothing changes for anyone running Forge.

Checks

  • cargo fmt --check and cargo clippy --workspace --all-targets -- -D warnings pass.
  • .github/scripts/test-parallel.sh --workspace: 104 of 105 test binaries passed, including NuGet's fixture tests from the new path. The exception was forge-core's proxy_read, where package_delay_hides_then_reveals checks a 1-second package-delay window and the binary took 28 s under the parallel load. Run alone, it passes 50/50 in 8 s. No proxy code changed here.
  • git grep finds no path into the old plugins/ directory outside CHANGELOG.md and docs/changes/.

Generated by Claude Code

Since #437 the server links in every format, so plugins/ was only a second
directory of workspace crates. NuGet and raw now live in
crates/formats/<id>/, with the same crate names and code, and
plugins/README.md is crates/formats/README.md.

The workspace members, the path dependencies on the format crates and
theirs on forge-plugin-api, and the NuGet fixture path follow the new
depth. The CI change filter, CodeQL's language filter and its comment no
longer name plugins/ (crates/ covers the new place), and .dockerignore
drops the target directory of a crate built on its own, which no crate
has now. AGENTS.md's rule on formats, README.md, DEVELOPMENT.md, the
format docs, the module docs and the expect messages name
crates/formats/<id>.

Fixes #443

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CxwRK8xYPsMDBiMkySxcHf
@schmitch
schmitch enabled auto-merge October 24, 2026 07:11
@schmitch
schmitch added this pull request to the merge queue Oct 24, 2026
Merged via the queue into main with commit 6e9190b Oct 24, 2026
19 checks passed
@schmitch
schmitch deleted the claude/443-crates-formats branch October 24, 2026 07:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Move the format crates from plugins/<id> to crates/formats/<id>

2 participants