From 23c457cee576db84cbef14735d3bb88221722a64 Mon Sep 17 00:00:00 2001 From: Kodi Arfer Date: Wed, 12 Oct 2016 17:11:44 -0700 Subject: [PATCH] Generate hy.version using `git describe` --- .gitignore | 1 + hy/__init__.py | 6 +++++- hy/version.py | 23 ----------------------- setup.py | 19 +++++++------------ 4 files changed, 13 insertions(+), 36 deletions(-) delete mode 100644 hy/version.py diff --git a/.gitignore b/.gitignore index d3a4b8c..f1cb8d0 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ +/hy/version.py *.pyc *swp *hy*egg* diff --git a/hy/__init__.py b/hy/__init__.py index 8b2bbc4..4d5ef77 100644 --- a/hy/__init__.py +++ b/hy/__init__.py @@ -19,7 +19,11 @@ # DEALINGS IN THE SOFTWARE. -from hy.version import __version__, __appname__ # NOQA +__appname__ = 'hy' +try: + from hy.version import __version__ +except ImportError: + __version__ = 'unknown' from hy.models.expression import HyExpression # NOQA diff --git a/hy/version.py b/hy/version.py deleted file mode 100644 index a4671ab..0000000 --- a/hy/version.py +++ /dev/null @@ -1,23 +0,0 @@ -# Copyright (c) 2013 Paul Tagliamonte -# -# Permission is hereby granted, free of charge, to any person obtaining a -# copy of this software and associated documentation files (the "Software"), -# to deal in the Software without restriction, including without limitation -# the rights to use, copy, modify, merge, publish, distribute, sublicense, -# and/or sell copies of the Software, and to permit persons to whom the -# Software is furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -# DEALINGS IN THE SOFTWARE. - - -__appname__ = "hy" -__version__ = "0.11.0" diff --git a/setup.py b/setup.py index d2d8efd..17587d4 100755 --- a/setup.py +++ b/setup.py @@ -22,24 +22,19 @@ import os import re import sys +import subprocess from setuptools import find_packages, setup PKG = "hy" VERSIONFILE = os.path.join(PKG, "version.py") -verstr = "unknown" try: - verstrline = open(VERSIONFILE, "rt").read() -except EnvironmentError: - pass # Okay, there is no version file. -else: - VSRE = r"^__version__ = ['\"]([^'\"]*)['\"]" - mo = re.search(VSRE, verstrline, re.M) - if mo: - __version__ = mo.group(1) - else: - msg = "if %s.py exists, it is required to be well-formed" % VERSIONFILE - raise RuntimeError(msg) + __version__ = subprocess.check_output([ + "git", "describe", "--tags", "--dirty"]).decode('ASCII').strip() + with open(VERSIONFILE, "wt") as o: + o.write("__version__ = {!r}\n".format(__version__)) +except subprocess.CalledProcessError: + __version__ = "unknown" long_description = """Hy is a Python <--> Lisp layer. It helps make things work nicer, and lets Python and the Hy lisp variant play