diff --git a/.gitignore b/.gitignore index 3fad370..fe3e910 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ /bokeh-2.2.1.tar.gz /bokeh-2.3.0.tar.gz +/bokeh-3.6.3.tar.gz diff --git a/bokeh-pr10987-python312-configparser.patch b/bokeh-pr10987-python312-configparser.patch deleted file mode 100644 index 43a4737..0000000 --- a/bokeh-pr10987-python312-configparser.patch +++ /dev/null @@ -1,52 +0,0 @@ -From 865c54896e6158c1195e5ec8352f300cbf10920f Mon Sep 17 00:00:00 2001 -From: Bryan Van de Ven -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 ---- - 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): diff --git a/bokeh-pr11174-replace-jinja2-markup.patch b/bokeh-pr11174-replace-jinja2-markup.patch deleted file mode 100644 index 8e6f9a8..0000000 --- a/bokeh-pr11174-replace-jinja2-markup.patch +++ /dev/null @@ -1,131 +0,0 @@ -From 7047c6a90535564c9d05121fc8a095aef1de3c21 Mon Sep 17 00:00:00 2001 -From: kernc -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 @@ - ""}}; - - 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 diff --git a/python-bokeh.spec b/python-bokeh.spec index 7edc810..1cb558c 100644 --- a/python-bokeh.spec +++ b/python-bokeh.spec @@ -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 - 3.6.3-1 +- Bump to 3.6.3 + * Fri Jan 16 2026 Federico Pellegrin - 2.3.0-24 - Use new Python macros in spec file (rhbz#2377489) diff --git a/sources b/sources index b2c48ea..785bf62 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (bokeh-2.3.0.tar.gz) = 9e584810ffd1cc66b2c97ffbd527cb0fe4a7c63dd0cc9ddae29beae167db9c4333c2323928a91117ac226e401997dd2b2d6f8968c0618c3b40c70c6bac334c95 +SHA512 (bokeh-3.6.3.tar.gz) = 3e5d98426cd317f77f1c0c12d029138bea022c9308c238713824828fabb32132c218574eefbbe3b844630faa540439292e8af07e40c52019173a220475c2e4c0