Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add convenience builder for git commands #2645

Merged
merged 3 commits into from
May 20, 2023

Conversation

jesseduffield
Copy link
Owner

@jesseduffield jesseduffield commented May 20, 2023

  • PR Description

This PR adds a convenience builder for git commands. It particularly comes in handy when you want a concise way of conditionally adding arguments to a git command.

The PR currently applies this new pattern across all of git_commands, but I'd like to get feedback on whether that's a good idea.

Benefits of the new pattern:

  • conditionally adding args is easy and concise
  • less risk of double-spaces in git commands

Downsides of the new pattern:

  • much more verbose for the typical case where you're just appending a bunch of args unconditionally
  • harder to CTRL+F

So I'm thinking we have a few options:

make use of this pattern everywhere and stop using plain strings

  • reduces cognitive overhead that you'd get from working with multiple patterns
  • spares us from needing to switch from one pattern to another when say you need to add a conditional argument.
  • (speculative, probably not a thing) easier to apply some flag to all git commands in future (because they are all constructed by the same code). Example would be passing a '-C' argument for when working with a remote or submodule

make use of this pattern only when we need to add conditional args

This is less consistent but it means in the places where you have a sequence of static git commands (no conditional args) it's a lot easier to read, and there's less vertical space being used. It also means when you need the new pattern, it results in much cleaner code.

ditch it entirely

This also benefits from consistency, and spares us having to tell new contributors about our pattern for expressing git commands.

  • Please check if the PR fulfills these requirements
  • Cheatsheets are up-to-date (run go run scripts/cheatsheet/main.go generate)
  • Code has been formatted (see here)
  • Tests have been added/updated (see here for the integration test guide)
  • Text is internationalised (see here)
  • Docs (specifically docs/Config.md) have been updated if necessary
  • You've read through your own file changes for silly mistakes etc

@github-actions
Copy link
Contributor

github-actions bot commented May 20, 2023

Uffizzi Preview deployment-25957 was deleted.

filterFlag,
),
).DontLog()
cmdStr := NewGitCmd("log").
Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

example where the pattern works really well

if err := self.cmd.New("git config --file .gitmodules --remove-section submodule." + self.cmd.Quote(submodule.Name)).Run(); err != nil {
return err
}
deinitCmdStr := NewGitCmd("submodule").
Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

example where the pattern detracts from readability

err := self.cmd.New(fmt.Sprintf(command, self.cmd.Quote(name))).Run()
var cmdStr string
if reset {
cmdStr = NewGitCmd("reset").Arg("HEAD").Arg("--").Arg(self.cmd.Quote(name)).ToString()
Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

if we state the command on one line it's not too hard to read, but given the realestate being taken up by the method calls, you can't fit much on one line

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe we could also have Args(flags ...string) for cases like these?

Although, then we wouldn't really need Arg(flag string), would we?

Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I like that. So it would become

NewGitCmd("reset").Args("HEAD", "--", self.cmd.Quote(name)).ToString()

I'm fine with having both Args and Arg.

Comment on lines -101 to +102
return self.cmd.New("git bisect reset").StreamOutput().Run()
cmdStr := NewGitCmd("bisect").Arg("reset").ToString()

return self.cmd.New(cmdStr).StreamOutput().Run()
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I was also going to vote for using the new pattern everywhere for consistency, but seeing this I'm not so sure... I find the old one a lot easier to read in simple cases like this.

@jesseduffield
Copy link
Owner Author

@stefanhaller I'm responding to your comments on this PR because I've closed the other one:

  • I've split out a separate test coverage commit
  • I think quoted arg would add too much complexity because we'd need QuotedArgIf and co. We also need to quote things within an arg e.g. --set-upstream-to="remote"/"branch" so I'd prefer just having one way to do it.
  • checking for an empty arg string was a convenience thing for when you're calling another method that may signal the lack of an arg by returning an empty string. But that didn't happen very often, so I'm happy to scrap it

Copy link
Collaborator

@mark2185 mark2185 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just a few nitpicks.

return self
}

func (self *GitCommandBuilder) ArgIfElse(isTrue bool, onTrue string, onFalse string) *GitCommandBuilder {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

isTrue , onTrue and onFalse sound a tad odd.

How about condition, ifTrue, ifFalse?

return self
}

