I have noticed that it is possible to set:
- A Development environment to depend on the Development version of a dependency
- A Production environment to depend on the Production version of a dependency
This can be dangerous, because I could be tweaking and testing both the dependency and dependent apps at the same time, then, when everything works well, I merge the dependent to its production environment, I forget to merge the dependency, and end up with a broken production app.
At the time of merging there should be a check that the dependencies of the two environments being merged are identical. They could be identical because both the environments depend on the same version of the dependency or the two versions they depend on are identical.
So, if I do the right thing, that is first merge the dev to prod on the dependency, then dev to prod on the app, everything works fine.
But if I merge first the app, the check will find out that the dev and the prod environments depend on two different versions of the dependency, and since the two branches of the dependency are different, the merge is aborted.