Bump to 3.6.3

This commit is contained in:
Federico Pellegrin 2026-01-26 09:53:58 +01:00
commit b6904e1fe4
5 changed files with 35 additions and 247 deletions

1
.gitignore vendored
View file

@ -1,2 +1,3 @@
/bokeh-2.2.1.tar.gz
/bokeh-2.3.0.tar.gz
/bokeh-3.6.3.tar.gz

View file

@ -1,52 +0,0 @@
From 865c54896e6158c1195e5ec8352f300cbf10920f Mon Sep 17 00:00:00 2001
From: Bryan Van de Ven <bryan@bokeh.org>
Date: Tue, 2 Mar 2021 21:53:55 -0800
Subject: [PATCH] Bryanv/2 3 1 forwardports (#10987)
* Add missing comma in example code (#10973)
* update to versioneer 0.19 (#10969)
* update to versioneer 0.19
* unused loop var
* Add note re. Chrome/MacOS bug (#10964)
* Add note re. Chrome/MacOS bug
* Make wording consistent with preceding paragraph
* Link to GH issue
* Add information about Bokeh channel for installation (#10953)
* Add info about Bokeh channel on Anaconda
* Add info on new releases
Co-authored-by: Timo Cornelius Metzger <ticon@gmx.net>
---
bokeh/_version.py | 65 ++---
bokeh/models/widgets/inputs.py | 8 +
.../source/docs/first_steps/first_steps_9.rst | 2 +-
.../source/docs/first_steps/installation.rst | 8 +
versioneer.py | 234 ++++++++++--------
5 files changed, 188 insertions(+), 129 deletions(-)
diff --git a/versioneer.py b/versioneer.py
index 60e4efb714f..eaf1aba67bd 100644
--- a/versioneer.py
+++ b/versioneer.py
@@ -337,9 +331,9 @@ def get_config_from_root(root):
# configparser.NoOptionError (if it lacks "VCS="). See the docstring at
# the top of versioneer.py for instructions on writing your setup.cfg .
setup_cfg = os.path.join(root, "setup.cfg")
- parser = configparser.SafeConfigParser()
+ parser = configparser.ConfigParser()
with open(setup_cfg, "r") as f:
- parser.readfp(f)
+ parser.read_file(f)
VCS = parser.get("versioneer", "VCS") # mandatory
def get(parser, name):

View file

@ -1,131 +0,0 @@
From 7047c6a90535564c9d05121fc8a095aef1de3c21 Mon Sep 17 00:00:00 2001
From: kernc <kerncece@gmail.com>
Date: Wed, 21 Apr 2021 17:29:22 +0200
Subject: [PATCH] Replace deprecated jinja2.Markup with jinja2.tojson (#11174)
* Replace deprecated jinja2.Markup -> markupsafe.Markup
* Expose |tojson as |json. Bump Jinja2 >=2.9
* Replace |json filter with jinja's |tojson throughout
* Fix test_autoload_template_has_changed
---
_setup_support.py | 2 +-
bokeh/core/_templates/autoload_js.js | 14 +++++++-------
bokeh/core/_templates/autoload_nb_js.js | 6 +++---
bokeh/core/templates.py | 4 +---
tests/unit/bokeh/core/test_templates.py | 2 +-
5 files changed, 13 insertions(+), 15 deletions(-)
diff --git a/bokeh/core/_templates/autoload_js.js b/bokeh/core/_templates/autoload_js.js
index 792a74c7cc2..d15ea9778e6 100644
--- a/bokeh/core/_templates/autoload_js.js
+++ b/bokeh/core/_templates/autoload_js.js
@@ -20,7 +20,7 @@ calls it with the rendered model.
return new Date();
}
- var force = {{ force|default(False)|json }};
+ var force = {{ force|default(False)|tojson }};
if (typeof root._bokeh_onload_callbacks === "undefined" || force === true) {
root._bokeh_onload_callbacks = [];
@@ -32,7 +32,7 @@ calls it with the rendered model.
{% block autoload_init %}
{%- if elementid -%}
- var element = document.getElementById({{ elementid|json }});
+ var element = document.getElementById({{ elementid|tojson }});
if (element == null) {
console.warn("Bokeh: autoload.js configured with elementid '{{ elementid }}' but no matching script tag was found.")
}
@@ -91,7 +91,7 @@ calls it with the rendered model.
document.body.appendChild(element);
}
- const hashes = {{ bundle.hashes|json }};
+ const hashes = {{ bundle.hashes|tojson }};
for (let i = 0; i < js_urls.length; i++) {
const url = js_urls[i];
@@ -110,17 +110,17 @@ calls it with the rendered model.
}
{% if bundle %}
- var js_urls = {{ bundle.js_urls|json }};
- var css_urls = {{ bundle.css_urls|json }};
+ var js_urls = {{ bundle.js_urls|tojson }};
+ var css_urls = {{ bundle.css_urls|tojson }};
{% else %}
- var js_urls = {{ js_urls|json }};
- var css_urls = {{ css_urls|json }};
+ var js_urls = {{ js_urls|tojson }};
+ var css_urls = {{ css_urls|tojson }};
{% endif %}
var inline_js = [
{%- for css in (bundle.css_raw if bundle else css_raw) %}
function(Bokeh) {
- inject_raw_css({{ css|json }});
+ inject_raw_css({{ css|tojson }});
},
{%- endfor %}
{%- for js in (bundle.js_raw if bundle else js_raw) %}
diff --git a/bokeh/core/_templates/autoload_nb_js.js b/bokeh/core/_templates/autoload_nb_js.js
index 2c75850b2b4..ca96a59cd2d 100644
--- a/bokeh/core/_templates/autoload_nb_js.js
+++ b/bokeh/core/_templates/autoload_nb_js.js
@@ -132,7 +132,7 @@
{% block autoload_init %}
if (typeof (root._bokeh_timeout) === "undefined" || force === true) {
- root._bokeh_timeout = Date.now() + {{ timeout|default(0)|json }};
+ root._bokeh_timeout = Date.now() + {{ timeout|default(0)|tojson }};
root._bokeh_failed_load = false;
}
@@ -153,7 +153,7 @@
"</div>"}};
function display_loaded() {
- var el = document.getElementById({{ elementid|json }});
+ var el = document.getElementById({{ elementid|tojson }});
if (el != null) {
el.textContent = "BokehJS is loading...";
}
@@ -181,7 +181,7 @@
console.log("Bokeh: BokehJS failed to load within specified timeout.");
root._bokeh_failed_load = true;
} else if (force !== true) {
- var cell = $(document.getElementById({{ elementid|json }})).parents('.cell').data().cell;
+ var cell = $(document.getElementById({{ elementid|tojson }})).parents('.cell').data().cell;
cell.output_area.append_execute_result(NB_LOAD_WARNING)
}
{% endblock %}
diff --git a/bokeh/core/templates.py b/bokeh/core/templates.py
index 10344ecaf7d..c7cd25ea7f2 100644
--- a/bokeh/core/templates.py
+++ b/bokeh/core/templates.py
@@ -36,12 +36,11 @@
#-----------------------------------------------------------------------------
# Standard library imports
-import json
import sys
from os.path import dirname, join
# External imports
-from jinja2 import Environment, FileSystemLoader, Markup
+from jinja2 import Environment, FileSystemLoader
#-----------------------------------------------------------------------------
# Globals and constants
@@ -86,7 +85,6 @@ def get_env():
#-----------------------------------------------------------------------------
_env = get_env()
-_env.filters['json'] = lambda obj: Markup(json.dumps(obj))
#-----------------------------------------------------------------------------
# General API

View file

@ -12,8 +12,8 @@ anyone who would like to quickly and easily make interactive plots, dashboards,
and data applications.}
Name: python-%{pypi_name}
Version: 2.3.0
Release: 24%{?dist}
Version: 3.6.3
Release: 1%{?dist}
Summary: Interactive plots and applications in the browser from Python
# License breakdown: licensecheck -r . | sed '/UNKNOWN/ d' | sort -t ':' -k 2
@ -66,12 +66,6 @@ URL: https://github.com/bokeh/bokeh
Source0: %pypi_source
# Read package-lock.json and general list of bundled runtime libraries their versions
Source1: parse-deps.py
# From https://github.com/bokeh/bokeh/commit/865c54896e6158c1195e5ec8352f300cbf10920f
# https://github.com/bokeh/bokeh/pull/10987
Patch0: bokeh-pr10987-python312-configparser.patch
# https://github.com/bokeh/bokeh/commit/7047c6a90535564c9d05121fc8a095aef1de3c21
# https://github.com/bokeh/bokeh/pull/11174
Patch1: bokeh-pr11174-replace-jinja2-markup.patch
BuildArch: noarch
@ -90,79 +84,53 @@ BuildRequires: python3-setuptools
# MIT
Provides: bundled(nodejs-@bokeh/numbro) = 1.6.2
# MIT
Provides: bundled(nodejs-@bokeh/slickgrid) = 2.4.2701
Provides: bundled(nodejs-@bokeh/slickgrid) = 2.4.4103
# MIT
Provides: bundled(nodejs-@types/jquery) = 3.5.1
Provides: bundled(nodejs-@types/jquery) = 3.5.29
# MIT
Provides: bundled(nodejs-@types/sizzle) = 2.3.2
Provides: bundled(nodejs-@types/sizzle) = 2.3.8
# MIT
Provides: bundled(nodejs-@types/slickgrid) = 2.1.30
Provides: bundled(nodejs-@types/slickgrid) = 2.1.40
# MIT
Provides: bundled(nodejs-choices.js) = 9.0.1
Provides: bundled(nodejs-choices.js) = 10.2.0
# MIT
Provides: bundled(nodejs-deepmerge) = 4.3.1
# MIT
Provides: bundled(nodejs-esm) = 3.2.25
# ISC
Provides: bundled(nodejs-d) = 1.0.1
Provides: bundled(nodejs-flatbush) = 4.4.0
# MIT
Provides: bundled(nodejs-deepmerge) = 4.2.2
Provides: bundled(nodejs-flatpickr) = 4.6.13
# ISC
Provides: bundled(nodejs-es5-ext) = 0.10.53
# MIT
Provides: bundled(nodejs-es6-iterator) = 2.0.3
# MIT
Provides: bundled(nodejs-es6-map) = 0.1.5
# MIT
Provides: bundled(nodejs-es6-promise) = 4.2.8
# MIT
Provides: bundled(nodejs-es6-set) = 0.1.5
# ISC
Provides: bundled(nodejs-es6-symbol) = 3.1.3
# ISC
Provides: bundled(nodejs-es6-weak-map) = 2.0.3
# MIT
Provides: bundled(nodejs-event-emitter) = 0.3.5
# ISC
Provides: bundled(nodejs-ext) = 1.4.0
# ISC
Provides: bundled(nodejs-flatbush) = 3.3.0
# MIT
Provides: bundled(nodejs-flatpickr) = 4.6.3
# ISC
Provides: bundled(nodejs-flatqueue) = 1.2.1
Provides: bundled(nodejs-flatqueue) = 2.0.3
# ASL 2.0
Provides: bundled(nodejs-fuse.js) = 3.6.1
Provides: bundled(nodejs-fuse.js) = 6.6.2
# MIT
Provides: bundled(nodejs-hammerjs) = 2.0.8
Provides: bundled(nodejs-jquery-ui) = 1.13.2
# MIT
Provides: bundled(nodejs-jquery-ui) = 1.12.1
Provides: bundled(nodejs-jquery) = 3.7.1
# ASL 2.0
Provides: bundled(nodejs-mathjax-full) = 3.2.2
# ASL 2.0
Provides: bundled(nodejs-mhchemparser) = 4.2.1
# MIT
Provides: bundled(nodejs-jquery) = 3.5.1
Provides: bundled(nodejs-nouislider) = 15.7.1
# MIT
Provides: bundled(nodejs-js-tokens) = 4.0.0
Provides: bundled(nodejs-proj4) = 2.11.0
# MIT
Provides: bundled(nodejs-loose-envify) = 1.4.0
Provides: bundled(nodejs-regl) = 2.1.0
# MIT
Provides: bundled(nodejs-mgrs) = 1.0.0
# ISC
Provides: bundled(nodejs-next-tick) = 1.0.0
# MIT
Provides: bundled(nodejs-nouislider) = 14.6.0
# MIT
Provides: bundled(nodejs-proj4) = 2.6.2
# MIT
Provides: bundled(nodejs-redux) = 4.0.5
Provides: bundled(nodejs-redux) = 4.2.1
# BSD
Provides: bundled(nodejs-sprintf-js) = 1.1.2
# MIT
Provides: bundled(nodejs-symbol-observable) = 1.2.0
Provides: bundled(nodejs-sprintf-js) = 1.1.4
# MIT
Provides: bundled(nodejs-timezone) = 1.0.23
# BSD
Provides: bundled(nodejs-tslib) = 1.13.0
# ISC
Provides: bundled(nodejs-type) = 1.2.0
Provides: bundled(nodejs-tslib) = 2.7.0
# MIT
Provides: bundled(nodejs-underscore.template) = 0.1.7
# MIT
Provides: bundled(nodejs-wkt-parser) = 1.2.4
Provides: bundled(nodejs-wkt-parser) = 1.3.3
# Optional deps
# https://docs.bokeh.org/en/latest/docs/installation.html#installation
@ -201,11 +169,8 @@ BuildRequires: %{py3_dist typing_extensions} >= 3.7.4
%prep
%autosetup -n %{pypi_name}-%{version} -p1
rm -rf %{pypi_name}.egg-info
# Replace `np.bool8` with `np.bool_` for NumPy 2.x.
# This is for `netpyne` failing on the deprecated type alias.
# https://github.com/bokeh/bokeh/pull/12690
sed -i 's/np\.bool8/np.bool_/g' $(grep -rl 'np\.bool8')
# Add to generate correctly egg-info
sed -i 's/dynamic = \["version"\]/version = "%{version}"'/ pyproject.toml
%generate_buildrequires
%pyproject_buildrequires
@ -218,6 +183,8 @@ sed -i 's/np\.bool8/np.bool_/g' $(grep -rl 'np\.bool8')
# Remove zero length file
rm -f %{buildroot}/%{python3_sitelib}/bokeh/server/static/.keep
# Remove static typing information generated files
rm -rf %{buildroot}/%{python3_sitelib}/typings
%check
%if %{with tests}
@ -234,6 +201,9 @@ rm -f %{buildroot}/%{python3_sitelib}/bokeh/server/static/.keep
%{python3_sitelib}/%{pypi_name}
%changelog
* Mon Jan 26 2026 Federico Pellegrin <fede@evolware.org> - 3.6.3-1
- Bump to 3.6.3
* Fri Jan 16 2026 Federico Pellegrin <fede@evolware.org> - 2.3.0-24
- Use new Python macros in spec file (rhbz#2377489)

View file

@ -1 +1 @@
SHA512 (bokeh-2.3.0.tar.gz) = 9e584810ffd1cc66b2c97ffbd527cb0fe4a7c63dd0cc9ddae29beae167db9c4333c2323928a91117ac226e401997dd2b2d6f8968c0618c3b40c70c6bac334c95
SHA512 (bokeh-3.6.3.tar.gz) = 3e5d98426cd317f77f1c0c12d029138bea022c9308c238713824828fabb32132c218574eefbbe3b844630faa540439292e8af07e40c52019173a220475c2e4c0