diff --git a/.travis.yml b/.travis.yml index 7e3b7cb186fa1..0c8a8fff9e546 100644 --- a/.travis.yml +++ b/.travis.yml @@ -6,6 +6,13 @@ python: - "2.7" - "3.6" +# Enable 3.7 without globally enabling sudo and dist: xenial for other build jobs +matrix: + include: + - python: 3.7 + dist: xenial + sudo: true + install: # Install the code requirements - make init diff --git a/DEVELOPMENT_GUIDE.rst b/DEVELOPMENT_GUIDE.rst index 71beeccbe36e9..c5b5652b402e2 100644 --- a/DEVELOPMENT_GUIDE.rst +++ b/DEVELOPMENT_GUIDE.rst @@ -14,7 +14,7 @@ Environment Setup 1. Install Python Versions ~~~~~~~~~~~~~~~~~~~~~~~~~~ -We support both Python 2.7 and 3.6 versions. +We support Python 2.7, 3.6 and 3.7 versions. Follow the idioms from this `excellent cheatsheet`_ to make sure your code is compatible with both Python versions. Our CI/CD pipeline is setup to run unit tests against both Python versions. So make sure you test it with both versions before sending a Pull Request. `pyenv`_ is a great tool to easily setup multiple Python versions. @@ -24,7 +24,8 @@ versions before sending a Pull Request. `pyenv`_ is a great tool to easily setup #. Install PyEnv - ``curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash`` #. ``pyenv install 2.7.14`` #. ``pyenv install 3.6.4`` -#. Make both Python versions available in the project: ``pyenv local 3.6.4 2.7.14`` +#. ``pyenv install 3.7.0`` +#. Make Python versions available in the project: ``pyenv local 3.6.4 2.7.14 3.7.0`` 2. Activate Virtualenv @@ -32,8 +33,10 @@ versions before sending a Pull Request. `pyenv`_ is a great tool to easily setup Virtualenv allows you to install required libraries outside of the Python installation. A good practice is to setup a different virtualenv for each project. `pyenv`_ comes with a handy plugin that can create virtualenv. -#. Create new virtualenv if it does not exist: ``pyenv virtualenv 2.7.14 samcli27`` and ``pyenv virtualenv 3.6.4 samcli36`` -#. ``pyenv activate samcli27`` for Python2.7 or ``pyenv activate samcli36`` for Python3.6 +Depending on the python version, the following commands would change to be the appropriate python version. + +#. ``pyenv virtualenv 3.7.0 samcli36`` +#. ``pyenv activate samcli37`` for Python3.7 3. Install dev version of SAM CLI @@ -42,7 +45,7 @@ We will install a development version of SAM CLI from source into the virtualenv make changes. We will install in a command called ``samdev`` to keep it separate from a global SAM CLI installation, if any. -#. Activate Virtualenv: ``pyenv activate samcli27`` or ``pyenv activate samcli36`` +#. Activate Virtualenv: ``pyenv activate samcli37`` #. Install dev CLI: ``make init`` #. Make sure installation succeeded: ``which samdev`` diff --git a/setup.py b/setup.py index 53cc16e2b88a5..dc07fd28f20ce 100644 --- a/setup.py +++ b/setup.py @@ -67,6 +67,7 @@ def read_version(): 'Programming Language :: Python', 'Programming Language :: Python :: 2.7', 'Programming Language :: Python :: 3.6', + 'Programming Language :: Python :: 3.7', 'Topic :: Internet', 'Topic :: Software Development :: Build Tools', 'Topic :: Utilities', diff --git a/tox.ini b/tox.ini index 8b9242ae3b8cf..875b09f399ab1 100644 --- a/tox.ini +++ b/tox.ini @@ -4,7 +4,7 @@ # and then run "tox" from this directory. [tox] -envlist = py27, py36 +envlist = py27, py36, py37 [testenv] whitelist_externals = make