[openstack-dev] [all] Setting epoch in setup.cfg??

Thierry Carrez thierry at openstack.org
Wed Jul 15 09:34:47 UTC 2015

Monty Taylor wrote:
> [...]
> An epoch, being a tool designed for package maintainers to solve package
> maintainer problems, is not a tool designed to solve ease of
> communication issues for regular users. Most regular users immediately
> grasp that 2.0.0 > 1.0.0. Most regular users do NOT intuitively grasp
> that 1!1.0.0 > 0!2.0.0 - nor why the heck there is a ! in the version.
> We're moving to semver versions to better align with understandable
> version numbering as people regularly use it. Yes, this is going to
> cause a short term grief for a set of people. However, it is a VERY
> simple problem for those people to overcome, if it is actually a problem
> for them at all.
> To be clear, since we have never published the servers to PyPI, it means
> that there are the following ways in which people can install the servers:
> a) from the distros. Yes. this means that the distro packagers will have
> to add an epoch in their packaging. Guess what? That's what they do and
> why they have that tool at their disposal.
> b) from git. Not a problem. "git pull ; pip install -U ." will work no
> matter what the version number is"
> c) from locally built distro packages. If they're also following
> upstream packaging, no problem. If they're doing their own thing, then
> they get to add an epoch line.
> d) in docker containers. Not a problem. Build a new container.
> e) in venvs. Not a problem. Build a new venv.
> f) from locally built packages that are created programatically and have
> decided to base their versioning on a direct translation of the python
> version string that also publish into a local distro package repository
> from which deployments are run. Ok. Fair - this one will hurt. However,
> I believe the sum-total of the list of that is "anvil" - so I'm pretty
> sure that adding a quick "if version == blah" into the anvil code would
> solve this.
> So when I say it's not an actual problem, but instead a pedantic
> theoretical problem - this is what I mean. There are no real instances
> where this is anything other than bikeshedding over the "right" way to
> do things.
> Are there a few people who this will annoy? TOTALLY. Am I sorry about
> that? TOTALLY.
> Do I think that we should introduce an epoch into our upstream version
> numbering even though it will help close to zero people? Nope. I do not.

Amen, I wouldn't have better phrased it.

I don't know of a single upstream that publishes source code tarballs
versioned foobar-2!5.0.0.tar.gz and as release management PTL I don't
intend to start. The version we ship is called 5.0.0. Epochs are there
in downstream packaging systems to help computers understand that
sometimes 5>2015, not for anyone else.

So yes, it's a one-time pain point in a corner case use for the few
things in OpenStack that have been versioned YYYY.SEQ -- but it's
clearly outweighed by the ugliness of forever having to ship
non-human-readable versions in tags and source code tarballs.

Thierry Carrez (ttx)

More information about the OpenStack-dev mailing list