Commit Graph

168 Commits

Author SHA1 Message Date
Vidar Holen
aac0823e6b Stable version v0.11.0
This release is dedicated to Satisfactory, even though my giant
3D ball of rat's nest conveyor belt spaghetti is anything but.

  CHANGELOG

  ## v0.11.0 - 2025-08-03
  ### Added
  - SC2327/SC2328: Warn about capturing the output of redirected commands.
  - SC2329: Warn when (non-escaping) functions are never invoked.
  - SC2330: Warn about unsupported glob matches with [[ .. ]] in BusyBox.
  - SC2331: Suggest using standard -e instead of unary -a in tests.
  - SC2332: Warn about `[ ! -o opt ]` being unconditionally true in Bash.
  - SC3062: Warn about bashism `[ -o opt ]`.
  - Optional `avoid-negated-conditions`: suggest replacing `[ ! a -eq b ]`
    with `[ a -ne b ]`, and similar for -ge/-lt/=/!=/etc (SC2335).
  - Precompiled binaries for Linux riscv64 (linux.riscv64)

  ### Changed
  - SC2002 about Useless Use Of Cat is now disabled by default. It can be
    re-enabled with `--enable=useless-use-of-cat` or equivalent directive.
  - SC2236/SC2237 about replacing `[ ! -n .. ]` with `[ -z ]` and vice versa
    is now optional under `avoid-negated-conditions`.
  - SC2015 about `A && B || C` no longer triggers when B is a test command.
  - SC3012: Do not warn about `\<` and `\>` in test/[] as specified in POSIX.1-2024
  - Diff output now uses / as path separator on Windows

  ### Fixed
  - SC2218 about function use-before-define is now more accurate.
  - SC2317 about unreachable commands is now less spammy for nested ones.
  - SC2292, optional suggestion for [[ ]], now triggers for Busybox.
  - Updates for Bash 5.3, including `${| cmd; }` and `source -p`

  ### Removed
  - SC3013: removed since the operators `-ot/-nt/-ef` are specified in POSIX.1-2024
2025-08-03 16:19:11 -07:00
Vidar Holen
5e6383578d Make SC2335 and friends optional (avoid-negated-conditions) 2025-07-28 15:16:22 -07:00
Eisuke Kawashima
34cdbaa5e0 feat: avoid double negative of a binary operator in test
suggest `[ a != b ]` over `[ ! a = b ]` and `! [ a = b ]`, and so forth.
c.f. SC2236 and SC2237 (unary operations)

