Yee. It’s described well here: https://semver.org/ You can take it a step further by using what are called “conventional commits” where your git commit message contains the scope of the changed code. Then a GitHub Action can automatically make the version changes that reflect your code changes. My Nostr relay implementation, Memorelay, works this way.