Release preparation
A release should identify the exact commit being published, confirm that tests and build checks pass, and create a stable version reference. The exact process differs between projects, but the principle is the same: make the released state reproducible.
Tag the verified commit
Create an annotated tag with the project's chosen version. Inspect the tag and commit before pushing it to the remote.
Keep release history understandable
Release notes should summarize user-visible changes, compatibility considerations and important fixes. A tag then provides a stable point that can be checked out for debugging or rollback.