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:
Eeshan Garg 2017-09-20 01:42:40 -02:30 committed by Tim Abbott
parent dfe4360108
commit 07edd4aa9b
3 changed files with 41 additions and 2 deletions

View file

@ -8,6 +8,12 @@ import warnings
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():
usage = """./tools/provision

View file

@ -3,11 +3,43 @@
import argparse
import os
import glob
import distutils.cmd
import distutils.log
CURRENT_DIR = os.path.abspath(os.path.dirname(__file__))
BOTS_DIR = os.path.normpath(os.path.join(CURRENT_DIR, 'zulip_bots', 'bots'))
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():
# type: () -> List[str]
glob_pattern = os.path.join(BOTS_DIR, '*', 'fixtures', '*.json')

View file

@ -5,9 +5,7 @@ from __future__ import print_function
import sys
# Before anything, generate MANIFEST.in
import generate_manifest
generate_manifest.generate_dev_manifest()
# We should be installable with either setuptools or distutils.
package_info = dict(
@ -31,6 +29,9 @@ package_info = dict(
],
},
include_package_data=True,
cmdclass={
'gen_manifest': generate_manifest.GenerateManifest,
},
) # type: Dict[str, Any]
setuptools_info = dict(