Versioning for deployments of microservices in lagom on kubernetes

Question is related to deployment of micro services .

Framework used – Lagom .

Suppose i Have two microservices Say M1,M2 which is in same git repository .
So we have only one build.sbt and both microservices are define in that build.sbt .

Now when we deploy these microsevices on kubernetes we have to make docker images with some tag .
I will give the Tag name of docker image , the version of microservices .

Now , i have two options for defining versions of microservices .

     1. One is for every commit i will update versions of both microservices say 1.1 , 1.2 and so on .... , (here i have to increase version of both microservices as i do not know that for which microservice commit is done as repo is same for two microservices . ) 

I am using single repo as recommended by lagom doc Build Philosophy as we have very small team .

     2. developer has to increase version in build.sbt  every time he commit a feature or bug fix . 

Now My question/Doubt is as follows

     1.How should generally people manage version in this case . 
     2.There may be many bug fixes daily , so i do not want to update version on every small bug fix . 
     3.How to manage compatibility between microservices version .     

Secondly , For deploying container images to kubernetes , we generally made deployment config(yaml files) …

Now, these may different for staging and development environments . and with some new feature there may come some system environment variable , which needs to be present in yaml .

My question here is .

1. How yaml are managed , for example , manual efforts required if these is some change in yaml .
2. How it can be made automated . 

What lagom suggest what are the best practices for all above problems.

You can set a version on sbt project level so each project can have different version.

Where did you find suggestion like this in doc? Commits do not depend on the version. You can have a “snapshot” version until your version is stable and then tag it.

Api project is used as “anti corruption” layer and services should depend on each other only via api.

You need to manage it manually.

I suggest using helm.

Hope this helps