diff --git a/.github/workflows/testing.yml b/.github/workflows/testing.yml index b6ab5f8..67bc50c 100644 --- a/.github/workflows/testing.yml +++ b/.github/workflows/testing.yml @@ -11,6 +11,7 @@ jobs: - "3.6" - "3.7" - "3.8" + - "3.9" zope-version: - "zope-4" - "zope-5" @@ -22,6 +23,8 @@ jobs: python-version: "2.7" - zope-version: "zope-5" python-version: "2.7" + - zope-version: "zope-4" + python-version: "3.9" runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v2 @@ -39,7 +42,7 @@ jobs: ${{ runner.os }}-test - name: Install dependencies run: | - pip install -U pip + pip install -U pip wheel pip install -r requirements-testing-${{ matrix.zope-version }}.txt - name: Run Tests run: | diff --git a/.gitignore b/.gitignore index 7c98ef7..3ae8b35 100644 --- a/.gitignore +++ b/.gitignore @@ -14,7 +14,9 @@ parts pip-selfcheck.json pyvenv.cfg /.coverage +/.coverage.* /.installed.cfg /.tox /coverage.xml +/default.profraw /htmlcov diff --git a/README.rst b/README.rst index 6597ce9..592523c 100644 --- a/README.rst +++ b/README.rst @@ -27,8 +27,9 @@ You can use it with a part like this:: zcml = my.distribution .. ATTENTION:: - This release is targeted at Plone 5.2, ZODB 5, Zope 4, and Python 2.7, 3.6 or 3.7. - If you are using this recipe with earlier versions, you should use one of the releases from the 4.x series. + This release is targeted at Plone 5.2, ZODB 5, Zope 4 and Zope 5, and + Python 2.7 and 3.5-3.9. If you are using this recipe with earlier versions, + you should use one of the releases from the 4.x series. .. contents:: **Contents** diff --git a/news/164.feature b/news/164.feature new file mode 100644 index 0000000..c4ef3af --- /dev/null +++ b/news/164.feature @@ -0,0 +1,2 @@ +Added support for Python 3.9 and restored support for Python 3.5 (needed for Zope 4) +[dataflake] diff --git a/setup.py b/setup.py index 6dbc7ab..cd647d8 100644 --- a/setup.py +++ b/setup.py @@ -31,15 +31,18 @@ "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8", + "Programming Language :: Python :: 3.9", "Programming Language :: Python :: Implementation :: CPython", ], packages=find_packages('src'), include_package_data=True, package_dir={'': 'src'}, namespace_packages=['plone', 'plone.recipe'], + python_requires='>=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*', install_requires=[ 'zc.buildout', 'setuptools', diff --git a/src/plone/recipe/zope2instance/ctl.py b/src/plone/recipe/zope2instance/ctl.py index 35ecd90..75ae39c 100644 --- a/src/plone/recipe/zope2instance/ctl.py +++ b/src/plone/recipe/zope2instance/ctl.py @@ -955,7 +955,8 @@ def main(args=None): if (os.environ.get('PLONE_ENV')): PLONE_ENV = os.environ.get('PLONE_ENV') - load_dotenv(os.path.join(options.directory, '..', '..', '.env.{}'.format(PLONE_ENV))) + load_dotenv(os.path.join(options.directory, + '..', '..', '.env.{}'.format(PLONE_ENV))) # Run the right command depending on whether we have ZServer options.interpreter = os.path.join(options.directory, 'bin', 'interpreter') diff --git a/tox.ini b/tox.ini index c2cf917..fa62b55 100644 --- a/tox.ini +++ b/tox.ini @@ -1,9 +1,11 @@ [tox] envlist = py27, + py35, py36, py37, py38, + py39, flake8, coverage @@ -25,6 +27,13 @@ setenv = basepython = python2.7 skip_install = true deps = coverage +depends = + py27 + py35 + py36 + py37 + py38 + py39 setenv = COVERAGE_FILE=.coverage commands =