From 510ea4d9f3858e64acf4170d9aa8f70ff875523c Mon Sep 17 00:00:00 2001 From: Erik Sundell Date: Tue, 30 Nov 2021 00:09:33 +0100 Subject: [PATCH 01/17] ci: avoid triggering ci twice on pre-commit.ci/dependabot prs --- .github/workflows/publish.yaml | 24 ++++++++++++++++++++++- .github/workflows/test.yaml | 35 +++++++++++++++++----------------- 2 files changed, 41 insertions(+), 18 deletions(-) diff --git a/.github/workflows/publish.yaml b/.github/workflows/publish.yaml index b12903f8..f7dc5bac 100644 --- a/.github/workflows/publish.yaml +++ b/.github/workflows/publish.yaml @@ -1,8 +1,30 @@ +# This is a GitHub workflow defining a set of jobs with a set of steps. +# ref: https://docs.github.com/en/actions/learn-github-actions/workflow-syntax-for-github-actions +# # Publish PyPI and NPM artifacts +# name: Publish + on: - push: pull_request: + paths-ignore: + - "docs/**" + - "contrib/**" + - "**.md" + - "**.rst" + - ".github/workflows/*" + - "!.github/workflows/publish.yaml" + push: + paths-ignore: + - "docs/**" + - "contrib/**" + - "**.md" + - "**.rst" + - ".github/workflows/*" + - "!.github/workflows/publish.yaml" + branches-ignore: + - "dependabot/**" + - "pre-commit-ci-update-config" workflow_dispatch: jobs: diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index 2c2f4e3a..78770cf1 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -1,29 +1,30 @@ # This is a GitHub workflow defining a set of jobs with a set of steps. -# ref: https://docs.github.com/en/free-pro-team@latest/actions/reference/workflow-syntax-for-github-actions +# ref: https://docs.github.com/en/actions/learn-github-actions/workflow-syntax-for-github-actions # name: Test -# Trigger the workflow's on all PRs but only on pushed tags or commits to -# main/master branch to avoid PRs developed in a GitHub fork's dedicated branch -# to trigger. on: pull_request: + paths-ignore: + - "docs/**" + - "contrib/**" + - "**.md" + - "**.rst" + - ".github/workflows/*" + - "!.github/workflows/test.yaml" push: - branches: - tags: + paths-ignore: + - "docs/**" + - "contrib/**" + - "**.md" + - "**.rst" + - ".github/workflows/*" + - "!.github/workflows/test.yaml" + branches-ignore: + - "dependabot/**" + - "pre-commit-ci-update-config" workflow_dispatch: -defaults: - run: - # Declare bash be used by default in this workflow's "run" steps. - # - # NOTE: bash will by default run with: - # --noprofile: Ignore ~/.profile etc. - # --norc: Ignore ~/.bashrc etc. - # -e: Exit directly on errors - # -o pipefail: Don't mask errors from a command piped into another command - shell: bash - jobs: test: runs-on: ubuntu-20.04 From b1dc09aa6645f4ca5cdde40fc78b7f161fce5f18 Mon Sep 17 00:00:00 2001 From: Erik Sundell Date: Tue, 30 Nov 2021 00:13:53 +0100 Subject: [PATCH 02/17] Update language, from master to main --- .../template/{{cookiecutter.project_name}}/setup.py | 2 +- contrib/theia/setup.py | 2 +- docs/conf.py | 10 +++++----- jupyter_server_proxy/utils.py | 3 ++- 4 files changed, 9 insertions(+), 8 deletions(-) diff --git a/contrib/template/{{cookiecutter.project_name}}/setup.py b/contrib/template/{{cookiecutter.project_name}}/setup.py index 0079c648..666a80f4 100644 --- a/contrib/template/{{cookiecutter.project_name}}/setup.py +++ b/contrib/template/{{cookiecutter.project_name}}/setup.py @@ -3,7 +3,7 @@ setuptools.setup( name="jupyter-{{cookiecutter.project_name}}-proxy", version='1.0dev', - url="https://github.com/jupyterhub/jupyter-server-proxy/tree/master/contrib/{{cookiecutter.project_name}}", + url="https://github.com/jupyterhub/jupyter-server-proxy/tree/HEAD/contrib/{{cookiecutter.project_name}}", author="{{cookiecutter.author_name}}", description="{{cookiecutter.author_email}}", packages=setuptools.find_packages(), diff --git a/contrib/theia/setup.py b/contrib/theia/setup.py index 333ffcb3..0014f81b 100644 --- a/contrib/theia/setup.py +++ b/contrib/theia/setup.py @@ -3,7 +3,7 @@ setuptools.setup( name="jupyter-theia-proxy", version='1.0dev', - url="https://github.com/jupyterhub/jupyter-server-proxy/tree/master/contrib/theia", + url="https://github.com/jupyterhub/jupyter-server-proxy/tree/HEAD/contrib/theia", author="Project Jupyter Contributors", description="projectjupyter@gmail.com", packages=setuptools.find_packages(), diff --git a/docs/conf.py b/docs/conf.py index 16cdfd1f..e1a9e84d 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -52,8 +52,8 @@ # source_suffix = ['.rst', '.md'] source_suffix = '.rst' -# The master toctree document. -master_doc = 'index' +# The root toctree document. +root_doc = master_doc = 'index' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. @@ -130,7 +130,7 @@ # (source start file, target name, title, # author, documentclass [howto, manual, or own class]). latex_documents = [ - (master_doc, 'JupyterServerProxy.tex', u'Jupyter ServerProxy Documentation', + (root_doc, 'JupyterServerProxy.tex', u'Jupyter ServerProxy Documentation', u'Yuvi Panda', 'manual'), ] @@ -140,7 +140,7 @@ # One entry per manual page. List of tuples # (source start file, name, description, authors, manual section). man_pages = [ - (master_doc, 'jupyterserverproxy', u'Jupyter ServerProxy Documentation', + (root_doc, 'jupyterserverproxy', u'Jupyter ServerProxy Documentation', [author], 1) ] @@ -151,7 +151,7 @@ # (source start file, target name, title, author, # dir menu entry, description, category) texinfo_documents = [ - (master_doc, 'JupyterServerProxy', u'Jupyter ServerProxy Documentation', + (root_doc, 'JupyterServerProxy', u'Jupyter ServerProxy Documentation', author, 'JupyterServerProxy', 'One line description of project.', 'Miscellaneous'), ] diff --git a/jupyter_server_proxy/utils.py b/jupyter_server_proxy/utils.py index 725602c4..23724472 100644 --- a/jupyter_server_proxy/utils.py +++ b/jupyter_server_proxy/utils.py @@ -33,7 +33,8 @@ def call_with_asked_args(callback, args): ) return callback(*asked_arg_values) -# copy-pasted from the master of Traitlets source +# copy-pasted from the ipython/traitlets source code, see +# https://github.com/ipython/traitlets/blob/a1425327460c4a3ae970aeaef17e0c22da4c53c6/traitlets/traitlets.py#L3232-L3246 class Callable(TraitType): """A trait which is callable. Notes From ccaa292a8d974efc86ddc2996fe9cc7320ec5ae5 Mon Sep 17 00:00:00 2001 From: Erik Sundell Date: Tue, 30 Nov 2021 00:15:36 +0100 Subject: [PATCH 03/17] Remove no longer needed logic involving six --- jupyter_server_proxy/utils.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/jupyter_server_proxy/utils.py b/jupyter_server_proxy/utils.py index 725602c4..309ee543 100644 --- a/jupyter_server_proxy/utils.py +++ b/jupyter_server_proxy/utils.py @@ -1,5 +1,4 @@ from traitlets import TraitType -import six def call_with_asked_args(callback, args): """ @@ -44,7 +43,7 @@ class Callable(TraitType): info_text = 'a callable' def validate(self, obj, value): - if six.callable(value): + if callable(value): return value else: self.error(obj, value) From 4b974715701a7310f913a64a6a4ecfae5086ccc9 Mon Sep 17 00:00:00 2001 From: Erik Sundell Date: Tue, 30 Nov 2021 13:22:42 +0100 Subject: [PATCH 04/17] docs: update Makefile with devenv and linkcheck --- docs/Makefile | 23 ++++++++++++++++++++--- docs/make.bat | 38 +++++++++++++++++++++++++++++--------- 2 files changed, 49 insertions(+), 12 deletions(-) diff --git a/docs/Makefile b/docs/Makefile index 298ea9e2..5fd9d877 100644 --- a/docs/Makefile +++ b/docs/Makefile @@ -2,8 +2,8 @@ # # You can set these variables from the command line. -SPHINXOPTS = -SPHINXBUILD = sphinx-build +SPHINXOPTS ?= +SPHINXBUILD ?= sphinx-build SOURCEDIR = . BUILDDIR = _build @@ -16,4 +16,21 @@ help: # Catch-all target: route all unknown targets to Sphinx using the new # "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). %: Makefile - @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) \ No newline at end of file + @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) + +# Manually added commands +# ---------------------------------------------------------------------------- + +# For local development: +# - builds and rebuilds html on changes to source +# - starts a livereload enabled webserver and opens up a browser +devenv: + sphinx-autobuild -b html --open-browser "$(SOURCEDIR)" "$(BUILDDIR)/html" $(SPHINXOPTS) + +# For local development and CI: +# - verifies that links are valid +linkcheck: + $(SPHINXBUILD) -b linkcheck "$(SOURCEDIR)" "$(BUILDDIR)/linkcheck" $(SPHINXOPTS) + @echo + @echo "Link check complete; look for any errors in the above output " \ + "or in $(BUILDDIR)/linkcheck/output.txt." diff --git a/docs/make.bat b/docs/make.bat index 27f573b8..ba30c170 100644 --- a/docs/make.bat +++ b/docs/make.bat @@ -11,25 +11,45 @@ set SOURCEDIR=. set BUILDDIR=_build if "%1" == "" goto help +if "%1" == "devenv" goto devenv +if "%1" == "linkcheck" goto linkcheck +goto default + +:default %SPHINXBUILD% >NUL 2>NUL if errorlevel 9009 ( echo. - echo.The 'sphinx-build' command was not found. Make sure you have Sphinx - echo.installed, then set the SPHINXBUILD environment variable to point - echo.to the full path of the 'sphinx-build' executable. Alternatively you - echo.may add the Sphinx directory to PATH. + echo.The 'sphinx-build' command was not found. Open and read README.md! + exit /b 1 +) +%SPHINXBUILD% -M %1 "%SOURCEDIR%" "%BUILDDIR%" %SPHINXOPTS% +goto end + + +:help +%SPHINXBUILD% -M help "%SOURCEDIR%" "%BUILDDIR%" %SPHINXOPTS% +goto end + + +:devenv +sphinx-autobuild >NUL 2>NUL +if errorlevel 9009 ( echo. - echo.If you don't have Sphinx installed, grab it from - echo.http://sphinx-doc.org/ + echo.The 'sphinx-autobuild' command was not found. Open and read README.md! exit /b 1 ) +sphinx-autobuild -b html --open-browser "../jupyterhub/schema.yaml" "%SOURCEDIR%" "%BUILDDIR%/html" %SPHINXOPTS% +goto end + -%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% +:linkcheck +%SPHINXBUILD% -b linkcheck "%SOURCEDIR%" "%BUILDDIR%/linkcheck" %SPHINXOPTS% +echo. +echo.Link check complete; look for any errors in the above output +echo.or in "%BUILDDIR%/linkcheck/output.txt". goto end -:help -%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% :end popd From f76842e57b939ca08ec02297e2bbf2b87f8f3db1 Mon Sep 17 00:00:00 2001 From: Erik Sundell Date: Tue, 30 Nov 2021 13:23:16 +0100 Subject: [PATCH 05/17] docs: update conf.py to not clutter as much --- docs/conf.py | 114 ++++++--------------------------------------------- 1 file changed, 12 insertions(+), 102 deletions(-) diff --git a/docs/conf.py b/docs/conf.py index e1a9e84d..8ed79007 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -1,32 +1,19 @@ -# -*- coding: utf-8 -*- +# Configuration file for Sphinx to build our documentation to HTML. # -# Configuration file for the Sphinx documentation builder. +# Configuration reference: https://www.sphinx-doc.org/en/master/usage/configuration.html # -# This file does only contain a selection of the most common options. For a -# full list see the documentation: -# http://www.sphinx-doc.org/en/master/config -# -- Path setup -------------------------------------------------------------- -# If extensions (or modules to document with autodoc) are in another directory, -# add these directories to sys.path here. If the directory is relative to the -# documentation root, use os.path.abspath to make it absolute, like shown here. -# -# import os -# import sys -# sys.path.insert(0, os.path.abspath('.')) +# -- Project specific imports ------------------------------------------------ +import datetime -# -- Project information ----------------------------------------------------- -project = u'Jupyter ServerProxy' -copyright = u'2019, Yuvi Panda' -author = u'Yuvi Panda' +# -- Project information ----------------------------------------------------- -# The short X.Y version -version = u'' -# The full version, including alpha/beta/rc tags -release = u'1.0' +project = "Jupyter Server Proxy" +copyright = f"{datetime.date.today().year}, Project Jupyter Contributors" +author = "Project Jupyter Contributors" # -- General configuration --------------------------------------------------- @@ -41,16 +28,15 @@ extensions = [ 'sphinx.ext.intersphinx', 'sphinx.ext.todo', + "sphinx_copybutton", + "myst_parser", ] # Add any paths that contain templates here, relative to this directory. templates_path = ['_templates'] # The suffix(es) of source filenames. -# You can specify multiple suffix as a list of string: -# -# source_suffix = ['.rst', '.md'] -source_suffix = '.rst' +source_suffix = [".md", ".rst"] # The root toctree document. root_doc = master_doc = 'index' @@ -100,88 +86,12 @@ # html_sidebars = {} -# -- Options for HTMLHelp output --------------------------------------------- - -# Output file base name for HTML help builder. -htmlhelp_basename = 'JupyterServerProxydoc' - - -# -- Options for LaTeX output ------------------------------------------------ - -latex_elements = { - # The paper size ('letterpaper' or 'a4paper'). - # - # 'papersize': 'letterpaper', - - # The font size ('10pt', '11pt' or '12pt'). - # - # 'pointsize': '10pt', - - # Additional stuff for the LaTeX preamble. - # - # 'preamble': '', - - # Latex figure (float) alignment - # - # 'figure_align': 'htbp', -} - -# Grouping the document tree into LaTeX files. List of tuples -# (source start file, target name, title, -# author, documentclass [howto, manual, or own class]). -latex_documents = [ - (root_doc, 'JupyterServerProxy.tex', u'Jupyter ServerProxy Documentation', - u'Yuvi Panda', 'manual'), -] - - -# -- Options for manual page output ------------------------------------------ - -# One entry per manual page. List of tuples -# (source start file, name, description, authors, manual section). -man_pages = [ - (root_doc, 'jupyterserverproxy', u'Jupyter ServerProxy Documentation', - [author], 1) -] - - -# -- Options for Texinfo output ---------------------------------------------- - -# Grouping the document tree into Texinfo files. List of tuples -# (source start file, target name, title, author, -# dir menu entry, description, category) -texinfo_documents = [ - (root_doc, 'JupyterServerProxy', u'Jupyter ServerProxy Documentation', - author, 'JupyterServerProxy', 'One line description of project.', - 'Miscellaneous'), -] - - -# -- Options for Epub output ------------------------------------------------- - -# Bibliographic Dublin Core info. -epub_title = project - -# The unique identifier of the text. This can be a ISBN number -# or the project homepage. -# -# epub_identifier = '' - -# A unique identification for the text. -# -# epub_uid = '' - -# A list of files that should not be packed into the epub file. -epub_exclude_files = ['search.html'] - - -# -- Extension configuration ------------------------------------------------- - # -- Options for intersphinx extension --------------------------------------- # Example configuration for intersphinx: refer to the Python standard library. intersphinx_mapping = {'https://docs.python.org/': None} + # -- Options for todo extension ---------------------------------------------- # If true, `todo` and `todoList` produce output, else they produce nothing. From 45eeb0bea73127e62f191bf1277db2e75e89fc9e Mon Sep 17 00:00:00 2001 From: Erik Sundell Date: Tue, 30 Nov 2021 13:32:24 +0100 Subject: [PATCH 06/17] docs: prepare for but don't switch to pydata theme yet --- .readthedocs.yaml | 19 +++++++++++++++++++ docs/conf.py | 40 ++++++++++++++++++---------------------- docs/requirements.txt | 4 ++++ 3 files changed, 41 insertions(+), 22 deletions(-) create mode 100644 .readthedocs.yaml create mode 100644 docs/requirements.txt diff --git a/.readthedocs.yaml b/.readthedocs.yaml new file mode 100644 index 00000000..afa6a4ed --- /dev/null +++ b/.readthedocs.yaml @@ -0,0 +1,19 @@ +# Configuration on how ReadTheDocs (RTD) builds our documentation +# ref: https://readthedocs.org/projects/jupyter-server-proxy/ +# ref: https://docs.readthedocs.io/en/stable/config-file/v2.html +# +version: 2 + +build: + os: ubuntu-20.04 + tools: + python: "3.9" + +python: + install: + - requirements: docs/requirements.txt + +sphinx: + configuration: docs/conf.py + +formats: [] diff --git a/docs/conf.py b/docs/conf.py index 8ed79007..b449586d 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -58,32 +58,28 @@ # -- Options for HTML output ------------------------------------------------- - -# The theme to use for HTML and HTML Help pages. See the documentation for -# a list of builtin themes. -# -html_theme = 'alabaster' - -# Theme options are theme-specific and customize the look and feel of a theme -# further. For a list of options available for each theme, see the -# documentation. -# -# html_theme_options = {} +# ref: http://www.sphinx-doc.org/en/master/usage/configuration.html#options-for-html-output + +# FIXME: change to pydata_sphinx_theme +html_theme = "alabaster" +html_theme_options = { + "github_url": "https://github.com/jupyterhub/jupyter-server-proxy/", + "use_edit_page_button": True, +} +html_context = { + "github_user": "jupyterhub", + "github_repo": "jupyter-server-proxy", + "github_version": "main", + "doc_path": "docs", +} + +html_favicon = "_static/images/logo/favicon.ico" +html_logo = "_static/images/logo/logo.png" # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, # so a file named "default.css" will overwrite the builtin "default.css". -html_static_path = ['_static'] - -# Custom sidebar templates, must be a dictionary that maps document names -# to template names. -# -# The default sidebars (for documents that don't match any pattern) are -# defined by theme itself. Builtin themes are using these templates by -# default: ``['localtoc.html', 'relations.html', 'sourcelink.html', -# 'searchbox.html']``. -# -# html_sidebars = {} +html_static_path = ["_static"] # -- Options for intersphinx extension --------------------------------------- diff --git a/docs/requirements.txt b/docs/requirements.txt new file mode 100644 index 00000000..ec2e63ed --- /dev/null +++ b/docs/requirements.txt @@ -0,0 +1,4 @@ +myst-parser +pydata-sphinx-theme +sphinx-autobuild +sphinx-copybutton From dd63f2a04cef659828948458e86c5fdcf4cb0ca8 Mon Sep 17 00:00:00 2001 From: Erik Sundell Date: Tue, 30 Nov 2021 13:39:09 +0100 Subject: [PATCH 07/17] docs: add linkcheck test --- .github/workflows/linkcheck.yaml | 35 ++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 .github/workflows/linkcheck.yaml diff --git a/.github/workflows/linkcheck.yaml b/.github/workflows/linkcheck.yaml new file mode 100644 index 00000000..e4a32e62 --- /dev/null +++ b/.github/workflows/linkcheck.yaml @@ -0,0 +1,35 @@ +# This is a GitHub workflow defining a set of jobs with a set of steps. ref: +# https://docs.github.com/en/actions/learn-github-actions/workflow-syntax-for-github-actions +# +name: Linkcheck + +on: + pull_request: + paths: + - "docs/**" + - "**/linkcheck.yaml" + push: + paths: + - "docs/**" + - "**/linkcheck.yaml" + branches-ignore: + - "dependabot/**" + - "pre-commit-ci-update-config" + workflow_dispatch: + +jobs: + linkcheck: + runs-on: ubuntu-20.04 + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-python@v2 + with: + python-version: "3.8" + + - name: Install deps + run: pip install -r docs/requirements.txt + + - name: make linkcheck + run: | + cd docs + make linkcheck SPHINXOPTS='--color -W --keep-going' From 5396b6ad6276ec28974107ca29f0264e70c38a5f Mon Sep 17 00:00:00 2001 From: Erik Sundell Date: Tue, 30 Nov 2021 13:43:51 +0100 Subject: [PATCH 08/17] docs: update links for the new linkcheck test --- contrib/theia/README.rst | 6 +++--- docs/convenience/new.rst | 2 +- docs/server-process.rst | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/contrib/theia/README.rst b/contrib/theia/README.rst index c7497466..b407515e 100644 --- a/contrib/theia/README.rst +++ b/contrib/theia/README.rst @@ -2,7 +2,7 @@ Theia IDE ========= -`Theia `_ is a configurable web based IDE +`Theia `_ is a configurable web based IDE built with components from `Visual Studio Code `_. This package is a plugin for `jupyter-server-proxy `_ @@ -12,12 +12,12 @@ in a JupyterHub / Binder environment. Installing Theia ================ -#. `Install the ``yarn`` package manager `_ +#. `Install the ``yarn`` package manager `_ with one of the available methods. #. Theia is highly configurable, so you need to decide which features you want in your theia install. Make a ``package.json`` with the list of extensions you want, - following `the instructions here `_. + following `the instructions here `_. Here is an example: diff --git a/docs/convenience/new.rst b/docs/convenience/new.rst index b59abbb5..21633155 100644 --- a/docs/convenience/new.rst +++ b/docs/convenience/new.rst @@ -4,7 +4,7 @@ Making a new convenience package ================================ -There is a `cookiecutter `_ +There is a `cookiecutter `_ template provided in this repo that can be used to make new packages. .. code:: bash diff --git a/docs/server-process.rst b/docs/server-process.rst index f579daee..a9badb24 100644 --- a/docs/server-process.rst +++ b/docs/server-process.rst @@ -234,7 +234,7 @@ if we want tighter control over what process is spawned. } } - This will start `OpenRefine `_ with the + This will start `OpenRefine `_ with the ``refine`` command (which must be in $PATH) on a randomly generated port, and make it available under ``/openrefine`` in your notebook url. The URL path is specified by the key, From cdc835851f0c507984225d0979c7ce79252b4920 Mon Sep 17 00:00:00 2001 From: Erik Sundell Date: Tue, 30 Nov 2021 13:47:21 +0100 Subject: [PATCH 09/17] Update .gitignore --- .gitignore | 155 +++++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 146 insertions(+), 9 deletions(-) diff --git a/.gitignore b/.gitignore index 8b53b5de..d2bfb0b9 100644 --- a/.gitignore +++ b/.gitignore @@ -1,12 +1,149 @@ -.coverage* -.ipynb_checkpoints/ -.vscode -*.egg-info/ -*.pyc -build/ -dist -docs/_build +# Manually added entries +# +jsdist jupyter_server_proxy/labextension -MANIFEST node_modules package-lock.json + + + +# Copy pasted entries from: +# https://raw.githubusercontent.com/github/gitignore/master/Python.gitignore +# + +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +share/python-wheels/ +*.egg-info/ +.installed.cfg +*.egg + PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.nox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +*.py,cover +.hypothesis/ +.pytest_cache/ +cover/ + +# Translations +*.mo +*.pot + +# Django stuff: +*.log +local_settings.py +db.sqlite3 +db.sqlite3-journal + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +.pybuilder/ +target/ + +# Jupyter Notebook +.ipynb_checkpoints + +# IPython +profile_default/ +ipython_config.py + +# pyenv +# For a library or package, you might want to ignore these files since the code is +# intended to run in multiple environments; otherwise, check them in: +# .python-version + +# pipenv +# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. +# However, in case of collaboration, if having platform-specific dependencies or dependencies +# having no cross-platform support, pipenv may install dependencies that don't work, or not +# install all needed dependencies. +#Pipfile.lock + +# PEP 582; used by e.g. github.com/David-OConnor/pyflow +__pypackages__/ + +# Celery stuff +celerybeat-schedule +celerybeat.pid + +# SageMath parsed files +*.sage.py + +# Environments +.env +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# Spyder project settings +.spyderproject +.spyproject + +# Rope project settings +.ropeproject + +# mkdocs documentation +/site + +# mypy +.mypy_cache/ +.dmypy.json +dmypy.json + +# Pyre type checker +.pyre/ + +# pytype static type analyzer +.pytype/ + +# Cython debug symbols +cython_debug/ From 2af9e707801d162b7b6f4014a4d62ce3dd9443b3 Mon Sep 17 00:00:00 2001 From: Erik Sundell Date: Tue, 30 Nov 2021 14:12:12 +0100 Subject: [PATCH 10/17] docs: fix warnings for linkcheck --- docs/_static/images/logo/favicon.ico | Bin 0 -> 4555 bytes docs/conf.py | 3 ++- docs/server-process.rst | 10 +++++----- 3 files changed, 7 insertions(+), 6 deletions(-) create mode 100644 docs/_static/images/logo/favicon.ico diff --git a/docs/_static/images/logo/favicon.ico b/docs/_static/images/logo/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..ffdf84e2314ca24a8b508642368dbba3bc61c7cc GIT binary patch literal 4555 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 literal 0 HcmV?d00001 diff --git a/docs/conf.py b/docs/conf.py index b449586d..07ee2dfe 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -74,7 +74,8 @@ } html_favicon = "_static/images/logo/favicon.ico" -html_logo = "_static/images/logo/logo.png" +# FIXME: Add project logo +# html_logo = "_static/images/logo/logo.png" # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, diff --git a/docs/server-process.rst b/docs/server-process.rst index a9badb24..dc6502c6 100644 --- a/docs/server-process.rst +++ b/docs/server-process.rst @@ -33,7 +33,7 @@ pairs. For example, if the application needs to know its full path it can be constructed from ``{base_url}/proxy/{port}`` - * A callable that takes any :ref:`callable arguments `, + * A callable that takes any :ref:`callable arguments `, and returns a list of strings that are used & treated same as above. This key is required. @@ -56,7 +56,7 @@ pairs. process itself. The strings ``{port}`` and ``{base_url}`` will be replaced as for **command**. - * A callable that takes any :ref:`callable arguments `, + * A callable that takes any :ref:`callable arguments `, and returns a dictionary of strings that are used & treated same as above. ``absolute_url`` @@ -139,7 +139,7 @@ pairs. ``request_headers_override`` -^^^^^^^^^^^^^^^ +^^^^^^^^^^^^^^^^^^^^^^^^^^^^ One of: @@ -147,11 +147,11 @@ pairs. request. The strings ``{port}`` and ``{base_url}`` will be replaced as for **command**. - * A callable that takes any :ref:`callable arguments `, + * A callable that takes any :ref:`callable arguments `, and returns a dictionary of strings that are used & treated same as above. -.. _server-processes/callable-arguments: +.. _server-process/callable-arguments: Callable arguments ------------------ From c69d73f590d990808d3eef5f1eb5c575084a00e0 Mon Sep 17 00:00:00 2001 From: Nicholas Bollweg Date: Tue, 30 Nov 2021 16:32:05 -0600 Subject: [PATCH 11/17] remove lab style --- jupyterlab-server-proxy/src/index.ts | 2 -- jupyterlab-server-proxy/style/index.css | 0 2 files changed, 2 deletions(-) delete mode 100644 jupyterlab-server-proxy/style/index.css diff --git a/jupyterlab-server-proxy/src/index.ts b/jupyterlab-server-proxy/src/index.ts index c3aaf193..795eed41 100644 --- a/jupyterlab-server-proxy/src/index.ts +++ b/jupyterlab-server-proxy/src/index.ts @@ -3,8 +3,6 @@ import { ILauncher } from '@jupyterlab/launcher'; import { PageConfig } from '@jupyterlab/coreutils'; import { IFrame, MainAreaWidget, WidgetTracker } from '@jupyterlab/apputils'; -import '../style/index.css'; - function newServerProxyWidget(id: string, url: string, text: string): MainAreaWidget