-
-
Notifications
You must be signed in to change notification settings - Fork 74
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Branch: refs/heads/main Date: 2024-12-17T02:44:46-08:00 Author: Steve Piercy (stevepiercy) <[email protected]> Commit: plone/plone.api@ee2ee43 Use Read the Docs for pull request previews Files changed: A .github/workflows/rtd-pr-preview.yml A .readthedocs.yaml Repository: plone.api Branch: refs/heads/main Date: 2024-12-17T03:01:55-08:00 Author: Steve Piercy (stevepiercy) <[email protected]> Commit: plone/plone.api@1a02f35 Fiddle with commands to RTD Files changed: M .readthedocs.yaml Repository: plone.api Branch: refs/heads/main Date: 2024-12-17T03:03:57-08:00 Author: Steve Piercy (stevepiercy) <[email protected]> Commit: plone/plone.api@c1e063b Drop to Python 3.11 because plone.api does not yet officially support 3.12 Files changed: M .readthedocs.yaml Repository: plone.api Branch: refs/heads/main Date: 2024-12-17T03:18:02-08:00 Author: Steve Piercy (stevepiercy) <[email protected]> Commit: plone/plone.api@975c810 Specify where to put built files on RTD Files changed: M .readthedocs.yaml M tox.ini Repository: plone.api Branch: refs/heads/main Date: 2024-12-17T03:21:35-08:00 Author: Steve Piercy (stevepiercy) <[email protected]> Commit: plone/plone.api@dce02cf Fiddle with tox syntax Files changed: M tox.ini Repository: plone.api Branch: refs/heads/main Date: 2024-12-17T03:32:11-08:00 Author: Steve Piercy (stevepiercy) <[email protected]> Commit: plone/plone.api@6d88ea7 Fiddle with tox syntax attempt 2 Files changed: M tox.ini Repository: plone.api Branch: refs/heads/main Date: 2024-12-17T03:35:13-08:00 Author: Steve Piercy (stevepiercy) <[email protected]> Commit: plone/plone.api@949a16a Fiddle with tox syntax attempt 3 Files changed: M tox.ini Repository: plone.api Branch: refs/heads/main Date: 2024-12-17T16:39:34-08:00 Author: David Glick (davisagli) <[email protected]> Commit: plone/plone.api@b5e510f news and manifest Files changed: A news/545.documentation M MANIFEST.in Repository: plone.api Branch: refs/heads/main Date: 2024-12-17T16:47:20-08:00 Author: David Glick (davisagli) <[email protected]> Commit: plone/plone.api@d8c716b Merge pull request #545 from plone/rtd-preview Use Read the Docs for pull request previews Files changed: A .github/workflows/rtd-pr-preview.yml A .readthedocs.yaml A news/545.documentation M MANIFEST.in M tox.ini
- Loading branch information
Showing
1 changed file
with
136 additions
and
21 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,29 +1,144 @@ | ||
Repository: Products.CMFPlone | ||
Repository: plone.api | ||
|
||
|
||
Branch: refs/heads/6.0.x | ||
Date: 2024-12-17T16:42:36-08:00 | ||
Author: Maurits van Rees (mauritsvanrees) <[email protected]> | ||
Commit: https://github.com/plone/Products.CMFPlone/commit/04985e8c9fb6c5dcc20f0bbcc2703695f57832bd | ||
Branch: refs/heads/main | ||
Date: 2024-12-17T02:44:46-08:00 | ||
Author: Steve Piercy (stevepiercy) <[email protected]> | ||
Commit: https://github.com/plone/plone.api/commit/ee2ee4321890231a9e6af942bb5653797349f772 | ||
|
||
Remove unittest.makeSuite for Py 3.13 compatibility [6.0] (#4081) | ||
Use Read the Docs for pull request previews | ||
|
||
* unittest.makeSuite got removed in py3.13 | ||
|
||
* changenote | ||
|
||
* Remove unittest.makeSuite from testPropertiesTool.py as well. | ||
|
||
--------- | ||
|
||
Co-authored-by: Peter Mathis <[email protected]> | ||
Files changed: | ||
A .github/workflows/rtd-pr-preview.yml | ||
A .readthedocs.yaml | ||
|
||
b'diff --git a/.github/workflows/rtd-pr-preview.yml b/.github/workflows/rtd-pr-preview.yml\nnew file mode 100644\nindex 00000000..b1be1f5f\n--- /dev/null\n+++ b/.github/workflows/rtd-pr-preview.yml\n@@ -0,0 +1,22 @@\n+# .github/workflows/rtd-pr-preview.yml\n+name: readthedocs/actions\n+on:\n+ pull_request_target:\n+ types:\n+ - opened\n+ # Execute this action only on PRs that touch\n+ # documentation files.\n+ # paths:\n+ # - "docs/**"\n+\n+permissions:\n+ pull-requests: write\n+\n+jobs:\n+ documentation-links:\n+ runs-on: ubuntu-latest\n+ steps:\n+ - uses: readthedocs/actions/preview@v1\n+ with:\n+ project-slug: "ploneapi"\n+ single-version: "true"\ndiff --git a/.readthedocs.yaml b/.readthedocs.yaml\nnew file mode 100644\nindex 00000000..f32a2278\n--- /dev/null\n+++ b/.readthedocs.yaml\n@@ -0,0 +1,25 @@\n+# .readthedocs.yaml\n+# Read the Docs configuration file\n+# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details\n+\n+# Required\n+version: 2\n+\n+# Set the OS, Python version and other tools you might need\n+build:\n+ os: ubuntu-22.04\n+ tools:\n+ python: "3.12"\n+ commands:\n+ # Cancel building pull requests when there aren\'t changes in the docs directory or YAML file.\n+ # You can add any other files or directories that you\'d like here as well,\n+ # like your docs requirements file, or other files that will change your docs build.\n+ #\n+ # If there are no changes (git diff exits with 0) we force the command to return with 183.\n+ # This is a special exit code on Read the Docs that will cancel the build immediately.\n+ - |\n+ if [ "$READTHEDOCS_VERSION_TYPE" = "external" ] && git diff --quiet origin/main -- docs/ .readthedocs.yaml requirements-docs.txt requirements.txt;\n+ then\n+ exit 183;\n+ fi\n+ - tox -e plone6docs\n' | ||
|
||
Repository: plone.api | ||
|
||
|
||
Branch: refs/heads/main | ||
Date: 2024-12-17T03:01:55-08:00 | ||
Author: Steve Piercy (stevepiercy) <[email protected]> | ||
Commit: https://github.com/plone/plone.api/commit/1a02f35c0f26fa43f88414ca5a75d3468a9c9297 | ||
|
||
Fiddle with commands to RTD | ||
|
||
Files changed: | ||
M .readthedocs.yaml | ||
|
||
b'diff --git a/.readthedocs.yaml b/.readthedocs.yaml\nindex f32a2278..c9cbccd4 100644\n--- a/.readthedocs.yaml\n+++ b/.readthedocs.yaml\n@@ -22,4 +22,6 @@ build:\n then\n exit 183;\n fi\n+ - pip install -r requirements.txt\n+ - pip install -r requirements-docs.txt\n - tox -e plone6docs\n' | ||
|
||
Repository: plone.api | ||
|
||
|
||
Branch: refs/heads/main | ||
Date: 2024-12-17T03:03:57-08:00 | ||
Author: Steve Piercy (stevepiercy) <[email protected]> | ||
Commit: https://github.com/plone/plone.api/commit/c1e063bd5379d4d8eba71eb79b610a836e5c1f6e | ||
|
||
Drop to Python 3.11 because plone.api does not yet officially support 3.12 | ||
|
||
Files changed: | ||
M .readthedocs.yaml | ||
|
||
b'diff --git a/.readthedocs.yaml b/.readthedocs.yaml\nindex c9cbccd4..f985ae36 100644\n--- a/.readthedocs.yaml\n+++ b/.readthedocs.yaml\n@@ -9,7 +9,7 @@ version: 2\n build:\n os: ubuntu-22.04\n tools:\n- python: "3.12"\n+ python: "3.11"\n commands:\n # Cancel building pull requests when there aren\'t changes in the docs directory or YAML file.\n # You can add any other files or directories that you\'d like here as well,\n' | ||
|
||
Repository: plone.api | ||
|
||
|
||
Branch: refs/heads/main | ||
Date: 2024-12-17T03:18:02-08:00 | ||
Author: Steve Piercy (stevepiercy) <[email protected]> | ||
Commit: https://github.com/plone/plone.api/commit/975c810969e92a3478144c7521632e7f3c838f33 | ||
|
||
Specify where to put built files on RTD | ||
|
||
Files changed: | ||
M .readthedocs.yaml | ||
M tox.ini | ||
|
||
b'diff --git a/.readthedocs.yaml b/.readthedocs.yaml\nindex f985ae36..38273c59 100644\n--- a/.readthedocs.yaml\n+++ b/.readthedocs.yaml\n@@ -23,5 +23,5 @@ build:\n exit 183;\n fi\n - pip install -r requirements.txt\n- - pip install -r requirements-docs.txt\n- - tox -e plone6docs\n+# - pip install -r requirements-docs.txt\n+ - tox -e rtd-preview\ndiff --git a/tox.ini b/tox.ini\nindex cc85d042..07c89024 100644\n--- a/tox.ini\n+++ b/tox.ini\n@@ -271,6 +271,23 @@ commands =\n mkdir -p {toxinidir}/_build/plone6docs\n sphinx-build -b html -d _build/plone6docs/doctrees docs _build/plone6docs/html\n \n+[testenv:rtd-preview]\n+# New docs with sphinx-book-theme\n+# See [testenv:docs] for classic documentation\n+basepython = python3.11\n+skip_install = False\n+package = editable\n+allowlist_externals =\n+ mkdir\n+extras =\n+ tests\n+deps =\n+ -r requirements-docs.txt\n+commands =\n+ python -VV\n+ mkdir -p {toxinidir}/${READTHEDOCS_OUTPUT}\n+ sphinx-build -b html -d ${READTHEDOCS_OUTPUT}/doctrees/ docs ${READTHEDOCS_OUTPUT}/html/\n+\n [testenv:docs]\n basepython = python3.9\n skip_install = False\n' | ||
|
||
Repository: plone.api | ||
|
||
|
||
Branch: refs/heads/main | ||
Date: 2024-12-17T03:21:35-08:00 | ||
Author: Steve Piercy (stevepiercy) <[email protected]> | ||
Commit: https://github.com/plone/plone.api/commit/dce02cf0f697d71f2edad6b179bd209bb384eaaa | ||
|
||
Fiddle with tox syntax | ||
|
||
Files changed: | ||
M tox.ini | ||
|
||
b'diff --git a/tox.ini b/tox.ini\nindex 07c89024..3953cc06 100644\n--- a/tox.ini\n+++ b/tox.ini\n@@ -285,8 +285,8 @@ deps =\n -r requirements-docs.txt\n commands =\n python -VV\n- mkdir -p {toxinidir}/${READTHEDOCS_OUTPUT}\n- sphinx-build -b html -d ${READTHEDOCS_OUTPUT}/doctrees/ docs ${READTHEDOCS_OUTPUT}/html/\n+ mkdir -p {toxinidir}/$READTHEDOCS_OUTPUT\n+ sphinx-build -b html -d $READTHEDOCS_OUTPUT/doctrees/ docs $READTHEDOCS_OUTPUT/html/\n \n [testenv:docs]\n basepython = python3.9\n' | ||
|
||
Repository: plone.api | ||
|
||
|
||
Branch: refs/heads/main | ||
Date: 2024-12-17T03:32:11-08:00 | ||
Author: Steve Piercy (stevepiercy) <[email protected]> | ||
Commit: https://github.com/plone/plone.api/commit/6d88ea717a5a071c5ced7353dd75bf50be3e705b | ||
|
||
Fiddle with tox syntax attempt 2 | ||
|
||
Files changed: | ||
M tox.ini | ||
|
||
b'diff --git a/tox.ini b/tox.ini\nindex 3953cc06..b8c64bd9 100644\n--- a/tox.ini\n+++ b/tox.ini\n@@ -285,8 +285,7 @@ deps =\n -r requirements-docs.txt\n commands =\n python -VV\n- mkdir -p {toxinidir}/$READTHEDOCS_OUTPUT\n- sphinx-build -b html -d $READTHEDOCS_OUTPUT/doctrees/ docs $READTHEDOCS_OUTPUT/html/\n+ sphinx-build -b html -d "{env:READTHEDOCS_OUTPUT}"/doctrees/ docs "{env:READTHEDOCS_OUTPUT}"/html/"\n \n [testenv:docs]\n basepython = python3.9\n' | ||
|
||
Repository: plone.api | ||
|
||
|
||
Branch: refs/heads/main | ||
Date: 2024-12-17T03:35:13-08:00 | ||
Author: Steve Piercy (stevepiercy) <[email protected]> | ||
Commit: https://github.com/plone/plone.api/commit/949a16a7180dadca7fb641ba375526e162b184e6 | ||
|
||
Fiddle with tox syntax attempt 3 | ||
|
||
Files changed: | ||
M tox.ini | ||
|
||
b'diff --git a/tox.ini b/tox.ini\nindex b8c64bd9..eb6b27ae 100644\n--- a/tox.ini\n+++ b/tox.ini\n@@ -285,7 +285,7 @@ deps =\n -r requirements-docs.txt\n commands =\n python -VV\n- sphinx-build -b html -d "{env:READTHEDOCS_OUTPUT}"/doctrees/ docs "{env:READTHEDOCS_OUTPUT}"/html/"\n+ sphinx-build -b html -d "{env:READTHEDOCS_OUTPUT}"/doctrees/ docs "{env:READTHEDOCS_OUTPUT}"/html/\n \n [testenv:docs]\n basepython = python3.9\n' | ||
|
||
Repository: plone.api | ||
|
||
|
||
Branch: refs/heads/main | ||
Date: 2024-12-17T16:39:34-08:00 | ||
Author: David Glick (davisagli) <[email protected]> | ||
Commit: https://github.com/plone/plone.api/commit/b5e510fe5124c3a99bb1f952a7e9d3413c5bd085 | ||
|
||
news and manifest | ||
|
||
Files changed: | ||
A news/545.documentation | ||
M MANIFEST.in | ||
|
||
b'diff --git a/MANIFEST.in b/MANIFEST.in\nindex 162a5ec9..c89b5bdb 100644\n--- a/MANIFEST.in\n+++ b/MANIFEST.in\n@@ -14,6 +14,7 @@ include pyproject.toml\n recursive-exclude news *\n exclude news\n recursive-exclude .vscode *\n+exclude .readthedocs.yaml\n \n # added by check-manifest\n recursive-include src *.py\ndiff --git a/news/545.documentation b/news/545.documentation\nnew file mode 100644\nindex 00000000..ac078ab0\n--- /dev/null\n+++ b/news/545.documentation\n@@ -0,0 +1 @@\n+Preview docs on Read the Docs instead of Netlify. @stevepiercy\n' | ||
|
||
Repository: plone.api | ||
|
||
|
||
Branch: refs/heads/main | ||
Date: 2024-12-17T16:47:20-08:00 | ||
Author: David Glick (davisagli) <[email protected]> | ||
Commit: https://github.com/plone/plone.api/commit/d8c716bb820e2308d296431df013bf990058e3ac | ||
|
||
Merge pull request #545 from plone/rtd-preview | ||
|
||
Use Read the Docs for pull request previews | ||
|
||
Files changed: | ||
A news/4066.bugfix | ||
M Products/CMFPlone/exportimport/tests/testControlPanel.py | ||
M Products/CMFPlone/exportimport/tests/testPropertiesTool.py | ||
M Products/CMFPlone/tests/testNavigationView.py | ||
M Products/CMFPlone/tests/testWebDAV.py | ||
A .github/workflows/rtd-pr-preview.yml | ||
A .readthedocs.yaml | ||
A news/545.documentation | ||
M MANIFEST.in | ||
M tox.ini | ||
|
||
b'diff --git a/Products/CMFPlone/exportimport/tests/testControlPanel.py b/Products/CMFPlone/exportimport/tests/testControlPanel.py\nindex a3582be816..d78b65ac41 100644\n--- a/Products/CMFPlone/exportimport/tests/testControlPanel.py\n+++ b/Products/CMFPlone/exportimport/tests/testControlPanel.py\n@@ -51,9 +51,8 @@ def setUp(self):\n \n \n def test_suite():\n- from unittest import makeSuite\n- from unittest import TestSuite\n+ import unittest\n \n- suite = TestSuite()\n- suite.addTest(makeSuite(ControlPanelXMLAdapterTests))\n- return suite\n+ return unittest.TestSuite((\n+ unittest.defaultTestLoader.loadTestsFromTestCase(ControlPanelXMLAdapterTests),\n+ ))\ndiff --git a/Products/CMFPlone/exportimport/tests/testPropertiesTool.py b/Products/CMFPlone/exportimport/tests/testPropertiesTool.py\nindex 48e13f8075..2b4b5930a8 100644\n--- a/Products/CMFPlone/exportimport/tests/testPropertiesTool.py\n+++ b/Products/CMFPlone/exportimport/tests/testPropertiesTool.py\n@@ -86,10 +86,9 @@ def setUp(self):\n \n \n def test_suite():\n- from unittest import makeSuite\n- from unittest import TestSuite\n+ import unittest\n \n- suite = TestSuite()\n- suite.addTest(makeSuite(PropertySheetXMLAdapterTests))\n- suite.addTest(makeSuite(PropertiesToolXMLAdapterTests))\n- return suite\n+ return unittest.TestSuite((\n+ unittest.defaultTestLoader.loadTestsFromTestCase(PropertySheetXMLAdapterTests),\n+ unittest.defaultTestLoader.loadTestsFromTestCase(PropertiesToolXMLAdapterTests),\n+ ))\ndiff --git a/Products/CMFPlone/tests/testNavigationView.py b/Products/CMFPlone/tests/testNavigationView.py\nindex fa8d525a6b..2d9b7d8e63 100644\n--- a/Products/CMFPlone/tests/testNavigationView.py\n+++ b/Products/CMFPlone/tests/testNavigationView.py\n@@ -462,12 +462,11 @@ def testBreadcrumbsFilterByInterface2(self):\n \n \n def test_suite():\n- from unittest import makeSuite\n- from unittest import TestSuite\n-\n- suite = TestSuite()\n- suite.addTest(makeSuite(TestCatalogPortalTabs))\n- suite.addTest(makeSuite(TestSiteMap))\n- suite.addTest(makeSuite(TestCatalogBreadCrumbs))\n- suite.addTest(makeSuite(TestPhysicalBreadCrumbs))\n- return suite\n+ import unittest\n+\n+ return unittest.TestSuite((\n+ unittest.defaultTestLoader.loadTestsFromTestCase(TestCatalogPortalTabs),\n+ unittest.defaultTestLoader.loadTestsFromTestCase(TestSiteMap),\n+ unittest.defaultTestLoader.loadTestsFromTestCase(TestCatalogBreadCrumbs),\n+ unittest.defaultTestLoader.loadTestsFromTestCase(TestPhysicalBreadCrumbs),\n+ ))\ndiff --git a/Products/CMFPlone/tests/testWebDAV.py b/Products/CMFPlone/tests/testWebDAV.py\nindex 2105ae4390..4cceb6e48c 100644\n--- a/Products/CMFPlone/tests/testWebDAV.py\n+++ b/Products/CMFPlone/tests/testWebDAV.py\n@@ -486,13 +486,15 @@ def test_propfind_folder_index_html_not_exists(self):\n \n \n def test_suite():\n- from unittest import makeSuite\n- from unittest import TestSuite\n+ import unittest\n \n- suite = TestSuite()\n if bbb.HAS_ZSERVER:\n- suite.addTest(makeSuite(TestDAVProperties))\n- suite.addTest(makeSuite(TestPUTObjects))\n- suite.addTest(makeSuite(TestPUTIndexHtml))\n- suite.addTest(makeSuite(TestDAVOperations))\n- return suite\n+ return unittest.TestSuite((\n+ unittest.defaultTestLoader.loadTestsFromTestCase(TestDAVProperties),\n+ unittest.defaultTestLoader.loadTestsFromTestCase(TestPUTObjects),\n+ unittest.defaultTestLoader.loadTestsFromTestCase(TestPUTIndexHtml),\n+ unittest.defaultTestLoader.loadTestsFromTestCase(TestDAVOperations),\n+ ))\n+\n+ # return empty suite\n+ return unittest.TestSuite()\ndiff --git a/news/4066.bugfix b/news/4066.bugfix\nnew file mode 100644\nindex 0000000000..c584f2342d\n--- /dev/null\n+++ b/news/4066.bugfix\n@@ -0,0 +1,2 @@\n+Fix removed `unittest.makeSuite` in Python 3.13.\n+[petschki, maurits]\n' | ||
b'diff --git a/.github/workflows/rtd-pr-preview.yml b/.github/workflows/rtd-pr-preview.yml\nnew file mode 100644\nindex 00000000..b1be1f5f\n--- /dev/null\n+++ b/.github/workflows/rtd-pr-preview.yml\n@@ -0,0 +1,22 @@\n+# .github/workflows/rtd-pr-preview.yml\n+name: readthedocs/actions\n+on:\n+ pull_request_target:\n+ types:\n+ - opened\n+ # Execute this action only on PRs that touch\n+ # documentation files.\n+ # paths:\n+ # - "docs/**"\n+\n+permissions:\n+ pull-requests: write\n+\n+jobs:\n+ documentation-links:\n+ runs-on: ubuntu-latest\n+ steps:\n+ - uses: readthedocs/actions/preview@v1\n+ with:\n+ project-slug: "ploneapi"\n+ single-version: "true"\ndiff --git a/.readthedocs.yaml b/.readthedocs.yaml\nnew file mode 100644\nindex 00000000..38273c59\n--- /dev/null\n+++ b/.readthedocs.yaml\n@@ -0,0 +1,27 @@\n+# .readthedocs.yaml\n+# Read the Docs configuration file\n+# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details\n+\n+# Required\n+version: 2\n+\n+# Set the OS, Python version and other tools you might need\n+build:\n+ os: ubuntu-22.04\n+ tools:\n+ python: "3.11"\n+ commands:\n+ # Cancel building pull requests when there aren\'t changes in the docs directory or YAML file.\n+ # You can add any other files or directories that you\'d like here as well,\n+ # like your docs requirements file, or other files that will change your docs build.\n+ #\n+ # If there are no changes (git diff exits with 0) we force the command to return with 183.\n+ # This is a special exit code on Read the Docs that will cancel the build immediately.\n+ - |\n+ if [ "$READTHEDOCS_VERSION_TYPE" = "external" ] && git diff --quiet origin/main -- docs/ .readthedocs.yaml requirements-docs.txt requirements.txt;\n+ then\n+ exit 183;\n+ fi\n+ - pip install -r requirements.txt\n+# - pip install -r requirements-docs.txt\n+ - tox -e rtd-preview\ndiff --git a/MANIFEST.in b/MANIFEST.in\nindex 162a5ec9..c89b5bdb 100644\n--- a/MANIFEST.in\n+++ b/MANIFEST.in\n@@ -14,6 +14,7 @@ include pyproject.toml\n recursive-exclude news *\n exclude news\n recursive-exclude .vscode *\n+exclude .readthedocs.yaml\n \n # added by check-manifest\n recursive-include src *.py\ndiff --git a/news/545.documentation b/news/545.documentation\nnew file mode 100644\nindex 00000000..ac078ab0\n--- /dev/null\n+++ b/news/545.documentation\n@@ -0,0 +1 @@\n+Preview docs on Read the Docs instead of Netlify. @stevepiercy\ndiff --git a/tox.ini b/tox.ini\nindex cc85d042..eb6b27ae 100644\n--- a/tox.ini\n+++ b/tox.ini\n@@ -271,6 +271,22 @@ commands =\n mkdir -p {toxinidir}/_build/plone6docs\n sphinx-build -b html -d _build/plone6docs/doctrees docs _build/plone6docs/html\n \n+[testenv:rtd-preview]\n+# New docs with sphinx-book-theme\n+# See [testenv:docs] for classic documentation\n+basepython = python3.11\n+skip_install = False\n+package = editable\n+allowlist_externals =\n+ mkdir\n+extras =\n+ tests\n+deps =\n+ -r requirements-docs.txt\n+commands =\n+ python -VV\n+ sphinx-build -b html -d "{env:READTHEDOCS_OUTPUT}"/doctrees/ docs "{env:READTHEDOCS_OUTPUT}"/html/\n+\n [testenv:docs]\n basepython = python3.9\n skip_install = False\n' | ||
|