I am currently implementing a Trunk Based Development workflow utilizing Short Lived Feature Branches in a project I am working on. Recently I have realized my release strategy is less than optimal, and I'm working to move to a Branch For Release, strategy for creating new releases.
Given I am implementing Branch For Release, how should my version update commit be done? My inclination is that I create a release branch off of trunk, and the first commit to that release branch is the version update commit. Is this correct? Should a version update commit ever be done on trunk and possibly cherry-picked in?
If I'm doing things this way, where would my CI/CD pipeline look for the last version released in order to auto update the semantic version for the next release? Is there a standard place the version information is pulled from, or is it gleamed from the git graph itself (looking at let's say a git tag or something)?
In general, I'm just trying to really understand where this release specific information (build number is another component of this type of info) is committed / stored / retrieved from in a trunk based development branch for release workflow.
Thanks for any help in advance!