Jupyter Binder Application Errors Out
sgratzl opened this issue · 1 comments
sgratzl commented
- Release number or git hash: N/A
- Web browser version and OS: Chrome Version 68.0.3440.106 (Official Build) (64-bit), Win 10 Standard.
Steps to reproduce
Observed behavior
- The container attempts to compile and then throws an error:
Waiting for build to start...
Cloning into '/tmp/repo2dockervd_sukoz'...
HEAD is now at d1d4252 migrate to datavisyn
Building conda environment for python=3.6Using PythonBuildPack builder
Building conda environment for python=3.6Building conda environment for python=3.6Step 1/37 : FROM buildpack-deps:bionic
---> ca8bfba0efb4
Step 2/37 : ENV DEBIAN_FRONTEND=noninteractive
---> Using cache
---> d81c95fb670a
Step 3/37 : RUN apt-get update && apt-get install --yes --no-install-recommends locales && apt-get purge && apt-get clean && rm -rf /var/lib/apt/lists/*
---> Using cache
---> 536ac112a34f
Step 4/37 : RUN echo "en_US.UTF-8 UTF-8" > /etc/locale.gen && locale-gen
---> Using cache
---> 7b44371e8cea
Step 5/37 : ENV LC_ALL en_US.UTF-8
---> Using cache
---> 3cd079f235fa
Step 6/37 : ENV LANG en_US.UTF-8
---> Using cache
---> de5a2979d22d
Step 7/37 : ENV LANGUAGE en_US.UTF-8
---> Using cache
---> 8d16e6a78227
Step 8/37 : ENV SHELL /bin/bash
---> Using cache
---> 3510ef819a42
Step 9/37 : ARG NB_USER
---> Using cache
---> 1122d07af1de
Step 10/37 : ARG NB_UID
---> Using cache
---> 81ba8d6843f3
Step 11/37 : ENV USER ${NB_USER}
---> Using cache
---> e59fb9091998
Step 12/37 : ENV HOME /home/${NB_USER}
---> Using cache
---> 623c83f4e2e3
Step 13/37 : RUN adduser --disabled-password --gecos "Default user" --uid ${NB_UID} ${NB_USER}
---> Using cache
---> 9b3d882e4db0
Step 14/37 : WORKDIR ${HOME}
---> Using cache
---> 95bd19a40876
Step 15/37 : RUN wget --quiet -O - https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add - && DISTRO="bionic" && echo "deb https://deb.nodesource.com/node_10.x $DISTRO main" >> /etc/apt/sources.list.d/nodesource.list && echo "deb-src https://deb.nodesource.com/node_10.x $DISTRO main" >> /etc/apt/sources.list.d/nodesource.list
---> Using cache
---> 172bfc4f0209
Step 16/37 : RUN apt-get update && apt-get install --yes --no-install-recommends less nodejs unzip && apt-get purge && apt-get clean && rm -rf /var/lib/apt/lists/*
---> Using cache
---> 7c21f4bb6d91
Step 17/37 : EXPOSE 8888
---> Using cache
---> dccb51d7b778
Step 18/37 : ENV APP_BASE /srv
---> Using cache
---> 651c67925769
Step 19/37 : ENV CONDA_DIR ${APP_BASE}/conda
---> Using cache
---> a81b3f9bf0df
Step 20/37 : ENV NB_PYTHON_PREFIX ${CONDA_DIR}
---> Using cache
---> 9674bb2588f3
Step 21/37 : ENV KERNEL_PYTHON_PREFIX ${NB_PYTHON_PREFIX}
---> Using cache
---> 95e71f28aeef
Step 22/37 : ENV PATH ${CONDA_DIR}/bin:$HOME/.local/bin:${PATH}
---> Using cache
---> 39a1aaefef37
Step 23/37 : COPY conda/install-miniconda.bash /tmp/install-miniconda.bash
---> Using cache
---> fc19bdb1f005
Step 24/37 : COPY conda/environment.py-3.6.frozen.yml /tmp/environment.yml
---> Using cache
---> ae18fd8774c3
Step 25/37 : RUN bash /tmp/install-miniconda.bash && rm /tmp/install-miniconda.bash /tmp/environment.yml
---> Using cache
---> ed95967d6bff
Step 26/37 : USER root
---> Using cache
---> 6eb5d7bfefd5
Step 27/37 : COPY src/ ${HOME}
---> 8f3719e8b9bf
Step 28/37 : RUN chown -R ${NB_USER}:${NB_USER} ${HOME}
---> Running in baeba54d3d07
Removing intermediate container baeba54d3d07
---> ec3c3928e8cf
Step 29/37 : USER ${NB_USER}
---> Running in 58ca4a758298
Removing intermediate container 58ca4a758298
---> 8f85a0978b1a
Step 30/37 : RUN ${KERNEL_PYTHON_PREFIX}/bin/pip install --no-cache-dir .
---> Running in 115451a18d00
Processing /home/jovyan
Requirement already satisfied: ipywidgets>=7.0.0 in /srv/conda/lib/python3.6/site-packages (from lineup-widget==0.1.0b1)
Requirement already satisfied: nbformat>=4.2.0 in /srv/conda/lib/python3.6/site-packages (from ipywidgets>=7.0.0->lineup-widget==0.1.0b1)
Requirement already satisfied: ipykernel>=4.5.1 in /srv/conda/lib/python3.6/site-packages (from ipywidgets>=7.0.0->lineup-widget==0.1.0b1)
Requirement already satisfied: widgetsnbextension~=3.2.0 in /srv/conda/lib/python3.6/site-packages (from ipywidgets>=7.0.0->lineup-widget==0.1.0b1)
Requirement already satisfied: ipython>=4.0.0; python_version >= "3.3" in /srv/conda/lib/python3.6/site-packages (from ipywidgets>=7.0.0->lineup-widget==0.1.0b1)
Requirement already satisfied: traitlets>=4.3.1 in /srv/conda/lib/python3.6/site-packages (from ipywidgets>=7.0.0->lineup-widget==0.1.0b1)
Requirement already satisfied: jupyter-core in /srv/conda/lib/python3.6/site-packages (from nbformat>=4.2.0->ipywidgets>=7.0.0->lineup-widget==0.1.0b1)
Requirement already satisfied: ipython-genutils in /srv/conda/lib/python3.6/site-packages (from nbformat>=4.2.0->ipywidgets>=7.0.0->lineup-widget==0.1.0b1)
Requirement already satisfied: jsonschema!=2.5.0,>=2.4 in /srv/conda/lib/python3.6/site-packages (from nbformat>=4.2.0->ipywidgets>=7.0.0->lineup-widget==0.1.0b1)
Requirement already satisfied: tornado>=4.0 in /srv/conda/lib/python3.6/site-packages (from ipykernel>=4.5.1->ipywidgets>=7.0.0->lineup-widget==0.1.0b1)
Requirement already satisfied: jupyter-client in /srv/conda/lib/python3.6/site-packages (from ipykernel>=4.5.1->ipywidgets>=7.0.0->lineup-widget==0.1.0b1)
Requirement already satisfied: notebook>=4.4.1 in /srv/conda/lib/python3.6/site-packages (from widgetsnbextension~=3.2.0->ipywidgets>=7.0.0->lineup-widget==0.1.0b1)
Requirement already satisfied: setuptools>=18.5 in /srv/conda/lib/python3.6/site-packages (from ipython>=4.0.0; python_version >= "3.3"->ipywidgets>=7.0.0->lineup-widget==0.1.0b1)
Requirement already satisfied: jedi>=0.10 in /srv/conda/lib/python3.6/site-packages (from ipython>=4.0.0; python_version >= "3.3"->ipywidgets>=7.0.0->lineup-widget==0.1.0b1)
Requirement already satisfied: decorator in /srv/conda/lib/python3.6/site-packages (from ipython>=4.0.0; python_version >= "3.3"->ipywidgets>=7.0.0->lineup-widget==0.1.0b1)
Requirement already satisfied: pickleshare in /srv/conda/lib/python3.6/site-packages (from ipython>=4.0.0; python_version >= "3.3"->ipywidgets>=7.0.0->lineup-widget==0.1.0b1)
Requirement already satisfied: simplegeneric>0.8 in /srv/conda/lib/python3.6/site-packages (from ipython>=4.0.0; python_version >= "3.3"->ipywidgets>=7.0.0->lineup-widget==0.1.0b1)
Requirement already satisfied: prompt_toolkit<2.0.0,>=1.0.15 in /srv/conda/lib/python3.6/site-packages (from ipython>=4.0.0; python_version >= "3.3"->ipywidgets>=7.0.0->lineup-widget==0.1.0b1)
Requirement already satisfied: pygments in /srv/conda/lib/python3.6/site-packages (from ipython>=4.0.0; python_version >= "3.3"->ipywidgets>=7.0.0->lineup-widget==0.1.0b1)
Requirement already satisfied: backcall in /srv/conda/lib/python3.6/site-packages (from ipython>=4.0.0; python_version >= "3.3"->ipywidgets>=7.0.0->lineup-widget==0.1.0b1)
Requirement already satisfied: pexpect in /srv/conda/lib/python3.6/site-packages (from ipython>=4.0.0; python_version >= "3.3"->ipywidgets>=7.0.0->lineup-widget==0.1.0b1)
Requirement already satisfied: six in /srv/conda/lib/python3.6/site-packages (from traitlets>=4.3.1->ipywidgets>=7.0.0->lineup-widget==0.1.0b1)
Requirement already satisfied: pyzmq>=13 in /srv/conda/lib/python3.6/site-packages (from jupyter-client->ipykernel>=4.5.1->ipywidgets>=7.0.0->lineup-widget==0.1.0b1)
Requirement already satisfied: python-dateutil>=2.1 in /srv/conda/lib/python3.6/site-packages (from jupyter-client->ipykernel>=4.5.1->ipywidgets>=7.0.0->lineup-widget==0.1.0b1)
Requirement already satisfied: jinja2 in /srv/conda/lib/python3.6/site-packages(from notebook>=4.4.1->widgetsnbextension~=3.2.0->ipywidgets>=7.0.0->lineup-widget==0.1.0b1)
Requirement already satisfied: nbconvert in /srv/conda/lib/python3.6/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.2.0->ipywidgets>=7.0.0->lineup-widget==0.1.0b1)
Requirement already satisfied: Send2Trash in /srv/conda/lib/python3.6/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.2.0->ipywidgets>=7.0.0->lineup-widget==0.1.0b1)
Requirement already satisfied: terminado>=0.8.1 in /srv/conda/lib/python3.6/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.2.0->ipywidgets>=7.0.0->lineup-widget==0.1.0b1)
Requirement already satisfied: prometheus_client in /srv/conda/lib/python3.6/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.2.0->ipywidgets>=7.0.0->lineup-widget==0.1.0b1)
Requirement already satisfied: parso>=0.3.0 in /srv/conda/lib/python3.6/site-packages (from jedi>=0.10->ipython>=4.0.0; python_version >= "3.3"->ipywidgets>=7.0.0->lineup-widget==0.1.0b1)
Requirement already satisfied: wcwidth in /srv/conda/lib/python3.6/site-packages (from prompt_toolkit<2.0.0,>=1.0.15->ipython>=4.0.0; python_version >= "3.3"->ipywidgets>=7.0.0->lineup-widget==0.1.0b1)
Requirement already satisfied: ptyprocess>=0.5 in /srv/conda/lib/python3.6/site-packages (from pexpect->ipython>=4.0.0; python_version >= "3.3"->ipywidgets>=7.0.0->lineup-widget==0.1.0b1)
Requirement already satisfied: MarkupSafe>=0.23 in /srv/conda/lib/python3.6/site-packages (from jinja2->notebook>=4.4.1->widgetsnbextension~=3.2.0->ipywidgets>=7.0.0->lineup-widget==0.1.0b1)
Requirement already satisfied: pandocfilters>=1.4.1 in /srv/conda/lib/python3.6/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.2.0->ipywidgets>=7.0.0->lineup-widget==0.1.0b1)
Requirement already satisfied: mistune>=0.7.4 in /srv/conda/lib/python3.6/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.2.0->ipywidgets>=7.0.0->lineup-widget==0.1.0b1)
Requirement already satisfied: testpath in /srv/conda/lib/python3.6/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.2.0->ipywidgets>=7.0.0->lineup-widget==0.1.0b1)
Requirement already satisfied: entrypoints>=0.2.2 in /srv/conda/lib/python3.6/site-packages (from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.2.0->ipywidgets>=7.0.0->lineup-widget==0.1.0b1)
Requirement already satisfied: bleach in /srv/conda/lib/python3.6/site-packages(from nbconvert->notebook>=4.4.1->widgetsnbextension~=3.2.0->ipywidgets>=7.0.0->lineup-widget==0.1.0b1)
Requirement already satisfied: html5lib!=1.0b1,!=1.0b2,!=1.0b3,!=1.0b4,!=1.0b5,!=1.0b6,!=1.0b7,!=1.0b8,>=0.99999999pre in /srv/conda/lib/python3.6/site-packages (from bleach->nbconvert->notebook>=4.4.1->widgetsnbextension~=3.2.0->ipywidgets>=7.0.0->lineup-widget==0.1.0b1)
Requirement already satisfied: webencodings in /srv/conda/lib/python3.6/site-packages (from html5lib!=1.0b1,!=1.0b2,!=1.0b3,!=1.0b4,!=1.0b5,!=1.0b6,!=1.0b7,!=1.0b8,>=0.99999999pre->bleach->nbconvert->notebook>=4.4.1->widgetsnbextension~=3.2.0->ipywidgets>=7.0.0->lineup-widget==0.1.0b1)
Installing collected packages: lineup-widget
Running setup.py install for lineup-widget: started
Running setup.py install for lineup-widget: finished with status 'error'
Complete output from command /srv/conda/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-1droaf2p-build/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-p3m1a7fw-record/install-record.txt --single-version-externally-managed --compile:
/srv/conda/lib/python3.6/site-packages/setuptools/dist.py:398: UserWarning: Normalizing '0.1.0.beta1' to '0.1.0b1'
normalized_version,
running install
running build
running build_py
running jsdeps
Installing build dependencies with npm. This may take a while...
> npm install
npm WARN deprecated nodemailer@2.7.2: All versions below 4.0.1 of Nodemailer are deprecated. See https://nodemailer.com/status/
npm WARN deprecated browserslist@1.7.7: Browserslist 2 could fail on reading Browserslist >3.0 config used in other tools.
npm WARN deprecated uws@9.14.0: stop using this version
npm WARN deprecated mailcomposer@4.0.1: This project is unmaintained
npm WARN deprecated socks@1.1.9: If using 2.x branch, please upgrade to at least 2.1.6 to avoid a serious bug with socket data flow and an import issue introduced in 2.1.0
npm WARN deprecated node-uuid@1.4.8: Use uuid module instead
npm WARN deprecated buildmail@4.0.1: This project is unmaintained
npm WARN deprecated hoek@2.16.3: The major version is no longer supported. Please update to 4.x or newer
npm WARN deprecated socks@1.1.10: If using 2.x branch, please upgrade to at least 2.1.6 to avoid a serious bug with socket data flow and an import issue introduced in 2.1.0
> uws@9.14.0 install /tmp/pip-1droaf2p-build/node_modules/uws
> node-gyp rebuild > build_log.txt 2>&1 || exit 0
> lineup_widget@0.1.0 prepare /tmp/pip-1droaf2p-build
> npm run build:lib
> lineup_widget@0.1.0 build:lib /tmp/pip-1droaf2p-build
> tsc --project src
npm notice created a lockfile as package-lock.json. You should commit this file.
npm WARN ajv-keywords@3.2.0 requires a peer of ajv@^6.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.2.4 (node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.4: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
added 981 packages from 1566 contributors and audited 8189 packages in 49.073s
found 9 vulnerabilities (3 low, 5 moderate, 1 critical)
run `npm audit fix` to fix them, or `npm audit` for details
> npm run build:all
> lineup_widget@0.1.0 build:all /tmp/pip-1droaf2p-build
> npm run build:lib && npm run build:labextension && npm run build:nbextension
> lineup_widget@0.1.0 build:lib /tmp/pip-1droaf2p-build
> tsc --project src
> lineup_widget@0.1.0 build:labextension /tmp/pip-1droaf2p-build
> cd lineup_widget && rimraf labextension && mkdirp labextension && cd labextension && npm pack ../..
> lineup_widget@0.1.0 prepare /tmp/pip-1droaf2p-build
> npm run build:lib
> lineup_widget@0.1.0 build:lib /tmp/pip-1droaf2p-build
> tsc --project src
npm notice
npm notice 📦 lineup_widget@0.1.0
npm notice === Tarball Contents ===
npm notice 2.7kB package.json
npm notice 220B .bash_logout
npm notice 3.8kB .bashrc
npm notice 35B .coveragerc
npm notice 415B .editorconfig
npm notice 1.8kB .gitattributes
npm notice 807B .profile
npm notice 1.3kB .travis.yml
npm notice 1.5kB appveyor.yml
npm notice 132B build.sh
npm notice 221B codecov.yml
npm notice 158B docker-compose.yml
npm notice 1.1kB LICENSE.txt
npm notice 67B lineup_widget.json
npm notice 616B MANIFEST.in
npm notice 185B pip-delete-this-directory.txt
npm notice 129B pytest.ini
npm notice 2.4kB README.md
npm notice 67B setup.cfg
npm notice 2.6kB setup.py
npm notice 20.2kB setupbase.py
npm notice 3.5kB tslint.json
npm notice 1.2kB webpack.config.js
npm notice 20.1kB __pycache__/setupbase.cpython-36.pyc
npm notice 11B .conda/environments.txt
npm notice 0 .conda/pkgs/urls
npm notice 0 .conda/pkgs/urls.txt
npm notice 6.4kB examples/introduction.ipynb
npm notice 79B lib/index.d.ts
npm notice 301B lib/index.js
npm notice 144B lib/index.js.map
npm notice 229B lib/plugin.d.ts
npm notice 1.0kB lib/plugin.js
npm notice 586B lib/plugin.js.map
npm notice 257B lib/utils.d.ts
npm notice 646B lib/utils.js
npm notice 818B lib/utils.js.map
npm notice 318B lib/version.d.ts
npm notice 500B lib/version.js
npm notice 181B lib/version.js.map
npm notice 2.1kB lib/widget.d.ts
npm notice 6.8kB lib/widget.js
npm notice 4.2kB lib/widget.js.map
npm notice 268B lineup_widget/__init__.py
npm notice 202B lineup_widget/_version.py
npm notice 3.7kB lineup_widget/lineup.py
npm notice 302B lineup_widget/nbextension/__init__.py
npm notice 291B lineup_widget/nbextension/static/extension.js
npm notice 1B pip-egg-info/lineup_widget.egg-info/dependency_links.txt
npm notice 838B pip-egg-info/lineup_widget.egg-info/PKG-INFO
npm notice 62B pip-egg-info/lineup_widget.egg-info/requires.txt
npm notice 774B pip-egg-info/lineup_widget.egg-info/SOURCES.txt
npm notice 20B pip-egg-info/lineup_widget.egg-info/top_level.txt
npm notice 79B src/index.ts
npm notice 1.0kB src/plugin.ts
npm notice 392B src/tsconfig.json
npm notice 610B src/utils.ts
npm notice 394B src/version.ts
npm notice 4.5kB src/widget.ts
npm notice === Tarball Details ===
npm notice name: lineup_widget
npm notice version: 0.1.0
npm notice filename: lineup_widget-0.1.0.tgz
npm notice package size: 33.9 kB
npm notice unpacked size: 103.0 kB
npm notice shasum: 01fe83dbc3e8f2ab00bba340e0760f698922eaa2
npm notice integrity: sha512-ejyDl6m66FE+k[...]eYgf2Ip0oFvxw==
npm notice total files: 59
npm notice
lineup_widget-0.1.0.tgz
> lineup_widget@0.1.0 build:nbextension /tmp/pip-1droaf2p-build
> webpack
One CLI for webpack must be installed. These are recommended choices, delivered as separate packages:
- webpack-cli (https://github.com/webpack/webpack-cli)
The original webpack full-featured CLI.
- webpack-command (https://github.com/webpack-contrib/webpack-command)
A lightweight, opinionated webpack CLI.
We will use "npm" to install the CLI via "npm install -D".
Which one do you like to install (webpack-cli/webpack-command):
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/tmp/pip-1droaf2p-build/setup.py", line 101, in <module>
setup(**setup_args)
File "/srv/conda/lib/python3.6/site-packages/setuptools/__init__.py", line 131, in setup
return distutils.core.setup(**attrs)
File "/srv/conda/lib/python3.6/distutils/core.py", line 148, in setup
dist.run_commands()
File "/srv/conda/lib/python3.6/distutils/dist.py", line 955, in run_commands
self.run_command(cmd)
File "/srv/conda/lib/python3.6/distutils/dist.py", line 974, in run_command
cmd_obj.run()
File "/srv/conda/lib/python3.6/site-packages/setuptools/command/install.py", line 61, in run
return orig.install.run(self)
File "/srv/conda/lib/python3.6/distutils/command/install.py", line 545, in run
self.run_command('build')
File "/srv/conda/lib/python3.6/distutils/cmd.py", line 313, in run_command
self.distribution.run_command(command)
File "/srv/conda/lib/python3.6/distutils/dist.py", line 974, in run_command
cmd_obj.run()
File "/srv/conda/lib/python3.6/distutils/command/build.py", line 135, in run
self.run_command(cmd_name)
File "/srv/conda/lib/python3.6/distutils/cmd.py", line 313, in run_command
self.distribution.run_command(command)
File "/srv/conda/lib/python3.6/distutils/dist.py", line 974, in run_command
cmd_obj.run()
File "/tmp/pip-1droaf2p-build/setupbase.py", line 469, in run
[self.run_command(cmd) for cmd in cmds]
File "/tmp/pip-1droaf2p-build/setupbase.py", line 469, in <listcomp>
[self.run_command(cmd) for cmd in cmds]
File "/srv/conda/lib/python3.6/distutils/cmd.py", line 313, in run_command
self.distribution.run_command(command)
File "/srv/conda/lib/python3.6/distutils/dist.py", line 974, in run_command
cmd_obj.run()
File "/tmp/pip-1droaf2p-build/setupbase.py", line 263, in run
c.run()
File "/tmp/pip-1droaf2p-build/setupbase.py", line 389, in run
raise ValueError(('missing files: %s' % missing))
ValueError: missing files: ['/tmp/pip-1droaf2p-build/lineup_widget/nbextension/static/index.js']
----------------------------------------
Command "/srv/conda/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-1droaf2p-build/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-p3m1a7fw-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-1droaf2p-build/
You are using pip version 9.0.3, however version 18.0 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
Removing intermediate container 115451a18d00
The command '/bin/sh -c ${KERNEL_PYTHON_PREFIX}/bin/pip install --no-cache-dir .' returned a non-zero code: 1
Expected behavior
Note: Hi there, I'm a Data Science Student at UC Berkeley and LineUpJS was featured in our Data Vis class. I'm trying to get it to work on my system, and hope I'm submitting this issue correctly. Sorry, I'm sort of new at all of the Github Issue fucntionality.
sgratzl commented
please try again following: https://github.com/datavisyn/lineup_widget#installation