close #3164
2025-07-20 03:18:38 +09:00
Vidar Holen
7dc4214149 Normalize \ to / in diff output on Windows (fixes #3240) 2025-07-17 13:40:33 -07:00
Vidar Holen
c3a597e6dd Update changelog with Bash 5.3 features 2025-07-17 12:32:55 -07:00
Vidar Holen
62a8ecf9bf Merge branch 'e-kwsm-SC3013' 2025-04-27 16:16:49 -07:00
Vidar Holen
fbb8386797 Merge pull request #3170 from e-kwsm/SC3012
fix(SC3012)!: do not warn about `\<` and `\>` in test/[] as specified in POSIX.1-2024
2025-04-09 10:51:44 -07:00
Vidar Holen
c41f3a4b8a Warn about [ ! -o opt ] (and -a) being unconditionally true (fixes #3174) 2025-04-08 10:53:52 -07:00
Vidar Holen
574c6d18fb Suggest using test -e instead of -a (fixes #3174). 2025-04-08 10:23:10 -07:00
Eisuke Kawashima
bc60607f9e fix(SC3012)!: do not warn about \< and \> in test/[] as specified in POSIX.1-2024
https://pubs.opengroup.org/onlinepubs/9799919799/utilities/test.html
fix #3168
2025-03-24 06:32:32 +09:00
Eisuke Kawashima
3a9ddae06b fix(SC3013)!: remove SC3013 since the operators are specified by POSIX.1-2024
https://pubs.opengroup.org/onlinepubs/9799919799/utilities/test.html
fix #3167
2025-03-24 06:24:12 +09:00
Vidar Holen
097018754b Mention that SC2002 (UUOC) is now no longer enabled by default. 2024-10-27 18:10:00 -07:00
Vidar Holen
5e3e98bcb0 Use CFG to determine use-before-define for SC2218 (fixes #3070) 2024-10-27 15:43:30 -07:00
Meng Zhuo
15de97e33f Add linux.riscv64 precompiled support 2024-05-30 19:20:21 +08:00
Vidar Holen
ac8fb00504 Account for BusyBox support of [[ ]] (fixes #2967) 2024-05-04 16:45:52 -07:00
Vidar Holen
76ff702e93 Supress SC2015 about A && B || C when B is a test. 2024-05-04 15:12:13 -07:00
Vidar Holen
4f81dbe839 Add warning about uninvoked functions, reduce repeated triggering of SC2317 (fixes #2966) 2024-05-04 14:35:26 -07:00
Vidar Holen
2c5155e43d Warn about capturing the output of redirected commands. 2024-04-14 18:47:19 -07:00
Vidar Holen
94214ee725 Post-release CHANGELOG 2024-03-07 19:11:12 -08:00
Vidar Holen
37dfb67768 Stable version v0.10.0
This release is dedicated to LLMs, for finally fulfilling the promise of
1960s scifi: systems you can hack using logic games and creative lies.
2024-03-07 17:54:39 -08:00
Vidar Holen
d80fdfa9e8 Add extended-analysis directive to toggle DFA 2024-02-03 16:11:39 -08:00
Grische
be8e4b2b8a add basic busybox sh support 2023-11-27 13:00:10 +01:00
Max Ulidtko
9605396bef Docs: describe fixes of PR #2837 in changelog 2023-10-01 21:23:25 +02:00
Vidar Holen
dd747b2a98 SC2325/SC2326: Warn about ! ! foo and foo | ! bar (fixes #2810) 2023-07-30 19:18:27 -07:00
Vidar Holen
9490b94886 Save and restore pending here docs when sourcing files (fixes #2803) 2023-07-30 16:52:40 -07:00
Vidar Holen
372c0b667e SC2324: Warn when x+=1 appends. 2023-07-30 15:00:43 -07:00
Vidar Holen
78dea1d4f9 Update changelog from release 2023-02-04 10:27:59 -08:00
Vidar Holen
a526ee0829 Stable version 0.9.0
This release is dedicated to Mindustry: the most fun you can
have with open source (outside of shell scripting of course).
2022-12-12 21:49:19 -08:00
Vidar Holen
d0dd81e1fa Allow quoting values in directives (fixes #2517) 2022-07-28 08:56:44 -07:00
Vidar Holen
52dac51cd4 SC2323: Warn about redundant parens in a[(x+1)] and $(( ((x)) )) (ref: #1666) 2022-07-24 14:18:38 -07:00
Vidar Holen
30bb0e0093 SC2321: Warn about redundant $(()) in arr[$((i))]=x (ref: #1666) 2022-07-24 14:18:38 -07:00
Vidar Holen
5cf6e01ce9 Warn when $? refers to echo or condition (ref #2541) 2022-07-23 09:39:26 -07:00
Vidar Holen
9caeec104b SC2318: Warn about backreferencing in declare x=1 y=$x (fixes #1653) 2022-07-22 12:40:59 -07:00
Vidar Holen
3ee4419ef4 Suppress SC2086 for variables declared -i (ref #2541) 2022-07-22 08:53:27 -07:00
Vidar Holen
da4885a71d Use DFA for SC2086 2022-07-20 08:08:44 -07:00
Vidar Holen
642ad86125 Add SC2317 warning about unreachable commands 2022-07-20 08:08:41 -07:00
Vidar Holen
f77a545282 Control Flow Graph / Data Flow Analysis support 2022-07-20 08:08:24 -07:00
Vidar Holen
399c04cc17 Mention SC2316 in changelog 2022-05-06 10:11:52 -07:00
Vidar Holen
4c186c20b9 Post-release CHANGELOG update 2021-11-06 23:18:19 -07:00
Vidar Holen
e5ad4cf420 Stable version 0.8.0
This release is dedicated to dibblego, who pushed me down the Haskell
rabbit hole. In 2006 I thought you were crazy. Today I *know* you are.
2021-11-06 22:12:39 -07:00
Vidar Holen
205ba429b3 Warn about read foo[i] expanding as glob (fixes #2345) 2021-10-07 18:50:44 -07:00
Vidar Holen
05bdeae3ab Mention require-double-brackets in CHANGELOG 2021-10-07 17:26:08 -07:00
Vidar Holen
38251abe26 Add suggestion level in text for TTY output (fixes #2339) 2021-10-07 17:14:41 -07:00
Vidar Holen
6f7eee4a27 Mention check-extra-masked-returns in changelog 2021-10-02 12:59:55 -07:00
Vidar Holen
3a296cd788 The removed check was SC1004, not SC1003 2021-09-19 12:27:16 -07:00
Vidar Holen
2536507060 Remove SC1004 (fixes #2326) 2021-09-18 17:43:55 -07:00
Vidar Holen
09aa15c9b7 Allow disable=all to disable all warnings (fixes #2323) 2021-09-18 12:50:01 -07:00
Vidar Holen
4e703e5c61 Allow specifying external-sources=true in shellcheckrc (fixes #1818) 2021-09-15 18:02:37 -07:00
Vidar Holen
ecacc2e9bb Merge pull request #2307 from a1346054/fixes
Fix redirect in license file and remove trailing whitespace elsewhere
2021-08-26 19:46:16 -07:00
Vidar Holen
81b7ee5598 Don't warn about unused variables starting with _ (fixes #1498) 2021-08-26 19:40:21 -07:00