Steven Allen 6be5442314 dep: add "codependencies" for handling version conflicts
This patch adds a special, internal, "codependencies" package that allows us to
specify minimum required versions for modules we don't directly depend on.

Downside:

* Anyone using this module will also have to download these deprecated modules.

Upside:

* After upgrading this module, all "codependencies" will automatically be
  upgraded to compatible versions.
* If unused, codependencies will _not_ end up bloating the binary size. This is
  because "usage" is computed at the import/package layer, while module version
  requirements are computed at the module layer.
2020-08-20 13:37:36 -07:00

614 B

This package allows us to depend on other modules, to force these other modules to upgrade to some minimum version. This allows us to express "co dependency" requirements in cases where this module doesn't strictly speaking depend on another module, but conflicts with some version of that module.

In practice, this means:

  1. Packages imported here will not end up in the final binary as nothing imports this package.
  2. Modules containing these packages will, unfortunately, be downloaded as "dependencies" of this package.
  3. Anyone using this module will be forced to upgrade all co-dependencies.