func (self *GitCommandBuilder) ArgIf(include bool, flag string) *GitCommandBuilder {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

condition bool, ifTrue string ?

scenarios := []struct {
input string
expected string
}{
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If we're gonna leave the if flag == "" that @stefanhaller commented in that other PR we might as well have a test for it.

@@ -228,7 +226,8 @@ func (self *RebaseCommands) AmendTo(commits []*models.Commit, commitIndex int) e
}

// Get the sha of the commit we just created
fixupSha, err := self.cmd.New("git rev-parse --verify HEAD").RunWithOutput()
cmdStr := NewGitCmd("rev-parse").Arg("--verify").Arg("HEAD").ToString()
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could use Args here. There are several other places as well still left to be replaced with Args.

Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Definitely

Copy link
Collaborator

@mark2185 mark2185 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just a few nitpicks.

@jesseduffield jesseduffield force-pushed the convenient-git-command-building branch from 8ad8463 to 7e78c37 Compare May 20, 2023 07:14
@stefanhaller
Copy link
Collaborator

* I think quoted arg would add too much complexity because we'd need QuotedArgIf and co.

This is not really super important to me, but since we're discussing it: I'm not convinced. I see ArgIf to be used for flags (which never need to be quoted), not for normal args, so I'd just omit QuotedArgIf.

We also need to quote things within an arg e.g. --set-upstream-to="remote"/"branch"

I don't think so: there shouldn't be a difference in practice between --set-upstream-to="remote"/"branch" and "--set-upstream-to=remote/branch".

But this touches on the topic of why we are doing this quoting business at all in the first place. I dislike this very much, but I never got around to investigating why it's needed. The underlying exec package supports passing args as an array, so why don't we do that? I suppose I could answer that question myself by reading more code, but I don't have the time right now... :-/

@jesseduffield
Copy link
Owner Author

There are instances where we need quotes with ArgIf e.g. ArgIf(opts.FilterPath != "", self.cmd.Quote(opts.FilterPath)). in pkg/commands/git_commands/commit_loader.go.

As for why we need quotes: it may be that if we switched to specifying args via a slice rather than a single string, we wouldn't need to quote anything. We've historically always taken the string based approach.

@stefanhaller
Copy link
Collaborator

I see now that we already have CmdObjBuilder.NewFromArgs, we're just not using it anywhere. I think we should!

How do you feel about changing NewGitCmd to return a CmdObj rather than a string? That would make it easier to change the implementation later to use NewFromArgs. Or you could even do it in this PR pretty easily, that would get rid of a lot of Quote() calls already.

@jesseduffield
Copy link
Owner Author

I've been thinking about that: in pretty much all cases that we create this string we end up passing it to CmdObjBuilder so I think it's a good idea.

@jesseduffield jesseduffield force-pushed the convenient-git-command-building branch 3 times, most recently from d7be5c2 to fa6afb7 Compare May 20, 2023 10:21
@jesseduffield jesseduffield force-pushed the convenient-git-command-building branch from fa6afb7 to ee11046 Compare May 20, 2023 10:55
@jesseduffield
Copy link
Owner Author

I'm gonna merge this as-is: in a future PR I'll integrate this new interface into our command builder so that we run commands passing an args slice instead of a string. That may allow us to stop quoting args all over the place (subject to testing)

@jesseduffield jesseduffield merged commit b30ec53 into master May 20, 2023
9 checks passed
@jesseduffield jesseduffield deleted the convenient-git-command-building branch May 20, 2023 10:58
@jesseduffield
Copy link
Owner Author

To be clear: we're gonna use this pattern everywhere not just for consistency but because passing an array of args instead of a string should have plenty of benefits

@jesseduffield jesseduffield added the maintenance For refactorings, CI changes, tests, version bumping, etc label Jul 19, 2023
renovate bot added a commit to scottames/dots that referenced this pull request Aug 1, 2023
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
|
[GoogleContainerTools/skaffold](https://github.com/GoogleContainerTools/skaffold)
| patch | `v2.6.1` -> `v2.6.2` |
| [aquaproj/aqua](https://github.com/aquaproj/aqua) | minor | `v2.9.0`
-> `v2.10.1` |
|
[aquaproj/aqua-installer](https://github.com/aquaproj/aqua-installer)
| patch | `v2.1.1` -> `v2.1.2` |
| [aquaproj/aqua-registry](https://github.com/aquaproj/aqua-registry)
| minor | `v4.26.0` -> `v4.32.0` |
|
[bitnami-labs/sealed-secrets](https://github.com/bitnami-labs/sealed-secrets)
| minor | `v0.22.0` -> `v0.23.0` |
| [charmbracelet/gum](https://github.com/charmbracelet/gum) | minor |
`v0.10.0` -> `v0.11.0` |
| [cli/cli](https://github.com/cli/cli) | patch | `v2.32.0` ->
`v2.32.1` |
| [jesseduffield/lazygit](https://github.com/jesseduffield/lazygit) |
minor | `v0.38.2` -> `v0.39.4` |
|
[kubernetes-sigs/kustomize](https://github.com/kubernetes-sigs/kustomize)
| patch | `v5.1.0` -> `v5.1.1` |
| [kubernetes/kubectl](https://github.com/kubernetes/kubectl) | patch
| `1.27.3` -> `1.27.4` |
| [kubernetes/minikube](https://github.com/kubernetes/minikube) |
minor | `v1.30.1` -> `v1.31.1` |
| [marcosnils/bin](https://github.com/marcosnils/bin) | minor |
`v0.16.2` -> `v0.17.0` |
| [starship/starship](https://github.com/starship/starship) | minor |
`v1.15.0` -> `v1.16.0` |
| [twpayne/chezmoi](https://github.com/twpayne/chezmoi) | minor |
`v2.34.3` -> `v2.36.1` |
| [weaveworks/eksctl](https://github.com/weaveworks/eksctl) | minor |
`v0.149.0` -> `v0.150.0` |

---

### Release Notes

<details>
<summary>GoogleContainerTools/skaffold
(GoogleContainerTools/skaffold)</summary>

###
[`v2.6.2`](https://github.com/GoogleContainerTools/skaffold/releases/tag/v2.6.2):
Release

[Compare
Source](https://github.com/GoogleContainerTools/skaffold/compare/v2.6.1...v2.6.2)

### v2.6.2 Release - 2023-07-19

**Linux amd64**
`curl -Lo skaffold
https://storage.googleapis.com/skaffold/releases/v2.6.2/skaffold-linux-amd64
&& chmod +x skaffold && sudo mv skaffold /usr/local/bin`

**Linux arm64**
`curl -Lo skaffold
https://storage.googleapis.com/skaffold/releases/v2.6.2/skaffold-linux-arm64
&& chmod +x skaffold && sudo mv skaffold /usr/local/bin`

**macOS amd64**
`curl -Lo skaffold
https://storage.googleapis.com/skaffold/releases/v2.6.2/skaffold-darwin-amd64
&& chmod +x skaffold && sudo mv skaffold /usr/local/bin`

**macOS arm64**
`curl -Lo skaffold
https://storage.googleapis.com/skaffold/releases/v2.6.2/skaffold-darwin-arm64
&& chmod +x skaffold && sudo mv skaffold /usr/local/bin`

**Windows**

https://storage.googleapis.com/skaffold/releases/v2.6.2/skaffold-windows-amd64.exe

**Docker image**
`gcr.io/k8s-skaffold/skaffold:v2.6.2`

**Full Changelog**:
https://github.com/GoogleContainerTools/skaffold/compare/v2.6.1...v2.6.2

</details>

<details>
<summary>aquaproj/aqua (aquaproj/aqua)</summary>

### [`v2.10.1`](https://github.com/aquaproj/aqua/releases/tag/v2.10.1)

[Compare
Source](https://github.com/aquaproj/aqua/compare/v2.10.0...v2.10.1)

[Pull
Requests](https://github.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.10.1)
|
[Issues](https://github.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.10.1)
| https://github.com/aquaproj/aqua/compare/v2.10.0...v2.10.1

##### Bug Fixes

[#&#8203;2119](https://github.com/aquaproj/aqua/issues/2119) Stop
outputting checksum file paths except for `aqua update-checksum`

This is a bug of aqua
[v2.10.0](https://github.com/aquaproj/aqua/releases/tag/v2.10.0)
[#&#8203;2108](https://github.com/aquaproj/aqua/issues/2108)

### [`v2.10.0`](https://github.com/aquaproj/aqua/releases/tag/v2.10.0)

[Compare
Source](https://github.com/aquaproj/aqua/compare/v2.9.1...v2.10.0)

[Pull
Requests](https://github.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.10.0)
|
[Issues](https://github.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.10.0)
| https://github.com/aquaproj/aqua/compare/v2.9.1...v2.10.0

##### Features

[#&#8203;2111](https://github.com/aquaproj/aqua/issues/2111) Add a
subcommand `info`
[#&#8203;2108](https://github.com/aquaproj/aqua/issues/2108)
update-checksum: Output created or updated file names

##### Others

[#&#8203;2110](https://github.com/aquaproj/aqua/issues/2110) Update
aqua-proxy v1.2.0 to v1.2.1

https://github.com/aquaproj/aqua-proxy/releases/tag/v1.2.1

##### Features - Add a subcommand `info`

[#&#8203;2111](https://github.com/aquaproj/aqua/issues/2111)

e.g.

```console
$ aqua info
{
  "version": "2.10.0",
  "commit_hash": "b80f805489c317d83d7fe0b182f3ef5c82a06725",
  "os": "darwin",
  "arch": "arm64",
  "pwd": "/Users/(USER)/Documents/aqua/info",
  "root_dir": "/Users/(USER)/.local/share/aquaproj-aqua",
  "env": {
    "AQUA_GITHUB_TOKEN": "(masked)",
    "AQUA_GLOBAL_CONFIG": "/Users/(USER)/repos/src/github.com/aquaproj/aqua-registry/aqua-all.yaml"
  },
  "config_files": [
    {
      "path": "/Users/(USER)/Documents/aqua/info/aqua/aqua.yaml"
    }
  ]
}
```

GitHub Access Token and user name are masked.

This is useful for troubleshooting.
Please paste the result of this command to your support issues.

##### Features - update-checksum: Output created or updated file names

[#&#8203;2108](https://github.com/aquaproj/aqua/issues/2108)

```console
$ aqua update-checksum
```

This is useful to commit and push created or updated files in CI.

### [`v2.9.1`](https://github.com/aquaproj/aqua/releases/tag/v2.9.1)

[Compare
Source](https://github.com/aquaproj/aqua/compare/v2.9.0...v2.9.1)

[Pull
Requests](https://github.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.9.1)
|
[Issues](https://github.com/aquaproj/aqua/issues?q=is%3Aissue+milestone%3Av2.9.1)
| https://github.com/aquaproj/aqua/compare/v2.9.0...v2.9.1

##### Bug Fixes

[#&#8203;2098](https://github.com/aquaproj/aqua/issues/2098) Fix the
Windows support. Fix a bug that aqua skips renaming files mistakenly on
Windows.

This bug affects only Windows.
Windows can't execute files without file extension, but some packages
release executable files without file extension.
So aqua renames files to add file extension such as `.exe` on Windows
when aqua installs them.

This release fixes a bug that this feature doesn't work well.

##### Others

[#&#8203;2091](https://github.com/aquaproj/aqua/issues/2091) Update Go
1.20.5 to 1.20.6

</details>

<details>
<summary>aquaproj/aqua-installer (aquaproj/aqua-installer)</summary>

###
[`v2.1.2`](https://github.com/aquaproj/aqua-installer/releases/tag/v2.1.2)

[Compare
Source](https://github.com/aquaproj/aqua-installer/compare/v2.1.1...v2.1.2)


[Issues](https://github.com/aquaproj/aqua-installer/issues?q=is%3Aissue+milestone%3Av2.1.2)
| [Pull
Requests](https://github.com/aquaproj/aqua-installer/pulls?q=is%3Apr+milestone%3Av2.1.2)
| https://github.com/aquaproj/aqua-installer/compare/v2.1.1...v2.1.2

##### Fixes

[#&#8203;432](https://github.com/aquaproj/aqua-installer/issues/432)
Fix typo
[#&#8203;461](https://github.com/aquaproj/aqua-installer/issues/461)
[#&#8203;463](https://github.com/aquaproj/aqua-installer/issues/463)
Fix a bug that action doesn't work in a container

##### Fix a bug that action doesn't work in a container

[#&#8203;461](https://github.com/aquaproj/aqua-installer/issues/461)
[#&#8203;463](https://github.com/aquaproj/aqua-installer/issues/463)

GitHub Actions supports running a job in a container.


https://docs.github.com/en/actions/using-jobs/running-jobs-in-a-container

But in a container the variable `${{ github.action_path }}` is wrong, so
action can't access the script `aqua-installer`.
This is a known issue of GitHub Actions.

-
[https://github.com/actions/runner/issues/2185](https://github.com/actions/runner/issues/2185)

To solve the issue, we copy the content of the script `aqua-installer`
into action itself, then action don't have to access the script
`aqua-installer`.

</details>

<details>
<summary>aquaproj/aqua-registry (aquaproj/aqua-registry)</summary>

###
[`v4.32.0`](https://github.com/aquaproj/aqua-registry/releases/tag/v4.32.0)

[Compare
Source](https://github.com/aquaproj/aqua-registry/compare/v4.31.0...v4.32.0)


[Issues](https://github.com/aquaproj/aqua-registry/issues?q=is%3Aissue+milestone%3Av4.32.0)
| [Pull
Requests](https://github.com/aquaproj/aqua-registry/pulls?q=is%3Apr+milestone%3Av4.32.0)
| https://github.com/aquaproj/aqua-registry/compare/v4.31.0...v4.32.0

#### 🎉 New Packages


[#&#8203;13691](https://github.com/aquaproj/aqua-registry/issues/13691)
[#&#8203;14174](https://github.com/aquaproj/aqua-registry/issues/14174)
[Scalingo/cli](https://github.com/Scalingo/cli): Command Line client
for Scalingo PaaS

[#&#8203;14209](https://github.com/aquaproj/aqua-registry/issues/14209)
[connectrpc/connect-go/protoc-gen-connect-go](https://github.com/connectrpc/connect-go):
Simple, reliable, interoperable. A better gRPC
[@&#8203;ichizero](https://github.com/ichizero)

:bulb: https://github.com/bufbuild/connect-go was relocated to
https://github.com/connectrpc/connect-go


[#&#8203;14173](https://github.com/aquaproj/aqua-registry/issues/14173)
[segmentio/topicctl](https://github.com/segmentio/topicctl): Tool for
declarative management of Kafka topics

#### 🎉 New Contributors

Thank you for your contribution!

[@&#8203;ichizero](https://github.com/ichizero)
[#&#8203;14209](https://github.com/aquaproj/aqua-registry/issues/14209)

###
[`v4.31.0`](https://github.com/aquaproj/aqua-registry/releases/tag/v4.31.0)

[Compare
Source](https://github.com/aquaproj/aqua-registry/compare/v4.30.0...v4.31.0)


[Issues](https://github.com/aquaproj/aqua-registry/issues?q=is%3Aissue+milestone%3Av4.31.0)
| [Pull
Requests](https://github.com/aquaproj/aqua-registry/pulls?q=is%3Apr+milestone%3Av4.31.0)
| https://github.com/aquaproj/aqua-registry/compare/v4.30.0...v4.31.0

#### 🎉 New Packages


[#&#8203;14076](https://github.com/aquaproj/aqua-registry/issues/14076)
[b4b4r07/vtest](https://github.com/b4b4r07/vtest): Unix `test` command
for Version comparison

[#&#8203;14097](https://github.com/aquaproj/aqua-registry/issues/14097)
[bflad/tfproviderdocs](https://github.com/bflad/tfproviderdocs):
Terraform Provider Documentation Tool
[@&#8203;ponkio-o](https://github.com/ponkio-o)

[#&#8203;14099](https://github.com/aquaproj/aqua-registry/issues/14099)
[golangci/misspell](https://github.com/golangci/misspell): Correct
commonly misspelled English words in source files
[@&#8203;ponkio-o](https://github.com/ponkio-o)

[#&#8203;14102](https://github.com/aquaproj/aqua-registry/issues/14102)
[hashicorp/copywrite](https://github.com/hashicorp/copywrite):
Automate copyright headers and license files at scale
[@&#8203;ponkio-o](https://github.com/ponkio-o)

[#&#8203;14101](https://github.com/aquaproj/aqua-registry/issues/14101)
[pavius/impi](https://github.com/pavius/impi): Verify proper golang
import directives, beyond the capability of gofmt and goimports
[@&#8203;ponkio-o](https://github.com/ponkio-o)

#### Fixes


[#&#8203;14078](https://github.com/aquaproj/aqua-registry/issues/14078)
stoplightio/spectral: Follow up changes of spectral v6.7.0

[#&#8203;14077](https://github.com/aquaproj/aqua-registry/issues/14077)
hhatto/gocloc: Follow up changes of gocloc v0.5.1

###
[`v4.30.0`](https://github.com/aquaproj/aqua-registry/releases/tag/v4.30.0)

[Compare
Source](https://github.com/aquaproj/aqua-registry/compare/v4.29.1...v4.30.0)


[Issues](https://github.com/aquaproj/aqua-registry/issues?q=is%3Aissue+milestone%3Av4.30.0)
| [Pull
Requests](https://github.com/aquaproj/aqua-registry/pulls?q=is%3Apr+milestone%3Av4.30.0)
| https://github.com/aquaproj/aqua-registry/compare/v4.29.1...v4.30.0

#### 🎉 New Packages


[#&#8203;13987](https://github.com/aquaproj/aqua-registry/issues/13987)
[snaplet/cli](https://www.snaplet.dev/): Seed your PostgreSQL database
with production-like data so you can code, debug, and test with ease
[@&#8203;Gowiem](https://github.com/Gowiem)

#### Improvements


[#&#8203;14005](https://github.com/aquaproj/aqua-registry/issues/14005)
[#&#8203;14026](https://github.com/aquaproj/aqua-registry/issues/14026)
aws/aws-cli: Support macOS

#### Fixes


[#&#8203;14021](https://github.com/aquaproj/aqua-registry/issues/14021)
apache/camel-k: Follow up changes of camel-k

[#&#8203;14004](https://github.com/aquaproj/aqua-registry/issues/14004)
mattn/efm-langserver: Ignore v0.0.45
[@&#8203;4513ECHO](https://github.com/4513ECHO)

[#&#8203;14022](https://github.com/aquaproj/aqua-registry/issues/14022)
watchexec/watchexec: Follow up changes of watchexec v1.20.6

###
[`v4.29.1`](https://github.com/aquaproj/aqua-registry/releases/tag/v4.29.1)

[Compare
Source](https://github.com/aquaproj/aqua-registry/compare/v4.29.0...v4.29.1)


[Issues](https://github.com/aquaproj/aqua-registry/issues?q=is%3Aissue+milestone%3Av4.29.1)
| [Pull
Requests](https://github.com/aquaproj/aqua-registry/pulls?q=is%3Apr+milestone%3Av4.29.1)
| https://github.com/aquaproj/aqua-registry/compare/v4.29.0...v4.29.1

#### Fixes


[#&#8203;13979](https://github.com/aquaproj/aqua-registry/issues/13979)
arttor/helmify: Follow up changes of helmify v0.4.5

[#&#8203;13974](https://github.com/aquaproj/aqua-registry/issues/13974)
birdayz/kaf: Follow up changes of kaf v0.2.6

[#&#8203;13971](https://github.com/aquaproj/aqua-registry/issues/13971)
caarlos0/fork-cleaner: Follow up change of fork-cleaner

[#&#8203;13969](https://github.com/aquaproj/aqua-registry/issues/13969)
charmbracelet/vhs: Follow up changes of vhs

[#&#8203;13980](https://github.com/aquaproj/aqua-registry/issues/13980)
google/mtail: Follow up changes of mtail

[#&#8203;13978](https://github.com/aquaproj/aqua-registry/issues/13978)
kyverno/kyverno: Follow up changes of kyverno

[#&#8203;13975](https://github.com/aquaproj/aqua-registry/issues/13975)
tmknom/actdocs: Follow up changes of actdocs v0.5.0

###
[`v4.29.0`](https://github.com/aquaproj/aqua-registry/releases/tag/v4.29.0)

[Compare
Source](https://github.com/aquaproj/aqua-registry/compare/v4.28.0...v4.29.0)


[Issues](https://github.com/aquaproj/aqua-registry/issues?q=is%3Aissue+milestone%3Av4.29.0)
| [Pull
Requests](https://github.com/aquaproj/aqua-registry/pulls?q=is%3Apr+milestone%3Av4.29.0)
| https://github.com/aquaproj/aqua-registry/compare/v4.28.0...v4.29.0

#### 🎉 New Packages


[#&#8203;13931](https://github.com/aquaproj/aqua-registry/issues/13931)
[k0kubun/xremap/gnome](https://github.com/k0kubun/xremap): Key
remapper for X11 and Wayland (for GNOME Wayland)
[@&#8203;4513ECHO](https://github.com/4513ECHO)

[#&#8203;13931](https://github.com/aquaproj/aqua-registry/issues/13931)
[k0kubun/xremap/hypr](https://github.com/k0kubun/xremap): Key remapper
for X11 and Wayland (for Hyprland)
[@&#8203;4513ECHO](https://github.com/4513ECHO)

[#&#8203;13931](https://github.com/aquaproj/aqua-registry/issues/13931)
[k0kubun/xremap/kde](https://github.com/k0kubun/xremap): Key remapper
for X11 and Wayland (for KDE-Plasma Wayland)
[@&#8203;4513ECHO](https://github.com/4513ECHO)

[#&#8203;13931](https://github.com/aquaproj/aqua-registry/issues/13931)
[k0kubun/xremap/sway](https://github.com/k0kubun/xremap): Key remapper
for X11 and Wayland (for Sway)
[@&#8203;4513ECHO](https://github.com/4513ECHO)

[#&#8203;13931](https://github.com/aquaproj/aqua-registry/issues/13931)
[k0kubun/xremap/x11](https://github.com/k0kubun/xremap): Key remapper
for X11 and Wayland (for X11)
[@&#8203;4513ECHO](https://github.com/4513ECHO)

#### Fixes


[#&#8203;13930](https://github.com/aquaproj/aqua-registry/issues/13930)
sheepla/fzwiki: Follow up changes of fzwiki v0.1.0-alpha
[@&#8203;4513ECHO](https://github.com/4513ECHO)

###
[`v4.28.0`](https://github.com/aquaproj/aqua-registry/releases/tag/v4.28.0)

[Compare
Source](https://github.com/aquaproj/aqua-registry/compare/v4.27.0...v4.28.0)


[Issues](https://github.com/aquaproj/aqua-registry/issues?q=is%3Aissue+milestone%3Av4.28.0)
| [Pull
Requests](https://github.com/aquaproj/aqua-registry/pulls?q=is%3Apr+milestone%3Av4.28.0)
| https://github.com/aquaproj/aqua-registry/compare/v4.27.0...v4.28.0

#### 🎉 New Packages


[#&#8203;13862](https://github.com/aquaproj/aqua-registry/issues/13862)
[JohnnyMorganz/StyLua](https://github.com/JohnnyMorganz/StyLua): An
opinionated Lua code formatter
[@&#8203;4513ECHO](https://github.com/4513ECHO)

[#&#8203;13863](https://github.com/aquaproj/aqua-registry/issues/13863)
[itchyny/maze](https://github.com/itchyny/maze): A maze command
written in Go [@&#8203;4513ECHO](https://github.com/4513ECHO)

###
[`v4.27.0`](https://github.com/aquaproj/aqua-registry/releases/tag/v4.27.0)

[Compare
Source](https://github.com/aquaproj/aqua-registry/compare/v4.26.0...v4.27.0)


[Issues](https://github.com/aquaproj/aqua-registry/issues?q=is%3Aissue+milestone%3Av4.27.0)
| [Pull
Requests](https://github.com/aquaproj/aqua-registry/pulls?q=is%3Apr+milestone%3Av4.27.0)
| https://github.com/aquaproj/aqua-registry/compare/v4.26.0...v4.27.0

#### 🎉 New Packages


[#&#8203;13784](https://github.com/aquaproj/aqua-registry/issues/13784)
[crates.io/shellharden](https://crates.io/crates/shellharden): The
corrective bash syntax highlighter
[@&#8203;hituzi-no-sippo](https://github.com/hituzi-no-sippo)

</details>

<details>
<summary>bitnami-labs/sealed-secrets
(bitnami-labs/sealed-secrets)</summary>

###
[`v0.23.0`](https://github.com/bitnami-labs/sealed-secrets/blob/HEAD/RELEASE-NOTES.md#v0230)

[Compare
Source](https://github.com/bitnami-labs/sealed-secrets/compare/v0.22.0...v0.23.0)

##### Changelog

- Add option for custom annotations and labels on sealing keypairs
([#&#8203;1250](https://github.com/bitnami-labs/sealed-secrets/pull/1250))
- Add option to patch secrets instead of clobbering them
([#&#8203;1259](https://github.com/bitnami-labs/sealed-secrets/pull/1259))
- Improve CLI UX error message while service is not found
([#&#8203;1256](https://github.com/bitnami-labs/sealed-secrets/pull/1256))
- Add namespaced roles support to Helm chart
([#&#8203;1240](https://github.com/bitnami-labs/sealed-secrets/pull/1240))
- add --log-info-stdout to chart
([#&#8203;1238](https://github.com/bitnami-labs/sealed-secrets/pull/1238))
- Fix networkpolicy port + add egress
([#&#8203;1243](https://github.com/bitnami-labs/sealed-secrets/pull/1243))
- Create index for Sealed Secrets public documentation
([#&#8203;1264](https://github.com/bitnami-labs/sealed-secrets/pull/1264))
- Getting started page
([#&#8203;1253](https://github.com/bitnami-labs/sealed-secrets/pull/1253))
- Create a FAQ document for Sealed Secrets public documentation
([#&#8203;1269](https://github.com/bitnami-labs/sealed-secrets/pull/1269))
- Create a cryptography document for Sealed Secrets public documentation
([#&#8203;1267](https://github.com/bitnami-labs/sealed-secrets/pull/1267))
- Validate existing Sealed Secrets document
([#&#8203;1266](https://github.com/bitnami-labs/sealed-secrets/pull/1266))
- added support policy to readme
([#&#8203;1265](https://github.com/bitnami-labs/sealed-secrets/pull/1265))
- Add missing document seperator
([#&#8203;1260](https://github.com/bitnami-labs/sealed-secrets/pull/1260))
- Enable full linter support for golangci-lint
([#&#8203;1262](https://github.com/bitnami-labs/sealed-secrets/pull/1262))
- Update minikube K8S versions
([#&#8203;1251](https://github.com/bitnami-labs/sealed-secrets/pull/1251))
- Bump github.com/onsi/ginkgo/v2 from 2.10.0 to 2.11.0
([#&#8203;1254](https://github.com/bitnami-labs/sealed-secrets/pull/1254))
- Bump k8s.io/code-generator from 0.27.2 to 0.27.3
([#&#8203;1255](https://github.com/bitnami-labs/sealed-secrets/pull/1255))
- Bump golang.org/x/crypto from 0.10.0 to 0.11.0
([#&#8203;1268](https://github.com/bitnami-labs/sealed-secrets/pull/1268))
- Bump github.com/prometheus/client_golang from 1.15.1 to 1.16.0
([#&#8203;1247](https://github.com/bitnami-labs/sealed-secrets/pull/1247))
- Bump golang.org/x/crypto from 0.9.0 to 0.10.0
([#&#8203;1248](https://github.com/bitnami-labs/sealed-secrets/pull/1248))
- Bump k8s.io/client-go from 0.27.2 to 0.27.3
([#&#8203;1244](https://github.com/bitnami-labs/sealed-secrets/pull/1244))

</details>

<details>
<summary>charmbracelet/gum (charmbracelet/gum)</summary>

###
[`v0.11.0`](https://github.com/charmbracelet/gum/releases/tag/v0.11.0)

[Compare
Source](https://github.com/charmbracelet/gum/compare/v0.10.0...v0.11.0)

### Pager Search, Timeouts, and Bug fixes

This release of Gum includes several features and bug fixes to make your
Gum usage more smooooth! 🧈

<img width="600"
src="https://github.com/charmbracelet/gum/assets/42545625/b1dcd04b-fc79-4976-9035-899ead036f3c"
/>

#### What’s Changed
##### New

- Pager search functionality (by
[@&#8203;MikaelFangel](https://github.com/MikaelFangel)) in
[https://github.com/charmbracelet/gum/pull/321](https://github.com/charmbracelet/gum/pull/321)
- Strip ANSI for `gum filter` and `gum choose` when output is not a TTY
- Non-positive widths will cause `gum write` will use the entire
terminal width
-   `GUM_FORMAT_THEME` / `GUM_FORMAT_LANGUAGE` environment variables
-   `--no-sort` flag for `gum filter`
-   Customizable cursor modes
-   Customizable cursor line text
- Add `--timeout` flag to all subcommands (by
[@&#8203;deicon](https://github.com/deicon))

##### Fixed

-   Respect file path argument in filepicker

##### Other stuff

- Switch to `termenv.EnvColorProfile()` by
[@&#8203;kennyp](https://github.com/kennyp) in
[https://github.com/charmbracelet/gum/pull/387](https://github.com/charmbracelet/gum/pull/387)

#### New Contributors

- [@&#8203;hopefulTex](https://github.com/hopefulTex) made their first
contribution in
[https://github.com/charmbracelet/gum/pull/303](https://github.com/charmbracelet/gum/pull/303)
- [@&#8203;vahnrr](https://github.com/vahnrr) made their first
contribution in
[https://github.com/charmbracelet/gum/pull/374](https://github.com/charmbracelet/gum/pull/374)
- [@&#8203;kennyp](https://github.com/kennyp) made their first
contribution in
[https://github.com/charmbracelet/gum/pull/387](https://github.com/charmbracelet/gum/pull/387)

**Full Changelog**:
https://github.com/charmbracelet/gum/compare/v0.10.0...v0.11.0

***

<a href="https://charm.sh/"><img alt="The Charm logo"
src="https://stuff.charm.sh/charm-badge.jpg" width="400"></a>

Thoughts? Questions? We love hearing from you. Feel free to reach out on
[Twitter](https://twitter.com/charmcli), [The
Fediverse](https://mastodon.technology/@&#8203;charm), or on
[Discord](https://charm.sh/chat).

</details>

<details>
<summary>cli/cli (cli/cli)</summary>

### [`v2.32.1`](https://github.com/cli/cli/releases/tag/v2.32.1):
GitHub CLI 2.32.1

[Compare Source](https://github.com/cli/cli/compare/v2.32.0...v2.32.1)

#### What's Changed

- `pr checks`: Fix regression making it unusable in GHES versions older
than 3.9 by [@&#8203;samcoe](https://github.com/samcoe) in
[https://github.com/cli/cli/pull/7725](https://github.com/cli/cli/pull/7725)
- `pr edit`: Do not make reviewer update request if there are no
reviewer changes by [@&#8203;samcoe](https://github.com/samcoe) in
[https://github.com/cli/cli/pull/7730](https://github.com/cli/cli/pull/7730)
- `repo view`: Sanitize file contents before displaying them by
[@&#8203;samcoe](https://github.com/samcoe) in
[https://github.com/cli/cli/pull/7694](https://github.com/cli/cli/pull/7694)
- `release download`: Use filepath.Clean to sanitize path for archive
downloads by [@&#8203;samcoe](https://github.com/samcoe) in
[https://github.com/cli/cli/pull/7720](https://github.com/cli/cli/pull/7720)
- `auth`: Do not add auth token to redirect requests which do not have
the same host as the initial request by
[@&#8203;samcoe](https://github.com/samcoe) in
[https://github.com/cli/cli/pull/7692](https://github.com/cli/cli/pull/7692)
- Use asciisanitization package from go-gh by
[@&#8203;samcoe](https://github.com/samcoe) in
[https://github.com/cli/cli/pull/7745](https://github.com/cli/cli/pull/7745)

**Full Changelog**: https://github.com/cli/cli/compare/v2.32.0...v2.32.1

</details>

<details>
<summary>jesseduffield/lazygit (jesseduffield/lazygit)</summary>

###
[`v0.39.4`](https://github.com/jesseduffield/lazygit/releases/tag/v0.39.4)

[Compare
Source](https://github.com/jesseduffield/lazygit/compare/v0.39.3...v0.39.4)

<!-- Release notes generated using configuration in .github/release.yml
at v0.39.4 -->

#### What's Changed

##### Enhancements 🔥

- Prompt for commit message when moving a custom patch to a new commit
by [@&#8203;stefanhaller](https://github.com/stefanhaller) in
[https://github.com/jesseduffield/lazygit/pull/2800](https://github.com/jesseduffield/lazygit/pull/2800)

##### Fixes 🔧

- Support typing special characters like '\[' on non-english keyboards
by [@&#8203;Calvin1602](https://github.com/Calvin1602) in
[https://github.com/jesseduffield/lazygit/pull/2818](https://github.com/jesseduffield/lazygit/pull/2818)
- Fix infinite wait on push/pull on windows by
[@&#8203;jesseduffield](https://github.com/jesseduffield) in
[https://github.com/jesseduffield/lazygit/pull/2821](https://github.com/jesseduffield/lazygit/pull/2821)

##### Docs 📖

- Add Gentoo installation documentation to README by
[@&#8203;cova-fe](https://github.com/cova-fe) in
[https://github.com/jesseduffield/lazygit/pull/2811](https://github.com/jesseduffield/lazygit/pull/2811)

#### New Contributors

- [@&#8203;cova-fe](https://github.com/cova-fe) made their first
contribution in
[https://github.com/jesseduffield/lazygit/pull/2811](https://github.com/jesseduffield/lazygit/pull/2811)
- [@&#8203;Calvin1602](https://github.com/Calvin1602) made their first
contribution in
[https://github.com/jesseduffield/lazygit/pull/2818](https://github.com/jesseduffield/lazygit/pull/2818)

**Full Changelog**:
https://github.com/jesseduffield/lazygit/compare/v0.39.3...v0.39.4

###
[`v0.39.3`](https://github.com/jesseduffield/lazygit/releases/tag/v0.39.3)

[Compare
Source](https://github.com/jesseduffield/lazygit/compare/v0.39.2...v0.39.3)

<!-- Release notes generated using configuration in .github/release.yml
at v0.39.3 -->

#### What's Changed

##### Enhancements 🔥

- Include more commit authors in author suggestions by
[@&#8203;jesseduffield](https://github.com/jesseduffield) in
[https://github.com/jesseduffield/lazygit/pull/2807](https://github.com/jesseduffield/lazygit/pull/2807)
- Use fuzzy search when filtering a view by
[@&#8203;jesseduffield](https://github.com/jesseduffield) in
[https://github.com/jesseduffield/lazygit/pull/2808](https://github.com/jesseduffield/lazygit/pull/2808)
- Better tag creation UX by
[@&#8203;jesseduffield](https://github.com/jesseduffield) in
[https://github.com/jesseduffield/lazygit/pull/2809](https://github.com/jesseduffield/lazygit/pull/2809)
- Better word wrap by
[@&#8203;jesseduffield](https://github.com/jesseduffield) in
[https://github.com/jesseduffield/lazygit/pull/2812](https://github.com/jesseduffield/lazygit/pull/2812)

##### Fixes 🔧

- Fix crash caused by simultaneous read/write of scanner buffer by
[@&#8203;jesseduffield](https://github.com/jesseduffield) in
[https://github.com/jesseduffield/lazygit/pull/2813](https://github.com/jesseduffield/lazygit/pull/2813)

**Full Changelog**:
https://github.com/jesseduffield/lazygit/compare/v0.39.2...v0.39.3

###
[`v0.39.2`](https://github.com/jesseduffield/lazygit/releases/tag/v0.39.2)

[Compare
Source](https://github.com/jesseduffield/lazygit/compare/v0.39.1...v0.39.2)

This release fixes an issue on windows where the main view would stop
rendering new content. This issue mostly affected users running git
through a shim. Thanks to
[@&#8203;AndrewSav](https://github.com/AndrewSav) for the
investigation and fix
[https://github.com/jesseduffield/lazygit/pull/2806](https://github.com/jesseduffield/lazygit/pull/2806)

###
[`v0.39.1`](https://github.com/jesseduffield/lazygit/releases/tag/v0.39.1)

[Compare
Source](https://github.com/jesseduffield/lazygit/compare/v0.38.2...v0.39.1)

<!-- Release notes generated using configuration in .github/release.yml
at v0.39.1 -->

**Full Changelog**:
https://github.com/jesseduffield/lazygit/compare/v0.39.0...v0.39.1

<!-- Release notes generated using configuration in .github/release.yml
at v0.39.1 -->

#### What's Changed

There's lots of stuff in this release! Some favourites of mine include:

- Filter functionality for branches (and some other list views)
activated by '/'
- Showing commit hashes against branches (opt-in with
`gui.showBranchCommitHash: true`)
-   Various improvements to rebasing functionality
-   Nerd font 3 support

As you can see [@&#8203;stefanhaller](https://github.com/stefanhaller)
is behind many of the improvements in this release so kudos to you
Stefan! And thanks to all the contributors who made this release
possible.

In the next release we're adding worktree support. It's a big feature so
we want to get it right! If you use worktrees as part of your daily flow
please respond to the poll (and even test out the draft PR) in the
[Worktree UX
discussion](https://github.com/jesseduffield/lazygit/discussions/2803)

##### Enhancements 🔥

- Support filtering on some views with '/' by
[@&#8203;jesseduffield](https://github.com/jesseduffield) in
[https://github.com/jesseduffield/lazygit/pull/2680](https://github.com/jesseduffield/lazygit/pull/2680)
- Allow scrolling side views without changing selected item by
[@&#8203;stefanhaller](https://github.com/stefanhaller) in
[https://github.com/jesseduffield/lazygit/pull/2608](https://github.com/jesseduffield/lazygit/pull/2608)
- Speed up Lazygit on windows by
[@&#8203;jesseduffield](https://github.com/jesseduffield) in
[https://github.com/jesseduffield/lazygit/pull/2661](https://github.com/jesseduffield/lazygit/pull/2661)
- Show commit hashes against branches (opt-in) by
[@&#8203;jesseduffield](https://github.com/jesseduffield) in
[https://github.com/jesseduffield/lazygit/pull/2274](https://github.com/jesseduffield/lazygit/pull/2274)
- Add config for nerd fonts version by
[@&#8203;stefanhaller](https://github.com/stefanhaller) in
[https://github.com/jesseduffield/lazygit/pull/2731](https://github.com/jesseduffield/lazygit/pull/2731)
- Show rebase todo entry for conflicted commit by
[@&#8203;stefanhaller](https://github.com/stefanhaller) in
[https://github.com/jesseduffield/lazygit/pull/2682](https://github.com/jesseduffield/lazygit/pull/2682)
- Don't keep commits that become empty during a rebase by
[@&#8203;stefanhaller](https://github.com/stefanhaller) in
[https://github.com/jesseduffield/lazygit/pull/2644](https://github.com/jesseduffield/lazygit/pull/2644)
- Show menu instead of prompt when there are conflicts in a rebase or
merge by [@&#8203;stefanhaller](https://github.com/stefanhaller) in
[https://github.com/jesseduffield/lazygit/pull/2694](https://github.com/jesseduffield/lazygit/pull/2694)
- Make "merged" take precedence over "unpushed" by
[@&#8203;stefanhaller](https://github.com/stefanhaller) in
[https://github.com/jesseduffield/lazygit/pull/2628](https://github.com/jesseduffield/lazygit/pull/2628)
- Add config for main branches by
[@&#8203;stefanhaller](https://github.com/stefanhaller) in
[https://github.com/jesseduffield/lazygit/pull/2619](https://github.com/jesseduffield/lazygit/pull/2619)
- Visualize the "ignore whitespace" config by
[@&#8203;stefanhaller](https://github.com/stefanhaller) in
[https://github.com/jesseduffield/lazygit/pull/2641](https://github.com/jesseduffield/lazygit/pull/2641)
- Support dynamically generated suggestions in custom commands prompt by
[@&#8203;jesseduffield](https://github.com/jesseduffield) in
[https://github.com/jesseduffield/lazygit/pull/2686](https://github.com/jesseduffield/lazygit/pull/2686)
- Add suggestions presets to prompts in custom commands by
[@&#8203;jesseduffield](https://github.com/jesseduffield) in
[https://github.com/jesseduffield/lazygit/pull/2685](https://github.com/jesseduffield/lazygit/pull/2685)
- Allow checking for merge conflicts after running a custom command by
[@&#8203;jesseduffield](https://github.com/jesseduffield) in
[https://github.com/jesseduffield/lazygit/pull/2773](https://github.com/jesseduffield/lazygit/pull/2773)
- Use sentence case everywhere by
[@&#8203;jesseduffield](https://github.com/jesseduffield) in
[https://github.com/jesseduffield/lazygit/pull/2672](https://github.com/jesseduffield/lazygit/pull/2672)
- Our casing as all over the place so now we're using 'Sentence case'
for everything.
- More compact and flexible date format by
[@&#8203;jesseduffield](https://github.com/jesseduffield) in
[https://github.com/jesseduffield/lazygit/pull/2676](https://github.com/jesseduffield/lazygit/pull/2676)
- Add nvim and kakoune editor presets by
[@&#8203;screendriver](https://github.com/screendriver) in
[https://github.com/jesseduffield/lazygit/pull/2591](https://github.com/jesseduffield/lazygit/pull/2591)
- Add helix editor preset by [@&#8203;dvic](https://github.com/dvic)
in
[https://github.com/jesseduffield/lazygit/pull/2668](https://github.com/jesseduffield/lazygit/pull/2668)
- Fetch from all remotes by default by
[@&#8203;stefanhaller](https://github.com/stefanhaller) in
[https://github.com/jesseduffield/lazygit/pull/2692](https://github.com/jesseduffield/lazygit/pull/2692)
- Better prompt for discarding old file changes by
[@&#8203;stefanhaller](https://github.com/stefanhaller) in
[https://github.com/jesseduffield/lazygit/pull/2707](https://github.com/jesseduffield/lazygit/pull/2707)
- Use remote upstreams of main branches to determine merged status of
commits by [@&#8203;stefanhaller](https://github.com/stefanhaller) in
[https://github.com/jesseduffield/lazygit/pull/2725](https://github.com/jesseduffield/lazygit/pull/2725)
- Always show branch heads in diff pane by
[@&#8203;stefanhaller](https://github.com/stefanhaller) in
[https://github.com/jesseduffield/lazygit/pull/2748](https://github.com/jesseduffield/lazygit/pull/2748)
- Rely on .gitconfig for verbose commit messages by
[@&#8203;scallaway](https://github.com/scallaway) in
[https://github.com/jesseduffield/lazygit/pull/2664](https://github.com/jesseduffield/lazygit/pull/2664)
- Show all tags in commits panel by
[@&#8203;stefanhaller](https://github.com/stefanhaller) in
[https://github.com/jesseduffield/lazygit/pull/2776](https://github.com/jesseduffield/lazygit/pull/2776)
- Update gitlab merge request URL to match new routing by
[@&#8203;mazharz](https://github.com/mazharz) in
[https://github.com/jesseduffield/lazygit/pull/2656](https://github.com/jesseduffield/lazygit/pull/2656)
- Right-align key labels in menu by
[@&#8203;jesseduffield](https://github.com/jesseduffield) in
[https://github.com/jesseduffield/lazygit/pull/2652](https://github.com/jesseduffield/lazygit/pull/2652)
- Indicate reserved menu keybindings to reduce confusion by
[@&#8203;jesseduffield](https://github.com/jesseduffield) in
[https://github.com/jesseduffield/lazygit/pull/2651](https://github.com/jesseduffield/lazygit/pull/2651)

##### Fixes 🔧

- Fix to show commitPrefixes in commit message with a new blank commit
by [@&#8203;longlhh90](https://github.com/longlhh90) in
[https://github.com/jesseduffield/lazygit/pull/2612](https://github.com/jesseduffield/lazygit/pull/2612)
- Fix intermittent rebase continue prompt failure by
[@&#8203;jesseduffield](https://github.com/jesseduffield) in
[https://github.com/jesseduffield/lazygit/pull/2629](https://github.com/jesseduffield/lazygit/pull/2629)
- Fix bug where discarding merge conflict file failed by
[@&#8203;jesseduffield](https://github.com/jesseduffield) in
[https://github.com/jesseduffield/lazygit/pull/2662](https://github.com/jesseduffield/lazygit/pull/2662)
- Better default text colour on light theme terminals by
[@&#8203;jesseduffield](https://github.com/jesseduffield) in
[https://github.com/jesseduffield/lazygit/pull/2696](https://github.com/jesseduffield/lazygit/pull/2696)
- Fix rendering issues in commits view by
[@&#8203;jesseduffield](https://github.com/jesseduffield) in
[https://github.com/jesseduffield/lazygit/pull/2700](https://github.com/jesseduffield/lazygit/pull/2700)
- Fix interactive rebase with git 2.25.1 and earlier by
[@&#8203;stefanhaller](https://github.com/stefanhaller) in
[https://github.com/jesseduffield/lazygit/pull/2747](https://github.com/jesseduffield/lazygit/pull/2747)
- Fix crash when a background fetch prompts for credentials by
[@&#8203;stefanhaller](https://github.com/stefanhaller) in
[https://github.com/jesseduffield/lazygit/pull/2789](https://github.com/jesseduffield/lazygit/pull/2789)
- fix kakoune binary name by
[@&#8203;enricozb](https://github.com/enricozb) in
[https://github.com/jesseduffield/lazygit/pull/2708](https://github.com/jesseduffield/lazygit/pull/2708)
- Fix focus issue when opening recent-repos menu at launch by
[@&#8203;jesseduffield](https://github.com/jesseduffield) in
[https://github.com/jesseduffield/lazygit/pull/2715](https://github.com/jesseduffield/lazygit/pull/2715)
- Allow discarding changes only from local commits by
[@&#8203;stefanhaller](https://github.com/stefanhaller) in
[https://github.com/jesseduffield/lazygit/pull/2712](https://github.com/jesseduffield/lazygit/pull/2712)
- Honour configured comment char on interactive rebase by
[@&#8203;gustavopcassol](https://github.com/gustavopcassol) in
[https://github.com/jesseduffield/lazygit/pull/2639](https://github.com/jesseduffield/lazygit/pull/2639)
- Fix the title and text of the Discard Changes prompt by
[@&#8203;stefanhaller](https://github.com/stefanhaller) in
[https://github.com/jesseduffield/lazygit/pull/2706](https://github.com/jesseduffield/lazygit/pull/2706)
- Fix broken `git init` prompt by
[@&#8203;jesseduffield](https://github.com/jesseduffield) in
[https://github.com/jesseduffield/lazygit/pull/2771](https://github.com/jesseduffield/lazygit/pull/2771)
- Fix potentially wrong help text in commit message panel by
[@&#8203;stefanhaller](https://github.com/stefanhaller) in
[https://github.com/jesseduffield/lazygit/pull/2777](https://github.com/jesseduffield/lazygit/pull/2777)
- Fix incorrect focus in accordion mode by
[@&#8203;jesseduffield](https://github.com/jesseduffield) in
[https://github.com/jesseduffield/lazygit/pull/2792](https://github.com/jesseduffield/lazygit/pull/2792)
- Fix crash on empty menu by
[@&#8203;jesseduffield](https://github.com/jesseduffield) in
[https://github.com/jesseduffield/lazygit/pull/2799](https://github.com/jesseduffield/lazygit/pull/2799)
- Only apply right-alignment on first column of keybindings menu by
[@&#8203;jesseduffield](https://github.com/jesseduffield) in
[https://github.com/jesseduffield/lazygit/pull/2801](https://github.com/jesseduffield/lazygit/pull/2801)
- Stop hiding underscores for VSCode by
[@&#8203;jesseduffield](https://github.com/jesseduffield) in
[https://github.com/jesseduffield/lazygit/pull/2699](https://github.com/jesseduffield/lazygit/pull/2699)

##### Maintenance ⚙️

- Run integration tests with all supported git versions by
[@&#8203;stefanhaller](https://github.com/stefanhaller) in
[https://github.com/jesseduffield/lazygit/pull/2754](https://github.com/jesseduffield/lazygit/pull/2754)
- Add ability to update yaml path while preserving comments by
[@&#8203;jesseduffield](https://github.com/jesseduffield) in
[https://github.com/jesseduffield/lazygit/pull/2620](https://github.com/jesseduffield/lazygit/pull/2620)
- Refactor for better encapsulation by
[@&#8203;jesseduffield](https://github.com/jesseduffield) in
[https://github.com/jesseduffield/lazygit/pull/2519](https://github.com/jesseduffield/lazygit/pull/2519)
- Add convenience builder for git commands by
[@&#8203;jesseduffield](https://github.com/jesseduffield) in
[https://github.com/jesseduffield/lazygit/pull/2645](https://github.com/jesseduffield/lazygit/pull/2645)
- Construct arg vector manually rather than parse string by
[@&#8203;jesseduffield](https://github.com/jesseduffield) in
[https://github.com/jesseduffield/lazygit/pull/2655](https://github.com/jesseduffield/lazygit/pull/2655)
- Allow global logging when developing by
[@&#8203;jesseduffield](https://github.com/jesseduffield) in
[https://github.com/jesseduffield/lazygit/pull/2671](https://github.com/jesseduffield/lazygit/pull/2671)
- remove `github.com/jesseduffield/yaml` package by
[@&#8203;Ryooooooga](https://github.com/Ryooooooga) in
[https://github.com/jesseduffield/lazygit/pull/2508](https://github.com/jesseduffield/lazygit/pull/2508)
- Update seconds ago function and add tests by
[@&#8203;jesseduffield](https://github.com/jesseduffield) in
[https://github.com/jesseduffield/lazygit/pull/2695](https://github.com/jesseduffield/lazygit/pull/2695)
- Support matchers on integers in integration tests by
[@&#8203;jesseduffield](https://github.com/jesseduffield) in
[https://github.com/jesseduffield/lazygit/pull/2704](https://github.com/jesseduffield/lazygit/pull/2704)
- Improve yaml_utils by
[@&#8203;stefanhaller](https://github.com/stefanhaller) in
[https://github.com/jesseduffield/lazygit/pull/2718](https://github.com/jesseduffield/lazygit/pull/2718)
- Fix typo 'EnteRefName' by
[@&#8203;letavocado](https://github.com/letavocado) in
[https://github.com/jesseduffield/lazygit/pull/2750](https://github.com/jesseduffield/lazygit/pull/2750)
- Track busy/idle state for integration tests by
[@&#8203;jesseduffield](https://github.com/jesseduffield) in
[https://github.com/jesseduffield/lazygit/pull/2765](https://github.com/jesseduffield/lazygit/pull/2765)
- Add test for cmd obj cloning by
[@&#8203;jesseduffield](https://github.com/jesseduffield) in
[https://github.com/jesseduffield/lazygit/pull/2780](https://github.com/jesseduffield/lazygit/pull/2780)
- Update release notes config and add CI check by
[@&#8203;jesseduffield](https://github.com/jesseduffield) in
[https://github.com/jesseduffield/lazygit/pull/2797](https://github.com/jesseduffield/lazygit/pull/2797)
- Add release config for generating release notes by
[@&#8203;jesseduffield](https://github.com/jesseduffield) in
[https://github.com/jesseduffield/lazygit/pull/2793](https://github.com/jesseduffield/lazygit/pull/2793)
- Remove Uffizzi by
[@&#8203;jesseduffield](https://github.com/jesseduffield) in
[https://github.com/jesseduffield/lazygit/pull/2690](https://github.com/jesseduffield/lazygit/pull/2690)
- Bump golang.org/x/net from 0.0.0-20220722155237-a158d28d115b to 0.7.0
by [@&#8203;dependabot](https://github.com/dependabot) in
[https://github.com/jesseduffield/lazygit/pull/2490](https://github.com/jesseduffield/lazygit/pull/2490)

##### Docs 📖

- Add package statuses to readme by
[@&#8203;jesseduffield](https://github.com/jesseduffield) in
[https://github.com/jesseduffield/lazygit/pull/2717](https://github.com/jesseduffield/lazygit/pull/2717)

##### I18n 🌎

- Add Traditional Chinese support by
[@&#8203;tzengyuxio](https://github.com/tzengyuxio) in
[https://github.com/jesseduffield/lazygit/pull/2688](https://github.com/jesseduffield/lazygit/pull/2688)
- Add russian translation by
[@&#8203;letavocado](https://github.com/letavocado) in
[https://github.com/jesseduffield/lazygit/pull/2729](https://github.com/jesseduffield/lazygit/pull/2729)

#### New Contributors

- [@&#8203;screendriver](https://github.com/screendriver) made their
first contribution in
[https://github.com/jesseduffield/lazygit/pull/2591](https://github.com/jesseduffield/lazygit/pull/2591)
- [@&#8203;longlhh90](https://github.com/longlhh90) made their first
contribution in
[https://github.com/jesseduffield/lazygit/pull/2612](https://github.com/jesseduffield/lazygit/pull/2612)
- [@&#8203;mazharz](https://github.com/mazharz) made their first
contribution in
[https://github.com/jesseduffield/lazygit/pull/2656](https://github.com/jesseduffield/lazygit/pull/2656)
- [@&#8203;dvic](https://github.com/dvic) made their first
contribution in
[https://github.com/jesseduffield/lazygit/pull/2668](https://github.com/jesseduffield/lazygit/pull/2668)
- [@&#8203;dependabot](https://github.com/dependabot) made their first
contribution in
[https://github.com/jesseduffield/lazygit/pull/2490](https://github.com/jesseduffield/lazygit/pull/2490)
- [@&#8203;tzengyuxio](https://github.com/tzengyuxio) made their first
contribution in
[https://github.com/jesseduffield/lazygit/pull/2688](https://github.com/jesseduffield/lazygit/pull/2688)
- [@&#8203;enricozb](https://github.com/enricozb) made their first
contribution in
[https://github.com/jesseduffield/lazygit/pull/2708](https://github.com/jesseduffield/lazygit/pull/2708)
- [@&#8203;letavocado](https://github.com/letavocado) made their first
contribution in
[https://github.com/jesseduffield/lazygit/pull/2729](https://github.com/jesseduffield/lazygit/pull/2729)
- [@&#8203;gustavopcassol](https://github.com/gustavopcassol) made
their first contribution in
[https://github.com/jesseduffield/lazygit/pull/2639](https://github.com/jesseduffield/lazygit/pull/2639)

If you contributed to this release but don't see your name here, let me
know!

**Full Changelog**:
https://github.com/jesseduffield/lazygit/compare/v0.38.2...v0.39.1

</details>

<details>
<summary>kubernetes-sigs/kustomize (kubernetes-sigs/kustomize)</summary>

###
[`v5.1.1`](https://github.com/kubernetes-sigs/kustomize/releases/tag/kustomize/v5.1.1)

[Compare
Source](https://github.com/kubernetes-sigs/kustomize/compare/kustomize/v5.1.0...kustomize/v5.1.1)

Built with go 1.20.6 to address CVEs in previous go versions.


[#&#8203;5245](https://github.com/kubernetes-sigs/kustomize/issues/5245):
Fix typo in help for the create subcommand

</details>

<details>
<summary>kubernetes/kubectl (kubernetes/kubectl)</summary>

###
[`v1.27.4`](https://github.com/kubernetes/kubectl/compare/kubernetes-1.27.3...kubernetes-1.27.4)

[Compare
Source](https://github.com/kubernetes/kubectl/compare/kubernetes-1.27.3...kubernetes-1.27.4)

</details>

<details>
<summary>kubernetes/minikube (kubernetes/minikube)</summary>

###
[`v1.31.1`](https://github.com/kubernetes/minikube/releases/tag/v1.31.1)

[Compare
Source](https://github.com/kubernetes/minikube/compare/v1.31.0...v1.31.1)

📣😀 **Please fill out our [fast 5-question
survey](https://forms.gle/Gg3hG5ZySw8c1C24A)** so that we can learn how
& why you use minikube, and what improvements we should make. Thank you!
💃🎉

#### Release Notes

#### Version 1.31.1 - 2023-07-20

- cni: Fix regression in auto selection
[#&#8203;16912](https://github.com/kubernetes/minikube/pull/16912)

For a more detailed changelog, see
[CHANGELOG.md](https://github.com/kubernetes/minikube/blob/master/CHANGELOG.md).

Thank you to our contributors for this release!

-   Jeff MAURY
-   Medya Ghazizadeh
-   Steven Powell

Thank you to our triage members for this release!

-   afbjorklund (5 comments)
-   torenware (5 comments)
-   mprimeaux (3 comments)
-   prezha (3 comments)
-   spowelljr (1 comments)

Check out our [contributions
leaderboard](https://minikube.sigs.k8s.io/docs/contrib/leaderboard/v1.31.1/)
for this release!

#### Installation

See [Getting Started](https://minikube.sigs.k8s.io/docs/start/)

#### Binary Checksums

darwin-amd64:
`a465e5b537b63ac8e6624396f490dd79516fd625c1110cbf1f49e7b55c1dfcf6`
darwin-arm64:
`b58bfb3eaa9f5ab04ced7f6e23184c04fdaadb4ac06cf982e2c50c37466e465a`
linux-amd64:
`ebcdfb0a520e9e746360a9dd954a9006ca75770e53fcdae493b6ac9a20026733`
linux-arm:
`372414001ac449f6b33d7189b7fad68980169136221b94dca5cf5e1a9d90259f`
linux-arm64:
`1bc6dd8bb2f7f0eaae49a3f5685cda0472abdc6e870f5105681e877017826281`
linux-ppc64le:
`ce979d3698c573eb39ec6fe4d013a714aafcb15331d6c0fed2e38b5f91000162`
linux-s390x:
`5d9a2cedfa79fbcbfd85a3034eed747da1baf8d1d4004fc4cd18bcafdfe3f6f5`
windows-amd64.exe:
`a08699d25fede796e6fdc56d8630380bd5864fb291592fc2be24fe881656d064`

#### ISO Checksums

amd64:
`4cc52896d9ab0444300737ddae6d49dd2dbcf67c14579bf3b975d55213ce96ae`\
arm64:
`355556716c1de155eeb04e37ed289808f12f2a650e6aa2967f61ab4539241eb6`

###
[`v1.31.0`](https://github.com/kubernetes/minikube/releases/tag/v1.31.0)

[Compare
Source](https://github.com/kubernetes/minikube/compare/v1.30.1...v1.31.0)

📣😀 **Please fill out our [fast 5-question
survey](https://forms.gle/Gg3hG5ZySw8c1C24A)** so that we can learn how
& why you use minikube, and what improvements we should make. Thank you!
💃🎉

#### Release Notes

#### Version 1.31.0 - 2023-07-18

Features:

- Add back VMware driver support
[#&#8203;16796](https://github.com/kubernetes/minikube/pull/16796)
- `docker-env` supports the containerd runtime (experimental)
[#&#8203;15452](https://github.com/kubernetes/minikube/pull/15452)
[#&#8203;16761](https://github.com/kubernetes/minikube/pull/16761)
- Automatically renew expired kubeadm certs
[#&#8203;16249](https://github.com/kubernetes/minikube/pull/16249)
- New addon inspektor-gadget
[#&#8203;15869](https://github.com/kubernetes/minikube/pull/15869)

Major Improvements:

- VM drivers: Fix all images getting removed on stop/start (40% start
speedup)
[#&#8203;16655](https://github.com/kubernetes/minikube/pull/16655)
- Addon registry: Add support for all architectures
[#&#8203;16577](https://github.com/kubernetes/minikube/pull/16577)
- QEMU: Fix failing to interact with cluster after upgrading QEMU
version
[#&#8203;16853](https://github.com/kubernetes/minikube/pull/16853)
- macOS/QEMU: Auto unblock bootpd from firewall if blocking socket_vmnet
network
[#&#8203;16714](https://github.com/kubernetes/minikube/pull/16714)
[#&#8203;16789](https://github.com/kubernetes/minikube/pull/16789)
- `minikube cp` supports providing directory as a target
[#&#8203;15519](https://github.com/kubernetes/minikube/pull/15519)

Minor Improvements:

- Always use cni unless running with dockershim
[#&#8203;14780](https://github.com/kubernetes/minikube/pull/14780)
- none driver: Check for CNI plugins before starting cluster
[#&#8203;16419](https://github.com/kubernetes/minikube/pull/16419)
- QEMU: Add ability to create extra disks
[#&#8203;15887](https://github.com/kubernetes/minikube/pull/15887)
- \--kubernetes-version: Assume latest patch version if not specified
[#&#8203;16569](https://github.com/kubernetes/minikube/pull/16569)
- audit: Set default max file size
[#&#8203;16543](https://github.com/kubernetes/minikube/pull/16543)
- service: Fail if no pods available
[#&#8203;15079](https://github.com/kubernetes/minikube/pull/15079)
- docker/podman driver: Use buildx for `image build` command
[#&#8203;16252](https://github.com/kubernetes/minikube/pull/16252)
- Addon gvisor: Simplify runtime configuration and use latest version
[#&#8203;14996](https://github.com/kubernetes/minikube/pull/14996)
- Add PowerShell code completion
[#&#8203;16232](https://github.com/kubernetes/minikube/pull/16232)
- build: Support DOS-style path for Dockerfile path
[#&#8203;15074](https://github.com/kubernetes/minikube/pull/15074)

Bugs:

- none driver: Fix `minikube start` not working without `sudo`
[#&#8203;16408](https://github.com/kubernetes/minikube/pull/16408)
- none driver: Fix `minikube image build`
[#&#8203;16386](https://github.com/kubernetes/minikube/pull/16386)
- Fix only allowing one global tunnel
[#&#8203;16839](https://github.com/kubernetes/minikube/pull/16839)
- Fix enabling addons when --no-kubernetes
[#&#8203;15003](https://github.com/kubernetes/minikube/pull/15003)
- Fix enabling addons on a paused cluster
[#&#8203;15868](https://github.com/kubernetes/minikube/pull/15868)
- Fix waiting for kicbase downloads on VM drivers
[#&#8203;16695](https://github.com/kubernetes/minikube/pull/16695)
- image list: Fix only outputting single tag of image with multiple tags
[#&#8203;16578](https://github.com/kubernetes/minikube/pull/16578)
- Addons: Fix cloud-spanner and headlamp incorrect file permissions
[#&#8203;16413](https://github.com/kubernetes/minikube/pull/16413)
- Fix csi-hostpath not allowing custom registry
[#&#8203;16395](https://github.com/kubernetes/minikube/pull/16395)
- Fix mount cleaning mechanism
[#&#8203;15782](https://github.com/kubernetes/minikube/pull/15782)
- Fix kubectl tab-completion and improve error messages
\[[#&#8203;14868](https://github.com/kubernetes/minikube/issues/14868)]\[https://github.com/kubernetes/minikube/pull/14868](https://github.com/kubernetes/minikube/pull/14868)8
- Fix help text not being translated
[#&#8203;16850](https://github.com/kubernetes/minikube/pull/16850)
[#&#8203;16852](https://github.com/kubernetes/minikube/pull/16852)

New ISO Modules:

- Add BINFMT_MISC
[#&#8203;16712](https://github.com/kubernetes/minikube/pull/16712)
- Add BPF_SYSCALL to arm64
[#&#8203;15164](https://github.com/kubernetes/minikube/pull/15164)
- Add GENEVE
[#&#8203;15665](https://github.com/kubernetes/minikube/pull/15665)
- add BLK_DEV_RBD & CEPH_LIB to arm64
[#&#8203;16019](https://github.com/kubernetes/minikube/pull/16019)

Version Upgrades:

- Bump Kubernetes version default: v1.27.3 and latest: v1.27.3
[#&#8203;16718](https://github.com/kubernetes/minikube/pull/16718)
- Addon cloud-spanner: Update cloud-spanner-emulator/emulator image from
1.5.2 to 1.5.7
[#&#8203;16248](https://github.com/kubernetes/minikube/pull/16248)
[#&#8203;16352](https://github.com/kubernetes/minikube/pull/16352)
[#&#8203;16587](https://github.com/kubernetes/minikube/pull/16587)
[#&#8203;16652](https://github.com/kubernetes/minikube/pull/16652)
[#&#8203;16845](https://github.com/kubernetes/minikube/pull/16845)
- Addon gcp-auth: Update ingress-nginx/kube-webhook-certgen image from
v20230312-helm-chart-4.5.2-28-g66a760794 to v20230407
[#&#8203;16601](https://github.com/kubernetes/minikube/pull/16601)
- Addon gcp-auth: Update k8s-minikube/gcp-auth-webhook image from
v0.0.14 to v0.1.0
[#&#8203;16573](https://github.com/kubernetes/minikube/pull/16573)
- Addon headlamp: Update headlamp-k8s/headlamp image version from
v0.16.0 to v0.18.0
[#&#8203;16399](https://github.com/kubernetes/minikube/pull/16399)
[#&#8203;16540](https://github.com/kubernetes/minikube/pull/16540)
[#&#8203;16721](https://github.com/kubernetes/minikube/pull/16721)
- Addon ingress: Update ingress-nginx/controller image from v1.7.0 to
v1.8.1
[#&#8203;16601](https://github.com/kubernetes/minikube/pull/16601)
[#&#8203;16832](https://github.com/kubernetes/minikube/pull/16832)
- Addon ingress: Update ingress-nginx/kube-webhook-certgen image from
v20230312-helm-chart-4.5.2-28-g66a760794 to v20230407
[#&#8203;16601](https://github.com/kubernetes/minikube/pull/16601)
- Addon kong: Update kong image from 2.7 to 3.2
[#&#8203;16424](https://github.com/kubernetes/minikube/pull/16424)
- Addon kong: Update kong/kubernetes-ingress-controller image from 2.1.1
to 2.9.3
[#&#8203;16424](https://github.com/kubernetes/minikube/pull/16424)
- CNI calico: Update from v3.24.5 to v3.26.1
[#&#8203;16144](https://github.com/kubernetes/minikube/pull/16144)
[#&#8203;16596](https://github.com/kubernetes/minikube/pull/16596)
[#&#8203;16732](https://github.com/kubernetes/minikube/pull/16732)
- CNI flannel: Update from v0.20.2 to v0.22.0
[#&#8203;16074](https://github.com/kubernetes/minikube/pull/16074)
[#&#8203;16435](https://github.com/kubernetes/minikube/pull/16435)
[#&#8203;16597](https://github.com/kubernetes/minikube/pull/16597)
- CNI kindnet: Update from v20230330-48f316cd to v20230511-dc714da8
[#&#8203;16488](https://github.com/kubernetes/minikube/pull/16488)
- Kicbase: Update base image from ubuntu:focal-20230308 to
ubuntu:jammy-20230624
[#&#8203;16069](https://github.com/kubernetes/minikube/pull/16069)
[#&#8203;16632](https://github.com/kubernetes/minikube/pull/16632)
[#&#8203;16731](https://github.com/kubernetes/minikube/pull/16731)
[#&#8203;16834](https://github.com/kubernetes/minikube/pull/16834)
- Kicbase/ISO: Update buildkit from v0.11.4 to v0.11.6
[#&#8203;16426](https://github.com/kubernetes/minikube/pull/16426)
- Kicbase/ISO: Update cni-plugins from v0.8.5 to v1.3.0
[#&#8203;16582](https://github.com/kubernetes/minikube/pull/16582)
- Kicbase/ISO: Update containerd from v1.7.0 to v1.7.1
[#&#8203;16501](https://github.com/kubernetes/minikube/pull/16501)
- Kicbase/ISO: Update containerd from v1.7.1 to v1.7.2
[#&#8203;16634](https://github.com/kubernetes/minikube/pull/16634)
- Kicbase/ISO: Update cri-dockerd from v0.3.1 to v0.3.3
[#&#8203;16506](https://github.com/kubernetes/minikube/pull/16506)
[#&#8203;16703](https://github.com/kubernetes/minikube/pull/16703)
- Kicbase/ISO: Update docker from 20.10.23 to 24.0.4
[#&#8203;16572](https://github.com/kubernetes/minikube/pull/16572)
[#&#8203;16612](https://github.com/kubernetes/minikube/pull/16612)
[#&#8203;16875](https://github.com/kubernetes/minikube/pull/16875)
- Kicbase/ISO: Update runc from v1.1.5 to v1.1.7
[#&#8203;16417](https://github.com/kubernetes/minikube/pull/16417)

For a more detailed changelog, see
[CHANGELOG.md](https://github.com/kubernetes/minikube/blob/master/CHANGELOG.md).

Thank you to our contributors for this release!

-   AiYijing
-   Aleksandr Chebotov
-   Anders F Björklund
-   Armel Soro
-   Asbjørn Apeland
-   Begula
-   Blaine Gardner
-   Bogdan Luca
-   Fabricio Voznika
-   Jeff MAURY
-   Joe Bowbeer
-   Juan Martín Loyola
-   Judah Nouriyelian
-   Kemal Akkoyun
-   Max Cascone
-   Medya Ghazizadeh
-   Michele Sorcinelli
-   Oldřich Jedlička
-   Ricky Sadowski
-   Sharran
-   Steven Powell
-   Terry Moschou
-   Tongyao Si
-   Vedant
-   Viktor Gamov
-   W. Duncan Fraser
-   Yuiko Mouri
-   aiyijing
-   cui fliter
-   guoguangwu
-   himalayanZephyr
-   joaquimrocha
-   lixin18
-   piljoong
-   salasberryfin
-   shixiuguo
-   sunyuxuan
-   syxunion
-   tianlj
-   tzzcfrank
-   vgnshiyer
-   winkelino
-   x7upLime
-   yolossn
-   zhengtianbao
-   Товарищ программист

Thank you to our PR reviewers for this release!

-   spowelljr (180 comments)
-   medyagh (64 comments)
-   eiffel-fl (16 comments)
-   afbjorklund (11 comments)
-   aiyijing (9 comments)
-   atoato88 (6 comments)
-   BenTheElder (2 comments)
-   travisn (2 comments)
-   ComradeProgrammer (1 comments)
-   Kimi450 (1 comments)
-   alban (1 comments)
-   mprimeaux (1 comments)
-   sha

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "after 4pm on thursday" (UTC),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config help](https://github.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/scottames/dots).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi4xMS4wIiwidXBkYXRlZEluVmVyIjoiMzYuMjQuMiIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
maintenance For refactorings, CI changes, tests, version bumping, etc
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants