* Document contents chunks
Add a documentation entry for the contents API regarding use of "chunk" in save.
Adds an `extra_requires` value in setup.py for installing documentation dependencies.
Since there's a 6.0.3 release brewin', I thought we should bump
the minimum version of jupyter_core from 4.6.0 to 4.6.1. The
latter has an edge case to the slew of secure_write issues that
would be very annoying if NB 6.0.3 didn't upgrade to that version.
The edge case is to tolerate the owner-execute bit on the connection
file, which occurs when RUNTIME_DIR resides on certain filesystem
types (e.g., CIFS).
instead of the monkeypatch we did to keep the backport patch small
requiring tornado 5 simplifies things a ton because tornado.concurrent.Future is asyncio.Future
[Prometheus](https://prometheus.io/) provides a standard
metrics format that can be collected and used in many contexts.
- From the browser
to drive 'current resource usage' displays, such
as https://github.com/yuvipanda/nbresuse
- From a prometheus server
to collect historical data for operational analysis and
performance monitoring
Example: https://grafana.mybinder.org/dashboard/db/1-overview?refresh=1m&orgId=1
for mybinder.org metrics from JupyterHub and BinderHub,
via prometheus server at https://prometheus.mybinder.org
The JupyterHub and BinderHub projects already expose Prometheus
metrics natively. Adding this to the Jupyter notebook server
allows us to instrument the code easily and in
a standard format that has lots of 3rd party tooling for it.
This commit does the following:
- Introduce the `prometheus_client` library as a dependency.
This library has no dependencies of its own and is pure python.
- Add an authenticated `/metrics` endpoint to the server,
which returns metrics in Prometheus Text Format
- Expose the default process metrics from `prometheus_client`,
which include memory usage and CPU usage info (for just the
notebook process)
* Initial selenium test
* Try configuring Travis to run selenium tests on Sauce
* Encryption key needs to be for my account, not jupyter
* Install selenium on Travis
* Get more data from server info file
* Set cwd when launching notebook server
Will this help on Travis?
* Use JUPYTER_TEST_BROWSER=chrome to test with Chrome
* Debugging test
* Separate fixtures into conftest.py
* Try with --Cls.a=b option syntax
* Try using sauce labs directly, not through Travis proxy
* Back to using proxy, with http instead of https
Idea from https://stackoverflow.com/questions/48236104/ssl-errors-using-
sauce-labs-in-travis-ci-with-selenium-webriver-tests-django-pr
* Specify browserName in desired_capabilities for Sauce
* Try connecting to Sauce for only some jobs in matrix
* Exclude selenium tests from regular test run
* Remove redundant JS test for dashboard navigation (converted to Selenium)
* Re-enable other tests
* Exclude selenium tests on Appveyor
* Later browser versions are available on Windows
* Try running tests with Firefox 57 instead of 58
* Try running with local Firefox on Travis
* Install geckodriver for Selenium tests
* Untar the right version of geckodriver
* Try stepping back one version of Firefox again
This copies what we've already done for some other packages: always use setuptools
but disable its implicit egg building which causes so many headaches. The setup code
can be significantly simpler if it's not trying to handle the case where setuptools
isn't in use.
* Add support for terminals on Windows
* Bump terminado requirement
* Fix handling of default shell
* Fix appveyor syntax
* Fix requires syntax
* Fix version target
* Clean up handling of default shell and update version check
* Always require terminado
* Clean up appveyor test
* Make the terminado warning uniform
* Default to powershell on Windows
* Clean up terminado verison
This adds a config option, defaulting to use trash, and adds a
dependency on the pure-Python 'send2trash' package. Linux, Mac and
Windows should all be supported.
Alternatively, we could make it default to hard delete (the current
behaviour), and let users opt in to trash behaviour. Then Send2Trash
could be a soft dependency.
This doesn't touch the UI yet, so you still get a confirmation dialog
which inaccurately says it will 'permanently delete' the file. If we
want to do this, we'll need some way for the contents manager to pass
the UI a hint about whether deleting is permanent or not.
Closes gh-165
As per [their blog post of the 27th April](https://blog.readthedocs.com/securing-subdomains/) ‘Securing subdomains’:
> Starting today, Read the Docs will start hosting projects from subdomains on the domain readthedocs.io, instead of on readthedocs.org. This change addresses some security concerns around site cookies while hosting user generated data on the same domain as our dashboard.
Test Plan: Manually visited all the links I’ve modified.
Based on first review by @minrk
* bundlerextension for consistency
* Move CLI entry point into bundler package
* Add bundler/__main__.py
(c) Copyright IBM Corp. 2016
* Change handler for consistency with nbconvert
* Change bundler function API to take ContentManager models
* Change CLI to work as jupyter bundler
* Change UI to fit into existing template / JS structure
(c) Copyright IBM Corp. 2016
- run npm, bower install every time (except from sdist).
Removes need to check npm, bower sources.
- only check `built/index.js` for build target
since webpack is only a single step now
If we're going to explicitly list 3.3, we should also be listing 3.4 and
3.5. But really we're compatible with any fairly recent Python 3
version, and will probably be compatible with future versions, so I
think it's best to just use the overall Python 3 classifier.