Skip to content

Commit

Permalink
Drop support for Python 3.6 (#10945)
Browse files Browse the repository at this point in the history
* remove Python 3.6 from CI workflows

* update env files

* udpate build configs

* update classifiers

* update docs references

* start release notes

* mypy tweaks for 3.7

* update bokeh info docstring
  • Loading branch information
bryevdv committed Feb 26, 2021
1 parent e542ffe commit 5357c0c
Show file tree
Hide file tree
Showing 15 changed files with 53 additions and 94 deletions.
8 changes: 4 additions & 4 deletions .github/workflows/bokeh-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ jobs:
with:
miniconda-version: 'latest'
activate-environment: bk-test
environment-file: ci/environment-test-3.6.yml
environment-file: ci/environment-test-3.7.yml

- name: Download Bokehjs
uses: actions/download-artifact@v1
Expand Down Expand Up @@ -269,7 +269,7 @@ jobs:
max-parallel: 6
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
python-version: [3.6, 3.7, 3.8, 3.9]
python-version: [3.7, 3.8, 3.9]

steps:
- uses: actions/checkout@v2
Expand Down Expand Up @@ -333,7 +333,7 @@ jobs:
with:
miniconda-version: 'latest'
activate-environment: bk-test
environment-file: ci/environment-test-3.6.yml
environment-file: ci/environment-test-3.7.yml

- name: Download Bokehjs
uses: actions/download-artifact@v1
Expand Down Expand Up @@ -435,7 +435,7 @@ jobs:
with:
miniconda-version: 'latest'
activate-environment: bk-test
environment-file: ci/environment-test-3.6.yml
environment-file: ci/environment-test-3.7.yml

- name: Install downstream packages
shell: bash -l {0}
Expand Down
15 changes: 8 additions & 7 deletions bokeh/command/subcommands/info.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,12 +17,13 @@
.. code-block:: none
Python version : 3.6.5
IPython version : 6.3.1
Bokeh version : 0.12.15
BokehJS static path : /opt/anaconda/lib/python3.6/site-packages/bokeh/server/static
node.js version : v8.11.1
npm version : 5.8.0
Python version : 3.9.1 (default, Dec 11 2020, 06:28:49)
IPython version : 7.20.0
Tornado version : 6.1
Bokeh version : 2.3.0
BokehJS static path : /opt/anaconda/envs/test/lib/python3.9/site-packages/bokeh/server/static
node.js version : v15.10.0
npm version : 7.5.3
Sometimes it can be useful to get just paths to the BokehJS static files in order
to configure other servers or processes. To do this, use the ``--static`` option
Expand All @@ -35,7 +36,7 @@
.. code-block:: none
/opt/anaconda/lib/python3.6/site-packages/bokeh/server/static
/opt/anaconda/envs/test/lib/python3.9/site-packages/bokeh/server/static
'''

Expand Down
4 changes: 2 additions & 2 deletions bokeh/server/tornado.py
Original file line number Diff line number Diff line change
Expand Up @@ -167,11 +167,11 @@ class BokehTornado(TornadoApplication):
websocket_compression_level (int, optional):
Set the Tornado WebSocket ``compression_level`` documented in
https://docs.python.org/3.6/library/zlib.html#zlib.compressobj.
https://docs.python.org/3.7/library/zlib.html#zlib.compressobj.
websocket_compression_mem_level (int, optional):
Set the Tornado WebSocket compression ``mem_level`` documented in
https://docs.python.org/3.6/library/zlib.html#zlib.compressobj.
https://docs.python.org/3.7/library/zlib.html#zlib.compressobj.
index (str, optional):
Path to a Jinja2 template to use for the root URL
Expand Down
2 changes: 1 addition & 1 deletion ci/environment-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ name: bk-test
channels:
- conda-forge
dependencies:
- python=3.6
- python=3.7
- conda-build=3.18.10
- conda-verify=3.4.2
- libiconv
Expand Down
66 changes: 0 additions & 66 deletions ci/environment-test-3.6.yml

This file was deleted.

3 changes: 2 additions & 1 deletion classifiers.txt
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ Topic :: Scientific/Engineering :: Information Analysis
Topic :: Utilities
Programming Language :: Python
Programming Language :: Python :: 3
Programming Language :: Python :: 3.6
Programming Language :: Python :: 3.7
Programming Language :: Python :: 3.8
Programming Language :: Python :: 3.9
Programming Language :: JavaScript
4 changes: 2 additions & 2 deletions conda.recipe/meta.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -32,10 +32,10 @@ requirements:
- yaml

host:
- python >=3.6
- python >=3.7

run:
- python >=3.6
- python >=3.7

{% for dep in data['install_requires'] %}
- {{ dep.lower() }}
Expand Down
2 changes: 1 addition & 1 deletion docker-tools/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ Note that some examples require additional Python modules and hence will result
Choose a bokeh version to install from the available versions on anaconda.
Run `conda search bokeh` for the available versions. Then, build the image using, for example, version 1.4.0:
``` shell
docker build -t bokeh:dev-py3 --build-arg PYTHON=3.6 -f docker-tools/Dockerfile-from-travis .
docker build -t bokeh:dev-py3 --build-arg PYTHON=3.7 -f docker-tools/Dockerfile-from-travis .
```

Also here, you can test the image by `docker run -it`
Expand Down
2 changes: 1 addition & 1 deletion environment.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ name: bkdev
channels:
- conda-forge
dependencies:
- python>=3.6
- python>=3.7

# build
- setuptools
Expand Down
6 changes: 3 additions & 3 deletions release/system.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
import os
from subprocess import PIPE, STDOUT
from subprocess import run as stdlib_run
from typing import Any, List, cast
from typing import Any, List

# Bokeh imports
from .logger import LOG
Expand All @@ -39,12 +39,12 @@ def run(self, cmd: str, **kw: Any) -> str:
if self.dry_run:
return ""

result = stdlib_run(cmd, shell=True, stdout=PIPE, stderr=STDOUT, text=True, env=env) # type: ignore
result = stdlib_run(cmd, shell=True, stdout=PIPE, stderr=STDOUT, text=True, env=env)

if result.returncode != 0:
raise RuntimeError(*result.stdout.strip().split("\n"))

return cast(str, result.stdout)
return result.stdout

def abort(self) -> None:
""""""
Expand Down
2 changes: 1 addition & 1 deletion setup.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ parentdir_prefix = Bokeh-
style = git-describe

[mypy]
python_version = 3.6
python_version = 3.7

pretty = True
show_error_codes = True
Expand Down
6 changes: 3 additions & 3 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -71,8 +71,8 @@
)

# immediately bail on unsupported Python versions
if sys.version_info[:2] < (3, 6):
raise RuntimeError("Bokeh requires python >= 3.6")
if sys.version_info[:2] < (3, 7):
raise RuntimeError("Bokeh requires python >= 3.7")

# we want to have the license at the top level of the GitHub repo, but setup
# can't include it from there, so copy it to the package directory first thing
Expand Down Expand Up @@ -117,7 +117,7 @@

# details needed by setup
install_requires=REQUIRES,
python_requires=">=3.6",
python_requires=">=3.7",
packages=find_packages(include=["bokeh", "bokeh.*"]),
include_package_data=True,
entry_points={'console_scripts': ['bokeh = bokeh.__main__:main']},
Expand Down
2 changes: 1 addition & 1 deletion sphinx/source/docs/first_steps.rst
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ First steps
Installing Bokeh
----------------

Bokeh is officially supported and tested on Python 3.6 and above (CPython).
Bokeh is officially supported and tested on Python 3.7 and above (CPython).

You can install Bokeh with either ``conda`` or ``pip``:

Expand Down
2 changes: 1 addition & 1 deletion sphinx/source/docs/first_steps/installation.rst
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ Supported platforms
-------------------

Bokeh is officially supported (and continuously tested) on CPython versions
3.6+ only. It's possible that Bokeh does work on other versions of Python, but
3.7+ only. It's possible that Bokeh does work on other versions of Python, but
no guarantees or support are provided.

Installing with ``conda`` or ``pip``
Expand Down
23 changes: 23 additions & 0 deletions sphinx/source/docs/releases/2.4.0.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
.. _release-2-4-0:

2.4.0
=====

Bokeh Version ``2.4.0`` (XXXXXX 2021) is a new minor-release level that
brings many updates. Some of the new feature work includes:


And several other bug fixes and docs additions. For full details see the
:bokeh-tree:`CHANGELOG`.

.. _release-2-4-0-migration:

`Migration Guide <releases.html#release-2-4-0-migration>`__
-----------------------------------------------------------

Minimum Package Versions
~~~~~~~~~~~~~~~~~~~~~~~~

This release raises the minimum version for some packages

* Bokeh now requires Python 3.7 or higher.

0 comments on commit 5357c0c

Please sign in to comment.