We have git repositories that are Composer, php packages.
To publish a new version of one of these Composer packages on https://packagist.org we currently do the following:
v1.0.0
and push it.v1.0.0
The issues we have with this workflow is:
Creating a PR and only merging into master on passing builds is great. Although it still allows maintainers to release versions from master that do not pass CI, if they forego the PR workflow.