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?