Following PEP 440 for versioning
PEP 440 provides a specification for version identification.
We already comply with it, but we could take advantage of it. For instance:
- After
X.Y.Z
is released, we could bump toX.Y.[Z+1].dev0
indevelop
. This way, it is easier to know in which version a commit belongs. - Anyone should be able to make a pre-release by bumping
N
inX.Y.ZaN
(orX.Y.ZbN
orX.Y.ZrcN
). This makes it easier to package an intermediate version with a particular bug fix. - We could update the release module to support these syntaxes and provide the full version to
setuptools.setup
.
In our case, I would consider the following patterns:
- Development:
X.Y.Z.devN
(N
could be omitted here, but it's part of the normalization) - Alpha pre-release:
X.Y.ZaN
- Beta pre-release:
X.Y.ZbN
- Release candidate:
X.Y.ZrcN
- Final release:
X.Y.Z
What do you think?