Use 'build_reno' setuptools extension if available
reno recently gained a 'build_reno' command that could be used to build a reno cache file via setuptools. Integrate this and start including that file as part of the final distribution. Change-Id: I54cb7a894770040165cc918469cb0ed486518789
This commit is contained in:
parent
3c059cb701
commit
3a6b96c799
|
@ -532,11 +532,57 @@ class LocalSDist(sdist.sdist):
|
|||
|
||||
command_name = 'sdist'
|
||||
|
||||
def checking_reno(self):
|
||||
"""Ensure reno is installed and configured.
|
||||
|
||||
We can't run reno-based commands if reno isn't installed/available, and
|
||||
don't want to if the user isn't using it.
|
||||
"""
|
||||
if hasattr(self, '_has_reno'):
|
||||
return self._has_reno
|
||||
|
||||
try:
|
||||
# versions of reno witout this module will not have the required
|
||||
# feature, hence the import
|
||||
from reno import setup_command # noqa
|
||||
except ImportError:
|
||||
log.info('[pbr] reno was not found or is too old. Skipping '
|
||||
'release notes')
|
||||
self._has_reno = False
|
||||
return False
|
||||
|
||||
conf, output_file, cache_file = setup_command.load_config(
|
||||
self.distribution)
|
||||
|
||||
if not os.path.exists(os.path.join(conf.reporoot, conf.notespath)):
|
||||
log.info('[pbr] reno does not appear to be configured. Skipping '
|
||||
'release notes')
|
||||
self._has_reno = False
|
||||
return False
|
||||
|
||||
self._files = [output_file, cache_file]
|
||||
|
||||
log.info('[pbr] Generating release notes')
|
||||
self._has_reno = True
|
||||
|
||||
return True
|
||||
|
||||
sub_commands = [('build_reno', checking_reno)] + sdist.sdist.sub_commands
|
||||
|
||||
def run(self):
|
||||
_from_git(self.distribution)
|
||||
# sdist.sdist is an old style class, can't use super()
|
||||
sdist.sdist.run(self)
|
||||
|
||||
def make_distribution(self):
|
||||
# This is included in make_distribution because setuptools doesn't use
|
||||
# 'get_file_list'. As such, this is the only hook point that runs after
|
||||
# the commands in 'sub_commands'
|
||||
if self.checking_reno():
|
||||
self.filelist.extend(self._files)
|
||||
self.filelist.sort()
|
||||
sdist.sdist.make_distribution(self)
|
||||
|
||||
try:
|
||||
from pbr import builddoc
|
||||
_have_sphinx = True
|
||||
|
|
Loading…
Reference in New Issue