From d1772d410235592b482e3b08b1863f6624d9fe6b Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 19 Feb 2023 15:52:21 +0100 Subject: Adding upstream version 2.0.3. Signed-off-by: Daniel Baumann --- version.py | 81 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100755 version.py (limited to 'version.py') diff --git a/version.py b/version.py new file mode 100755 index 0000000..ff8f684 --- /dev/null +++ b/version.py @@ -0,0 +1,81 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +# Authors: Douglas Creager +# Calum Lind +# +# This file is placed into the public domain. +# +# Calculates the current version number by first checking output of “git describe”, +# modified to conform to PEP 386 versioning scheme. If “git describe” fails +# (likely due to using release tarball rather than git working copy), then fall +# back on reading the contents of the RELEASE-VERSION file. +# +# Usage: Import in setup.py, and use result of get_version() as package version: +# +# from version import * +# +# setup( +# ... +# version=get_version(), +# ... +# ) +# +# Script will automatically update the RELEASE-VERSION file, if needed. +# Note that RELEASE-VERSION file should *not* be checked into git; please add +# it to your top-level .gitignore file. +# +# You'll probably want to distribute the RELEASE-VERSION file in your +# sdist tarballs; to do this, just create a MANIFEST.in file that +# contains the following line: +# +# include RELEASE-VERSION +# + +from __future__ import print_function, unicode_literals + +import os +import subprocess + +__all__ = ('get_version',) + +VERSION_FILE = os.path.join(os.path.dirname(__file__), 'RELEASE-VERSION') + + +def call_git_describe(prefix='', suffix=''): + cmd = 'git describe --tags --match %s[0-9]*' % prefix + try: + output = subprocess.check_output(cmd.split(), stderr=subprocess.PIPE) + except (OSError, subprocess.CalledProcessError): + return None + else: + version = output.decode('utf-8').strip().replace(prefix, '') + # A dash signifies git commit increments since parent tag. + if '-' in version: + segment = '.dev' if 'dev' in version else '.post' + version = segment.join(version.replace(suffix, '').split('-')[:2]) + return version + + +def get_version(prefix='deluge-', suffix='.dev0'): + try: + with open(VERSION_FILE, 'r') as f: + release_version = f.readline().strip() + except IOError: + release_version = None + + version = call_git_describe(prefix, suffix) + + if not version: + version = release_version + if not version: + raise ValueError('Cannot find the version number!') + + if version != release_version: + with open(VERSION_FILE, 'w') as f: + f.write('%s\n' % version) + + return version + + +if __name__ == '__main__': + print(get_version()) -- cgit v1.2.3