Best practices for apps & dependencies that include the same dependency

So, using that technique (including common dependencies only in the lowest dependency in a chain that needs them), and tagging specific commits, I think I should be able to do the following:

  1. Test a dependency with a particular version of Anvil Extras*, and tag that commit with something meaningful.

  2. The higher level dependency can then depend on whichever tagged commit corresponds to the version of Anvil Extras that higher level dependency needs, and in turn can have its own tags for different versions of Anvil Extras.

  3. The main apps can then rely on specific tagged versions of dependencies based on which version of Anvil Extras each main app needs.

Upgrading to a newer version of Anvil Extras could be done in parts now, not all apps at once, since each can choose which tagged version of the dependencies to use. Dependencies can be upgraded to newer versions without affecting any apps that depend on them.

*Not picking on Anvil Extras, it’s just the dependency I use most often in every app. Any dependency could be named here.