If you publish a package over Composer - or in fact any package manager that allows optional dependencies - please don't make dependencies that aren't **absolutely necessary** required.

Is it a theme for your nice app? Don't make it required, some are not going to want to use this theme and don't want to deploy extra Megabytes to their servers every single time.

In fact, someone may even want to replace that dependency with a fork, like a customized version of that theme because it is not flexible enough! Forcing that dependency means it can only be replaced with hacks.

I am looking at you, `oxid-esales/oxideshop-metapackage-ce`, with your extra themes and demoshop data that makes the Deployer tool push and copy around half a Gigabyte of unused assets on a website every single deployment!!

  • 1
    Fuck PHP tho
  • 1
    There are also plenty of cases the other way around.
    NetworkManager has a hard dependency on dbus.
    But some package-managers don't have dbus in its dependency-list.
Your Job Suck?
Get a Better Job
Add Comment