I am building an Angular web application with a RESTful backend. I plan on using semantic versioning to differentiate between different releases. I've already read a bit about how to implement semantic versioning for web applications but I'm still not sure whether I should use two separate semantic versions, one for the Angular frontend and one for the Java/Spring backend, or just one semantic version for both.
The reason why I'm wondering this is because on the one hand both applications work in tandem and belong to the same coding project. But on the other hand not all changes made to this coding project will involve both the frontend and the backend application. To give an example: the frontend app might have a malfunctioning button which requires a bug fix.
When the current version is
1.0.0 and I release a patch for the bug then the new version would become
1.0.1. But this version number change would only make sense for the frontend app.
However semantic versions don't only reflect bug fixes, they can reflect newly added functionality as well. When I add new functionality it always involves making code changes to both the backend and frontend apps. So in such a case using one version number for both applications would make sense.
What approach would be best? Two separate versions for both the backend and frontend or one general version that reflects all changes across the backend and frontend?