From 16bf89c0d75fe2bc3328c480b88f4423c22a7784 Mon Sep 17 00:00:00 2001 From: Manuel Kaufmann Date: Thu, 2 Feb 2023 20:52:10 +0100 Subject: [PATCH 1/4] Docs: remove outdated and complex code This commit reduces the complexity of the documentation environment by removing the requirement of having Django installed and loaded to build the docs. * Remove the `djangodocs` and `doc_extensions`: they load the whole Django application unnecesarily. We need to have a bunch of requirements installed just because of this. * Remove defaults from "Interesting settings" because all the default were wrong. The Django extension was loading an invalid set of settings. This page could be completely removed as well probably. * Remove `featureflag` role because of the same reason (loads a whole Django project). We were using it only to show a small description of the feature flags. I wrote that text directly in the page. Feature flags are deprecated and this page will probably deleted soon as well. * Remove `buildpyversions` role also. Same reason. Manually wrote the versions supported on each Docker image. This is used for the legacy images, tho. They won't change since we don't maintain them anymore. --- docs/conf.py | 12 ------ docs/dev/settings.rst | 32 --------------- docs/doc_extensions.py | 75 ------------------------------------ docs/user/config-file/v1.rst | 10 +++-- docs/user/config-file/v2.rst | 6 ++- docs/user/feature-flags.rst | 6 +-- 6 files changed, 13 insertions(+), 128 deletions(-) delete mode 100644 docs/doc_extensions.py diff --git a/docs/conf.py b/docs/conf.py index ebecf600b7b..2639f3088ff 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -16,16 +16,6 @@ from multiproject.utils import get_project -sys.path.insert(0, os.path.abspath("..")) -sys.path.append(os.path.dirname(__file__)) -os.environ.setdefault("DJANGO_SETTINGS_MODULE", "readthedocs.settings.docker_compose") - -# Load Django after sys.path and configuration setup -# isort: split -import django - -django.setup() - sys.path.append(os.path.abspath("_ext")) extensions = [ "multiproject", @@ -34,8 +24,6 @@ "sphinx.ext.intersphinx", "sphinxcontrib.httpdomain", "sphinxcontrib.video", - "djangodocs", - "doc_extensions", "sphinx_tabs.tabs", "sphinx-prompt", "notfound.extension", diff --git a/docs/dev/settings.rst b/docs/dev/settings.rst index 2ff502bc45d..58dca4b3891 100644 --- a/docs/dev/settings.rst +++ b/docs/dev/settings.rst @@ -4,8 +4,6 @@ Interesting Settings DOCKER_LIMITS ------------- -Default: :djangosetting:`DOCKER_LIMITS` - A dictionary of limits to virtual machines. These limits include: time @@ -27,8 +25,6 @@ SLUMBER_USERNAME .. Don't set this automatically, lest we leak something. We are using the dev settings in the conf.py, but it's probably a good idea to be safe. -Default: ``test`` - The username to use when connecting to the Read the Docs API. Used for hitting the API while building the docs. SLUMBER_PASSWORD @@ -37,15 +33,11 @@ SLUMBER_PASSWORD .. Don't set this automatically, lest we leak something. We are using the dev settings in the conf.py, but it's probably a good idea to be safe. -Default: ``test`` - The password to use when connecting to the Read the Docs API. Used for hitting the API while building the docs. USE_SUBDOMAIN --------------- -Default: :djangosetting:`USE_SUBDOMAIN` - Whether to use subdomains in URLs on the site, or the Django-served content. When used in production, this should be ``True``, as Nginx will serve this content. During development and other possible deployments, this might be ``False``. @@ -53,38 +45,28 @@ During development and other possible deployments, this might be ``False``. PRODUCTION_DOMAIN ------------------ -Default: :djangosetting:`PRODUCTION_DOMAIN` - This is the domain that gets linked to throughout the site when used in production. It depends on `USE_SUBDOMAIN`, otherwise it isn't used. RTD_INTERSPHINX_URL ------------------- -Default: :djangosetting:`RTD_INTERSPHINX_URL` - This is the domain that is used to fetch the intersphinx inventory file. If not set explicitly this is the ``PRODUCTION_DOMAIN``. DEFAULT_PRIVACY_LEVEL --------------------- -Default: :djangosetting:`DEFAULT_PRIVACY_LEVEL` - What privacy projects default to having. Generally set to `public`. Also acts as a proxy setting for blocking certain historically insecure options, like serving generated artifacts directly from the media server. INDEX_ONLY_LATEST ----------------- -Default: :djangosetting:`INDEX_ONLY_LATEST` - In search, only index the `latest` version of a Project. PUBLIC_DOMAIN ------------- -Default: :djangosetting:`PUBLIC_DOMAIN` - A special domain for serving public documentation. If set, public docs will be linked here instead of the `PRODUCTION_DOMAIN`. @@ -92,8 +74,6 @@ If set, public docs will be linked here instead of the `PRODUCTION_DOMAIN`. PUBLIC_DOMAIN_USES_HTTPS ------------------------ -Default: ``False`` - If ``True`` and ``PUBLIC_DOMAIN`` is set, that domain will default to serving public documentation over HTTPS. By default, documentation is served over HTTP. @@ -102,16 +82,12 @@ served over HTTP. ALLOW_ADMIN ----------- -Default: :djangosetting:`ALLOW_ADMIN` - Whether to include `django.contrib.admin` in the URL's. RTD_BUILD_MEDIA_STORAGE ----------------------- -Default: ``readthedocs.builds.storage.BuildMediaFileSystemStorage`` - Use this storage class to upload build artifacts to cloud storage (S3, Azure storage). This should be a dotted path to the relevant class (eg. ``'path.to.MyBuildMediaStorage'``). Your class should mixin :class:`readthedocs.builds.storage.BuildMediaStorageMixin`. @@ -166,8 +142,6 @@ and the ``settings`` is used for configuring the particular index. ES_TASK_CHUNK_SIZE ------------------ -Default: :djangosetting:`ES_TASK_CHUNK_SIZE` - The maximum number of data send to each elasticsearch indexing celery task. This has been used while running ``elasticsearch_reindex`` management command. @@ -175,8 +149,6 @@ This has been used while running ``elasticsearch_reindex`` management command. ES_PAGE_IGNORE_SIGNALS ---------------------- -Default: ``False`` - This settings is used to determine whether to index each page separately into elasticsearch. If the setting is ``True``, each ``HTML`` page will not be indexed separately but will be indexed by bulk indexing. @@ -185,11 +157,7 @@ indexed by bulk indexing. ELASTICSEARCH_DSL_AUTOSYNC -------------------------- -Default: ``True`` - This setting is used for automatically indexing objects to elasticsearch. -``False`` by default in development so it is possible to create -project and build documentations without having elasticsearch. .. _elasticsearch-dsl-py.connections.configure: https://elasticsearch-dsl.readthedocs.io/en/stable/configuration.html#multiple-clusters diff --git a/docs/doc_extensions.py b/docs/doc_extensions.py deleted file mode 100644 index e105634bfae..00000000000 --- a/docs/doc_extensions.py +++ /dev/null @@ -1,75 +0,0 @@ -""" -Read the Docs documentation extensions for Sphinx - -Adds the following roles: - -djangosetting - Output an inline literal of the corresponding setting value. Useful for - keeping documentation up to date without editing on settings changes. - -buildpyversions - Output a comma separated list of the supported python versions for a - Read the Docs build image. -""" - -from django.conf import settings -from docutils import nodes, utils - -from readthedocs.projects.models import Feature - - -def django_setting_role(typ, rawtext, text, lineno, inliner, options=None, - content=None): - """Always up to date Django settings from the application""" - dj_setting = getattr(settings, utils.unescape(text), 'None') - node = nodes.literal(dj_setting, dj_setting) - return [node], [] - - -def python_supported_versions_role(typ, rawtext, text, lineno, inliner, - options=None, content=None): - """Up to date supported python versions for each build image.""" - image = '{}:{}'.format(settings.DOCKER_DEFAULT_IMAGE, text) - image_settings = settings.DOCKER_IMAGE_SETTINGS[image] - python_versions = image_settings['python']['supported_versions'] - node_list = [] - separator = ', ' - for i, version in enumerate(python_versions): - node_list.append(nodes.literal(version, version)) - if i < len(python_versions) - 1: - node_list.append(nodes.Text(separator)) - return (node_list, []) - - -def feature_flags_role(typ, rawtext, text, lineno, inliner, options=None, - content=None): - """Up to date feature flags from the application.""" - all_features = Feature.FEATURES - requested_feature = utils.unescape(text) - for feature in all_features: - if requested_feature.lower() == feature[0].lower(): - return [nodes.Text(feature[1], feature[1])], [] - raise ValueError( - "Unknown feature flag {!r}".format(requested_feature)) - - -def setup(_): - from docutils.parsers.rst import roles - roles.register_local_role( - 'djangosetting', - django_setting_role - ) - roles.register_local_role( - 'buildpyversions', - python_supported_versions_role, - ) - roles.register_local_role( - 'featureflags', - feature_flags_role, - ) - - return { - 'version': 'builtin', - 'parallel_read_safe': True, - 'parallel_write_safe': True, - } diff --git a/docs/user/config-file/v1.rst b/docs/user/config-file/v1.rst index 38d96911842..299b62d2cff 100644 --- a/docs/user/config-file/v1.rst +++ b/docs/user/config-file/v1.rst @@ -114,7 +114,7 @@ The ``build`` block configures specific aspects of the documentation build. build.image ``````````` -* Default: :djangosetting:`DOCKER_DEFAULT_VERSION` +* Default: ``latest`` * Options: ``stable``, ``latest`` The build image to use for specific builds. @@ -124,8 +124,10 @@ if they want to be on the cutting edge. Certain Python versions require a certain build image, as defined here: -* ``stable``: :buildpyversions:`stable` -* ``latest``: :buildpyversions:`latest` +* ``stable``: + ``2``, ``2.7``, ``3``, ``3.5``, ``3.6``, ``3.7``, ``pypy3.5`` +* ``latest``: + ``2``, ``2.7``, ``3``, ``3.5``, ``3.6``, ``3.7``, ``3.8``, ``pypy3.5`` .. code-block:: yaml @@ -147,7 +149,7 @@ python.version `````````````` * Default: ``3.7`` -* Options: :buildpyversions:`latest` +* Options: ``2``, ``2.7``, ``3``, ``3.5``, ``3.6``, ``3.7``, ``3.8``, ``pypy3.5`` This is the version of Python to use when building your documentation. If you specify only the major version of Python, diff --git a/docs/user/config-file/v2.rst b/docs/user/config-file/v2.rst index 6fa7a3a13a7..5401f61e092 100644 --- a/docs/user/config-file/v2.rst +++ b/docs/user/config-file/v2.rst @@ -856,8 +856,10 @@ The Docker image used for building the docs. Each image support different Python versions and has different packages installed, as defined here: -* `stable `_: :buildpyversions:`stable` -* `latest `_: :buildpyversions:`latest` +* `stable `_: + ``2``, ``2.7``, ``3``, ``3.5``, ``3.6``, ``3.7``, ``pypy3.5`` +* `latest `_: + ``2``, ``2.7``, ``3``, ``3.5``, ``3.6``, ``3.7``, ``3.8``, ``pypy3.5`` python.version (legacy) ``````````````````````` diff --git a/docs/user/feature-flags.rst b/docs/user/feature-flags.rst index 0ac3a236f72..e35e5f2c373 100644 --- a/docs/user/feature-flags.rst +++ b/docs/user/feature-flags.rst @@ -11,14 +11,14 @@ or reaching out to the administrator of your service. Available Flags --------------- -``CONDA_APPEND_CORE_REQUIREMENTS``: :featureflags:`CONDA_APPEND_CORE_REQUIREMENTS` +``CONDA_APPEND_CORE_REQUIREMENTS``: Append Read the Docs core requirements to environment.yml file. Makes Read the Docs to install all the requirements at once on ``conda create`` step. This helps users to pin dependencies on conda and to improve build time. -``DONT_OVERWRITE_SPHINX_CONTEXT``: :featureflags:`DONT_OVERWRITE_SPHINX_CONTEXT` +``DONT_OVERWRITE_SPHINX_CONTEXT``: Do not overwrite context vars in conf.py with Read the Docs context. -``DONT_CREATE_INDEX``: :featureflags:`DONT_CREATE_INDEX` +``DONT_CREATE_INDEX``: Do not create index.md or README.rst if the project does not have one. When Read the Docs detects that your project doesn't have an ``index.md`` or ``README.rst``, it auto-generate one for you with instructions about how to proceed. From bc8da17873c65975889baee1dfbdbb55b651cdb1 Mon Sep 17 00:00:00 2001 From: Manuel Kaufmann Date: Thu, 2 Feb 2023 21:03:47 +0100 Subject: [PATCH 2/4] Docs: reduce requirements drastically Since we don't depend on Django anymore we can remove the `-r pip.txt` dependency from the documentation. This makes the documentation just to rely on Sphinx and some other extensions only simplifying the environment a lot and running fast. --- requirements/docs.in | 3 +- requirements/docs.txt | 383 +++--------------------------------------- 2 files changed, 21 insertions(+), 365 deletions(-) diff --git a/requirements/docs.in b/requirements/docs.in index 73260ff10bb..08fb5be085e 100644 --- a/requirements/docs.in +++ b/requirements/docs.in @@ -1,7 +1,6 @@ # Packages required to build docs, independent of application dependencies --r pip.txt - +sphinx sphinx_rtd_theme==1.2.0rc1 # Note: Version 3.4.1 of sphinx-tabs requires docutils 0.18 which is yet to be supported by sphinx-rtd-theme # Version 3.4.0 has an incompatible Jinja2 version which also blocks sphinx-rtd-theme diff --git a/requirements/docs.txt b/requirements/docs.txt index 004770f47ba..694e21427f0 100644 --- a/requirements/docs.txt +++ b/requirements/docs.txt @@ -5,354 +5,73 @@ # pip-compile --output-file=requirements/docs.txt --resolver=backtracking requirements/docs.in # alabaster==0.7.13 - # via - # -r requirements/pip.txt - # sphinx -amqp==5.1.1 - # via - # -r requirements/pip.txt - # kombu -asgiref==3.6.0 - # via - # -r requirements/pip.txt - # django + # via sphinx babel==2.11.0 # via - # -r requirements/pip.txt # sphinx # sphinx-intl -billiard==3.6.4.0 - # via - # -r requirements/pip.txt - # celery -boto3==1.26.59 - # via - # -r requirements/pip.txt - # django-storages -botocore==1.29.59 - # via - # -r requirements/pip.txt - # boto3 - # s3transfer -celery==5.2.7 - # via -r requirements/pip.txt certifi==2022.12.7 - # via - # -r requirements/pip.txt - # elasticsearch - # requests -cffi==1.15.1 - # via - # -r requirements/pip.txt - # cryptography + # via requests charset-normalizer==3.0.1 - # via - # -r requirements/pip.txt - # requests + # via requests click==8.1.3 - # via - # -r requirements/pip.txt - # celery - # click-didyoumean - # click-plugins - # click-repl - # sphinx-intl -click-didyoumean==0.3.0 - # via - # -r requirements/pip.txt - # celery -click-plugins==1.1.1 - # via - # -r requirements/pip.txt - # celery -click-repl==0.2.0 - # via - # -r requirements/pip.txt - # celery + # via sphinx-intl colorama==0.4.6 # via sphinx-autobuild -cryptography==39.0.0 - # via - # -r requirements/pip.txt - # pyjwt -cssselect==1.2.0 - # via - # -r requirements/pip.txt - # pyquery -cython==0.29.33 - # via - # -r requirements/pip.txt - # selectolax -defusedxml==0.7.1 - # via - # -r requirements/pip.txt - # python3-openid -distlib==0.3.6 - # via - # -r requirements/pip.txt - # virtualenv -dj-pagination==2.5.0 - # via -r requirements/pip.txt -dj-stripe==2.6.3 - # via -r requirements/pip.txt -django==3.2.16 - # via - # -r requirements/pip.txt - # dj-stripe - # django-allauth - # django-annoying - # django-csp - # django-debug-toolbar - # django-extensions - # django-filter - # django-formtools - # django-polymorphic - # django-storages - # django-structlog - # django-taggit - # djangorestframework - # jsonfield -django-allauth==0.51.0 - # via -r requirements/pip.txt -django-annoying==0.10.6 - # via -r requirements/pip.txt -django-autoslug==1.9.8 - # via -r requirements/pip.txt -django-cors-middleware==1.4.0 - # via -r requirements/pip.txt -django-crispy-forms==1.14.0 - # via -r requirements/pip.txt -django-csp==3.7 - # via -r requirements/pip.txt -django-debug-toolbar==3.8.1 - # via -r requirements/pip.txt -django-elasticsearch-dsl==7.2.2 - # via -r requirements/pip.txt -django-extensions==3.2.1 - # via -r requirements/pip.txt -django-filter==22.1 - # via -r requirements/pip.txt -django-formtools==2.3 - # via -r requirements/pip.txt -django-gravatar2==1.4.4 - # via -r requirements/pip.txt -django-ipware==4.0.2 - # via - # -r requirements/pip.txt - # django-structlog -django-kombu==0.9.4 - # via -r requirements/pip.txt -django-messages-extends==0.6.3 - # via -r requirements/pip.txt -django-polymorphic==3.1.0 - # via -r requirements/pip.txt -django-simple-history==3.0.0 - # via -r requirements/pip.txt -django-storages[boto3]==1.13.2 - # via -r requirements/pip.txt -django-structlog==2.2.0 - # via -r requirements/pip.txt -django-taggit==3.1.0 - # via -r requirements/pip.txt -django-vanilla-views==3.0.0 - # via -r requirements/pip.txt -djangorestframework==3.14.0 - # via - # -r requirements/pip.txt - # drf-extensions -djangorestframework-jsonp==1.0.2 - # via -r requirements/pip.txt -docker==6.0.1 - # via -r requirements/pip.txt docutils==0.17.1 # via - # -r requirements/pip.txt # myst-parser # sphinx # sphinx-rtd-theme # sphinx-tabs -dparse==0.6.2 - # via -r requirements/pip.txt -drf-extensions==0.7.1 - # via -r requirements/pip.txt -drf-flex-fields==1.0.0 - # via -r requirements/pip.txt -elasticsearch==7.17.8 - # via - # -r requirements/pip.txt - # elasticsearch-dsl -elasticsearch-dsl==7.4.0 - # via - # -r requirements/pip.txt - # django-elasticsearch-dsl -filelock==3.9.0 - # via - # -r requirements/pip.txt - # virtualenv -gitdb==4.0.10 - # via - # -r requirements/pip.txt - # gitpython -gitpython==3.1.30 - # via -r requirements/pip.txt idna==3.4 - # via - # -r requirements/pip.txt - # requests + # via requests imagesize==1.4.1 - # via - # -r requirements/pip.txt - # sphinx + # via sphinx jinja2==3.1.2 # via - # -r requirements/pip.txt # myst-parser # sphinx -jmespath==1.0.1 - # via - # -r requirements/pip.txt - # boto3 - # botocore -jsonfield==3.1.0 - # via - # -r requirements/pip.txt - # dj-stripe -kombu==5.2.4 - # via - # -r requirements/pip.txt - # celery livereload==2.6.3 # via sphinx-autobuild -lxml==4.9.2 - # via - # -r requirements/pip.txt - # pyquery -markdown==3.4.1 - # via -r requirements/pip.txt markdown-it-py==2.1.0 # via # mdit-py-plugins # myst-parser markupsafe==2.1.2 - # via - # -r requirements/pip.txt - # jinja2 + # via jinja2 mdit-py-plugins==0.3.3 # via myst-parser mdurl==0.1.2 # via markdown-it-py myst-parser==0.17.2 # via -r requirements/docs.in -oauthlib==3.2.2 - # via - # -r requirements/pip.txt - # requests-oauthlib -orjson==3.8.5 - # via -r requirements/pip.txt packaging==23.0 - # via - # -r requirements/pip.txt - # docker - # dparse - # sphinx + # via sphinx pbr==5.11.1 # via sphinxcontrib-video -platformdirs==2.6.2 - # via - # -r requirements/pip.txt - # virtualenv -prompt-toolkit==3.0.36 - # via - # -r requirements/pip.txt - # click-repl -pycparser==2.21 - # via - # -r requirements/pip.txt - # cffi pygments==2.14.0 # via - # -r requirements/pip.txt # sphinx # sphinx-prompt # sphinx-tabs -pyjwt[crypto]==2.6.0 - # via - # -r requirements/pip.txt - # django-allauth -pyquery==2.0.0 - # via -r requirements/pip.txt -python-dateutil==2.8.2 - # via - # -r requirements/pip.txt - # botocore - # elasticsearch-dsl -python3-openid==3.2.0 - # via - # -r requirements/pip.txt - # django-allauth pytz==2022.7.1 - # via - # -r requirements/pip.txt - # babel - # celery - # django - # djangorestframework + # via babel pyyaml==5.4.1 - # via - # -r requirements/pip.txt - # myst-parser + # via myst-parser readthedocs-sphinx-search==0.1.2 # via -r requirements/docs.in -redis==3.5.3 - # via -r requirements/pip.txt -regex==2022.10.31 - # via -r requirements/pip.txt requests==2.28.2 - # via - # -r requirements/pip.txt - # django-allauth - # docker - # requests-oauthlib - # requests-toolbelt - # slumber - # sphinx - # stripe -requests-oauthlib==1.3.1 - # via - # -r requirements/pip.txt - # django-allauth -requests-toolbelt==0.10.1 - # via -r requirements/pip.txt -s3transfer==0.6.0 - # via - # -r requirements/pip.txt - # boto3 -selectolax==0.3.12 - # via -r requirements/pip.txt + # via sphinx six==1.16.0 # via - # -r requirements/pip.txt - # click-repl - # django-annoying - # django-elasticsearch-dsl - # elasticsearch-dsl # livereload - # python-dateutil # sphinxcontrib-httpdomain - # unicode-slugify -slumber==0.7.1 - # via -r requirements/pip.txt -smmap==5.0.0 - # via - # -r requirements/pip.txt - # gitdb snowballstemmer==2.2.0 - # via - # -r requirements/pip.txt - # sphinx + # via sphinx sphinx==4.5.0 # via - # -r requirements/pip.txt + # -r requirements/docs.in # myst-parser # sphinx-autobuild # sphinx-design @@ -382,93 +101,31 @@ sphinx-rtd-theme==1.2.0rc1 sphinx-tabs==3.3.1 # via -r requirements/docs.in sphinxcontrib-applehelp==1.0.4 - # via - # -r requirements/pip.txt - # sphinx + # via sphinx sphinxcontrib-devhelp==1.0.2 - # via - # -r requirements/pip.txt - # sphinx + # via sphinx sphinxcontrib-htmlhelp==2.0.0 - # via - # -r requirements/pip.txt - # sphinx + # via sphinx sphinxcontrib-httpdomain==1.8.1 # via -r requirements/docs.in sphinxcontrib-jquery==3.0.0 # via sphinx-hoverxref sphinxcontrib-jsmath==1.0.1 - # via - # -r requirements/pip.txt - # sphinx + # via sphinx sphinxcontrib-qthelp==1.0.3 - # via - # -r requirements/pip.txt - # sphinx + # via sphinx sphinxcontrib-serializinghtml==1.1.5 - # via - # -r requirements/pip.txt - # sphinx + # via sphinx sphinxcontrib-video @ git+https://github.com/readthedocs/sphinxcontrib-video/ # via -r requirements/docs.in sphinxemoji==0.2.0 # via -r requirements/docs.in -sqlparse==0.4.3 - # via - # -r requirements/pip.txt - # django - # django-debug-toolbar -stripe==4.2.0 - # via - # -r requirements/pip.txt - # dj-stripe -structlog==22.3.0 - # via - # -r requirements/pip.txt - # django-structlog -toml==0.10.2 - # via - # -r requirements/pip.txt - # dparse tornado==6.2 # via livereload typing-extensions==4.4.0 # via myst-parser -ua-parser==0.16.1 - # via - # -r requirements/pip.txt - # user-agents -unicode-slugify @ git+https://github.com/mozilla/unicode-slugify@b696c37 - # via -r requirements/pip.txt -unidecode==1.3.6 - # via - # -r requirements/pip.txt - # unicode-slugify urllib3==1.26.14 - # via - # -r requirements/pip.txt - # botocore - # docker - # elasticsearch - # requests -user-agents==2.2.0 - # via -r requirements/pip.txt -vine==5.0.0 - # via - # -r requirements/pip.txt - # amqp - # celery - # kombu -virtualenv==20.17.1 - # via -r requirements/pip.txt -wcwidth==0.2.6 - # via - # -r requirements/pip.txt - # prompt-toolkit -websocket-client==1.5.0 - # via - # -r requirements/pip.txt - # docker + # via requests # The following packages are considered to be unsafe in a requirements file: # setuptools From ef5168bd774f5b2734a6d7547a7f7cef9df60d94 Mon Sep 17 00:00:00 2001 From: Manuel Kaufmann Date: Thu, 2 Feb 2023 21:08:56 +0100 Subject: [PATCH 3/4] Docs: don't install `pip.txt` --- .readthedocs.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.readthedocs.yml b/.readthedocs.yml index aa8b8e0ac8c..6476ff3fc7a 100644 --- a/.readthedocs.yml +++ b/.readthedocs.yml @@ -8,7 +8,6 @@ sphinx: python: install: - - requirements: requirements/pip.txt - requirements: requirements/docs.txt build: From afd5ca5d0a4e4a6a2230dfaab8906c113ad54130 Mon Sep 17 00:00:00 2001 From: Manuel Kaufmann Date: Thu, 2 Feb 2023 21:12:59 +0100 Subject: [PATCH 4/4] Docs: remove missing `djangosetting` role --- docs/user/guides/embedding-content.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/user/guides/embedding-content.rst b/docs/user/guides/embedding-content.rst index 5654895bbdc..7a05dc7100d 100644 --- a/docs/user/guides/embedding-content.rst +++ b/docs/user/guides/embedding-content.rst @@ -2,7 +2,7 @@ Embedding Content From Your Documentation ========================================= Read the Docs allows you to embed content from any of the projects we host and specific allowed external domains -(currently, :djangosetting:`RTD_EMBED_API_EXTERNAL_DOMAINS`) +(currently, ``docs.python.org``, ``docs.scipy.org``, ``docs.sympy.org``, ``numpy.org``) This allows reuse of content across sites, making sure the content is always up to date. There are a number of uses cases for embedding content,