Releases: etiennebacher/jarl
0.5.0
Release Notes
Deprecations
-
The command-line argument
--assignmentand thejarl.tomlargumentassignment
are both deprecated. Instead, you should use the following code injarl.toml:[lint.assignment] operator = "<-" # or "="More info on these rule-specific options in
jarl.tomlin the "Features"
section below (#334). -
The rule
"browser"is deprecated. Calls tobrowser()are now detected with
the rule"undesirable_function"(#336).
Features
-
jarl.tomlnow 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
theany_is_narule: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). @examplesand@examplesIfsections inroxygen2comments (#385).
- chunks in Quarto and R Markdown documents.
-
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 ownjarl.toml(before, this would error). (#353) -
New option
includeinjarl.toml, to complementexclude(#349). -
New rules:
dplyr_filter_out(#393)dplyr_group_by_ungroup(#395)duplicated_function_definition(#358)expect_match(#364, @bjyberg)expect_no_match(#368, @bjyberg)invalid_chunk_suppression(#350)nzchar(#406, @maelle)quotes(#381, @bjyberg)undesirable_function(replacesbrowser) (#336)unused_function(#362)
-
The output in terminal with output format
fullorconciseis now organized
in multiple sections (summary, warnings, notes) (#366). -
Hovering a diagnostic now shows the rule name (#377).
-
Jarl can be used with
pre-commitandprek, see Pre-commit tools (#379). -
The CLI now errors early when some incompatible arguments are used (#437).
Bug fixes
-
fixed_regexcould loop infinitely trying to addfixed = 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()orbreak()(#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 | shInstall 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
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 | shInstall 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
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 | shInstall 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
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 | shInstall 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
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 | shInstall 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
Release Notes
Breaking changes
-
The support for comments to hide violations (aka suppression comments, aka
# nolintcomments inlintr) has been entirely reworked (#218). It is no
longer compatible withlintr'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:
Features
-
New CLI argument
--statisticsto 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-formatisconcise
orfull). 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:
~/.configon Unix and~/AppData/Roamingon Windows). Jarl uses the first
jarl.tomlthat 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
fullorconcise, rule names now have a hyperlink
leading to the documentation website (#278). -
any_is_nanow reportsNA %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_nanow reportsx %in% NAcases, as documented (#285). -
There are now binaries available for
linux-musl(x64andarm64) (#287).
Bug fixes
-
When
output-formatisjsonorgithub, 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
fixableis present injarl.tomlbut--fixis not passed (#255). -
fixed_regexis now correctly classified as "Performance" instead of
"Readability" rule internally (#279). -
Default values of function parameters are now analyzed too (#282).
-
duplicated_argumentsdoesn't report anymore cases where argument names"
and'were conflated, e.g.switch(x, `"` = "double", `'` = "single")
(#288).
Documentation
- New section in the
Integrationspage 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 | shInstall 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
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 | shInstall 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
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 | shInstall 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
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,
andimport-standalone-*.R.A new CLI argument
--no-default-excludecan be used to check those files as
well. This argument overrides thedefault-exclude = trueoption when set in
jarl.toml(#178, @novica).
Features
--output-format jsonnow contains two fieldsdiagnosticsanderrors(#219).- Better support for namespaced function calls, both when reporting violations
and when fixing them (#221). - The
class_equalsrule now also reports cases likeidentical(class(x), "foo")
andidentical("foo", class(x))(#234). - New rules:
Fixes
# nolintcomments are now properly applied to nodes that are function arguments, e.g.does not report a violation anymore (#229).foo( # nolint any(is.na(x)) )
Other changes
expect_namedno longer reports cases likeexpect_equal(x, names(y))because
rewriting those asexpect_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 | shInstall 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
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 | shInstall 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 |