Go: Update module mvdan.cc/sh/v3 to v3.13.1
This MR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| mvdan.cc/sh/v3 | require | minor | v3.12.0 -> v3.13.1 |
⚠️ WarningSome dependencies could not be looked up. Check the Dependency Dashboard for more information.
MR created with the help of gitlab-org/frontend/renovate-gitlab-bot
Release Notes
mvdan/sh (mvdan.cc/sh/v3)
v3.13.1
- cmd/shfmt
- Add support for
[[zsh]]in EditorConfig files - Detect the shell variant from filenames like
.zshrcand.bash_profile - Fix
--apply-ignorewhen used with explicit args - #1310
- Add support for
- syntax
- Revert an accidental change to how array subscripts are formatted - #1314
- Never join
;;with the previous line when formatting - #1289 - Fix a bug where
$1[foo]was parsed as a subscript in Zsh - #1288 - Correctly parse
$!in double quotes in Zsh - #1298 - Allow indexing into special parameters in Zsh - #1299
- Allow parameter expansions with empty names in Zsh - #1280
- interp
- Test against Bash 5.3 and fix three new discrepancies
- Fix a few bugs related to
namerefvariables - Avoid panics when user input encounters unimplemented features
Consider becoming a sponsor if you benefit from the work that went into this release!
Binaries built on go version go1.26.1 linux/amd64 with:
CGO_ENABLED=0 go build -trimpath -ldflags="-w -s"v3.13.0
This release introduces support for Zsh in the parser and formatter, which was tracked in issue #120 alongside the label https://github.com/mvdan/sh/labels/zsh. While support is not complete, it should be far enough for many use cases.
This release also drops support for Go 1.24 and includes many other enhancements:
- cmd/shfmt
- Exit with a non-zero status when
-lprints any filenames shfmt -versionis now derived from the git current tag, dropping the-ldflagsworkaround
- Exit with a non-zero status when
- syntax
- New nodes types and node fields are introduced alongside
LangZsh LangVariantis now a bitset, allowing the use of sets like "Bash-like"- Add
InteractiveSeqandStmtsSeqiterator methods forParser - Stop exposing the internal buffer in
Printervia struct embedding - Support the use of brace expansions like
declare {a,b}_c=value - Fix a bug where POSIX and Bash incorrectly allowed empty command lists
- New nodes types and node fields are introduced alongside
- interp
- Add support for
shopt -s dotglobandshopt -s extglob - Add support for simple uses of
!(expr)extended glob patterns - Support more builtin flags for
declare,type,read - Fix various bugs relating to nulls, errors, and arrays
- Add support for
- expand
- Add
Config.DotGlobandConfig.ExtGlobfor the interpreter - Add
Variable.Flagsto get the one-characterdeclareflags - Do not force env vars on Windows to be uppercase
- Fix various bugs relating to glob pattern matching
- Add
- pattern
- Add
GlobLeadingDotandExtendedOperatorsfor the interpreter - Add
NegExtGlobErrorto mark the use of!(expr)negation patterns
- Add
Consider becoming a sponsor if you benefit from the work that went into this release!
Binaries built on go version go1.26.1 linux/amd64 with:
CGO_ENABLED=0 go build -trimpath -ldflags="-w -s"Note that this release no longer includes a sha256sums.txt asset; GitHub now provide digests natively.
Configuration
- If you want to rebase/retry this MR, check this box
This MR has been generated by Renovate Bot.