mvdan/sh
### [`v3.6.0`](https://togithub.com/mvdan/sh/blob/HEAD/CHANGELOG.md#360---2022-12-11)
[Compare Source](https://togithub.com/mvdan/sh/compare/v3.5.1...v3.6.0)
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](https://togithub.com/mvdan/sh/issues/900)]
- Improve the quality of the `--to-json` output - \[[#900](https://togithub.com/mvdan/sh/issues/900)]
- Provide detected language when erroring with `-ln=auto` - \[[#803](https://togithub.com/mvdan/sh/issues/803)]
- **syntax**
- Don't require peeking two bytes after `echo *` - \[[#835](https://togithub.com/mvdan/sh/issues/835)]
- Simplify `${name:-}` to the equivalent `${name-}` - \[[#849](https://togithub.com/mvdan/sh/issues/849)]
- Don't print trailing whitespaces on nested subshells - \[[#814](https://togithub.com/mvdan/sh/issues/814)]
- Don't print extra newlines in some case clauses - \[[#779](https://togithub.com/mvdan/sh/issues/779)]
- Don't indent comments preceding case clause items - \[[#917](https://togithub.com/mvdan/sh/issues/917)]
- Allow escaped newlines before unquoted words again - \[[#873](https://togithub.com/mvdan/sh/issues/873)]
- Parse a redirections edge case without spaces - \[[#879](https://togithub.com/mvdan/sh/issues/879)]
- Give a helpful error when `<<<` is used in POSIX mode - \[[#881](https://togithub.com/mvdan/sh/issues/881)]
- Forbid `${!foo*}` and `${!foo@}` in mksh mode - \[[#929](https://togithub.com/mvdan/sh/issues/929)]
- Batch allocations less aggressively in the parser
- **syntax/typedjson**
- Expose `--from-json` and `--to-json` as Go APIs - \[[#885](https://togithub.com/mvdan/sh/issues/885)]
- **expand**
- Improve support for expanding array keys and values - \[[#884](https://togithub.com/mvdan/sh/issues/884)]
- Don't panic on unsupported syntax nodes - \[[#841](https://togithub.com/mvdan/sh/issues/841)]
- Don't panic on division by zero - \[[#892](https://togithub.com/mvdan/sh/issues/892)]
- Properly expand unquoted parameters with spaces - \[[#886](https://togithub.com/mvdan/sh/issues/886)]
- Trim spaces when converting strings to integers - \[[#928](https://togithub.com/mvdan/sh/issues/928)]
- **interp**
- Add initial implementation for `mapfile` and `readarray` - \[[#863](https://togithub.com/mvdan/sh/issues/863)]
- Improve matching patterns against multiple lines - \[[#866](https://togithub.com/mvdan/sh/issues/866)]
- Support `%b` in the `printf` builtin - \[[#955](https://togithub.com/mvdan/sh/issues/955)]
- Display all Bash options in `shopt` - \[[#877](https://togithub.com/mvdan/sh/issues/877)]
- **pattern**
- Add `EntireString` to match the entire string using `^$` - \[[#866](https://togithub.com/mvdan/sh/issues/866)]
[ ] If you want to rebase/retry this PR, check this box
This PR contains the following updates:
3.5.1
->3.6.0
Release Notes
mvdan/sh
### [`v3.6.0`](https://togithub.com/mvdan/sh/blob/HEAD/CHANGELOG.md#360---2022-12-11) [Compare Source](https://togithub.com/mvdan/sh/compare/v3.5.1...v3.6.0) 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](https://togithub.com/mvdan/sh/issues/900)] - Improve the quality of the `--to-json` output - \[[#900](https://togithub.com/mvdan/sh/issues/900)] - Provide detected language when erroring with `-ln=auto` - \[[#803](https://togithub.com/mvdan/sh/issues/803)] - **syntax** - Don't require peeking two bytes after `echo *` - \[[#835](https://togithub.com/mvdan/sh/issues/835)] - Simplify `${name:-}` to the equivalent `${name-}` - \[[#849](https://togithub.com/mvdan/sh/issues/849)] - Don't print trailing whitespaces on nested subshells - \[[#814](https://togithub.com/mvdan/sh/issues/814)] - Don't print extra newlines in some case clauses - \[[#779](https://togithub.com/mvdan/sh/issues/779)] - Don't indent comments preceding case clause items - \[[#917](https://togithub.com/mvdan/sh/issues/917)] - Allow escaped newlines before unquoted words again - \[[#873](https://togithub.com/mvdan/sh/issues/873)] - Parse a redirections edge case without spaces - \[[#879](https://togithub.com/mvdan/sh/issues/879)] - Give a helpful error when `<<<` is used in POSIX mode - \[[#881](https://togithub.com/mvdan/sh/issues/881)] - Forbid `${!foo*}` and `${!foo@}` in mksh mode - \[[#929](https://togithub.com/mvdan/sh/issues/929)] - Batch allocations less aggressively in the parser - **syntax/typedjson** - Expose `--from-json` and `--to-json` as Go APIs - \[[#885](https://togithub.com/mvdan/sh/issues/885)] - **expand** - Improve support for expanding array keys and values - \[[#884](https://togithub.com/mvdan/sh/issues/884)] - Don't panic on unsupported syntax nodes - \[[#841](https://togithub.com/mvdan/sh/issues/841)] - Don't panic on division by zero - \[[#892](https://togithub.com/mvdan/sh/issues/892)] - Properly expand unquoted parameters with spaces - \[[#886](https://togithub.com/mvdan/sh/issues/886)] - Trim spaces when converting strings to integers - \[[#928](https://togithub.com/mvdan/sh/issues/928)] - **interp** - Add initial implementation for `mapfile` and `readarray` - \[[#863](https://togithub.com/mvdan/sh/issues/863)] - Improve matching patterns against multiple lines - \[[#866](https://togithub.com/mvdan/sh/issues/866)] - Support `%b` in the `printf` builtin - \[[#955](https://togithub.com/mvdan/sh/issues/955)] - Display all Bash options in `shopt` - \[[#877](https://togithub.com/mvdan/sh/issues/877)] - **pattern** - Add `EntireString` to match the entire string using `^$` - \[[#866](https://togithub.com/mvdan/sh/issues/866)]