-3

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.


Summary:

  • 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.

  • What sort of product are you building? Who are you expecting to read the version numbers? – bdsl Jan 21 '18 at 11:16
  • @bdsl, let's say it system for monitoring sport events, that consist of client/admin web application and few windows services. For develop used N internal libraries that need versioning. For example versions will used 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 + resolve dependencies at develop. – user293916 Jan 21 '18 at 11:34
  • So you'be building the application, and the internal libraries? Can you edit your question to include that information? – bdsl Jan 21 '18 at 11:46
  • @bdsl, question is updated. – user293916 Jan 21 '18 at 12:05
1

Semver seems unnecessarily complex if it's just for QAs to be able to specify a version when they report a bug. If it was just for that I would suggest they use either commit ID from git, or build number from the CI system.

However semver does have more use for developers using the internal libraries, and according to semver.org "Once a versioned package has been released, the contents of that version MUST NOT be modified. Any modifications MUST be released as a new version."

So you need a new (patch) version number at least as often as you make a new release. How you set that patch number should presumably depend on how often you make releases. If you release relatively infrequently, e.g. once a week or less, manually choosing the number may work fine.

On the other hand if you have a pipeline that automatically creates a release every time a commit passes all the tests, then you probably want that pipeline to automatically set the patch number.

  • Complexity is in the eye of the beholder, I suppose. Semver is described in its entirety in the summary on the semver website, which is about 50 words long (shorter than the answer you've posted here). – Robert Harvey Jan 21 '18 at 18:16
  • @RobertHarvey, i read SemVer specification. Probably i wrote incorrectly, but my question about process, process inside team, i.e who must change version? How must change version (manually, tools)? How automate? Which practices exists etc? – user293916 Jan 21 '18 at 19:00
  • @UserName: The procedures that you choose are going to be the ones that best meet your specific needs, not necessarily the ones that you get out of the SemVer Playbook™. – Robert Harvey Jan 21 '18 at 20:53
  • @RobertHarvey, I agree, but i'd like to learn about the ways other people solve similar problems to avoid mistakes. Special if lack experience. For example how peoples choose agile for management or OOP for designing. Maybe it not quite correctly comparison, but i hope you understand me. P.S. Why mention everywhere SemVer? – user293916 Jan 21 '18 at 22:01
  • "SemVer" is the first word in this answer and the fifth word in the second paragraph of your question. – Robert Harvey Jan 21 '18 at 22:17

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy