Repository navigation
Move the format crates from plugins/<id> to crates/formats/<id> #443
Copy link
Copy link
Labels
Milestone
Description
Part of #442. Since #437 the server links in every format, so plugins/ is now just a second directory of workspace crates. The format crates move under crates/, to crates/formats/<id>/. Each directory keeps the format id as its name. The crate names (forge-format-nuget, forge-format-raw) and their code stay the same.
Change
- Run
git mv plugins/<id> crates/formats/<id>for every crate inplugins/at the time:nuget, plusrawonce Raw repositories as a built-in format plugin over a host file store #441 has merged. Moveplugins/README.mdtocrates/formats/README.md.plugins/is then gone. - Fix the paths that depend on directory depth:
- the workspace
membersinCargo.toml; - the path dependencies on the format crates in
crates/core,crates/e2eandcrates/server(../../plugins/nugetbecomes../formats/nuget); - the format crates' own dependency on
forge-plugin-api(../../crates/plugin-apibecomes../../plugin-api); tests/parse.rsof NuGet, which reads the fixtures asCARGO_MANIFEST_DIR/../../fixtures/nugetand is now one level deeper.
- the workspace
- Fix the tooling that names
plugins. In each place below,cratesalready covers the new location:- the Rust paths in
.github/scripts/ci-changes.sh; - the
touchescheck in.github/workflows/codeql.yml; - the comment in
.github/codeql/codeql-config.yml; /plugins/*/targetin.gitignoreand.dockerignore.
- the Rust paths in
- Rewrite the
AGENTS.mdsection Formats: every format plugin lives under plugins/ as every format lives under crates/formats/:- a format is a crate in
crates/formats/<id>/; - it is never a crate elsewhere under
crates/(nocrates/format-<id>) and never a module of the server; - Docker / OCI moves to
crates/formats/docker, and raw tocrates/formats/rawif Raw repositories as a built-in format plugin over a host file store #441 has not merged yet.
- a format is a crate in
- Update every other mention of
plugins/<id>:README.md: the crate table and Every format is a plugin inplugins/;DEVELOPMENT.md: the layout and the CI path tables;docs/format-plugins.mdandcrates/formats/README.md;- the module docs of
forge-plugin,forge-plugin-api,forge-coreandforge-server; - the
expectmessages that nameplugins/nuget/plugin.toml; fixtures/nuget/make_fixtures.py.
No changelog fragment is needed, since nothing changes for anyone running Forge.
Acceptance criteria
-
plugins/does not exist, andcrates/formats/<id>/holds every format crate it used to hold. -
cargo clippy --workspace --all-targets -- -D warningsandcargo test --workspacepass, including the NuGet fixture tests. -
git grepfinds no path into the oldplugins/directory outsideCHANGELOG.mdanddocs/changes/. - A change under
crates/formats/still starts the Rust jobs of CI and of CodeQL. -
AGENTS.md,README.mdandDEVELOPMENT.mdnamecrates/formats/<id>as the place for a format.
Start after #440 and #441 merge. Both rewrite or add files under plugins/.
Reactions are currently unavailable
Activity