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

fix isPathShadowedInFlatMap type cast bug #1585

Merged
merged 6 commits into from Dec 6, 2023

Conversation

linuxsong
Copy link
Contributor

The cast.ToStringMap() method calls ToStringMapE() for type conversion, but ToStringMapE() does not support conversion from map[string]string and map[string]FlagValue to map[string]interface{}, so when calling the isPathShadowedInFlatMap() method, ToStringMapE will always return a " unable to cast %#v of type %T to map[string]interface{}" error, so the isPathShadowedInFlatMap() method does nothing.

So in the isPathShadowedInFlatMap method, should to call castMapStringToMapInterface and castMapFlagToMapInterface() respectively to convert map[string]string and map[string]FlagValue into map[string]interface{}.

@CLAassistant
Copy link

CLAassistant commented Jul 13, 2023

CLA assistant check
All committers have signed the CLA.

@github-actions
Copy link

👋 Thanks for contributing to Viper! You are awesome! 🎉

A maintainer will take a look at your pull request shortly. 👀

In the meantime: We are working on Viper v2 and we would love to hear your thoughts about what you like or don't like about Viper, so we can improve or fix those issues.

⏰ If you have a couple minutes, please take some time and share your thoughts: https://forms.gle/R6faU74qPRPAzchZ9

📣 If you've already given us your feedback, you can still help by spreading the news,
either by sharing the above link or telling people about this on Twitter:

https://twitter.com/sagikazarmark/status/1306904078967074816

Thank you! ❤️

@sagikazarmark
Copy link
Collaborator

@linuxsong thank you for your contribution!

Could you provide a test that fails without this change, so we can make sure we don't reintroduce this bug later?

Thanks!

@sagikazarmark sagikazarmark added the kind/bug Something isn't working label Jul 21, 2023
@linuxsong linuxsong closed this Jul 22, 2023
@linuxsong linuxsong reopened this Jul 22, 2023
@linuxsong
Copy link
Contributor Author

@linuxsong thank you for your contribution!

Could you provide a test that fails without this change, so we can make sure we don't reintroduce this bug later?

Thanks!

I added a unit test. It will fails without this change. Please help to review.

@sagikazarmark
Copy link
Collaborator

@linuxsong thank you for providing a test.

Is this issue reproducible using the public API of Viper?

For example, can you reproduce it using flags manually passed in?

If so it would be better to write a blackbox test (as well) that doesn't rely on internals, so if any refactoring happens we can safely make changes around the internal code without breaking existing features.

