One charming way of versioning a software is to use the GitLab CI/CD and deploy with Tags. Feature Branches will be merged in Development and a version is then merged to Master. These versions may then be tagged with a version number.
If the App will be deployed with Docker, a nice feature would be to have the actual build version number or tag as a variable inside this container to show in the app (e.g. that a customer or partner can see which version is running).
There might be other solutions, but we found the following very handy.
Get version in GitLab CI
GitLab CI process has variables, which can be used within the continuous integration process. We use these variables and store a version number to a file, called .version