Skip to content

Commit

Permalink
Add bdist_ext functionality to versioneer.
Browse files Browse the repository at this point in the history
  • Loading branch information
pkittenis committed Jan 31, 2018
1 parent 088b1f7 commit 7d4bd57
Show file tree
Hide file tree
Showing 3 changed files with 45 additions and 7 deletions.
8 changes: 8 additions & 0 deletions Changelog.rst
Original file line number Diff line number Diff line change
@@ -1,6 +1,14 @@
Change Log
============

1.3.2
++++++

Fixes
-------

* Binary wheels would have bad version info and require `git` for installation.

1.3.1
++++++

Expand Down
2 changes: 1 addition & 1 deletion pssh/_version.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
# that just contains the computed version number.

# This file is released into the public domain. Generated by
# versioneer-0.17 (https://github.com/warner/python-versioneer)
# versioneer-0.18 (https://github.com/warner/python-versioneer)

"""Git implementation of _version.py."""

Expand Down
42 changes: 36 additions & 6 deletions versioneer.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@

# Version: 0.17
# Version: 0.18-1

"""The Versioneer - like a rocketeer, but for versions.
Expand All @@ -10,7 +10,7 @@
* https://github.com/warner/python-versioneer
* Brian Warner
* License: Public Domain
* Compatible With: python2.6, 2.7, 3.2, 3.3, 3.4, 3.5, and pypy
* Compatible With: python2.6, 2.7, 3.2, 3.3, 3.4, 3.5, 3.6, and pypy
* [![Latest Version]
(https://pypip.in/version/versioneer/badge.svg?style=flat)
](https://pypi.python.org/pypi/versioneer/)
Expand Down Expand Up @@ -151,8 +151,8 @@
software (exactly equal to a known tag), the identifier will only contain the
stripped tag, e.g. "0.11".
Other styles are available. See details.md in the Versioneer source tree for
descriptions.
Other styles are available. See [details.md](details.md) in the Versioneer
source tree for descriptions.
## Debugging
Expand Down Expand Up @@ -364,6 +364,7 @@ def get(parser, name):
class NotThisMethod(Exception):
"""Exception raised if a method is not valid for the current scenario."""


# these dictionaries contain VCS-specific tools
LONG_VERSION_PY = {}
HANDLERS = {}
Expand Down Expand Up @@ -415,6 +416,8 @@ def run_command(commands, args, cwd=None, verbose=False, hide_stderr=False,
print("stdout was %s" % stdout)
return None, p.returncode
return stdout, p.returncode


LONG_VERSION_PY['git'] = '''
# This file helps to compute a version number in source trees obtained from
# git-archive tarball (such as those provided by githubs download-from-tag
Expand All @@ -423,7 +426,7 @@ def run_command(commands, args, cwd=None, verbose=False, hide_stderr=False,
# that just contains the computed version number.
# This file is released into the public domain. Generated by
# versioneer-0.17 (https://github.com/warner/python-versioneer)
# versioneer-0.18 (https://github.com/warner/python-versioneer)
"""Git implementation of _version.py."""
Expand Down Expand Up @@ -1176,8 +1179,9 @@ def versions_from_parentdir(parentdir_prefix, root, verbose):
(str(rootdirs), parentdir_prefix))
raise NotThisMethod("rootdir doesn't start with parentdir_prefix")


SHORT_VERSION_PY = """
# This file was generated by 'versioneer.py' (0.17) from
# This file was generated by 'versioneer.py' (0.18) from
# revision-control system data, or from the parent directory name of an
# unpacked source archive. Distribution tarballs contain a pre-generated copy
# of this file.
Expand Down Expand Up @@ -1555,6 +1559,31 @@ def run(self):
write_to_version_file(target_versionfile, versions)
cmds["build_py"] = cmd_build_py

if "setuptools" in sys.modules:
from setuptools.command.build_ext import build_ext as _build_ext
else:
from distutils.command.build_ext import build_ext as _build_ext

class cmd_build_ext(_build_ext):
def run(self):
root = get_root()
cfg = get_config_from_root(root)
versions = get_versions()
_build_ext.run(self)
if self.inplace:
# build_ext --inplace will only build modules in
# build/lib<..> dir with no _version.py to write to.
# As in place builds will already have a _version.py
# in the module dir, we do not need to write one.
return
# now locate _version.py in the new build/ directory and replace
# it with an updated value
target_versionfile = os.path.join(self.build_lib,
cfg.versionfile_source)
print("UPDATING %s" % target_versionfile)
write_to_version_file(target_versionfile, versions)
cmds["build_ext"] = cmd_build_ext

if "cx_Freeze" in sys.modules: # cx_freeze enabled?
from cx_Freeze.dist import build_exe as _build_exe
# nczeczulin reports that py2exe won't like the pep440-style string
Expand Down Expand Up @@ -1808,6 +1837,7 @@ def scan_setup_py():
errors += 1
return errors


if __name__ == "__main__":
cmd = sys.argv[1]
if cmd == "setup":
Expand Down

0 comments on commit 7d4bd57

Please sign in to comment.