@niemeyer The underlying OpenStack projects use semantic versioning but they are all at independent version levels. So as a whole, the release series of OpenStack are used to track a release: https://releases.openstack.org/
For the OpenStack snaps, our plan is to publish as follows:
edge channel for each track will contain the tip of the OpenStack project's master or stable branch (upstream has branches such as master (currently pike), stable/ocata, stable/newton, etc).
beta, candidate, and stable channels will be reserved for released versions (likely to trigger off released tarball or git tag). The same version will be published progressively to beta, then candidate, and then to stable once CI validation completes for the channel. This should result in an experience such as:
sudo snap install --channel=ocata/stable keystone
sudo snap install --channel=pike/edge keystone