Skip to content

Releases: etiennebacher/jarl

0.5.0

24 Mar 14:32

Choose a tag to compare

Release Notes

Deprecations

  • The command-line argument --assignment and the jarl.toml argument assignment
    are both deprecated. Instead, you should use the following code in jarl.toml:

    [lint.assignment]
    operator = "<-" # or "="
    

    More info on these rule-specific options in jarl.toml in the "Features"
    section below (#334).

  • The rule "browser" is deprecated. Calls to browser() are now detected with
    the rule "undesirable_function" (#336).

Features

  • jarl.toml now accepts rule-specific options in subsections [lint.<rule_name>],
    such as:

    [lint]
    ...
    
    # In the rule `duplicated_arguments`, do not report calls to `my_function()`
    # and `list()` where multiple arguments have the same name.
    [lint.duplicated_arguments]
    extend-skipped-functions = ["my_function", "list"]
    

    These options are listed in the Configuration page (#333).

  • Jarl now also analyzes piped functions, e.g. the following code is reported by
    the any_is_na rule:

    is.na(x) |> any()
    
    x |> is.na() |> any()

    (#338).

  • Jarl now checks R code in more places:

    • chunks in Quarto and R Markdown documents.
      More information in the "R Markdown and Quarto" section (#50).
    • @examples and @examplesIf sections in roxygen2 comments (#385).
  • Added support for multiple jarl.toml, i.e. each file now uses the nearest
    jarl.toml. For example, Jarl can check a folder where several subfolders have
    their own jarl.toml (before, this would error). (#353)

  • New option include in jarl.toml, to complement exclude (#349).

  • New rules:

  • The output in terminal with output format full or concise is now organized
    in multiple sections (summary, warnings, notes) (#366).

  • Hovering a diagnostic now shows the rule name (#377).

  • Jarl can be used with pre-commit and prek, see Pre-commit tools (#379).

  • The CLI now errors early when some incompatible arguments are used (#437).

Bug fixes

  • fixed_regex could loop infinitely trying to add fixed = TRUE. This is
    fixed (#388).

  • Some fixes to ensure that automatic fixes don't introduce new violations or
    new parsing errors (#389).

  • Suppression comments now work better when inserted in piped chains (#397).

  • Fix a wrong parsing error when using next() or break() (#417).

Install jarl 0.5.0

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/etiennebacher/jarl/releases/download/0.5.0/jarl-installer.sh | sh

Install prebuilt binaries via powershell script

powershell -ExecutionPolicy Bypass -c "irm https://github.com/etiennebacher/jarl/releases/download/0.5.0/jarl-installer.ps1 | iex"

Download jarl 0.5.0

File Platform Checksum
jarl-aarch64-apple-darwin.tar.gz Apple Silicon macOS checksum
jarl-x86_64-apple-darwin.tar.gz Intel macOS checksum
jarl-x86_64-pc-windows-msvc.zip x64 Windows checksum
jarl-x86_64-pc-windows-msvc.msi x64 Windows checksum
jarl-aarch64-unknown-linux-gnu.tar.gz ARM64 Linux checksum
jarl-x86_64-unknown-linux-gnu.tar.gz x64 Linux checksum
jarl-aarch64-unknown-linux-musl.tar.gz ARM64 MUSL Linux checksum
jarl-x86_64-unknown-linux-musl.tar.gz x64 MUSL Linux checksum

0.5.0-alpha.4

09 Mar 17:18

Choose a tag to compare

0.5.0-alpha.4 Pre-release
Pre-release

Install jarl 0.5.0-alpha.4

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/etiennebacher/jarl/releases/download/0.5.0-alpha.4/jarl-installer.sh | sh

Install prebuilt binaries via powershell script

powershell -ExecutionPolicy Bypass -c "irm https://github.com/etiennebacher/jarl/releases/download/0.5.0-alpha.4/jarl-installer.ps1 | iex"

Download jarl 0.5.0-alpha.4

File Platform Checksum
jarl-aarch64-apple-darwin.tar.gz Apple Silicon macOS checksum
jarl-x86_64-apple-darwin.tar.gz Intel macOS checksum
jarl-x86_64-pc-windows-msvc.zip x64 Windows checksum
jarl-x86_64-pc-windows-msvc.msi x64 Windows checksum
jarl-aarch64-unknown-linux-gnu.tar.gz ARM64 Linux checksum
jarl-x86_64-unknown-linux-gnu.tar.gz x64 Linux checksum
jarl-aarch64-unknown-linux-musl.tar.gz ARM64 MUSL Linux checksum
jarl-x86_64-unknown-linux-musl.tar.gz x64 MUSL Linux checksum

0.5.0-alpha.3

28 Feb 14:46

Choose a tag to compare

0.5.0-alpha.3 Pre-release
Pre-release

Install jarl 0.5.0-alpha.3

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/etiennebacher/jarl/releases/download/0.5.0-alpha.3/jarl-installer.sh | sh

Install prebuilt binaries via powershell script

powershell -ExecutionPolicy Bypass -c "irm https://github.com/etiennebacher/jarl/releases/download/0.5.0-alpha.3/jarl-installer.ps1 | iex"

Download jarl 0.5.0-alpha.3

File Platform Checksum
jarl-aarch64-apple-darwin.tar.gz Apple Silicon macOS checksum
jarl-x86_64-apple-darwin.tar.gz Intel macOS checksum
jarl-x86_64-pc-windows-msvc.zip x64 Windows checksum
jarl-x86_64-pc-windows-msvc.msi x64 Windows checksum
jarl-aarch64-unknown-linux-gnu.tar.gz ARM64 Linux checksum
jarl-x86_64-unknown-linux-gnu.tar.gz x64 Linux checksum
jarl-aarch64-unknown-linux-musl.tar.gz ARM64 MUSL Linux checksum
jarl-x86_64-unknown-linux-musl.tar.gz x64 MUSL Linux checksum

0.5.0-alpha.2

21 Feb 14:40

Choose a tag to compare

0.5.0-alpha.2 Pre-release
Pre-release

Install jarl 0.5.0-alpha.2

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/etiennebacher/jarl/releases/download/0.5.0-alpha.2/jarl-installer.sh | sh

Install prebuilt binaries via powershell script

powershell -ExecutionPolicy Bypass -c "irm https://github.com/etiennebacher/jarl/releases/download/0.5.0-alpha.2/jarl-installer.ps1 | iex"

Download jarl 0.5.0-alpha.2

File Platform Checksum
jarl-aarch64-apple-darwin.tar.gz Apple Silicon macOS checksum
jarl-x86_64-apple-darwin.tar.gz Intel macOS checksum
jarl-x86_64-pc-windows-msvc.zip x64 Windows checksum
jarl-x86_64-pc-windows-msvc.msi x64 Windows checksum
jarl-aarch64-unknown-linux-gnu.tar.gz ARM64 Linux checksum
jarl-x86_64-unknown-linux-gnu.tar.gz x64 Linux checksum
jarl-aarch64-unknown-linux-musl.tar.gz ARM64 MUSL Linux checksum
jarl-x86_64-unknown-linux-musl.tar.gz x64 MUSL Linux checksum

0.5.0-alpha.1

20 Feb 12:20

Choose a tag to compare

0.5.0-alpha.1 Pre-release
Pre-release

Install jarl 0.5.0-alpha.1

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/etiennebacher/jarl/releases/download/0.5.0-alpha.1/jarl-installer.sh | sh

Install prebuilt binaries via powershell script

powershell -ExecutionPolicy Bypass -c "irm https://github.com/etiennebacher/jarl/releases/download/0.5.0-alpha.1/jarl-installer.ps1 | iex"

Download jarl 0.5.0-alpha.1

File Platform Checksum
jarl-aarch64-apple-darwin.tar.gz Apple Silicon macOS checksum
jarl-x86_64-apple-darwin.tar.gz Intel macOS checksum
jarl-x86_64-pc-windows-msvc.zip x64 Windows checksum
jarl-x86_64-pc-windows-msvc.msi x64 Windows checksum
jarl-aarch64-unknown-linux-gnu.tar.gz ARM64 Linux checksum
jarl-x86_64-unknown-linux-gnu.tar.gz x64 Linux checksum
jarl-aarch64-unknown-linux-musl.tar.gz ARM64 MUSL Linux checksum
jarl-x86_64-unknown-linux-musl.tar.gz x64 MUSL Linux checksum

0.4.0

05 Feb 12:20

Choose a tag to compare

Release Notes

Breaking changes

  • The support for comments to hide violations (aka suppression comments, aka
    # nolint comments in lintr) has been entirely reworked (#218). It is no
    longer compatible with lintr's comments. Instead, Jarl now uses # jarl-ignore
    comments and follows different rules regarding the syntax and location of those
    comments. Detailed documentation is available in the section "Ignoring diagnostics"
    on the website. As part of this rewrite, the following rules have been added:

    • blanket_suppression (#243)
    • misnamed_suppression (#309)
    • misplaced_file_suppression (#305)
    • misplaced_suppression (#307)
    • unexplained_suppression (#304)
    • unmatched_range_suppression (#312)
    • unused_suppression (#310)

Features

  • New CLI argument --statistics to show the number of violations per rule instead
    of the details of each violation. Jarl prints a hint to use this argument when
    more than 15 violations are reported (only when --output-format is concise
    or full). This value can be configured with the environment variable
    JARL_N_VIOLATIONS_HINT_STAT. (#250, #266)

  • Jarl now looks in parent folders for jarl.toml. It searches until the user
    config folder is reached (the location of this folder depends on the OS:
    ~/.config on Unix and ~/AppData/Roaming on Windows). Jarl uses the first
    jarl.toml that is found. This is useful to store settings that should be
    common to all projects (e.g. assignment = "<-") without creating a
    jarl.toml, which is a common situation for standalone R scripts. (#253)

  • New rules:

  • When the output format is full or concise, rule names now have a hyperlink
    leading to the documentation website (#278).

  • any_is_na now reports NA %in% x (#286).

Other changes

  • The following rules are now disabled by default. They still exist and the user
    can choose to use them, but they were deemed too noisy for limited benefit to
    be enabled by default:

  • equals_na now reports x %in% NA cases, as documented (#285).

  • There are now binaries available for linux-musl (x64 and arm64) (#287).

Bug fixes

  • When output-format is json or github, additional information displayed in
    the terminal (e.g. timing) isn't included anymore to avoid parsing errors (#254).

  • Fixed a bug in the number of "fixable diagnostics" reported when the arg
    fixable is present in jarl.toml but --fix is not passed (#255).

  • fixed_regex is now correctly classified as "Performance" instead of
    "Readability" rule internally (#279).

  • Default values of function parameters are now analyzed too (#282).

  • duplicated_arguments doesn't report anymore cases where argument names "
    and ' were conflated, e.g.

    switch(x, `"` = "double", `'` = "single")

    (#288).

Documentation

  • New section in the Integrations page to show how to use Jarl in various
    CI/CD platforms (#289, @philipp-baumann).

Install jarl 0.4.0

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/etiennebacher/jarl/releases/download/0.4.0/jarl-installer.sh | sh

Install prebuilt binaries via powershell script

powershell -ExecutionPolicy Bypass -c "irm https://github.com/etiennebacher/jarl/releases/download/0.4.0/jarl-installer.ps1 | iex"

Download jarl 0.4.0

File Platform Checksum
jarl-aarch64-apple-darwin.tar.gz Apple Silicon macOS checksum
jarl-x86_64-apple-darwin.tar.gz Intel macOS checksum
jarl-x86_64-pc-windows-msvc.zip x64 Windows checksum
jarl-x86_64-pc-windows-msvc.msi x64 Windows checksum
jarl-aarch64-unknown-linux-gnu.tar.gz ARM64 Linux checksum
jarl-x86_64-unknown-linux-gnu.tar.gz x64 Linux checksum
jarl-aarch64-unknown-linux-musl.tar.gz ARM64 MUSL Linux checksum
jarl-x86_64-unknown-linux-musl.tar.gz x64 MUSL Linux checksum

0.4.0-alpha.2

27 Jan 08:38

Choose a tag to compare

0.4.0-alpha.2 Pre-release
Pre-release

Install jarl 0.4.0-alpha.2

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/etiennebacher/jarl/releases/download/0.4.0-alpha.2/jarl-installer.sh | sh

Install prebuilt binaries via powershell script

powershell -ExecutionPolicy Bypass -c "irm https://github.com/etiennebacher/jarl/releases/download/0.4.0-alpha.2/jarl-installer.ps1 | iex"

Download jarl 0.4.0-alpha.2

File Platform Checksum
jarl-aarch64-apple-darwin.tar.gz Apple Silicon macOS checksum
jarl-x86_64-apple-darwin.tar.gz Intel macOS checksum
jarl-x86_64-pc-windows-msvc.zip x64 Windows checksum
jarl-x86_64-pc-windows-msvc.msi x64 Windows checksum
jarl-aarch64-unknown-linux-gnu.tar.gz ARM64 Linux checksum
jarl-x86_64-unknown-linux-gnu.tar.gz x64 Linux checksum
jarl-aarch64-unknown-linux-musl.tar.gz ARM64 MUSL Linux checksum
jarl-x86_64-unknown-linux-musl.tar.gz x64 MUSL Linux checksum

0.4.0-alpha.1

14 Jan 17:25

Choose a tag to compare

0.4.0-alpha.1 Pre-release
Pre-release

Install jarl 0.4.0-alpha.1

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/etiennebacher/jarl/releases/download/0.4.0-alpha.1/jarl-installer.sh | sh

Install prebuilt binaries via powershell script

powershell -ExecutionPolicy Bypass -c "irm https://github.com/etiennebacher/jarl/releases/download/0.4.0-alpha.1/jarl-installer.ps1 | iex"

Download jarl 0.4.0-alpha.1

File Platform Checksum
jarl-aarch64-apple-darwin.tar.gz Apple Silicon macOS checksum
jarl-x86_64-apple-darwin.tar.gz Intel macOS checksum
jarl-x86_64-pc-windows-msvc.zip x64 Windows checksum
jarl-x86_64-pc-windows-msvc.msi x64 Windows checksum
jarl-aarch64-unknown-linux-gnu.tar.gz ARM64 Linux checksum
jarl-x86_64-unknown-linux-gnu.tar.gz x64 Linux checksum

0.3.0

17 Dec 21:12

Choose a tag to compare

Release Notes

Breaking changes

  • Jarl now excludes by default file paths matching the following patterns:
    .git/, renv/, revdep/, cpp11.R, RcppExports.R, extendr-wrappers.R,
    and import-standalone-*.R.

    A new CLI argument --no-default-exclude can be used to check those files as
    well. This argument overrides the default-exclude = true option when set in
    jarl.toml (#178, @novica).

Features

  • --output-format json now contains two fields diagnostics and errors (#219).
  • Better support for namespaced function calls, both when reporting violations
    and when fixing them (#221).
  • The class_equals rule now also reports cases like identical(class(x), "foo")
    and identical("foo", class(x)) (#234).
  • New rules:
    • expect_s3_class (#235)
    • expect_type (#226)
    • fixed_regex (#227)
    • sprintf (#224)
    • string_boundary (#225)
    • vector_logic (#238)

Fixes

  • # nolint comments are now properly applied to nodes that are function arguments, e.g.
    foo(
      # nolint
      any(is.na(x))
    )
    does not report a violation anymore (#229).

Other changes

  • expect_named no longer reports cases like expect_equal(x, names(y)) because
    rewriting those as expect_named(y, x) would potentially change the intent of
    the test and the way it is read (#220).

Install jarl 0.3.0

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/etiennebacher/jarl/releases/download/0.3.0/jarl-installer.sh | sh

Install prebuilt binaries via powershell script

powershell -ExecutionPolicy Bypass -c "irm https://github.com/etiennebacher/jarl/releases/download/0.3.0/jarl-installer.ps1 | iex"

Download jarl 0.3.0

File Platform Checksum
jarl-aarch64-apple-darwin.tar.gz Apple Silicon macOS checksum
jarl-x86_64-apple-darwin.tar.gz Intel macOS checksum
jarl-x86_64-pc-windows-msvc.zip x64 Windows checksum
jarl-x86_64-pc-windows-msvc.msi x64 Windows checksum
jarl-aarch64-unknown-linux-gnu.tar.gz ARM64 Linux checksum
jarl-x86_64-unknown-linux-gnu.tar.gz x64 Linux checksum

0.2.1

29 Nov 09:21

Choose a tag to compare

Release Notes

Other

  • Important performance improvement when using --fix, in particular in projects with many R files (#217).

Install jarl 0.2.1

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/etiennebacher/jarl/releases/download/0.2.1/jarl-installer.sh | sh

Install prebuilt binaries via powershell script

powershell -ExecutionPolicy Bypass -c "irm https://github.com/etiennebacher/jarl/releases/download/0.2.1/jarl-installer.ps1 | iex"

Download jarl 0.2.1

File Platform Checksum
jarl-aarch64-apple-darwin.tar.gz Apple Silicon macOS checksum
jarl-x86_64-apple-darwin.tar.gz Intel macOS checksum
jarl-x86_64-pc-windows-msvc.zip x64 Windows checksum
jarl-x86_64-pc-windows-msvc.msi x64 Windows checksum
jarl-aarch64-unknown-linux-gnu.tar.gz ARM64 Linux checksum
jarl-x86_64-unknown-linux-gnu.tar.gz x64 Linux checksum