Repository navigation
Conversation
I had a named pipe in my source directory, and "shfmt ." suddenly stopped working. It probably doesn't make sense to try reading non-regular files. Signed-off-by: Kir Kolyshkin <kolyshkin@gmail.com>
Owner
|
Thanks for the PR! This is a pretty silly but significant omission on my part. I think the fix should be in |
This was referenced Jul 16, 2025
apricote
pushed a commit
to hetznercloud/fleeting-plugin-hetzner
that referenced
this pull request
Jan 9, 2026
…ercloud/fleeting-plugin-hetzner!333) This MR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [mvdan.cc/sh/v3/cmd/shfmt](https://github.com/mvdan/sh) | `v3.8.0` → `v3.12.0` |  |  | Note: The `pre-commit` manager in Renovate is not supported by the `pre-commit` maintainers or community. Please do not report any problems there, instead [create a Discussion in the Renovate repository](https://github.com/renovatebot/renovate/discussions/new) if you have any questions. --- ### Release Notes <details> <summary>mvdan/sh (mvdan.cc/sh/v3/cmd/shfmt)</summary> ### [`v3.12.0`](https://github.com/mvdan/sh/releases/tag/v3.12.0) [Compare Source](mvdan/sh@v3.11.0...v3.12.0) - The `mvdan-sh` JS package is discontinued in favor of `sh-syntax` - [#​1145](mvdan/sh#1145) - **cmd/shfmt** - Support the "simplify" and "minify" flags via EditorConfig - [#​819](mvdan/sh#819) - `--simplify` and `--minify` are now formatting options, disabling the use of EditorConfig - Do not allow `--write` to replace non-regular files - [#​843](mvdan/sh#843) - **interp** - Add `IsBuiltin` to check if a command name is a shell built-in - [#​1164](mvdan/sh#1164) - Add `HandlerContext.Builtin` to allow `ExecHandlerFunc` to call built-ins - Initial support for `$!` and `wait PID` - [#​221](mvdan/sh#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](mvdan/sh#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](mvdan/sh#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](mvdan/sh#1089) Consider [becoming a sponsor](https://github.com/sponsors/mvdan) 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" ``` ### [`v3.11.0`](https://github.com/mvdan/sh/releases/tag/v3.11.0) [Compare Source](mvdan/sh@v3.10.0...v3.11.0) This release drops support for Go 1.22 and includes many enhancements. - **cmd/shfmt** - Support `-l=0` and `-f=0` to split filenames with null bytes - [#​1096](mvdan/sh#1096) - **syntax** - New iterator API: `Parser.WordsSeq` - Fix `Parser.Incomplete` and `IsIncomplete` to work well with `Parser.Words` - [#​937](mvdan/sh#937) - Initial support for parsing incomplete shell via `RecoverErrors` - Expand `LangError` to include which language was used when parsing - **interp** - Refactor setting variables to fix array declaration edge cases - [#​1108](mvdan/sh#1108) - Fix `test` read/write/exec operators to work correctly on directories - [#​1116](mvdan/sh#1116) - Replace the `cancelreader` dependency with `os.File.SetReadDeadline` - Avoid waiting for process substitutions, matching Bash - Skip `OpenHandler` when opening named pipes for process substitutions - [#​1120](mvdan/sh#1120) - Use `TMPDIR` if set via `Env` to create temporary files such as named pipes - **expand** - New iterator API: `FieldsSeq` - Correctly handle repeated backslashes in double quotes - [#​1106](mvdan/sh#1106) - Don't expand backslashes inside here-documents - [#​1070](mvdan/sh#1070) - Replace the `Unset` kind with a new `Variable.Set` boolean field Consider [becoming a sponsor](https://github.com/sponsors/mvdan) if you benefit from the work that went into this release! Binaries built on `go version go1.24.0 linux/amd64` with: ``` CGO_ENABLED=0 go build -trimpath -ldflags="-w -s -X=main.version=v3.11.0" ``` ### [`v3.10.0`](https://github.com/mvdan/sh/releases/tag/v3.10.0) [Compare Source](mvdan/sh@v3.9.0...v3.10.0) - **cmd/shfmt** - Report the correct language variant in parser error messages - [#​1102](mvdan/sh#1102) - Move `--filename` out of the parser options category - [#​1079](mvdan/sh#1079) - **syntax** - Parse all CRLF line endings as LF, including inside heredocs - [#​1088](mvdan/sh#1088) - Count skipped backslashes inside backticks in position column numbers - [#​1098](mvdan/sh#1098) - Count skipped null bytes in position column numbers for consistency - **interp** - Fix a regression in `v3.9.0` which broke redirecting files to stdin - [#​1099](mvdan/sh#1099) - Fix a regression in `v3.9.0` where `HandlerContext.Stdin` was never nil - Add an `Interactive` option to be used by interactive shells - [#​1100](mvdan/sh#1100) - Support closing stdin, stdout, and stderr via redirections like `<&-` Consider [becoming a sponsor](https://github.com/sponsors/mvdan) if you benefit from the work that went into this release! Binaries built on `go version go1.23.2 linux/amd64` with: ``` CGO_ENABLED=0 go build -trimpath -ldflags="-w -s -X=main.version=v3.10.0" ``` ### [`v3.9.0`](https://github.com/mvdan/sh/releases/tag/v3.9.0) [Compare Source](mvdan/sh@v3.8.0...v3.9.0) This release drops support for Go 1.21 and includes many fixes. - **cmd/shfmt** - Switch the diff implementation to remove one dependency - **syntax** - Protect against overflows in position offset integers - **interp** - Use `os.Pipe` for stdin to prevent draining by subprocesses - [#​1085](mvdan/sh#1085) - Support cancelling reads in builtins when stdin is a file - [#​1066](mvdan/sh#1066) - Support the `nocaseglob` bash option - [#​1073](mvdan/sh#1073) - Support the Bash 5.2 `@k` parameter expansion operator - Support the `test -O` and `test -G` operators on non-Windows - [#​1080](mvdan/sh#1080) - Support the `read -s` builtin flag - [#​1063](mvdan/sh#1063) - **expand** - Add support for case insensitive globbing - [#​1073](mvdan/sh#1073) - Don't panic when pattern words are nil - [#​1076](mvdan/sh#1076) A special thanks to [@​theclapp](https://github.com/theclapp) for their contributors to this release! Consider [becoming a sponsor](https://github.com/sponsors/mvdan) if you benefit from the work that went into this release! Binaries built on `go version go1.23.0 linux/amd64` with: ``` CGO_ENABLED=0 go build -trimpath -ldflags="-w -s -X=main.version=v3.9.0" ``` </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever MR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this MR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this MR, check this box --- This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi43Ni4wIiwidXBkYXRlZEluVmVyIjoiNDIuNzYuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->
qiangli
pushed a commit
to qiangli/sh
that referenced
this pull request
Sep 28, 2026
Sprint: mvdan#319 Story: mvdan#1089 Story-ID: 3185346bc4b5
qiangli
pushed a commit
to qiangli/sh
that referenced
this pull request
Sep 28, 2026
…ases
R45's interpreted go/types TestTypeSetString case
`type E interface{comparable}` reported `(ast: *ast.Ident) is not a
type`: at go/types scale the reflect registry can materialise a distinct
object for the same imported type spelled under a per-file import alias,
so an `x.(*ast.Ident)` identity request answers false and the checker
stops treating the node as a type.
goSourceNativeAssertIdentical now falls back to package-path identity
when the reflect answer is false: two named types with the same package
path and name (pointer depth preserved) are the same type by definition,
so this only rescues a genuine identity, never invents one. The path
reduction lives in the new goSourceNativeTypePathIdentity helper.
TestS809GoTypesTypeSetStringBodies gains an outside-corpus focused
reduction that models the universe/comparable object-identity path in an
interpreted package (Universe.Insert/Lookup, *TypeName/*Named asserts
across files); it documents the scenario shape and passes. The small
worker resolves identity correctly, so the registry miss reproduces only
at go/types scale (R45), not in the reduction; TestS319NativeTypePathIdentity
unit-tests the helper directly.
Sprint: mvdan#319
Story: mvdan#1089
Story-ID: 3185346bc4b5
qiangli
added a commit
to qiangli/sh
that referenced
this pull request
Sep 28, 2026
Sprint: mvdan#319 Story: mvdan#1089 Story-ID: 3185346bc4b5
qiangli
added a commit
to qiangli/sh
that referenced
this pull request
Sep 28, 2026
Sprint: mvdan#319 Story: mvdan#1089 Story-ID: 3185346bc4b5
qiangli
pushed a commit
to qiangli/sh
that referenced
this pull request
Sep 28, 2026
Sprint: mvdan#319 Story: mvdan#1089 Story-ID: 3185346bc4b5
qiangli
pushed a commit
to qiangli/sh
that referenced
this pull request
Sep 28, 2026
Sprint: mvdan#319 Story: mvdan#1089 Story-ID: 3185346bc4b5
qiangli
pushed a commit
to qiangli/sh
that referenced
this pull request
Sep 28, 2026
Sprint: mvdan#319 Story: mvdan#1089 Story-ID: 3185346bc4b5
qiangli
pushed a commit
to qiangli/sh
that referenced
this pull request
Sep 28, 2026
Sprint: mvdan#319 Story: mvdan#1089 Story-ID: 3185346bc4b5
qiangli
pushed a commit
to qiangli/sh
that referenced
this pull request
Sep 28, 2026
Sprint: mvdan#319 Story: mvdan#1089 Story-ID: 3185346bc4b5
qiangli
pushed a commit
to qiangli/sh
that referenced
this pull request
Sep 28, 2026
Sprint: mvdan#319 Story: mvdan#1089 Story-ID: 3185346bc4b5
qiangli
pushed a commit
to qiangli/sh
that referenced
this pull request
Sep 28, 2026
Sprint: mvdan#319 Story: mvdan#1089 Story-ID: 3185346bc4b5
qiangli
added a commit
to qiangli/sh
that referenced
this pull request
Sep 28, 2026
The submitted source changes were cherry-picked as abf9cd6; the KB journal was reconciled in that commit. Sprint: mvdan#319 Story: mvdan#1089 Story-ID: 3185346bc4b5
qiangli
added a commit
to qiangli/sh
that referenced
this pull request
Sep 28, 2026
The submitted source changes were integrated in the published mapped-signature, typed-zero, and scalar-method commit series (2208f8d, 94bae3e, ceb9115); manager follow-up commits adjusted the signature boundary. Sprint: mvdan#319 Story: mvdan#1089 Story-ID: 3185346bc4b5
qiangli
added a commit
to qiangli/sh
that referenced
this pull request
Oct 1, 2026
Sprint: mvdan#279 Story: mvdan#1089 Story-ID: 3185346bc4b5
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
I had a named pipe in my source directory, and
shfmt .suddenly stopped working.It probably doesn't make sense to try reading non-regular files.