There are milestones on Github and in similar tools.
You can use those to decide what has to be finished for a release. Then the release (and tag) can be created as soon as the milestone is at 100%.
Or at least, manual testing can start, if you have that as a separate phase.