A path repository for a package that is not ready to publish

Extracting a package while still changing it daily, without the tag-and-update cycle that makes that unbearable.

{
  "repositories": [
    { "type": "path", "url": "../packages/reporting", "options": { "symlink": true } }
  ],
  "require": { "turkerdev/reporting": "@dev" }
}

The symlink option is the part that matters: without it Composer copies, and a copy means every change needs an update. With it, the package directory is live and the editor treats it as one project. The discipline this needs is that the path repository must never reach production — a composer.json committed with a path repository and a colleague without that directory is a broken install, so this belongs in a local override or behind a documented setup step.