#756017 RFP: bokeh -- interactive visualization for web browsers

Package:
wnpp
Source:
wnpp
Submitter:
"W. Martin Borgert"
Date:
2023-11-29 07:15:05 UTC
Severity:
wishlist
#756017#5
Date:
2014-07-25 13:18:05 UTC
From:
To:
Package name    : bokeh
Version         : 0.5.0
Upstream Author : Continuum Analytics, Inc.
URL             : http://bokeh.pydata.org/
License         : New BSD
Programming Lang: Python
Description     : interactive visualization for web browsers

Bokeh is a Python interactive visualization library that targets
modern web browsers for presentation. Its goal is to provide
elegant, concise construction of novel graphics in the style of
D3.js, but also deliver this capability with high-performance
interactivity over very large or streaming datasets. Bokeh can
help anyone who would like to quickly and easily create
interactive plots, dashboards, and data applications.

Note for packager: All Python 2/3 dependencies are already in
Jessie or on their way. But Bokeh contains also 19 embedded
Javascript libraries and some of them are not yet in Debian.

#756017#18
Date:
2015-09-05 05:44:28 UTC
From:
To:
Hello,

It looks like Alexander Charykov is planning on packaging Bokeh? How is that
going?

I had made not debian compliant version of bokeh for myself.
https://github.com/detrout/python-bokeh

I just tried to update to 0.9.3 and discovered the unit tests want
abstract_rendering and blaze. Were you trying to work on those yet, or were
you busy with grunt?

Diane Trout

#756017#23
Date:
2015-09-09 05:25:11 UTC
From:
To:
I have a packaging tree that I'm using at:
https://github.com/detrout/python-bokeh

It can't be released to Debian until we find a solution for building BokehJS.
(And that it also needs a jquery 2.1.1).

But at least its a start.

Diane

#756017#32
Date:
2016-12-13 23:17:16 UTC
From:
To:
I updated my packaging recipe to 0.12.3, though it still uses the
prebuilt javascript provided when upstream builds the pypi package.

I also looked through the bokehjs dependency list

Name              |         | Debian                  | Version
underscore        |  ^1.5.2 | libjs-underscore        |   1.8.3
backbone          |  ^1.1.0 | libjs-backbone          |   1.3.3
es6-promise       |   3.0.2 | libjs-es6-promise       |   3.2.2
jquery            |  ^2.1.1 | libjs-jquery            |   3.1.1
jquery-mousewheel | ^3.1.12 | libjs-jquery-mousewheel |      11
jquery-ui         | ^1.10.5 | libjs-jquery-ui         |  1.12.1
jsnlog            |  ^2.7.5 |                         |        
mathutils         |   0.0.1 |                         |        
rbush             |  ^1.3.5 | node-rbush              |   2.0.1
proj4             | ^2.3.10 | libjs-proj4             |  2.3.15
sprintf           |  ^0.1.5 | node-sprintf-js?        |   1.0.3
timezone          |  0.0.38 |                         |        
coffee-script     |   1.9.3 | coffeescript            |  1.10.0

Most of the dependencies seem to be in Debian. The build process seems
to use gulp and browserfy.

Also there's another key "devDependency" in the package.json of which I
have no idea how many are important.

#756017#37
Date:
2016-12-19 19:32:57 UTC
From:
To:
I found the javascript teams tool for tracking javascript dependencies
and created a page for bokehjs

https://wiki.debian.org/Javascript/Nodejs/Tasks/bokehjs

#756017#42
Date:
2019-09-13 22:22:04 UTC
From:
To:
Le mardi 08 septembre 2015 à 22:25:11-0700, Diane Trout a écrit :

Dear Diane,

It seems that bokeh 1.3.4 ships a version of BokehJS that is
non-minified and ready-to-use. Wouldn't that be a correct solution for
an initial packaging, even though one could wish to finish the proper
javascript package in a second time?

With best regards,

#756017#47
Date:
2020-07-08 22:41:09 UTC
From:
To:
Hello Diane et. al.,

I am packaging gneiss[1], where one of its dependency is Bokeh. What is
the progress of Bokeh at this time? Additionally, is this a WIP?

Kind regards,
Shayan Doust

[1]: https://salsa.debian.org/med-team/gneiss

#756017#52
Date:
2023-11-03 14:54:49 UTC
From:
To:
I would really like to see bokeh packaged for Debian.

FWIW, I have run npm2deb on bokehjs to see which node packages are
missing in Debian. Here is the output:

$ npm2deb depends -b -r bokehjs

