diff --git a/MANIFEST.in b/MANIFEST.in index d7411b8c8e..501a09f0d2 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -1,6 +1,8 @@ include LICENSE include requirements/base.txt +include requirements/prod.txt include requirements/dev.txt +include requirements/tools.txt recursive-include samcli/local/init/templates * recursive-include samcli/lib *.json recursive-include samcli/commands/local/lib/generated_sample_events *.json diff --git a/Makefile b/Makefile index 80fafaaed7..d44c5c66e8 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,7 @@ init: - SAM_CLI_DEV=1 pip install -e '.[dev]' + SAM_CLI_DEV=1 pip install -e . + SAM_CLI_DEV=1 pip install -r requirements/dev.txt + SAM_CLI_DEV=1 pip install -r requirements/tools.txt test: # Run unit tests diff --git a/requirements/base.txt b/requirements/base.txt index 64f1880ecc..366c88622d 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -12,5 +12,4 @@ dateparser~=0.7 python-dateutil~=2.6 pathlib2~=2.3.2; python_version<"3.4" requests==2.20.1 -aws_lambda_builders==0.2.1 serverlessrepo==0.1.8 diff --git a/requirements/dev.txt b/requirements/dev.txt index a920601b7c..93686e7303 100644 --- a/requirements/dev.txt +++ b/requirements/dev.txt @@ -1,17 +1,3 @@ -coverage==4.3.4 -flake8==3.3.0 -tox==2.2.1 -pytest-cov==2.4.0 -# astroid > 2.0.4 is not compatible with pylint1.7 -astroid>=1.5.8,<2.1.0 -pylint==1.7.2 - -# Test requirements -pytest==3.0.7 -py==1.4.33 -mock==2.0.0 -parameterized==0.6.1 -pathlib2==2.3.2; python_version<"3.4" -futures==3.2.0; python_version<"3.2.3" -# Py3.2 backport -backports.tempfile==1.0 +# Following are "dev" version of libraries that SAM CLI consumes for development purposes. +# For production releases, see prod.txt where these libraries are pinned to a particular version +-e git://github.com/awslabs/aws-lambda-builders.git@develop#egg=aws_lambda_builders diff --git a/requirements/prod.txt b/requirements/prod.txt new file mode 100644 index 0000000000..a4c943e012 --- /dev/null +++ b/requirements/prod.txt @@ -0,0 +1,4 @@ +# SAM CLI depends on these libraries that the team authors/controls. Pinning them to particular version here +# for production usage. + +aws_lambda_builders==0.2.1 diff --git a/requirements/tools.txt b/requirements/tools.txt new file mode 100644 index 0000000000..a920601b7c --- /dev/null +++ b/requirements/tools.txt @@ -0,0 +1,17 @@ +coverage==4.3.4 +flake8==3.3.0 +tox==2.2.1 +pytest-cov==2.4.0 +# astroid > 2.0.4 is not compatible with pylint1.7 +astroid>=1.5.8,<2.1.0 +pylint==1.7.2 + +# Test requirements +pytest==3.0.7 +py==1.4.33 +mock==2.0.0 +parameterized==0.6.1 +pathlib2==2.3.2; python_version<"3.4" +futures==3.2.0; python_version<"3.2.3" +# Py3.2 backport +backports.tempfile==1.0 diff --git a/setup.py b/setup.py index 30cb2e7b6d..75a921170e 100644 --- a/setup.py +++ b/setup.py @@ -28,11 +28,19 @@ def read_version(): return re.search(r"__version__ = '([^']+)'", content).group(1) +base_reqs = read_requirements("base.txt") +prod_reqs = read_requirements("prod.txt") + +requirements = base_reqs + prod_reqs cmd_name = "sam" + if os.getenv("SAM_CLI_DEV"): # We are installing in a dev environment cmd_name = "samdev" + # Don't install prod requirements for dev release + requirements = base_reqs + setup( name='aws-sam-cli', version=read_version(), @@ -52,10 +60,7 @@ def read_version(): '{}=samcli.cli.main:cli'.format(cmd_name) ] }, - install_requires=read_requirements('base.txt'), - extras_require={ - 'dev': read_requirements('dev.txt') - }, + install_requires=requirements, include_package_data=True, classifiers=[ 'Development Status :: 4 - Beta',