Implement versioning of Python projects according to PEP 440

Hello dear reader, there is a cool PEP 440 and today I’ll try to explain how to implement such versioning for your project according to this one.

Actually, it’s very simple process. You just need to install a single Python package.

pip install --user bumpversion

After that, you need to create a config file inside your root directory of a project.

Now I’m going to explain step by step, what’s going out inside of this file.

Another step is set to the current_version all version strings inside files from .bumpversion.cfg. E.g. if you have got a version string 3.0.1 inside your then you need to set it to 3.0.0.a0 or vise-versa.

Scheme of versioning is the next:

X.Y.ZaN   # Alpha release
X.Y.ZbN # Beta release
X.Y.ZrcN # Release Candidate
X.Y.Z # Final release

And workflow will be like this:

bumpversion patch # 3.0.0.a0 → 3.0.1.a0
bumpversion n # 3.0.1.a0 → 3.0.1.a1
bumpversion release # 3.0.1.a1 → 3.0.1.b0
bumpversion release # 3.0.1.b0 → 3.0.1.rc0
bumpversion release # 3.0.1.rc0 → 3.0.1
bumpversion minor # 3.0.1 → 3.1.0.a0
bumpversion major # 3.1.0.a0 → 4.0.0.a0
bumpversion n # 4.0.0.a0 → 4.0.0.a1
bumpversion release --tag # 4.0.0.a1 → 4.0.0.b0

The last one command will create for us a tag v4.0.0.b0.

That’s it.



Software Engineer, LL.B., MSc in CS

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store