Skip to content

Releases: lycheeverse/lychee

Version 0.11.0

22 Feb 20:45
@mre mre
123742a
Compare
Choose a tag to compare

Summary

Adds support for overriding accepted status codes for cached URIs. Previously,
the override was ignored for cached URIs. Furthermore reduces the false positive
rate by excluding <script> tags by default and recursively skipping verbatim
elements.

What's Changed

  • Allow overriding accepted status codes for cached URIs by @mre in #843
  • Add different verbosity levels by @mre in #824
  • Exclude <script> tags by default by @mre in #848
  • Recursively skip verbatim elements by @mre in #847
  • Harden URL detection and extend verbatim elements by @mre in #899
  • Remove address from verbatim elements by @mre in #901
  • Properly handle youtu.be shortlinks by @mre in #908
  • Less verbose cache age formatting by @mre in #849
  • Fix verbosity serialization by @mre in #853
  • Refactor check function by @mre in #860
  • Add more markdown extensions by @mre in #866
  • Fix Rust 1.66 clippy lints by @mre in #879
  • Extend response stats in verbose mode by @mre in #882
  • Change progress bar style by @mre in #718
  • Update automerge config by @mre in #893
  • Don't build Docker image for pushes to arbitrary branches by @mre in #894
  • Fix automerge config by @mre in #904
  • chore!: improve client and remap modules by @lebensterben in #913
  • Experiment with Github actions cache by @mre in #919
  • Try nextest for CI builds by @mre in #921
  • Run publish-check in parallel with other jobs by @mre in #922
  • ci: update checkout action to v3 by @lebensterben in #927
  • Introduce new let...else syntax by @mre in #936
  • Fix typos by @kianmeng in #944
  • Add note about lychee.toml and exclude_path to README.md by @ruzickap in #823
  • Update dependencies

New Contributors

Full Changelog: v0.10.3...v0.11.0

Version 0.10.3

08 Nov 23:02
@mre mre
Compare
Choose a tag to compare

Summary

Bugfix release to improve example mail address filtering.
This was an oversight so far that became apparent after our
recent fix for email addreses with query params
(e.g. test@example.com?subject=test).
The parsing of email addresses has improved and so we detect
more mail addresses, but we didn't check if they belonged
to an example domain, causing false-positive checks.

What's Changed

  • Move back to cargo publish by @mre in #814
  • Don't check example mail addresses by default by @mre in #815

Full Changelog: v0.10.2...v0.10.3

Version 0.10.2

07 Nov 23:43
@mre mre
35ccfb8
Compare
Choose a tag to compare

Summary

Adds a few small features (file output for --dump, Markdown status output)
and fixes a few bugs with Twitter and email handling.

What's Changed

  • Fix parsing error of email addresses with query params by @mre in #809
  • Add support for dumping links to file by @mre in #810
  • Reorder md output by @tooomm in #708
  • Update Troubleshooting Guide by @abordage in #723
  • Add new SVG-based screencast by @mre in #693
  • Markdown-status output (--format=markdown) by @mre in #729
  • Listing InnerSourceCommons/InnerSourcePatterns as user by @spier in #730
  • Check Twitter URLs using nitter.net by @mre in #731
  • Correct a typo in CONTRIBUTING.md by @felixonmars in #742
  • Extend description of --exclude to also exclude email addresses, not only URLs by @andygrunwald in #801
  • Fix syntax highlighting in README by @jwilk in #792
  • Update dependencies

New Contributors

Full Changelog: v0.10.1...v0.10.2

v0.10.1

27 Jul 08:50
@mre mre
b76285c
Compare
Choose a tag to compare

Summary

This is mostly a bugfix-release which fixes some regressions and improves ergonomics.

