holoviews icon indicating copy to clipboard operation
holoviews copied to clipboard

Docs: Broken links

Open fohrloop opened this issue 1 year ago • 14 comments

Some links in the docs are not working

See, for example bokeh/Overlay page:

image

Seems that the "Composing_Elements" tries to be a link. Looking at the source code in examples/reference/containers/bokeh/Overlay.ipynb, it is trying to be a link:

[Composing_Elements](../../../user_guide/02-Composing_Elements.ipynb)

The link works even at https://github.com/holoviz/holoviews/blob/main/examples/reference/containers/bokeh/Overlay.ipynb but not when deployed to https://holoviews.org/reference/containers/bokeh/Overlay.html.

There is another similar non-working link on the matplotlib Overlay page: https://holoviews.org/reference/containers/matplotlib/Overlay.html.

Note also that there is a working link to the Composing_Elements page at https://holoviews.org/user_guide/Annotating_Data.html. The source code for that is located at examples/user_guide/01-Annotating_Data.ipynb, and it has a link pointing to

[Composing_Elements](./02-Composing_Elements.ipynb)

Is something breaking the links in the docs build process?

  • [x] I may be interested in making a pull request to address this

fohrloop avatar Jan 30 '24 09:01 fohrloop

You are welcome to tackle this. Unfortunately, the docs are somewhat hard to build locally, and I don't know how much I can help you in the short term.

I think this issue overlaps with https://github.com/holoviz/holoviews/issues/5676

hoxbro avatar Feb 01 '24 16:02 hoxbro

You were not kidding when you said the docs are somewhat hard to build locally. I wasn't expecting this kind of fight :D Anyway, I think I got the build working. I was following the .github/workflows/docs.yaml. I did not want to install conda so here are instructions for CPython pip users.

Setting up environment for building docs locally

Prerequisites

  • CPython 3.10 (>=3.12 will not work. See Notes below)
  • Local copy of holoviews repository with all the tags fetched. To fetch tags, run
git fetch --tags https://github.com/holoviz/holoviews.git
  • First, edit pyproject toml: build-system.requires setuptools requirement to be <64 (see Notes below for reasons):
[build-system]
requires = [
    "param >=1.12.0,<3.0",
    "pyct >=0.4.4",
    "setuptools >=30.3.0,<64",
]
  • Run the following
export DESC="Documentation build"
export MPLBACKEND="Agg"
export MOZ_HEADLESS=1
export PANEL_EMBED="true"
export PANEL_EMBED_JSON="true"
export PANEL_EMBED_JSON_PREFIX="json"

python -m pip venv .venv
source .venv/bin/activate

python -m pip install "setuptools<64" pyctdev doit nbsite matplotlib datashader plotly kaleido networkx scipy selenium pooch cftime scikit-image
python -m pip install -e . 

bokeh sampledata
nbsite generate-rst --org holoviz --project-name holoviews
python ./doc/generate_modules.py holoviews -d ./doc/reference_manual -n holoviews -e tests
nbsite build --what=html --output=builtdocs --org holoviz --project-name holoviews
  • If you get any errors, refer to the Notes below
  • The pip install list was filled by trial and error. Not sure how to keep this list in sync. I wonder if it would be easy to extract the list of required packages from the holoviz-dev/holoviz_tasks/[email protected] task? (I assume it installs all dependencies)
Notes

Notes

  1. Setuptools must be <66 in the build-system.requires for "pip install -e ." Otherwise you'll get InvalidVersion exception. Ref: https://github.com/pypa/setuptools/issues/ -> Issue 3772

  2. Setuptools must be <65 in the build-system.requires for "pip install -e." because otherwise you'll get

WARNING: Built editable for holoviews is invalid: Metadata 1.2 mandates PEP 440 version, but 'None' is not
Failed to build holoviews
ERROR: Could not build wheels for holoviews, which is required to install pyproject.toml-based projects
  1. "pip install -e ." will not work on Python >=3.12 since AttributeError: module 'pkgutil' has no attribute 'ImpImporter' Ref: https://stackoverflow.com/questions/77364550/attributeerror-module-pkgutil-has-no-attribute-impimporter-did-you-mean

  2. The geckodriver must be of specific version. If you see something like this in the middle of the nbsite build output

The geckodriver version (0.33.0) detected in PATH at /snap/bin/geckodriver might not be compatible with the detected firefox version (122.0); currently, geckodriver 0.34.0 is recommended for firefox 122.*, so it is advised to delete the driver in PATH and retry

Then you need to install a supported versions of Firefox+geckodriver. Easiest way on Linux is to remove a snap version of Firefox and install it from https://www.mozilla.org/en-US/firefox/download/ directly, and install supported version of geckodriver. Here is a simple test script for debugging:

from selenium import webdriver
browser = webdriver.Firefox()
  1. Tip: Sometimes it's useful to use sphinx directly instead of nbsite build when debugging
sphinx-build -b html /home/niko/code/holoviews/doc/ builtdocs
  1. Truncated file errors

If you get errors like this

Extension error (nbsite.gallery.gen):
Handler <function generate_gallery_rst at 0x7fb84ec7df30> for event 'builder-inited' threw an exception (exception: image file is truncated)

If means that you've interrupted the build process in the middle of image creation and you have a corrupted image file. Either remove all the images / static files, or edit your .venv/lib/python3.10/site-packages/PIL/ImageFile.py just before the error message saying "image file is truncated". For example: print('Bad image file', self.filename), or add a breakpoint. Then, remove the corrupted image file.

  1. InvalidVersion: Invalid version: 'None'

If you're getting this in the middle of the build, check that you have the git tags fetched. The

python -c "import holoviews as hv; print(hv.__version__)"

should show something else than None.

The build is taking eternity on my laptop, so I better go to sleep at this point. I wonder if it's possible somehow to just build a part of the documentation?

PS. You could get more contributors if it would be easier to set up the development environment :-)

Edit: Added cftime & scikit-image to pip install command

fohrloop avatar Feb 01 '24 23:02 fohrloop

You could get more contributors if it would be easier to set up the development environment :-)

You are so absolutely right. I plan on improving the experience in setting up the developer environment in the near future.

The build is taking eternity on my laptop, so I better go to sleep at this point. I wonder if it's possible somehow to just build a part of the documentation?

Yes. This is another thing we want to improve. My hack is deleting all the notebooks which do not need to be rendered.

hoxbro avatar Feb 02 '24 08:02 hoxbro

Thanks for the tip, I try to delete the notebooks that I'm not actively needing. I noticed from yesterday's logs that I still was missing cftime. Added that to the instructions.

hv.__version__ is "None"

In addition, there was one bizarre error caused by holoviews.__version__ being "None". It breaks Renderer.static_html(self, obj, fmt, template) since there is if backend == 'bokeh' or Version(str(hv.__version__)) >= Version('1.13.0'): check in panel/pane/holoviews.py:512 which assumes the hv.__version__ to be something else. Full traceback below

Full traceback for InvalidVersion: Invalid version: 'None'
INFO: Writing evaluated notebook to /home/niko/code/holoviews/doc/user_guide/Plots_and_Renderers.ipynb

An error occurred while executing the following cell:
------------------
html = renderer.static_html(holomap)
------------------


---------------------------------------------------------------------------
InvalidVersion                            Traceback (most recent call last)
Cell In[22], line 1
----> 1 html = renderer.static_html(holomap)

File ~/code/holoviews/holoviews/plotting/renderer.py:446, in Renderer.static_html(self, obj, fmt, template)
    440 """
    441 Generates a static HTML with the rendered object in the
    442 supplied format. Allows supplying a template formatting string
    443 with fields to interpolate 'js', 'css' and the main 'html'.
    444 """
    445 html_bytes = StringIO()
--> 446 self.save(obj, html_bytes, fmt)
    447 html_bytes.seek(0)
    448 return html_bytes.read()

File ~/code/holoviews/holoviews/plotting/renderer.py:596, in Renderer.save(self_or_cls, obj, basename, fmt, key, info, options, resources, title, **kwargs)
    594         if fmt in MIME_TYPES:
    595             basename = f"{basename}.{fmt}"
--> 596     plot.layout.save(basename, embed=True, resources=resources, title=title)
    597     return
    599 rendered = self_or_cls(plot, fmt)

File ~/code/holoviews/.venv/lib/python3.10/site-packages/panel/viewable.py:993, in Viewable.save(self, filename, title, resources, template, template_variables, embed, max_states, max_opts, embed_json, json_prefix, save_path, load_path, progress, embed_states, as_png, **kwargs)
    947 def save(
    948     self, filename: str | os.PathLike | IO, title: Optional[str] = None,
    949     resources: Resources | None = None, template: str | Template | None = None,
   (...)
    954     as_png: bool | None = None, **kwargs
    955 ) -> None:
    956     """
    957     Saves Panel objects to file.
    958 
   (...)
    991       string and ends with png.
    992     """
--> 993     return save(
    994         self, filename, title, resources, template,
    995         template_variables, embed, max_states, max_opts,
    996         embed_json, json_prefix, save_path, load_path, progress,
    997         embed_states, as_png, **kwargs
    998     )

File ~/code/holoviews/.venv/lib/python3.10/site-packages/panel/io/save.py:260, in save(panel, filename, title, resources, template, template_variables, embed, max_states, max_opts, embed_json, json_prefix, save_path, load_path, progress, embed_states, as_png, **kwargs)
    258     model = doc
    259 else:
--> 260     model = panel.get_root(doc, comm)
    261     if embed:
    262         embed_state(
    263             panel, model, doc, max_states, max_opts, embed_json,
    264             json_prefix, save_path, load_path, progress, embed_states
    265         )

File ~/code/holoviews/.venv/lib/python3.10/site-packages/panel/layout/base.py:311, in Panel.get_root(self, doc, comm, preprocess)
    307 def get_root(
    308     self, doc: Optional[Document] = None, comm: Optional[Comm] = None,
    309     preprocess: bool = True
    310 ) -> Model:
--> 311     root = super().get_root(doc, comm, preprocess)
    312     # ALERT: Find a better way to handle this
    313     if hasattr(root, 'styles') and 'overflow-x' in root.styles:

File ~/code/holoviews/.venv/lib/python3.10/site-packages/panel/viewable.py:666, in Renderable.get_root(self, doc, comm, preprocess)
    664 wrapper = self._design._wrapper(self)
    665 if wrapper is self:
--> 666     root = self._get_model(doc, comm=comm)
    667     if preprocess:
    668         self._preprocess(root)

File ~/code/holoviews/.venv/lib/python3.10/site-packages/panel/layout/base.py:177, in Panel._get_model(self, doc, root, parent, comm)
    175 root = root or model
    176 self._models[root.ref['id']] = (model, parent)
--> 177 objects, _ = self._get_objects(model, [], doc, root, comm)
    178 props = self._get_properties(doc)
    179 props[self._property_mapping['objects']] = objects

    179 props[self._property_mapping['objects']] = objects

File ~/code/holoviews/.venv/lib/python3.10/site-packages/panel/layout/base.py:159, in Panel._get_objects(self, model, old_objects, doc, root, comm)
    157 else:
    158     try:
--> 159         child = pane._get_model(doc, root, model, comm)
    160     except RerenderError as e:
    161         if e.layout is not None and e.layout is not self:

File ~/code/holoviews/.venv/lib/python3.10/site-packages/panel/pane/holoviews.py:423, in HoloViews._get_model(self, doc, root, parent, comm)
    421     plot = self.object
    422 else:
--> 423     plot = self._render(doc, comm, root)
    425 plot.pane = self
    426 backend = plot.renderer.backend

File ~/code/holoviews/.venv/lib/python3.10/site-packages/panel/pane/holoviews.py:512, in HoloViews._render(self, doc, comm, root)
    509         renderer = renderer.instance(**params)
    511 kwargs = {'margin': self.margin}
--> 512 if backend == 'bokeh' or Version(str(hv.__version__)) >= Version('1.13.0'):
    513     kwargs['doc'] = doc
    514     kwargs['root'] = root

File ~/code/holoviews/.venv/lib/python3.10/site-packages/packaging/version.py:200, in Version.__init__(self, version)
    198 match = self._regex.search(version)
    199 if not match:
--> 200     raise InvalidVersion(f"Invalid version: '{version}'")
    202 # Store the parsed out pieces of the version
    203 self._version = _Version(
    204     epoch=int(match.group("epoch")) if match.group("epoch") else 0,
    205     release=tuple(int(i) for i in match.group("release").split(".")),
   (...)
    211     local=_parse_local_version(match.group("local")),
    212 )

InvalidVersion: Invalid version: 'None'

When checking how this hv.__version__ is defined, I see:

# holoviews/__init__.py

import param

__version__ = str(param.version.Version(fpath=__file__, archive_commit="$Format:%h$",
                                        reponame="holoviews"))

When importing holoviews __file__ is '/home/niko/code/holoviews/holoviews/__init__.py'. Is there a problem in calculating the version if on editable install? Could the

        if backend == 'bokeh' or Version(str(hv.__version__)) >= Version('1.13.0'):
            kwargs['doc'] = doc
            kwargs['root'] = root
            if comm:
                kwargs['comm'] = comm

be simply

        if (
            backend == "bokeh"
            or (hv.__version__ != "None"
            and (Version(str(hv.__version__)) >= Version("1.13.0")))
        ):
            kwargs["doc"] = doc
            kwargs["root"] = root
            if comm:
                kwargs["comm"] = comm

?

fohrloop avatar Feb 02 '24 17:02 fohrloop

I think it is because you are missing the git tags which are used to determine the version, try git fetch --all --tags.

hoxbro avatar Feb 02 '24 17:02 hoxbro

Thanks. Seems that in forked repos the tags are not coming automatically. The git fetch -all --tags did not fetch the tags, presumably because my local repo knows nothing about the holoviz repo (I haven't set it up as a remote). Fetching directly

git fetch --tags https://github.com/holoviz/holoviews.git

did update the tags, which also made hv.__version__ work:

(.venv) niko@niko-ubuntu-home:~/code/holoviews$ python -c "import holoviews as hv; print(hv.__version__)"
1.18.2a2.post36+geebc6c1e4-dirty

Thank you! I can update the instructions.

fohrloop avatar Feb 02 '24 17:02 fohrloop

@Hoxbro by deleting notebooks, did you mean deleting the .ipynb or the .rst files (or both)?

How did you get the warnings visible in Issue 5676? I can only see

copying static files... done
copying extra files... done
dumping search index in English (code: en)... done
dumping object inventory... done
build succeeded, 224 warnings.

but no warnings printed anywhere.

fohrloop avatar Feb 02 '24 18:02 fohrloop

Notebooks.

I can't remember. I think they came from running the docs commands.

hoxbro avatar Feb 02 '24 18:02 hoxbro

Seems that I did not warnings because I only saved stdout and the warnings are directed to stderr. I ran the docs build process again (interrupted accidentally just before finishing). Anyway, there are some interesting things visible.

Let's have a look to all the myst warnings: (skip the ones pointing to #anchor. Although these should probably be checked, too):

All WARNING: 'myst' reference target not found
(.venv) niko@niko-ubuntu-home:~/code/holoviews$ cat logs.txt | grep -n "WARNING: 'myst' reference target not found:" | grep -v "target not found: #"
8555:/home/niko/code/holoviews/doc/gallery/demos/bokeh/dragon_curve.ipynb:10002: WARNING: 'myst' reference target not found: ../../topics/geometry/lsystems.ipynb
8556:/home/niko/code/holoviews/doc/gallery/demos/bokeh/dragon_curve.ipynb:40002: WARNING: 'myst' reference target not found: ../../topics/geometry/lsystems.ipynb
8557:/home/niko/code/holoviews/doc/gallery/demos/bokeh/iris_splom_example.ipynb:10006: WARNING: 'myst' reference target not found: ../matplotlib/iris_splot_example.ipynb
8558:/home/niko/code/holoviews/doc/gallery/demos/bokeh/nyc_airport_connections.ipynb:10004: WARNING: 'myst' reference target not found: ../matplotlib/nyc_taxi_connections.ipynb
8559:/home/niko/code/holoviews/doc/gallery/demos/bokeh/nyc_radial_heatmap.ipynb:10004: WARNING: 'myst' reference target not found: ../matplotlib/radial_heatmap.ipynb
8560:/home/niko/code/holoviews/doc/gallery/demos/bokeh/step_chart.ipynb:10004: WARNING: 'myst' reference target not found: ../bokeh/step_chart_example.ipynb
8561:/home/niko/code/holoviews/doc/gallery/demos/matplotlib/bachelors_degrees_by_gender.ipynb:10006: WARNING: 'myst' reference target not found: ../bokeh/bachelors_degress_by_gender.ipynb
8562:/home/niko/code/holoviews/doc/gallery/demos/matplotlib/dragon_curve.ipynb:10002: WARNING: 'myst' reference target not found: ../../topics/geometry/lsystems.ipynb
8563:/home/niko/code/holoviews/doc/gallery/demos/matplotlib/dragon_curve.ipynb:40002: WARNING: 'myst' reference target not found: ../../topics/geometry/lsystems.ipynb
8564:/home/niko/code/holoviews/doc/gallery/demos/matplotlib/nyc_airport_connections.ipynb:10004: WARNING: 'myst' reference target not found: ../bokeh/nyc_taxi_connections.ipynb
8565:/home/niko/code/holoviews/doc/gallery/demos/matplotlib/nyc_radial_heatmap.ipynb:10004: WARNING: 'myst' reference target not found: ../bokeh/radial_heatmap.ipynb
8566:/home/niko/code/holoviews/doc/getting_started/2-Customization.ipynb:140004: WARNING: 'myst' reference target not found: Applying_Customizations.rst
8567:/home/niko/code/holoviews/doc/getting_started/2-Customization.ipynb:140011: WARNING: 'myst' reference target not found: Applying_Customizations.rst
8568:/home/niko/code/holoviews/doc/getting_started/2-Customization.ipynb:230002: WARNING: 'myst' reference target not found: Applying_Customizations.rst
8569:/home/niko/code/holoviews/doc/getting_started/2-Customization.ipynb:280002: WARNING: 'myst' reference target not found: Applying_Customizations.rst
8570:/home/niko/code/holoviews/doc/getting_started/2-Customization.ipynb:330002: WARNING: 'myst' reference target not found: Applying_Customizations.rst
8571:/home/niko/code/holoviews/doc/getting_started/2-Customization.ipynb:340006: WARNING: 'myst' reference target not found: Annotating_Data.rst
8572:/home/niko/code/holoviews/doc/getting_started/4-Gridded_Datasets.ipynb:100004: WARNING: 'myst' reference target not found: Applying_Customizations.rst
8573:/home/niko/code/holoviews/doc/getting_started/4-Gridded_Datasets.ipynb:140006: WARNING: 'myst' reference target not found: ./5-Live_Data.ipynb
8574:/home/niko/code/holoviews/doc/getting_started/4-Gridded_Datasets.ipynb:140006: WARNING: 'myst' reference target not found: Data_Pipelines.rst
8575:/home/niko/code/holoviews/doc/getting_started/1-Introduction.ipynb:10009: WARNING: 'myst' reference target not found: ../user_guide/
8576:/home/niko/code/holoviews/doc/getting_started/1-Introduction.ipynb:150004: WARNING: 'myst' reference target not found: Applying_Customizations.rst
8577:/home/niko/code/holoviews/doc/getting_started/1-Introduction.ipynb:200002: WARNING: 'myst' reference target not found: 4-Gridded_Datasets.ipynb
8578:/home/niko/code/holoviews/doc/getting_started/1-Introduction.ipynb:220006: WARNING: 'myst' reference target not found: Applying_Customizations.rst
8579:/home/niko/code/holoviews/doc/getting_started/5-Live_Data.ipynb:240004: WARNING: 'myst' reference target not found: ../reference/index.html#streams
8580:/home/niko/code/holoviews/doc/getting_started/5-Live_Data.ipynb:250006: WARNING: 'myst' reference target not found: ../user_guide/17-Dashboards.ipynb
8581:/home/niko/code/holoviews/doc/getting_started/5-Live_Data.ipynb:250024: WARNING: 'myst' reference target not found: ../user_guide/
8582:/home/niko/code/holoviews/doc/getting_started/5-Live_Data.ipynb:250024: WARNING: 'myst' reference target not found: ../reference/
8583:/home/niko/code/holoviews/doc/getting_started/5-Live_Data.ipynb:250024: WARNING: 'myst' reference target not found: ../gallery/
8584:/home/niko/code/holoviews/doc/getting_started/3-Tabular_Datasets.ipynb:10007: WARNING: 'myst' reference target not found: ../user_guide/08-Tabular_Datasets.ipynb
8585:/home/niko/code/holoviews/doc/reference/containers/bokeh/DynamicMap.ipynb:30002: WARNING: 'myst' reference target not found: ../../../user_guide/06-Building_Composite_Objects.ipynb
8586:/home/niko/code/holoviews/doc/reference/containers/bokeh/DynamicMap.ipynb:30002: WARNING: 'myst' reference target not found: Live_Data.rst
8587:/home/niko/code/holoviews/doc/reference/containers/bokeh/DynamicMap.ipynb:80004: WARNING: 'myst' reference target not found: Live_Data.rst
8588:/home/niko/code/holoviews/doc/reference/containers/bokeh/GridSpace.ipynb:30002: WARNING: 'myst' reference target not found: Building_Composite_Objects.rst
8589:/home/niko/code/holoviews/doc/reference/containers/bokeh/HoloMap.ipynb:30002: WARNING: 'myst' reference target not found: Building_Composite_Objects.rst
8590:/home/niko/code/holoviews/doc/reference/containers/bokeh/Layout.ipynb:30005: WARNING: 'myst' reference target not found: ../../../user_guide/06-Building_Composite_Objects.ipynb
8591:/home/niko/code/holoviews/doc/reference/containers/bokeh/Layout.ipynb:70004: WARNING: 'myst' reference target not found: Composing_Elements.rst
8592:/home/niko/code/holoviews/doc/reference/containers/bokeh/NdLayout.ipynb:30002: WARNING: 'myst' reference target not found: Building_Composite_Objects.rst
8593:/home/niko/code/holoviews/doc/reference/containers/bokeh/NdOverlay.ipynb:30002: WARNING: 'myst' reference target not found: Building_Composite_Objects.rst
8594:/home/niko/code/holoviews/doc/reference/containers/bokeh/NdOverlay.ipynb:90002: WARNING: 'myst' reference target not found: ../../../user_guide/04-Style_Mapping.ipynb#Cycles-and-Palettes
8595:/home/niko/code/holoviews/doc/reference/containers/bokeh/Overlay.ipynb:30005: WARNING: 'myst' reference target not found: ../../../user_guide/06-Building_Composite_Objects.ipynb
8596:/home/niko/code/holoviews/doc/reference/containers/bokeh/Overlay.ipynb:70004: WARNING: 'myst' reference target not found: Composing_Elements.rst
8597:/home/niko/code/holoviews/doc/reference/containers/matplotlib/DynamicMap.ipynb:30002: WARNING: 'myst' reference target not found: ../../../user_guide/06-Building_Composite_Objects.ipynb
8598:/home/niko/code/holoviews/doc/reference/containers/matplotlib/DynamicMap.ipynb:30002: WARNING: 'myst' reference target not found: Live_Data.rst
8599:/home/niko/code/holoviews/doc/reference/containers/matplotlib/DynamicMap.ipynb:80004: WARNING: 'myst' reference target not found: Live_Data.rst
8600:/home/niko/code/holoviews/doc/reference/containers/matplotlib/GridSpace.ipynb:30002: WARNING: 'myst' reference target not found: Building_Composite_Objects.rst
8601:/home/niko/code/holoviews/doc/reference/containers/matplotlib/HoloMap.ipynb:30002: WARNING: 'myst' reference target not found: Building_Composite_Objects.rst
8602:/home/niko/code/holoviews/doc/reference/containers/matplotlib/Layout.ipynb:30005: WARNING: 'myst' reference target not found: ../../../user_guide/06-Building_Composite_Objects.ipynb
8603:/home/niko/code/holoviews/doc/reference/containers/matplotlib/Layout.ipynb:70004: WARNING: 'myst' reference target not found: Composing_Elements.rst
8604:/home/niko/code/holoviews/doc/reference/containers/matplotlib/NdLayout.ipynb:30002: WARNING: 'myst' reference target not found: Building_Composite_Objects.rst
8605:/home/niko/code/holoviews/doc/reference/containers/matplotlib/NdOverlay.ipynb:30002: WARNING: 'myst' reference target not found: Building_Composite_Objects.rst
8606:/home/niko/code/holoviews/doc/reference/containers/matplotlib/NdOverlay.ipynb:90002: WARNING: 'myst' reference target not found: ../../../user_guide/04-Style_Mapping.ipynb#Cycles-and-Palettes
8607:/home/niko/code/holoviews/doc/reference/containers/matplotlib/Overlay.ipynb:30005: WARNING: 'myst' reference target not found: ../../../user_guide/06-Building_Composite_Objects.ipynb
8608:/home/niko/code/holoviews/doc/reference/containers/matplotlib/Overlay.ipynb:70004: WARNING: 'myst' reference target not found: Composing_Elements.rst
8609:/home/niko/code/holoviews/doc/reference/containers/plotly/DynamicMap.ipynb:30002: WARNING: 'myst' reference target not found: ../../../user_guide/06-Building_Composite_Objects.ipynb
8610:/home/niko/code/holoviews/doc/reference/containers/plotly/DynamicMap.ipynb:30002: WARNING: 'myst' reference target not found: Live_Data.rst
8611:/home/niko/code/holoviews/doc/reference/containers/plotly/DynamicMap.ipynb:80004: WARNING: 'myst' reference target not found: Live_Data.rst
8612:/home/niko/code/holoviews/doc/reference/containers/plotly/GridSpace.ipynb:30002: WARNING: 'myst' reference target not found: Building_Composite_Objects.rst
8613:/home/niko/code/holoviews/doc/reference/containers/plotly/HoloMap.ipynb:30002: WARNING: 'myst' reference target not found: Building_Composite_Objects.rst
8614:/home/niko/code/holoviews/doc/reference/containers/plotly/Layout.ipynb:30005: WARNING: 'myst' reference target not found: ../../../user_guide/06-Building_Composite_Objects.ipynb
8615:/home/niko/code/holoviews/doc/reference/containers/plotly/Layout.ipynb:70004: WARNING: 'myst' reference target not found: Composing_Elements.rst
8616:/home/niko/code/holoviews/doc/reference/containers/plotly/NdLayout.ipynb:30002: WARNING: 'myst' reference target not found: Building_Composite_Objects.rst
8617:/home/niko/code/holoviews/doc/reference/containers/plotly/NdOverlay.ipynb:30002: WARNING: 'myst' reference target not found: Building_Composite_Objects.rst
8618:/home/niko/code/holoviews/doc/reference/containers/plotly/NdOverlay.ipynb:90002: WARNING: 'myst' reference target not found: ../../../user_guide/04-Style_Mapping.ipynb#Cycles-and-Palettes
8619:/home/niko/code/holoviews/doc/reference/containers/plotly/Overlay.ipynb:30005: WARNING: 'myst' reference target not found: ../../../user_guide/06-Building_Composite_Objects.ipynb
8620:/home/niko/code/holoviews/doc/reference/containers/plotly/Overlay.ipynb:70004: WARNING: 'myst' reference target not found: Composing_Elements.rst
8621:/home/niko/code/holoviews/doc/reference/elements/bokeh/Area.ipynb:30004: WARNING: 'myst' reference target not found: Tabular_Datasets.rst
8622:/home/niko/code/holoviews/doc/reference/elements/bokeh/Bars.ipynb:30004: WARNING: 'myst' reference target not found: Tabular_Datasets.rst
8623:/home/niko/code/holoviews/doc/reference/elements/bokeh/BoxWhisker.ipynb:30004: WARNING: 'myst' reference target not found: Tabular_Datasets.rst
8624:/home/niko/code/holoviews/doc/reference/elements/bokeh/Contours.ipynb:30002: WARNING: 'myst' reference target not found: ../user_guide/Geometry_Data.ipynb
8625:/home/niko/code/holoviews/doc/reference/elements/bokeh/Curve.ipynb:30002: WARNING: 'myst' reference target not found: Tabular_Datasets.rst
8626:/home/niko/code/holoviews/doc/reference/elements/bokeh/ErrorBars.ipynb:30004: WARNING: 'myst' reference target not found: Tabular_Datasets.rst
8627:/home/niko/code/holoviews/doc/reference/elements/bokeh/HSV.ipynb:30010: WARNING: 'myst' reference target not found: Gridded_Datasets.rst
8628:/home/niko/code/holoviews/doc/reference/elements/bokeh/Image.ipynb:30002: WARNING: 'myst' reference target not found: Continuous_Coordinates.ipynb
8629:/home/niko/code/holoviews/doc/reference/elements/bokeh/Image.ipynb:30010: WARNING: 'myst' reference target not found: Gridded_Datasets.rst
8630:/home/niko/code/holoviews/doc/reference/elements/bokeh/ImageStack.ipynb:30018: WARNING: 'myst' reference target not found: Gridded_Datasets.rst
8631:/home/niko/code/holoviews/doc/reference/elements/bokeh/Labels.ipynb:30002: WARNING: 'myst' reference target not found: ../../../user_guide/08-Tabular_Datasets.ipynb
8632:/home/niko/code/holoviews/doc/reference/elements/bokeh/Labels.ipynb:30002: WARNING: 'myst' reference target not found: Gridded_Datasets.rst
8633:/home/niko/code/holoviews/doc/reference/elements/bokeh/Path.ipynb:30002: WARNING: 'myst' reference target not found: ../user_guide/Geometry_Data.ipynb
8634:/home/niko/code/holoviews/doc/reference/elements/bokeh/QuadMesh.ipynb:30010: WARNING: 'myst' reference target not found: Gridded_Datasets.rst
8635:/home/niko/code/holoviews/doc/reference/elements/bokeh/RGB.ipynb:30010: WARNING: 'myst' reference target not found: Gridded_Datasets.rst
8636:/home/niko/code/holoviews/doc/reference/elements/bokeh/Rectangles.ipynb:50002: WARNING: 'myst' reference target not found: Style_Mapping.rst
8637:/home/niko/code/holoviews/doc/reference/elements/bokeh/Spread.ipynb:30002: WARNING: 'myst' reference target not found: Tabular_Datasets.rst
8638:/home/niko/code/holoviews/doc/reference/elements/bokeh/Table.ipynb:130002: WARNING: 'myst' reference target not found: Tabular_Datasets.rst
8639:/home/niko/code/holoviews/doc/reference/elements/bokeh/Violin.ipynb:30004: WARNING: 'myst' reference target not found: Tabular_Datasets.rst
8640:/home/niko/code/holoviews/doc/reference/elements/matplotlib/Area.ipynb:30004: WARNING: 'myst' reference target not found: Tabular_Datasets.rst
8641:/home/niko/code/holoviews/doc/reference/elements/matplotlib/Bars.ipynb:30004: WARNING: 'myst' reference target not found: Tabular_Datasets.rst
8642:/home/niko/code/holoviews/doc/reference/elements/matplotlib/BoxWhisker.ipynb:30004: WARNING: 'myst' reference target not found: Tabular_Datasets.rst
8643:/home/niko/code/holoviews/doc/reference/elements/matplotlib/Contours.ipynb:30002: WARNING: 'myst' reference target not found: ../user_guide/Geometry_Data.ipynb
8644:/home/niko/code/holoviews/doc/reference/elements/matplotlib/Curve.ipynb:30002: WARNING: 'myst' reference target not found: Tabular_Datasets.rst
8645:/home/niko/code/holoviews/doc/reference/elements/matplotlib/ErrorBars.ipynb:30004: WARNING: 'myst' reference target not found: Tabular_Datasets.rst
8646:/home/niko/code/holoviews/doc/reference/elements/matplotlib/HSV.ipynb:30010: WARNING: 'myst' reference target not found: Gridded_Datasets.rst
8647:/home/niko/code/holoviews/doc/reference/elements/matplotlib/Image.ipynb:30002: WARNING: 'myst' reference target not found: Continuous_Coordinates.ipynb
8648:/home/niko/code/holoviews/doc/reference/elements/matplotlib/Image.ipynb:30010: WARNING: 'myst' reference target not found: Gridded_Datasets.rst
8649:/home/niko/code/holoviews/doc/reference/elements/matplotlib/ImageStack.ipynb:30018: WARNING: 'myst' reference target not found: Gridded_Datasets.rst
8650:/home/niko/code/holoviews/doc/reference/elements/matplotlib/Labels.ipynb:30002: WARNING: 'myst' reference target not found: ../../../user_guide/08-Tabular_Datasets.ipynb
8651:/home/niko/code/holoviews/doc/reference/elements/matplotlib/Labels.ipynb:30002: WARNING: 'myst' reference target not found: Gridded_Datasets.rst
8652:/home/niko/code/holoviews/doc/reference/elements/matplotlib/Path.ipynb:30002: WARNING: 'myst' reference target not found: ../user_guide/Geometry_Data.ipynb
8653:/home/niko/code/holoviews/doc/reference/elements/matplotlib/Path3D.ipynb:30002: WARNING: 'myst' reference target not found: ../user_guide/Geometry_Data.ipynb
8654:/home/niko/code/holoviews/doc/reference/elements/matplotlib/QuadMesh.ipynb:30010: WARNING: 'myst' reference target not found: Gridded_Datasets.rst
8655:/home/niko/code/holoviews/doc/reference/elements/matplotlib/RGB.ipynb:30010: WARNING: 'myst' reference target not found: Gridded_Datasets.rst
8656:/home/niko/code/holoviews/doc/reference/elements/matplotlib/Rectangles.ipynb:50002: WARNING: 'myst' reference target not found: Style_Mapping.rst
8657:/home/niko/code/holoviews/doc/reference/elements/matplotlib/Spread.ipynb:30002: WARNING: 'myst' reference target not found: Tabular_Datasets.rst
8658:/home/niko/code/holoviews/doc/reference/elements/matplotlib/Table.ipynb:130002: WARNING: 'myst' reference target not found: Tabular_Datasets.rst
8659:/home/niko/code/holoviews/doc/reference/elements/matplotlib/Violin.ipynb:30004: WARNING: 'myst' reference target not found: Tabular_Datasets.rst
8660:/home/niko/code/holoviews/doc/reference/elements/plotly/Area.ipynb:30004: WARNING: 'myst' reference target not found: Tabular_Datasets.rst
8661:/home/niko/code/holoviews/doc/reference/elements/plotly/Bars.ipynb:30004: WARNING: 'myst' reference target not found: Tabular_Datasets.rst
8662:/home/niko/code/holoviews/doc/reference/elements/plotly/BoxWhisker.ipynb:30004: WARNING: 'myst' reference target not found: Tabular_Datasets.rst
8663:/home/niko/code/holoviews/doc/reference/elements/plotly/Curve.ipynb:30002: WARNING: 'myst' reference target not found: Tabular_Datasets.rst
8664:/home/niko/code/holoviews/doc/reference/elements/plotly/ErrorBars.ipynb:30004: WARNING: 'myst' reference target not found: Tabular_Datasets.rst
8665:/home/niko/code/holoviews/doc/reference/elements/plotly/Image.ipynb:30002: WARNING: 'myst' reference target not found: Continuous_Coordinates.ipynb
8666:/home/niko/code/holoviews/doc/reference/elements/plotly/ImageStack.ipynb:30018: WARNING: 'myst' reference target not found: Gridded_Datasets.rst
8667:/home/niko/code/holoviews/doc/reference/elements/plotly/Path3D.ipynb:30002: WARNING: 'myst' reference target not found: ../user_guide/Geometry_Data.ipynb
8668:/home/niko/code/holoviews/doc/reference/elements/plotly/Points.ipynb:90002: WARNING: 'myst' reference target not found: Bokeh_Backend
8669:/home/niko/code/holoviews/doc/reference/elements/plotly/RGB.ipynb:30010: WARNING: 'myst' reference target not found: Gridded_Datasets.rst
8670:/home/niko/code/holoviews/doc/reference/elements/plotly/Raster.ipynb:30002: WARNING: 'myst' reference target not found: ./HSV.ipynb
8671:/home/niko/code/holoviews/doc/reference/elements/plotly/Spread.ipynb:30002: WARNING: 'myst' reference target not found: Tabular_Datasets.rst
8672:/home/niko/code/holoviews/doc/reference/elements/plotly/Table.ipynb:130002: WARNING: 'myst' reference target not found: Tabular_Datasets.rst
8673:/home/niko/code/holoviews/doc/reference/elements/plotly/Violin.ipynb:30004: WARNING: 'myst' reference target not found: Tabular_Datasets.rst
8688:/home/niko/code/holoviews/doc/user_guide/01-Annotating_Data.ipynb:20002: WARNING: 'myst' reference target not found: Introduction.rst
8689:/home/niko/code/holoviews/doc/user_guide/01-Annotating_Data.ipynb:230002: WARNING: 'myst' reference target not found: ./03-Applying_Customizations.ipynb
8690:/home/niko/code/holoviews/doc/user_guide/Annotators.ipynb:250004: WARNING: 'myst' reference target not found: ../reference/streams/PolyDraw.ipynb
8691:/home/niko/code/holoviews/doc/user_guide/Annotators.ipynb:250004: WARNING: 'myst' reference target not found: ../reference/streams/PolyEdit.ipynb
8692:/home/niko/code/holoviews/doc/user_guide/03-Applying_Customizations.ipynb:20002: WARNING: 'myst' reference target not found: ../getting_started/2-Customization.ipynb
8693:/home/niko/code/holoviews/doc/user_guide/03-Applying_Customizations.ipynb:30004: WARNING: 'myst' reference target not found: Customization.rst
8694:/home/niko/code/holoviews/doc/user_guide/03-Applying_Customizations.ipynb:70006: WARNING: 'myst' reference target not found: Introduction.rst
8695:/home/niko/code/holoviews/doc/user_guide/03-Applying_Customizations.ipynb:90002: WARNING: 'myst' reference target not found: Customization.rst
8696:/home/niko/code/holoviews/doc/user_guide/03-Applying_Customizations.ipynb:110008: WARNING: 'myst' reference target not found: Customization.rst
8703:/home/niko/code/holoviews/doc/user_guide/03-Applying_Customizations.ipynb:240010: WARNING: 'myst' reference target not found: Plots_and_Renderers.ipynb#Saving-and-rendering
8707:/home/niko/code/holoviews/doc/user_guide/03-Applying_Customizations.ipynb:410018: WARNING: 'myst' reference target not found: Customization.rst
8708:/home/niko/code/holoviews/doc/user_guide/03-Applying_Customizations.ipynb:600010: WARNING: 'myst' reference target not found: Bokeh_Backend
8711:/home/niko/code/holoviews/doc/user_guide/06-Building_Composite_Objects.ipynb:130002: WARNING: 'myst' reference target not found: ./01-Annotating_Data.ipynb
8712:/home/niko/code/holoviews/doc/user_guide/Colormaps.ipynb:10004: WARNING: 'myst' reference target not found: Styling_Plots.ipynb
8713:/home/niko/code/holoviews/doc/user_guide/Colormaps.ipynb:30010: WARNING: 'myst' reference target not found: Styling_Plots.ipynb
8715:/home/niko/code/holoviews/doc/user_guide/Colormaps.ipynb:190002: WARNING: 'myst' reference target not found: Styling_Plots.ipynb
8716:/home/niko/code/holoviews/doc/user_guide/02-Composing_Elements.ipynb:20007: WARNING: 'myst' reference target not found: ./05-Dimensioned_Containers.ipynb
8717:/home/niko/code/holoviews/doc/user_guide/02-Composing_Elements.ipynb:280002: WARNING: 'myst' reference target not found: ./03-Applying_Customization.ipynb
8718:/home/niko/code/holoviews/doc/user_guide/Continuous_Coordinates.ipynb:240002: WARNING: 'myst' reference target not found: 10-Indexing_and_Selecting.ipynb
8719:/home/niko/code/holoviews/doc/user_guide/Continuous_Coordinates.ipynb:330006: WARNING: 'myst' reference target not found: Containers
8720:/home/niko/code/holoviews/doc/user_guide/Continuous_Coordinates.ipynb:350002: WARNING: 'myst' reference target not found: 10-Indexing_and_Selecting.ipynb
8739:/home/niko/code/holoviews/doc/user_guide/17-Dashboards.ipynb:20002: WARNING: 'myst' reference target not found: ./14-Data_Pipelines.ipynb
8740:/home/niko/code/holoviews/doc/user_guide/14-Data_Pipelines.ipynb:20002: WARNING: 'myst' reference target not found: ./07-Live_Data.ipynb
8741:/home/niko/code/holoviews/doc/user_guide/05-Dimensioned_Containers.ipynb:10002: WARNING: 'myst' reference target not found: ./01-Annotating_Data.ipynb
8742:/home/niko/code/holoviews/doc/user_guide/05-Dimensioned_Containers.ipynb:180002: WARNING: 'myst' reference target not found: ./08-Tabular_Datasets.ipynb
8743:/home/niko/code/holoviews/doc/user_guide/05-Dimensioned_Containers.ipynb:180002: WARNING: 'myst' reference target not found: ./09-Gridded_Datasets.ipynb
8744:/home/niko/code/holoviews/doc/user_guide/10-Indexing_and_Selecting_Data.ipynb:10002: WARNING: 'myst' reference target not found: ./06-Building_Composite_Objects.ipynb
8745:/home/niko/code/holoviews/doc/user_guide/10-Indexing_and_Selecting_Data.ipynb:40002: WARNING: 'myst' reference target not found: ./05-Dimensioned_Containers.ipynb
8746:/home/niko/code/holoviews/doc/user_guide/10-Indexing_and_Selecting_Data.ipynb:500002: WARNING: 'myst' reference target not found: ./07-Tabular_Data.ipynb
8747:/home/niko/code/holoviews/doc/user_guide/07-Live_Data.ipynb:10023: WARNING: 'myst' reference target not found: ./12-Responding_to_Events.ipynb
8748:/home/niko/code/holoviews/doc/user_guide/07-Live_Data.ipynb:60002: WARNING: 'myst' reference target not found: Introduction.rst
8749:/home/niko/code/holoviews/doc/user_guide/Notebook_Magics.ipynb:40032: WARNING: 'myst' reference target not found: Customization.rst
8750:/home/niko/code/holoviews/doc/user_guide/Plots_and_Renderers.ipynb:440006: WARNING: 'myst' reference target not found: ./06-Building_Composite_Objects.ipynb#Nesting-hierarchy-
8751:/home/niko/code/holoviews/doc/user_guide/Plotting_with_Bokeh.ipynb:20004: WARNING: 'myst' reference target not found: 04-Style_Mapping.ipynb
8752:/home/niko/code/holoviews/doc/user_guide/Plotting_with_Bokeh.ipynb:120006: WARNING: 'myst' reference target not found: Customizing_Plots.ipynb#plot-hooks
8753:/home/niko/code/holoviews/doc/user_guide/Plotting_with_Matplotlib.ipynb:50006: WARNING: 'myst' reference target not found: Customizing_Plots.ipynb#plot-hooks

Example 1:

8566:/home/niko/code/holoviews/doc/getting_started/2-Customization.ipynb:140004: WARNING: 'myst' reference target not found: Applying_Customizations.rst

2-Customization.ipynb has text

A detailed breakdown of this exact customization is given in the [User Guide](../user_guide/03-Applying_Customizations.ipynb), but we can

That link is broken at: https://holoviews.org/getting_started/Customization.html

Example 2

8573:/home/niko/code/holoviews/doc/getting_started/4-Gridded_Datasets.ipynb:140006: WARNING: 'myst' reference target not found: ./5-Live_Data.ipynb
8574:/home/niko/code/holoviews/doc/getting_started/4-Gridded_Datasets.ipynb:140006: WARNING: 'myst' reference target not found: Data_Pipelines.rst

4-Gridded_Datasets.ipynb has text

letting you explore the parameter space dynamically without having to precompute all the combinations ahead of time (for more detail have a look at the [Live Data](./5-Live_Data.ipynb) getting-started guide and the [Data Pipelines](../user_guide/14-Data_Pipelines.ipynb) user guide).
  • Both of these links are broken at https://holoviews.org/getting_started/Gridded_Datasets.html
  • Note: The [Live Data](./5-Live_Data.ipynb) has kept itself as ./5-Live_Data.ipynb in the WARNING but the [Data Pipelines](../user_guide/14-Data_Pipelines.ipynb) has turned into Data_Pipelines.rst (different path, missing 14- and .ipynb changed to .rst)

Example 3

8712:/home/niko/code/holoviews/doc/user_guide/Colormaps.ipynb:10004: WARNING: 'myst' reference target not found: Styling_Plots.ipynb

The Colormaps.ipynb has text:

As outlined in [Styling_Plots](Styling_Plots.ipynb), you can easily make your own custom colormaps, 
  • That link is broken in https://holoviews.org/user_guide/Colormaps.html#available-colormaps

Example 4

8692:/home/niko/code/holoviews/doc/user_guide/03-Applying_Customizations.ipynb:20002: WARNING: 'myst' reference target not found: ../getting_started/2-Customization.ipynb
8693:/home/niko/code/holoviews/doc/user_guide/03-Applying_Customizations.ipynb:30004: WARNING: 'myst' reference target not found: Customization.rst
8694:/home/niko/code/holoviews/doc/user_guide/03-Applying_Customizations.ipynb:70006: WARNING: 'myst' reference target not found: Introduction.rst
8695:/home/niko/code/holoviews/doc/user_guide/03-Applying_Customizations.ipynb:90002: WARNING: 'myst' reference target not found: Customization.rst
8696:/home/niko/code/holoviews/doc/user_guide/03-Applying_Customizations.ipynb:110008: WARNING: 'myst' reference target not found: Customization.rst
8703:/home/niko/code/holoviews/doc/user_guide/03-Applying_Customizations.ipynb:240010: WARNING: 'myst' reference target not found: Plots_and_Renderers.ipynb#Saving-and-rendering
8707:/home/niko/code/holoviews/doc/user_guide/03-Applying_Customizations.ipynb:410018: WARNING: 'myst' reference target not found: Customization.rst
8708:/home/niko/code/holoviews/doc/user_guide/03-Applying_Customizations.ipynb:600010: WARNING: 'myst' reference target not found: Bokeh_Backend

The 03-Applying_Customizations.ipynb has text:

As introduced in the [Customization](../getting_started/2-Customization.ipynb) section of the 'Getting Started' guide, HoloViews maintains a strict

and it has the file ../getting_started/2-Customization.ipynb actually linked total of 5 times. But see the WARNINGS above.

  • Once: ../getting_started/2-Customization.ipynb
  • Four times Customization.rst

So for some reason, the warnings are with different names although they all point to the same file from the same file. And yes, the links on https://holoviews.org/user_guide/Applying_Customizations.html to Customizations are broken too.

Summary

As far I understand, all the the 'myst' reference target not found -warnings are actually true positive. This could mean that the documentation is having around 150 broken links.

Any ideas what could be causing this..?

fohrloop avatar Feb 02 '24 22:02 fohrloop

The pages seem to have a random number of broken and working links to .ipynb's. For example, the Page: https://holoviews.org/user_guide/Applying_Customizations.html (doc/user_guide/03-Applying_Customizations.ipynb) has the following links:

  • Broken: [Customization](../getting_started/2-Customization.ipynb)
  • Working: [Annotating Data](../user_guide/01-Annotating_Data.ipynb)
  • Working: [Plots and Renderers](Plots_and_Renderers.ipynb)
  • Working: [Style Mapping](04-Style_Mapping.ipynb)
  • Broken: [Customization](../getting_started/2-Customization.ipynb)
  • Broken: [Introduction](../getting_started/1-Introduction.ipynb)
  • Broken: [Customization](../getting_started/2-Customization.ipynb)
  • Broken: [Customization](../getting_started/2-Customization.ipynb)
  • Working: [Style Mapping](04-Style_Mapping.ipynb)
  • Broken: [hv.save() and hv.render()](Plots_and_Renderers.ipynb#Saving-and-rendering)
  • Broken: [customization](../getting_started/2-Customization.ipynb)
  • Working: [Style Mapping](04-Style_Mapping.ipynb)

Out of which we get the following warnings:

8692:/home/niko/code/holoviews/doc/user_guide/03-Applying_Customizations.ipynb:20002: WARNING: 'myst' reference target not found: ../getting_started/2-Customization.ipynb
8693:/home/niko/code/holoviews/doc/user_guide/03-Applying_Customizations.ipynb:30004: WARNING: 'myst' reference target not found: Customization.rst
8694:/home/niko/code/holoviews/doc/user_guide/03-Applying_Customizations.ipynb:70006: WARNING: 'myst' reference target not found: Introduction.rst
8695:/home/niko/code/holoviews/doc/user_guide/03-Applying_Customizations.ipynb:90002: WARNING: 'myst' reference target not found: Customization.rst
8696:/home/niko/code/holoviews/doc/user_guide/03-Applying_Customizations.ipynb:110008: WARNING: 'myst' reference target not found: Customization.rst
8703:/home/niko/code/holoviews/doc/user_guide/03-Applying_Customizations.ipynb:240010: WARNING: 'myst' reference target not found: Plots_and_Renderers.ipynb#Saving-and-rendering
8707:/home/niko/code/holoviews/doc/user_guide/03-Applying_Customizations.ipynb:410018: WARNING: 'myst' reference target not found: Customization.rst
8708:/home/niko/code/holoviews/doc/user_guide/03-Applying_Customizations.ipynb:600010: WARNING: 'myst' reference target not found: Bokeh_Backend

(all the missing links are listed in the warnings, and the Bokeh_Backend is probably a badly formed link, as it is [``bokeh``](Bokeh_Backend))

fohrloop avatar Feb 02 '24 22:02 fohrloop

Or perhaps not so random at all. Only the .ipynbs links to the same folder are working

  • File in question: user_guide/03-Applying_Customizations.ipynb
  • Working:
    • [Annotating Data](../user_guide/01-Annotating_Data.ipynb) (still same folder)
    • [Plots and Renderers](Plots_and_Renderers.ipynb)
    • [Style Mapping](04-Style_Mapping.ipynb)
  • Broken:
    • [Customization](../getting_started/2-Customization.ipynb)
    • [Introduction](../getting_started/1-Introduction.ipynb)

Also note the strange change of missing ../getting_started/2-Customization.ipynb in the warnings after the first one to Customization.rst.

fohrloop avatar Feb 02 '24 23:02 fohrloop

Producing MWE

Since building all the docs takes a long time, I decided to try to make a MWE which produces the bug. There are two approaces: top-down (removing as much as possible from holoviews to reproduce the bug) and bottom-up (starting from empty project and building until I see the bug)

top-down

  • Create a new branch for experimenting
  • Run
find . -not \( -path "./.venv/*" \
   -o -path "*/user_guide/03-Applying_Customizations.ipynb" \
   -o -path "*/user_guide/01-Annotating_Data.ipynb" \
   -o -path "*/user_guide/Plots_and_Renderers.ipynb" \
   -o -path "*/user_guide/04-Style_Mapping.ipynb" \
   -o -path "*/getting_started/1-Introduction.ipynb" \
   -o -path "*/getting_started/2-Customization.ipynb" \
   \) -name *.ipynb -delete
   
find . -not \( -path "./.venv/*" \
   -o -path "./doc/user_guide/Applying_Customizations.rst" \
   -o -path "./doc/user_guide/Annotating_Data.rst" \
   -o -path "./doc/user_guide/Style_Mapping.rst" \
   -o -path "./doc/user_guide/Plots_and_Renderers.rst" \
   -o -path "./doc/getting_started/Introduction.rst" \
   -o -path "./doc/getting_started/Customization.rst" \
   -o -path "./doc/user_guide/index.rst" \
   -o -path "./doc/getting_started/index.rst" \
   -o -path "./doc/index.rst" \
   \) -name *.rst -delete

Then, run

bokeh sampledata
nbsite generate-rst --org holoviz --project-name holoviews
python ./doc/generate_modules.py holoviews -d ./doc/reference_manual -n holoviews -e tests
nbsite build --what=html --output=builtdocs --org holoviz --project-name holoviews

This will remove a lot of the notebooks and rst files but keep the docs still buildable. This will reproduce the issue on the ser_guide/03-Applying_Customizations.ipynb as mentioned in above comments. Unfortunately this still takes 2-3 minutes to build, so I went and tried to reproduce the issue on a minimal project.

bottom-up

I managed to create a MWE project which uses nbsite for building.

  • link to repo: https://github.com/fohrloop/holoviews-issue-6086-mwe
  • Building the docs:
nbsite build --what=html --output=builtdocs --org holoviz --project-name holoviews

Or, after first build (when /docs has the .ipynb files):

sphinx-build -b html doc/ builtdocs/ -a

This takes only ~10 seconds, and generates the warning:

writing output... [100%] user_guide/index                                                                  
/home/niko/tmp/minimal-doc-error/doc/user_guide/03-Applying_Customizations.ipynb:20003: WARNING: 'myst' reference target not found: Customization.rst
generating indices... genindex done

The link is missing on the page (reproduces the issue 🎉🎉):

image

Although it should be there according to the code:

image

that link in the notebook works when clicking it in VS Code. As code it looks like this

   "source": [
    "- Here is a link to [style mapping](04-Style_Mapping.ipynb)\n",
    "- Here is a link to [customization](../getting_started/2-Customization.ipynb)"
   ]

Notes

When building the bottom-up MWE I was first experimenting the links with myst-nb==0.17.2. With that the link to 2-Customization.ipynb was not broken. I only could reproduce the issue when adding nbsite to the mix. And as a side note, nbsite build requires matplotlib and holoviews (these are not installed with nbsite).

fohrloop avatar Feb 03 '24 12:02 fohrloop

About different 'myst' reference target not found -errors

If Customization RST filename is Customization.rst, and doc/getting_started/index.rst has:

.. toctree::
    Customization <Customization>

you'll get warning saying Something.rst is missing

WARNING: 'myst' reference target not found: Customization.rst

If Customization RST filename is something else (e.g. Something_Else.rst), and doc/getting_started/index.rst has:

.. toctree::
    Customization <Something_Else>

you'll get warning saying ../somepath/SomeNotebook.ipynb is missing

WARNING: 'myst' reference target not found: ../getting_started/2-Customization.ipynb

otherwise all else seems equal. This is somewhat peculiar. Why does the name of the .rst file matter? And could explain why in the warnings there are two types of 'myst' reference target not found errors:

WARNING: 'myst' reference target not found: Customization.rst
WARNING: 'myst' reference target not found: ../getting_started/2-Customization.ipynb

fohrloop avatar Feb 03 '24 12:02 fohrloop

I really appreciate the thoughtfulness and reporting that is going into this issue! I will try to answer some of your questions.

As far I understand, all the the 'myst' reference target not found -warnings are actually true positive. This could mean that the documentation is having around 150 broken links.

The notebooks can be up to 10 years old and, when created, likely referenced a valid notebook. But as time passes, the notebook can move (or be deleted), and people forget to update the references in another notebook. At the same time, the underlying library can change the default behavior, or we can replace it with a newer library.

When building the bottom-up MWE I was first experimenting the links with myst-nb==0.17.2.

We have pinned myst-nb <1 because it failed to build the docs in Panel and HoloViews on CI. This was just after the 1.0.0. It could be that everything is working now. I haven't looked at it since then. I can see Jupyterlite also had some problems with 1.0 (https://github.com/jupyterlite/jupyterlite/issues/1257).

hoxbro avatar Feb 06 '24 19:02 hoxbro