From bf6ca9883a8b974d0590339a9d7fc3d12d053b10 Mon Sep 17 00:00:00 2001 From: Fridolin Glatter Date: Mon, 7 Aug 2023 13:50:36 +0200 Subject: [PATCH 1/4] Adapt to new RTD configuration style * Migrate from Advanced Settings -> Default Settings to conf file * Pin versions of dependencies * Manually require latest version of ixmp/main --- .readthedocs.yaml | 26 ++++ .readthedocs.yml | 9 -- doc/requirements.txt | 288 +++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 314 insertions(+), 9 deletions(-) create mode 100644 .readthedocs.yaml delete mode 100644 .readthedocs.yml create mode 100644 doc/requirements.txt diff --git a/.readthedocs.yaml b/.readthedocs.yaml new file mode 100644 index 000000000..19401c31c --- /dev/null +++ b/.readthedocs.yaml @@ -0,0 +1,26 @@ +# Read the Docs configuration file +# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details + +# Required +version: 2 + +# Build PDF & ePub +formats: + - epub + - pdf + +# Set the version of Python and other tools you might need +build: + os: ubuntu-22.04 + tools: + python: "3.11" + +# Build documentation in the docs/ directory with Sphinx +sphinx: + configuration: doc/conf.py + +python: + install: + - requirements: doc/requirements.txt + - method: pip + path: . diff --git a/.readthedocs.yml b/.readthedocs.yml deleted file mode 100644 index 6c7217f8b..000000000 --- a/.readthedocs.yml +++ /dev/null @@ -1,9 +0,0 @@ -version: 2 - -python: - install: - # Install ixmp from latest `main` - - requirements: ci/rtd-requirements.txt - - method: pip - path: . - extra_requirements: [docs] diff --git a/doc/requirements.txt b/doc/requirements.txt new file mode 100644 index 000000000..545c9f447 --- /dev/null +++ b/doc/requirements.txt @@ -0,0 +1,288 @@ +# +# This file is autogenerated by pip-compile with Python 3.10 +# by the following command: +# +# pip-compile --allow-unsafe --extra=docs --output-file=doc/requirements.txt pyproject.toml +# +alabaster==0.7.13 + # via sphinx +anyio==3.7.1 + # via httpcore +babel==2.12.1 + # via sphinx +certifi==2023.7.22 + # via + # httpcore + # httpx + # requests +charset-normalizer==3.2.0 + # via requests +click==8.1.6 + # via + # dask + # ixmp + # message-ix + # message-ix (pyproject.toml) +cloudpickle==2.2.1 + # via dask +contourpy==1.1.0 + # via matplotlib +cycler==0.11.0 + # via matplotlib +dask[array]==2023.8.0 + # via genno +docutils==0.18.1 + # via + # pybtex-docutils + # sphinx + # sphinx-rtd-theme + # sphinxcontrib-bibtex +et-xmlfile==1.1.0 + # via openpyxl +exceptiongroup==1.1.2 + # via anyio +fonttools==4.42.0 + # via matplotlib +fsspec==2023.6.0 + # via dask +genno[compat,graphviz,plotnine,pyam]==1.17.2 + # via + # ixmp + # message-ix + # message-ix (pyproject.toml) +gitdb==4.0.10 + # via gitpython +gitpython==3.1.32 + # via message-ix (pyproject.toml) +graphviz==0.20.1 + # via genno +h11==0.14.0 + # via httpcore +h2==4.1.0 + # via httpx +hpack==4.0.0 + # via h2 +httpcore==0.17.3 + # via httpx +httpx[http2]==0.24.1 + # via pyam-iamc +hyperframe==6.0.1 + # via h2 +iam-units==2022.10.27 + # via pyam-iamc +idna==3.4 + # via + # anyio + # httpx + # requests +imagesize==1.4.1 + # via sphinx +importlib-metadata==6.8.0 + # via + # dask + # pyam-iamc +ixmp[report] @ git+https://github.com/iiasa/ixmp.git@main#egg=ixmp + # via + # manually require latest version of ixmp/main +jinja2==3.1.2 + # via + # numpydoc + # sphinx +jpype1==1.4.1 + # via ixmp +kiwisolver==1.4.4 + # via matplotlib +latexcodec==2.0.1 + # via pybtex +locket==1.0.0 + # via partd +markupsafe==2.1.3 + # via jinja2 +matplotlib==3.7.0 + # via + # mizani + # plotnine + # pyam-iamc + # seaborn +mizani==0.9.2 + # via plotnine +numpy==1.23.5 + # via + # contourpy + # dask + # matplotlib + # message-ix + # message-ix (pyproject.toml) + # mizani + # pandas + # patsy + # plotnine + # pyam-iamc + # scipy + # seaborn + # statsmodels + # wquantiles + # xarray +numpydoc==1.5.0 + # via message-ix (pyproject.toml) +openpyxl==3.1.2 + # via + # ixmp + # pyam-iamc +packaging==23.1 + # via + # dask + # jpype1 + # matplotlib + # setuptools-scm + # sphinx + # statsmodels + # xarray +pandas==2.0.3 + # via + # genno + # ixmp + # message-ix + # message-ix (pyproject.toml) + # mizani + # plotnine + # pyam-iamc + # seaborn + # statsmodels + # xarray +partd==1.4.0 + # via dask +patsy==0.5.3 + # via + # plotnine + # statsmodels +pillow==10.0.0 + # via matplotlib +pint==0.22 + # via + # genno + # iam-units + # ixmp + # pyam-iamc +plotnine==0.12.2 + # via genno +pyam-iamc==1.9.0 + # via genno +pybtex==0.24.0 + # via + # pybtex-docutils + # sphinxcontrib-bibtex +pybtex-docutils==1.0.2 + # via sphinxcontrib-bibtex +pygments==2.16.1 + # via sphinx +pyjwt==2.8.0 + # via pyam-iamc +pyparsing==3.1.1 + # via matplotlib +python-dateutil==2.8.2 + # via + # matplotlib + # pandas +pytz==2023.3 + # via pandas +pyyaml==6.0.1 + # via + # dask + # genno + # ixmp + # message-ix + # message-ix (pyproject.toml) + # pyam-iamc + # pybtex +requests==2.31.0 + # via + # pyam-iamc + # sphinx +scipy==1.11.1 + # via + # message-ix + # message-ix (pyproject.toml) + # mizani + # plotnine + # pyam-iamc + # statsmodels +seaborn==0.12.2 + # via pyam-iamc +setuptools-scm==7.1.0 + # via pyam-iamc +six==1.16.0 + # via + # latexcodec + # patsy + # pyam-iamc + # pybtex + # python-dateutil +smmap==5.0.0 + # via gitdb +sniffio==1.3.0 + # via + # anyio + # httpcore + # httpx +snowballstemmer==2.2.0 + # via sphinx +sphinx==6.2.1 + # via + # message-ix (pyproject.toml) + # numpydoc + # sphinx-rtd-theme + # sphinxcontrib-bibtex + # sphinxcontrib-jquery +sphinx-rtd-theme==1.2.2 + # via message-ix (pyproject.toml) +sphinxcontrib-applehelp==1.0.4 + # via sphinx +sphinxcontrib-bibtex==2.5.0 + # via message-ix (pyproject.toml) +sphinxcontrib-devhelp==1.0.2 + # via sphinx +sphinxcontrib-htmlhelp==2.0.1 + # via sphinx +sphinxcontrib-jquery==4.1 + # via sphinx-rtd-theme +sphinxcontrib-jsmath==1.0.1 + # via sphinx +sphinxcontrib-qthelp==1.0.3 + # via sphinx +sphinxcontrib-serializinghtml==1.1.5 + # via sphinx +statsmodels==0.14.0 + # via plotnine +tomli==2.0.1 + # via setuptools-scm +toolz==0.12.0 + # via + # dask + # partd +typing-extensions==4.7.1 + # via + # pint + # setuptools-scm +tzdata==2023.3 + # via pandas +urllib3==2.0.4 + # via requests +wquantiles==0.6 + # via pyam-iamc +xarray==2023.7.0 + # via + # genno + # ixmp +xlsxwriter==3.1.2 + # via pyam-iamc +zipp==3.16.2 + # via importlib-metadata + +# The following packages are considered to be unsafe in a requirements file: +setuptools==68.0.0 + # via + # genno + # iam-units + # pyam-iamc + # setuptools-scm From 99b7b896f45849b8624bec92e314f35d3d4f97d6 Mon Sep 17 00:00:00 2001 From: Fridolin Glatter Date: Wed, 9 Aug 2023 11:30:34 +0200 Subject: [PATCH 2/4] Pin only necessary packages in doc/requirements.in * Update doc/requirements.txt accordingly * Install with [docs] again via RTD config * Try without latest version of ixmp/main --- .readthedocs.yaml | 2 + doc/requirements.in | 8 ++ doc/requirements.txt | 223 +++---------------------------------------- 3 files changed, 21 insertions(+), 212 deletions(-) create mode 100644 doc/requirements.in diff --git a/.readthedocs.yaml b/.readthedocs.yaml index 19401c31c..140ad92b8 100644 --- a/.readthedocs.yaml +++ b/.readthedocs.yaml @@ -24,3 +24,5 @@ python: - requirements: doc/requirements.txt - method: pip path: . + extra_requirements: + - docs diff --git a/doc/requirements.in b/doc/requirements.in new file mode 100644 index 000000000..c0bfd65e4 --- /dev/null +++ b/doc/requirements.in @@ -0,0 +1,8 @@ +# Input file for pip-compile +# Only specify the packages necessary for [docs] + +gitpython==3.1.32 +numpydoc==1.5.0 +sphinx==6.2.1 +sphinx-rtd-theme==1.2.2 +sphinxcontrib-bibtex==2.5.0 \ No newline at end of file diff --git a/doc/requirements.txt b/doc/requirements.txt index 545c9f447..f34f6e466 100644 --- a/doc/requirements.txt +++ b/doc/requirements.txt @@ -2,172 +2,42 @@ # This file is autogenerated by pip-compile with Python 3.10 # by the following command: # -# pip-compile --allow-unsafe --extra=docs --output-file=doc/requirements.txt pyproject.toml +# pip-compile --allow-unsafe --config=pyproject.toml --output-file=doc/requirements.txt doc/requirements.in # alabaster==0.7.13 # via sphinx -anyio==3.7.1 - # via httpcore babel==2.12.1 # via sphinx certifi==2023.7.22 - # via - # httpcore - # httpx - # requests + # via requests charset-normalizer==3.2.0 # via requests -click==8.1.6 - # via - # dask - # ixmp - # message-ix - # message-ix (pyproject.toml) -cloudpickle==2.2.1 - # via dask -contourpy==1.1.0 - # via matplotlib -cycler==0.11.0 - # via matplotlib -dask[array]==2023.8.0 - # via genno docutils==0.18.1 # via # pybtex-docutils # sphinx # sphinx-rtd-theme # sphinxcontrib-bibtex -et-xmlfile==1.1.0 - # via openpyxl -exceptiongroup==1.1.2 - # via anyio -fonttools==4.42.0 - # via matplotlib -fsspec==2023.6.0 - # via dask -genno[compat,graphviz,plotnine,pyam]==1.17.2 - # via - # ixmp - # message-ix - # message-ix (pyproject.toml) gitdb==4.0.10 # via gitpython gitpython==3.1.32 - # via message-ix (pyproject.toml) -graphviz==0.20.1 - # via genno -h11==0.14.0 - # via httpcore -h2==4.1.0 - # via httpx -hpack==4.0.0 - # via h2 -httpcore==0.17.3 - # via httpx -httpx[http2]==0.24.1 - # via pyam-iamc -hyperframe==6.0.1 - # via h2 -iam-units==2022.10.27 - # via pyam-iamc + # via -r doc/requirements.in idna==3.4 - # via - # anyio - # httpx - # requests + # via requests imagesize==1.4.1 # via sphinx -importlib-metadata==6.8.0 - # via - # dask - # pyam-iamc -ixmp[report] @ git+https://github.com/iiasa/ixmp.git@main#egg=ixmp - # via - # manually require latest version of ixmp/main jinja2==3.1.2 # via # numpydoc # sphinx -jpype1==1.4.1 - # via ixmp -kiwisolver==1.4.4 - # via matplotlib latexcodec==2.0.1 # via pybtex -locket==1.0.0 - # via partd markupsafe==2.1.3 # via jinja2 -matplotlib==3.7.0 - # via - # mizani - # plotnine - # pyam-iamc - # seaborn -mizani==0.9.2 - # via plotnine -numpy==1.23.5 - # via - # contourpy - # dask - # matplotlib - # message-ix - # message-ix (pyproject.toml) - # mizani - # pandas - # patsy - # plotnine - # pyam-iamc - # scipy - # seaborn - # statsmodels - # wquantiles - # xarray numpydoc==1.5.0 - # via message-ix (pyproject.toml) -openpyxl==3.1.2 - # via - # ixmp - # pyam-iamc + # via -r doc/requirements.in packaging==23.1 - # via - # dask - # jpype1 - # matplotlib - # setuptools-scm - # sphinx - # statsmodels - # xarray -pandas==2.0.3 - # via - # genno - # ixmp - # message-ix - # message-ix (pyproject.toml) - # mizani - # plotnine - # pyam-iamc - # seaborn - # statsmodels - # xarray -partd==1.4.0 - # via dask -patsy==0.5.3 - # via - # plotnine - # statsmodels -pillow==10.0.0 - # via matplotlib -pint==0.22 - # via - # genno - # iam-units - # ixmp - # pyam-iamc -plotnine==0.12.2 - # via genno -pyam-iamc==1.9.0 - # via genno + # via sphinx pybtex==0.24.0 # via # pybtex-docutils @@ -176,70 +46,31 @@ pybtex-docutils==1.0.2 # via sphinxcontrib-bibtex pygments==2.16.1 # via sphinx -pyjwt==2.8.0 - # via pyam-iamc -pyparsing==3.1.1 - # via matplotlib -python-dateutil==2.8.2 - # via - # matplotlib - # pandas -pytz==2023.3 - # via pandas pyyaml==6.0.1 - # via - # dask - # genno - # ixmp - # message-ix - # message-ix (pyproject.toml) - # pyam-iamc - # pybtex + # via pybtex requests==2.31.0 - # via - # pyam-iamc - # sphinx -scipy==1.11.1 - # via - # message-ix - # message-ix (pyproject.toml) - # mizani - # plotnine - # pyam-iamc - # statsmodels -seaborn==0.12.2 - # via pyam-iamc -setuptools-scm==7.1.0 - # via pyam-iamc + # via sphinx six==1.16.0 # via # latexcodec - # patsy - # pyam-iamc # pybtex - # python-dateutil smmap==5.0.0 # via gitdb -sniffio==1.3.0 - # via - # anyio - # httpcore - # httpx snowballstemmer==2.2.0 # via sphinx sphinx==6.2.1 # via - # message-ix (pyproject.toml) + # -r doc/requirements.in # numpydoc # sphinx-rtd-theme # sphinxcontrib-bibtex # sphinxcontrib-jquery sphinx-rtd-theme==1.2.2 - # via message-ix (pyproject.toml) + # via -r doc/requirements.in sphinxcontrib-applehelp==1.0.4 # via sphinx sphinxcontrib-bibtex==2.5.0 - # via message-ix (pyproject.toml) + # via -r doc/requirements.in sphinxcontrib-devhelp==1.0.2 # via sphinx sphinxcontrib-htmlhelp==2.0.1 @@ -252,37 +83,5 @@ sphinxcontrib-qthelp==1.0.3 # via sphinx sphinxcontrib-serializinghtml==1.1.5 # via sphinx -statsmodels==0.14.0 - # via plotnine -tomli==2.0.1 - # via setuptools-scm -toolz==0.12.0 - # via - # dask - # partd -typing-extensions==4.7.1 - # via - # pint - # setuptools-scm -tzdata==2023.3 - # via pandas urllib3==2.0.4 # via requests -wquantiles==0.6 - # via pyam-iamc -xarray==2023.7.0 - # via - # genno - # ixmp -xlsxwriter==3.1.2 - # via pyam-iamc -zipp==3.16.2 - # via importlib-metadata - -# The following packages are considered to be unsafe in a requirements file: -setuptools==68.0.0 - # via - # genno - # iam-units - # pyam-iamc - # setuptools-scm From fc4a90f3a9727231531c79a6c048c5b27dc9b95a Mon Sep 17 00:00:00 2001 From: Fridolin Glatter Date: Wed, 9 Aug 2023 11:43:18 +0200 Subject: [PATCH 3/4] Add step to install latest ixmp/main version in RTD config --- .readthedocs.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.readthedocs.yaml b/.readthedocs.yaml index 140ad92b8..5d36c5da7 100644 --- a/.readthedocs.yaml +++ b/.readthedocs.yaml @@ -26,3 +26,4 @@ python: path: . extra_requirements: - docs + - ci/rtd-requirements.txt From 75158d171d5136b233098a5776047abf83c2ef45 Mon Sep 17 00:00:00 2001 From: Fridolin Glatter Date: Wed, 9 Aug 2023 11:48:08 +0200 Subject: [PATCH 4/4] Put ixmp/main install step in RTD config in correct place --- .readthedocs.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.readthedocs.yaml b/.readthedocs.yaml index 5d36c5da7..4989aa24a 100644 --- a/.readthedocs.yaml +++ b/.readthedocs.yaml @@ -22,8 +22,8 @@ sphinx: python: install: - requirements: doc/requirements.txt + - requirements: ci/rtd-requirements.txt - method: pip path: . extra_requirements: - docs - - ci/rtd-requirements.txt