What's Changed

  • Improve configuration example by @vpereira01 in #631
  • Fix parsing errors with config options by @mre in #632
  • Add support for parsing list of status codes from config file by @mre in #636
  • Refactor request types by @mre in #637
  • Add basic codespaces setup by @mre in #654
  • Replace lazy hashset with matches! by @untitaker in #656
  • Add test for mailto address with query params by @mre in #655
  • Add http://www.w3.org/1999/xlink to list of false positives by @mre in #664
  • Add status code in Markdown output by @walterbm in #677
  • Trigger CI on push or pull request, but not both by @mre in #689
  • Fix deserialize of lycheecache status codes by @walterbm in #685
  • Skip caching unsupported and excluded URLs by @mre in #692
  • Update description with token now supported by @fauust in #697
  • Update to gracefully handle nonexistent relative paths by @walterbm in #691
  • Update dependencies

New Contributors

Full Changelog: v0.10.0...v0.10.1

Version 0.10.0

30 May 21:13
@mre mre
b40aacd
Compare
Choose a tag to compare

Summary

This release adds some long-awaited features and adds support for excluding
paths, code blocks and nofollow targets from checking. Please find details below.

Major Changes

  • Add support for excluding paths from link checking (#623) @mre
  • Add support for URI remapping (#620) @mre
  • Exclude code blocks from checking (#523) @mre
  • Add support for comments in .lycheeignore (#616) @mre
  • Add support for nofollow (#572) @mre
  • Allow input URLs without scheme (fixes #567) @mre
  • Also dump excluded links (#615) @mre
  • Exclude example domains as per RFC 2606 from checking (#627)
  • Set HTTP connect timeout and a TCP keepalive (#617) @mre
  • Extract more status information from reqwest (#577) @mre
  • Refactor response formatting (#599) @mre
  • Add missing panic documentation (#561) @mre
  • Skip Docker login on PRs from forks (#586) @MichaIng
  • Enhance verbosity check (#578) @MichaIng
  • Optimize plaintext extractor for small strings (#565) @mre
  • Update scheme to sequence in example config (#576) @itamarhaber
  • Regression: Fix cache verbosity issue (fixes #562) @mre
  • Regression: Ignore invalid URLs (#571) @mre
  • Update dependencies

Full Changelog: v0.9.0...v0.10.0

Thanks to all the testers, contributors, and maintainers for improving lychee! ❤️

v0.9.0

22 Mar 12:55
@mre mre
328c965
Compare
Choose a tag to compare

Major Changes

This is a bigger release for lychee with new features, bug fixes, performance improvements,
cleaner output formatting, and better docs.

We moved to a new HTML engine, html5gum by @untitaker.
The old engine, html5ever is still supported by setting the
LYCHEE_USE_HTML5EVER=1 environment variable, but it will be deprecated soon,
so let us know if you run into issues with the new engine.

Previously it could happen that lychee panicked on invalid links. There is a PR for reqwest to fix the issue, but in the meantime we added a workaround to avoid the panic.

Some more highlights:

  • lychee output is now less verbose to focus on what matters.
  • We moved from hubcaps to octocrab as our Github API client.
  • The Docker image now also supports Apple Silicon.
  • Across the board, we improved link checking speed and reduced allocations.

Pull Requests

  • Improve Github API usage by @mre in #453
  • Add caching functionality (v2) by @mre in #443
  • Simplify error messages by @mre in #462
  • Add more information about mail errors by @mre in #463
  • Fix bugs in extractor; reduce allocs by @mre in #464
  • Add missing Github exclusions; sort entries by @mre in #473
  • Add Alpine page for benchmark; refactor code by @mre in #481
  • lychee-bin: replace lazy_static by const_format by @lebensterben in #495
  • Add html5gum as alternative link extractor by @untitaker in #480
  • fix constant updating of progressbar by @untitaker in #488
  • Fix default config by @mre in #491
  • update rust-toolchain to .toml format by @lebensterben in #496
  • Update license files by @lebensterben in #497
  • lychee-lib::client reworked by @lebensterben in #500
  • Add Docker semver tagging for new multiarch image by @mre in #503
  • Multiarch for main Docker workflow by @mre in #506
  • replace hubcaps by octocrab by @lebensterben in #502
  • Use captured identifiers in format strings by @mre in #507
  • Replace plain String with SecretString for GitHub token by @lebensterben in #509
  • Prevent flaky tests by @mre in #514
  • Only login to Dockerhub on image push by @mre in #515
  • Disable Docker login for dependabot by @mre in #519
  • Error cleanup by @mre in #510
  • Improved IPv6 filtering support by @lebensterben in #501
  • Response output overhaul by @mre in #524
  • Fix link to documentation by @mre in #527
  • Update link to documentation by @mre in #528
  • Remove background from logo by @mre in #526
  • Make retry wait time configurable by @mre in #525
  • Print errors with a different format for easier clickability (#532) by @mre in #533
  • Fix broken pipe error on failing writes to stdout by @mre in #535
  • Print Github token error once at the end by @mre in #537
  • Add more comments to path methods by @mre in #543
  • Add Docker pulls badge by @mre in #550
  • Avoid reqwest panic on invalid URIs by @mre in #557
  • Update dependencies

Full Changelog: v0.8.2...v0.9.0

Thanks to all the testers, contributors, and maintainers for improving lychee! ❤️

Version 0.8.2

10 Jan 00:43
@mre mre
0645177
Compare
Choose a tag to compare
  • Improve concurrency with streams (#330)
  • Add ability to recursively walk a directory for links (e.g. lychee .)
  • Fix false-positives for special Github URLs (like /sponsors or /marketplace)
  • Use tokenizer for extraction; add benchmark (#424)
  • Max concurrency moved to check (#419)
  • Add support for .lycheeignore file #308 (#402)
  • Only print source in verbose mode (#400)
  • Use thiserror for error handling (#399)
  • Update docs and tests

Version 0.8.1

18 Nov 00:30
@mre mre
30a0fd3
Compare
Choose a tag to compare
  • Add support for different output formats (compact, detailed, markdown) (#375)
  • Fix clippy lint (#383) by @dcroote
  • Add more known false positive schema domains (#376)
  • Remove srcset attribute from list of "link" attrs (#393) by @untitaker
  • Update dependencies

Version 0.8.0

27 Oct 23:14
@mre mre
Compare
Choose a tag to compare

This is a major milestone for lychee, because we added support for checking local
files. To do so, you can now set a a directory as --base (e.g. /path/to/files) to check relative URLs.
Check the docs for more info.

Below is a list of all major changes in this version.

  • Add support for local files (#262)
  • Add new flag --require-https for checking if a HTTPS URL is available (#195)
  • Add support for dumping links without checking them (#99)
  • Don't exclude mail on --exclude-all-private (#316)
  • Don't panic on unknown status codes (#234)
  • Make inputs required (show help message if not provided) (#329)
  • Silently ignore absolute paths without base (#338)
  • Cache absolute_path to decrease allocations (#346)
  • Imply "localhost" when loopback IPs are excluded (#351)
  • Extract base from the source URL if --base is empty (#358)
  • Optimize Dockerfile (#326)
  • Add an image description to DockerHub (#325)
  • Move to debian/bullseye:slim as base image (#370)
  • Fix publish workflow (#309)
  • Use cargo-publish-all for releases (#312)
  • Add http://www.w3.org/2000/svg to known false positives (#359)
  • Add support for async profiling using tokio-console (#318)
  • Refactor extractor (#354)
  • Filter out directories with suffixes that look like known extensions
  • Avoid double-encoding already encoded destination paths
  • Make error message for broken file links more understandable
  • Refactoring (e.g. use Or-Patterns from Rust 1.53)
  • Bump crate dependencies
  • Update Makefile and CI pipelines

Thanks to the following amazing devs who contributed features to this release
and reviewed pull requests (alphabetically ordered):

Version 0.7.1

03 Sep 17:53
@mre mre
Compare
Choose a tag to compare
  • Add support for --exclude-file by @dblock. See #302.
  • Simple URI cache: Repeated links are only checked once. See #243.
  • Silently ignore unsupported schemes (e.g. slack://). See #199.
  • Add support for multiple schemes (#214 and #237).
  • Add missing Rust docs for lychee-lib (#231).
  • Update dependencies.