Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Broken Hyperlinks on Website #165

Open
hectormz opened this issue May 27, 2021 · 7 comments
Open

Broken Hyperlinks on Website #165

hectormz opened this issue May 27, 2021 · 7 comments
Labels
help wanted Extra attention is needed

Comments

@hectormz
Copy link
Contributor

I ran https://docs.pymc.io/ through a dead link checker and found a number of broken links on the website. Some should be fixed from the pymc-examples repo and some are in the main pymc3 repo, so I'm posting in both. Some hyperlinks just need to be updated (and images to bayesian book covers), but others may point to entities or resources that don't exist anymore.

This doesn't seem to be exhaustive because the link from the GLM Logistic Regression by @springcoil and @jbencook to @jbencook 's original blog post is definitely broken

Error URL Anchor Text Linked From
-1 Not found: The server name or address could not be resolved http://biostat.mc.vanderbilt.edu/wiki/Main/ChrisFonnesbeck Chris Fonnesbeck https://docs.pymc.io/notebooks/GLM-hierarchical.html
-1 Not found: A connection with the server could not be established https://sphinx-doc.org/ Sphinx https://docs.pymc.io/notebooks/GLM-hierarchical.html
403 Forbidden http://f.cl.ly/items/0R1W063h1h0W2M2C0S3M/Screen Shot 2013-10-10 at 8.22.21 AM.png img/src https://docs.pymc.io/notebooks/GLM-hierarchical.html
403 Forbidden http://f.cl.ly/items/38020n2t2Y2b1p3t0B0e/Screen Shot 2013-10-10 at 8.23.36 AM.png img/src https://docs.pymc.io/notebooks/GLM-hierarchical.html
403 Forbidden http://f.cl.ly/items/1B3U223i002y3V2W3r0W/Screen Shot 2013-10-10 at 8.25.05 AM.png img/src https://docs.pymc.io/notebooks/GLM-hierarchical.html
404 Not Found https://docs.pymc.io/_static/semantic-sphinx.css link/href https://docs.pymc.io/notebooks/GLM-hierarchical.html
404 Not Found https://docs.pymc.io/_static/default.css link/href https://docs.pymc.io/notebooks/GLM-hierarchical.html
-1 Not found: The host name in the certificate is invalid or does not match https://www.stat.columbia.edu/~gelman/book/ Book website https://docs.pymc.io/learn.html
403 Forbidden https://lh5.googleusercontent.com/Ms2ssellxl7cM6OEL_kpiKRojcj2E4ZaUWDXOa8zEwi-v9orJGYuhjczbwFSDJNsEb_ruiwtCJONNjoo7T1c7qorZm3LsAnroMAm4S5WzNT_PVqWz9aE=w1280 img/src https://docs.pymc.io/learn.html
530 https://quantopian.com/   https://docs.pymc.io/
999 Non-standard https://www.linkedin.com/pub/danne-elbers/69/3a2/7ba Danne Elbers [301 from http://www.linkedin.com/pub/danne-elbers/69/3a2/7ba] https://docs.pymc.io/notebooks/GLM-hierarchical.html
-1 Timeout http://deeplearning.net/software/theano/ Theano https://docs.pymc.io/developer_guide.html
404 Not Found https://cdasr.mclean.harvard.edu/about-us/current-lab-members/14-faculty/62-daniel-dillon Dan Dillon [301 from http://cdasr.mclean.harvard.edu/index.php/about-us/current-lab-members/14-faculty/62-daniel-dillon] [301 from https://cdasr.mclean.harvard.edu/index.php/about-us/current-lab-members/14-faculty/62-daniel-dillon] https://docs.pymc.io/notebooks/GLM-hierarchical.html
404 Not Found https://github.com/pymc-devs/pymc3/blob/master/docs/source/notebooks/weibull_aft.ipynb this example notebook https://docs.pymc.io/api/bounds.html
403 Forbidden http://bayesiandeeplearning.org/papers/BDL_21.pdf http://bayesiandeeplearning.org/papers/BDL_21.pdf https://docs.pymc.io/api/inference.html
404 Not Found https://arviz-devs.github.io/arviz/notebooks/Introduction.html https://arviz-devs.github.io/arviz/notebooks/Introduction.html https://docs.pymc.io/api/data.html
404 Not Found https://numpy.org/doc/stable/neps/npy-format.html https://docs.scipy.org/doc/numpy/neps/npy-format.html [301 from https://docs.scipy.org/doc/numpy/neps/npy-format.html] https://docs.pymc.io/api/backends.html
404 Not Found https://docs.pymc.io/pymc-examples/examples/api/distributions.rst pymc3.distributions https://docs.pymc.io/pymc-examples/examples/pymc3_howto/api_quickstart.html
404 Not Found https://docs.pymc.io/pymc-examples/examples/api/distributions/continuous.rst continuous https://docs.pymc.io/pymc-examples/examples/pymc3_howto/api_quickstart.html
404 Not Found https://docs.pymc.io/pymc-examples/examples/api/distributions/discrete.rst discrete https://docs.pymc.io/pymc-examples/examples/pymc3_howto/api_quickstart.html
404 Not Found https://docs.pymc.io/pymc-examples/examples/api/distributions/timeseries.rst timeseries https://docs.pymc.io/pymc-examples/examples/pymc3_howto/api_quickstart.html
404 Not Found https://docs.pymc.io/pymc-examples/examples/api/distributions/mixture.rst mixture https://docs.pymc.io/pymc-examples/examples/pymc3_howto/api_quickstart.html
404 Not Found https://docs.pymc.io/pymc-examples/examples/pymc3_howto/sampler-stats.ipynb here https://docs.pymc.io/pymc-examples/examples/pymc3_howto/api_quickstart.html
404 Not Found https://docs.pymc.io/pymc-examples/examples/pymc3_howto/Diagnosing_biased_Inference_with_Divergences.ipynb here https://docs.pymc.io/pymc-examples/examples/pymc3_howto/api_quickstart.html
-1 Timeout http://deeplearning.net/software/theano/library/tensor/index.html the theano api docs https://docs.pymc.io/PyMC3_and_Theano.html
404 Not Found https://docs.pymc.io/prob_dists.html custom distributions https://docs.pymc.io/notebooks/blackbox_external_likelihood.html
404 Not Found https://docs.pymc.io/advanced_theano.html custom Theano Op https://docs.pymc.io/notebooks/blackbox_external_likelihood.html
-1 Timeout http://deeplearning.net/software/theano/extending/extending_theano.html Theano Op https://docs.pymc.io/notebooks/blackbox_external_likelihood.html
-1 Timeout http://deeplearning.net/software/theano/extending/op.html grad() method https://docs.pymc.io/notebooks/blackbox_external_likelihood.html
-1 Timeout http://deeplearning.net/software/theano/library/compile/function.html Theano function https://docs.pymc.io/notebooks/blackbox_external_likelihood.html
-1 Timeout http://deeplearning.net/software/theano/library/gradient.html Theano tensor gradient https://docs.pymc.io/notebooks/blackbox_external_likelihood.html
404 Not Found http://docs.pymc.io/examples.html these examples [301 from http://pymc-devs.github.io/pymc3/examples.html] https://docs.pymc.io/pymc-examples/examples/pymc3_howto/api_quickstart.html
-1 Not found: The server name or address could not be resolved http://5047-presscdn.pagely.netdna-cdn.com/wp-content/uploads/2015/04/iris_petal_sepal.png img/src https://docs.pymc.io/pymc-examples/examples/variational_inference/variational_api_quickstart.html
-1 Timeout http://deeplearning.net/software/theano/library/tensor/basic.html an overview of the available types https://docs.pymc.io/notebooks/getting_started.html
404 Not Found https://github.com/pymc-devs/pymc3/blob/master/pymc3/examples/disaster_model_theano_op.py a more elaborate example of the usage of as_op https://docs.pymc.io/notebooks/getting_started.html
-1 Timeout http://deeplearning.net/software/theano/extending/index.html documentation, https://docs.pymc.io/Advanced_usage_of_Theano_in_PyMC3.html
@OriolAbril
Copy link
Member

Thanks! I have added a note on this at https://github.com/pymc-devs/pymc-examples/wiki/Notebook-updates-overview. You mention a dead link checker, do you know if it could be added as a step to our CI?

It currently checks format, execution order and a couple other things and it would be great to also check that. Especially given that sometimes reviewnb doesn't render the links correctly. i.e. the link may not work for me when reviewing even when the link does work locally and once rendered on the website.

@hectormz
Copy link
Contributor Author

hectormz commented May 28, 2021

@OriolAbril I had just used https://www.deadlinkchecker.com, which seems a little stochastic and not practically useful here. Would you want to use something in pre-commit and/or a github action?

@hectormz
Copy link
Contributor Author

I found pytest-check-links which works on:

  • .html
  • .rst
  • .md
  • .ipynb (requires nbconvert)

One consideration is if you want to check the source files for broken links, or check resulting files/website itself

@OriolAbril
Copy link
Member

I think checking the source files is fine, maybe even better. There will be links that are sphinx generated and therefore won't be checked in this approach, but these rely on intersphinx which should be quite robust and error out when building the docs if there is an issue.

@hectormz
Copy link
Contributor Author

hectormz commented Jun 9, 2021

Maybe pytest-check-links is worth checking out then. Depending on how long it takes, it can be done by CI for PR, etc

@chkunkel
Copy link

chkunkel commented Nov 9, 2022

I don't know if this deserves a (separate) issue, since its very minor. Yet, I want to mention it at least.
In https://www.pymc.io/projects/examples/en/latest/gallery.html the card for "GLM: Linear regression" does not include a hyperlink.
Since the link is set as "pymc:GLM_linear" in gallery.rst, it could just be related to this capitalization issue in sphinx: sphinx-doc/sphinx#8982

@OriolAbril
Copy link
Member

Thanks, it looks like we should update the target and reference to be both lowercase only as the issue is a bit old already and doesn't look active. Do you want to send the PRs for this?

The target is defined in https://github.com/pymc-devs/pymc/blob/main/docs/source/learn/core_notebooks/GLM_linear.ipynb (top of the file)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests

4 participants