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

Honour configured comment char on interactive rebase #2639

Merged

Conversation

gustavokrieger
Copy link
Contributor

@gustavokrieger gustavokrieger commented May 17, 2023

  • PR Description

The changes were made based on the suggestion by @jesseduffield at #2639 (comment). This makes sure that interactive rebases do not fail when the user sets a 'core.commentChar' that is different from '#'.

  • 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

@gustavokrieger
Copy link
Contributor Author

Guys, do you believe I should add unit or integrations tests for this change? What about a comment in the code explaining why this is needed?

@jesseduffield
Copy link
Owner

Yep, an integration test would be good where you set the git config to have the comment character be ';' and then verify that you can do a basic interactive rebase. And a comment would also be appreciated.

For posterity I'll mention that we still want the longer-term fix of using the configured comment character given it'll allow us to open lazygit mid-rebase that the user started outside lazygit, but this PR is still a step in the right direction.

@stefanhaller
Copy link
Collaborator

For posterity I'll mention that we still want the longer-term fix of using the configured comment character given it'll allow us to open lazygit mid-rebase that the user started outside lazygit, but this PR is still a step in the right direction.

Good point, I hadn't thought about that. In that light, I do wonder whether this PR is actually a step in the right direction: if we merge the PR now, and then later do the "real" fix, then parsing will fail again, unless we revert this PR, because the real fix will entail looking at the global core.commentChar config, so it has no way of knowing that we overrode the setting for just one git call.

Doesn't that mean we should rather do the real fix now?

@jesseduffield
Copy link
Owner

Good point, I hadn't considered that edge case. In that case yes, we should do the proper fix. Sorry @gustavopcassol ! Let me know if you're up to doing the bigger fix.

To be clear on what's needed, we need to create a PR in the git-todo-parser repo that allows us to pass a comment char ourselves (it's currently defined as a constant in https://github.com/fsmiamoto/git-todo-parser/blob/main/todo/parse.go). We'll want @fsmiamoto 's input but we could create new methods that accept a configuration object including the comment char. This affects the Parse and Write methods of that package.

Then from within lazygit we need to check which comment char is being used and pass that to the todo parser. We can add a method in pkg/commands/git_commands/config.go for getting the comment char, and then we need to call that method before calling todo.Parse, which we do in two places. The first place we call it is from pkg/commands/git_commands/commit_loader.go so we'll need to pass *GitCommon to the CommitLoader struct in order to get access to the new method, and the other place we call it is from pkg/utils/rebase_todo.go which unfortunately happens when we don't have access to our GitCommon struct, so we'll need to pass it through the instruction args in pkg/app/daemon/daemon.go (there are multiple instructions that will need to be updated).

We'll also need to give similar treatment in the place we call todo.Write.

@gustavokrieger
Copy link
Contributor Author

Ok, I'll give it a shot.

@gustavokrieger
Copy link
Contributor Author

I created an issue there fsmiamoto/git-todo-parser#5 (comment).

@gustavokrieger gustavokrieger marked this pull request as draft June 21, 2023 19:40
)

var MoveWithCustomCommentChar = NewIntegrationTest(NewIntegrationTestArgs{
Description: "Directly move a commit all the way down and all the way back up with a custom comment char",
Copy link
Owner

Choose a reason for hiding this comment

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

just confirming that this test fails under the old code and passes under the new code? Or are we yet to implement the fix that makes this test pass?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

The former. Not sure I understand what you are asking in the latter...

@gustavokrieger
Copy link
Contributor Author

@jesseduffield, would it make sense to have a git config struct that is created when the program starts and that is easily accessible by any part of the code without the need for passing it around (like a singleton, for example)? It could have only private fields with public getters to make sure it never mutates after it's created. I have the impression that reading the config can happen at any point of the application, which would always demand changes from a bunch of parts of the app so that the struct can be passed around.

@stefanhaller
Copy link
Collaborator

There's already the ConfigCommands struct that sounds like what you want. It has methods like GetShowUntrackedFiles that query a particular git config; adding a new method CommentChar seems like the right thing to do.

@gustavokrieger
Copy link
Contributor Author

Guys, I need some input on how to proceed. Currently, the last fixup commit is partially implementing the changes related to the Parse call at pkg/utils/rebase_todo.go. All of the current errors should be related to it. Should I proceed by adding the parameter to the run method? Screenshot of the erros:

image

@stefanhaller
Copy link
Collaborator

Sorry for the delay, this somehow slipped from my radar. Feel free to ping earlier next time if you don't get responses. 😄

I had a look, and I think for the case of local_commits_controller you are doing too much work to pass the comment char as a parameter in places where you don't need to. Only the code in rebase.go needs to set the comment char, and it has access to the git config already. I pushed a fixup (04b8fc7) to undo some of your changes here, and to also implement a solution for daemon.go. In this case I'd go the easy route and just have a local function that queries the git config manually, I think that's an ok thing to do for the daemon.

Then I pushed another fixup (1ff7a16) that implements the commentChar logic inside of GetCoreCommentChar, since the same logic is needed from two places. It might seem questionable to have logic like this here, as the responsibility of ConfigCommands could be seen as just returning git config values as is, but I'd say it's still acceptable in this case.

And finally a third fixup (9019baf) that adds the missing WriteRebaseTodoFile arguments, otherwise I couldn't have tested if it works now. It looks like it does. 😄

The next step would be to squash the commits (and rebase on master) so that we can do a proper review.

@gustavokrieger gustavokrieger changed the title Overwrite interactive rebase comment char Use comment char on interactive rebase Jun 29, 2023
@gustavokrieger
Copy link
Contributor Author

To get the updated git-todo-parser I ran these:

go get github.com/fsmiamoto/git-todo-parser@v.0.0.5
go mod vendor

Let me know if it's all that's needed.

// TODO(gus): look into why this is not failing.
Lines(
Contains("commit 02").IsSelected(),
Contains("commit 01"),
)
Copy link
Contributor Author

Choose a reason for hiding this comment

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

When writing this test, I saw that this part ended up not failing like I believe it should. Am I misunderstanding how this works?

Copy link
Collaborator

Choose a reason for hiding this comment

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

That's an unfortunate consequence of how the test framework works. After dropping the commit, lazygit runs a refresh of the commits list, but it runs in the background and takes a while to complete. The test framework has logic to wait a while and retry the check if it doesn't succeed right away, but in this case the check succeeds because it still matches the old state before the refresh.

@jesseduffield I wonder if there's some way to teach the test infrastructure that any queued-up refresh requests are still pending, and wait until they are all carried out. That should fix this kind of problem, no?

Copy link
Owner

Choose a reason for hiding this comment

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

Agreed, it would be great if the test framework had a concept of pending actions. It would take some work to support that though (most of the challenge is in tracking that something is pending when we're using goroutines to do work off the UI thread)

Copy link
Collaborator

Choose a reason for hiding this comment

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

Naïvely, it sounds simply like a matter of incrementing a counter when posting a refresh, and decrementing it again when the refresh was handled. But I'm probably missing something...

Copy link
Owner

Choose a reason for hiding this comment

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

That's certainly something we could do when refreshing, and it should be straightforward to implement, but I'm thinking more broadly about all actions that make use of goroutines for doing work off the UI thread

Copy link
Collaborator

Choose a reason for hiding this comment

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

Don't let the Perfect be the enemy of the Good... 😉

@gustavokrieger
Copy link
Contributor Author

Are the tests I wrote enough?

Also, as a side note, the integration tests were very easy to work with, and overall very awesome 🚀

@stefanhaller
Copy link
Collaborator

To get the updated git-todo-parser I ran these:

go get github.com/fsmiamoto/git-todo-parser@v.0.0.5
go mod vendor

Let me know if it's all that's needed.

Normally yes (except that a git mod tidy doesn't hurt to clean out old stuff). In this case I messed up and created the upstream tag wrong (using v.0.0.5 instead of v0.0.5), that's why a simple go get github.com/fsmiamoto/git-todo-parser didn't work. I fixed this upstream and pushed a fixup (ce4f104).

@stefanhaller
Copy link
Collaborator

The test drop_in_edit_with_custom_comment_char doesn't catch the bug, it already succeeded before. The reason is that pressing e doesn't parse the todo-file at all; it only prepends a break line. And then, when pressing d during the rebase, git has already stripped all comments from the todo-file, so that succeeded too. I'd suggest to just drop this test.

Instead, I'd probably add one more test that moves a commit up or down (outside of a rebase). For my feeling that should be enough coverage.

@stefanhaller
Copy link
Collaborator

Also, I'm a big fan of introducing tests first to demonstrate the bug. I know @jesseduffield didn't always agree in the past, but I'm still trying to convince him of the value of this. 😄

This has two benefits:

  • it shows more clearly how the bug manifested itself, so there's less to explain in the commit message
  • it proves that the test actually works for catching the bug, which wasn't true for the drop_in_edit_with_custom_comment_char test, for example.

Do you feel like trying this in this case?

Comment on lines 18 to 23
confirmCommitDrop := func() {
t.ExpectPopup().Confirmation().
Title(Equals("Delete commit")).
Content(Equals("Are you sure you want to delete this commit?")).
Confirm()
}
Copy link
Collaborator

Choose a reason for hiding this comment

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

I'm not a fan of having local functions like this in tests. It makes the flow of what happens in which order harder to understand, so I'd just have inlined this below where you need it.

However, I see that you copied this from other existing tests that do it in the same way. How about extracting this to a new file in pkg/integration/tests/shared? Doing this for the existing tests could be a separate commit at the beginning of the branch.

Copy link
Owner

Choose a reason for hiding this comment

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

I'm okay with local functions if they remove lots of repetition (e.g. if you need to drop 5 commits in the one test), but I agree about erring on the side of inlining everything.

I'm also fine with this being a shared function. You can chuck it in pkg/integration/components/common.go if you like

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I felt the function was simple enough, so I inlined it.

@jesseduffield
Copy link
Owner

I actually like writing failing tests first! But I do so within the same commit that fixes it. I think my confusion was around committing the failing test and whether it would cause a test failure on that commit, which could interfere with a git bisect. If we're not doing that then I'm open to the two-commit approach

@stefanhaller
Copy link
Collaborator

I actually like writing failing tests first! But I do so within the same commit that fixes it. I think my confusion was around committing the failing test and whether it would cause a test failure on that commit, which could interfere with a git bisect. If we're not doing that then I'm open to the two-commit approach

Of course, all commits need to be green, so the test must not fail in the first commit. But that's the point: the test demonstrates the buggy behavior in the first commit, and you see how the test changes in the commit that fixes the bug, which is useful information for future readers of the git history.

Sometimes I go as far as writing something like this in the first commit, but maybe that's overkill:

	Lines(
		/* EXPECTED:
		Contains("commit 04"),
		ACTUAL: */
		Contains("commit 05"),
	)

And of course it doesn't always work, e.g. if it was a crash bug.

@jesseduffield
Copy link
Owner

That's sensible. I'll give it a go next time I do a bugfix

@gustavokrieger
Copy link
Contributor Author

The test drop_in_edit_with_custom_comment_char doesn't catch the bug, it already succeeded before. The reason is that pressing e doesn't parse the todo-file at all; it only prepends a break line. And then, when pressing d during the rebase, git has already stripped all comments from the todo-file, so that succeeded too. I'd suggest to just drop this test.

Instead, I'd probably add one more test that moves a commit up or down (outside of a rebase). For my feeling that should be enough coverage.

I ended up adding drop_in_edit_with_custom_comment_char because, even though it did already succeeded before, I noticed that the test drop_with_custom_comment_char does not cover the changes made here and here. Do you think this alone does not justify the test's existence? I have no strong opinion about it. The test just seemed simple enough to me, so I didn't worry much about it's necessity.

@gustavokrieger
Copy link
Contributor Author

See if I understand what you guys want me to do with the PR: it should be two commits, the first being only the tests (skip the crashing ones), and the second the rest of the code. The tests should not be failing in either commit, so in the first one they will be testing for the behavior before the change. Is this correct?

@jesseduffield
Copy link
Owner

Yep!

@stefanhaller
Copy link
Collaborator

I ended up adding drop_in_edit_with_custom_comment_char because, even though it did already succeeded before, I noticed that the test drop_with_custom_comment_char does not cover the changes made here and here.

But drop_in_edit_with_custom_comment_char doesn't either, that was my point. If you want to cover these changes, you'll have to add one that actually fails before these changes. For the first one you have one already (drop_in_edit_with_custom_comment_char covers it), but for the second you'll have to use one of the tests that result in a "conflict" being shown in the commits panel. We have several of these, search for Contains("conflict") to find them; maybe amend_commit_with_conflict would be a good candidate.

See if I understand what you guys want me to do with the PR: it should be two commits, the first being only the tests (skip the crashing ones),

I'm not sure what you mean by "skip the crashing ones"; we don't have any tests that would crash before the change, do we? If you mean tests that result in an error message, then those should not be skipped; it's good to document the error that we are getting before the change.

@stefanhaller
Copy link
Collaborator

If you want to go about this more systematically, then you could do the following (this is actually what I would have done if it were my PR):

  1. Make a commit that adds all the new tests, in their "failing" state (i.e. documenting the brokenness, including any error panels)
  2. Make a second commit that only bumps the git-todo-parser module. Get the code to compile by passing a hard-coded '#' at every call site of todo.Parse and todo.Write. This commit shouldn't change any tests, of course.
  3. Now you are in a position to make a series of more fine-grained commits to pass the real comment char instead of the '#'; each of these commits changes only a single call site. In each of these commits you should have to adapt at least one test. If you find yourself changing one call site where you don't have to adapt any test, then you are missing test coverage.

After this you might decide to squash all the small commits of step 3 into one, this might be a matter of taste. However, if in doubt I prefer smaller commits over larger ones (as long as each one is green).

@gustavokrieger
Copy link
Contributor Author

But drop_in_edit_with_custom_comment_char doesn't either, that was my point. If you want to cover these changes, you'll have to add one that actually fails before these changes.

I was not clear on what I meant. With "drop_with_custom_comment_char does not cover the changes" I meant to say that those specific lines of code did not execute at all on the drop_with_custom_comment_char test, which was the only one that set the comment char to ;.

We have several of these, search for Contains("conflict") to find them; maybe amend_commit_with_conflict would be a good candidate.

I ended up dropping the drop_in_edit_with_custom_comment_char test in favor of the "move" one, as suggested earlier. Should I still add this new one?

I'm not sure what you mean by "skip the crashing ones"; we don't have any tests that would crash before the change, do we?

Never mind, we don't.

@gustavokrieger gustavokrieger marked this pull request as ready for review July 2, 2023 05:41
@stefanhaller
Copy link
Collaborator

Thanks for bearing with my nitpicking Gustavo, this is getting really, really nice. Great work!

But drop_in_edit_with_custom_comment_char doesn't either, that was my point. If you want to cover these changes, you'll have to add one that actually fails before these changes.

I was not clear on what I meant. With "drop_with_custom_comment_char does not cover the changes" I meant to say that those specific lines of code did not execute at all on the drop_with_custom_comment_char test, which was the only one that set the comment char to ;.

Yes, I got that. My point was that having a test that just executes those lines is not enough. Specifically, for the test drop_in_edit_with_custom_comment_char those lines were executed at a point where there are no comment characters in the file any more, so the test succeeds no matter what core.commentChar is set to, and no matter whether we pass the correct one or a hard-coded #. So that's a worthless test.

But I thought about this a little more, and actually I can't come up with any scenario (not just in tests, also in real usage) where we execute those two places in commit_loader.go while there are comments in the files being parsed; which means that we make the change only for the theoretical case that a future git version decides to put comments in the those files at that point, but today we have no way to cover these with tests.

@stefanhaller
Copy link
Collaborator

@jesseduffield Did you want to review this too? I'd be happy to merge this in its current state.

Copy link
Owner

@jesseduffield jesseduffield left a comment

Choose a reason for hiding this comment

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

One thought: we're currently obtaining the comment char in two different places: what are our thoughts on passing the comment char as an env var to the daemon so that we only fetch it in a single place and so that the fetching process can be cached (given that the git config struct we use caches results already)?

@stefanhaller
Copy link
Collaborator

I thought about that, but the code is so much simpler if the daemon just makes its own call to git config. And I doubt that we need caching for performance reasons here, so I'd be happy with the way we have it now.

@jesseduffield
Copy link
Owner

Fair enough. It would be worth finding a go package for parsing a git config so that we don't need to invoke the git binary; then we wouldn't need to care about the overhead there (obvs not needed for this PR).

Merge away :)

@stefanhaller
Copy link
Collaborator

git config core.commentChar takes less than 3ms to execute on my machine. Granted, it's probably worse on Windows, but I really don't think it's worth manually parsing the config file to improve that.

@stefanhaller stefanhaller merged commit 2be4359 into jesseduffield:master Jul 2, 2023
6 checks passed
@gustavokrieger gustavokrieger deleted the overwrite-comment-char branch July 2, 2023 15:10
@jesseduffield jesseduffield changed the title Use comment char on interactive rebase Honour configured comment char on interactive rebase Jul 19, 2023
@jesseduffield jesseduffield added bugfix bug Something isn't working and removed bugfix labels 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://togithub.com/GoogleContainerTools/skaffold)
| patch | `v2.6.1` -> `v2.6.2` |
| [aquaproj/aqua](https://togithub.com/aquaproj/aqua) | minor | `v2.9.0`
-> `v2.10.1` |
|
[aquaproj/aqua-installer](https://togithub.com/aquaproj/aqua-installer)
| patch | `v2.1.1` -> `v2.1.2` |
| [aquaproj/aqua-registry](https://togithub.com/aquaproj/aqua-registry)
| minor | `v4.26.0` -> `v4.32.0` |
|
[bitnami-labs/sealed-secrets](https://togithub.com/bitnami-labs/sealed-secrets)
| minor | `v0.22.0` -> `v0.23.0` |
| [charmbracelet/gum](https://togithub.com/charmbracelet/gum) | minor |
`v0.10.0` -> `v0.11.0` |
| [cli/cli](https://togithub.com/cli/cli) | patch | `v2.32.0` ->
`v2.32.1` |
| [jesseduffield/lazygit](https://togithub.com/jesseduffield/lazygit) |
minor | `v0.38.2` -> `v0.39.4` |
|
[kubernetes-sigs/kustomize](https://togithub.com/kubernetes-sigs/kustomize)
| patch | `v5.1.0` -> `v5.1.1` |
| [kubernetes/kubectl](https://togithub.com/kubernetes/kubectl) | patch
| `1.27.3` -> `1.27.4` |
| [kubernetes/minikube](https://togithub.com/kubernetes/minikube) |
minor | `v1.30.1` -> `v1.31.1` |
| [marcosnils/bin](https://togithub.com/marcosnils/bin) | minor |
`v0.16.2` -> `v0.17.0` |
| [starship/starship](https://togithub.com/starship/starship) | minor |
`v1.15.0` -> `v1.16.0` |
| [twpayne/chezmoi](https://togithub.com/twpayne/chezmoi) | minor |
`v2.34.3` -> `v2.36.1` |
| [weaveworks/eksctl](https://togithub.com/weaveworks/eksctl) | minor |
`v0.149.0` -> `v0.150.0` |

---

### Release Notes

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

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

[Compare
Source](https://togithub.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://togithub.com/aquaproj/aqua/releases/tag/v2.10.1)

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

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.10.1)
|
[Issues](https://togithub.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://togithub.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://togithub.com/aquaproj/aqua/releases/tag/v2.10.0)
[#&#8203;2108](https://togithub.com/aquaproj/aqua/issues/2108)

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

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

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.10.0)
|
[Issues](https://togithub.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://togithub.com/aquaproj/aqua/issues/2111) Add a
subcommand `info`
[#&#8203;2108](https://togithub.com/aquaproj/aqua/issues/2108)
update-checksum: Output created or updated file names

##### Others

[#&#8203;2110](https://togithub.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://togithub.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://togithub.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://togithub.com/aquaproj/aqua/releases/tag/v2.9.1)

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

[Pull
Requests](https://togithub.com/aquaproj/aqua/pulls?q=is%3Apr+milestone%3Av2.9.1)
|
[Issues](https://togithub.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://togithub.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://togithub.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://togithub.com/aquaproj/aqua-installer/releases/tag/v2.1.2)

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


[Issues](https://togithub.com/aquaproj/aqua-installer/issues?q=is%3Aissue+milestone%3Av2.1.2)
| [Pull
Requests](https://togithub.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://togithub.com/aquaproj/aqua-installer/issues/432)
Fix typo
[#&#8203;461](https://togithub.com/aquaproj/aqua-installer/issues/461)
[#&#8203;463](https://togithub.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://togithub.com/aquaproj/aqua-installer/issues/461)
[#&#8203;463](https://togithub.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://togithub.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://togithub.com/aquaproj/aqua-registry/releases/tag/v4.32.0)

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


[Issues](https://togithub.com/aquaproj/aqua-registry/issues?q=is%3Aissue+milestone%3Av4.32.0)
| [Pull
Requests](https://togithub.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://togithub.com/aquaproj/aqua-registry/issues/13691)
[#&#8203;14174](https://togithub.com/aquaproj/aqua-registry/issues/14174)
[Scalingo/cli](https://togithub.com/Scalingo/cli): Command Line client
for Scalingo PaaS

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

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


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

#### 🎉 New Contributors

Thank you for your contribution!

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

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

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


[Issues](https://togithub.com/aquaproj/aqua-registry/issues?q=is%3Aissue+milestone%3Av4.31.0)
| [Pull
Requests](https://togithub.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://togithub.com/aquaproj/aqua-registry/issues/14076)
[b4b4r07/vtest](https://togithub.com/b4b4r07/vtest): Unix `test` command
for Version comparison

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

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

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

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

#### Fixes


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

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

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

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


[Issues](https://togithub.com/aquaproj/aqua-registry/issues?q=is%3Aissue+milestone%3Av4.30.0)
| [Pull
Requests](https://togithub.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://togithub.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://togithub.com/Gowiem)

#### Improvements


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

#### Fixes


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

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

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

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

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


[Issues](https://togithub.com/aquaproj/aqua-registry/issues?q=is%3Aissue+milestone%3Av4.29.1)
| [Pull
Requests](https://togithub.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://togithub.com/aquaproj/aqua-registry/issues/13979)
arttor/helmify: Follow up changes of helmify v0.4.5

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

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

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

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

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

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

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

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


[Issues](https://togithub.com/aquaproj/aqua-registry/issues?q=is%3Aissue+milestone%3Av4.29.0)
| [Pull
Requests](https://togithub.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://togithub.com/aquaproj/aqua-registry/issues/13931)
[k0kubun/xremap/gnome](https://togithub.com/k0kubun/xremap): Key
remapper for X11 and Wayland (for GNOME Wayland)
[@&#8203;4513ECHO](https://togithub.com/4513ECHO)

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

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

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

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

#### Fixes


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

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

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


[Issues](https://togithub.com/aquaproj/aqua-registry/issues?q=is%3Aissue+milestone%3Av4.28.0)
| [Pull
Requests](https://togithub.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://togithub.com/aquaproj/aqua-registry/issues/13862)
[JohnnyMorganz/StyLua](https://togithub.com/JohnnyMorganz/StyLua): An
opinionated Lua code formatter
[@&#8203;4513ECHO](https://togithub.com/4513ECHO)

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

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

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


[Issues](https://togithub.com/aquaproj/aqua-registry/issues?q=is%3Aissue+milestone%3Av4.27.0)
| [Pull
Requests](https://togithub.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://togithub.com/aquaproj/aqua-registry/issues/13784)
[crates.io/shellharden](https://crates.io/crates/shellharden): The
corrective bash syntax highlighter
[@&#8203;hituzi-no-sippo](https://togithub.com/hituzi-no-sippo)

</details>

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

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

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

</details>

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

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

[Compare
Source](https://togithub.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://togithub.com/MikaelFangel)) in
[https://github.com/charmbracelet/gum/pull/321](https://togithub.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://togithub.com/deicon))

##### Fixed

-   Respect file path argument in filepicker

##### Other stuff

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

#### New Contributors

- [@&#8203;hopefulTex](https://togithub.com/hopefulTex) made their first
contribution in
[https://github.com/charmbracelet/gum/pull/303](https://togithub.com/charmbracelet/gum/pull/303)
- [@&#8203;vahnrr](https://togithub.com/vahnrr) made their first
contribution in
[https://github.com/charmbracelet/gum/pull/374](https://togithub.com/charmbracelet/gum/pull/374)
- [@&#8203;kennyp](https://togithub.com/kennyp) made their first
contribution in
[https://github.com/charmbracelet/gum/pull/387](https://togithub.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://togithub.com/cli/cli/releases/tag/v2.32.1):
GitHub CLI 2.32.1

[Compare Source](https://togithub.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://togithub.com/samcoe) in
[https://github.com/cli/cli/pull/7725](https://togithub.com/cli/cli/pull/7725)
- `pr edit`: Do not make reviewer update request if there are no
reviewer changes by [@&#8203;samcoe](https://togithub.com/samcoe) in
[https://github.com/cli/cli/pull/7730](https://togithub.com/cli/cli/pull/7730)
- `repo view`: Sanitize file contents before displaying them by
[@&#8203;samcoe](https://togithub.com/samcoe) in
[https://github.com/cli/cli/pull/7694](https://togithub.com/cli/cli/pull/7694)
- `release download`: Use filepath.Clean to sanitize path for archive
downloads by [@&#8203;samcoe](https://togithub.com/samcoe) in
[https://github.com/cli/cli/pull/7720](https://togithub.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://togithub.com/samcoe) in
[https://github.com/cli/cli/pull/7692](https://togithub.com/cli/cli/pull/7692)
- Use asciisanitization package from go-gh by
[@&#8203;samcoe](https://togithub.com/samcoe) in
[https://github.com/cli/cli/pull/7745](https://togithub.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://togithub.com/jesseduffield/lazygit/releases/tag/v0.39.4)

[Compare
Source](https://togithub.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://togithub.com/stefanhaller) in
[https://github.com/jesseduffield/lazygit/pull/2800](https://togithub.com/jesseduffield/lazygit/pull/2800)

##### Fixes 🔧

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

##### Docs 📖

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

#### New Contributors

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

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

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

[Compare
Source](https://togithub.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://togithub.com/jesseduffield) in
[https://github.com/jesseduffield/lazygit/pull/2807](https://togithub.com/jesseduffield/lazygit/pull/2807)
- Use fuzzy search when filtering a view by
[@&#8203;jesseduffield](https://togithub.com/jesseduffield) in
[https://github.com/jesseduffield/lazygit/pull/2808](https://togithub.com/jesseduffield/lazygit/pull/2808)
- Better tag creation UX by
[@&#8203;jesseduffield](https://togithub.com/jesseduffield) in
[https://github.com/jesseduffield/lazygit/pull/2809](https://togithub.com/jesseduffield/lazygit/pull/2809)
- Better word wrap by
[@&#8203;jesseduffield](https://togithub.com/jesseduffield) in
[https://github.com/jesseduffield/lazygit/pull/2812](https://togithub.com/jesseduffield/lazygit/pull/2812)

##### Fixes 🔧

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

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

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

[Compare
Source](https://togithub.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://togithub.com/AndrewSav) for the
investigation and fix
[https://github.com/jesseduffield/lazygit/pull/2806](https://togithub.com/jesseduffield/lazygit/pull/2806)

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

[Compare
Source](https://togithub.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://togithub.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://togithub.com/jesseduffield/lazygit/discussions/2803)

##### Enhancements 🔥

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

##### Fixes 🔧

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

##### Maintenance ⚙️

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

##### Docs 📖

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

##### I18n 🌎

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

#### New Contributors

- [@&#8203;screendriver](https://togithub.com/screendriver) made their
first contribution in
[https://github.com/jesseduffield/lazygit/pull/2591](https://togithub.com/jesseduffield/lazygit/pull/2591)
- [@&#8203;longlhh90](https://togithub.com/longlhh90) made their first
contribution in
[https://github.com/jesseduffield/lazygit/pull/2612](https://togithub.com/jesseduffield/lazygit/pull/2612)
- [@&#8203;mazharz](https://togithub.com/mazharz) made their first
contribution in
[https://github.com/jesseduffield/lazygit/pull/2656](https://togithub.com/jesseduffield/lazygit/pull/2656)
- [@&#8203;dvic](https://togithub.com/dvic) made their first
contribution in
[https://github.com/jesseduffield/lazygit/pull/2668](https://togithub.com/jesseduffield/lazygit/pull/2668)
- [@&#8203;dependabot](https://togithub.com/dependabot) made their first
contribution in
[https://github.com/jesseduffield/lazygit/pull/2490](https://togithub.com/jesseduffield/lazygit/pull/2490)
- [@&#8203;tzengyuxio](https://togithub.com/tzengyuxio) made their first
contribution in
[https://github.com/jesseduffield/lazygit/pull/2688](https://togithub.com/jesseduffield/lazygit/pull/2688)
- [@&#8203;enricozb](https://togithub.com/enricozb) made their first
contribution in
[https://github.com/jesseduffield/lazygit/pull/2708](https://togithub.com/jesseduffield/lazygit/pull/2708)
- [@&#8203;letavocado](https://togithub.com/letavocado) made their first
contribution in
[https://github.com/jesseduffield/lazygit/pull/2729](https://togithub.com/jesseduffield/lazygit/pull/2729)
- [@&#8203;gustavopcassol](https://togithub.com/gustavopcassol) made
their first contribution in
[https://github.com/jesseduffield/lazygit/pull/2639](https://togithub.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://togithub.com/kubernetes-sigs/kustomize/releases/tag/kustomize/v5.1.1)

[Compare
Source](https://togithub.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://togithub.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://togithub.com/kubernetes/kubectl/compare/kubernetes-1.27.3...kubernetes-1.27.4)

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

</details>

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

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

[Compare
Source](https://togithub.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://togithub.com/kubernetes/minikube/pull/16912)

For a more detailed changelog, see
[CHANGELOG.md](https://togithub.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://togithub.com/kubernetes/minikube/releases/tag/v1.31.0)

[Compare
Source](https://togithub.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://togithub.com/kubernetes/minikube/pull/16796)
- `docker-env` supports the containerd runtime (experimental)
[#&#8203;15452](https://togithub.com/kubernetes/minikube/pull/15452)
[#&#8203;16761](https://togithub.com/kubernetes/minikube/pull/16761)
- Automatically renew expired kubeadm certs
[#&#8203;16249](https://togithub.com/kubernetes/minikube/pull/16249)
- New addon inspektor-gadget
[#&#8203;15869](https://togithub.com/kubernetes/minikube/pull/15869)

Major Improvements:

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

Minor Improvements:

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

Bugs:

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

New ISO Modules:

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

Version Upgrades:

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

For a more detailed changelog, see
[CHANGELOG.md](https://togithub.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://togithub.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
bug Something isn't working
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants