How should be represents process of versioning in developer team? Suppose that we have CI system, and we want start versioning our software.
If we speak about semver, then major and minor version must changes manually, right? What to do with path version? I think also manually, but not sure. Build number may got from CI system. In that case developers will responsibilities for changes, that they did, also changes must be controlled with help pull requests and code review.
Taking into account the above, suppose we develop project on .NET platform. It's normal if developers after their changes will changes AssemblyInfo? Respectively teamlead must tagged releases in git repository at the end sprint or something like that.
- 1) Create changes in code of project;
- 2) Manually change AssemblyVersion - major, minor or path depend on changes;
- 3) Create pull request for merge into develop branch;
- 4) Teamlead do code review and approve or rejects changes;
- n) At release teamlead merge develop into master and create release tag.
Or exists common tools for automate this process? If possible, describe your point of view.
UPD: This question in context of the process developing monitoring sport events system. System consist of client/admin web application and few windows services. For develop uses N internal libraries that need versioning.
Versions will use QA for specify version of component in which was found bug. Also developers, because different clients may use different version of application, i.e need mechanism for detect state application and resolve dependencies at develop.