Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package shfmt for openSUSE:Factory checked in at 2025-08-25 20:37:55 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/shfmt (Old) and /work/SRC/openSUSE:Factory/.shfmt.new.30751 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "shfmt" Mon Aug 25 20:37:55 2025 rev:2 rq:1301140 version:3.12.0 Changes: -------- --- /work/SRC/openSUSE:Factory/shfmt/shfmt.changes 2022-07-19 17:19:48.468402306 +0200 +++ /work/SRC/openSUSE:Factory/.shfmt.new.30751/shfmt.changes 2025-08-25 20:38:54.626132823 +0200 @@ -1,0 +2,294 @@ +Sun Aug 24 14:32:07 UTC 2025 - Alessio Biancalana <dottorblas...@opensuse.org> + +- Update to version 3.12.0: + * CHANGELOG: add entry for v3.12.0 + * README.md: add another example to caveats + * interp: add HandlerContext.Builtin + * interp: add test cases with exit inside a process substitution + * interp: add HandlerContext.Pos + * interp: swap math/rand for math/rand/v2 + * interp: add exitStatus.ok for `code == 0` comparisons + * interp: move oneIf under exitStatus + * interp: export IsBuiltin + * interp: refactor builtins to return an exitStatus + * interp: remove Runner.exitShell + * interp: simplify trapping on error + * interp: reduce the size of exitStatus + * interp: convert strings to integers as int64 + * interp: reject return with invalid arguments + * syntax: skip allocating in SplitBraces when there are no braces + * interp: avoid always copying CallExpr.Args to expand aliases + * interp: move Runner.setFatalErr to exitStatus + * interp: forward custom exit status errors when using `wait` + * interp: keep custom exit status errors when using a naked `exit` + * interp: positional parameters are unset when missing + * interp: support reading $RANDOM and $SRANDOM + * interp: add and fix more subshell exit and errexit edge cases + * interp: propagate custom exit status errors in command substitutions + * interp: simplify code with the exitStatus type + * interp: use the Runner.Run context for calls to ReadDirHandlerFunc2 + * interp: group "exit status" Runner fields into a type + * interp: add more custom exit error test cases + * interp: simplify returning exit codes in builtinCode + * interp: forward custom non-fatal errors in pipefail and subshells + * interp: a non-nil fatalErr implies a non-zero exit status code + * interp: properly deprecate ReadDirHandlerFunc + * interp: a non-nil fatalErr implies exiting is true + * interp: add test cases for custom exit status errors being dropped + * interp: wait with arguments returns the status code of the last job + * update golang.org/x deps + * pattern: deduplicate the implementation of the `*` regular expression + * pattern: simplify the regexp flag logic + * all: modernize -fix + * pattern: skip needsEscaping loop if the mode discards the shortcut + * pattern: the shortcut cannot be taken when NoGlobCase is given + * pattern: globstar does not need `(?s)` as it does not use `.` + * pattern: add test cases matching newlines + * pattern: drop tests combining Shortest and EntireString + * pattern: implement Shortest via (?U) + * pattern: refactor Regexp to use a tiny string lexer + * pattern: test error strings properly + * pattern: allow ** to match non-leading dots + * pattern: allow * to match non-leading dots + * expand: always use pattern.NoGlobStar option + * expand: resolve iterator warnings spotted by gopls + * interp: turn flattenAssigns into an iterator + * interp: reuse flagParser for `declare` flags + * interp: allow joint flags on `declare` + * interp: do not panic on extglob in another scenario + * Revert "all: assume C.UTF-8 is available in the tests" + * cmd/shfmt: do not allow --write to replace non-regular files + * cmd/shfmt: add test case for #843 + * fileutil: treat all non-regular files as definitely not shell scripts + * cmd/shfmt: improve symlink testscript tests + * cmd/shfmt: add support for simplify and minify via EditorConfig + * cmd/shfmt: test that we don't mix sibling EditorConfig file settings + * update dependencies + * interp: undo removal of "unnecessary" type conversion + * pattern: make the globstar "**" not match leading dots in basenames + * expand: rely on pattern's handling of leading dots with "*" + * pattern: make "*" not match leading dots in basenames + * pattern: tweak how **/ is transpiled as a regexp + * pattern: remove the broken Braces mode + * all: remove two unnecessary type conversions + * pattern: add test cases for matching dot-prefixed filenames + * interp: subshells in a pipe are run concurrently + * pattern: replace bytes.Buffer with strings.Builder + * pattern: "**" only acts as globstar when alone as a path element + * pattern: add more test cases for globstar not used on its own + * interp: expose ExitStatus and deprecate NewExitStatus and IsExitStatus + * interp: return non-fatal ExecHandler errors via Runner.Run + * interp: make tests reliable on MacOS + * interp: clarify that Runner.err is for fatal errors only at this point + * interp: decouple `return` from Runner.err + * interp: add more test cases for exec handler errors causing a stop + * interp: set exit status 1 as a fallback on custom exec handler errors + * interp: add more test cases for failing pipes + * interp: correct the exit statuses of commands used in tests + * interp: add more test cases for exec handler errors and exit statuses + * interp: show which errors end up in Runner.Run in the handler tests + * docs: `prettier-plugin-sh` now uses `sh-syntax` + * README: polish a few bits and add the main interpreter caveat + * README: actually include sh-syntax link + * _js: drop mvdan-sh JS package built with GopherJS + * pattern: add NoGlobStar mode + * Add README entry + * chore: a tiny typo in comment + * interp: make the new background shell tests more resilient + * interp: document overlayEnviron a bit more + * interp: make a full copy of the environment for background subshells + * interp: initial support for $! and wait PID + * interp: clarify handler docs a bit + * expand: tweak tilde expansion to match Bash semantics + * interp: add comment next to prev.Local = false + * interp: support modifying local vars from parent caller funcs + * interp: refactor overlayEnviron.Set to deduplicate map lookups + * interp: add more test cases for local vars and parent funcs + * interp: set BASH_REMATCH when doing a regular expression match with `=~` + * expand: clarify Variable.Set + * expand: heredocs unescape \$, \\, and \`, just not \" + * update deps + * all: make more use of strings.Cut and friends + * CHANGELOG: add entry for v3.11.0 + * interp: skip handler test using process substitutions on Windows + * interp: only obey TMPDIR if it is an absolute dir + * update all dependencies + * interp: do not hard-code the use of os.TempDir for named pipes + * interp: do not open our own ProcSubst FIFO files via OpenHandler + * interp: test process substitutions with an OpenHandler + * fileutil: shebang detection improvements + * syntax: use LangError consistently and add a LangUsed field + * syntax: make IsIncomplete more robust + * syntax: cover "EOF immediately after heredoc" in Stmts via a test + * all: start exposing iter.Seq2[T, error] APIs + * all: run gopls's modernize -fix + * all: gofumpt + * interp: better support for directories in test -r, -w, -x checks + * all: make use of slices.Backward + * README: Add neoformat NeoVim / Vim plugin + * interp: second attempt at fixing /dev/null on Windows + * interp: work around apparent Go 1.24 regression with os.DevNull on Windows + * interp: add a test case where OpenHandler gets given a non-local path + * update x/sys and x/term + * start using range-over-func + * make use of maps.Keys and maps.Values from Go 1.23 + * add Go 1.24.x, drop 1.22.x + * go mod tidy + * interp: deduplicate calls to Runner.lookupVar + * interp,expand: rethink setting variables + * interp: add more tests for 1108 + * expand: don't unescape characters inside here-documents + * expand: make ValueKind a fmt.Stringer + * interp: process substitutions are not waited for + * interp: document that HandlerContext.Stdin is always a file + * expand: fix broken links + * interp: improve method signature + * all: add godoc links where possible + * pattern: fix outdated comment, and add godoc links + * cmd/shfmt: switch away from func() int for testscript + * syntax: use generics to walk nilable node fields + * syntax: use generics to walk over lists of nodes + * syntax: recover binary commands properly + * syntax: initial support for recovering from missing tokens + * interp: skip cancellable reader test on Windows + * interp: don't test cancelling a read via os.Stdin + * interp: drop muesli/cancelreader for os.File.SetReadDeadline + * interp: simplify context logic thanks to context.AfterFunc + * all: fix a few typos + * CI: test `go build` for plan9 and wasm + * all: fix build on plan9 + * syntax: linkify syntax node godocs + * cmd/shfmt: support -l=0 and -f=0 flags + * update deps + * expand: fix sequential '\' in double quote literals + * CHANGELOG: prepare for v3.10.0 + * cmd/shfmt: bump deps in Dockerfile + * interp: let HandlerContext.Stdin be nil again when there is no stdin + * interp: support closing stdin, stdout, and stderr files + * cmd/shfmt: move --filename out of parser options + * interp: test and fix `read` with regular files as stdin + * all: clarify that the "keep padding" formatting option is deprecated + * cmd/shfmt: report correct language read from EditorConfig in errors + * cmd/shfmt: show broken behavior in test for #1102 + * update all deps + * interp: add an Interactive option to be used by cmd/gosh + * cmd/gosh: add bad test case for #1100 + * syntax: parse all CRLF line endings as LF + * syntax: add a few godoc links + * cmd/shfmt: test that -i=0 does not skip ignore=true from EditorConfig + * README: clarify caveat for `declare` + * expand: use cmp.Or + * syntax: include skipped backslashes in backticks for column numbers + * syntax: actually use qt.CmpEquals + * syntax: include skipped null bytes in column numbers + * syntax: add test case for positions after skipped null bytes + * syntax: do not use %d verb for syntax.Pos + * all: more tweaks thanks to Go 1.22 + * syntax/typedjson: use reflect.TypeFor + * go.mod: update dependencies + * syntax: fix a fmt.Sprintf issue spotted by the latest go vet + * all: swap bytes.Buffer for strings.Builder + * CHANGELOG: prepare for v3.9.0 + * add Go 1.23.x, drop 1.21.x + * interp: add -s (silent) support to the read builtin + * cmd/gosh: use an os.Pipe in another interactive test + * interp: fix data race regression with stdin pipe changes + * interp: use os.Pipe when StdIO or OpenHandler produce non-file stdins + * interp: add a broken test for stdin draining with StdIO + * interp: do not include TODOs in godoc comments + * interp: implement here-documents via os.Pipe + * interp: verify tests with Bash 5.2 + * syntax: use the min builtin + * update dependencies + * syntax: use Parser.matched consistently + * update editorconfig and golang.org/x deps + * interp: implement -O and -G tests + * expand: allocate fewer objects in Fields + * expand: replace sort.SearchStrings with slices.BinarySearchFunc + * update dependencies + * syntax: add support for the Bash 5.2 @k expansion operator + * expand: avoid a panic when ParamExp.Repl.Orig is nil + * syntax: avoid a slice bounds check on every input byte + * syntax: implement basic offset overflow protection + * syntax: reduce the amount of allocation batching again + * syntax: remove colOverflow conditional + * syntax: make Parser.reset a bit more conservative + * syntax: move benchmarks to a separate file + * syntax: quicktest can take go-cmp options now + * cmd/shfmt: drop SHFMT_NO_EDITORCONFIG warning + * cmd/shfmt: swap out pkg/diff for internal/diff + * cmd/shfmt: simplify with fewer globals + * all: update dependencies + * all: shadow the variable in type switches + * DebugPrint: Print the string value of tokens + * Allow case-insensitive filename globbing; add nocaseglob + * interp: cancellable reads; EOF on "read" sets var to "" + * syntax: swap frankban/quicktest for go-quicktest/qt + * syntax: drop go1.18 build tag for fuzz_test.go + * all: make use of the slices package + * cmd/shfmt: fix typo in shfmt.1.scd + * cmd/shfmt: document when --filename is needed for EditorConfig support + * CHANGELOG: prepare for v3.8.0 + * all: start using Go 1.21 std APIs + * CI: bump bash image version + * add Go 1.22, drop Go 1.20 + * CI: bump github actions + * bump dependencies before the next release + * cmd/shfmt: add --apply-ignore flag for tools and editors + * cmd/shfmt: support editorconfig language sections + * syntax: backquotes affect backslashes in single quotes too + * syntax: better column numbers for escapes inside backquotes + * cmd/shfmt: document how EditorConfig's "ignore" works + * syntax: detect bash 5.2 rather than 5.1 + * update dependencies + * README: fix up a few links + * Update Arch Linux package URL in README.md + * interp: support subshells with FuncEnviron as Env + * expand: support zero-padding in brace expansions + * syntax: support brace expansions with uppercase letters + * interp: support parentheses in classic test commands + * interp: add TODOs about test operator precedence + * interp,expand: add support for fs.DirEntry + * appease unparam + * interp: determine access to a directory via unix.Access + * syntax: allow redirects before all arguments + * all: add Go 1.21, drop 1.19 + * Update README.md + * syntax: better error when using "function" in POSIX mode + * cmd/shfmt: don't recommend inline EditorConfig comments + * CHANGELOG: fix formatting on the latest link references + +------------------------------------------------------------------- +Sun Jul 23 16:01:14 UTC 2023 - Jeff Kowalczyk <jkowalc...@suse.com> + +- Packaging improvements: + * Re-enable binary stripping and debuginfo boo#121093 + * Use BuildRequires: golang(API) >= 1.19 as a clearer way to + indicate the minimum Go toolchain version in go.mod is go1.19. + * Add comment embedding version info via ldflags is necessary + here due to upstream code choice to always return (devel). + * Add basic %check to execute the binary --help, also --version + since that is an open issue for this package. + * Fix rpmlint warnings to not repeat package name in + summary. This package currently only includes the formatter + binary, not the parser or interpreter. Update the summary and + description to reflect that. + +------------------------------------------------------------------- +Sun Jul 23 01:28:01 UTC 2023 - Erefd X <zzndb...@gmail.com> + +- Update to version 3.7.0: + * prepare for v3.7.0 + * cmd/shfmt: bump Dockerfile image versions + * CHANGELOG: start the release notes for v3.7.0 + * syntax: stop embedding Pos in error struct types + * all: assume C.UTF-8 is available in the tests + * syntax: treat &> as an error in POSIX mode + * syntax: run "confirm" shell commands in a temp dir + * syntax: don't parse `$foo#bar` as a comment + * all: apply minor suggestions from gopls + * syntax: add TODO about writer methods on Printer +- Add ldflags version info back since --version option always print (devel) +- Update required version to BuildRequires: golang(API) > 1.18 + +------------------------------------------------------------------- Old: ---- sh-3.5.1.obscpio New: ---- sh-3.12.0.obscpio ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ shfmt.spec ++++++ --- /var/tmp/diff_new_pack.gdrW0E/_old 2025-08-25 20:38:55.470168182 +0200 +++ /var/tmp/diff_new_pack.gdrW0E/_new 2025-08-25 20:38:55.474168349 +0200 @@ -1,7 +1,7 @@ # # spec file for package shfmt # -# Copyright (c) 2021 SUSE LLC +# Copyright (c) 2025 SUSE LLC and contributors # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -15,33 +15,47 @@ # Please submit bugfixes or comments via https://bugs.opensuse.org/ # -%define __arch_install_post export NO_BRP_STRIP_DEBUG=true %define prj_name sh Name: shfmt -Version: 3.5.1 +Version: 3.12.0 Release: 0 -Summary: A shell parser, formatter, and interpreter with bash support; includes shfmt +Summary: A shell formatter with bash support License: BSD-3-Clause URL: https://github.com/mvdan/sh Source0: %{prj_name}-%{version}.tar.xz Source1: vendor.tar.xz -BuildRequires: golang(API) >= 1.17 +BuildRequires: golang(API) >= 1.19 %description -A shell parser, formatter, and interpreter. Supports POSIX Shell, Bash, and mksh. +A shell formatter. Supports POSIX Shell, Bash, and mksh. %prep %setup -q -a1 -n %{prj_name}-%{version} %build +# Embedding version info via ldflags is necessary here due to upstream +# choice to always return (devel) in: +# https://github.com/mvdan/sh/blob/master/cmd/shfmt/main.go#L73 and +# https://github.com/mvdan/sh/blob/master/cmd/shfmt/main.go#L168-L176 +# TODO: PR upstream to use runtime/debug.ReadBuildInfo available in go1.18+ go build \ -mod=vendor \ -tags extended \ -buildmode=pie \ + -ldflags "-X main.version=%{version}" \ ./cmd/shfmt +%check +# execute the binary as a basic check +./%{name} --help +# also check version since this application requires unusual packaging (ldflags) +if [ "$(./%{name} --version)" != "%{version}" ] ; then + echo "Version information embedded in binary is not the value expected" + exit 1 +fi + %install install -D -m 0755 %{name} "%{buildroot}/%{_bindir}/%{name}" ++++++ _service ++++++ --- /var/tmp/diff_new_pack.gdrW0E/_old 2025-08-25 20:38:55.510169858 +0200 +++ /var/tmp/diff_new_pack.gdrW0E/_new 2025-08-25 20:38:55.510169858 +0200 @@ -2,7 +2,7 @@ <service name="obs_scm" mode="disabled"> <param name="url">https://github.com/mvdan/sh.git</param> <param name="scm">git</param> - <param name="revision">v3.5.1</param> + <param name="revision">v3.12.0</param> <param name="versionformat">@PARENT_TAG@</param> <param name="changesgenerate">enable</param> <param name="versionrewrite-pattern">v(.*)</param> @@ -14,7 +14,7 @@ </service> <service name="set_version" mode="disabled" /> <service name="go_modules" mode="disabled"> - <param name="archive">sh-3.5.1.obscpio</param> + <param name="archive">sh-3.12.0.obscpio</param> <param name="compression">xz</param> </service> </services> ++++++ _servicedata ++++++ --- /var/tmp/diff_new_pack.gdrW0E/_old 2025-08-25 20:38:55.534170863 +0200 +++ /var/tmp/diff_new_pack.gdrW0E/_new 2025-08-25 20:38:55.538171031 +0200 @@ -1,6 +1,6 @@ <servicedata> <service name="tar_scm"> <param name="url">https://github.com/mvdan/sh.git</param> - <param name="changesrevision">747507a87443fe982c60b102de701e8a9834b849</param></service></servicedata> + <param name="changesrevision">8202166b7d1e3473a7c65eeac53ddbdb55d5b808</param></service></servicedata> (No newline at EOF) ++++++ sh-3.5.1.obscpio -> sh-3.12.0.obscpio ++++++ ++++ 233328 lines of diff (skipped) ++++++ sh.obsinfo ++++++ --- /var/tmp/diff_new_pack.gdrW0E/_old 2025-08-25 20:38:56.190198346 +0200 +++ /var/tmp/diff_new_pack.gdrW0E/_new 2025-08-25 20:38:56.206199017 +0200 @@ -1,5 +1,5 @@ name: sh -version: 3.5.1 -mtime: 1653338003 -commit: 747507a87443fe982c60b102de701e8a9834b849 +version: 3.12.0 +mtime: 1751836096 +commit: 8202166b7d1e3473a7c65eeac53ddbdb55d5b808 ++++++ vendor.tar.xz ++++++ ++++ 105782 lines of diff (skipped)