You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
70 lines
2.2 KiB
70 lines
2.2 KiB
.. _development_js:
|
|
|
|
Installing Javascript machinery
|
|
===============================
|
|
|
|
Running the Notebook from the source code on Github requires some Javascript
|
|
tools to build/minify the CSS and Javascript components. We do these steps when
|
|
making releases, so there's no need for these tools when installing released
|
|
versions of the Notebook.
|
|
|
|
First, install `Node.js <https://nodejs.org/>`_. The installers on the
|
|
Node.js website also include Node's package manager, *npm*. Alternatively,
|
|
install both of these from your package manager. For example, on Ubuntu or Debian::
|
|
|
|
sudo apt-get install nodejs-legacy npm
|
|
|
|
You can then build the Javascript and CSS by running::
|
|
|
|
python setup.py css js
|
|
|
|
This will automatically fetch the remaining dependencies (bower, less) and
|
|
install them in a subdirectory.
|
|
|
|
For quick iteration on the Notebook's Javascript you can deactivate the use of
|
|
the bundled and minified Javacript by using the option
|
|
``--NotebookApp.ignore_minified_js=True``. This might though highly increase the
|
|
number of requests that the browser make to the server, but can allow to test
|
|
Javascript file modification without going through the compilation step that
|
|
can take up to 30 sec.
|
|
|
|
|
|
Making a notebook release
|
|
-------------------------
|
|
|
|
Make sure you have followed the step above and have all the tools to genereate
|
|
the minified javascript and css files.
|
|
|
|
Make sure the repository is clean of any file that could be problematic.
|
|
You can remove all non-tracked files with:
|
|
|
|
.. code::
|
|
|
|
$ git clean -xfdi
|
|
|
|
This would ask you for confirmation before removing all untracked file. Make
|
|
sure the ``dist/`` folder in particular is clean and avoid stale build from
|
|
previous attempts.
|
|
|
|
Run the following two commands to generate the universal ``wheel`` and the ``sdist``:
|
|
|
|
.. code::
|
|
|
|
$ python setup.py sdist
|
|
$ python setup.py bdist_wheel --universal
|
|
|
|
.. note::
|
|
|
|
The above command will modify (at least) the following file :
|
|
``notebook/static/base/js/namespace.js`` to make the notebook version
|
|
availlable from javascript.
|
|
|
|
|
|
You can now test the ``wheel`` and the ``sdist`` locally before uploading to PyPI.
|
|
Make sure to use twine to upload the archives over SSL.
|
|
|
|
.. code::
|
|
|
|
$ twine upload dist/*
|
|
|