Mechanism for Python dependency management with plugins

The mechanism we currently use for installing 2U-specific dependencies for Open edX services is not ideal.

In Open edX services, we have make upgrade to ensure dependencies are compatible and to see when even indirect dependencies are changing and why. When installing our 2U-specific dependencies, we just have pinned constraints, and are missing these advantages.

Since the community outside of 2U may have a more established history with plugin use, I’m wondering if anyone else has a more sophisticated process that is sharable and includes the advantages baked into make upgrade and pip-compile.

Here is 2U’s ticket for improving this process: Discovery: Mechanism for Python dependency management with plugins · Issue #351 · edx/edx-arch-experiments · GitHub

Thank you for any help.

Note: I couldn’t decide whether to make this a “Development” or “Operator” post.