title: Versioning strategy for Feature branch in nuget
body: <p>We are building a system which comprises of multiple repositories. Some of them are common. This solution is built with .net technologies, nuget and jenkin server.</p>
  
  <p>We are planning to introduce versioning. All binaries should have product version like Major.Minor.Patch.Build.</p>
  
  <p>We will have a dedicated Nuget server on our CI server where we will publish our internal packages for common projects. And similarly, we will create a nuget server on developer's local machine.</p>
  
  <p>Here is the problem scenario:</p>
  
  <p>Support one developer is working on a long running feature branch. And this feature requires changes across multiple branches (including a common branch). The developer will create feature branch for both the repositories and start working on them.  </p>
  
  <p>Since we will have a job to build feature branch (whenever any commit is done or pull request is raised on CI server), CI server will create a nuget package on centralized nuget server for the common repository. </p>
  
  <p>If the generated nuget package has the same version (as the previous one), it will replace the existing package. </p>
  
  <p>So the version should be different. Either we can increment any part of the previous version, like build part Or we can append -featureName at the end of the version number. Which one should be preferred?</p>
  
  <p>And if we do any of these two things on dev machine as well, the developer has to change the package reference every time he switches between branches. So, ideally, package generated on dev machine should replace the previous package. But in this case as well, the developers switches between branches, he will have to make sure to build the appropriate common package.</p>
  
  <p>Please suggest any standard solution for this scenario.</p>
  
  <p>Thanks in Advnace</p>