Here is what I would do (although I'm not sure how to reproduce the problem):

Write a test that:

  • configures a flag value
  • reads in config or sets a default value
  • asserts that shadowing happens (or not) by reading from Viper

@sagikazarmark sagikazarmark added this to the v1.18.0 milestone Sep 11, 2023
@linuxsong
Copy link
Contributor Author

@linuxsong thank you for providing a test.

Is this issue reproducible using the public API of Viper?

For example, can you reproduce it using flags manually passed in?

If so it would be better to write a blackbox test (as well) that doesn't rely on internals, so if any refactoring happens we can safely make changes around the internal code without breaking existing features.

Here is what I would do (although I'm not sure how to reproduce the problem):

Write a test that:

  • configures a flag value
  • reads in config or sets a default value
  • asserts that shadowing happens (or not) by reading from Viper

@sagikazarmark thank you for your review.
I use public API of Viper write a new unit test reproduce the issue. Without this fix the test case would fail.
Please help to review again.

Copy link
Collaborator

@sagikazarmark sagikazarmark left a comment

Choose a reason for hiding this comment

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

Thanks!

@sagikazarmark sagikazarmark merged commit f736363 into spf13:master Dec 6, 2023
1 check passed
renovate bot added a commit to trussworks/setup-new-aws-user that referenced this pull request Dec 6, 2023
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [github.com/spf13/viper](https://togithub.com/spf13/viper) | require |
minor | `v1.17.0` -> `v1.18.0` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>spf13/viper (github.com/spf13/viper)</summary>

### [`v1.18.0`](https://togithub.com/spf13/viper/releases/tag/v1.18.0)

[Compare
Source](https://togithub.com/spf13/viper/compare/v1.17.0...v1.18.0)

#### Major changes

Highlighting some of the changes for better visibility.

Please share your feedback in the Discussion forum. Thanks! ❤️

##### `AutomaticEnv` works with `Unmarshal`

Previously, environment variables that weren't bound manually or had no
defaults could not be mapped by `Unmarshal`. (The problem is explained
in details in this issue:
[#&#8203;761](https://togithub.com/spf13/viper/issues/761))

[#&#8203;1429](https://togithub.com/spf13/viper/issues/1429) introduced
a solution that solves that issue.

#### What's Changed

##### Enhancements 🚀

- chore: rename files according to enabled build tags by
[@&#8203;alexandear](https://togithub.com/alexandear) in
[spf13/viper#1642
- test: replace ifs with asserts to simplify tests by
[@&#8203;alexandear](https://togithub.com/alexandear) in
[spf13/viper#1656
- ci: enable test shuffle and fix tests by
[@&#8203;alexandear](https://togithub.com/alexandear) in
[spf13/viper#1643
- fix: gocritic lint issues by
[@&#8203;alexandear](https://togithub.com/alexandear) in
[spf13/viper#1696

##### Bug Fixes 🐛

- Implement viper.BindStruct for automatic unmarshalling from
environment variables by
[@&#8203;krakowski](https://togithub.com/krakowski) in
[spf13/viper#1429
- fix isPathShadowedInFlatMap type cast bug by
[@&#8203;linuxsong](https://togithub.com/linuxsong) in
[spf13/viper#1585

##### Dependency Updates ⬆️

- build(deps): bump github/codeql-action from 2.21.9 to 2.22.3 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1661
- build(deps): bump golang.org/x/net from 0.15.0 to 0.17.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1659
- build(deps): bump actions/checkout from 4.1.0 to 4.1.1 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1663
- build(deps): bump actions/github-script from 6.4.1 to 7.0.1 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1686
- build(deps): bump github/codeql-action from 2.22.3 to 2.22.8 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1688
- build(deps): bump github.com/spf13/afero from 1.10.0 to 1.11.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1692
- build(deps): bump actions/dependency-review-action from 3.1.0 to 3.1.4
by [@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1690
- build(deps): bump cachix/install-nix-action from 23 to 24 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1689
- build(deps): bump github.com/nats-io/nkeys from 0.4.5 to 0.4.6 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1672
- build(deps): bump github.com/spf13/cast from 1.5.1 to 1.6.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1691
- build(deps): bump github.com/fsnotify/fsnotify from 1.6.0 to 1.7.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1668
- chore: update dependencies by
[@&#8203;sagikazarmark](https://togithub.com/sagikazarmark) in
[spf13/viper#1694
- chore: update crypt by
[@&#8203;sagikazarmark](https://togithub.com/sagikazarmark) in
[spf13/viper#1701

##### Other Changes

- Add info about multiple hosts for remote config by
[@&#8203;KaymeKaydex](https://togithub.com/KaymeKaydex) in
[spf13/viper#1684
- refactor: drop fsonitfy wrapper by
[@&#8203;sagikazarmark](https://togithub.com/sagikazarmark) in
[spf13/viper#1693
- Note Get\* behavior on parse failure by
[@&#8203;scop](https://togithub.com/scop) in
[spf13/viper#1687
- fix: godot lint issues by
[@&#8203;alexandear](https://togithub.com/alexandear) in
[spf13/viper#1657

#### New Contributors

- [@&#8203;KaymeKaydex](https://togithub.com/KaymeKaydex) made their
first contribution in
[spf13/viper#1684
- [@&#8203;krakowski](https://togithub.com/krakowski) made their first
contribution in
[spf13/viper#1429
- [@&#8203;linuxsong](https://togithub.com/linuxsong) made their first
contribution in
[spf13/viper#1585

**Full Changelog**:
spf13/viper@v1.17.0...v1.18.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "every weekday,after 9am and before
5pm" in timezone America/Los_Angeles, Automerge - At any time (no
schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- 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/trussworks/setup-new-aws-user).

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

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
renovate bot added a commit to open-feature/flagd that referenced this pull request Dec 7, 2023
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [github.com/spf13/viper](https://togithub.com/spf13/viper) | require |
minor | `v1.17.0` -> `v1.18.0` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>spf13/viper (github.com/spf13/viper)</summary>

### [`v1.18.0`](https://togithub.com/spf13/viper/releases/tag/v1.18.0)

[Compare
Source](https://togithub.com/spf13/viper/compare/v1.17.0...v1.18.0)

#### Major changes

Highlighting some of the changes for better visibility.

Please share your feedback in the Discussion forum. Thanks! ❤️

##### `AutomaticEnv` works with `Unmarshal`

Previously, environment variables that weren't bound manually or had no
defaults could not be mapped by `Unmarshal`. (The problem is explained
in details in this issue:
[#&#8203;761](https://togithub.com/spf13/viper/issues/761))

[#&#8203;1429](https://togithub.com/spf13/viper/issues/1429) introduced
a solution that solves that issue.

#### What's Changed

##### Enhancements 🚀

- chore: rename files according to enabled build tags by
[@&#8203;alexandear](https://togithub.com/alexandear) in
[spf13/viper#1642
- test: replace ifs with asserts to simplify tests by
[@&#8203;alexandear](https://togithub.com/alexandear) in
[spf13/viper#1656
- ci: enable test shuffle and fix tests by
[@&#8203;alexandear](https://togithub.com/alexandear) in
[spf13/viper#1643
- fix: gocritic lint issues by
[@&#8203;alexandear](https://togithub.com/alexandear) in
[spf13/viper#1696

##### Bug Fixes 🐛

- Implement viper.BindStruct for automatic unmarshalling from
environment variables by
[@&#8203;krakowski](https://togithub.com/krakowski) in
[spf13/viper#1429
- fix isPathShadowedInFlatMap type cast bug by
[@&#8203;linuxsong](https://togithub.com/linuxsong) in
[spf13/viper#1585

##### Dependency Updates ⬆️

- build(deps): bump github/codeql-action from 2.21.9 to 2.22.3 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1661
- build(deps): bump golang.org/x/net from 0.15.0 to 0.17.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1659
- build(deps): bump actions/checkout from 4.1.0 to 4.1.1 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1663
- build(deps): bump actions/github-script from 6.4.1 to 7.0.1 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1686
- build(deps): bump github/codeql-action from 2.22.3 to 2.22.8 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1688
- build(deps): bump github.com/spf13/afero from 1.10.0 to 1.11.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1692
- build(deps): bump actions/dependency-review-action from 3.1.0 to 3.1.4
by [@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1690
- build(deps): bump cachix/install-nix-action from 23 to 24 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1689
- build(deps): bump github.com/nats-io/nkeys from 0.4.5 to 0.4.6 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1672
- build(deps): bump github.com/spf13/cast from 1.5.1 to 1.6.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1691
- build(deps): bump github.com/fsnotify/fsnotify from 1.6.0 to 1.7.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1668
- chore: update dependencies by
[@&#8203;sagikazarmark](https://togithub.com/sagikazarmark) in
[spf13/viper#1694
- chore: update crypt by
[@&#8203;sagikazarmark](https://togithub.com/sagikazarmark) in
[spf13/viper#1701

##### Other Changes

- Add info about multiple hosts for remote config by
[@&#8203;KaymeKaydex](https://togithub.com/KaymeKaydex) in
[spf13/viper#1684
- refactor: drop fsonitfy wrapper by
[@&#8203;sagikazarmark](https://togithub.com/sagikazarmark) in
[spf13/viper#1693
- Note Get\* behavior on parse failure by
[@&#8203;scop](https://togithub.com/scop) in
[spf13/viper#1687
- fix: godot lint issues by
[@&#8203;alexandear](https://togithub.com/alexandear) in
[spf13/viper#1657

#### New Contributors

- [@&#8203;KaymeKaydex](https://togithub.com/KaymeKaydex) made their
first contribution in
[spf13/viper#1684
- [@&#8203;krakowski](https://togithub.com/krakowski) made their first
contribution in
[spf13/viper#1429
- [@&#8203;linuxsong](https://togithub.com/linuxsong) made their first
contribution in
[spf13/viper#1585

**Full Changelog**:
spf13/viper@v1.17.0...v1.18.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- 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/open-feature/flagd).

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

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
ti-chi-bot bot pushed a commit to PingCAP-QE/ee-apps that referenced this pull request Dec 9, 2023
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [github.com/spf13/viper](https://togithub.com/spf13/viper) | require |
minor | `v1.8.0` -> `v1.18.1` |
| [github.com/spf13/viper](https://togithub.com/spf13/viper) | require |
minor | `v1.17.0` -> `v1.18.1` |

---

### Release Notes

<details>
<summary>spf13/viper (github.com/spf13/viper)</summary>

### [`v1.18.1`](https://togithub.com/spf13/viper/releases/tag/v1.18.1)

[Compare
Source](https://togithub.com/spf13/viper/compare/v1.18.0...v1.18.1)

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

#### What's Changed

##### Bug Fixes 🐛

- Merge missing struct keys inside UnmarshalExact by
[@&#8203;krakowski](https://togithub.com/krakowski) in
[spf13/viper#1704

**Full Changelog**:
spf13/viper@v1.18.0...v1.18.1

### [`v1.18.0`](https://togithub.com/spf13/viper/releases/tag/v1.18.0)

[Compare
Source](https://togithub.com/spf13/viper/compare/v1.17.0...v1.18.0)

#### Major changes

Highlighting some of the changes for better visibility.

Please share your feedback in the Discussion forum. Thanks! ❤️

##### `AutomaticEnv` works with `Unmarshal`

Previously, environment variables that weren't bound manually or had no
defaults could not be mapped by `Unmarshal`. (The problem is explained
in details in this issue:
[#&#8203;761](https://togithub.com/spf13/viper/issues/761))

[#&#8203;1429](https://togithub.com/spf13/viper/issues/1429) introduced
a solution that solves that issue.

#### What's Changed

##### Enhancements 🚀

- chore: rename files according to enabled build tags by
[@&#8203;alexandear](https://togithub.com/alexandear) in
[spf13/viper#1642
- test: replace ifs with asserts to simplify tests by
[@&#8203;alexandear](https://togithub.com/alexandear) in
[spf13/viper#1656
- ci: enable test shuffle and fix tests by
[@&#8203;alexandear](https://togithub.com/alexandear) in
[spf13/viper#1643
- fix: gocritic lint issues by
[@&#8203;alexandear](https://togithub.com/alexandear) in
[spf13/viper#1696

##### Bug Fixes 🐛

- Implement viper.BindStruct for automatic unmarshalling from
environment variables by
[@&#8203;krakowski](https://togithub.com/krakowski) in
[spf13/viper#1429
- fix isPathShadowedInFlatMap type cast bug by
[@&#8203;linuxsong](https://togithub.com/linuxsong) in
[spf13/viper#1585

##### Dependency Updates ⬆️

- build(deps): bump github/codeql-action from 2.21.9 to 2.22.3 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1661
- build(deps): bump golang.org/x/net from 0.15.0 to 0.17.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1659
- build(deps): bump actions/checkout from 4.1.0 to 4.1.1 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1663
- build(deps): bump actions/github-script from 6.4.1 to 7.0.1 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1686
- build(deps): bump github/codeql-action from 2.22.3 to 2.22.8 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1688
- build(deps): bump github.com/spf13/afero from 1.10.0 to 1.11.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1692
- build(deps): bump actions/dependency-review-action from 3.1.0 to 3.1.4
by [@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1690
- build(deps): bump cachix/install-nix-action from 23 to 24 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1689
- build(deps): bump github.com/nats-io/nkeys from 0.4.5 to 0.4.6 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1672
- build(deps): bump github.com/spf13/cast from 1.5.1 to 1.6.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1691
- build(deps): bump github.com/fsnotify/fsnotify from 1.6.0 to 1.7.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1668
- chore: update dependencies by
[@&#8203;sagikazarmark](https://togithub.com/sagikazarmark) in
[spf13/viper#1694
- chore: update crypt by
[@&#8203;sagikazarmark](https://togithub.com/sagikazarmark) in
[spf13/viper#1701

##### Other Changes

- Add info about multiple hosts for remote config by
[@&#8203;KaymeKaydex](https://togithub.com/KaymeKaydex) in
[spf13/viper#1684
- refactor: drop fsonitfy wrapper by
[@&#8203;sagikazarmark](https://togithub.com/sagikazarmark) in
[spf13/viper#1693
- Note Get\* behavior on parse failure by
[@&#8203;scop](https://togithub.com/scop) in
[spf13/viper#1687
- fix: godot lint issues by
[@&#8203;alexandear](https://togithub.com/alexandear) in
[spf13/viper#1657

#### New Contributors

- [@&#8203;KaymeKaydex](https://togithub.com/KaymeKaydex) made their
first contribution in
[spf13/viper#1684
- [@&#8203;krakowski](https://togithub.com/krakowski) made their first
contribution in
[spf13/viper#1429
- [@&#8203;linuxsong](https://togithub.com/linuxsong) made their first
contribution in
[spf13/viper#1585

**Full Changelog**:
spf13/viper@v1.17.0...v1.18.0

### [`v1.17.0`](https://togithub.com/spf13/viper/releases/tag/v1.17.0)

[Compare
Source](https://togithub.com/spf13/viper/compare/v1.16.0...v1.17.0)

#### Major changes

Highlighting some of the changes for better visibility.

Please share your feedback in the Discussion forum. Thanks! ❤️

##### Minimum Go version: 1.19

Viper now requires Go 1.19

This change ensures we can stay up to date with modern practices and
dependencies.

##### `log/slog` support **\[BREAKING]**

Viper [v1.11.0](https://togithub.com/spf13/viper/releases/tag/v1.11.0)
added an experimental `Logger` interface to allow custom implementations
(besides
[jwalterweatherman](https://togithub.com/spf13/jwalterweatherman)).

In addition, it also exposed an experimental `WithLogger` function
allowing to set a custom logger.

This release deprecates that interface in favor of
[log/slog](https://pkg.go.dev/log/slog) released in Go 1.21.

> \[!WARNING]
> `WithLogger` accepts an
[\*slog.Logger](https://pkg.go.dev/log/slog#Logger) from now on.

To preserve backwards compatibility with older Go versions, prior to Go
1.21 Viper accepts a
[\*golang.org/x/exp/slog.Logger](https://pkg.go.dev/golang.org/x/exp/slog#Logger).

The experimental flag is removed.

##### New finder implementation **\[BREAKING]**

As of this release, Viper uses a new library to look for files, called
[locafero](https://togithub.com/sagikazarmark/locafero).

The new library is better covered by tests and has been built from
scratch as a general purpose file finder library.

The implementation is experimental and is hidden behind a `finder` build
tag.

> \[!WARNING]
> The `io/fs` based implementation (that used to be hidden behind a
`finder` build tag) has been removed.

#### What's Changed

##### Exciting New Features 🎉

- Add NATS support by [@&#8203;hooksie1](https://togithub.com/hooksie1)
in
[spf13/viper#1590
- Add slog support by
[@&#8203;sagikazarmark](https://togithub.com/sagikazarmark) in
[spf13/viper#1627

##### Enhancements 🚀

- chore: add local development environment using nix by
[@&#8203;sagikazarmark](https://togithub.com/sagikazarmark) in
[spf13/viper#1572
- feat: add func GetEnvPrefix by
[@&#8203;baruchiro](https://togithub.com/baruchiro) in
[spf13/viper#1565
- Improve dev env by
[@&#8203;sagikazarmark](https://togithub.com/sagikazarmark) in
[spf13/viper#1575
- fix: code optimization by
[@&#8203;testwill](https://togithub.com/testwill) in
[spf13/viper#1557
- test: remove not needed testutil.Setenv by
[@&#8203;alexandear](https://togithub.com/alexandear) in
[spf13/viper#1610
- new finder library based on afero by
[@&#8203;sagikazarmark](https://togithub.com/sagikazarmark) in
[spf13/viper#1625
- refactor: make use of `strings.Cut` by
[@&#8203;scop](https://togithub.com/scop) in
[spf13/viper#1650

##### Breaking Changes 🛠

- feat: drop support for Go 1.17 by
[@&#8203;sagikazarmark](https://togithub.com/sagikazarmark) in
[spf13/viper#1574

##### Dependency Updates ⬆️

- build(deps): bump mheap/github-action-required-labels from 4 to 5 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1563
- build(deps): bump github.com/stretchr/testify from 1.8.3 to 1.8.4 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1558
- build(deps): bump cachix/install-nix-action from 21 to 22 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1573
- build(deps): bump github.com/pelletier/go-toml/v2 from 2.0.8 to 2.0.9
by [@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1586
- chore: upgrade crypt by
[@&#8203;sagikazarmark](https://togithub.com/sagikazarmark) in
[spf13/viper#1589
- build(deps): bump actions/checkout from 3.5.3 to 4.0.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1616
- build(deps): bump github/codeql-action from 2.21.2 to 2.21.5 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1615
- build(deps): bump github.com/pelletier/go-toml/v2 from 2.0.9 to 2.1.0
by [@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1614
- build(deps): bump actions/dependency-review-action from 3.0.6 to 3.0.8
by [@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1605
- build(deps): bump golangci/golangci-lint-action from 3.6.0 to 3.7.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1604
- build(deps): bump actions/setup-go from 4.0.1 to 4.1.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1593
- build(deps): bump github.com/subosito/gotenv from 1.4.2 to 1.6.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1603
- build(deps): bump cachix/install-nix-action from 22 to 23 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1620
- chore(deps): update crypt by
[@&#8203;sagikazarmark](https://togithub.com/sagikazarmark) in
[spf13/viper#1621
- build(deps): bump actions/dependency-review-action from 3.0.8 to 3.1.0
by [@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1623
- Bump minimum Go version to 1.19 by
[@&#8203;sagikazarmark](https://togithub.com/sagikazarmark) in
[spf13/viper#1626
- build(deps): bump github/codeql-action from 2.21.5 to 2.21.6 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1632
- build(deps): bump github/codeql-action from 2.21.6 to 2.21.7 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1634
- build(deps): bump actions/checkout from 4.0.0 to 4.1.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1641
- build(deps): bump github.com/spf13/afero from 1.9.5 to 1.10.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1640
- build(deps): bump github/codeql-action from 2.21.7 to 2.21.8 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1638
- build(deps): bump github/codeql-action from 2.21.8 to 2.21.9 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1648
- chore(deps): update crypt by
[@&#8203;sagikazarmark](https://togithub.com/sagikazarmark) in
[spf13/viper#1652

##### Other Changes

- \[StepSecurity] ci: Harden GitHub Actions by
[@&#8203;step-security-bot](https://togithub.com/step-security-bot) in
[spf13/viper#1592
- Add Vitess to list of projects using Viper by
[@&#8203;systay](https://togithub.com/systay) in
[spf13/viper#1619
- docs: fix typos in comments by
[@&#8203;alexandear](https://togithub.com/alexandear) in
[spf13/viper#1609
- ci: add Go 1.21 to the test matrix by
[@&#8203;sagikazarmark](https://togithub.com/sagikazarmark) in
[spf13/viper#1622
- Remove usages of deprecated io/ioutil; simplify viper tests by
[@&#8203;alexandear](https://togithub.com/alexandear) in
[spf13/viper#1631
- chore: remove deprecated build tags by
[@&#8203;alexandear](https://togithub.com/alexandear) in
[spf13/viper#1630
- refactor: replace 'interface{}' with 'any' by
[@&#8203;alexandear](https://togithub.com/alexandear) in
[spf13/viper#1646
- test: refactor asserts by
[@&#8203;alexandear](https://togithub.com/alexandear) in
[spf13/viper#1644
- docs: add set subset KV example by
[@&#8203;yhliyr](https://togithub.com/yhliyr) in
[spf13/viper#1647
- Make deps fixes by [@&#8203;bersace](https://togithub.com/bersace) in
[spf13/viper#1628

#### New Contributors

- [@&#8203;goldeneggg](https://togithub.com/goldeneggg) made their first
contribution in
[spf13/viper#1561
- [@&#8203;baruchiro](https://togithub.com/baruchiro) made their first
contribution in
[spf13/viper#1565
- [@&#8203;testwill](https://togithub.com/testwill) made their first
contribution in
[spf13/viper#1557
- [@&#8203;step-security-bot](https://togithub.com/step-security-bot)
made their first contribution in
[spf13/viper#1592
- [@&#8203;systay](https://togithub.com/systay) made their first
contribution in
[spf13/viper#1619
- [@&#8203;alexandear](https://togithub.com/alexandear) made their first
contribution in
[spf13/viper#1609
- [@&#8203;hooksie1](https://togithub.com/hooksie1) made their first
contribution in
[spf13/viper#1590
- [@&#8203;yhliyr](https://togithub.com/yhliyr) made their first
contribution in
[spf13/viper#1647
- [@&#8203;bersace](https://togithub.com/bersace) made their first
contribution in
[spf13/viper#1628
- [@&#8203;scop](https://togithub.com/scop) made their first
contribution in
[spf13/viper#1650

**Full Changelog**:
spf13/viper@v1.16.0...v1.17.0

### [`v1.16.0`](https://togithub.com/spf13/viper/releases/tag/v1.16.0)

[Compare
Source](https://togithub.com/spf13/viper/compare/v1.15.0...v1.16.0)

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

#### What's Changed

##### Enhancements 🚀

- Sub parent inheritance by
[@&#8203;TaylorOno](https://togithub.com/TaylorOno) in
[spf13/viper#1056
- fix: fix typo by [@&#8203;yquansah](https://togithub.com/yquansah) in
[spf13/viper#1523
- ci: add Go 1.20 to build matrix by
[@&#8203;sagikazarmark](https://togithub.com/sagikazarmark) in
[spf13/viper#1506
- extend v.find() to handle stringToInt value types with stringToInt
pflag [#&#8203;1435](https://togithub.com/spf13/viper/issues/1435) by
[@&#8203;vorishirne](https://togithub.com/vorishirne) in
[spf13/viper#1462
- add:viper: allow to disable internal log messages by
[@&#8203;burgesQ](https://togithub.com/burgesQ) in
[spf13/viper#1483
- Allow ConfigParseError to unwrap by
[@&#8203;andig](https://togithub.com/andig) in
[spf13/viper#1433

##### Bug Fixes 🐛

- fix: time.Duration slice type conversion by
[@&#8203;UrbanskiDawid](https://togithub.com/UrbanskiDawid) in
[spf13/viper#1498

##### Dependency Updates ⬆️

- build(deps): bump mheap/github-action-required-labels from 3 to 4 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1533
- build(deps): bump actions/setup-go from 3 to 4 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1526
- build(deps): bump golang.org/x/net from 0.4.0 to 0.7.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1519
- build(deps): bump github.com/pelletier/go-toml/v2 from 2.0.6 to 2.0.7
by [@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1516
- build(deps): bump github.com/stretchr/testify from 1.8.1 to 1.8.2 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1515
- build(deps): bump github.com/spf13/afero from 1.9.3 to 1.9.5 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1518
- build(deps): bump github.com/sagikazarmark/crypt from 0.9.0 to 0.10.0
by [@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1550
- build(deps): bump github.com/spf13/cast from 1.5.0 to 1.5.1 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1551
- build(deps): bump github.com/stretchr/testify from 1.8.2 to 1.8.3 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1553
- build(deps): bump github.com/pelletier/go-toml/v2 from 2.0.7 to 2.0.8
by [@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1555

##### Other Changes

- Update main image to better handle dark background by
[@&#8203;Deleplace](https://togithub.com/Deleplace) in
[spf13/viper#1532

#### New Contributors

- [@&#8203;UrbanskiDawid](https://togithub.com/UrbanskiDawid) made their
first contribution in
[spf13/viper#1498
- [@&#8203;TaylorOno](https://togithub.com/TaylorOno) made their first
contribution in
[spf13/viper#1056
- [@&#8203;yquansah](https://togithub.com/yquansah) made their first
contribution in
[spf13/viper#1523
- [@&#8203;Azanul](https://togithub.com/Azanul) made their first
contribution in
[spf13/viper#1544
- [@&#8203;Deleplace](https://togithub.com/Deleplace) made their first
contribution in
[spf13/viper#1532
- [@&#8203;cfabianski](https://togithub.com/cfabianski) made their first
contribution in
[spf13/viper#1552
- [@&#8203;vorishirne](https://togithub.com/vorishirne) made their first
contribution in
[spf13/viper#1462
- [@&#8203;burgesQ](https://togithub.com/burgesQ) made their first
contribution in
[spf13/viper#1483
- [@&#8203;andig](https://togithub.com/andig) made their first
contribution in
[spf13/viper#1433

**Full Changelog**:
spf13/viper@v1.15.0...v1.16.0

### [`v1.15.0`](https://togithub.com/spf13/viper/releases/tag/v1.15.0)

[Compare
Source](https://togithub.com/spf13/viper/compare/v1.14.0...v1.15.0)

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

#### What's Changed

##### Exciting New Features 🎉

- feat: add multiple endpoints support for remote by
[@&#8203;mozartz](https://togithub.com/mozartz) in
[spf13/viper#1464

##### Enhancements 🚀

- Add DocBlock to WatchConfig by
[@&#8203;glebik000](https://togithub.com/glebik000) in
[spf13/viper#1467

##### Breaking Changes 🛠

- Drop YAML v2 and TOML v1 by
[@&#8203;sagikazarmark](https://togithub.com/sagikazarmark) in
[spf13/viper#1493
- Drop support for Go 1.16 by
[@&#8203;sagikazarmark](https://togithub.com/sagikazarmark) in
[spf13/viper#1494

##### Dependency Updates ⬆️

- build(deps): bump github.com/spf13/afero from 1.9.2 to 1.9.3 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1465
- build(deps): bump github.com/magiconair/properties from 1.8.6 to 1.8.7
by [@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1475
- build(deps): bump github.com/pelletier/go-toml/v2 from 2.0.5 to 2.0.6
by [@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1466
- build(deps): bump mheap/github-action-required-labels from 2 to 3 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1482
- build(deps): bump github.com/subosito/gotenv from 1.4.1 to 1.4.2 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1488
- build(deps): bump github.com/sagikazarmark/crypt from 0.8.0 to 0.9.0
by [@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1490

#### New Contributors

- [@&#8203;choar816](https://togithub.com/choar816) made their first
contribution in
[spf13/viper#1481
- [@&#8203;lol768](https://togithub.com/lol768) made their first
contribution in
[spf13/viper#1485
- [@&#8203;mozartz](https://togithub.com/mozartz) made their first
contribution in
[spf13/viper#1464
- [@&#8203;glebik000](https://togithub.com/glebik000) made their first
contribution in
[spf13/viper#1467

**Full Changelog**:
spf13/viper@v1.14.0...v1.15.0

### [`v1.14.0`](https://togithub.com/spf13/viper/releases/tag/v1.14.0)

[Compare
Source](https://togithub.com/spf13/viper/compare/v1.13.0...v1.14.0)

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

#### What's Changed

##### Enhancements 🚀

- feat: make Viper compile on platforms unsupported by fsnotify by
[@&#8203;sagikazarmark](https://togithub.com/sagikazarmark) in
[spf13/viper#1457
- Fsnotify improvements by
[@&#8203;sagikazarmark](https://togithub.com/sagikazarmark) in
[spf13/viper#1458
- Disable watch on appengine by
[@&#8203;sagikazarmark](https://togithub.com/sagikazarmark) in
[spf13/viper#1460

##### Breaking Changes 🛠

- Drop support for Go 1.15 by
[@&#8203;sagikazarmark](https://togithub.com/sagikazarmark) in
[spf13/viper#1428

##### Dependency Updates ⬆️

- build(deps): bump github.com/spf13/afero from 1.8.2 to 1.9.2 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1406
- build(deps): bump github.com/sagikazarmark/crypt from 0.6.0 to 0.7.0
by [@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1437
- build(deps): bump github.com/stretchr/testify from 1.8.0 to 1.8.1 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1453
- build(deps): bump github.com/fsnotify/fsnotify from 1.5.4 to 1.6.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1449
- chore: update crypt by
[@&#8203;sagikazarmark](https://togithub.com/sagikazarmark) in
[spf13/viper#1461

**Full Changelog**:
spf13/viper@v1.13.0...v1.14.0

### [`v1.13.0`](https://togithub.com/spf13/viper/releases/tag/v1.13.0)

[Compare
Source](https://togithub.com/spf13/viper/compare/v1.12.0...v1.13.0)

**Important:** This is the last release supporting Go 1.15.

#### What's Changed

##### Exciting New Features 🎉

- Add etcd3 to supported remote providers by
[@&#8203;franklinkim](https://togithub.com/franklinkim) in
[spf13/viper#1371

##### Enhancements 🚀

- Fix go-staticcheck failures (ST1005) by
[@&#8203;mjmaisey](https://togithub.com/mjmaisey) in
[spf13/viper#1373
- Use jsonc in markdown codeblocks for better readability by
[@&#8203;HurSungYun](https://togithub.com/HurSungYun) in
[spf13/viper#1393
- Add Go 1.19 support by
[@&#8203;sagikazarmark](https://togithub.com/sagikazarmark) in
[spf13/viper#1424
- Adds support for uint16 with `GetUint16` by
[@&#8203;oxisto](https://togithub.com/oxisto) in
[spf13/viper#1405
- Add a DebugTo convenience funtion by
[@&#8203;bcrochet](https://togithub.com/bcrochet) in
[spf13/viper#1414

##### Bug Fixes 🐛

- Recurse into arrays when converting keys to lowercase by
[@&#8203;awrichar](https://togithub.com/awrichar) in
[spf13/viper#1387

##### Dependency Updates ⬆️

- build(deps): bump github.com/stretchr/testify from 1.7.1 to 1.7.2 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1374
- build(deps): bump github.com/subosito/gotenv from 1.3.0 to 1.4.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1375
- build(deps): bump github.com/pelletier/go-toml/v2 from 2.0.1 to 2.0.2
by [@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1378
- build(deps): bump gopkg.in/yaml.v3 from 3.0.0 to 3.0.1 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1360
- build(deps): bump github.com/stretchr/testify from 1.7.2 to 1.7.3 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1381
- build(deps): bump github.com/stretchr/testify from 1.7.3 to 1.7.4 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1384
- build(deps): bump mheap/github-action-required-labels from 1 to 2 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1383
- build(deps): bump github.com/stretchr/testify from 1.7.4 to 1.8.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1395
- build(deps): bump github.com/subosito/gotenv from 1.4.0 to 1.4.1 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1420
- build(deps): bump github.com/pelletier/go-toml/v2 from 2.0.2 to 2.0.5
by [@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1422
- build(deps): bump gopkg.in/ini.v1 from 1.66.4 to 1.67.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1412

#### New Contributors

- [@&#8203;mjmaisey](https://togithub.com/mjmaisey) made their first
contribution in
[spf13/viper#1373
- [@&#8203;HurSungYun](https://togithub.com/HurSungYun) made their first
contribution in
[spf13/viper#1393
- [@&#8203;franklinkim](https://togithub.com/franklinkim) made their
first contribution in
[spf13/viper#1371
- [@&#8203;awrichar](https://togithub.com/awrichar) made their first
contribution in
[spf13/viper#1387
- [@&#8203;oxisto](https://togithub.com/oxisto) made their first
contribution in
[spf13/viper#1405
- [@&#8203;bcrochet](https://togithub.com/bcrochet) made their first
contribution in
[spf13/viper#1414

**Full Changelog**:
spf13/viper@v1.12.0...v1.13.0

### [`v1.12.0`](https://togithub.com/spf13/viper/releases/tag/v1.12.0)

[Compare
Source](https://togithub.com/spf13/viper/compare/v1.11.0...v1.12.0)

This release makes YAML v3 and TOML v2 the default versions used for
encoding.

You can switch back to the old versions by adding `viper_yaml2` and
`viper_toml1` to the build tags.

Please note that YAML v2 and TOML v1 are considered deprecated from this
release and may be removed in a future release.

Please provide feedback in discussions and report bugs on the issue
tracker. Thanks!

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

#### What's Changed

##### Exciting New Features 🎉

- Add etcd3 support to remote by
[@&#8203;sagikazarmark](https://togithub.com/sagikazarmark) in
[spf13/viper#1356
- Make YAML 3 the default by
[@&#8203;sagikazarmark](https://togithub.com/sagikazarmark) in
[spf13/viper#1357
- Make TOML 2 the default by
[@&#8203;sagikazarmark](https://togithub.com/sagikazarmark) in
[spf13/viper#1358

##### Enhancements 🚀

- chore: fix Error log calls in mergeMaps by
[@&#8203;wwade](https://togithub.com/wwade) in
[spf13/viper#1341
- Add MustBindEnv by
[@&#8203;meowfaceman](https://togithub.com/meowfaceman) in
[spf13/viper#1301

##### Dependency Updates ⬆️

- build(deps): bump github/codeql-action from 1 to 2 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1336
- build(deps): bump github.com/pelletier/go-toml/v2 from 2.0.0-beta.8 to
2.0.0 by [@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1339
- build(deps): bump github.com/mitchellh/mapstructure from 1.4.3 to
1.5.0 by [@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1332
- build(deps): bump github.com/pelletier/go-toml from 1.9.4 to 1.9.5 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1335
- build(deps): bump github.com/fsnotify/fsnotify from 1.5.1 to 1.5.4 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1338
- build(deps): bump github.com/spf13/cast from 1.4.1 to 1.5.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1344
- build(deps): bump github.com/pelletier/go-toml/v2 from 2.0.0 to 2.0.1
by [@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1343
- build(deps): bump github.com/subosito/gotenv from 1.2.0 to 1.3.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1349

#### New Contributors

- [@&#8203;meowfaceman](https://togithub.com/meowfaceman) made their
first contribution in
[spf13/viper#1301
- [@&#8203;wwade](https://togithub.com/wwade) made their first
contribution in
[spf13/viper#1341

**Full Changelog**:
spf13/viper@v1.11.0...v1.12.0

### [`v1.11.0`](https://togithub.com/spf13/viper/releases/tag/v1.11.0)

[Compare
Source](https://togithub.com/spf13/viper/compare/v1.10.1...v1.11.0)

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

#### What's Changed

##### Exciting New Features 🎉

- Experimental yaml v3 library support by
[@&#8203;sagikazarmark](https://togithub.com/sagikazarmark) in
[spf13/viper#1273
- Experimental toml v2 support by
[@&#8203;sagikazarmark](https://togithub.com/sagikazarmark) in
[spf13/viper#1274
- Experimental logger by
[@&#8203;sagikazarmark](https://togithub.com/sagikazarmark) in
[spf13/viper#1275

##### Enhancements 🚀

- Remove unnecessary operand by
[@&#8203;steviebps](https://togithub.com/steviebps) in
[spf13/viper#1213
- Improve encoding layer by
[@&#8203;sagikazarmark](https://togithub.com/sagikazarmark) in
[spf13/viper#1167
- Allow merging configs with different types of leaf values by
[@&#8203;illarion](https://togithub.com/illarion) in
[spf13/viper#1181

##### Bug Fixes 🐛

- Disable race detector on windows by
[@&#8203;sagikazarmark](https://togithub.com/sagikazarmark) in
[spf13/viper#1269

##### Breaking Changes 🛠

- Drop Go 1.14 support by
[@&#8203;sagikazarmark](https://togithub.com/sagikazarmark) in
[spf13/viper#1327

##### Dependency Updates ⬆️

- build(deps): bump github.com/spf13/afero from 1.6.0 to 1.7.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1265
- build(deps): bump github.com/spf13/afero from 1.7.0 to 1.7.1 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1271
- build(deps): bump github.com/spf13/afero from 1.7.1 to 1.8.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1281
- build(deps): bump gopkg.in/ini.v1 from 1.66.2 to 1.66.3 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1287
- build(deps): bump github.com/spf13/afero from 1.8.0 to 1.8.1 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1291
- build(deps): bump actions/github-script from 5 to 6 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1295
- build(deps): bump actions/checkout from 2 to 3 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1304
- build(deps): bump github.com/magiconair/properties from 1.8.5 to 1.8.6
by [@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1299
- build(deps): bump gopkg.in/ini.v1 from 1.66.3 to 1.66.4 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1293
- build(deps): bump github.com/spf13/afero from 1.8.1 to 1.8.2 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1311
- build(deps): bump actions/setup-go from 2 to 3 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1319
- build(deps): bump github.com/pelletier/go-toml/v2 from 2.0.0-beta.6 to
2.0.0-beta.7 by [@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1320
- build(deps): bump github.com/pelletier/go-toml/v2 from 2.0.0-beta.7 to
2.0.0-beta.8 by [@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1322
- Update crypt by
[@&#8203;sagikazarmark](https://togithub.com/sagikazarmark) in
[spf13/viper#1325

#### New Contributors

- [@&#8203;steviebps](https://togithub.com/steviebps) made their first
contribution in
[spf13/viper#1213
- [@&#8203;illarion](https://togithub.com/illarion) made their first
contribution in
[spf13/viper#1181

**Full Changelog**:
spf13/viper@v1.10.1...v1.11.0

### [`v1.10.1`](https://togithub.com/spf13/viper/releases/tag/v1.10.1)

[Compare
Source](https://togithub.com/spf13/viper/compare/v1.10.0...v1.10.1)

This is a maintenance release upgrading the Consul dependency fixing
CVEs.

### [`v1.10.0`](https://togithub.com/spf13/viper/releases/tag/v1.10.0)

[Compare
Source](https://togithub.com/spf13/viper/compare/v1.9.0...v1.10.0)

This is a maintenance release primarily containing minor fixes and
improvements.

#### Changes

##### Added

-   Experimental finder based on io/fs
-   Tests are executed on Windows
-   Tests are executed on Go 1.17
-   Logger interface to decouple Viper from JWW

***

In addition to the above changes, this release comes with minor
improvements, documentation changes an dependency updates.

**Many thanks to everyone who contributed to this release!**

### [`v1.9.0`](https://togithub.com/spf13/viper/releases/tag/v1.9.0)

[Compare
Source](https://togithub.com/spf13/viper/compare/v1.8.1...v1.9.0)

This is a maintenance release primarily containing minor fixes and
improvements.

#### Changes

##### Added

-   Experimental new encoding layer
-   Add support for `tfvars` files

##### Fixed

-   Writing hidden files with no extension
-   `InConfig` processing paths

***

In addition to the above changes, this release comes with tons of minor
improvements, documentation changes an dependency updates.

**Many thanks to everyone who contributed to this release!**

### [`v1.8.1`](https://togithub.com/spf13/viper/releases/tag/v1.8.1)

[Compare
Source](https://togithub.com/spf13/viper/compare/v1.8.0...v1.8.1)

This patch releases fixes two minor issues:

-   Replace `%s` with `%w` when wrapping errors
-   Fix `pflag.StringArray` processing

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about these
updates again.

---

- [ ] <!-- 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/PingCAP-QE/ee-apps).

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

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
nono added a commit to cozy/cozy-stack that referenced this pull request Dec 11, 2023
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [github.com/spf13/viper](https://togithub.com/spf13/viper) | require |
minor | `v1.16.0` -> `v1.18.1` |

---

### Release Notes

<details>
<summary>spf13/viper (github.com/spf13/viper)</summary>

### [`v1.18.1`](https://togithub.com/spf13/viper/releases/tag/v1.18.1)

[Compare
Source](https://togithub.com/spf13/viper/compare/v1.18.0...v1.18.1)

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

#### What's Changed

##### Bug Fixes 🐛

- Merge missing struct keys inside UnmarshalExact by
[@&#8203;krakowski](https://togithub.com/krakowski) in
[spf13/viper#1704

**Full Changelog**:
spf13/viper@v1.18.0...v1.18.1

### [`v1.18.0`](https://togithub.com/spf13/viper/releases/tag/v1.18.0)

[Compare
Source](https://togithub.com/spf13/viper/compare/v1.17.0...v1.18.0)

#### Major changes

Highlighting some of the changes for better visibility.

Please share your feedback in the Discussion forum. Thanks! ❤️

##### `AutomaticEnv` works with `Unmarshal`

Previously, environment variables that weren't bound manually or had no
defaults could not be mapped by `Unmarshal`. (The problem is explained
in details in this issue:
[#&#8203;761](https://togithub.com/spf13/viper/issues/761))

[#&#8203;1429](https://togithub.com/spf13/viper/issues/1429) introduced
a solution that solves that issue.

#### What's Changed

##### Enhancements 🚀

- chore: rename files according to enabled build tags by
[@&#8203;alexandear](https://togithub.com/alexandear) in
[spf13/viper#1642
- test: replace ifs with asserts to simplify tests by
[@&#8203;alexandear](https://togithub.com/alexandear) in
[spf13/viper#1656
- ci: enable test shuffle and fix tests by
[@&#8203;alexandear](https://togithub.com/alexandear) in
[spf13/viper#1643
- fix: gocritic lint issues by
[@&#8203;alexandear](https://togithub.com/alexandear) in
[spf13/viper#1696

##### Bug Fixes 🐛

- Implement viper.BindStruct for automatic unmarshalling from
environment variables by
[@&#8203;krakowski](https://togithub.com/krakowski) in
[spf13/viper#1429
- fix isPathShadowedInFlatMap type cast bug by
[@&#8203;linuxsong](https://togithub.com/linuxsong) in
[spf13/viper#1585

##### Dependency Updates ⬆️

- build(deps): bump github/codeql-action from 2.21.9 to 2.22.3 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1661
- build(deps): bump golang.org/x/net from 0.15.0 to 0.17.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1659
- build(deps): bump actions/checkout from 4.1.0 to 4.1.1 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1663
- build(deps): bump actions/github-script from 6.4.1 to 7.0.1 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1686
- build(deps): bump github/codeql-action from 2.22.3 to 2.22.8 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1688
- build(deps): bump github.com/spf13/afero from 1.10.0 to 1.11.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1692
- build(deps): bump actions/dependency-review-action from 3.1.0 to 3.1.4
by [@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1690
- build(deps): bump cachix/install-nix-action from 23 to 24 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1689
- build(deps): bump github.com/nats-io/nkeys from 0.4.5 to 0.4.6 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1672
- build(deps): bump github.com/spf13/cast from 1.5.1 to 1.6.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1691
- build(deps): bump github.com/fsnotify/fsnotify from 1.6.0 to 1.7.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1668
- chore: update dependencies by
[@&#8203;sagikazarmark](https://togithub.com/sagikazarmark) in
[spf13/viper#1694
- chore: update crypt by
[@&#8203;sagikazarmark](https://togithub.com/sagikazarmark) in
[spf13/viper#1701

##### Other Changes

- Add info about multiple hosts for remote config by
[@&#8203;KaymeKaydex](https://togithub.com/KaymeKaydex) in
[spf13/viper#1684
- refactor: drop fsonitfy wrapper by
[@&#8203;sagikazarmark](https://togithub.com/sagikazarmark) in
[spf13/viper#1693
- Note Get\* behavior on parse failure by
[@&#8203;scop](https://togithub.com/scop) in
[spf13/viper#1687
- fix: godot lint issues by
[@&#8203;alexandear](https://togithub.com/alexandear) in
[spf13/viper#1657

#### New Contributors

- [@&#8203;KaymeKaydex](https://togithub.com/KaymeKaydex) made their
first contribution in
[spf13/viper#1684
- [@&#8203;krakowski](https://togithub.com/krakowski) made their first
contribution in
[spf13/viper#1429
- [@&#8203;linuxsong](https://togithub.com/linuxsong) made their first
contribution in
[spf13/viper#1585

**Full Changelog**:
spf13/viper@v1.17.0...v1.18.0

### [`v1.17.0`](https://togithub.com/spf13/viper/releases/tag/v1.17.0)

[Compare
Source](https://togithub.com/spf13/viper/compare/v1.16.0...v1.17.0)

#### Major changes

Highlighting some of the changes for better visibility.

Please share your feedback in the Discussion forum. Thanks! ❤️

##### Minimum Go version: 1.19

Viper now requires Go 1.19

This change ensures we can stay up to date with modern practices and
dependencies.

##### `log/slog` support **\[BREAKING]**

Viper [v1.11.0](https://togithub.com/spf13/viper/releases/tag/v1.11.0)
added an experimental `Logger` interface to allow custom implementations
(besides
[jwalterweatherman](https://togithub.com/spf13/jwalterweatherman)).

In addition, it also exposed an experimental `WithLogger` function
allowing to set a custom logger.

This release deprecates that interface in favor of
[log/slog](https://pkg.go.dev/log/slog) released in Go 1.21.

> \[!WARNING]
> `WithLogger` accepts an
[\*slog.Logger](https://pkg.go.dev/log/slog#Logger) from now on.

To preserve backwards compatibility with older Go versions, prior to Go
1.21 Viper accepts a
[\*golang.org/x/exp/slog.Logger](https://pkg.go.dev/golang.org/x/exp/slog#Logger).

The experimental flag is removed.

##### New finder implementation **\[BREAKING]**

As of this release, Viper uses a new library to look for files, called
[locafero](https://togithub.com/sagikazarmark/locafero).

The new library is better covered by tests and has been built from
scratch as a general purpose file finder library.

The implementation is experimental and is hidden behind a `finder` build
tag.

> \[!WARNING]
> The `io/fs` based implementation (that used to be hidden behind a
`finder` build tag) has been removed.

#### What's Changed

##### Exciting New Features 🎉

- Add NATS support by [@&#8203;hooksie1](https://togithub.com/hooksie1)
in
[spf13/viper#1590
- Add slog support by
[@&#8203;sagikazarmark](https://togithub.com/sagikazarmark) in
[spf13/viper#1627

##### Enhancements 🚀

- chore: add local development environment using nix by
[@&#8203;sagikazarmark](https://togithub.com/sagikazarmark) in
[spf13/viper#1572
- feat: add func GetEnvPrefix by
[@&#8203;baruchiro](https://togithub.com/baruchiro) in
[spf13/viper#1565
- Improve dev env by
[@&#8203;sagikazarmark](https://togithub.com/sagikazarmark) in
[spf13/viper#1575
- fix: code optimization by
[@&#8203;testwill](https://togithub.com/testwill) in
[spf13/viper#1557
- test: remove not needed testutil.Setenv by
[@&#8203;alexandear](https://togithub.com/alexandear) in
[spf13/viper#1610
- new finder library based on afero by
[@&#8203;sagikazarmark](https://togithub.com/sagikazarmark) in
[spf13/viper#1625
- refactor: make use of `strings.Cut` by
[@&#8203;scop](https://togithub.com/scop) in
[spf13/viper#1650

##### Breaking Changes 🛠

- feat: drop support for Go 1.17 by
[@&#8203;sagikazarmark](https://togithub.com/sagikazarmark) in
[spf13/viper#1574

##### Dependency Updates ⬆️

- build(deps): bump mheap/github-action-required-labels from 4 to 5 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1563
- build(deps): bump github.com/stretchr/testify from 1.8.3 to 1.8.4 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1558
- build(deps): bump cachix/install-nix-action from 21 to 22 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1573
- build(deps): bump github.com/pelletier/go-toml/v2 from 2.0.8 to 2.0.9
by [@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1586
- chore: upgrade crypt by
[@&#8203;sagikazarmark](https://togithub.com/sagikazarmark) in
[spf13/viper#1589
- build(deps): bump actions/checkout from 3.5.3 to 4.0.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1616
- build(deps): bump github/codeql-action from 2.21.2 to 2.21.5 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1615
- build(deps): bump github.com/pelletier/go-toml/v2 from 2.0.9 to 2.1.0
by [@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1614
- build(deps): bump actions/dependency-review-action from 3.0.6 to 3.0.8
by [@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1605
- build(deps): bump golangci/golangci-lint-action from 3.6.0 to 3.7.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1604
- build(deps): bump actions/setup-go from 4.0.1 to 4.1.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1593
- build(deps): bump github.com/subosito/gotenv from 1.4.2 to 1.6.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1603
- build(deps): bump cachix/install-nix-action from 22 to 23 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1620
- chore(deps): update crypt by
[@&#8203;sagikazarmark](https://togithub.com/sagikazarmark) in
[spf13/viper#1621
- build(deps): bump actions/dependency-review-action from 3.0.8 to 3.1.0
by [@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1623
- Bump minimum Go version to 1.19 by
[@&#8203;sagikazarmark](https://togithub.com/sagikazarmark) in
[spf13/viper#1626
- build(deps): bump github/codeql-action from 2.21.5 to 2.21.6 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1632
- build(deps): bump github/codeql-action from 2.21.6 to 2.21.7 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1634
- build(deps): bump actions/checkout from 4.0.0 to 4.1.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1641
- build(deps): bump github.com/spf13/afero from 1.9.5 to 1.10.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1640
- build(deps): bump github/codeql-action from 2.21.7 to 2.21.8 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1638
- build(deps): bump github/codeql-action from 2.21.8 to 2.21.9 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1648
- chore(deps): update crypt by
[@&#8203;sagikazarmark](https://togithub.com/sagikazarmark) in
[spf13/viper#1652

##### Other Changes

- \[StepSecurity] ci: Harden GitHub Actions by
[@&#8203;step-security-bot](https://togithub.com/step-security-bot) in
[spf13/viper#1592
- Add Vitess to list of projects using Viper by
[@&#8203;systay](https://togithub.com/systay) in
[spf13/viper#1619
- docs: fix typos in comments by
[@&#8203;alexandear](https://togithub.com/alexandear) in
[spf13/viper#1609
- ci: add Go 1.21 to the test matrix by
[@&#8203;sagikazarmark](https://togithub.com/sagikazarmark) in
[spf13/viper#1622
- Remove usages of deprecated io/ioutil; simplify viper tests by
[@&#8203;alexandear](https://togithub.com/alexandear) in
[spf13/viper#1631
- chore: remove deprecated build tags by
[@&#8203;alexandear](https://togithub.com/alexandear) in
[spf13/viper#1630
- refactor: replace 'interface{}' with 'any' by
[@&#8203;alexandear](https://togithub.com/alexandear) in
[spf13/viper#1646
- test: refactor asserts by
[@&#8203;alexandear](https://togithub.com/alexandear) in
[spf13/viper#1644
- docs: add set subset KV example by
[@&#8203;yhliyr](https://togithub.com/yhliyr) in
[spf13/viper#1647
- Make deps fixes by [@&#8203;bersace](https://togithub.com/bersace) in
[spf13/viper#1628

#### New Contributors

- [@&#8203;goldeneggg](https://togithub.com/goldeneggg) made their first
contribution in
[spf13/viper#1561
- [@&#8203;baruchiro](https://togithub.com/baruchiro) made their first
contribution in
[spf13/viper#1565
- [@&#8203;testwill](https://togithub.com/testwill) made their first
contribution in
[spf13/viper#1557
- [@&#8203;step-security-bot](https://togithub.com/step-security-bot)
made their first contribution in
[spf13/viper#1592
- [@&#8203;systay](https://togithub.com/systay) made their first
contribution in
[spf13/viper#1619
- [@&#8203;alexandear](https://togithub.com/alexandear) made their first
contribution in
[spf13/viper#1609
- [@&#8203;hooksie1](https://togithub.com/hooksie1) made their first
contribution in
[spf13/viper#1590
- [@&#8203;yhliyr](https://togithub.com/yhliyr) made their first
contribution in
[spf13/viper#1647
- [@&#8203;bersace](https://togithub.com/bersace) made their first
contribution in
[spf13/viper#1628
- [@&#8203;scop](https://togithub.com/scop) made their first
contribution in
[spf13/viper#1650

**Full Changelog**:
spf13/viper@v1.16.0...v1.17.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "before 6am on Monday" in timezone
Europe/Paris, Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- 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/cozy/cozy-stack).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy44Ny4yIiwidXBkYXRlZEluVmVyIjoiMzcuODcuMiIsInRhcmdldEJyYW5jaCI6Im1hc3RlciJ9-->
github-merge-queue bot pushed a commit to infratographer/x that referenced this pull request Apr 2, 2024
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [github.com/spf13/viper](https://togithub.com/spf13/viper) | `v1.16.0`
-> `v1.18.2` |
[![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fspf13%2fviper/v1.18.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2fspf13%2fviper/v1.18.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2fspf13%2fviper/v1.16.0/v1.18.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fspf13%2fviper/v1.16.0/v1.18.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>spf13/viper (github.com/spf13/viper)</summary>

### [`v1.18.2`](https://togithub.com/spf13/viper/releases/tag/v1.18.2)

[Compare
Source](https://togithub.com/spf13/viper/compare/v1.18.1...v1.18.2)

**tl;dr Skip 1.18.0 and 1.18.1 and upgrade to this version instead.**

This release fixes a regression that appears in rare circumstances when
using `Unmarshal` or `UnmarshalExact` to decode values onto pointers
with multiple indirection (eg. pointer to a pointer, etc). The change
was introduced in 1.18.0 as a means to resolve a long-standing bug when
decoding environment variables to structs.

The feature is now disabled by default and can be enabled using the
`viper_bind_struct` build tag. It's also considered experimental at this
point, so breaking changes may be introduced in the future.

#### What's Changed

##### Bug Fixes 🐛

- feat!: hide struct binding behind a feature flag by
[@&#8203;sagikazarmark](https://togithub.com/sagikazarmark) in
[spf13/viper#1715

**Full Changelog**:
spf13/viper@v1.18.1...v1.18.2

### [`v1.18.1`](https://togithub.com/spf13/viper/releases/tag/v1.18.1)

[Compare
Source](https://togithub.com/spf13/viper/compare/v1.18.0...v1.18.1)

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

#### What's Changed

##### Bug Fixes 🐛

- Merge missing struct keys inside UnmarshalExact by
[@&#8203;krakowski](https://togithub.com/krakowski) in
[spf13/viper#1704

**Full Changelog**:
spf13/viper@v1.18.0...v1.18.1

### [`v1.18.0`](https://togithub.com/spf13/viper/releases/tag/v1.18.0)

[Compare
Source](https://togithub.com/spf13/viper/compare/v1.17.0...v1.18.0)

#### Major changes

Highlighting some of the changes for better visibility.

Please share your feedback in the Discussion forum. Thanks! ❤️

##### `AutomaticEnv` works with `Unmarshal`

Previously, environment variables that weren't bound manually or had no
defaults could not be mapped by `Unmarshal`. (The problem is explained
in details in this issue:
[#&#8203;761](https://togithub.com/spf13/viper/issues/761))

[#&#8203;1429](https://togithub.com/spf13/viper/issues/1429) introduced
a solution that solves that issue.

#### What's Changed

##### Enhancements 🚀

- chore: rename files according to enabled build tags by
[@&#8203;alexandear](https://togithub.com/alexandear) in
[spf13/viper#1642
- test: replace ifs with asserts to simplify tests by
[@&#8203;alexandear](https://togithub.com/alexandear) in
[spf13/viper#1656
- ci: enable test shuffle and fix tests by
[@&#8203;alexandear](https://togithub.com/alexandear) in
[spf13/viper#1643
- fix: gocritic lint issues by
[@&#8203;alexandear](https://togithub.com/alexandear) in
[spf13/viper#1696

##### Bug Fixes 🐛

- Implement viper.BindStruct for automatic unmarshalling from
environment variables by
[@&#8203;krakowski](https://togithub.com/krakowski) in
[spf13/viper#1429
- fix isPathShadowedInFlatMap type cast bug by
[@&#8203;linuxsong](https://togithub.com/linuxsong) in
[spf13/viper#1585

##### Dependency Updates ⬆️

- build(deps): bump github/codeql-action from 2.21.9 to 2.22.3 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1661
- build(deps): bump golang.org/x/net from 0.15.0 to 0.17.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1659
- build(deps): bump actions/checkout from 4.1.0 to 4.1.1 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1663
- build(deps): bump actions/github-script from 6.4.1 to 7.0.1 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1686
- build(deps): bump github/codeql-action from 2.22.3 to 2.22.8 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1688
- build(deps): bump github.com/spf13/afero from 1.10.0 to 1.11.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1692
- build(deps): bump actions/dependency-review-action from 3.1.0 to 3.1.4
by [@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1690
- build(deps): bump cachix/install-nix-action from 23 to 24 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1689
- build(deps): bump github.com/nats-io/nkeys from 0.4.5 to 0.4.6 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1672
- build(deps): bump github.com/spf13/cast from 1.5.1 to 1.6.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1691
- build(deps): bump github.com/fsnotify/fsnotify from 1.6.0 to 1.7.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1668
- chore: update dependencies by
[@&#8203;sagikazarmark](https://togithub.com/sagikazarmark) in
[spf13/viper#1694
- chore: update crypt by
[@&#8203;sagikazarmark](https://togithub.com/sagikazarmark) in
[spf13/viper#1701

##### Other Changes

- Add info about multiple hosts for remote config by
[@&#8203;KaymeKaydex](https://togithub.com/KaymeKaydex) in
[spf13/viper#1684
- refactor: drop fsonitfy wrapper by
[@&#8203;sagikazarmark](https://togithub.com/sagikazarmark) in
[spf13/viper#1693
- Note Get\* behavior on parse failure by
[@&#8203;scop](https://togithub.com/scop) in
[spf13/viper#1687
- fix: godot lint issues by
[@&#8203;alexandear](https://togithub.com/alexandear) in
[spf13/viper#1657

#### New Contributors

- [@&#8203;KaymeKaydex](https://togithub.com/KaymeKaydex) made their
first contribution in
[spf13/viper#1684
- [@&#8203;krakowski](https://togithub.com/krakowski) made their first
contribution in
[spf13/viper#1429
- [@&#8203;linuxsong](https://togithub.com/linuxsong) made their first
contribution in
[spf13/viper#1585

**Full Changelog**:
spf13/viper@v1.17.0...v1.18.0

### [`v1.17.0`](https://togithub.com/spf13/viper/releases/tag/v1.17.0)

[Compare
Source](https://togithub.com/spf13/viper/compare/v1.16.0...v1.17.0)

#### Major changes

Highlighting some of the changes for better visibility.

Please share your feedback in the Discussion forum. Thanks! ❤️

##### Minimum Go version: 1.19

Viper now requires Go 1.19

This change ensures we can stay up to date with modern practices and
dependencies.

##### `log/slog` support **\[BREAKING]**

Viper [v1.11.0](https://togithub.com/spf13/viper/releases/tag/v1.11.0)
added an experimental `Logger` interface to allow custom implementations
(besides
[jwalterweatherman](https://togithub.com/spf13/jwalterweatherman)).

In addition, it also exposed an experimental `WithLogger` function
allowing to set a custom logger.

This release deprecates that interface in favor of
[log/slog](https://pkg.go.dev/log/slog) released in Go 1.21.

> \[!WARNING]
> `WithLogger` accepts an
[\*slog.Logger](https://pkg.go.dev/log/slog#Logger) from now on.

To preserve backwards compatibility with older Go versions, prior to Go
1.21 Viper accepts a
[\*golang.org/x/exp/slog.Logger](https://pkg.go.dev/golang.org/x/exp/slog#Logger).

The experimental flag is removed.

##### New finder implementation **\[BREAKING]**

As of this release, Viper uses a new library to look for files, called
[locafero](https://togithub.com/sagikazarmark/locafero).

The new library is better covered by tests and has been built from
scratch as a general purpose file finder library.

The implementation is experimental and is hidden behind a `finder` build
tag.

> \[!WARNING]
> The `io/fs` based implementation (that used to be hidden behind a
`finder` build tag) has been removed.

#### What's Changed

##### Exciting New Features 🎉

- Add NATS support by [@&#8203;hooksie1](https://togithub.com/hooksie1)
in
[spf13/viper#1590
- Add slog support by
[@&#8203;sagikazarmark](https://togithub.com/sagikazarmark) in
[spf13/viper#1627

##### Enhancements 🚀

- chore: add local development environment using nix by
[@&#8203;sagikazarmark](https://togithub.com/sagikazarmark) in
[spf13/viper#1572
- feat: add func GetEnvPrefix by
[@&#8203;baruchiro](https://togithub.com/baruchiro) in
[spf13/viper#1565
- Improve dev env by
[@&#8203;sagikazarmark](https://togithub.com/sagikazarmark) in
[spf13/viper#1575
- fix: code optimization by
[@&#8203;testwill](https://togithub.com/testwill) in
[spf13/viper#1557
- test: remove not needed testutil.Setenv by
[@&#8203;alexandear](https://togithub.com/alexandear) in
[spf13/viper#1610
- new finder library based on afero by
[@&#8203;sagikazarmark](https://togithub.com/sagikazarmark) in
[spf13/viper#1625
- refactor: make use of `strings.Cut` by
[@&#8203;scop](https://togithub.com/scop) in
[spf13/viper#1650

##### Breaking Changes 🛠

- feat: drop support for Go 1.17 by
[@&#8203;sagikazarmark](https://togithub.com/sagikazarmark) in
[spf13/viper#1574

##### Dependency Updates ⬆️

- build(deps): bump mheap/github-action-required-labels from 4 to 5 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1563
- build(deps): bump github.com/stretchr/testify from 1.8.3 to 1.8.4 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1558
- build(deps): bump cachix/install-nix-action from 21 to 22 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1573
- build(deps): bump github.com/pelletier/go-toml/v2 from 2.0.8 to 2.0.9
by [@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1586
- chore: upgrade crypt by
[@&#8203;sagikazarmark](https://togithub.com/sagikazarmark) in
[spf13/viper#1589
- build(deps): bump actions/checkout from 3.5.3 to 4.0.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1616
- build(deps): bump github/codeql-action from 2.21.2 to 2.21.5 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1615
- build(deps): bump github.com/pelletier/go-toml/v2 from 2.0.9 to 2.1.0
by [@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1614
- build(deps): bump actions/dependency-review-action from 3.0.6 to 3.0.8
by [@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1605
- build(deps): bump golangci/golangci-lint-action from 3.6.0 to 3.7.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1604
- build(deps): bump actions/setup-go from 4.0.1 to 4.1.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1593
- build(deps): bump github.com/subosito/gotenv from 1.4.2 to 1.6.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1603
- build(deps): bump cachix/install-nix-action from 22 to 23 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1620
- chore(deps): update crypt by
[@&#8203;sagikazarmark](https://togithub.com/sagikazarmark) in
[spf13/viper#1621
- build(deps): bump actions/dependency-review-action from 3.0.8 to 3.1.0
by [@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1623
- Bump minimum Go version to 1.19 by
[@&#8203;sagikazarmark](https://togithub.com/sagikazarmark) in
[spf13/viper#1626
- build(deps): bump github/codeql-action from 2.21.5 to 2.21.6 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1632
- build(deps): bump github/codeql-action from 2.21.6 to 2.21.7 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1634
- build(deps): bump actions/checkout from 4.0.0 to 4.1.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1641
- build(deps): bump github.com/spf13/afero from 1.9.5 to 1.10.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1640
- build(deps): bump github/codeql-action from 2.21.7 to 2.21.8 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1638
- build(deps): bump github/codeql-action from 2.21.8 to 2.21.9 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[spf13/viper#1648
- chore(deps): update crypt by
[@&#8203;sagikazarmark](https://togithub.com/sagikazarmark) in
[spf13/viper#1652

##### Other Changes

- \[StepSecurity] ci: Harden GitHub Actions by
[@&#8203;step-security-bot](https://togithub.com/step-security-bot) in
[spf13/viper#1592
- Add Vitess to list of projects using Viper by
[@&#8203;systay](https://togithub.com/systay) in
[spf13/viper#1619
- docs: fix typos in comments by
[@&#8203;alexandear](https://togithub.com/alexandear) in
[spf13/viper#1609
- ci: add Go 1.21 to the test matrix by
[@&#8203;sagikazarmark](https://togithub.com/sagikazarmark) in
[spf13/viper#1622
- Remove usages of deprecated io/ioutil; simplify viper tests by
[@&#8203;alexandear](https://togithub.com/alexandear) in
[spf13/viper#1631
- chore: remove deprecated build tags by
[@&#8203;alexandear](https://togithub.com/alexandear) in
[spf13/viper#1630
- refactor: replace 'interface{}' with 'any' by
[@&#8203;alexandear](https://togithub.com/alexandear) in
[spf13/viper#1646
- test: refactor asserts by
[@&#8203;alexandear](https://togithub.com/alexandear) in
[spf13/viper#1644
- docs: add set subset KV example by
[@&#8203;yhliyr](https://togithub.com/yhliyr) in
[spf13/viper#1647
- Make deps fixes by [@&#8203;bersace](https://togithub.com/bersace) in
[spf13/viper#1628

#### New Contributors

- [@&#8203;goldeneggg](https://togithub.com/goldeneggg) made their first
contribution in
[spf13/viper#1561
- [@&#8203;baruchiro](https://togithub.com/baruchiro) made their first
contribution in
[spf13/viper#1565
- [@&#8203;testwill](https://togithub.com/testwill) made their first
contribution in
[spf13/viper#1557
- [@&#8203;step-security-bot](https://togithub.com/step-security-bot)
made their first contribution in
[spf13/viper#1592
- [@&#8203;systay](https://togithub.com/systay) made their first
contribution in
[spf13/viper#1619
- [@&#8203;alexandear](https://togithub.com/alexandear) made their first
contribution in
[spf13/viper#1609
- [@&#8203;hooksie1](https://togithub.com/hooksie1) made their first
contribution in
[spf13/viper#1590
- [@&#8203;yhliyr](https://togithub.com/yhliyr) made their first
contribution in
[spf13/viper#1647
- [@&#8203;bersace](https://togithub.com/bersace) made their first
contribution in
[spf13/viper#1628
- [@&#8203;scop](https://togithub.com/scop) made their first
contribution in
[spf13/viper#1650

**Full Changelog**:
spf13/viper@v1.16.0...v1.17.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- 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/infratographer/x).

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

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
kind/bug Something isn't working
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants