From b3ed53be67f741842a3a10708e7a998e016fb269 Mon Sep 17 00:00:00 2001 From: CalMacCQ <93673602+CalMacCQ@users.noreply.github.com> Date: Tue, 1 Oct 2024 14:22:21 +0100 Subject: [PATCH 01/10] delete legacy docs dir --- .../workflows/docs/Quantinuum_logo_black.png | Bin 18245 -> 0 bytes .../workflows/docs/Quantinuum_logo_white.png | Bin 16704 -> 0 bytes .github/workflows/docs/build-docs | 112 -------------- .github/workflows/docs/check-build-docs | 10 -- .github/workflows/docs/conf.py | 144 ------------------ .github/workflows/docs/intro.txt | 10 -- .github/workflows/docs/requirements.txt | 3 - .../workflows/docs/templates/searchbox.html | 0 8 files changed, 279 deletions(-) delete mode 100644 .github/workflows/docs/Quantinuum_logo_black.png delete mode 100644 .github/workflows/docs/Quantinuum_logo_white.png delete mode 100755 .github/workflows/docs/build-docs delete mode 100755 .github/workflows/docs/check-build-docs delete mode 100644 .github/workflows/docs/conf.py delete mode 100644 .github/workflows/docs/intro.txt delete mode 100644 .github/workflows/docs/requirements.txt delete mode 100644 .github/workflows/docs/templates/searchbox.html diff --git a/.github/workflows/docs/Quantinuum_logo_black.png b/.github/workflows/docs/Quantinuum_logo_black.png deleted file mode 100644 index 5569581b8e420f14eee561cbf1bf78ca0c96882f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18245 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 diff --git a/.github/workflows/docs/build-docs b/.github/workflows/docs/build-docs deleted file mode 100755 index d89f116..0000000 --- a/.github/workflows/docs/build-docs +++ /dev/null @@ -1,112 +0,0 @@ -#!/usr/bin/env python - -import argparse -import datetime -from importlib import import_module -from pathlib import Path -import shutil -import subprocess -import sys - -DOCS_DIR = Path(sys.argv[0]).absolute().parent -MODULES_DIR = DOCS_DIR.parent.parent.parent -TKET_EXAMPLES_LINK = "https://tket.quantinuum.com/examples/" -TKET_MANUAL_LINK = "https://tket.quantinuum.com/user-manual/" -TKET_WEBSITE_LINK = "https://tket.quantinuum.com/" -PYTKET_DOCS_LINK = "https://tket.quantinuum.com/api-docs/" -PYTKET_EX_DOCS_LINK = "https://tket.quantinuum.com/api-docs/extensions.html" -PYTKET_PYQUIL_PYPI_LINK = "https://pypi.org/project/pytket-pyquil/" -PYTKET_PYQUIL_GITHUB = "https://github.com/CQCL/pytket-pyquil" -MODULE = "pyquil" - -def get_module_version(): - m = import_module(f"pytket.extensions.{MODULE}") - return m._metadata.__extension_version__.split(".") - - -def remove_dir(dirpath): - if dirpath.exists() and dirpath.is_dir(): - shutil.rmtree(dirpath) - - -def fix_links(filepath): - with open(filepath, "r", encoding="utf8") as f: - content = f.read() - content = content.replace("pytket._tket", "pytket") - with open(filepath, "w", encoding="utf8") as f: - f.write(content) - - -def build_module_docs(): - v = get_module_version() - mod_docs = MODULES_DIR / "docs" - mod_build = mod_docs / "build" - conf_copy = mod_docs / "conf.py" - logo_copy_black = mod_docs / "Quantinuum_logo_black.png" - logo_copy_white = mod_docs / "Quantinuum_logo_white.png" - shutil.copy(DOCS_DIR / "conf.py", conf_copy) - shutil.copy(DOCS_DIR / "Quantinuum_logo_black.png", logo_copy_black) - shutil.copy(DOCS_DIR / "Quantinuum_logo_white.png", logo_copy_white) - remove_dir(mod_build) - index_rst = mod_docs / "index.rst" - with open(mod_docs / "intro.txt", "r") as f: - content = f.readlines() - content.append( - "\n.. toctree::\n\t:caption: pytket documentation:\n\t:maxdepth: 1\n\n" - ) - content.append(f"\tpytket API docs <{PYTKET_DOCS_LINK}>\n") - content.append(f"\tpytket extensions <{PYTKET_EX_DOCS_LINK}>\n") - content.append(f"\tManual <{TKET_MANUAL_LINK}>\n") - content.append(f"\tExample notebooks <{TKET_EXAMPLES_LINK}>\n") - content.append(f"\tTKET website <{TKET_WEBSITE_LINK}>\n") - content.append( - "\n.. toctree::\n\t:caption: Links:\n\t:maxdepth: 1\n\n" - ) - content.append(f"\tbug tracker <{PYTKET_PYQUIL_GITHUB}/issues>\n") - content.append(f"\tGitHub <{PYTKET_PYQUIL_GITHUB}>\n") - content.append(f"\tPyPi <{PYTKET_PYQUIL_PYPI_LINK}>\n") - - with open(index_rst, "w") as f: - f.writelines(content) - subprocess.run( - [ - "sphinx-build", - "-b", - "html", - "-D", - f"project=pytket-{MODULE}", - "-D", - f"version={'.'.join(v[:2])}", - "-D", - f"release={'.'.join(v)}", - ".", - "build", - ], - cwd=mod_docs, - ) - for htmlfile in mod_build.rglob("*.html"): - fix_links(htmlfile) - fix_links(mod_build / "searchindex.js") - conf_copy.unlink() - logo_copy_black.unlink() - logo_copy_white.unlink() - index_rst.unlink() - - -if __name__ == "__main__": - parser = argparse.ArgumentParser( - description="Build HTML documentation for pytket-pyquil." - ) - parser.add_argument("-d", "--dest", help="copy artifacts into destination folder") - args = parser.parse_args() - - print("Building docs for modules:", MODULE) - build_module_docs() - - if args.dest is not None: - dest = Path(args.dest) - shutil.copytree( - MODULES_DIR / "docs" / "build", - dest, - dirs_exist_ok=True, - ) diff --git a/.github/workflows/docs/check-build-docs b/.github/workflows/docs/check-build-docs deleted file mode 100755 index 6812eb7..0000000 --- a/.github/workflows/docs/check-build-docs +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash - -./.github/workflows/docs/build-docs 1>out.txt 2>err.txt -cat out.txt err.txt -ERRS=`cat err.txt` -if [ ! -z $ERRS ] -then - echo "Docs build failed." - exit 1 -fi diff --git a/.github/workflows/docs/conf.py b/.github/workflows/docs/conf.py deleted file mode 100644 index 979a83c..0000000 --- a/.github/workflows/docs/conf.py +++ /dev/null @@ -1,144 +0,0 @@ -# -*- coding: utf-8 -*- - -# Configuration file for the Sphinx documentation builder. -# See https://www.sphinx-doc.org/en/master/usage/configuration.html - -author = "Quantinuum" - -extensions = [ - "sphinx.ext.autodoc", - "sphinx.ext.autosummary", - "sphinx.ext.intersphinx", - "sphinx.ext.mathjax", - "sphinx_copybutton", -] - -pygments_style = "borland" - -html_theme = "sphinx_book_theme" - -html_theme_options = { - "repository_url": "https://github.com/CQCL/pytket-pyquil", - "use_repository_button": True, - "use_issues_button": True, - "logo": { - "image_light": "Quantinuum_logo_black.png", - "image_dark": "Quantinuum_logo_white.png", - }, -} - -html_static_path = ["_static"] - -html_css_files = ["custom.css"] - -# -- Extension configuration ------------------------------------------------- - -pytketdoc_base = "https://tket.quantinuum.com/api-docs/" - -intersphinx_mapping = { - "https://docs.python.org/3/": None, - pytketdoc_base: None, - "https://qiskit.org/documentation/": None, - "http://docs.qulacs.org/en/latest/": None, -} - -autodoc_member_order = "groupwise" - -# The following code is for resolving broken hyperlinks in the doc. - -import re -from typing import Any, Dict, List, Optional -from urllib.parse import urljoin - -from docutils import nodes -from docutils.nodes import Element, TextElement -from sphinx.application import Sphinx -from sphinx.environment import BuildEnvironment - -# Mappings for broken hyperlinks that intersphinx cannot resolve -external_url_mapping = { - "BasePass": urljoin(pytketdoc_base, "passes.html#pytket.passes.BasePass"), - "Predicate": urljoin(pytketdoc_base, "predicates.html#pytket.predicates.Predicate"), - "ResultHandle": urljoin( - pytketdoc_base, - "backends.html#pytket.backends.resulthandle.ResultHandle", - ), - "BackendResult": urljoin( - pytketdoc_base, - "backends.html#pytket.backends.backendresult.BackendResult", - ), - "Circuit": urljoin(pytketdoc_base, "circuit_class.html#pytket.circuit.Circuit"), - "BasisOrder": urljoin(pytketdoc_base, "circuit.html#pytket.circuit.BasisOrder"), - "QubitPauliOperator": urljoin( - pytketdoc_base, "utils.html#pytket.utils.QubitPauliOperator" - ), - "QubitPauliString": urljoin( - pytketdoc_base, "pauli.html#pytket.pauli.QubitPauliString" - ), -} - -# Correct mappings for intersphinx to resolve -custom_internal_mapping = { - "pytket.utils.outcomearray.OutcomeArray": "pytket.utils.OutcomeArray", - "pytket.utils.operators.QubitPauliOperator": "pytket.utils.QubitPauliOperator", - "pytket.backends.backend.Backend": "pytket.backends.Backend", - "qiskit.dagcircuit.dagcircuit.DAGCircuit": "qiskit.dagcircuit.DAGCircuit", - "qiskit.providers.basebackend.BaseBackend": "qiskit.providers.BaseBackend", - "qiskit.qobj.qasm_qobj.QasmQobj": "qiskit.qobj.QasmQobj", - "qiskit.result.result.Result": "qiskit.result.Result", -} - - -def add_reference( - app: Sphinx, env: BuildEnvironment, node: Element, contnode: TextElement -) -> Optional[nodes.reference]: - # Fix references in docstrings that are inherited from the base pytket.backends.Backend class. - mapping = app.config.external_url_mapping - if node.astext() in mapping: - newnode = nodes.reference( - "", - "", - internal=False, - refuri=mapping[node.astext()], - reftitle=node.get("reftitle", node.astext()), - ) - newnode.append(contnode) - return newnode - return None - - -def correct_signature( - app: Sphinx, - what: str, - name: str, - obj: Any, - options: Dict, - signature: str, - return_annotation: str, -) -> (str, str): - new_signature = signature - new_return_annotation = return_annotation - for k, v in app.config.custom_internal_mapping.items(): - if signature is not None: - new_signature = new_signature.replace(k, v) - if return_annotation is not None: - new_return_annotation = new_return_annotation.replace(k, v) - # e.g. Replace by CXConfigType.Snake to avoid silent failure in later stages. - if new_signature is not None: - enums_signature = re.findall(r"<.+?\: \d+>", new_signature) - for e in enums_signature: - new_signature = new_signature.replace(e, e[1 : e.find(":")]) - - if new_return_annotation is not None: - enums_return = re.findall(r"<.+?\: \d+>", new_return_annotation) - for e in enums_return: - new_return_annotation = new_return_annotation.replace(e, e[1 : e.find(":")]) - - return new_signature, new_return_annotation - - -def setup(app): - app.add_config_value("custom_internal_mapping", {}, "env") - app.add_config_value("external_url_mapping", {}, "env") - app.connect("missing-reference", add_reference) - app.connect("autodoc-process-signature", correct_signature) diff --git a/.github/workflows/docs/intro.txt b/.github/workflows/docs/intro.txt deleted file mode 100644 index ce587b0..0000000 --- a/.github/workflows/docs/intro.txt +++ /dev/null @@ -1,10 +0,0 @@ -pytket-extensions -================= - -These extensions enable ``pytket` to be used in conjunction with other -platforms. Each extension adds either new methods to the ``pytket`` package to -convert between circuit representations, or new backends to which ``pytket`` -circuits can be submitted. - -.. _pytket: https://tket.quantinuum.com/api-docs/ -.. _Quantinuum: https://www.quantinuum.com/ diff --git a/.github/workflows/docs/requirements.txt b/.github/workflows/docs/requirements.txt deleted file mode 100644 index e893f3c..0000000 --- a/.github/workflows/docs/requirements.txt +++ /dev/null @@ -1,3 +0,0 @@ -sphinx ~= 6.2 -sphinx_book_theme >= 1.0.1, <2.0 -sphinx-copybutton diff --git a/.github/workflows/docs/templates/searchbox.html b/.github/workflows/docs/templates/searchbox.html deleted file mode 100644 index e69de29..0000000 From 985aca7796382a137f9704e5a3e6243cefb388c6 Mon Sep 17 00:00:00 2001 From: CalMacCQ <93673602+CalMacCQ@users.noreply.github.com> Date: Tue, 1 Oct 2024 14:54:34 +0100 Subject: [PATCH 02/10] -m --- .gitmodules | 4 ++++ docs/pytket-docs-theming | 1 + 2 files changed, 5 insertions(+) create mode 100644 .gitmodules create mode 160000 docs/pytket-docs-theming diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..fdc8b03 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,4 @@ +[submodule "docs/pytket-docs-theming"] + path = docs/pytket-docs-theming + url = https://github.com/CQCL/pytket-docs-theming.git + branch = main diff --git a/docs/pytket-docs-theming b/docs/pytket-docs-theming new file mode 160000 index 0000000..cfbe34c --- /dev/null +++ b/docs/pytket-docs-theming @@ -0,0 +1 @@ +Subproject commit cfbe34c48f88c56085b8ef65f640d0108b8a9fa6 From 3c35b8dc113cdf8397ec7f5281380827053f3ed7 Mon Sep 17 00:00:00 2001 From: CalMacCQ <93673602+CalMacCQ@users.noreply.github.com> Date: Tue, 1 Oct 2024 15:01:50 +0100 Subject: [PATCH 03/10] -m --- docs/{intro.txt => index.rst} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename docs/{intro.txt => index.rst} (100%) diff --git a/docs/intro.txt b/docs/index.rst similarity index 100% rename from docs/intro.txt rename to docs/index.rst From a758e2a180032b43f80770cbffdf074aabd8d4fd Mon Sep 17 00:00:00 2001 From: CalMacCQ <93673602+CalMacCQ@users.noreply.github.com> Date: Tue, 1 Oct 2024 15:03:06 +0100 Subject: [PATCH 04/10] -m --- docs/README.md | 5 +++++ docs/build-docs.sh | 21 +++++++++++++++++++++ docs/install.sh | 9 +++++++++ 3 files changed, 35 insertions(+) create mode 100644 docs/README.md create mode 100644 docs/build-docs.sh create mode 100644 docs/install.sh diff --git a/docs/README.md b/docs/README.md new file mode 100644 index 0000000..6e20b65 --- /dev/null +++ b/docs/README.md @@ -0,0 +1,5 @@ +# Building the docs + +The docs are built by using the [pytket-docs-theming](https://github.com/CQCL/pytket-docs-theming/) repository as a git submodule. If there are issues with the docs build, feel free to open an issue or pull request there. + +For instructions on how to build the docs, take a look at the [extensions README](https://github.com/CQCL/pytket-docs-theming/blob/main/extensions/README.md). diff --git a/docs/build-docs.sh b/docs/build-docs.sh new file mode 100644 index 0000000..211c70a --- /dev/null +++ b/docs/build-docs.sh @@ -0,0 +1,21 @@ +#!/bin/bash +rm -rf build/ + +# Move theming elements into the docs folder +cp -R pytket-docs-theming/_static . +cp -R pytket-docs-theming/quantinuum-sphinx . +cp pytket-docs-theming/conf.py . + +# Get the name of the project +EXTENSION_NAME="$(basename "$(dirname `pwd`)")" + +# Correct github link in navbar +sed -i '' 's#CQCL/tket#CQCL/'$EXTENSION_NAME'#' _static/nav-config.js + +# Build the docs. Ensure we have the correct project title. +sphinx-build -b html -D html_title="$EXTENSION_NAME" . build + +# Remove copied files. This ensures reusability. +rm -r _static +rm -r quantinuum-sphinx +rm conf.py \ No newline at end of file diff --git a/docs/install.sh b/docs/install.sh new file mode 100644 index 0000000..3ca1079 --- /dev/null +++ b/docs/install.sh @@ -0,0 +1,9 @@ + +# Copy over poetry dependencies from theming repository +cp pytket-docs-theming/extensions/pyproject.toml . +cp pytket-docs-theming/extensions/poetry.lock . + +# Install the docs dependencies. Creates a .venv directory in docs +poetry install + +# NOTE: Editable wheel should be installed separately. \ No newline at end of file From 869d16f5e012ddb431417a5900e9013904387cc2 Mon Sep 17 00:00:00 2001 From: CalMacCQ <93673602+CalMacCQ@users.noreply.github.com> Date: Tue, 1 Oct 2024 15:16:16 +0100 Subject: [PATCH 05/10] -m --- .gitignore | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.gitignore b/.gitignore index ba75d11..60d4b53 100644 --- a/.gitignore +++ b/.gitignore @@ -11,3 +11,6 @@ obj docs/extensions .ipynb_checkpoints pytket/extensions/pyquil/_metadata.py +.DS_Store +docs/pyproject.toml +docs/poetry.lock From cf6aebdcb8cbf3cd1cb8e49d68a04e109838b822 Mon Sep 17 00:00:00 2001 From: CalMacCQ <93673602+CalMacCQ@users.noreply.github.com> Date: Tue, 1 Oct 2024 15:21:45 +0100 Subject: [PATCH 06/10] -m --- docs/_static/custom.css | 35 ----------------------------------- 1 file changed, 35 deletions(-) delete mode 100644 docs/_static/custom.css diff --git a/docs/_static/custom.css b/docs/_static/custom.css deleted file mode 100644 index 9c8a6ed..0000000 --- a/docs/_static/custom.css +++ /dev/null @@ -1,35 +0,0 @@ -.wy-side-nav-search, -.wy-nav-top { - background: #5A46BE; -} - -.wy-grid-for-nav, -.wy-body-for-nav, -.wy-nav-side, -.wy-side-scroll, -.wy-menu, -.wy-menu-vertical { - background-color: #FFFFFF; -} - -.wy-menu-vertical a:hover { - background-color: #d9d9d9; -} - -.btn-link:visited, -.btn-link, -a:visited, -.a.reference.external, -.a.reference.internal, -.wy-menu-vertical a, -.wy-menu-vertical li, -.wy-menu-vertical ul, -.span.pre, -.sig-param, -html[data-theme=light] { - --pst-color-inline-code: rgb(199, 37, 78) !important; -} - -.sig-name { - font-size: 1.25rem; -} \ No newline at end of file From 3bacef21faa48d979b418333e240a019aad2452b Mon Sep 17 00:00:00 2001 From: CalMacCQ <93673602+CalMacCQ@users.noreply.github.com> Date: Tue, 1 Oct 2024 15:53:29 +0100 Subject: [PATCH 07/10] -m --- docs/index.rst | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/docs/index.rst b/docs/index.rst index 31e54f0..f9641c2 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -18,3 +18,9 @@ Windows. To install, run: .. toctree:: api.rst changelog.rst + +.. toctree:: + :caption: Useful links + + Issue tracker + PyPi From 90dd8a5fa910b652ef26b83254c05ff34e04323c Mon Sep 17 00:00:00 2001 From: CalMacCQ <93673602+CalMacCQ@users.noreply.github.com> Date: Tue, 1 Oct 2024 16:14:12 +0100 Subject: [PATCH 08/10] update docs.yml workflow file --- .github/workflows/docs.yml | 32 ++++++++++++++------------------ 1 file changed, 14 insertions(+), 18 deletions(-) diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index eaa8047..000b543 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -1,4 +1,4 @@ -name: Pytket Pyquil Docs +name: Build docs on: push: @@ -7,31 +7,27 @@ on: schedule: # 04:00 every Tuesday morning - cron: '0 4 * * 2' + jobs: docs: name: build docs runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v4 - - name: Set up Python 3.10 + with: + submodules: true + - name: Set up Python 3.11 uses: actions/setup-python@v5 with: - python-version: '3.10' - - name: Upgrade pip and install wheel - run: pip install --upgrade pip wheel - - name: Install pytket pyquil - run: | - pip install . + python-version: '3.11' + - name: install poetry + run: pip install poetry - name: Install docs dependencies - run: | - pip install -r .github/workflows/docs/requirements.txt + run: cd docs && bash install.sh + - name: Install pytket qiskit + run: cd docs && poetry run pip install ../. - name: Test building docs - timeout-minutes: 20 + timeout-minutes: 10 run: | - cd .github/workflows/docs - mkdir extensions - ./build-docs -d ${GITHUB_WORKSPACE}/.github/workflows/docs/extensions - - uses: actions/upload-artifact@v4 - with: - name: pytket-extension-docs - path: .github/workflows/docs/extensions/ + cd docs + poetry run bash build-docs.sh \ No newline at end of file From 8d5abeea7ed8060e8e54794a4e1cb48dac7cf1dd Mon Sep 17 00:00:00 2001 From: CalMacCQ <93673602+CalMacCQ@users.noreply.github.com> Date: Tue, 1 Oct 2024 16:27:05 +0100 Subject: [PATCH 09/10] update docs.yml workflow file --- .github/workflows/docs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 000b543..c5c10af 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -24,7 +24,7 @@ jobs: run: pip install poetry - name: Install docs dependencies run: cd docs && bash install.sh - - name: Install pytket qiskit + - name: Install pytket pyquil run: cd docs && poetry run pip install ../. - name: Test building docs timeout-minutes: 10 From 83d775c6455a5ec520e4ed6bbd6c81ca679fbd9f Mon Sep 17 00:00:00 2001 From: CalMacCQ <93673602+CalMacCQ@users.noreply.github.com> Date: Wed, 2 Oct 2024 11:45:36 +0100 Subject: [PATCH 10/10] update build and test [pyquil] --- .github/workflows/build_and_test.yml | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/.github/workflows/build_and_test.yml b/.github/workflows/build_and_test.yml index 2e20604..9bfdb1b 100644 --- a/.github/workflows/build_and_test.yml +++ b/.github/workflows/build_and_test.yml @@ -28,6 +28,7 @@ jobs: - uses: actions/checkout@v4 with: fetch-depth: '0' + submodules: true - run: git fetch --depth=1 origin +refs/tags/*:refs/tags/* +refs/heads/*:refs/remotes/origin/* - name: Set up Python 3.10 if: github.event_name == 'push' || github.event_name == 'schedule' @@ -73,15 +74,20 @@ jobs: with: name: artefact-${{ matrix.os }} path: wheelhouse/ + - name: install poetry + run: pip install poetry - name: Install docs dependencies if: (matrix.os == 'ubuntu-22.04') && (github.event_name == 'pull_request' || github.event_name == 'schedule' ) run: | - pip install -r .github/workflows/docs/requirements.txt + cd docs + bash ./install.sh + for w in `find wheelhouse/ -type f -name "*.whl"` ; do poetry install $w ; done - name: Build docs if: (matrix.os == 'ubuntu-22.04') && (github.event_name == 'pull_request' || github.event_name == 'schedule' ) timeout-minutes: 20 run: | - ./.github/workflows/docs/check-build-docs + cd docs + poetry run bash ./build-docs.sh publish_to_pypi: @@ -118,6 +124,7 @@ jobs: - uses: actions/checkout@v4 with: fetch-depth: '0' + submodules: true - name: Set up Python 3.11 uses: actions/setup-python@v5 with: @@ -128,14 +135,16 @@ jobs: path: wheelhouse - name: Install pip, wheel run: pip install -U pip wheel + - name: Install poetry + run: pip install poetry - name: Install extension - run: for w in `find wheelhouse/ -type f -name "*.whl"` ; do pip install $w ; done + run: for w in `find wheelhouse/ -type f -name "*.whl"` ; do poetry install $w ; done - name: Install docs dependencies run: | - pip install -r .github/workflows/docs/requirements.txt + cd docs + bash ./install.sh - name: Build docs timeout-minutes: 20 run: | - cd .github/workflows/docs - mkdir extensions - ./build-docs -d ${GITHUB_WORKSPACE}/.github/workflows/docs/extensions/api + cd docs + poetry run bash ./build-docs.sh