From f2d7b4a5a79b415f3c1ebad473d6e35cef529431 Mon Sep 17 00:00:00 2001 From: Dalena Date: Thu, 11 Jul 2024 10:40:36 -0700 Subject: [PATCH 01/25] feat: add docs --- CONTRIBUTING.md | 26 ++++++++ ape_vyper/__init__.py | 6 ++ docs/conf.py | 115 ++++++++++++++++++++++++++++++++++ docs/favicon.ico | Bin 0 -> 20915 bytes docs/index.md | 19 ++++++ docs/logo.gif | Bin 0 -> 11889 bytes docs/methoddocs/compiler.md | 6 ++ docs/methoddocs/exceptions.md | 6 ++ docs/methoddocs/interface.md | 6 ++ docs/userguides/quickstart.md | 2 + 10 files changed, 186 insertions(+) create mode 100644 docs/conf.py create mode 100644 docs/favicon.ico create mode 100644 docs/index.md create mode 100644 docs/logo.gif create mode 100644 docs/methoddocs/compiler.md create mode 100644 docs/methoddocs/exceptions.md create mode 100644 docs/methoddocs/interface.md create mode 100644 docs/userguides/quickstart.md diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 3b654d3f..4c0946a3 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -32,6 +32,32 @@ pre-commit install Committing will now automatically run the local hooks and ensure that your commit passes all lint checks. +## Running the docs locally + +First, make sure you have the docs-related tooling installed: + +```bash +pip install -e .'[doc]' +``` + +Then, run the following from the root project directory: + +```bash +python build_docs.py +``` + +For the best viewing experience, use a local server: + +```bash +python -m http.server --directory "docs/_build/" --bind 127.0.0.1 1337 +``` + +Then, open your browser to `127.0.0.1:1337` and click the `ape` directory link. + +```{note} +Serving from `"docs/_build/"` rather than `"docs/_build/ape"` is necessary to make routing work. +``` + ## Pull Requests Pull requests are welcomed! Please adhere to the following: diff --git a/ape_vyper/__init__.py b/ape_vyper/__init__.py index ebd7db41..f367f06b 100644 --- a/ape_vyper/__init__.py +++ b/ape_vyper/__init__.py @@ -11,3 +11,9 @@ def config_class(): @plugins.register(plugins.CompilerPlugin) def register_compiler(): return tuple(e.value for e in FileType), VyperCompiler + +__all__ = [ + "FileType", + "VyperCompiler", + "VyperConfig", +] \ No newline at end of file diff --git a/docs/conf.py b/docs/conf.py new file mode 100644 index 00000000..7a4b8e14 --- /dev/null +++ b/docs/conf.py @@ -0,0 +1,115 @@ +# +# Configuration file for the Sphinx documentation builder. +# +# This file does only contain a selection of the most common options. For a +# full list see the documentation: +# https://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 re +import sys +from functools import lru_cache +from pathlib import Path + +import requests +from semantic_version import Version # type: ignore + +sys.path.insert(0, os.path.abspath("..")) + +# -- Project information ----------------------------------------------------- + +project = "silverback" +copyright = "2023, ApeWorX LTD" +author = "ApeWorX Team" +extensions = [ + "myst_parser", + "sphinx_click", + "sphinx.ext.autodoc", + "sphinx.ext.autosummary", + "sphinx.ext.napoleon", + "sphinx_rtd_theme", + "sphinx_plausible", + "sphinx.ext.intersphinx", +] +autosummary_generate = True + +# Add any paths that contain templates here, relative to this directory. +templates_path = ["_templates"] + +# List of patterns, relative to source directory, that match files and +# directories to ignore when looking for source files. +# This pattern also affects html_static_path and html_extra_path. +exclude_patterns: list[str] = ["_build", ".DS_Store"] + + +# The suffix(es) of source filenames. +# You can specify multiple suffix as a list of string: +source_suffix = [".rst", ".md"] + +# The master toctree document. +master_doc = "index" + +# Configure Pluasible +plausible_domain = "docs.apeworx.io" + +# -- 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 = "shibuya" +html_favicon = "favicon.ico" +html_logo = "logo.gif" +html_baseurl = "/vyper/" + +# 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 = [] + +# These paths are either relative to html_static_path +# or fully qualified paths (eg. https://...) +html_css_files = [] + +# Currently required for how we handle method docs links in the Myst parser +# since not all links are available in the markdown files pre-build. +myst_all_links_external = True + + +def fixpath(path: str) -> str: + """ + Change paths to reference the resources from 'latest/' to save room. + """ + suffix = path.split("_static")[1] + new = f"/{project}/latest/" + + if suffix: + new = str(Path(new) / suffix.lstrip("/")) + + return new + + +@lru_cache(maxsize=None) +def get_versions() -> list[str]: + """ + Get all the versions from the Web. + """ + api_url = "https://api.github.com/repos/ApeWorx/silverback/git/trees/gh-pages?recursive=1" + response = requests.get(api_url) + response.raise_for_status() + pattern = re.compile(r"v\d+.?\d+.?\d+$") + data = response.json() + tree = data.get("tree", []) + versions = list({x["path"] for x in tree if x["type"] == "tree" and pattern.match(x["path"])}) + sorted_version_objs = sorted([Version(v.lstrip("v")) for v in versions], reverse=True) + return [f"v{x}" for x in sorted_version_objs] + + +html_context = { + "fixpath": fixpath, + "get_versions": get_versions, +} diff --git a/docs/favicon.ico b/docs/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..05f17aa6ab75d43d3a9e87760cd2919fffc8d3d2 GIT binary patch literal 20915 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"Yq4&OE@>8tQjArj%e{Hr*X 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 VW@&8pv;TSu&5f;35c7M{{|5?#y{!NM literal 0 HcmV?d00001 diff --git a/docs/index.md b/docs/index.md new file mode 100644 index 00000000..b810c633 --- /dev/null +++ b/docs/index.md @@ -0,0 +1,19 @@ +# Vyper Docs + +```{eval-rst} +.. toctree:: + :caption: User Guides + :maxdepth: 1 + + userguides/quickstart +``` + +```{eval-rst} +.. toctree:: + :caption: Python Reference + :maxdepth: 1 + + methoddocs/compiler.md + methoddocs/exceptions.md + methoddocs/interface.md +``` \ No newline at end of file diff --git a/docs/logo.gif b/docs/logo.gif new file mode 100644 index 0000000000000000000000000000000000000000..b3a1bcc2d7f73a117c68f028d5fa07cc626fffdc GIT binary patch literal 11889 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 Date: Thu, 11 Jul 2024 11:04:48 -0700 Subject: [PATCH 02/25] feat: add docs workflow --- .github/workflows/docs.yml | 76 +++++++++++++++++++++++++++++++++++ ape_vyper/__init__.py | 3 +- docs/index.md | 2 +- docs/methoddocs/compiler.md | 2 +- docs/methoddocs/exceptions.md | 2 +- docs/methoddocs/interface.md | 2 +- 6 files changed, 82 insertions(+), 5 deletions(-) create mode 100644 .github/workflows/docs.yml diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml new file mode 100644 index 00000000..c76793d3 --- /dev/null +++ b/.github/workflows/docs.yml @@ -0,0 +1,76 @@ +name: Docs + +on: + push: + branches: [main] + release: + types: [released] + pull_request: + types: [opened, synchronize] + +jobs: + docs: + runs-on: ubuntu-latest + + permissions: + contents: write + + steps: + - uses: actions/checkout@v4 + + - name: Setup Python + uses: actions/setup-python@v5 + with: + python-version: "3.10" + + - name: Install Dependencies + run: | + python -m pip install --upgrade pip + pip install .[doc] + + - name: Clone sphinx-build + run: git clone https://github.com/dtdang/sphinx-build.git + + - name: Build HTML artifact + run: | + cd sphinx-build + python build_docs.py ${GITHUB_REPOSITORY} + + - name: Upload HTML artifact + uses: actions/upload-artifact@v4 + with: + name: DocumentationHTML + path: docs/_build/${GITHUB_REPOSITORY} + + - name: Doctesting + run: | + sphinx-build -b doctest docs docs/_build/doctest + if grep -q '0 failed' docs/_build/doctest/output.txt; then + echo "All doctests passed!" + else + echo "Some doctests failed. See the output below." + cat docs/_build/doctest/output.txt + exit 1 + fi + + - name: Commit and publish documentation changes to gh-pages branch + run: | + if [[ "${GITHUB_EVENT_NAME}" =~ "pull_request" ]]; then + echo "skipping 'git commit' step for PR" + else + git clone https://github.com/${GITHUB_REPOSITORY} --branch gh-pages --single-branch gh-pages + cp -r docs/_build//${GITHUB_REPOSITORY}/* gh-pages/ + cd gh-pages + touch .nojekyll + git config --local user.email "action@github.com" + git config --local user.name "GitHub Action" + git add . + git commit -m "Update documentation" -a || true + fi + - name: Push changes + uses: ad-m/github-push-action@master + if: ${{ github.event_name != 'pull_request' }} + with: + branch: gh-pages + directory: gh-pages + github_token: ${{ secrets.GITHUB_TOKEN }} \ No newline at end of file diff --git a/ape_vyper/__init__.py b/ape_vyper/__init__.py index f367f06b..d1037e8b 100644 --- a/ape_vyper/__init__.py +++ b/ape_vyper/__init__.py @@ -12,8 +12,9 @@ def config_class(): def register_compiler(): return tuple(e.value for e in FileType), VyperCompiler + __all__ = [ "FileType", "VyperCompiler", "VyperConfig", -] \ No newline at end of file +] diff --git a/docs/index.md b/docs/index.md index b810c633..594b37fa 100644 --- a/docs/index.md +++ b/docs/index.md @@ -16,4 +16,4 @@ methoddocs/compiler.md methoddocs/exceptions.md methoddocs/interface.md -``` \ No newline at end of file +``` diff --git a/docs/methoddocs/compiler.md b/docs/methoddocs/compiler.md index 4f51891d..aed23796 100644 --- a/docs/methoddocs/compiler.md +++ b/docs/methoddocs/compiler.md @@ -3,4 +3,4 @@ ```{eval-rst} .. automodule:: ape_vyper.compiler :members: -``` \ No newline at end of file +``` diff --git a/docs/methoddocs/exceptions.md b/docs/methoddocs/exceptions.md index e76085c3..5bc2108b 100644 --- a/docs/methoddocs/exceptions.md +++ b/docs/methoddocs/exceptions.md @@ -3,4 +3,4 @@ ```{eval-rst} .. automodule:: ape_vyper.exceptions :members: -``` \ No newline at end of file +``` diff --git a/docs/methoddocs/interface.md b/docs/methoddocs/interface.md index 98ad24c7..49d18540 100644 --- a/docs/methoddocs/interface.md +++ b/docs/methoddocs/interface.md @@ -3,4 +3,4 @@ ```{eval-rst} .. automodule:: ape_vyper.interface :members: -``` \ No newline at end of file +``` From 12ca41cc082b6e39c8202b6a759d370748cc1050 Mon Sep 17 00:00:00 2001 From: Dalena Date: Tue, 16 Jul 2024 10:15:22 -0700 Subject: [PATCH 03/25] test: workflow --- .github/workflows/docs.yml | 13 +---- docs/conf.py | 115 ------------------------------------- docs/favicon.ico | Bin 20915 -> 0 bytes docs/logo.gif | Bin 11889 -> 0 bytes 4 files changed, 1 insertion(+), 127 deletions(-) delete mode 100644 docs/conf.py delete mode 100644 docs/favicon.ico delete mode 100644 docs/logo.gif diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index c76793d3..56ef4122 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -2,7 +2,7 @@ name: Docs on: push: - branches: [main] + branches: [docs/sphinx-plugin] release: types: [released] pull_request: @@ -42,17 +42,6 @@ jobs: name: DocumentationHTML path: docs/_build/${GITHUB_REPOSITORY} - - name: Doctesting - run: | - sphinx-build -b doctest docs docs/_build/doctest - if grep -q '0 failed' docs/_build/doctest/output.txt; then - echo "All doctests passed!" - else - echo "Some doctests failed. See the output below." - cat docs/_build/doctest/output.txt - exit 1 - fi - - name: Commit and publish documentation changes to gh-pages branch run: | if [[ "${GITHUB_EVENT_NAME}" =~ "pull_request" ]]; then diff --git a/docs/conf.py b/docs/conf.py deleted file mode 100644 index 7a4b8e14..00000000 --- a/docs/conf.py +++ /dev/null @@ -1,115 +0,0 @@ -# -# Configuration file for the Sphinx documentation builder. -# -# This file does only contain a selection of the most common options. For a -# full list see the documentation: -# https://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 re -import sys -from functools import lru_cache -from pathlib import Path - -import requests -from semantic_version import Version # type: ignore - -sys.path.insert(0, os.path.abspath("..")) - -# -- Project information ----------------------------------------------------- - -project = "silverback" -copyright = "2023, ApeWorX LTD" -author = "ApeWorX Team" -extensions = [ - "myst_parser", - "sphinx_click", - "sphinx.ext.autodoc", - "sphinx.ext.autosummary", - "sphinx.ext.napoleon", - "sphinx_rtd_theme", - "sphinx_plausible", - "sphinx.ext.intersphinx", -] -autosummary_generate = True - -# Add any paths that contain templates here, relative to this directory. -templates_path = ["_templates"] - -# List of patterns, relative to source directory, that match files and -# directories to ignore when looking for source files. -# This pattern also affects html_static_path and html_extra_path. -exclude_patterns: list[str] = ["_build", ".DS_Store"] - - -# The suffix(es) of source filenames. -# You can specify multiple suffix as a list of string: -source_suffix = [".rst", ".md"] - -# The master toctree document. -master_doc = "index" - -# Configure Pluasible -plausible_domain = "docs.apeworx.io" - -# -- 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 = "shibuya" -html_favicon = "favicon.ico" -html_logo = "logo.gif" -html_baseurl = "/vyper/" - -# 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 = [] - -# These paths are either relative to html_static_path -# or fully qualified paths (eg. https://...) -html_css_files = [] - -# Currently required for how we handle method docs links in the Myst parser -# since not all links are available in the markdown files pre-build. -myst_all_links_external = True - - -def fixpath(path: str) -> str: - """ - Change paths to reference the resources from 'latest/' to save room. - """ - suffix = path.split("_static")[1] - new = f"/{project}/latest/" - - if suffix: - new = str(Path(new) / suffix.lstrip("/")) - - return new - - -@lru_cache(maxsize=None) -def get_versions() -> list[str]: - """ - Get all the versions from the Web. - """ - api_url = "https://api.github.com/repos/ApeWorx/silverback/git/trees/gh-pages?recursive=1" - response = requests.get(api_url) - response.raise_for_status() - pattern = re.compile(r"v\d+.?\d+.?\d+$") - data = response.json() - tree = data.get("tree", []) - versions = list({x["path"] for x in tree if x["type"] == "tree" and pattern.match(x["path"])}) - sorted_version_objs = sorted([Version(v.lstrip("v")) for v in versions], reverse=True) - return [f"v{x}" for x in sorted_version_objs] - - -html_context = { - "fixpath": fixpath, - "get_versions": get_versions, -} diff --git a/docs/favicon.ico b/docs/favicon.ico deleted file mode 100644 index 05f17aa6ab75d43d3a9e87760cd2919fffc8d3d2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20915 zcmd42WmsH6uqZfWa3?@;3keWhgELql1PufW9w4|g3_AD#!2^WgZb1VCcL*9_aA$Cr z!3j1??!E8bw|Do?{@ZiD{<^xRs;j%Jx=wYSGZ7kUiUhdSxBvivK+NItC-gsR84IURmW)acW>%J(mSz@Sk9c4< z+JDQ)e)7Ng(E!=N|Arsw0BeHI5swv)^ILs40058lUqJ(;rc(j{Pq=J8=(+2us)(68 zIdGf(6TmWPHud%gy^-3YU?QQNq>YvzVs5!hf+pwj`fhySqD!@$f((5N?P7x09EQgo1v$F?*Q_4r$Kz?{%)`gc%k%%nwc6OjOlAGrQM}`E#teV39nyuGbJpz0E zzJ$#uI+5$?CtkV!HXebOXa4P@l3C&i#J%5fE5gVBY8l~?IkVqr{{-d3}y7kJU+vvRlI!Uwh5s4!0iT_g6Gbd_mY7uGb4&+A*w0xz*Ci@UTxEOZ{dE5Ot6qQ=g)1I+Xxbia_6J>@pVFP8rPtQnvGtL_e zA*6}FGjLX0snz_wuPRlDYOrf+#a$CTRAqLln`R?xXYFo3To09s)#X~O!@PP)TRbM5y_ehu42 zSV-YE9+mvV*@_hE@MN^ava;M&7>m~#&Qh-lEETH0&qj+{OPj;B+X2B^)GPT>JgdUN ze&)wIH~T9*8r!scQi&Q(uDj9=X~c>fn-Q~E!^qoOe&)(o_Au8=Hxk(XubN(e?Hd=( z!${1E6LlZ~2PSH0vQe`)#5V|u7{@cG%0f;A3 zG-TBn37DYesZl3l$fS*5I_ixK={wic*m?^!eNaiOU!A|xw>akwI z>{V;SU!4=S*52_hBL#B0M~L7nP}i+r2;%Lm;zYr5wAR%KnIVq5BEQYXX$#}^$Lsdy zq71{f^9;p&e?QAAdtO!G`^DPRZ|&`ZE1urSD~qmuN~|!-(B5rFWP68r;PlWDJXnt4 z3@^J1$sQ>&>+Z$7eKM(Ap^qfSMG(xlxz4pApCAcLv(7YFZXZOEG~d7)(~|aZ+72`- zmncpH)B?N!E0}tec>UP6!@&P|=d=5IolL4}9MO)?*D6Xji4nA#+#(zZyI5*Xf?4r8 z06XTIQt4+WuFzu_xJiu$WxT}oo68l=*!=05o0Jv>r2PKO65P_6SOLole>UZr(p1zZ z>AwE)6-ajnlz_Z!cs-sFTj)NWAJ96bua$A&EwXw?+^hR1XuS2VCYHLE%ZLvjdLQ1{N z%Vw;gMH=@hWB2{`0wN?Q&q|yZ4-&@!H;lCcYqvevMXlTJ^c4A3PF)xz=6Zn#ZznxEAJ0!Nvn_-GLX+c|n*9E)e^%HY9Aiy*PFk^N%f$uf9 zY*?*xp6&9KpMqzSD?3YhsN=|be8645UW7V)JdOV{9+US=%Z{6B5A-9sA5YY#g!#Rj zg&)PWwzI3^Dq2?a_eB_I??M!1bQ#HISH8aa6(PNyt~_JWYSFlyQ<3Fu3x#-D2j5m7 zJ_)biHo2o@Bcm zru6XO7SL7!xp}P+t~?cpsHfvFM&wp#CAKv_QdC zL&m%=_J}%abU{*D(?h;(;QP>vGisH8{cDlcVATk@*VjWUkEvJM=5CnxtFt>HF4$Qj z5g~GWv>#LLe-V~Hxs>bMpGGLU9f!1l@S2(qfA2row_gQ+OpCI9befmff=KU%N2L<@ z8hU*KYc8WOh18wb`1R?KfGs9etn!_)5*i3{qDT3I$f-iD7nn zgaz>bM(VD9ht6O`KjNbtf`-HClQeh^m5BvFrj{W zMb%+XM@+?@BGHZ`T$JPz^e7Rtue?bN6GDWmUkS1{p+=)PPT-bxZhSKoB?zp z?@M_W{A6dpQMmlc!kmjgPil?~&wJ-JUPp?RT?%5kg{=GPh0V2GZDs^2X?irz@`Q>o z4P62yIz4Qs-a+;erEL2eSCqIWXg3{j4d$Bip@3NQEJ7j%p%^VDJ2C0~J*Opo@enD@ zasMQbHn^@xycH<1ukP7y0#<=sI;lk%O)7BKVEx$hI(PJ#*mzXryOw{hKaW;s=UB0fY{({Ih#UO(S3SD(Ff5_=#k+C?`=78wx^QR^m;lJ zgcRCcXd^{vGv-zD+{4fsCa#~?^6b8Dc-wNSQHQA|_^4R2-}WK~a_+g_?I>&K_;S!j zGo}kIEMoL2iy%(@*dG1>StKc=yP^P&Sf3Z{aC>-rOyyM4eRm7s;nknA={0{`5$~f#q5IR{NoXwa7@)|({&+Oo zx%a5|NEd^5b*vAeWi-KiPAN5C4{3>P)Z75gg2*!Cxf>Mcb6?Po&XtDa{XTI|oY7wl zl=KI`7YGR+f-rLe1FXU-xS^h;4 zIb$CCMAv5O1m~0UWw81mcK&^?WA$hP4_=PY@QLDF3f2VH8~m`zB*)C|fgBSC^|MJ` zH$65p@;IC-T;u3Idjb&`BbTfv#(0JoTD^f`Lk$R>#Ej`*6nsrEKPA zc~$%jMHdejkyT5|#QqJt64XuL#gKA1gw`A1b?bq+73 zcqbbY&DTeVb;Blvj(myCl$Sf8g4HjD;2r>FcE>H^GL6^(V1&1uA8Gc3<-x1#Vf zQD}{L=?z>gG{$3lm?1+M@jOq;{mUtpIKu{`-H}y)*}6x8D6Y^?xgDBxx@!BWJTw-! z$44@S*C>|T9{tx0SXMx%Zs*Y;L-$ThxtCJWVqGhKBXjThYm1B3e9MgRmbw6##N=Cw zoTc%%$_IMDGl}aM8j&*m?~`6*+wXQdcvi5D5VHd5Eqj(Mu<6C{Fr8b29+KUDUaqRHxLykA;rF1peE6fR~4H8)SPv&c6oB{pH62 zKGD4B0zo_J6XE(5B|q;LuNyR-vJY@4OY(?^?*Ad1rqc_K zdE8_>Z06eUS#0Va+R;ZBg7$f#zrmkI4N403gDK&4H~sz;?AInC)PF1*FBXMbsDp1- z$XJP&v%=IwXwuW|_Id=OT4oc(EH306lv(*^-k-Z!HzrVjr%fC<{bsBIR2hE^0~~%x z73d(Gyf4501`g>X*U6y7?r$>dsz0*KqHM&lRhiN+gN@yUH(9e!5_ZL628O=0?TI}b z6_Wx=VH6dt+h_>!I%uQ@eS=F|g;rnMWS188{zRM~43-0tQ;U?=I@Y=-5WsdoX#g^# zk0Y5Jgt0ojO>&j!pV9(CzX#w!v#-Vrism~<=AB60Dq~?c?m_p@RxhH1OFdVxUekn9 zw%(`I4XO>9Bxk#jNg-dH8|g&7t9$UC-RV}$Lhm-`_|2pygjJQ>*|&3+J34Iow=_GU zd>8WO=CCTlZTu(8@~h=%(PPJoiY?^=r6bm)?ikeN2JcMHT?#}Cs@*rK_+@k%J2Nfg zyPJ-v0x@?B;+vVbv%EiIewsboD{Rd1z>V} zvdSP)ge**MJpPQ7~%A0h&bE7ecqdlv#K(L)cODU@6`ll*fSKq2!xulZ3_vyYl3m{^CuU4zq8NdPBB zU?GzcpNaKA3S&pmu;*BlqnV=}Oggfv^@SpbuFDBqwQrYJZ=F6jYzqLhE|JsH zjkecUFX*>3V;u_|dx=FsC_jUS8-bZheQM`SPD* zo#J!>1#GDDRb}X}z0e7kX(iZZ?v?jP>42E0{vq`N17|V}FEi^S-}+D^3W{$5o_E@w z1y!t3XF>-8iv#S`)!W1+R$k+Zq*poR`YY@35$)r`cf|3Fn%^O0e)Y}#xK#?X z^fBIieWcTtrW^T;aD&X=G17?N}hBF3r)3}4-RwiaMsf3Gex3)}0k&#f?2-m)~HD8xa zb`C z_HYuRYn`+(K;Ioc_Vt%}ILR(qnAkUXfnz1H@h3g$>ulqo-~8(;&q~37k~APCZ}DTu z=D_IByR%o76$KI}kKV?}Cb}UDetsudZ1&Q@bu>u)r)6kf>@bowafY@dM3yB%MI`I; z>}**ef@vS9 zCCS?Ru-hBI0$seZ;vKBO2nK;*8{j66_U07BW0<2dwxk7?>qQjvsO9^5#5XUGszK#^ zZj>a66QOA@FYn1&Ekcs9S$M}{R{im4wj9kW;pe94=A(gS1%>=po=1{Xq9}-pN&EF| zcP3U`$=tyL(T*ltkNE-1+3(0l*L@l%QS)`P!}eYIef*&7 zq|Gf3uxaX*aXkyD87FQ&y};qSF3S~@4q}$V&r`hQ+aIbiHhF-K*b!!1oqu$+z>~+p$p)gcZGiDHYs8_NKjN$L|@+){Sy04VzDZ5x_MdD5RweXx`+hYzK&7jbEK-BJk_ zIIJ_S6#9%X_b!x!z81IaDc{5T?n0i7Zhmk@R#{s@SO8(AfkU+2^dM(OoKeE)ZmD=X zn)N-CsZl$@HS8U&@lsR8UeG$fBPR?F@s>nE0FMycDVw{nAN-~@%Fidj^nm^9=s<_cD}zdbt-^|Z^58^BDchl+fD zFfyAGRodS|U2L8@J)>FqV0|vdefaV>aKlA|PR0$8M*{iUOzph`Awcrl-?z(yP*2YR zs(JecGD0H9!J`=X^5zMBhGBf6b2H!6%T?%iZWg<9os&N1s0&A)&L^CQEu-<; zEZsEUAR(FfkQAD-Uo{Xf}4hx4JhD zO2Z<>eGn0{#W)%|ekgYcfJ-YF=-DW%9o70-OPwJP{R3HAH`baWl@Fl}2jPPT> z5$wI~{&87#c_Nq4bVm*tP!{kQ!An_p`}9+H%Piek75Jmy*Huygj6}f!Vqqe(xo&3f zZ@9ZBRlir~8?EvXX2MQT7}ZkQcVq7&U^!>Ir8IjujHl^h6*tu40qX5|)u$hEYFl-^q3JNG|xoqwLrW&j=o=^o>w^)e~@ zmV<2d8wXs=AdCIuAFdq8Y~w4ZeQ_!|{F2J$!ZY^|nc5q>Qqew4#WAKiVqx*u8lnJ} zH^%3U+`;!fVk=?quzY;K_Q@3Yt1*Txea@_rXx-vUKLlFxsE7l^hqqPG{R=K1@7hMu3ohQp>-o z&Pj%K<(r9M8@5PcCey}iD}(!O>thWOK$H~EjW5xSC*{tDZ7;~m_2AP_j`{|+o)uQQ zFmcIFXKcg)evLV264BadAOv8HRef>w-b5Fswa555_uvG* zTyu9g3l9tZM3Ko#YyDP{$d&cty5f5I7(~6OY=E){la!XJ42li)3ze0<8z0UKvtX`D zfaVj`+_c)WZj`jOtgkQl&EXJd;Ox!mCZh5*=h}fdSo3IAd)wa-MpUi0L23a@%Qt=D z8P_to818CW8212JWd&}`*l%f8h{6!}yWHtx#^crD;irP8i!1oC0rC2rcA_eck}go~xh^vSQv!;) z2i3T?fHV5!zOvi-Lu* z!i){BE|YE$Xqnh;4EUTAMElr8KbgAlg4+HzaQ42x8uTOPzi`DOq(s`^`@=@=Np|)c zXo7e5lBc${da`h(BDGHvLNLlc4-Dqr>R51+t2*aViie@c(AbTw%U(EAUb5?Pw zzN4or3=?4{wf;sK2?$dj+kilJOhr#lPeQf^ZwKn8(g#wT#eok2*TR7n@6@IX0&k=^ z+JE;eAxQ6dG>}JqY97EPZ4={mv=|6i&&(WA7Umr~TSGMwU3ZRq=t&1d#@85+$ckk8 z1|1hkYSVx_Zf!pHu9;xjy3oAI8~=;|n=^-=ny*PX^4^LHAXPWy6y?wtMNcMVY)8O| z_51D}>LrjCs-af(F0C`^N-i_|zMs-K==!WPK+PI^R+kQ;#Dyc^mt0#0&ty_{*FQyi(3yLO3(2=4Tah{6zlGzph6eD&N@QG%1{ApJ#k?bx7xAeXrBBJRt8ST1%~~$NTg_hZ!o0OflsS3y+aW zDJuU_nSB7WN%gEOdzD45Iis9(GPqoDnCM`juf-yHLKAEP2wif00@Agl5-)Nz`RJQ0 z*b&nIZ7kv&>4^>L0#2>%PDLT;J?lU%PWx{r#&CX<+FX-5DxjD6{AVry#b+m_0YpF( zptr*kSnoxoOKTERX$7K)z1DjF_HRqvjlqrde1g}l4cik!uu4QkX`^RBF4Kz~e0 zt`W8^dCvfBCpvFyyXwU_7Wbz;r@v9ozL&Gcf!)v0f$PvNjP!@r;jdnd0tYw(lhMIX zp*OeYwdM;Lwvr3nS0@SWZ`p|U_Gz6|Td{(ZF&$?5swIDdXe97_xvpic5sG>qZ+nJ} z&?lZqjHqWWxMWdzl6o>}_&F?y#?=${XTg8s?VFUr%)E7X~5LFL+ZXYk_)wQYmyk#^Mg!w{m! zL#zihe?-h16r{yNyXQfxjg9sPC6CA3g& zdijvi-O`n~ZTX$_UbJQ&Lgk09uJHox0Guz(NPj78oTwnUQXF<-D^+W}Q=FD`OVSf6 zC21jE$t*J76tXb?f(HgsU2}O+qC7p%gg1PwOXWkSeY4y}ZWpjRjO+Yz&7`b5BckeZ ztSFH3z+ex3#|SNZNWN8xoc)5uGK%lcVzYiSBxqNUa4oagNg&e__C(5jd)mRA#5g__ zX={pKJZi1=ZU4a7s3Wgm{<=9k&ikJq5%@;Gu~+Q9X(+GQEYtiIrz4 zdq^G+tBz=4`7B@maix3aNA;khr4$L&N4(n|mVE~$0W{G#j}y?9LB~ERin=(E>mEr6 zjx`$jj7{Yr69 zdhbS&`*9}uOK^Q7|HG}?p98Bi&60E+p z;6L@J4GP=ZgPRl%X0}Cp#hawltoHT$8gqqfQBIWe>zR7p5esPvsCA(*wsLUtWqw5#e#g?VSsXaBDMvr&$q*%l7*PLk|b^VkH z$PDx)dO}igfF1r!F*`6>{Mk2c!ODYYi3TtHu#j}fzd$(7v4Mx|JaqvKRfrlJDod3r zU2y}-KHAOp{bwu}&0)=6OH1+CedPCM!VHuod?HpiBbp}}Rx>9#=(i5g;Ju-vnJg*( zqm*-6q#6UZo*F3Vv@_)?A+UHlZQ(@B%BQTufSD@1>XS0_2YCr(qd=RACc4>SLqt3r z0gbWgylt`rZ;4vig{+M|@alsuHz$3lt{qGtjBkJRgw_hZBS1x0#FS~@Tz@ah6#Cpw z`{I18@oZd)g!bgMb&Ky;ZU^Ee>>k(ywtmcqu#mwv9>%U?EVD?GoJEBEEKLBl8NQv? zsg>(J2hfkDI+1k=Q&7rI+jZQwOpW^XC8q#)$vRNJLY5En;=FuiV8ti??^VY!MrHBc zMq}iOOvZYrVh~DUy0r5c!>HtUnXNEO8(D|05lOm_C8c2vf5ac7%sqC@O5+gyo5-K{ zOX2Riv;nSr?&=l%f4JHqQfd@YNlXSdnjH7Al|NqgdHgqP(_Zb1cv={5VL)ZF5r)MI1> zyimSeJYs(nx=|Zg?a``QvzH!gse0u(HfbMNliYqjzg~nCRmjgQc`cI-e|i(uL~NWl z>DA76aK7I1^*tS{i%E)m{Qb-iUy7YWcXbwU&4e>P=!Jl3Y7PtP9^PZ40)7p*fEs>l zI6lOixB;;njXKp2@9WSFr!z?YnD?CiFxupzR47dOQVRF0c_#`jLAZ5#PkC{At|A$& zFA`4KWk=R%REWcBA!r@ds zf0$-$OEiS~{KI-kat!B%iWI2?uKSRL!_k||`U#j?UofJ?yH15FK)v%!MFTtby{$m| zUMCbsod!dI$B2F42y+6{3{vprQUSRC#ht18$e@N|nZB}EASEOVhUnuM-B7iAPI@v$ zOsRWm0~RD>g$s4ejBiKsmVlp#W{eKB7G15kyjwS$EA3d9_HvJovEUIgqw{wuB$=5X z&j(dX!)V}_qKsp%SJ@m{{5OnW5n~)!F+Hs&{tR$|P$u&ow0vIqxokBg0U`S!m*C^gUnf1W0De@jROl@DN@SaCiLT;831}{E5*&s zq!@LFpz{-(4&f(=-y4l`LX7I$Zm!3>erg9x+_#)P%^hih({!H<CGR_iZ{T6TbYnE=mYx_D-qYVc*Zi|t2$pSwT+d zemifFjZY8?wvO4m6^?NUD>TWsIZ*)ZhkLrleQ7w5qlDPzJf1=fdDr$ zs$gDuDVrAjlgMs*5yJbYPFn*M#T@x2d6P$XO*9KzU0#mO={BgH8&d#))qlwLAfh`!<--9Ye40Moj8peh42aVg82@B(HhuGY`-pa zgTEz9#G)|};1(v0Dc5o1^FeQO)C}(#OgM_1ghYk)5~1APbi@|ES3v@)^U+=jpKX5= zkjr~9R2=@Ea4P=GHJpEV>ine_G>Oyk66~MZumENaOVE}}#eB6-?T8QR6&{M)q!IH1 z6D$iv)ktR@By8obykF7oJW7YZ*XOAwrVDmZwgZh**qGlLDUNUADDljyFL+@$-HSBQ zHQfwxp1ru?bE;=*{uOoaI5e^F5Er;x-jMUh^Spi{b3y!AMtrupWHORhRI&g>BZ`Su zYg{UxgHZNlV3%a5W#CKK_iciuMbNLO>8Ll^7YXz_F&*=C=ms4tJTu9r0=n8r=mMPx zABa80c}r(G6|={BW$=??*$q03f)BHz3`b?2jgqfP*Ac5J^g*kZc4qGasSCx5{g>khSAoet{A`0Z!C z3Ae7^pjQ%q`vPJy?q%OgFE^@ZwPb`0?jOpp7Q_c$%VOgDQDJrI26wT8#nwa)gqz-5 zNm1!>lTTDW_g1{)k;$K5P#3|X4;(m2)(Lk605Ktmy?&v42Y zgnZZ4v0@`MdW1ZkhHa1w_+{U=FP9ojHf|e*+F9-prqX@Y6MS)sE3x9P+)O? zt=Ajx5z`xZk>Y<-oY$7=U43KJI9~tkNCOz9SvNXb!u%|>(iRYgi~x$15T1_Hw@ok* z?7v!>qeJ_|R#y}c8Eff}XMeaIo#;^NHkr+43B$=eqHT)l5Fm!|90Qw)8=I=BkGCMZ zsFb%BulT5peAR_Oflcg0J8PtbviT%W( z?2Nsbn<}xHh3}6~aqQ2&;g0Ana-U4HzHo}IpRx+k*!<;vof~v0yy_I(Rmg);-F0xy zpDhkO&!g=CpKbjvSwDchT+Rn_ege;P!z9$F6Lq~Pek3#{lZ?TMhaH8NpN#$yc^+>9; zvK<@Yh1*}1mu{iu=$Bd68=528e%Pr+e_$MeI~hm@vz;@%qaK|#LriRI5WfQAP5W{X zZKOntV0MJUcqtm05$0oxzas$4DlOogzpMcnRu@-lU*e`b6F;Jy zwmK^3Wm4_jOu3jPLv6^^u7|*70*pe9(~KjJ+p(1WxtUJKtEcq`+O`0{9w>i_DLNzM@SdqVUlv zrV+g|NRQ&8+uCurLErRG#H3|kAj3kaSU+GxbA@fqgg$yymS}vET^TFI6J*TVW$aC5 z$z*gy@kxQ*94dHHIUPR~Q^qnwZBg`h0{mxT+FzKJNG@Y)MG8D?o@keWk>sTV0@_lPFhHrsK%!8UdwTUr{=(592LY;T z_B$#UCZN!}@+)CdB!23EmMKRgZ2-bhYCM1@E4=pcOFYXYr@onfu(-y22+J*rv*;C$dqUOa!16lgFTz<;o zO)+@(gTk8!6B!-Hm^_cxc-FmQAj5!p|p?fErk7i zz)Qz8P6Oe!1ay&bbJBo&n;F;CpM)+^FKkakqb%9qIe~oSfGSb^ydiBQtUYXsB^Ri| z)+_j=_7rZ;Om8r&R4rds(NiMNl(9Dp0|koKnd$Et%{PJpo=L;=XauRg{0l|H)%Qe$|vF?($O$BO!16<5snb2 zRmE$0US9dO^vSH}{_G=QHFy;G&0T6X%J_wR{l7!xl-)T>Qv0FqW;B(p*{C<*cX&+Y zS+`77;AGh^tfi^HUbP;ZVqU$ZKAP(AM1EQI$x%RP&dAV%7pttNktb=^yspdf&rqCR6uDoAsjIpWQai2R5 z&!4R`2OScCLkhaSK-WB%zx@n4en)G2eHiLou+Y;A&tVT{t;?iFiFKw))5#7nFOpq< z`VwZ+hU;@R&-PqZvS4(h$-Tgcg)JubOGSEeE*Al-Z}RF)`I(*2>Qd4hFWB-7*y;(t z9dd7A0!p-$o>$kXgj9Q%zO6pX%kQPzcL&748b=e+kgiL)`rIR^faR_Q+zI*BS{Ve9 z%~XFyv|1LCULC8U7(N!I*$t&rcZxN_Jy(|t*)dD}xI&TA3NDf{POya(YbUQ#v}XO3 zJ`+P`1wCA>6w-M?u8US*>o($iMfV^F9Y@ff?IEx%u|8=BH!Npeam1BVWRhX23D!7M9Tu+=)0N~ zs_X!?qv)?9Xfo=`}T(J=d;#_;fuf9tE<5Gn+Ilb08;tM*rSJ>!I~(}u`9VBoRK?navvUU zXD;&=QVqRU92JqIR*F+~$#W-qzdDWK0APxeFUA^mXj~wDfzB1p`Wf#L`(+ky=?)`U z+5|rYSz*ekka*t0d*7^@WVWiL0<_5q;q2X$;*2&mJo!*}7l9NsIWTW7 z{R2%3s%5abYT_WFee;lnfR~6rKGS4d9@F=lEJc-S{aVl>xh%nYY=84--3p1F>H$>4(|=l$IAM^JT3?H&_h1q*~$J}WCgtJg6n zW5ILfQh!6ky*fsTFcS(pSCoce2oP=Aw&utXQfBq$#Fy4##fjq64w|bd8r3%~d*4uA z-;;S#dORy$j7h`N+9e(1BJOkho7x;jyBco*nehDXgecH`jS@KFTd9A31)7#B+cOAg z$1pLQI(zNc%)oDTP`K;yLgseKpW2z9U1;@Cnkmyi@#BMVX*YlHIK1z;u4w4h%UX0_pX9OkP@lax z>P%N31S5JT7(ZR(n7rSdivW6(`G%gmj3XtHlgQZJ{vUZCBY+3UC}0CY%OgJVWx=!C;k`;UdOKkpiq{QHdx4ew$q^qH8i{wY z0**0&gR572A-dcgMBp0WbyAm2kAPYSXZ_$ZYx_G3)+1#-yIr3{#om#6ywHrOv9e;CcA*ef%t-}1k#-m`C}rT6mO2H@I)nzZ(rn=D=Ds6cC~ia2O3@P+lt`P zyi{2OKy&z`etP!*-8cQquD02((>+R-KiuyQS_^72ac_~$auNS|X?CDDVT?!gnEnu% zJGBgTlRZRtG-B19`{5`H#x7-^U2}fxQz{^yR*<22{dAdv%ol~4kzo+vmR>A>=o)!> zK|x@{Ar3&0xnospd1_e%jO8reFbt}R?+}Wtpu0XnJ@<6sEt-?Z3M}fQUfJ#_>UK(k zkYnO7zRze8%RE)8nlDoP3T5WMZ?)+PRr|GxL!8L)F#S^)#${?;ESaYP-Vi|Ze5kWkOV9TeT_gemCpB>~8pFiuMK2>aX7dOq}R<(;!r zidQggB=z0oXPp5%TV|gI)7^oeVYjta)@lc#91i6xt|{Aqx^D-vUmip%j<7xMP=QIw zYL>b>cQ$)++_&{wid987g5{N5?Kau}AMTYny8r_@@m4PPexcbW|HpqxtYiX_Z9;KZ z%@D!N3*#EGuO?X)<0C6qOIXPCmu?$u>UW`4Vr@!)KMzi7S+V%dznj%E`912(Up1Yw zm0#YDOh`o5BF^aBb(}E5MxqH3Q7$Q1k^R_2o9q`qmZO}gno|)$8MYm0z)IFEF;8*J zMh!nK1H8!)d(`g@={o&=sa~7(WGU989JCAkb$+)wc9Hs@ps@ zZz1Wg=qr=)U^2S3R!XsKPfNsBGsbBvp+w9%RX*h0SNMVlP-zhOAXC6$psQPfONi9% zj19CJFU+d&aLzE)($yMl4|6ps)<16r{z%kT@miMmf#NZa{$@}%_Iy`le;m|Xd1epX z8(0@3#W)Um@Mk%#ds%{~@1?l1M`rw_mO<*(^_x>fn(O$2yUZM)g+GNS7rY*){E7;x zf*hXo7dJz*9%^8bq$;G7wbUqz8F=x%h?_PoHi#iRdR%euB1S8$vihc?Gg-!l4&_#i zx(X3Mqo+!yk@LjhHF0XfJ`wI%@3ygG$=YD4> z*yU)4L6OW_s5+|=E%x7IAO!cSlK)0FvRW#a|2%1_rS7)omkKk7^xSL&iN9ibg4D9& z^V8n*ypP-Wg;J}(W!ke?^Pvx*%1KuLKVc0fB2ccKdfd-}{!eZgdHpM;z`_7kDwD33 zaaDJg;$(qNtKb>+%5e1=|+j-p*-J9RV=j$3Uwi^5= zt31K7%O~9azu$OE;DoVkoH&nc(cC(WSe<@XC#bTyVn5x@=hZ*mwNmbFhHqz_4GhSQJ*zUp5{8M;t! z7i1iZM^&`Yai)a4vpi+#dv$mxVOfvHgPUsQ-xllraJb-xbAMA46KHz=(rPdZ8+Tk> zQ3_8An`}@dD)$ibiXhvbpby7|LSv_bb4hz;fg>YW9D7BZ1!M-niX&eaXGxLXX7^P` z;$;(m)J-jYt4=A$mq{mG7i#IMewvXCQ{Pb8X})0qgdRK@q;Psmk&1j_bS~p*r_n#S zH3Q>ep758W z0E~|$XLHQVExqn)zO3Lcp%8txw2fE1U zf1<6R4_(&CwjW2k`!HM&S{3Etba)11&g2{E>y)dy7wKB7eS0M)bBe&nHK2XE`}3#v z-|^mo(3_S+)T>{M20#kT*1M;)!BLU^7m}E#;8Y{pA%%ylU@B0bfcZ@;f0Z#oktkqP zDF&D8Bv*Oj$*%8~VH;IZ*km=AUxk>v$0I3c;&IgJx z3BrZ|Edol-tfON?PJ^VWTnTCJ_&WtXq5XG1-hn()6W?4$K1CJxNT2(p^{XtCz8kPs z`P5)zBIyv%bTLl9xyc`hoKA|BnfDSt>1V3!2Q>oWXtY$BHo+2fGJ9DvhT#)FW(7PF zT19DChkSJ28Fm}g$1D9qb8p?9JXMm_lOd5j#b}8sGVRO0+1pm(xx94mYzSB;85u5SvF^F-_zI} zh1luV3Uchc1i*aWh5^t&W;3D)gcNC_Y}ANlYKt8 zcvmh9*xMkJy&&69n*JfvJh2ev3^i9^^&4PgD`gOaMzhkjh8kYr=!fi9A zkwKTK&XT8|#n11S+1SF~n3SG?R*8FYPHi>J&#Ha{(}n_LfuRoc(8ShilZE{*!!V#r zZ+7#`OzLC)tnjeW0U<=K*tHJJis~@43QEq0r+Qe+(K4EQsG?+xBxg7w>1Xj9UZx$-v5)`(q5DkGD*V5VFK`;w7C^hd?4soD}uE$wU*2 zF*Fj|)xa98@6@&6sbDLXBSzO0^UO`Bz=w!wW_mvohpI$O4T~0}Uj!cEyB1_oxQR}0 zNZ%BHkS2X9&Gf0th_Ps~7Rxg;1mTK;pG3B#|8Ul#8mMT?4!)X3C#{p^bBSAR`Z)~s zGQ$5USv8*L#|>iQm9Oelf)i)o>_<*rKSiBZpHiLr(dub>K!qVs zfUf?_X7p36mewoLu4D}llv*Q1nf`O@yY(;bK1dN>F?PZ)wU&xOAix7ov70ze%S%rT zc-^qi%ex0s==4NY1p)5r+39=N^oju)nR6sj(#MCbzij1)zGP7k;f}#aBBBbpZv79< zG*6Z3bC7lKd5v`TYS(yu3u=nbPt2|@mDV*b$}(nJ&e_NeiYhEeb1M;0-!SaAso6aP%90M zqtPG`?t@Tq@XzQ4*=-YFAGp=>RZtMolrJ?WR{Cdv*d+fhPTu~g9zZ1t@7`m~Oq9xxh z#6Uam(n6N#0yr*Oram^(dUht5MXOK^?x|C@iO->V`jztyLds|+&`y=xvCrVj7N?H= z1qJ(wexVJ-85{V_rFX|4ZXQ3MidG-aGC0fI&SO&-A3Hnbh#s+G3ea`m>=u7~L2$i4 zdnl(fcL0Dz#rwK{)&DiM{WA&SnfzK+&sy08yPe>V@7wQm9bs(E8ycAt^Yb5|l_d5* zPS6h7vPj>_wP(7(1Nl+z5{Ji6n@$@Car9rF!?!>oO^_Gfsv5@?$q!1WYJ~^j5KD;6 zGO@Gfe2hesX&Y(xR4+1e^kr;PvBqJznQ|&NTDAHe>!K z&43EYQ5ieyR|Oh|9yXR{G^dXrXKzw3y@BvFI0e)+N`-iD8c&BC{{&fMMH(jTHc*_t%5c-2`$+fH1DtkDTcubj~=s<7YJ?TSd5qua{ z3WyLr`xSkH%T{=bOgy8@zkC${Io*6=cK29&mTg3=ZD(mtDL*tl^Ke@;T$p-mQ_)~2 zPd<;A!y9FAF2*?Iw37lR!fQ@2-I{p_2YHHJP&#L@LF6YVqC+-Dwq2)*fG+T=ZV`8bSp z+KONDZr;P!4#Dj~d%f_+wiYms8@g?xc8? z+4HZvN61A<{mW(>?8myzL;M>zUr(KWH|cAMzoOLE+W+J%bQ_<%n{Pl@s3YF!SlqPf z4tk(siJtBXf`tIpe5O9CyUiW4&8RP2s8lX1zJI"Yq4&OE@>8tQjArj%e{Hr*X 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 VW@&8pv;TSu&5f;35c7M{{|5?#y{!NM diff --git a/docs/logo.gif b/docs/logo.gif deleted file mode 100644 index b3a1bcc2d7f73a117c68f028d5fa07cc626fffdc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11889 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 Date: Tue, 16 Jul 2024 13:11:01 -0700 Subject: [PATCH 04/25] fix: add doc dependencies --- setup.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/setup.py b/setup.py index 4943dfcc..453632dd 100644 --- a/setup.py +++ b/setup.py @@ -21,6 +21,15 @@ "mdformat-frontmatter>=0.4.1", # Needed for frontmatters-style headers in issue templates "mdformat-pyproject>=0.0.1", # Allows configuring in pyproject.toml ], + "doc": [ + "pygments>=2.17.0,<3", # Needed for the Vyper lexer + "myst-parser>=1.0.0,<2", # Parse markdown docs + "sphinx-click>=4.4.0,<5", # For documenting CLI + "Sphinx>=6.1.3,<7", # Documentation generator + "sphinx_rtd_theme>=1.2.0,<2", # Readthedocs.org theme + "sphinxcontrib-napoleon>=0.7", # Allow Google-style documentation + "sphinx-plausible>=0.1.2,<0.2", + ], "release": [ # `release` GitHub Action job uses this "setuptools", # Installation tool "wheel", # Packaging tool From a2c0661d6945ffac12325316f64fd31e21d2ae85 Mon Sep 17 00:00:00 2001 From: Dalena Date: Wed, 17 Jul 2024 10:26:21 -0700 Subject: [PATCH 05/25] feat: conf.py --- docs/conf.py | 113 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 113 insertions(+) create mode 100644 docs/conf.py diff --git a/docs/conf.py b/docs/conf.py new file mode 100644 index 00000000..0c65183c --- /dev/null +++ b/docs/conf.py @@ -0,0 +1,113 @@ +# +# Configuration file for the Sphinx documentation builder. +# +# This file does only contain a selection of the most common options. For a +# full list see the documentation: +# https://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 re +import sys +from functools import lru_cache +from pathlib import Path + +import requests +from semantic_version import Version # type: ignore + +sys.path.insert(0, os.path.abspath("..")) +# -- Project information ----------------------------------------------------- + +project = "ape-vyper" +copyright = "2023, ApeWorX LTD" +author = "ApeWorX Team" +extensions = [ + "myst_parser", + "sphinx_click", + "sphinx.ext.autodoc", + "sphinx.ext.autosummary", + "sphinx.ext.napoleon", + "sphinx_rtd_theme", + "sphinx_plausible", +] +autosummary_generate = True + +# Add any paths that contain templates here, relative to this directory. +templates_path = ["_templates"] + +# List of patterns, relative to source directory, that match files and +# directories to ignore when looking for source files. +# This pattern also affects html_static_path and html_extra_path. +exclude_patterns: list[str] = ["_build", ".DS_Store"] + + +# The suffix(es) of source filenames. +# You can specify multiple suffix as a list of string: +source_suffix = [".rst", ".md"] + +# The master toctree document. +master_doc = "index" + +# Configure Pluasible +plausible_domain = "docs.apeworx.io" + +# -- 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 = "shibuya" +html_favicon = "favicon.ico" +html_logo = "logo.gif" +html_baseurl = "ape-vyper" + +# 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"] + +# These paths are either relative to html_static_path +# or fully qualified paths (eg. https://...) +html_css_files = ["custom.css"] + +# Currently required for how we handle method docs links in the Myst parser +# since not all links are available in the markdown files pre-build. +myst_all_links_external = True + + +def fixpath(path: str) -> str: + """ + Change paths to reference the resources from 'latest/' to save room. + """ + suffix = path.split("_static")[1] + new = f"/{project}/latest/_static" + + if suffix: + new = str(Path(new) / suffix.lstrip("/")) + + return new + + +@lru_cache(maxsize=None) +def get_versions() -> list[str]: + """ + Get all the versions from the Web. + """ + api_url = "https://api.github.com/repos/ApeWorx/silverback/git/trees/gh-pages?recursive=1" + response = requests.get(api_url) + response.raise_for_status() + pattern = re.compile(r"v\d+.?\d+.?\d+$") + data = response.json() + tree = data.get("tree", []) + versions = list({x["path"] for x in tree if x["type"] == "tree" and pattern.match(x["path"])}) + sorted_version_objs = sorted([Version(v.lstrip("v")) for v in versions], reverse=True) + return [f"v{x}" for x in sorted_version_objs] + + +html_context = { + "fixpath": fixpath, + "get_versions": get_versions, +} From 113a06883096ebe9ec145eb98ec41b36ac23a62a Mon Sep 17 00:00:00 2001 From: Dalena Date: Wed, 17 Jul 2024 11:50:02 -0700 Subject: [PATCH 06/25] feat: theme --- docs/conf.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/conf.py b/docs/conf.py index 0c65183c..171ae45b 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -67,11 +67,11 @@ # 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"] +html_static_path = [] # These paths are either relative to html_static_path # or fully qualified paths (eg. https://...) -html_css_files = ["custom.css"] +html_css_files = [] # Currently required for how we handle method docs links in the Myst parser # since not all links are available in the markdown files pre-build. @@ -83,7 +83,7 @@ def fixpath(path: str) -> str: Change paths to reference the resources from 'latest/' to save room. """ suffix = path.split("_static")[1] - new = f"/{project}/latest/_static" + new = f"/ape-vyper/latest/_static" if suffix: new = str(Path(new) / suffix.lstrip("/")) @@ -96,7 +96,7 @@ def get_versions() -> list[str]: """ Get all the versions from the Web. """ - api_url = "https://api.github.com/repos/ApeWorx/silverback/git/trees/gh-pages?recursive=1" + api_url = "https://api.github.com/repos/ApeWorx/ape-vyper/git/trees/gh-pages?recursive=1" response = requests.get(api_url) response.raise_for_status() pattern = re.compile(r"v\d+.?\d+.?\d+$") From ce04f894fdbc12e5696c2cb606826807a7d52f8c Mon Sep 17 00:00:00 2001 From: Dalena Date: Wed, 17 Jul 2024 11:55:59 -0700 Subject: [PATCH 07/25] chore: remove conf.py --- docs/conf.py | 113 --------------------------------------------------- 1 file changed, 113 deletions(-) delete mode 100644 docs/conf.py diff --git a/docs/conf.py b/docs/conf.py deleted file mode 100644 index 171ae45b..00000000 --- a/docs/conf.py +++ /dev/null @@ -1,113 +0,0 @@ -# -# Configuration file for the Sphinx documentation builder. -# -# This file does only contain a selection of the most common options. For a -# full list see the documentation: -# https://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 re -import sys -from functools import lru_cache -from pathlib import Path - -import requests -from semantic_version import Version # type: ignore - -sys.path.insert(0, os.path.abspath("..")) -# -- Project information ----------------------------------------------------- - -project = "ape-vyper" -copyright = "2023, ApeWorX LTD" -author = "ApeWorX Team" -extensions = [ - "myst_parser", - "sphinx_click", - "sphinx.ext.autodoc", - "sphinx.ext.autosummary", - "sphinx.ext.napoleon", - "sphinx_rtd_theme", - "sphinx_plausible", -] -autosummary_generate = True - -# Add any paths that contain templates here, relative to this directory. -templates_path = ["_templates"] - -# List of patterns, relative to source directory, that match files and -# directories to ignore when looking for source files. -# This pattern also affects html_static_path and html_extra_path. -exclude_patterns: list[str] = ["_build", ".DS_Store"] - - -# The suffix(es) of source filenames. -# You can specify multiple suffix as a list of string: -source_suffix = [".rst", ".md"] - -# The master toctree document. -master_doc = "index" - -# Configure Pluasible -plausible_domain = "docs.apeworx.io" - -# -- 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 = "shibuya" -html_favicon = "favicon.ico" -html_logo = "logo.gif" -html_baseurl = "ape-vyper" - -# 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 = [] - -# These paths are either relative to html_static_path -# or fully qualified paths (eg. https://...) -html_css_files = [] - -# Currently required for how we handle method docs links in the Myst parser -# since not all links are available in the markdown files pre-build. -myst_all_links_external = True - - -def fixpath(path: str) -> str: - """ - Change paths to reference the resources from 'latest/' to save room. - """ - suffix = path.split("_static")[1] - new = f"/ape-vyper/latest/_static" - - if suffix: - new = str(Path(new) / suffix.lstrip("/")) - - return new - - -@lru_cache(maxsize=None) -def get_versions() -> list[str]: - """ - Get all the versions from the Web. - """ - api_url = "https://api.github.com/repos/ApeWorx/ape-vyper/git/trees/gh-pages?recursive=1" - response = requests.get(api_url) - response.raise_for_status() - pattern = re.compile(r"v\d+.?\d+.?\d+$") - data = response.json() - tree = data.get("tree", []) - versions = list({x["path"] for x in tree if x["type"] == "tree" and pattern.match(x["path"])}) - sorted_version_objs = sorted([Version(v.lstrip("v")) for v in versions], reverse=True) - return [f"v{x}" for x in sorted_version_objs] - - -html_context = { - "fixpath": fixpath, - "get_versions": get_versions, -} From 10156938b11bcb0c067ff18403c75ad657591670 Mon Sep 17 00:00:00 2001 From: Dalena Date: Wed, 31 Jul 2024 12:33:00 -0500 Subject: [PATCH 08/25] feat: shibuya theme --- setup.py | 1 + 1 file changed, 1 insertion(+) diff --git a/setup.py b/setup.py index dd4f778a..c327a3bf 100644 --- a/setup.py +++ b/setup.py @@ -29,6 +29,7 @@ "sphinx_rtd_theme>=1.2.0,<2", # Readthedocs.org theme "sphinxcontrib-napoleon>=0.7", # Allow Google-style documentation "sphinx-plausible>=0.1.2,<0.2", + "shibuya", ], "release": [ # `release` GitHub Action job uses this "setuptools", # Installation tool From abaf0f4068da2c6a79ee35716d16305cb66b5fcd Mon Sep 17 00:00:00 2001 From: Dalena Date: Wed, 31 Jul 2024 12:39:00 -0500 Subject: [PATCH 09/25] fix: docs workflow --- .github/workflows/docs.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 56ef4122..7375c612 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -40,7 +40,7 @@ jobs: uses: actions/upload-artifact@v4 with: name: DocumentationHTML - path: docs/_build/${GITHUB_REPOSITORY} + path: docs/_build/ape_vyper - name: Commit and publish documentation changes to gh-pages branch run: | @@ -48,7 +48,7 @@ jobs: echo "skipping 'git commit' step for PR" else git clone https://github.com/${GITHUB_REPOSITORY} --branch gh-pages --single-branch gh-pages - cp -r docs/_build//${GITHUB_REPOSITORY}/* gh-pages/ + cp -r docs/_build/ape_vyper/* gh-pages/ cd gh-pages touch .nojekyll git config --local user.email "action@github.com" From abdb48a99495ba407130f1edc02d894c1f6b0114 Mon Sep 17 00:00:00 2001 From: Dalena Date: Wed, 31 Jul 2024 16:53:24 -0500 Subject: [PATCH 10/25] fix: gh-pages path --- .github/workflows/docs.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 7375c612..1aed4f27 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -40,7 +40,7 @@ jobs: uses: actions/upload-artifact@v4 with: name: DocumentationHTML - path: docs/_build/ape_vyper + path: docs/_build/ape-vyper - name: Commit and publish documentation changes to gh-pages branch run: | @@ -48,7 +48,7 @@ jobs: echo "skipping 'git commit' step for PR" else git clone https://github.com/${GITHUB_REPOSITORY} --branch gh-pages --single-branch gh-pages - cp -r docs/_build/ape_vyper/* gh-pages/ + cp -r docs/_build/ape-vyper/* gh-pages/ cd gh-pages touch .nojekyll git config --local user.email "action@github.com" From 9299d5a1313a59e3f1b75e70162448840f2555f5 Mon Sep 17 00:00:00 2001 From: Dalena Date: Thu, 1 Aug 2024 09:56:11 -0500 Subject: [PATCH 11/25] fix: docs workflow --- .github/workflows/docs.yml | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 1aed4f27..72f11c8b 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -31,10 +31,13 @@ jobs: - name: Clone sphinx-build run: git clone https://github.com/dtdang/sphinx-build.git + - name: Set up environment variable + run: echo "GITHUB_REPO=$(echo ${GITHUB_REPOSITORY} | cut -d'/' -f2)" >> $GITHUB_ENV + - name: Build HTML artifact run: | cd sphinx-build - python build_docs.py ${GITHUB_REPOSITORY} + python build_docs.py - name: Upload HTML artifact uses: actions/upload-artifact@v4 @@ -48,7 +51,7 @@ jobs: echo "skipping 'git commit' step for PR" else git clone https://github.com/${GITHUB_REPOSITORY} --branch gh-pages --single-branch gh-pages - cp -r docs/_build/ape-vyper/* gh-pages/ + cp -r docs/_build/${{ env.GITHUB_REPO }}/* gh-pages/ cd gh-pages touch .nojekyll git config --local user.email "action@github.com" @@ -56,6 +59,9 @@ jobs: git add . git commit -m "Update documentation" -a || true fi + env: + GITHUB_REPO: ${{ env.GITHUB_REPO }} + - name: Push changes uses: ad-m/github-push-action@master if: ${{ github.event_name != 'pull_request' }} From e833604e682ee9324eb00cc0041a668748f9f1c1 Mon Sep 17 00:00:00 2001 From: Dalena Date: Thu, 1 Aug 2024 14:04:11 -0500 Subject: [PATCH 12/25] fix: docs workflow --- .github/workflows/docs.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 72f11c8b..e4c6d83c 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -43,7 +43,9 @@ jobs: uses: actions/upload-artifact@v4 with: name: DocumentationHTML - path: docs/_build/ape-vyper + path: docs/_build/${{ env.GITHUB_REPO }} + env: + GITHUB_REPO: ${{ env.GITHUB_REPO }} - name: Commit and publish documentation changes to gh-pages branch run: | From 30097c20102d2019edb4b0312c6ece90e7080ef8 Mon Sep 17 00:00:00 2001 From: Dalena Date: Thu, 1 Aug 2024 15:38:08 -0500 Subject: [PATCH 13/25] fix: pin shibuya --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index c327a3bf..8124ca20 100644 --- a/setup.py +++ b/setup.py @@ -29,7 +29,7 @@ "sphinx_rtd_theme>=1.2.0,<2", # Readthedocs.org theme "sphinxcontrib-napoleon>=0.7", # Allow Google-style documentation "sphinx-plausible>=0.1.2,<0.2", - "shibuya", + "shibuya=2024.7.13", ], "release": [ # `release` GitHub Action job uses this "setuptools", # Installation tool From da9b3219223e0673f4715fade6e8f3764b1cf04b Mon Sep 17 00:00:00 2001 From: Dalena Date: Thu, 1 Aug 2024 16:44:39 -0500 Subject: [PATCH 14/25] fix: clean up docs.yml --- .github/workflows/docs.yml | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index e4c6d83c..071ed11a 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -2,7 +2,7 @@ name: Docs on: push: - branches: [docs/sphinx-plugin] + branches: [main] release: types: [released] pull_request: @@ -44,8 +44,6 @@ jobs: with: name: DocumentationHTML path: docs/_build/${{ env.GITHUB_REPO }} - env: - GITHUB_REPO: ${{ env.GITHUB_REPO }} - name: Commit and publish documentation changes to gh-pages branch run: | @@ -61,8 +59,6 @@ jobs: git add . git commit -m "Update documentation" -a || true fi - env: - GITHUB_REPO: ${{ env.GITHUB_REPO }} - name: Push changes uses: ad-m/github-push-action@master From acecb093fc9790de9d9599e26640c2c721253480 Mon Sep 17 00:00:00 2001 From: Dalena Date: Fri, 2 Aug 2024 09:57:22 -0500 Subject: [PATCH 15/25] fix: change cloned repo --- .github/workflows/docs.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 071ed11a..f3251aaa 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -28,15 +28,15 @@ jobs: python -m pip install --upgrade pip pip install .[doc] - - name: Clone sphinx-build - run: git clone https://github.com/dtdang/sphinx-build.git + - name: Clone ape-docs-build + run: git clone https://github.com/ApeWorX/ape-docs-build.git - name: Set up environment variable run: echo "GITHUB_REPO=$(echo ${GITHUB_REPOSITORY} | cut -d'/' -f2)" >> $GITHUB_ENV - name: Build HTML artifact run: | - cd sphinx-build + cd ape-docs-build python build_docs.py - name: Upload HTML artifact From 8b9af8f6fcd36f8072ecf0b34d5f904d9538c5a0 Mon Sep 17 00:00:00 2001 From: Dalena Date: Fri, 2 Aug 2024 10:23:39 -0500 Subject: [PATCH 16/25] fix: remove pin and change repo name --- .github/workflows/docs.yml | 6 +++--- setup.py | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index f3251aaa..04950e72 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -28,15 +28,15 @@ jobs: python -m pip install --upgrade pip pip install .[doc] - - name: Clone ape-docs-build - run: git clone https://github.com/ApeWorX/ape-docs-build.git + - name: Clone ApeDocumentationBuilder + run: git clone https://github.com/ApeWorX/ApeDocumentationBuilder.git - name: Set up environment variable run: echo "GITHUB_REPO=$(echo ${GITHUB_REPOSITORY} | cut -d'/' -f2)" >> $GITHUB_ENV - name: Build HTML artifact run: | - cd ape-docs-build + cd ApeDocumentationBuilder python build_docs.py - name: Upload HTML artifact diff --git a/setup.py b/setup.py index 8124ca20..c327a3bf 100644 --- a/setup.py +++ b/setup.py @@ -29,7 +29,7 @@ "sphinx_rtd_theme>=1.2.0,<2", # Readthedocs.org theme "sphinxcontrib-napoleon>=0.7", # Allow Google-style documentation "sphinx-plausible>=0.1.2,<0.2", - "shibuya=2024.7.13", + "shibuya", ], "release": [ # `release` GitHub Action job uses this "setuptools", # Installation tool From 6c99aa38b3da203d96ea622be1c1ae437b465125 Mon Sep 17 00:00:00 2001 From: Dalena Date: Fri, 2 Aug 2024 10:24:58 -0500 Subject: [PATCH 17/25] fix: add description --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index c327a3bf..ed746b8b 100644 --- a/setup.py +++ b/setup.py @@ -28,7 +28,7 @@ "Sphinx>=6.1.3,<7", # Documentation generator "sphinx_rtd_theme>=1.2.0,<2", # Readthedocs.org theme "sphinxcontrib-napoleon>=0.7", # Allow Google-style documentation - "sphinx-plausible>=0.1.2,<0.2", + "sphinx-plausible>=0.1.2,<0.2", # For analytics "shibuya", ], "release": [ # `release` GitHub Action job uses this From 39b2f55109681e1c4c47dec39832d34941b945b0 Mon Sep 17 00:00:00 2001 From: Dalena Date: Fri, 2 Aug 2024 13:49:31 -0500 Subject: [PATCH 18/25] chore: lint --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index ed746b8b..3a8e059e 100644 --- a/setup.py +++ b/setup.py @@ -28,7 +28,7 @@ "Sphinx>=6.1.3,<7", # Documentation generator "sphinx_rtd_theme>=1.2.0,<2", # Readthedocs.org theme "sphinxcontrib-napoleon>=0.7", # Allow Google-style documentation - "sphinx-plausible>=0.1.2,<0.2", # For analytics + "sphinx-plausible>=0.1.2,<0.2", # For analytics "shibuya", ], "release": [ # `release` GitHub Action job uses this From ed804a9234cabc991e1a99135692e58fb9297692 Mon Sep 17 00:00:00 2001 From: Dalena Date: Fri, 2 Aug 2024 14:46:21 -0500 Subject: [PATCH 19/25] fix: directions on building docs locally --- CONTRIBUTING.md | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 4c0946a3..cafdad43 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -34,29 +34,35 @@ Committing will now automatically run the local hooks and ensure that your commi ## Running the docs locally -First, make sure you have the docs-related tooling installed: +First, clone the repo into your root project directory. ```bash -pip install -e .'[doc]' +git clone https://github.com/ApeWorX/ApeDocumentationBuilder.git ``` -Then, run the following from the root project directory: +Then, set up the `GITHUB_REPO` environment variable: ```bash +export GITHUB_REPO= +``` + +Next, run the following in the `ApeDocumentationBuilder` directory: + +```bash +cd ApeDocumentationBuilder python build_docs.py ``` For the best viewing experience, use a local server: ```bash -python -m http.server --directory "docs/_build/" --bind 127.0.0.1 1337 +python -m http.server --directory "../docs/_build/" --bind 127.0.0.1 1337 ``` Then, open your browser to `127.0.0.1:1337` and click the `ape` directory link. ```{note} Serving from `"docs/_build/"` rather than `"docs/_build/ape"` is necessary to make routing work. -``` ## Pull Requests From 9c34d3aebc3ae6c6a94b9e911eee9202e5f7c594 Mon Sep 17 00:00:00 2001 From: Dalena Date: Mon, 5 Aug 2024 09:24:56 -0500 Subject: [PATCH 20/25] fix: add comments --- .github/workflows/docs.yml | 2 +- CONTRIBUTING.md | 1 + setup.py | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 04950e72..661965ac 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -66,4 +66,4 @@ jobs: with: branch: gh-pages directory: gh-pages - github_token: ${{ secrets.GITHUB_TOKEN }} \ No newline at end of file + github_token: ${{ secrets.GITHUB_TOKEN }} diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index cafdad43..4d556c46 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -63,6 +63,7 @@ Then, open your browser to `127.0.0.1:1337` and click the `ape` directory link. ```{note} Serving from `"docs/_build/"` rather than `"docs/_build/ape"` is necessary to make routing work. +``` ## Pull Requests diff --git a/setup.py b/setup.py index 3a8e059e..523099f0 100644 --- a/setup.py +++ b/setup.py @@ -29,7 +29,7 @@ "sphinx_rtd_theme>=1.2.0,<2", # Readthedocs.org theme "sphinxcontrib-napoleon>=0.7", # Allow Google-style documentation "sphinx-plausible>=0.1.2,<0.2", # For analytics - "shibuya", + "shibuya", # Documentation website theme ], "release": [ # `release` GitHub Action job uses this "setuptools", # Installation tool From f43c5402717b88bf6cc093c607d0b79c475ee988 Mon Sep 17 00:00:00 2001 From: Juliya Smith Date: Mon, 9 Sep 2024 09:06:39 -0500 Subject: [PATCH 21/25] docs: use new docs flow --- .github/workflows/docs.yml | 91 +++++++++++--------------------------- docs/conf.py | 1 + docs/index.md | 19 -------- docs/index.rst | 1 + 4 files changed, 29 insertions(+), 83 deletions(-) create mode 100644 docs/conf.py delete mode 100644 docs/index.md create mode 100644 docs/index.rst diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 661965ac..5b8e4504 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -1,69 +1,32 @@ name: Docs on: - push: - branches: [main] - release: - types: [released] - pull_request: - types: [opened, synchronize] + push: + branches: [main] + release: + types: [released] + pull_request: + types: [opened, synchronize] jobs: - docs: - runs-on: ubuntu-latest - - permissions: - contents: write - - steps: - - uses: actions/checkout@v4 - - - name: Setup Python - uses: actions/setup-python@v5 - with: - python-version: "3.10" - - - name: Install Dependencies - run: | - python -m pip install --upgrade pip - pip install .[doc] - - - name: Clone ApeDocumentationBuilder - run: git clone https://github.com/ApeWorX/ApeDocumentationBuilder.git - - - name: Set up environment variable - run: echo "GITHUB_REPO=$(echo ${GITHUB_REPOSITORY} | cut -d'/' -f2)" >> $GITHUB_ENV - - - name: Build HTML artifact - run: | - cd ApeDocumentationBuilder - python build_docs.py - - - name: Upload HTML artifact - uses: actions/upload-artifact@v4 - with: - name: DocumentationHTML - path: docs/_build/${{ env.GITHUB_REPO }} - - - name: Commit and publish documentation changes to gh-pages branch - run: | - if [[ "${GITHUB_EVENT_NAME}" =~ "pull_request" ]]; then - echo "skipping 'git commit' step for PR" - else - git clone https://github.com/${GITHUB_REPOSITORY} --branch gh-pages --single-branch gh-pages - cp -r docs/_build/${{ env.GITHUB_REPO }}/* gh-pages/ - cd gh-pages - touch .nojekyll - git config --local user.email "action@github.com" - git config --local user.name "GitHub Action" - git add . - git commit -m "Update documentation" -a || true - fi - - - name: Push changes - uses: ad-m/github-push-action@master - if: ${{ github.event_name != 'pull_request' }} - with: - branch: gh-pages - directory: gh-pages - github_token: ${{ secrets.GITHUB_TOKEN }} + docs: + runs-on: ubuntu-latest + + permissions: + contents: write + + steps: + - uses: actions/checkout@v4 + + - name: Setup Python + uses: actions/setup-python@v5 + with: + python-version: "3.10" + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + # NOTE: This also serves as a test for the action. + - name: Docs + uses: ./ + with: + github-token: ${{ secrets.GITHUB_TOKEN }} diff --git a/docs/conf.py b/docs/conf.py new file mode 100644 index 00000000..9181c1d2 --- /dev/null +++ b/docs/conf.py @@ -0,0 +1 @@ +extensions = ["sphinx_ape"] diff --git a/docs/index.md b/docs/index.md deleted file mode 100644 index 594b37fa..00000000 --- a/docs/index.md +++ /dev/null @@ -1,19 +0,0 @@ -# Vyper Docs - -```{eval-rst} -.. toctree:: - :caption: User Guides - :maxdepth: 1 - - userguides/quickstart -``` - -```{eval-rst} -.. toctree:: - :caption: Python Reference - :maxdepth: 1 - - methoddocs/compiler.md - methoddocs/exceptions.md - methoddocs/interface.md -``` diff --git a/docs/index.rst b/docs/index.rst new file mode 100644 index 00000000..b5590661 --- /dev/null +++ b/docs/index.rst @@ -0,0 +1 @@ +.. dynamic-toc-tree:: From c47dcd88c3244590f67c2d2e8e3f812ca8117421 Mon Sep 17 00:00:00 2001 From: Juliya Smith Date: Mon, 9 Sep 2024 09:08:01 -0500 Subject: [PATCH 22/25] fix: remaining --- CONTRIBUTING.md | 23 +++++++++-------------- setup.py | 9 +-------- 2 files changed, 10 insertions(+), 22 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 4d556c46..59b951b7 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -34,35 +34,30 @@ Committing will now automatically run the local hooks and ensure that your commi ## Running the docs locally -First, clone the repo into your root project directory. +First, make sure you have the docs-related tooling installed: ```bash -git clone https://github.com/ApeWorX/ApeDocumentationBuilder.git +pip install -e .'[doc]' ``` -Then, set up the `GITHUB_REPO` environment variable: +Then, run the following from the root project directory: ```bash -export GITHUB_REPO= -``` - -Next, run the following in the `ApeDocumentationBuilder` directory: - -```bash -cd ApeDocumentationBuilder -python build_docs.py +sphinx-ape build . ``` For the best viewing experience, use a local server: ```bash -python -m http.server --directory "../docs/_build/" --bind 127.0.0.1 1337 +sphinx-ape serve . ``` Then, open your browser to `127.0.0.1:1337` and click the `ape` directory link. -```{note} -Serving from `"docs/_build/"` rather than `"docs/_build/ape"` is necessary to make routing work. +You can also use the `--open` flag to automatically open the docs: + +```bash +sphinx-ape serve . --open ``` ## Pull Requests diff --git a/setup.py b/setup.py index 523099f0..25ec06aa 100644 --- a/setup.py +++ b/setup.py @@ -22,14 +22,7 @@ "mdformat-pyproject>=0.0.1", # Allows configuring in pyproject.toml ], "doc": [ - "pygments>=2.17.0,<3", # Needed for the Vyper lexer - "myst-parser>=1.0.0,<2", # Parse markdown docs - "sphinx-click>=4.4.0,<5", # For documenting CLI - "Sphinx>=6.1.3,<7", # Documentation generator - "sphinx_rtd_theme>=1.2.0,<2", # Readthedocs.org theme - "sphinxcontrib-napoleon>=0.7", # Allow Google-style documentation - "sphinx-plausible>=0.1.2,<0.2", # For analytics - "shibuya", # Documentation website theme + "sphinx-ape @ git+ssh://git@github.com/ApeWorX/sphinx-ape@feat/actionable" ], "release": [ # `release` GitHub Action job uses this "setuptools", # Installation tool From 8aa00da5db4896ea2ac3ce28e860b7003d1fdae0 Mon Sep 17 00:00:00 2001 From: Juliya Smith Date: Mon, 9 Sep 2024 09:23:02 -0500 Subject: [PATCH 23/25] fix: action path --- .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 5b8e4504..9740b2b4 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -27,6 +27,6 @@ jobs: # NOTE: This also serves as a test for the action. - name: Docs - uses: ./ + uses: apeworx/sphinx-ape@main with: github-token: ${{ secrets.GITHUB_TOKEN }} From bd59c5723d7d1183d7fd7096a0e7f06bbf6fd39e Mon Sep 17 00:00:00 2001 From: Juliya Smith Date: Mon, 9 Sep 2024 09:39:09 -0500 Subject: [PATCH 24/25] fix: use release --- setup.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/setup.py b/setup.py index 25ec06aa..c7a2a861 100644 --- a/setup.py +++ b/setup.py @@ -21,9 +21,7 @@ "mdformat-frontmatter>=0.4.1", # Needed for frontmatters-style headers in issue templates "mdformat-pyproject>=0.0.1", # Allows configuring in pyproject.toml ], - "doc": [ - "sphinx-ape @ git+ssh://git@github.com/ApeWorX/sphinx-ape@feat/actionable" - ], + "doc": ["sphinx-ape"], "release": [ # `release` GitHub Action job uses this "setuptools", # Installation tool "wheel", # Packaging tool From 3de3c63d7c67c574840693f36dc20e6f0e6c35d6 Mon Sep 17 00:00:00 2001 From: Juliya Smith Date: Mon, 9 Sep 2024 12:20:56 -0500 Subject: [PATCH 25/25] test: fix test --- tests/conftest.py | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/tests/conftest.py b/tests/conftest.py index e2ce1825..8c8c7dea 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -7,6 +7,7 @@ import pytest import vvm # type: ignore from ape.contracts import ContractContainer +from ape.logging import LogLevel, logger from ape.utils import create_tempdir from click.testing import CliRunner @@ -41,6 +42,14 @@ } +@pytest.fixture(scope="session", autouse=True) +def set_loglevel(): + """ + This keeps the pytest output more relevant. + """ + logger.set_level(LogLevel.WARNING) + + @pytest.fixture(scope="session", autouse=True) def from_tests_dir(): # Makes default project correct. @@ -208,11 +217,14 @@ def cli_runner(): def _get_tb_contract(version: str, project, account): - project.load_contracts() - registry_type = project.get_contract(f"registry_{version}") assert isinstance(registry_type, ContractContainer), "Setup failed - couldn't get container" registry = account.deploy(registry_type) contract = project.get_contract(f"traceback_contract_{version}") + + # Workaround until https://github.com/ApeWorX/ape/pull/2270 is released. + # Use a different account. + account2 = ape.accounts.test_accounts[1] + assert isinstance(contract, ContractContainer), "Setup failed - couldn't get container" - return account.deploy(contract, registry) + return account2.deploy(contract, registry)