diff --git a/.circleci/config.yml b/.circleci/config.yml index 053280cd..a3863bd4 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -15,7 +15,7 @@ jobs: steps: - checkout - run: ci/config_auth.sh - - run: nox -s unit-3.6 system-3.6 + - run: nox -s unit-3.6 "pip-3.7": docker: @@ -23,7 +23,15 @@ jobs: steps: - checkout - run: ci/config_auth.sh - - run: nox -s unit-3.7 system-3.7 cover + - run: nox -s unit-3.7 + + "pip-3.8": + docker: + - image: thekevjames/nox + steps: + - checkout + - run: ci/config_auth.sh + - run: nox -s unit-3.8 system-3.8 cover "lint": docker: @@ -47,11 +55,11 @@ jobs: - checkout - run: ci/config_auth.sh - run: ci/run_conda.sh - "conda-3.7-NIGHTLY": + "conda-3.8-NIGHTLY": docker: - image: continuumio/miniconda3 environment: - PYTHON: "3.7" + PYTHON: "3.8" PANDAS: "NIGHTLY" steps: - checkout @@ -65,6 +73,7 @@ workflows: - "pip-3.5" - "pip-3.6" - "pip-3.7" + - "pip-3.8" - lint - "conda-3.6-0.20.1" - - "conda-3.7-NIGHTLY" \ No newline at end of file + - "conda-3.8-NIGHTLY" \ No newline at end of file diff --git a/ci/requirements-3.5.pip b/ci/constraints-3.5.pip similarity index 88% rename from ci/requirements-3.5.pip rename to ci/constraints-3.5.pip index 2f9911de..2fd6f28a 100644 --- a/ci/requirements-3.5.pip +++ b/ci/constraints-3.5.pip @@ -1,5 +1,5 @@ numpy==1.13.3 -pandas==0.19.0 +pandas==0.20.1 google-auth==1.4.1 google-auth-oauthlib==0.0.1 google-cloud-bigquery==1.11.1 diff --git a/ci/requirements-3.6.pip b/ci/constraints-3.6.pip similarity index 100% rename from ci/requirements-3.6.pip rename to ci/constraints-3.6.pip diff --git a/ci/requirements-3.7.pip b/ci/constraints-3.7.pip similarity index 100% rename from ci/requirements-3.7.pip rename to ci/constraints-3.7.pip diff --git a/ci/constraints-3.8.pip b/ci/constraints-3.8.pip new file mode 100644 index 00000000..1411a4a0 --- /dev/null +++ b/ci/constraints-3.8.pip @@ -0,0 +1 @@ +pandas \ No newline at end of file diff --git a/ci/requirements-3.7-NIGHTLY.conda b/ci/requirements-3.8-NIGHTLY.conda similarity index 100% rename from ci/requirements-3.7-NIGHTLY.conda rename to ci/requirements-3.8-NIGHTLY.conda diff --git a/docs/source/changelog.rst b/docs/source/changelog.rst index a5754a27..a6ff82f5 100644 --- a/docs/source/changelog.rst +++ b/docs/source/changelog.rst @@ -1,6 +1,23 @@ Changelog ========= +.. _changelog-0.14.0: + +0.14.0 / TBD +------------ + +Dependency updates +~~~~~~~~~~~~~~~~~~ + +- Update the minimum version of ``pandas`` to 0.20.1. + (:issue:`331`) + +Internal changes +~~~~~~~~~~~~~~~~ + +- Update tests to run against for Python 3.8. (:issue:`331`) + + .. _changelog-0.13.3: 0.13.3 / 2020-09-30 @@ -9,7 +26,6 @@ Changelog - Include needed "extras" from ``google-cloud-bigquery`` package as dependencies. Exclude incompatible 2.0 version. (:issue:`324`, :issue:`329`) - .. _changelog-0.13.2: 0.13.2 / 2020-05-14 @@ -26,7 +42,6 @@ Changelog - Fix ``AttributeError`` with BQ Storage API to download empty results. (:issue:`299`) - .. _changelog-0.13.0: 0.13.0 / 2019-12-12 diff --git a/noxfile.py b/noxfile.py index 1ab4ce89..e30593be 100644 --- a/noxfile.py +++ b/noxfile.py @@ -10,8 +10,9 @@ import nox -supported_pythons = ["3.5", "3.6", "3.7"] -latest_python = "3.7" +supported_pythons = ["3.5", "3.6", "3.7", "3.8"] +system_test_pythons = ["3.5", "3.8"] +latest_python = "3.8" # Use a consistent version of black so CI is deterministic. black_package = "black==19.10b0" @@ -35,7 +36,14 @@ def blacken(session): @nox.session(python=supported_pythons) def unit(session): session.install("pytest", "pytest-cov") - session.install("-e", ".") + session.install( + "-e", + ".", + # Use dependencies versions from constraints file. This enables testing + # across a more full range of versions of the dependencies. + "-c", + os.path.join(".", "ci", "constraints-{}.pip".format(session.python)), + ) session.run( "pytest", os.path.join(".", "tests", "unit"), @@ -77,19 +85,16 @@ def docs(session): ) -@nox.session(python=supported_pythons) +@nox.session(python=system_test_pythons) def system(session): session.install("pytest", "pytest-cov") - session.install( - "-r", - os.path.join(".", "ci", "requirements-{}.pip".format(session.python)), - ) session.install( "-e", ".", - # Use dependencies from requirements file instead. - # This enables testing with specific versions of the dependencies. - "--no-dependencies", + # Use dependencies versions from constraints file. This enables testing + # across a more full range of versions of the dependencies. + "-c", + os.path.join(".", "ci", "constraints-{}.pip".format(session.python)), ) # Skip local auth tests on CI. diff --git a/setup.py b/setup.py index c4856a26..bf2fde71 100644 --- a/setup.py +++ b/setup.py @@ -18,7 +18,7 @@ def readme(): INSTALL_REQUIRES = [ "setuptools", - "pandas>=0.19.0", + "pandas>=0.20.1", "pydata-google-auth", "google-auth", "google-auth-oauthlib", @@ -47,6 +47,7 @@ def readme(): "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", + "Programming Language :: Python :: 3.8", "Topic :: Scientific/Engineering", ], keywords="data",