Skip to content

v3.12.0

Latest
Compare
Choose a tag to compare
@mvdan mvdan released this 06 Jul 21:14
· 15 commits to master since this release
v3.12.0
  • The mvdan-sh JS package is discontinued in favor of sh-syntax - #1145
  • cmd/shfmt
    • Support the "simplify" and "minify" flags via EditorConfig - #819
    • --simplify and --minify are now formatting options, disabling the use of EditorConfig
    • Do not allow --write to replace non-regular files - #843
  • interp
    • Add IsBuiltin to check if a command name is a shell built-in - #1164
    • Add HandlerContext.Builtin to allow ExecHandlerFunc to call built-ins
    • Initial support for $! and wait PID - #221
    • Return non-fatal ExecHandlerFunc errors via the Runner.Run API
    • Add HandlerContext.Pos to provide handlers with source positions
    • Deprecate NewExitStatus and IsExitStatus in favor of ExitStatus
    • Fix wait to always return the status of the last given job
    • Copy all env vars for background subshells to avoid data races
    • Support reading random numbers via $RANDOM and $SRANDOM
    • Set $BASH_REMATCH when matching regular expressions via =~
    • Support modifying local vars from the parent calling function
  • expand
    • Adjust which backslash sequences are expanded in here-docs - #1138
    • Tweak tilde expansions to match Bash semantics
  • pattern
    • Remove the flawed and broken Braces mode; use syntax.SplitBraces instead
    • Tweak ** to only act as "globstar" when alone as a path element - #1149
    • Tweak * and ** to not match leading dots in basenames
    • Add a NoGlobStar mode to match the POSIX semantics
  • fileutil
    • Treat all non-regular files as definitely not shell scripts - #1089

Consider becoming a sponsor if you benefit from the work that went into this release!

Binaries built on go version go1.24.4 linux/amd64 with:

CGO_ENABLED=0 go build -trimpath -ldflags="-w -s -X=main.version=v3.12.0"