Skip to content

build(deps): bump github.com/gookit/goutil from 0.8.0 to 0.8.3 - #19

Merged
inhere merged 1 commit into
mainfrom
dependabot/go_modules/github.com/gookit/goutil-0.8.3
Oct 19, 2026
Merged

inhere merged 1 commit into
mainfrom
dependabot/go_modules/github.com/gookit/goutil-0.8.3

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Oct 19, 2026

Copy link
Copy Markdown
Contributor

Bumps github.com/gookit/goutil from 0.8.0 to 0.8.3.

Release notes

Sourced from github.com/gookit/goutil's releases.

v0.8.3

Change Log

Refactor

Fixed

Other

v0.8.2

Change Log

Feature

Fixed

Other

v0.8.1

Change Log

Fixed

... (truncated)

Changelog

Sourced from github.com/gookit/goutil's changelog.

[v0.8.3] - 2026-10-14

Added

  • cflag/capp: two-level sub commands. Build a group command, register the sub commands on it, then add the group to the app:

    group := capp.NewCmd("session", "manage sessions")
    group.BoolVar(&verbose, "verbose", false, "verbose output;;v")
    list := capp.NewCmd("list", "list sessions")
    list.Aliases = []string{"ls"} // aliases must be set before add
    group.Add(list, capp.NewCmd("send", "send a message"))
    app.Add(group) // myapp session list

    New API: Cmd.Add, Cmd.AddOrErr, Cmd.Sub, Cmd.HasSubs, Cmd.Parent, Cmd.Path. A group command parses its own options before the sub command name, cannot declare positional arguments, and with no positional args it runs its own Func or shows the group help (myapp session -h). Nesting is recursive, but two levels are the documented usage; see the "两级子命令" / "Two-Level Subcommands" section of cflag/README.md.

Changed

  • strutil.SubstrCount: params[0] and params[1] are a rune offset and a rune length. An offset at or after the end of the string now gives an empty range (count 0) instead of an error — the same boundary convention as Substr().
  • timex.TryToTime: the "now" keyword honors the given base time, like "0" and the duration strings do. time.Now() is only used when the base time is zero.

Fixed

  • strutil.SubstrCount: the default end was derived from the byte length while the range was sliced by rune index. On short multi-byte strings the call read past the last rune and returned a bogus count — SubstrCount("你好你好", "", 1) returned 12 instead of 4 — and longer byte lengths panicked with a slice-bounds error (#271).
  • cflag/capp: a Cmd built from a struct literal without CFlags panicked while rendering help or parsing; the command help now also follows the app output (app.SetOutput) when the command did not set its own output.
  • x/termenv: the color support level is initialized by a platform-specific init(), so the non-Windows build no longer reports needVTP as unused (staticcheck U1000).
  • testutil: RestoreTimeLocal() left its saved location in place, so a second SetTimeLocal() in the same process panicked with "time local already set" and a test could not be repeated with go test -count>1.

#271: gookit/goutil#271

Commits
  • 97699a6 docs(changelog): release v0.8.3
  • 34d8e59 fix(testutil): clear the saved location in RestoreTimeLocal
  • 3c92709 docs: add CHANGELOG.md
  • a98f274 refactor(strutil): rename strlen to runeCount and unify the out-of-range cont...
  • 2a0cea3 fix(strutil): bound SubstrCount ranges using rune lengths (#271)
  • 11f0051 fix(termenv): init the color level per platform to fix staticcheck U1000
  • 7c1e8d1 chore: add an design doc file
  • 88c31a5 docs(plan): record the implementation progress and drop the machine-local path
  • 17e1775 fix(cflag/capp): nil-safe cmd desc/parse and let command help follow the app ...
  • c926560 docs(cflag): add the two-level sub commands guide and example
  • Additional commits viewable in compare view

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Bumps [github.com/gookit/goutil](https://github.com/gookit/goutil) from 0.8.0 to 0.8.3.
- [Release notes](https://github.com/gookit/goutil/releases)
- [Changelog](https://github.com/gookit/goutil/blob/master/CHANGELOG.md)
- [Commits](gookit/goutil@v0.8.0...v0.8.3)

---
updated-dependencies:
- dependency-name: github.com/gookit/goutil
  dependency-version: 0.8.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file go Pull requests that update go code labels Oct 19, 2026
@inhere
inhere merged commit 0ffafb0 into main Oct 19, 2026
18 checks passed
@dependabot
dependabot Bot deleted the dependabot/go_modules/github.com/gookit/goutil-0.8.3 branch October 19, 2026 12:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file go Pull requests that update go code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant