-
Notifications
You must be signed in to change notification settings - Fork 319
/
lychee.toml
150 lines (128 loc) · 7.1 KB
/
lychee.toml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
################################################################################
# Config for the link checker lychee.
#
# Download & learn more at:
# https://github.com/lycheeverse/lychee
#
# Example config:
# https://github.com/lycheeverse/lychee/blob/master/lychee.example.toml
#
# Run `lychee . --dump` to list all found links that are being checked.
#
# Note that by default lychee will only check markdown and html files,
# to check any other files you have to point to them explicitly, e.g.:
# `lychee **/*.rs`
# To make things worse, `exclude_path` is ignored for these globs,
# so local runs with lots of gitignored files will be slow.
# (https://github.com/lycheeverse/lychee/issues/1405)
#
# This unfortunately doesn't list anything for non-glob checks.
################################################################################
# Maximum number of concurrent link checks.
# Workaround for "too many open files" error on MacOS, see https://github.com/lycheeverse/lychee/issues/1248
max_concurrency = 32
# Check links inside `<code>` and `<pre>` blocks as well as Markdown code blocks.
include_verbatim = true
# Proceed for server connections considered insecure (invalid TLS).
insecure = true
# Maximum number of allowed retries before a link is declared dead.
max_retries = 4
# Wait time between attempts in seconds.
retry_wait_time = 2
# Comma-separated list of accepted status codes for valid links.
accept = [
"100..=103", # Informational codes.
"200..=299", # Success codes.
"429", # Too many requests. This is practically never a sign of a broken link.
]
# Exclude these filesystem paths from getting checked.
exclude_path = [
# Unfortunately lychee doesn't yet read .gitignore https://github.com/lycheeverse/lychee/issues/1331
# The following entries are there because of that:
".git",
"__pycache__",
"_deps/",
".pixi",
"build",
"docs/python/",
"rerun_cpp/_deps",
"rerun_cpp/docs/html",
"rerun_cpp/docs/xml",
"rerun_cpp/tmp/",
"rerun_py/site/",
"target_ra",
"target_wasm",
"target",
"venv",
# Actually ignored files beyond .gitignore
"crates/utils/re_analytics/src/event.rs", # Contains test with malformed urls
"scripts/lint.py", # Contains url-matching regexes that aren't actual urls
"scripts/screenshot_compare/assets/templates/",
"crates/viewer/re_viewer/src/reflection/mod.rs", # Checker struggles how links from examples are escaped here. They are all checked elsewhere, so not an issue.
]
# Exclude URLs and mail addresses from checking (supports regex).
exclude = [
# Skip speculative links
'.*?speculative-link',
# Strings with replacements.
'/__VIEWER_VERSION__/', # Replacement variable __VIEWER_VERSION__.
'/\$', # Replacement variable $.
'/GIT_HASH/', # Replacement variable GIT_HASH.
'\{\}', # Ignore links with string interpolation.
'\$relpath\^', # Relative paths as used by rerun_cpp's doc header.
'%7B.+%7D', # Ignore strings that look like ready to use links but contain a replacement strings. The URL escaping is for '{.+}' (this seems to be needed for html embedded urls since lychee assumes they use this encoding).
'%7B%7D', # Ignore links with string interpolation, escaped variant.
# Ignore storage-node example links
'rrdp:/.*',
# Local links that require further setup.
'http://127.0.0.1',
'http://localhost',
'recording:/', # rrd recording link.
'ws:/',
're_viewer.js', # Build artifact that html is linking to.
# Api endpoints.
'https://fonts.googleapis.com/', # Font API entrypoint, not a link.
'https://fonts.gstatic.com/', # Font API entrypoint, not a link.
'https://tel.rerun.io/', # Analytics endpoint.
'https://docs-assets.developer.apple.com/ml-research/datasets/arkitscenes/v1', # Used by arkit_scenes.
# Avoid rate limiting.
'https://crates.io/crates/.*', # Avoid crates.io rate-limiting
'https://github.com/rerun-io/rerun/commit/\.*', # Ignore links to our own commits (typically in changelog).
'https://github.com/rerun-io/rerun/pull/\.*', # Ignore links to our own pull requests (typically in changelog).
'https://github.com/rerun-io/rerun/issues/\.*', # Ignore links to our own issues.
# Intentionally faked links.
'file://foo',
'http://foo.com/',
'https://link.to',
'https://static.rerun.io/my_screenshot/',
'https://your-hosted-asset-url.com/widget.js',
# Link fragments and data links in examples.
'https://raw.githubusercontent.com/googlefonts/noto-emoji/', # URL fragment.
'https://static.rerun.io/rgbd_dataset', # Base data link for rgbd dataset.
'https://storage.googleapis.com/', # Storage API entrypoint, not a link.
# Not accessible from CI.
'.github/workflows/.*.yml', # GitHub action workflows cause issues on CI.
'https://9p.io/sys/doc/lexnames.html', # Works locally but on CI we get: `Failed: Network error: error:0A000152:SSL routines:final_renegotiate:unsafe legacy renegotiation disabled:ssl/statem/extensions.c:946:`
'https://pixabay.com/photos/brother-sister-girl-family-boy-977170/', # Gives 403 forbidden on CI.
'https://stackoverflow.com/', # Stackoverflow links are no longer accessible from CI.
'https://math.stackexchange.com/', # Gives 403 forbidden on CI.
'https://vimeo.com/', # Gives 403 forbidden on CI.
'https://www.reddit.com/', # Gives 403 forbidden on CI.
'https://www.tensorflow.org/', # tensorflow.org apparently blocks CI.
# Need GitHub login.
'https://github.com/rerun-io/landing',
'https://github.com/rerun-io/documentation',
# Needs authentication
'https://edge.meilisearch.com',
'https://eu.posthog.com/project/', # Requires to be logged in on PostHog.
'https://github.com/rerun-io/internal-test-assets/\.*',
'https://github.com/google/mediapipe/issues/5188', # For some reason that link has always failed.
# Temporarily down or not accessible.
'https://cs.nyu.edu/~silberman/datasets/nyu_depth_v2.html', # Nyud links are down every now and then.
'https://eigen.tuxfamily.org/', # Website down https://gitlab.com/libeigen/eigen/-/issues/2804
'https://github.com/rerun-io/rerun/releases/download/prerelease', # Pre-release downloads may go down while a pre-release updates or pre-release CI partially breaks.
# Works but is really slow at times:
'https://openaccess.thecvf.com/content/CVPR2023/html/Du_Learning_To_Render_Novel_Views_From_Wide-Baseline_Stereo_Pairs_CVPR_2023_paper.html',
'https://anaconda.org/conda-forge/arrow-cpp',
#'^file:///', # Ignore local file links. They need to be tested, but it's useful for external links we have to ping.
]