zulip_bots: Add custom command for generating MANIFEST.in.
We now have a custom command in zulip_bots/setup.py to generate a MANIFEST.in. To generate a MANIFEST for a PyPA release, we can now run: python setup.py gen_manifest --release To generate a non-release MANIFEST, we can run: python setup.py gen_manifest This allows us to automate the MANIFEST generation in our release automation script.
This commit is contained in:
parent
dfe4360108
commit
07edd4aa9b
|
@ -8,6 +8,12 @@ import warnings
|
||||||
|
|
||||||
from importlib import import_module
|
from importlib import import_module
|
||||||
|
|
||||||
|
CURRENT_DIR = os.path.dirname(os.path.abspath(__file__))
|
||||||
|
ZULIP_BOTS_DIR = os.path.join(CURRENT_DIR, '..', 'zulip_bots')
|
||||||
|
sys.path.append(ZULIP_BOTS_DIR)
|
||||||
|
|
||||||
|
import generate_manifest
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
usage = """./tools/provision
|
usage = """./tools/provision
|
||||||
|
|
||||||
|
|
|
@ -3,11 +3,43 @@
|
||||||
import argparse
|
import argparse
|
||||||
import os
|
import os
|
||||||
import glob
|
import glob
|
||||||
|
import distutils.cmd
|
||||||
|
import distutils.log
|
||||||
|
|
||||||
CURRENT_DIR = os.path.abspath(os.path.dirname(__file__))
|
CURRENT_DIR = os.path.abspath(os.path.dirname(__file__))
|
||||||
BOTS_DIR = os.path.normpath(os.path.join(CURRENT_DIR, 'zulip_bots', 'bots'))
|
BOTS_DIR = os.path.normpath(os.path.join(CURRENT_DIR, 'zulip_bots', 'bots'))
|
||||||
MANIFEST_PATH = os.path.join(CURRENT_DIR, 'MANIFEST.in')
|
MANIFEST_PATH = os.path.join(CURRENT_DIR, 'MANIFEST.in')
|
||||||
|
|
||||||
|
class GenerateManifest(distutils.cmd.Command):
|
||||||
|
"""
|
||||||
|
A custom setup.py command to generate a MANIFEST.in
|
||||||
|
for the zulip_bots package.
|
||||||
|
"""
|
||||||
|
description = 'generate a MANIFEST.in for PyPA or for development'
|
||||||
|
user_options = [
|
||||||
|
('release', None, 'generate a MANIFEST for a PyPA release'),
|
||||||
|
]
|
||||||
|
|
||||||
|
def initialize_options(self):
|
||||||
|
self.release = False
|
||||||
|
|
||||||
|
def finalize_options(self):
|
||||||
|
pass
|
||||||
|
|
||||||
|
def run(self):
|
||||||
|
if self.release:
|
||||||
|
generate_release_manifest()
|
||||||
|
self.announce(
|
||||||
|
'Generating a MANIFEST for a PyPA release of zulip_bots.',
|
||||||
|
level=distutils.log.INFO
|
||||||
|
)
|
||||||
|
else:
|
||||||
|
generate_dev_manifest()
|
||||||
|
self.announce(
|
||||||
|
'Generating a MANIFEST for zulip_bots\' development.',
|
||||||
|
level=distutils.log.INFO
|
||||||
|
)
|
||||||
|
|
||||||
def get_test_fixtures():
|
def get_test_fixtures():
|
||||||
# type: () -> List[str]
|
# type: () -> List[str]
|
||||||
glob_pattern = os.path.join(BOTS_DIR, '*', 'fixtures', '*.json')
|
glob_pattern = os.path.join(BOTS_DIR, '*', 'fixtures', '*.json')
|
||||||
|
|
|
@ -5,9 +5,7 @@ from __future__ import print_function
|
||||||
|
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
# Before anything, generate MANIFEST.in
|
|
||||||
import generate_manifest
|
import generate_manifest
|
||||||
generate_manifest.generate_dev_manifest()
|
|
||||||
|
|
||||||
# We should be installable with either setuptools or distutils.
|
# We should be installable with either setuptools or distutils.
|
||||||
package_info = dict(
|
package_info = dict(
|
||||||
|
@ -31,6 +29,9 @@ package_info = dict(
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
include_package_data=True,
|
include_package_data=True,
|
||||||
|
cmdclass={
|
||||||
|
'gen_manifest': generate_manifest.GenerateManifest,
|
||||||
|
},
|
||||||
) # type: Dict[str, Any]
|
) # type: Dict[str, Any]
|
||||||
|
|
||||||
setuptools_info = dict(
|
setuptools_info = dict(
|
||||||
|
|
Loading…
Reference in a new issue