Dependencies:
NPM                                               Debian
bokehjs (1.4.0)                                   None
├─ canvas2svg (git+https://github.com/bokeh/canvas2svg.git#v1.0.21)None
├─ es5-ext (^0.10.50)                             node-es5-ext
(0.10.62+dfsg1+~1.1.0-2)
├─ es6-map (^0.1.5)                               node-es6-map (0.1.5-3)
├─ es6-promise (4.2.6)                            node-es6-promise
(4.2.8-12)
├─ es6-set (^0.1.5)                               node-es6-set (0.1.6-1)
├─ es6-weak-map (^2.0.2) node-es6-weak-map (2.0.3-3)
├─ flatbush (^3.1.1)                              None
│  └─ flatqueue (^2.0.3)                          None
├─ gloo2 (git+https://github.com/bokeh/gloo2.git#b41bd5d)None
│  └─ error ({'code': 'E404', 'summary': 'Unpublished on
2021-04-28T09:35:17.607Z', 'detail': "\n 'gloo2' is not in this
registry.\n\nNote that you can also install from a\ntarball, folder,
http url, or git url."})None
├─ hammerjs (^2.0.4)                              None
├─ nouislider (^10.0.0)                           node-nouislider
(15.7.1+ds-1)
├─ numbro (git+https://github.com/bokeh/numbro.git#e1b6c52)None
│  └─ bignumber.js (^8 || ^9)                     None
├─ pikaday
(git+https://github.com/bokeh/pikaday.git#6b7258e)node-pikaday
(1.8.2+~1.7.6-2)
├─ proj4 (<2.4)                                   proj4js (2.3.17+ds-1)
├─ slickgrid (git+https://github.com/bokeh/SlickGrid.git#8e993bf)None
│  └─ sortablejs (^1.15.0)                        None
├─ sprintf-js (^1.1.2)                            node-sprintf-js
(1.1.2+ds1+~1.1.2-1)
├─ timezone (^1.0.22)                             None
├─ tslib (^1.10.0)                                node-tslib (2.4.1-1)
└─ underscore.template (^0.1.7)                   None

So basically 8 out 18 node dependencies are missing. From those ones
slickgrid and hemmerjs seem like big ones, the rest maybe not so much,
but of course nobody knows until it is tried out.

Also, trying to check which are the python dependencies, I tried to
create a venv using the system packages and this is what I get:
$ python3 -m venv --system-site-packages my_env

$ . ./my_env/bin/activate

(my_env) $ pip install bokeh
Collecting bokeh
   Using cached bokeh-3.3.0-py3-none-any.whl (6.8 MB)
Requirement already satisfied: Jinja2>=2.9 in
/usr/lib/python3/dist-packages (from bokeh) (3.1.2)
Requirement already satisfied: contourpy>=1 in
/usr/lib/python3/dist-packages (from bokeh) (1.0.7)
Requirement already satisfied: numpy>=1.16 in
/usr/lib/python3/dist-packages (from bokeh) (1.24.2)
Requirement already satisfied: packaging>=16.8 in
/usr/lib/python3/dist-packages (from bokeh) (23.0)
Requirement already satisfied: pandas>=1.2 in
/usr/lib/python3/dist-packages (from bokeh) (1.5.3)
Requirement already satisfied: pillow>=7.1.0 in
/usr/lib/python3/dist-packages (from bokeh) (9.4.0)
Requirement already satisfied: PyYAML>=3.10 in
/usr/lib/python3/dist-packages (from bokeh) (6.0)
Requirement already satisfied: tornado>=5.1 in
/usr/lib/python3/dist-packages (from bokeh) (6.2)
Requirement already satisfied: xyzservices>=2021.09.1 in
/usr/lib/python3/dist-packages (from bokeh) (2023.2.0)
Installing collected packages: bokeh
Successfully installed bokeh-3.3.0

Which seems to indicate that all the python dependencies are already in
Debian. Maybe this is too naive and there are embedded dependencies in
bokeh, but from a cursory look at the bokeh sources I could not find it.

#756017#57
Date:
2023-11-03 16:06:37 UTC
From:
To:

I think getting bokeh pacakged would be great, I just lack time and
motivation to deal with the javascript packages.

Also I think there were times when bokeh was using an unpackaged build
system, but they switched to something simpler.

Diane

#756017#62
Date:
2023-11-29 07:13:54 UTC
From:
To:
Hi,

Am Tue, Sep 08, 2015 at 10:25:11PM -0700 schrieb Diane Trout:
Python Team might make sense.  I've independently from this RFP (which
I was not aware about) createt a repository

https://salsa.debian.org/python-team/packages/python-bokeh

and merged+updated the packaging code from Diane above.

As you can see in the build log[1] there is a failurein creating
bokeh.js which becomes obvious if you run the command in setup.py
manually:


$ node make build
node:internal/modules/cjs/loader:1042
  throw err;
  ^

Error: Cannot find module '/build/python-bokeh-3.3.1/make'
    at Module._resolveFilename (node:internal/modules/cjs/loader:1039:15)
    at Module._load (node:internal/modules/cjs/loader:885:27)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
    at node:internal/main/run_main_module:23:47 {
  code: 'MODULE_NOT_FOUND',
  requireStack: []
}

Node.js v18.13.0


This is due to the missing JS packages[2] mentioned here in this bug
log.

While bokeh would be in fact very helpful for several interesting
scientific Python3 packages I personally do not have the power to dive
into JS packaging.

Kind regards
    Andreas.


[1] https://salsa.debian.org/python-team/packages/python-bokeh/-/jobs/4978289
[2] https://wiki.debian.org/Javascript/Nodejs/Tasks/bokehjs