It's not great if people depend on the main branch if there will be breaking changes. So we should set up a versioning scheme with tags for each version and some release notes (CHANGELOG.md). Each release has three tags: vX.Y.Z, vX.Y and vX. The latter two roll forward for each new patch release. This is how GitHub Actions are also typically versioned, e.g. actions/checkout has a v3.0.2 and a v3 tag, the latter of which formerly pointed to v3.0.1 and v3.0.0. Only vX.Y.Z tags are promoted to a release.
It's not great if people depend on the main branch if there will be breaking changes. So we should set up a versioning scheme with tags for each version and some release notes (CHANGELOG.md). Each release has three tags: vX.Y.Z, vX.Y and vX. The latter two roll forward for each new patch release. This is how GitHub Actions are also typically versioned, e.g. actions/checkout has a v3.0.2 and a v3 tag, the latter of which formerly pointed to v3.0.1 and v3.0.0. Only vX.Y.Z tags are promoted to a release.