xrefcheck/CHANGES.md
Diogo Castro 1964f57280
[#162] Do not cancel the progress bar thread
Problem: The output of xrefcheck sometimes appears as a confusing mess,
see here for details and examples:
https://github.com/serokell/xrefcheck/issues/162

The culprit seems to be the `withAsync` used in `verifyRepo`. This
spawns a thread that prints and refreshes the progress bar, while the
main thread coordinates the verification of references.

The problem here is that, as the docs of `withAsync` explain, when the
main thread finishes/throws, the spawned thread will be cancelled with
`uninterruptibleCancel`.

If the thread is in the middle of updating the progress bar (printing
return carriages, writing over an existing line, printing control
characters to change the text color, etc), it'll be abruptly interrupted
and will not be given the chance to finish cleanly.

Solution: replace `withAsync` with `loopAsyncUntil`. This lets the
printer thread finish what it's currently doing.
2022-09-26 14:12:57 +01:00

4.6 KiB

Unreleased

  • #145
    • Add check that there is no unknown fields in config.
  • #158
    • Fixed bug when we reported footnotes as broken links
  • #163
    • Fixed an issue where the progress bar thread might be unexpectedly cancelled and jumble up the output.

0.2.1

  • #127
    • Support Retry-After headers with dates.
  • #117
    • Forbid verifying a single file using --root command line option.
  • #115
    • Improved parsing of anchor html tags inside headers.
  • #109
    • Fixed bug when prefixing --ignored and --root paths with ./
  • #85
    • Make possible to specify whether ignore localhost links, use check-localhost CLA argument (by default localhost links will not be checked).
    • Make possible to ignore auth failures (assume 'protected' links valid), use ignoreAuthFailures parameter of config.
  • #66
    • Added support for ftp links.
  • #74
    • Add the duplication detection & verification result caching algorithm for external references.
  • #82
    • Fix the issue of having the lowest level context duplicated, caused by the root's trailing path separator.
  • #88
    • Handle the "429 too many requests" errors & attempt to eliminate them during verification.
  • #128
    • Make ignoreRefs a required parameter.
  • #129
    • Add support for the id attribute in anchors.
  • #116
    • Allow certain reserved characters to be present in the query strings of the URLs.
  • #130
    • Fixed bug with ignoring checks for relative anchors.
  • #132
    • Display URL parsing errors.
  • #131
    • Add support for glob patterns to ignored and notScanned.
    • Remove support for directory names from ignored and notScanned.
    • Fix bug with ignored not ignoring files with broken xrefcheck annotations.
  • #142
    • Remove check-localhost CLI option and checkLocalhost config option.
    • Add a regex matching localhost links to the ignoreRefs field of the default config.
  • #68
    • Recognise manual HTML-anchors inside headers.
  • #141
    • Dump all the errors from different files.
    • Fix bug where no errors were reported about broken link annotation and unrecognised annotation.
  • #159
    • Make all config options optional.

0.2

  • #57
    • Added flavor field to config. Also see config sample.
    • Config generated with dump-config CLI command now depends on the provided repository type.

0.1.3

  • #58
    • Switch to lts-17.3.
  • #53
    • Make possible to include a regular expression in ignoreRefs parameter of config to ignore external references.
    • Add support of right in-place ignoring annotations such as ignore file, ignore paragraph and ignore link.

0.1.2

  • #44
    • Decide whether to show progress bar by default depending on CI env variable.
    • Added --progress option.

0.1.1.2

  • #34
    • Do not depend on autoexporter and base-noprelude.

0.1.1.1

  • #30
    • Do not depend on loot-prelude package.

0.1.1

  • #19
    • Make ignored in config consider only exact matches.
    • Improve virtual files consideration.
    • Add ignored CLI option.

0.1.0.0

Initial release.