From 4f44aac6553c50acb0d3e3def68efb16f6989489 Mon Sep 17 00:00:00 2001 From: Santiago Lamora Date: Fri, 25 Oct 2019 13:30:51 +0200 Subject: [PATCH] Add package version information. --- musician/__init__.py | 29 +++++++++++++++++++++++++++++ setup.py | 5 ++++- 2 files changed, 33 insertions(+), 1 deletion(-) diff --git a/musician/__init__.py b/musician/__init__.py index e69de29..d09031b 100644 --- a/musician/__init__.py +++ b/musician/__init__.py @@ -0,0 +1,29 @@ +""" +Package metadata definition. +""" + +VERSION = (0, 1, 0, 'alpha', 1) + + +def get_version(): + "Returns a PEP 386-compliant version number from VERSION." + if (len(VERSION) != 5 or + VERSION[3] not in ('alpha', 'beta', 'rc', 'final')): + raise ValueError( + "{} is not PEP 386-compliant version number".format(VERSION)) + + # Now build the two parts of the version number: + # main = X.Y[.Z] + # sub = .devN - for pre-alpha releases + # | {a|b|c}N - for alpha, beta and rc releases + + parts = 2 if VERSION[2] == 0 else 3 + main = '.'.join(str(x) for x in VERSION[:parts]) + + sub = '' + + if VERSION[3] != 'final': + mapping = {'alpha': 'a', 'beta': 'b', 'rc': 'c'} + sub = mapping[VERSION[3]] + str(VERSION[4]) + + return str(main + sub) diff --git a/setup.py b/setup.py index 52382e2..16fabeb 100644 --- a/setup.py +++ b/setup.py @@ -3,13 +3,16 @@ import os from setuptools import find_packages, setup +# Dynamically calculate the version +version = __import__('musician').get_version() + # allow setup.py to be run from any path os.chdir(os.path.normpath(os.path.join(os.path.abspath(__file__), os.pardir))) setup( name="django-musician", - version="0.1", + version=version, url='https://gitlab.pangea.org/slamora/django-musician.git', author='Santiago Lamora', author_email='santiago@ribaguifi.com',