Skip to content

Releases: lycheeverse/lychee

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.

Version 0.7.0

17 Apr 11:43
@mre mre
f7f9485
Compare
Choose a tag to compare

Refactoring work by @lebensterben

  • Major changes in lychee-lib::filter module:
    • Fields in Excludes except the RegexSet is now moved to Filter.
    • Filter contains Option<Excludes> and Option<Includes>, which are
      wrapper struct of RegexSet instead of Option<RegexSet>. As a result
      the code now looks cleaner.
    • Factored out some filtering logics to dedicated functions.
      • It's possible to write tests for those functions in addition to tests
        for the Filter struct.
    • Added docs to Filter::is_excluded and reorgnized the code.
  • placed derive_builder by typed_builder:
    • The internal interface very ugly, as admitted by the author, but we no
      longer have nested Options like before.
    • As a result, the Client building is much easier to read.
    • Main benefit of typed_builder is, the arguments feeded to builder is
      checked at compile time instead of run-time.
  • Fixed a bug in lychee::tests::usage and lychee-lib::stats::test.
    • Now it will clear environment variable which would otherwise cause an
      issue if GITHUB_TOKEN is set.
  • Updated dependencies.

Version 0.6.0

15 Apr 00:40
@mre mre
Compare
Choose a tag to compare

Major refactor

Version 0.6.0-alpha4

29 Mar 21:37
@mre mre
76fa56d
Compare
Choose a tag to compare
Version 0.6.0-alpha4 Pre-release
Pre-release
Merge pull request #200 from lycheeverse/exclude-mail-fix

Fix exclude mail, add tests

Version 0.6.0-alpha3

29 Mar 21:37
@mre mre
76fa56d
Compare
Choose a tag to compare
Version 0.6.0-alpha3 Pre-release
Pre-release

Fix broken email exclusion parameter