4 ms·
As far as I understand it, most of the things you're saying are true of Composer as well. Composer packages (which can be top-level projects, libraries, or Comp
by duskwuff 1y ago
As far as I understand it, most of the things you're saying are true of Composer as well. Composer packages (which can be top-level projects, libraries, or Composer plugins) can have dependencies which are resolved recursively, with version constraints, and are updateable. There's some flexibility in how the contents of those packages are structured, so long as they slot into predictable namespaces, and Composer automatically generates an autoloader script which allows contents from any of those packages to be loaded as needed. Most Composer packages are installed through Packagist, but can also be loaded directly from Git repositories or from the local filesystem (e.g. for local development).
In short: it sounds like you may not be familiar with Composer. I'd strongly recommend that you take a close look at it; you may be reinventing the wheel here.
- retlim 1y agoI'm referring specifically to the root package. https://getcomposer.org/doc/03-cli.md#create-project https://getcomposer.org/doc/03-cli.md#create-project Composer can install a project initially using "composer create-project", but that's a one-time setup. After that, the root package becomes just a static local project, not something Composer tracks, updates, or upgrades as a package. https://valvoid.com/registry/packages/1/fusion-php-package-manager/docs/interaction/terminal#build-command https://valvoid.com/registry/packages/1/fusion-php-package-m... Fusion handles everything as a modular package, including the root project. If the root package's metadata file includes the root package itself as a recursive dependency, "fusion build" can update and upgrade it just like any other package. Fusion builds the entire existing project, not just its dependencies.