Skip to content

Move the Docker / OCI crate from crates/format-oci to crates/formats/docker #445

Closed

Description

@schmitch

Part of #442. After #443, every format crate lives in crates/formats/<id>/ except Docker / OCI. That crate is crates/format-oci (crate forge-oci), the one crate that AGENTS.md forbids by name.

This issue moves the crate as it is. The registry stays native: crates/server/src/registry.rs with its own routes under /v2/, not a FormatPlugin. Making it a FormatPlugin needs its own issue, as #431 is for raw.

Change

  • Run git mv crates/format-oci crates/formats/docker. Rename the crate from forge-oci to forge-format-docker, like the crates next to it, and change forge_oci:: to forge_format_docker:: in forge-server and its tests.
  • Update its own path dependencies (../core becomes ../../core, and the same for the others), the workspace members, and forge-server's dependency on it.
  • Update AGENTS.md, README.md, DEVELOPMENT.md and docs/format-plugins.md to say that Docker / OCI is in crates/formats/docker and is still native. The AGENTS.md rule keeps saying it is not the model for a new format until it implements FormatPlugin.

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

Acceptance criteria

  • crates/format-oci does not exist, and crates/formats/docker builds as forge-format-docker.
  • cargo clippy --workspace --all-targets -- -D warnings and cargo test --workspace pass, and so do the oci-e2e and docker jobs.
  • git grep -n 'format-oci\|forge-oci\|forge_oci' finds nothing outside CHANGELOG.md and docs/changes/.

Start after #443, which creates crates/formats/ and sets the rule in AGENTS.md. This is independent of #444.

Metadata

Metadata

Assignees

No one assigned

    Type

    Projects

    No projects

      Milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions