markdown-link-check icon indicating copy to clipboard operation
markdown-link-check copied to clipboard

Add a summary with a key

Open jsoref opened this issue 11 months ago • 13 comments

Reading the log from [email protected] in https://github.com/check-spelling-sandbox/opentelemetry-collector-contrib/actions/runs/12681692584/job/35345929645 is frustrating. There's no output at the top indicating what to look for for errors and no output at the bottom.

Errors appear to be output like this, but it's really not easy to find:

[✖] https://library.humio.com/humio-server/api-ingest.html → Status: 403

Adding a small key would be immensely helpful to the average drive-by contributor who trips on this product's output while trying to do something totally unrelated.

That could be something like:

count files checked count errors (indicated by [✖]) count working links (indicated by [✓])

jsoref avatar Jan 09 '25 03:01 jsoref

This issue has been marked as stale because it has been open 60 days with no activity. It will be closed in 30 days unless the stale label is removed or someone adds a comment.

github-actions[bot] avatar Apr 08 '25 08:04 github-actions[bot]

@tcort @WillGibson ?

jsoref avatar Apr 08 '25 11:04 jsoref

I agree that a summary of the actual errors would make the output more useable.

Have you tried the --quiet flag?

See Usage.

WillGibson avatar Apr 08 '25 13:04 WillGibson

I'm not a direct consumer. I run across other repositories that use this module. Thus, I need the thing itself to change behavior and for those repositories to upgrade.

https://github.com/check-spelling-sandbox/opentelemetry-collector-contrib/actions/runs/14335898530/job/40182799158 is a run with --quiet ...

It does technically give information I need, and it's definitely less noisy. I wouldn't say it's particularly great.

Fwiw, I think this is a competing product: https://github.com/check-spelling-sandbox/opentelemetry-collector-contrib/actions/runs/12701467283/job/35406098424

I'm not a huge fan of its output either, but all in all, I think it's a bit better (I think the open-telemetry org is in the process of migrating to that component which is why I have a run for it).

jsoref avatar Apr 08 '25 14:04 jsoref

Taking this as an example output...

  ERROR: 3 dead links found in ./CHANGELOG.md !
  [✖] https://dev.mysql.com/doc/refman/8.3/en/information-schema-tables-table.html → Status: 403
  [✖] https://dev.mysql.com/doc/refman/8.0/en/server-status-variables.html → Status: 403
  [✖] https://library.humio.com/humio-server/api-ingest.html → Status: 403

  [✖] https://docs.datadoghq.com/opentelemetry/collector_exporter/configuration/ → Status: 404
  ERROR: 1 dead links found in ./exporter/datadogexporter/README.md !

  [✖] https://github.com/SumoLogic/sumologic-otel-collector/tree/main/pkg/exporter/sumologicexporter#sumo-logic-exporter → Status: 404
  ERROR: 1 dead links found in ./exporter/sumologicexporter/README.md !

  [✖] https://github.com/open-telemetry/opentelemetry-collector/blob/main/exporter/exporterbatcher/config.go → Status: 404
  ERROR: 1 dead links found in ./exporter/elasticsearchexporter/README.md !

  ERROR: 1 dead links found in ./receiver/mysqlreceiver/documentation.md !
  [✖] https://dev.mysql.com/doc/refman/8.0/en/document-store.html → Status: 403
Check that anchor links are lowercase
Error: Process completed with exit code 1.

What would you like to see?

I would also be interested in know what's in /exporter/elasticsearchexporter/README.md that would make it say there's a dead link, then output nothing. Is there a hyperlink with nothing in it like [Mr. Nobody]() or something?

WillGibson avatar Apr 09 '25 16:04 WillGibson

https://github.com/check-spelling-sandbox/opentelemetry-collector-contrib/blob/9c49c9725b7b139733360ac7b73de9ce7b1dc33a/exporter/elasticsearchexporter/README.md?plain=1#L210

My guess is it's this:

  - `retry_on_status` (default=[429]): Status codes that trigger request or document level retries. Request level retry and document level retry status codes are shared and cannot be configured separately. To avoid duplicates, it defaults to `[429]`.

Specifically the [429] part

But that's a fairly uneducated guess.

jsoref avatar Apr 09 '25 17:04 jsoref

To your earlier question, I'd probably prefer this:

[403] https://dev.mysql.com/doc/refman/8.0/en/document-store.html 
[403] https://dev.mysql.com/doc/refman/8.0/en/server-status-variables.html 
[403] https://dev.mysql.com/doc/refman/8.3/en/information-schema-tables-table.html 
[403] https://library.humio.com/humio-server/api-ingest.html 
[404] https://docs.datadoghq.com/opentelemetry/collector_exporter/configuration/ 
[404] https://github.com/SumoLogic/sumologic-otel-collector/tree/main/pkg/exporter/sumologicexporter#sumo-logic-exporter 
[404] https://github.com/open-telemetry/opentelemetry-collector/blob/main/exporter/exporterbatcher/config.go 

Assuming this is using raw files which means I can do a search-and-replace in my codebase, I don't really care where you found a string, I can replace it without caring where you found it.

I don't think I need summaries, if I care, I can trivially get counts on my own.

jsoref avatar Apr 09 '25 17:04 jsoref

@jsoref Please ping the people when you are talking directly to one specific person please.

@WillGibson I guess above answer is for you to check @WillGibson

Many thanks

BaseMax avatar Apr 09 '25 20:04 BaseMax

@jsoref I suspect other people like having the context of where the dead link was found, but I prefer your suggestions for the dead link output.

I think this might be a fairly easy rework of the existing output and easier to read as a human or parse programatically...

./CHANGELOG.md
  [403] https://dev.mysql.com/doc/refman/8.3/en/information-schema-tables-table.html
  [403] https://dev.mysql.com/doc/refman/8.0/en/server-status-variables.html
  [403] https://library.humio.com/humio-server/api-ingest.htmlhttps://docs.datadoghq.com/opentelemetry/collector_exporter/configuration/

./exporter/datadogexporter/README.md
  [404] https://github.com/SumoLogic/sumologic-otel-collector/tree/main/pkg/exporter/sumologicexporter#sumo-logic-exporter

./exporter/sumologicexporter/README.md
  [404] https://github.com/open-telemetry/opentelemetry-collector/blob/main/exporter/exporterbatcher/config.go

./receiver/mysqlreceiver/documentation.md
  [403] https://dev.mysql.com/doc/refman/8.0/en/document-store.html

WillGibson avatar Apr 10 '25 06:04 WillGibson

@WillGibson note that this doesn't actually address my original complaint of not having a key. I think I might still want one. The problem is that the more I understand the output the less I'm able to reason about the program as a drive-by user.

jsoref avatar Apr 10 '25 11:04 jsoref

This issue has been marked as stale because it has been open 60 days with no activity. It will be closed in 30 days unless the stale label is removed or someone adds a comment.

github-actions[bot] avatar Jun 16 '25 08:06 github-actions[bot]

...

jsoref avatar Jun 16 '25 11:06 jsoref

This issue has been marked as stale because it has been open 60 days with no activity. It will be closed in 90 days unless the stale label is removed or someone adds a comment.

github-actions[bot] avatar Sep 16 '25 08:09 github-actions[bot]

This issue was closed because it has been marked as stale for 90 days with no activity.

github-actions[bot] avatar Dec 15 '25 08:12 github-actions[bot]