Skip to content

Update dependency shfmt to v3.7.0

Erik Seliger requested to merge renovate/shfmt-3.x into main

Created by: renovate[bot]

Mend Renovate

This PR contains the following updates:

Package Update New value References Sourcegraph
shfmt minor 3.7.0 source code search for "shfmt"

Test plan: CI should pass with updated dependencies. No review required: this is an automated dependency update PR.


Release Notes

mvdan/sh (shfmt)

v3.7.0

Compare Source

  • syntax
    • Correctly parse $foo#bar as a single word - #​1003
    • Make &> redirect operators an error in POSIX mode - #​991
    • Avoid producing invalid shell when minifying some heredocs - #​923
    • Revert the simplification of ${foo:-} into ${foo-} - #​970
  • interp
    • Add ExecHandlers to support layering multiple middlewares - #​964
    • Add initial support for the select clause - #​969
    • Support combining the errexit and pipefail options - #​870
    • Set EUID just like UID - #​958
    • Replace panics on unimplemented builtins with errors - #​999
    • Tweak build tags to support building for js/wasm - #​983
  • syntax/typedjson
    • Avoid reflect.Value.MethodByName to reduce binary sizes - #​961

v3.6.0

Compare Source

This release drops support for Go 1.17 and includes many features and fixes.

  • cmd/shfmt
    • Implement --from-json as the reverse of --to-json - [#​900]
    • Improve the quality of the --to-json output - [#​900]
    • Provide detected language when erroring with -ln=auto - [#​803]
  • syntax
    • Don't require peeking two bytes after echo * - [#​835]
    • Simplify ${name:-} to the equivalent ${name-} - [#​849]
    • Don't print trailing whitespaces on nested subshells - [#​814]
    • Don't print extra newlines in some case clauses - [#​779]
    • Don't indent comments preceding case clause items - [#​917]
    • Allow escaped newlines before unquoted words again - [#​873]
    • Parse a redirections edge case without spaces - [#​879]
    • Give a helpful error when <<< is used in POSIX mode - [#​881]
    • Forbid ${!foo*} and ${!foo@} in mksh mode - [#​929]
    • Batch allocations less aggressively in the parser
  • syntax/typedjson
    • Expose --from-json and --to-json as Go APIs - [#​885]
  • expand
    • Improve support for expanding array keys and values - [#​884]
    • Don't panic on unsupported syntax nodes - [#​841]
    • Don't panic on division by zero - [#​892]
    • Properly expand unquoted parameters with spaces - [#​886]
    • Trim spaces when converting strings to integers - [#​928]
  • interp
    • Add initial implementation for mapfile and readarray - [#​863]
    • Improve matching patterns against multiple lines - [#​866]
    • Support %b in the printf builtin - [#​955]
    • Display all Bash options in shopt - [#​877]
  • pattern
    • Add EntireString to match the entire string using ^$ - [#​866]

v3.5.1

Compare Source

  • cmd/shfmt
    • Fix the Docker publishing script bug which broke 3.5.0 - [#​860]
  • interp
    • Support multi-line strings when pattern matching in [[ - [#​861]
    • Invalid glob words are no longer removed with nullglob - [#​862]
  • pattern
    • Regexp now returns the typed error SyntaxError - [#​862]

v3.5.0

Compare Source

This release drops support for Go 1.16 and includes many new features.

  • cmd/shfmt
    • Switch to -ln=auto by default to detect the shell language
    • Add support for long flags, like --indent for -i
  • syntax
    • Allow extglob wildcards as function names like @() { ... }
    • Add support for heredocs surrounded by backquotes
    • Add support for backquoted inline comments
    • Add NewPos to create Pos values externally
    • Support escaped newlines with CRLF line endings
    • Minify no longer omits a leading shebang comment
    • Avoid printing escaped newlines in non-quoted words
    • Fix some printer edge cases where comments weren't properly spaced
  • fileutil
    • Add Shebang to extract the shell language from a #! line
  • expand
    • Reimplement globstar ** globbing for correctness
    • Replace os.Stat as the last direct use of the filesystem
  • interp
    • Add CallHandler to intercept all interpreted CallExpr nodes
    • Add ReadDirHandler to intercept glob expansion filesystem reads
    • Add StatHandler to intercept os.Stat and os.Lstat calls
    • Always surface exit codes from command substitutions
    • Add initial and incomplete support for set -x
    • Add support for cd - as cd "$OLDPWD"
    • Avoid panic on set - args

v3.4.3

Compare Source

  • cmd/shfmt
    • New Docker v3 tag to track the latest stable version
    • Don't duplicate errors when walking directories
  • interp
    • Properly handle empty paths in the test builtin
    • Allow unsetting global vars from inside a function again
    • Use %w to wrap errors in Dir

v3.4.2

Compare Source

  • The tests no longer assume what locales are installed
  • interp
    • Keep PATH list separators OS-specific to fix a recent regression
    • Avoid negative elapsed durations in the time builtin

v3.4.1

Compare Source

  • syntax
    • Don't return an empty string on empty input to Quote
  • expand
    • Properly sort in ListEnviron to avoid common prefix issues
  • interp
    • export used in functions now affects the global scope
    • Support looking for scripts in $PATH in source
    • Properly slice arrays in parameter expansions

v3.4.0

Compare Source

This release drops support for Go 1.15, which allows the code to start benefitting from io/fs.

  • cmd/shfmt
    • Walks directories ~10% faster thanks to filepath.WalkDir
  • syntax
    • Add Quote to mirror strconv.Quote for shell syntax
    • Skip null characters when parsing, just like Bash
    • Rewrite fuzzers with Go 1.18's native fuzzing
  • fileutil
    • Add CouldBeScript2 using io/fs.DirEntry
  • expand
    • Skip or stop at null characters, just like Bash
  • interp
    • Set GID just like UID
    • Add support for read -p
    • Add support for pwd flags
    • Create random FIFOs for process substitutions more robustly
    • Avoid leaking an open file when interpreting $(<file)

v3.3.1

Compare Source

  • syntax
    • Don't convert & in a separate line into ;
    • Fix a BinaryNextLine edge case idempotency bug
    • Never start printing a command with an escaped newline
  • interp
    • Support calling Runner.Reset before Runner.Run
    • Obey set -e for failed redirections

v3.3.0

Compare Source

  • cmd/shfmt
    • Document the FORCE_COLOR env var to always use colors in diffs
  • syntax
    • Add the printer SingleLine option to avoid printing newlines
    • Positions now use more bits for line numbers than column numbers
    • Test operators like && and || no longer escape newlines
    • Properly handle closing backquotes in a few edge cases
    • Properly handle trailing escaped newlines in heredocs
  • interp
    • Redesigned variable scoping to fix a number of edge cases
    • Refactor set -o nounset support to fix many edge cases
    • Deprecate LookPath in favor of LookPathDir
    • Array element words are now expanded correctly
    • Add support for trap with error and exit signals
    • Add support for shopt -s nullglob
    • Add support for type -p

v3.2.4

Compare Source

  • cmd/shfmt
    • Don't stop handling arguments when one results in a failure
  • expand
    • Don't panic when a backslash is followed by EOF

v3.2.2

Compare Source

  • syntax
    • Avoid comment position panic in the printer

v3.2.1

Compare Source

  • syntax
    • Fix an endless loop when parsing single quotes in parameter expansions
    • Properly print assignments using escaped newlines
    • Print inline heredoc comments in the right place
  • interp
    • Always expand ~ in Bash test expressions
  • expand
    • Don't panic on out of bounds array index expansions

Configuration

📅 Schedule: Branch creation - "on the 1st through 7th day of the month" in timezone America/Los_Angeles, Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Mend Renovate. View repository job log here.

Merge request reports

Loading