Hello,
I am developing a library myLib and simultaneously use this library in another custom dub project "myExe". The easiest thing for me would be to reference myLib in myExe dub.json with:
"myLib" : "~master", but this gives my the warning:
WARNING: A deprecated branch based version specification is used ...

O.K. so that approach does not seem to be right. Next I tried to give myLib a semver of v0.1.0, and reference it with "myLib" : "~>0.1.0" in myExe project. Whenever I edit the source of myLib I want it to be available to myExe, hence I enter "myLib": "~master" in the dub.selections.json of myExe project.

Firstly, is this the right way to work and develop on depending dub projects?

Secondly, I think this might be a bug but am not sure, after some time I get a dub error, project does not build with this message:
Root package myExe reference myLib ~>0.1.0 cannot be satisfied.
My workaround for that was setting "myLib" : "~master" back in myExe dub.json, then triggering a build (successfully) and changing back again to "myLib" : "~>0.1.0". After this building works, but I get a new warning:
Selected package myLib ~master does not match the dependency specification ~>0.1.0 in package myExe. Need to "dub upgrade"?
A dub upgrade results again in error:
Root package myExe reference myLib ~>0.1.0 cannot be satisfied.
Building still works, but with the mentioned warning: Selected package myLib ...
After some time, I don't know what triggers this behavior, the build error message returns.

This process repeated a few times, is my way of developing wrong?