-
Notifications
You must be signed in to change notification settings - Fork 2k
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
fix isPathShadowedInFlatMap type cast bug #1585
Conversation
👋 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, https://twitter.com/sagikazarmark/status/1306904078967074816 Thank you! ❤️ |
@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. |
@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:
|
…ong/viper into bugfix/map-interface-cast
@sagikazarmark thank you for your review. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks!
[![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: [#​761](https://togithub.com/spf13/viper/issues/761)) [#​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 [@​alexandear](https://togithub.com/alexandear) in [https://github.com/spf13/viper/pull/1642](https://togithub.com/spf13/viper/pull/1642) - test: replace ifs with asserts to simplify tests by [@​alexandear](https://togithub.com/alexandear) in [https://github.com/spf13/viper/pull/1656](https://togithub.com/spf13/viper/pull/1656) - ci: enable test shuffle and fix tests by [@​alexandear](https://togithub.com/alexandear) in [https://github.com/spf13/viper/pull/1643](https://togithub.com/spf13/viper/pull/1643) - fix: gocritic lint issues by [@​alexandear](https://togithub.com/alexandear) in [https://github.com/spf13/viper/pull/1696](https://togithub.com/spf13/viper/pull/1696) ##### Bug Fixes 🐛 - Implement viper.BindStruct for automatic unmarshalling from environment variables by [@​krakowski](https://togithub.com/krakowski) in [https://github.com/spf13/viper/pull/1429](https://togithub.com/spf13/viper/pull/1429) - fix isPathShadowedInFlatMap type cast bug by [@​linuxsong](https://togithub.com/linuxsong) in [https://github.com/spf13/viper/pull/1585](https://togithub.com/spf13/viper/pull/1585) ##### Dependency Updates ⬆️ - build(deps): bump github/codeql-action from 2.21.9 to 2.22.3 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1661](https://togithub.com/spf13/viper/pull/1661) - build(deps): bump golang.org/x/net from 0.15.0 to 0.17.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1659](https://togithub.com/spf13/viper/pull/1659) - build(deps): bump actions/checkout from 4.1.0 to 4.1.1 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1663](https://togithub.com/spf13/viper/pull/1663) - build(deps): bump actions/github-script from 6.4.1 to 7.0.1 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1686](https://togithub.com/spf13/viper/pull/1686) - build(deps): bump github/codeql-action from 2.22.3 to 2.22.8 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1688](https://togithub.com/spf13/viper/pull/1688) - build(deps): bump github.com/spf13/afero from 1.10.0 to 1.11.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1692](https://togithub.com/spf13/viper/pull/1692) - build(deps): bump actions/dependency-review-action from 3.1.0 to 3.1.4 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1690](https://togithub.com/spf13/viper/pull/1690) - build(deps): bump cachix/install-nix-action from 23 to 24 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1689](https://togithub.com/spf13/viper/pull/1689) - build(deps): bump github.com/nats-io/nkeys from 0.4.5 to 0.4.6 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1672](https://togithub.com/spf13/viper/pull/1672) - build(deps): bump github.com/spf13/cast from 1.5.1 to 1.6.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1691](https://togithub.com/spf13/viper/pull/1691) - build(deps): bump github.com/fsnotify/fsnotify from 1.6.0 to 1.7.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1668](https://togithub.com/spf13/viper/pull/1668) - chore: update dependencies by [@​sagikazarmark](https://togithub.com/sagikazarmark) in [https://github.com/spf13/viper/pull/1694](https://togithub.com/spf13/viper/pull/1694) - chore: update crypt by [@​sagikazarmark](https://togithub.com/sagikazarmark) in [https://github.com/spf13/viper/pull/1701](https://togithub.com/spf13/viper/pull/1701) ##### Other Changes - Add info about multiple hosts for remote config by [@​KaymeKaydex](https://togithub.com/KaymeKaydex) in [https://github.com/spf13/viper/pull/1684](https://togithub.com/spf13/viper/pull/1684) - refactor: drop fsonitfy wrapper by [@​sagikazarmark](https://togithub.com/sagikazarmark) in [https://github.com/spf13/viper/pull/1693](https://togithub.com/spf13/viper/pull/1693) - Note Get\* behavior on parse failure by [@​scop](https://togithub.com/scop) in [https://github.com/spf13/viper/pull/1687](https://togithub.com/spf13/viper/pull/1687) - fix: godot lint issues by [@​alexandear](https://togithub.com/alexandear) in [https://github.com/spf13/viper/pull/1657](https://togithub.com/spf13/viper/pull/1657) #### New Contributors - [@​KaymeKaydex](https://togithub.com/KaymeKaydex) made their first contribution in [https://github.com/spf13/viper/pull/1684](https://togithub.com/spf13/viper/pull/1684) - [@​krakowski](https://togithub.com/krakowski) made their first contribution in [https://github.com/spf13/viper/pull/1429](https://togithub.com/spf13/viper/pull/1429) - [@​linuxsong](https://togithub.com/linuxsong) made their first contribution in [https://github.com/spf13/viper/pull/1585](https://togithub.com/spf13/viper/pull/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>
[![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: [#​761](https://togithub.com/spf13/viper/issues/761)) [#​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 [@​alexandear](https://togithub.com/alexandear) in [https://github.com/spf13/viper/pull/1642](https://togithub.com/spf13/viper/pull/1642) - test: replace ifs with asserts to simplify tests by [@​alexandear](https://togithub.com/alexandear) in [https://github.com/spf13/viper/pull/1656](https://togithub.com/spf13/viper/pull/1656) - ci: enable test shuffle and fix tests by [@​alexandear](https://togithub.com/alexandear) in [https://github.com/spf13/viper/pull/1643](https://togithub.com/spf13/viper/pull/1643) - fix: gocritic lint issues by [@​alexandear](https://togithub.com/alexandear) in [https://github.com/spf13/viper/pull/1696](https://togithub.com/spf13/viper/pull/1696) ##### Bug Fixes 🐛 - Implement viper.BindStruct for automatic unmarshalling from environment variables by [@​krakowski](https://togithub.com/krakowski) in [https://github.com/spf13/viper/pull/1429](https://togithub.com/spf13/viper/pull/1429) - fix isPathShadowedInFlatMap type cast bug by [@​linuxsong](https://togithub.com/linuxsong) in [https://github.com/spf13/viper/pull/1585](https://togithub.com/spf13/viper/pull/1585) ##### Dependency Updates ⬆️ - build(deps): bump github/codeql-action from 2.21.9 to 2.22.3 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1661](https://togithub.com/spf13/viper/pull/1661) - build(deps): bump golang.org/x/net from 0.15.0 to 0.17.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1659](https://togithub.com/spf13/viper/pull/1659) - build(deps): bump actions/checkout from 4.1.0 to 4.1.1 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1663](https://togithub.com/spf13/viper/pull/1663) - build(deps): bump actions/github-script from 6.4.1 to 7.0.1 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1686](https://togithub.com/spf13/viper/pull/1686) - build(deps): bump github/codeql-action from 2.22.3 to 2.22.8 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1688](https://togithub.com/spf13/viper/pull/1688) - build(deps): bump github.com/spf13/afero from 1.10.0 to 1.11.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1692](https://togithub.com/spf13/viper/pull/1692) - build(deps): bump actions/dependency-review-action from 3.1.0 to 3.1.4 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1690](https://togithub.com/spf13/viper/pull/1690) - build(deps): bump cachix/install-nix-action from 23 to 24 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1689](https://togithub.com/spf13/viper/pull/1689) - build(deps): bump github.com/nats-io/nkeys from 0.4.5 to 0.4.6 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1672](https://togithub.com/spf13/viper/pull/1672) - build(deps): bump github.com/spf13/cast from 1.5.1 to 1.6.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1691](https://togithub.com/spf13/viper/pull/1691) - build(deps): bump github.com/fsnotify/fsnotify from 1.6.0 to 1.7.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1668](https://togithub.com/spf13/viper/pull/1668) - chore: update dependencies by [@​sagikazarmark](https://togithub.com/sagikazarmark) in [https://github.com/spf13/viper/pull/1694](https://togithub.com/spf13/viper/pull/1694) - chore: update crypt by [@​sagikazarmark](https://togithub.com/sagikazarmark) in [https://github.com/spf13/viper/pull/1701](https://togithub.com/spf13/viper/pull/1701) ##### Other Changes - Add info about multiple hosts for remote config by [@​KaymeKaydex](https://togithub.com/KaymeKaydex) in [https://github.com/spf13/viper/pull/1684](https://togithub.com/spf13/viper/pull/1684) - refactor: drop fsonitfy wrapper by [@​sagikazarmark](https://togithub.com/sagikazarmark) in [https://github.com/spf13/viper/pull/1693](https://togithub.com/spf13/viper/pull/1693) - Note Get\* behavior on parse failure by [@​scop](https://togithub.com/scop) in [https://github.com/spf13/viper/pull/1687](https://togithub.com/spf13/viper/pull/1687) - fix: godot lint issues by [@​alexandear](https://togithub.com/alexandear) in [https://github.com/spf13/viper/pull/1657](https://togithub.com/spf13/viper/pull/1657) #### New Contributors - [@​KaymeKaydex](https://togithub.com/KaymeKaydex) made their first contribution in [https://github.com/spf13/viper/pull/1684](https://togithub.com/spf13/viper/pull/1684) - [@​krakowski](https://togithub.com/krakowski) made their first contribution in [https://github.com/spf13/viper/pull/1429](https://togithub.com/spf13/viper/pull/1429) - [@​linuxsong](https://togithub.com/linuxsong) made their first contribution in [https://github.com/spf13/viper/pull/1585](https://togithub.com/spf13/viper/pull/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>
[![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 [@​krakowski](https://togithub.com/krakowski) in [https://github.com/spf13/viper/pull/1704](https://togithub.com/spf13/viper/pull/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: [#​761](https://togithub.com/spf13/viper/issues/761)) [#​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 [@​alexandear](https://togithub.com/alexandear) in [https://github.com/spf13/viper/pull/1642](https://togithub.com/spf13/viper/pull/1642) - test: replace ifs with asserts to simplify tests by [@​alexandear](https://togithub.com/alexandear) in [https://github.com/spf13/viper/pull/1656](https://togithub.com/spf13/viper/pull/1656) - ci: enable test shuffle and fix tests by [@​alexandear](https://togithub.com/alexandear) in [https://github.com/spf13/viper/pull/1643](https://togithub.com/spf13/viper/pull/1643) - fix: gocritic lint issues by [@​alexandear](https://togithub.com/alexandear) in [https://github.com/spf13/viper/pull/1696](https://togithub.com/spf13/viper/pull/1696) ##### Bug Fixes 🐛 - Implement viper.BindStruct for automatic unmarshalling from environment variables by [@​krakowski](https://togithub.com/krakowski) in [https://github.com/spf13/viper/pull/1429](https://togithub.com/spf13/viper/pull/1429) - fix isPathShadowedInFlatMap type cast bug by [@​linuxsong](https://togithub.com/linuxsong) in [https://github.com/spf13/viper/pull/1585](https://togithub.com/spf13/viper/pull/1585) ##### Dependency Updates ⬆️ - build(deps): bump github/codeql-action from 2.21.9 to 2.22.3 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1661](https://togithub.com/spf13/viper/pull/1661) - build(deps): bump golang.org/x/net from 0.15.0 to 0.17.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1659](https://togithub.com/spf13/viper/pull/1659) - build(deps): bump actions/checkout from 4.1.0 to 4.1.1 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1663](https://togithub.com/spf13/viper/pull/1663) - build(deps): bump actions/github-script from 6.4.1 to 7.0.1 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1686](https://togithub.com/spf13/viper/pull/1686) - build(deps): bump github/codeql-action from 2.22.3 to 2.22.8 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1688](https://togithub.com/spf13/viper/pull/1688) - build(deps): bump github.com/spf13/afero from 1.10.0 to 1.11.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1692](https://togithub.com/spf13/viper/pull/1692) - build(deps): bump actions/dependency-review-action from 3.1.0 to 3.1.4 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1690](https://togithub.com/spf13/viper/pull/1690) - build(deps): bump cachix/install-nix-action from 23 to 24 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1689](https://togithub.com/spf13/viper/pull/1689) - build(deps): bump github.com/nats-io/nkeys from 0.4.5 to 0.4.6 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1672](https://togithub.com/spf13/viper/pull/1672) - build(deps): bump github.com/spf13/cast from 1.5.1 to 1.6.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1691](https://togithub.com/spf13/viper/pull/1691) - build(deps): bump github.com/fsnotify/fsnotify from 1.6.0 to 1.7.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1668](https://togithub.com/spf13/viper/pull/1668) - chore: update dependencies by [@​sagikazarmark](https://togithub.com/sagikazarmark) in [https://github.com/spf13/viper/pull/1694](https://togithub.com/spf13/viper/pull/1694) - chore: update crypt by [@​sagikazarmark](https://togithub.com/sagikazarmark) in [https://github.com/spf13/viper/pull/1701](https://togithub.com/spf13/viper/pull/1701) ##### Other Changes - Add info about multiple hosts for remote config by [@​KaymeKaydex](https://togithub.com/KaymeKaydex) in [https://github.com/spf13/viper/pull/1684](https://togithub.com/spf13/viper/pull/1684) - refactor: drop fsonitfy wrapper by [@​sagikazarmark](https://togithub.com/sagikazarmark) in [https://github.com/spf13/viper/pull/1693](https://togithub.com/spf13/viper/pull/1693) - Note Get\* behavior on parse failure by [@​scop](https://togithub.com/scop) in [https://github.com/spf13/viper/pull/1687](https://togithub.com/spf13/viper/pull/1687) - fix: godot lint issues by [@​alexandear](https://togithub.com/alexandear) in [https://github.com/spf13/viper/pull/1657](https://togithub.com/spf13/viper/pull/1657) #### New Contributors - [@​KaymeKaydex](https://togithub.com/KaymeKaydex) made their first contribution in [https://github.com/spf13/viper/pull/1684](https://togithub.com/spf13/viper/pull/1684) - [@​krakowski](https://togithub.com/krakowski) made their first contribution in [https://github.com/spf13/viper/pull/1429](https://togithub.com/spf13/viper/pull/1429) - [@​linuxsong](https://togithub.com/linuxsong) made their first contribution in [https://github.com/spf13/viper/pull/1585](https://togithub.com/spf13/viper/pull/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 [@​hooksie1](https://togithub.com/hooksie1) in [https://github.com/spf13/viper/pull/1590](https://togithub.com/spf13/viper/pull/1590) - Add slog support by [@​sagikazarmark](https://togithub.com/sagikazarmark) in [https://github.com/spf13/viper/pull/1627](https://togithub.com/spf13/viper/pull/1627) ##### Enhancements 🚀 - chore: add local development environment using nix by [@​sagikazarmark](https://togithub.com/sagikazarmark) in [https://github.com/spf13/viper/pull/1572](https://togithub.com/spf13/viper/pull/1572) - feat: add func GetEnvPrefix by [@​baruchiro](https://togithub.com/baruchiro) in [https://github.com/spf13/viper/pull/1565](https://togithub.com/spf13/viper/pull/1565) - Improve dev env by [@​sagikazarmark](https://togithub.com/sagikazarmark) in [https://github.com/spf13/viper/pull/1575](https://togithub.com/spf13/viper/pull/1575) - fix: code optimization by [@​testwill](https://togithub.com/testwill) in [https://github.com/spf13/viper/pull/1557](https://togithub.com/spf13/viper/pull/1557) - test: remove not needed testutil.Setenv by [@​alexandear](https://togithub.com/alexandear) in [https://github.com/spf13/viper/pull/1610](https://togithub.com/spf13/viper/pull/1610) - new finder library based on afero by [@​sagikazarmark](https://togithub.com/sagikazarmark) in [https://github.com/spf13/viper/pull/1625](https://togithub.com/spf13/viper/pull/1625) - refactor: make use of `strings.Cut` by [@​scop](https://togithub.com/scop) in [https://github.com/spf13/viper/pull/1650](https://togithub.com/spf13/viper/pull/1650) ##### Breaking Changes 🛠 - feat: drop support for Go 1.17 by [@​sagikazarmark](https://togithub.com/sagikazarmark) in [https://github.com/spf13/viper/pull/1574](https://togithub.com/spf13/viper/pull/1574) ##### Dependency Updates ⬆️ - build(deps): bump mheap/github-action-required-labels from 4 to 5 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1563](https://togithub.com/spf13/viper/pull/1563) - build(deps): bump github.com/stretchr/testify from 1.8.3 to 1.8.4 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1558](https://togithub.com/spf13/viper/pull/1558) - build(deps): bump cachix/install-nix-action from 21 to 22 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1573](https://togithub.com/spf13/viper/pull/1573) - build(deps): bump github.com/pelletier/go-toml/v2 from 2.0.8 to 2.0.9 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1586](https://togithub.com/spf13/viper/pull/1586) - chore: upgrade crypt by [@​sagikazarmark](https://togithub.com/sagikazarmark) in [https://github.com/spf13/viper/pull/1589](https://togithub.com/spf13/viper/pull/1589) - build(deps): bump actions/checkout from 3.5.3 to 4.0.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1616](https://togithub.com/spf13/viper/pull/1616) - build(deps): bump github/codeql-action from 2.21.2 to 2.21.5 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1615](https://togithub.com/spf13/viper/pull/1615) - build(deps): bump github.com/pelletier/go-toml/v2 from 2.0.9 to 2.1.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1614](https://togithub.com/spf13/viper/pull/1614) - build(deps): bump actions/dependency-review-action from 3.0.6 to 3.0.8 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1605](https://togithub.com/spf13/viper/pull/1605) - build(deps): bump golangci/golangci-lint-action from 3.6.0 to 3.7.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1604](https://togithub.com/spf13/viper/pull/1604) - build(deps): bump actions/setup-go from 4.0.1 to 4.1.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1593](https://togithub.com/spf13/viper/pull/1593) - build(deps): bump github.com/subosito/gotenv from 1.4.2 to 1.6.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1603](https://togithub.com/spf13/viper/pull/1603) - build(deps): bump cachix/install-nix-action from 22 to 23 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1620](https://togithub.com/spf13/viper/pull/1620) - chore(deps): update crypt by [@​sagikazarmark](https://togithub.com/sagikazarmark) in [https://github.com/spf13/viper/pull/1621](https://togithub.com/spf13/viper/pull/1621) - build(deps): bump actions/dependency-review-action from 3.0.8 to 3.1.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1623](https://togithub.com/spf13/viper/pull/1623) - Bump minimum Go version to 1.19 by [@​sagikazarmark](https://togithub.com/sagikazarmark) in [https://github.com/spf13/viper/pull/1626](https://togithub.com/spf13/viper/pull/1626) - build(deps): bump github/codeql-action from 2.21.5 to 2.21.6 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1632](https://togithub.com/spf13/viper/pull/1632) - build(deps): bump github/codeql-action from 2.21.6 to 2.21.7 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1634](https://togithub.com/spf13/viper/pull/1634) - build(deps): bump actions/checkout from 4.0.0 to 4.1.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1641](https://togithub.com/spf13/viper/pull/1641) - build(deps): bump github.com/spf13/afero from 1.9.5 to 1.10.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1640](https://togithub.com/spf13/viper/pull/1640) - build(deps): bump github/codeql-action from 2.21.7 to 2.21.8 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1638](https://togithub.com/spf13/viper/pull/1638) - build(deps): bump github/codeql-action from 2.21.8 to 2.21.9 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1648](https://togithub.com/spf13/viper/pull/1648) - chore(deps): update crypt by [@​sagikazarmark](https://togithub.com/sagikazarmark) in [https://github.com/spf13/viper/pull/1652](https://togithub.com/spf13/viper/pull/1652) ##### Other Changes - \[StepSecurity] ci: Harden GitHub Actions by [@​step-security-bot](https://togithub.com/step-security-bot) in [https://github.com/spf13/viper/pull/1592](https://togithub.com/spf13/viper/pull/1592) - Add Vitess to list of projects using Viper by [@​systay](https://togithub.com/systay) in [https://github.com/spf13/viper/pull/1619](https://togithub.com/spf13/viper/pull/1619) - docs: fix typos in comments by [@​alexandear](https://togithub.com/alexandear) in [https://github.com/spf13/viper/pull/1609](https://togithub.com/spf13/viper/pull/1609) - ci: add Go 1.21 to the test matrix by [@​sagikazarmark](https://togithub.com/sagikazarmark) in [https://github.com/spf13/viper/pull/1622](https://togithub.com/spf13/viper/pull/1622) - Remove usages of deprecated io/ioutil; simplify viper tests by [@​alexandear](https://togithub.com/alexandear) in [https://github.com/spf13/viper/pull/1631](https://togithub.com/spf13/viper/pull/1631) - chore: remove deprecated build tags by [@​alexandear](https://togithub.com/alexandear) in [https://github.com/spf13/viper/pull/1630](https://togithub.com/spf13/viper/pull/1630) - refactor: replace 'interface{}' with 'any' by [@​alexandear](https://togithub.com/alexandear) in [https://github.com/spf13/viper/pull/1646](https://togithub.com/spf13/viper/pull/1646) - test: refactor asserts by [@​alexandear](https://togithub.com/alexandear) in [https://github.com/spf13/viper/pull/1644](https://togithub.com/spf13/viper/pull/1644) - docs: add set subset KV example by [@​yhliyr](https://togithub.com/yhliyr) in [https://github.com/spf13/viper/pull/1647](https://togithub.com/spf13/viper/pull/1647) - Make deps fixes by [@​bersace](https://togithub.com/bersace) in [https://github.com/spf13/viper/pull/1628](https://togithub.com/spf13/viper/pull/1628) #### New Contributors - [@​goldeneggg](https://togithub.com/goldeneggg) made their first contribution in [https://github.com/spf13/viper/pull/1561](https://togithub.com/spf13/viper/pull/1561) - [@​baruchiro](https://togithub.com/baruchiro) made their first contribution in [https://github.com/spf13/viper/pull/1565](https://togithub.com/spf13/viper/pull/1565) - [@​testwill](https://togithub.com/testwill) made their first contribution in [https://github.com/spf13/viper/pull/1557](https://togithub.com/spf13/viper/pull/1557) - [@​step-security-bot](https://togithub.com/step-security-bot) made their first contribution in [https://github.com/spf13/viper/pull/1592](https://togithub.com/spf13/viper/pull/1592) - [@​systay](https://togithub.com/systay) made their first contribution in [https://github.com/spf13/viper/pull/1619](https://togithub.com/spf13/viper/pull/1619) - [@​alexandear](https://togithub.com/alexandear) made their first contribution in [https://github.com/spf13/viper/pull/1609](https://togithub.com/spf13/viper/pull/1609) - [@​hooksie1](https://togithub.com/hooksie1) made their first contribution in [https://github.com/spf13/viper/pull/1590](https://togithub.com/spf13/viper/pull/1590) - [@​yhliyr](https://togithub.com/yhliyr) made their first contribution in [https://github.com/spf13/viper/pull/1647](https://togithub.com/spf13/viper/pull/1647) - [@​bersace](https://togithub.com/bersace) made their first contribution in [https://github.com/spf13/viper/pull/1628](https://togithub.com/spf13/viper/pull/1628) - [@​scop](https://togithub.com/scop) made their first contribution in [https://github.com/spf13/viper/pull/1650](https://togithub.com/spf13/viper/pull/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 [@​TaylorOno](https://togithub.com/TaylorOno) in [https://github.com/spf13/viper/pull/1056](https://togithub.com/spf13/viper/pull/1056) - fix: fix typo by [@​yquansah](https://togithub.com/yquansah) in [https://github.com/spf13/viper/pull/1523](https://togithub.com/spf13/viper/pull/1523) - ci: add Go 1.20 to build matrix by [@​sagikazarmark](https://togithub.com/sagikazarmark) in [https://github.com/spf13/viper/pull/1506](https://togithub.com/spf13/viper/pull/1506) - extend v.find() to handle stringToInt value types with stringToInt pflag [#​1435](https://togithub.com/spf13/viper/issues/1435) by [@​vorishirne](https://togithub.com/vorishirne) in [https://github.com/spf13/viper/pull/1462](https://togithub.com/spf13/viper/pull/1462) - add:viper: allow to disable internal log messages by [@​burgesQ](https://togithub.com/burgesQ) in [https://github.com/spf13/viper/pull/1483](https://togithub.com/spf13/viper/pull/1483) - Allow ConfigParseError to unwrap by [@​andig](https://togithub.com/andig) in [https://github.com/spf13/viper/pull/1433](https://togithub.com/spf13/viper/pull/1433) ##### Bug Fixes 🐛 - fix: time.Duration slice type conversion by [@​UrbanskiDawid](https://togithub.com/UrbanskiDawid) in [https://github.com/spf13/viper/pull/1498](https://togithub.com/spf13/viper/pull/1498) ##### Dependency Updates ⬆️ - build(deps): bump mheap/github-action-required-labels from 3 to 4 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1533](https://togithub.com/spf13/viper/pull/1533) - build(deps): bump actions/setup-go from 3 to 4 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1526](https://togithub.com/spf13/viper/pull/1526) - build(deps): bump golang.org/x/net from 0.4.0 to 0.7.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1519](https://togithub.com/spf13/viper/pull/1519) - build(deps): bump github.com/pelletier/go-toml/v2 from 2.0.6 to 2.0.7 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1516](https://togithub.com/spf13/viper/pull/1516) - build(deps): bump github.com/stretchr/testify from 1.8.1 to 1.8.2 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1515](https://togithub.com/spf13/viper/pull/1515) - build(deps): bump github.com/spf13/afero from 1.9.3 to 1.9.5 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1518](https://togithub.com/spf13/viper/pull/1518) - build(deps): bump github.com/sagikazarmark/crypt from 0.9.0 to 0.10.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1550](https://togithub.com/spf13/viper/pull/1550) - build(deps): bump github.com/spf13/cast from 1.5.0 to 1.5.1 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1551](https://togithub.com/spf13/viper/pull/1551) - build(deps): bump github.com/stretchr/testify from 1.8.2 to 1.8.3 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1553](https://togithub.com/spf13/viper/pull/1553) - build(deps): bump github.com/pelletier/go-toml/v2 from 2.0.7 to 2.0.8 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1555](https://togithub.com/spf13/viper/pull/1555) ##### Other Changes - Update main image to better handle dark background by [@​Deleplace](https://togithub.com/Deleplace) in [https://github.com/spf13/viper/pull/1532](https://togithub.com/spf13/viper/pull/1532) #### New Contributors - [@​UrbanskiDawid](https://togithub.com/UrbanskiDawid) made their first contribution in [https://github.com/spf13/viper/pull/1498](https://togithub.com/spf13/viper/pull/1498) - [@​TaylorOno](https://togithub.com/TaylorOno) made their first contribution in [https://github.com/spf13/viper/pull/1056](https://togithub.com/spf13/viper/pull/1056) - [@​yquansah](https://togithub.com/yquansah) made their first contribution in [https://github.com/spf13/viper/pull/1523](https://togithub.com/spf13/viper/pull/1523) - [@​Azanul](https://togithub.com/Azanul) made their first contribution in [https://github.com/spf13/viper/pull/1544](https://togithub.com/spf13/viper/pull/1544) - [@​Deleplace](https://togithub.com/Deleplace) made their first contribution in [https://github.com/spf13/viper/pull/1532](https://togithub.com/spf13/viper/pull/1532) - [@​cfabianski](https://togithub.com/cfabianski) made their first contribution in [https://github.com/spf13/viper/pull/1552](https://togithub.com/spf13/viper/pull/1552) - [@​vorishirne](https://togithub.com/vorishirne) made their first contribution in [https://github.com/spf13/viper/pull/1462](https://togithub.com/spf13/viper/pull/1462) - [@​burgesQ](https://togithub.com/burgesQ) made their first contribution in [https://github.com/spf13/viper/pull/1483](https://togithub.com/spf13/viper/pull/1483) - [@​andig](https://togithub.com/andig) made their first contribution in [https://github.com/spf13/viper/pull/1433](https://togithub.com/spf13/viper/pull/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 [@​mozartz](https://togithub.com/mozartz) in [https://github.com/spf13/viper/pull/1464](https://togithub.com/spf13/viper/pull/1464) ##### Enhancements 🚀 - Add DocBlock to WatchConfig by [@​glebik000](https://togithub.com/glebik000) in [https://github.com/spf13/viper/pull/1467](https://togithub.com/spf13/viper/pull/1467) ##### Breaking Changes 🛠 - Drop YAML v2 and TOML v1 by [@​sagikazarmark](https://togithub.com/sagikazarmark) in [https://github.com/spf13/viper/pull/1493](https://togithub.com/spf13/viper/pull/1493) - Drop support for Go 1.16 by [@​sagikazarmark](https://togithub.com/sagikazarmark) in [https://github.com/spf13/viper/pull/1494](https://togithub.com/spf13/viper/pull/1494) ##### Dependency Updates ⬆️ - build(deps): bump github.com/spf13/afero from 1.9.2 to 1.9.3 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1465](https://togithub.com/spf13/viper/pull/1465) - build(deps): bump github.com/magiconair/properties from 1.8.6 to 1.8.7 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1475](https://togithub.com/spf13/viper/pull/1475) - build(deps): bump github.com/pelletier/go-toml/v2 from 2.0.5 to 2.0.6 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1466](https://togithub.com/spf13/viper/pull/1466) - build(deps): bump mheap/github-action-required-labels from 2 to 3 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1482](https://togithub.com/spf13/viper/pull/1482) - build(deps): bump github.com/subosito/gotenv from 1.4.1 to 1.4.2 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1488](https://togithub.com/spf13/viper/pull/1488) - build(deps): bump github.com/sagikazarmark/crypt from 0.8.0 to 0.9.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1490](https://togithub.com/spf13/viper/pull/1490) #### New Contributors - [@​choar816](https://togithub.com/choar816) made their first contribution in [https://github.com/spf13/viper/pull/1481](https://togithub.com/spf13/viper/pull/1481) - [@​lol768](https://togithub.com/lol768) made their first contribution in [https://github.com/spf13/viper/pull/1485](https://togithub.com/spf13/viper/pull/1485) - [@​mozartz](https://togithub.com/mozartz) made their first contribution in [https://github.com/spf13/viper/pull/1464](https://togithub.com/spf13/viper/pull/1464) - [@​glebik000](https://togithub.com/glebik000) made their first contribution in [https://github.com/spf13/viper/pull/1467](https://togithub.com/spf13/viper/pull/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 [@​sagikazarmark](https://togithub.com/sagikazarmark) in [https://github.com/spf13/viper/pull/1457](https://togithub.com/spf13/viper/pull/1457) - Fsnotify improvements by [@​sagikazarmark](https://togithub.com/sagikazarmark) in [https://github.com/spf13/viper/pull/1458](https://togithub.com/spf13/viper/pull/1458) - Disable watch on appengine by [@​sagikazarmark](https://togithub.com/sagikazarmark) in [https://github.com/spf13/viper/pull/1460](https://togithub.com/spf13/viper/pull/1460) ##### Breaking Changes 🛠 - Drop support for Go 1.15 by [@​sagikazarmark](https://togithub.com/sagikazarmark) in [https://github.com/spf13/viper/pull/1428](https://togithub.com/spf13/viper/pull/1428) ##### Dependency Updates ⬆️ - build(deps): bump github.com/spf13/afero from 1.8.2 to 1.9.2 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1406](https://togithub.com/spf13/viper/pull/1406) - build(deps): bump github.com/sagikazarmark/crypt from 0.6.0 to 0.7.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1437](https://togithub.com/spf13/viper/pull/1437) - build(deps): bump github.com/stretchr/testify from 1.8.0 to 1.8.1 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1453](https://togithub.com/spf13/viper/pull/1453) - build(deps): bump github.com/fsnotify/fsnotify from 1.5.4 to 1.6.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1449](https://togithub.com/spf13/viper/pull/1449) - chore: update crypt by [@​sagikazarmark](https://togithub.com/sagikazarmark) in [https://github.com/spf13/viper/pull/1461](https://togithub.com/spf13/viper/pull/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 [@​franklinkim](https://togithub.com/franklinkim) in [https://github.com/spf13/viper/pull/1371](https://togithub.com/spf13/viper/pull/1371) ##### Enhancements 🚀 - Fix go-staticcheck failures (ST1005) by [@​mjmaisey](https://togithub.com/mjmaisey) in [https://github.com/spf13/viper/pull/1373](https://togithub.com/spf13/viper/pull/1373) - Use jsonc in markdown codeblocks for better readability by [@​HurSungYun](https://togithub.com/HurSungYun) in [https://github.com/spf13/viper/pull/1393](https://togithub.com/spf13/viper/pull/1393) - Add Go 1.19 support by [@​sagikazarmark](https://togithub.com/sagikazarmark) in [https://github.com/spf13/viper/pull/1424](https://togithub.com/spf13/viper/pull/1424) - Adds support for uint16 with `GetUint16` by [@​oxisto](https://togithub.com/oxisto) in [https://github.com/spf13/viper/pull/1405](https://togithub.com/spf13/viper/pull/1405) - Add a DebugTo convenience funtion by [@​bcrochet](https://togithub.com/bcrochet) in [https://github.com/spf13/viper/pull/1414](https://togithub.com/spf13/viper/pull/1414) ##### Bug Fixes 🐛 - Recurse into arrays when converting keys to lowercase by [@​awrichar](https://togithub.com/awrichar) in [https://github.com/spf13/viper/pull/1387](https://togithub.com/spf13/viper/pull/1387) ##### Dependency Updates ⬆️ - build(deps): bump github.com/stretchr/testify from 1.7.1 to 1.7.2 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1374](https://togithub.com/spf13/viper/pull/1374) - build(deps): bump github.com/subosito/gotenv from 1.3.0 to 1.4.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1375](https://togithub.com/spf13/viper/pull/1375) - build(deps): bump github.com/pelletier/go-toml/v2 from 2.0.1 to 2.0.2 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1378](https://togithub.com/spf13/viper/pull/1378) - build(deps): bump gopkg.in/yaml.v3 from 3.0.0 to 3.0.1 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1360](https://togithub.com/spf13/viper/pull/1360) - build(deps): bump github.com/stretchr/testify from 1.7.2 to 1.7.3 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1381](https://togithub.com/spf13/viper/pull/1381) - build(deps): bump github.com/stretchr/testify from 1.7.3 to 1.7.4 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1384](https://togithub.com/spf13/viper/pull/1384) - build(deps): bump mheap/github-action-required-labels from 1 to 2 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1383](https://togithub.com/spf13/viper/pull/1383) - build(deps): bump github.com/stretchr/testify from 1.7.4 to 1.8.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1395](https://togithub.com/spf13/viper/pull/1395) - build(deps): bump github.com/subosito/gotenv from 1.4.0 to 1.4.1 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1420](https://togithub.com/spf13/viper/pull/1420) - build(deps): bump github.com/pelletier/go-toml/v2 from 2.0.2 to 2.0.5 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1422](https://togithub.com/spf13/viper/pull/1422) - build(deps): bump gopkg.in/ini.v1 from 1.66.4 to 1.67.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1412](https://togithub.com/spf13/viper/pull/1412) #### New Contributors - [@​mjmaisey](https://togithub.com/mjmaisey) made their first contribution in [https://github.com/spf13/viper/pull/1373](https://togithub.com/spf13/viper/pull/1373) - [@​HurSungYun](https://togithub.com/HurSungYun) made their first contribution in [https://github.com/spf13/viper/pull/1393](https://togithub.com/spf13/viper/pull/1393) - [@​franklinkim](https://togithub.com/franklinkim) made their first contribution in [https://github.com/spf13/viper/pull/1371](https://togithub.com/spf13/viper/pull/1371) - [@​awrichar](https://togithub.com/awrichar) made their first contribution in [https://github.com/spf13/viper/pull/1387](https://togithub.com/spf13/viper/pull/1387) - [@​oxisto](https://togithub.com/oxisto) made their first contribution in [https://github.com/spf13/viper/pull/1405](https://togithub.com/spf13/viper/pull/1405) - [@​bcrochet](https://togithub.com/bcrochet) made their first contribution in [https://github.com/spf13/viper/pull/1414](https://togithub.com/spf13/viper/pull/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 [@​sagikazarmark](https://togithub.com/sagikazarmark) in [https://github.com/spf13/viper/pull/1356](https://togithub.com/spf13/viper/pull/1356) - Make YAML 3 the default by [@​sagikazarmark](https://togithub.com/sagikazarmark) in [https://github.com/spf13/viper/pull/1357](https://togithub.com/spf13/viper/pull/1357) - Make TOML 2 the default by [@​sagikazarmark](https://togithub.com/sagikazarmark) in [https://github.com/spf13/viper/pull/1358](https://togithub.com/spf13/viper/pull/1358) ##### Enhancements 🚀 - chore: fix Error log calls in mergeMaps by [@​wwade](https://togithub.com/wwade) in [https://github.com/spf13/viper/pull/1341](https://togithub.com/spf13/viper/pull/1341) - Add MustBindEnv by [@​meowfaceman](https://togithub.com/meowfaceman) in [https://github.com/spf13/viper/pull/1301](https://togithub.com/spf13/viper/pull/1301) ##### Dependency Updates ⬆️ - build(deps): bump github/codeql-action from 1 to 2 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1336](https://togithub.com/spf13/viper/pull/1336) - build(deps): bump github.com/pelletier/go-toml/v2 from 2.0.0-beta.8 to 2.0.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1339](https://togithub.com/spf13/viper/pull/1339) - build(deps): bump github.com/mitchellh/mapstructure from 1.4.3 to 1.5.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1332](https://togithub.com/spf13/viper/pull/1332) - build(deps): bump github.com/pelletier/go-toml from 1.9.4 to 1.9.5 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1335](https://togithub.com/spf13/viper/pull/1335) - build(deps): bump github.com/fsnotify/fsnotify from 1.5.1 to 1.5.4 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1338](https://togithub.com/spf13/viper/pull/1338) - build(deps): bump github.com/spf13/cast from 1.4.1 to 1.5.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1344](https://togithub.com/spf13/viper/pull/1344) - build(deps): bump github.com/pelletier/go-toml/v2 from 2.0.0 to 2.0.1 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1343](https://togithub.com/spf13/viper/pull/1343) - build(deps): bump github.com/subosito/gotenv from 1.2.0 to 1.3.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1349](https://togithub.com/spf13/viper/pull/1349) #### New Contributors - [@​meowfaceman](https://togithub.com/meowfaceman) made their first contribution in [https://github.com/spf13/viper/pull/1301](https://togithub.com/spf13/viper/pull/1301) - [@​wwade](https://togithub.com/wwade) made their first contribution in [https://github.com/spf13/viper/pull/1341](https://togithub.com/spf13/viper/pull/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 [@​sagikazarmark](https://togithub.com/sagikazarmark) in [https://github.com/spf13/viper/pull/1273](https://togithub.com/spf13/viper/pull/1273) - Experimental toml v2 support by [@​sagikazarmark](https://togithub.com/sagikazarmark) in [https://github.com/spf13/viper/pull/1274](https://togithub.com/spf13/viper/pull/1274) - Experimental logger by [@​sagikazarmark](https://togithub.com/sagikazarmark) in [https://github.com/spf13/viper/pull/1275](https://togithub.com/spf13/viper/pull/1275) ##### Enhancements 🚀 - Remove unnecessary operand by [@​steviebps](https://togithub.com/steviebps) in [https://github.com/spf13/viper/pull/1213](https://togithub.com/spf13/viper/pull/1213) - Improve encoding layer by [@​sagikazarmark](https://togithub.com/sagikazarmark) in [https://github.com/spf13/viper/pull/1167](https://togithub.com/spf13/viper/pull/1167) - Allow merging configs with different types of leaf values by [@​illarion](https://togithub.com/illarion) in [https://github.com/spf13/viper/pull/1181](https://togithub.com/spf13/viper/pull/1181) ##### Bug Fixes 🐛 - Disable race detector on windows by [@​sagikazarmark](https://togithub.com/sagikazarmark) in [https://github.com/spf13/viper/pull/1269](https://togithub.com/spf13/viper/pull/1269) ##### Breaking Changes 🛠 - Drop Go 1.14 support by [@​sagikazarmark](https://togithub.com/sagikazarmark) in [https://github.com/spf13/viper/pull/1327](https://togithub.com/spf13/viper/pull/1327) ##### Dependency Updates ⬆️ - build(deps): bump github.com/spf13/afero from 1.6.0 to 1.7.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1265](https://togithub.com/spf13/viper/pull/1265) - build(deps): bump github.com/spf13/afero from 1.7.0 to 1.7.1 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1271](https://togithub.com/spf13/viper/pull/1271) - build(deps): bump github.com/spf13/afero from 1.7.1 to 1.8.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1281](https://togithub.com/spf13/viper/pull/1281) - build(deps): bump gopkg.in/ini.v1 from 1.66.2 to 1.66.3 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1287](https://togithub.com/spf13/viper/pull/1287) - build(deps): bump github.com/spf13/afero from 1.8.0 to 1.8.1 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1291](https://togithub.com/spf13/viper/pull/1291) - build(deps): bump actions/github-script from 5 to 6 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1295](https://togithub.com/spf13/viper/pull/1295) - build(deps): bump actions/checkout from 2 to 3 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1304](https://togithub.com/spf13/viper/pull/1304) - build(deps): bump github.com/magiconair/properties from 1.8.5 to 1.8.6 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1299](https://togithub.com/spf13/viper/pull/1299) - build(deps): bump gopkg.in/ini.v1 from 1.66.3 to 1.66.4 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1293](https://togithub.com/spf13/viper/pull/1293) - build(deps): bump github.com/spf13/afero from 1.8.1 to 1.8.2 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1311](https://togithub.com/spf13/viper/pull/1311) - build(deps): bump actions/setup-go from 2 to 3 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1319](https://togithub.com/spf13/viper/pull/1319) - build(deps): bump github.com/pelletier/go-toml/v2 from 2.0.0-beta.6 to 2.0.0-beta.7 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1320](https://togithub.com/spf13/viper/pull/1320) - build(deps): bump github.com/pelletier/go-toml/v2 from 2.0.0-beta.7 to 2.0.0-beta.8 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1322](https://togithub.com/spf13/viper/pull/1322) - Update crypt by [@​sagikazarmark](https://togithub.com/sagikazarmark) in [https://github.com/spf13/viper/pull/1325](https://togithub.com/spf13/viper/pull/1325) #### New Contributors - [@​steviebps](https://togithub.com/steviebps) made their first contribution in [https://github.com/spf13/viper/pull/1213](https://togithub.com/spf13/viper/pull/1213) - [@​illarion](https://togithub.com/illarion) made their first contribution in [https://github.com/spf13/viper/pull/1181](https://togithub.com/spf13/viper/pull/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>
[![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 [@​krakowski](https://togithub.com/krakowski) in [https://github.com/spf13/viper/pull/1704](https://togithub.com/spf13/viper/pull/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: [#​761](https://togithub.com/spf13/viper/issues/761)) [#​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 [@​alexandear](https://togithub.com/alexandear) in [https://github.com/spf13/viper/pull/1642](https://togithub.com/spf13/viper/pull/1642) - test: replace ifs with asserts to simplify tests by [@​alexandear](https://togithub.com/alexandear) in [https://github.com/spf13/viper/pull/1656](https://togithub.com/spf13/viper/pull/1656) - ci: enable test shuffle and fix tests by [@​alexandear](https://togithub.com/alexandear) in [https://github.com/spf13/viper/pull/1643](https://togithub.com/spf13/viper/pull/1643) - fix: gocritic lint issues by [@​alexandear](https://togithub.com/alexandear) in [https://github.com/spf13/viper/pull/1696](https://togithub.com/spf13/viper/pull/1696) ##### Bug Fixes 🐛 - Implement viper.BindStruct for automatic unmarshalling from environment variables by [@​krakowski](https://togithub.com/krakowski) in [https://github.com/spf13/viper/pull/1429](https://togithub.com/spf13/viper/pull/1429) - fix isPathShadowedInFlatMap type cast bug by [@​linuxsong](https://togithub.com/linuxsong) in [https://github.com/spf13/viper/pull/1585](https://togithub.com/spf13/viper/pull/1585) ##### Dependency Updates ⬆️ - build(deps): bump github/codeql-action from 2.21.9 to 2.22.3 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1661](https://togithub.com/spf13/viper/pull/1661) - build(deps): bump golang.org/x/net from 0.15.0 to 0.17.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1659](https://togithub.com/spf13/viper/pull/1659) - build(deps): bump actions/checkout from 4.1.0 to 4.1.1 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1663](https://togithub.com/spf13/viper/pull/1663) - build(deps): bump actions/github-script from 6.4.1 to 7.0.1 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1686](https://togithub.com/spf13/viper/pull/1686) - build(deps): bump github/codeql-action from 2.22.3 to 2.22.8 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1688](https://togithub.com/spf13/viper/pull/1688) - build(deps): bump github.com/spf13/afero from 1.10.0 to 1.11.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1692](https://togithub.com/spf13/viper/pull/1692) - build(deps): bump actions/dependency-review-action from 3.1.0 to 3.1.4 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1690](https://togithub.com/spf13/viper/pull/1690) - build(deps): bump cachix/install-nix-action from 23 to 24 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1689](https://togithub.com/spf13/viper/pull/1689) - build(deps): bump github.com/nats-io/nkeys from 0.4.5 to 0.4.6 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1672](https://togithub.com/spf13/viper/pull/1672) - build(deps): bump github.com/spf13/cast from 1.5.1 to 1.6.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1691](https://togithub.com/spf13/viper/pull/1691) - build(deps): bump github.com/fsnotify/fsnotify from 1.6.0 to 1.7.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1668](https://togithub.com/spf13/viper/pull/1668) - chore: update dependencies by [@​sagikazarmark](https://togithub.com/sagikazarmark) in [https://github.com/spf13/viper/pull/1694](https://togithub.com/spf13/viper/pull/1694) - chore: update crypt by [@​sagikazarmark](https://togithub.com/sagikazarmark) in [https://github.com/spf13/viper/pull/1701](https://togithub.com/spf13/viper/pull/1701) ##### Other Changes - Add info about multiple hosts for remote config by [@​KaymeKaydex](https://togithub.com/KaymeKaydex) in [https://github.com/spf13/viper/pull/1684](https://togithub.com/spf13/viper/pull/1684) - refactor: drop fsonitfy wrapper by [@​sagikazarmark](https://togithub.com/sagikazarmark) in [https://github.com/spf13/viper/pull/1693](https://togithub.com/spf13/viper/pull/1693) - Note Get\* behavior on parse failure by [@​scop](https://togithub.com/scop) in [https://github.com/spf13/viper/pull/1687](https://togithub.com/spf13/viper/pull/1687) - fix: godot lint issues by [@​alexandear](https://togithub.com/alexandear) in [https://github.com/spf13/viper/pull/1657](https://togithub.com/spf13/viper/pull/1657) #### New Contributors - [@​KaymeKaydex](https://togithub.com/KaymeKaydex) made their first contribution in [https://github.com/spf13/viper/pull/1684](https://togithub.com/spf13/viper/pull/1684) - [@​krakowski](https://togithub.com/krakowski) made their first contribution in [https://github.com/spf13/viper/pull/1429](https://togithub.com/spf13/viper/pull/1429) - [@​linuxsong](https://togithub.com/linuxsong) made their first contribution in [https://github.com/spf13/viper/pull/1585](https://togithub.com/spf13/viper/pull/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 [@​hooksie1](https://togithub.com/hooksie1) in [https://github.com/spf13/viper/pull/1590](https://togithub.com/spf13/viper/pull/1590) - Add slog support by [@​sagikazarmark](https://togithub.com/sagikazarmark) in [https://github.com/spf13/viper/pull/1627](https://togithub.com/spf13/viper/pull/1627) ##### Enhancements 🚀 - chore: add local development environment using nix by [@​sagikazarmark](https://togithub.com/sagikazarmark) in [https://github.com/spf13/viper/pull/1572](https://togithub.com/spf13/viper/pull/1572) - feat: add func GetEnvPrefix by [@​baruchiro](https://togithub.com/baruchiro) in [https://github.com/spf13/viper/pull/1565](https://togithub.com/spf13/viper/pull/1565) - Improve dev env by [@​sagikazarmark](https://togithub.com/sagikazarmark) in [https://github.com/spf13/viper/pull/1575](https://togithub.com/spf13/viper/pull/1575) - fix: code optimization by [@​testwill](https://togithub.com/testwill) in [https://github.com/spf13/viper/pull/1557](https://togithub.com/spf13/viper/pull/1557) - test: remove not needed testutil.Setenv by [@​alexandear](https://togithub.com/alexandear) in [https://github.com/spf13/viper/pull/1610](https://togithub.com/spf13/viper/pull/1610) - new finder library based on afero by [@​sagikazarmark](https://togithub.com/sagikazarmark) in [https://github.com/spf13/viper/pull/1625](https://togithub.com/spf13/viper/pull/1625) - refactor: make use of `strings.Cut` by [@​scop](https://togithub.com/scop) in [https://github.com/spf13/viper/pull/1650](https://togithub.com/spf13/viper/pull/1650) ##### Breaking Changes 🛠 - feat: drop support for Go 1.17 by [@​sagikazarmark](https://togithub.com/sagikazarmark) in [https://github.com/spf13/viper/pull/1574](https://togithub.com/spf13/viper/pull/1574) ##### Dependency Updates ⬆️ - build(deps): bump mheap/github-action-required-labels from 4 to 5 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1563](https://togithub.com/spf13/viper/pull/1563) - build(deps): bump github.com/stretchr/testify from 1.8.3 to 1.8.4 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1558](https://togithub.com/spf13/viper/pull/1558) - build(deps): bump cachix/install-nix-action from 21 to 22 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1573](https://togithub.com/spf13/viper/pull/1573) - build(deps): bump github.com/pelletier/go-toml/v2 from 2.0.8 to 2.0.9 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1586](https://togithub.com/spf13/viper/pull/1586) - chore: upgrade crypt by [@​sagikazarmark](https://togithub.com/sagikazarmark) in [https://github.com/spf13/viper/pull/1589](https://togithub.com/spf13/viper/pull/1589) - build(deps): bump actions/checkout from 3.5.3 to 4.0.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1616](https://togithub.com/spf13/viper/pull/1616) - build(deps): bump github/codeql-action from 2.21.2 to 2.21.5 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1615](https://togithub.com/spf13/viper/pull/1615) - build(deps): bump github.com/pelletier/go-toml/v2 from 2.0.9 to 2.1.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1614](https://togithub.com/spf13/viper/pull/1614) - build(deps): bump actions/dependency-review-action from 3.0.6 to 3.0.8 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1605](https://togithub.com/spf13/viper/pull/1605) - build(deps): bump golangci/golangci-lint-action from 3.6.0 to 3.7.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1604](https://togithub.com/spf13/viper/pull/1604) - build(deps): bump actions/setup-go from 4.0.1 to 4.1.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1593](https://togithub.com/spf13/viper/pull/1593) - build(deps): bump github.com/subosito/gotenv from 1.4.2 to 1.6.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1603](https://togithub.com/spf13/viper/pull/1603) - build(deps): bump cachix/install-nix-action from 22 to 23 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1620](https://togithub.com/spf13/viper/pull/1620) - chore(deps): update crypt by [@​sagikazarmark](https://togithub.com/sagikazarmark) in [https://github.com/spf13/viper/pull/1621](https://togithub.com/spf13/viper/pull/1621) - build(deps): bump actions/dependency-review-action from 3.0.8 to 3.1.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1623](https://togithub.com/spf13/viper/pull/1623) - Bump minimum Go version to 1.19 by [@​sagikazarmark](https://togithub.com/sagikazarmark) in [https://github.com/spf13/viper/pull/1626](https://togithub.com/spf13/viper/pull/1626) - build(deps): bump github/codeql-action from 2.21.5 to 2.21.6 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1632](https://togithub.com/spf13/viper/pull/1632) - build(deps): bump github/codeql-action from 2.21.6 to 2.21.7 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1634](https://togithub.com/spf13/viper/pull/1634) - build(deps): bump actions/checkout from 4.0.0 to 4.1.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1641](https://togithub.com/spf13/viper/pull/1641) - build(deps): bump github.com/spf13/afero from 1.9.5 to 1.10.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1640](https://togithub.com/spf13/viper/pull/1640) - build(deps): bump github/codeql-action from 2.21.7 to 2.21.8 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1638](https://togithub.com/spf13/viper/pull/1638) - build(deps): bump github/codeql-action from 2.21.8 to 2.21.9 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1648](https://togithub.com/spf13/viper/pull/1648) - chore(deps): update crypt by [@​sagikazarmark](https://togithub.com/sagikazarmark) in [https://github.com/spf13/viper/pull/1652](https://togithub.com/spf13/viper/pull/1652) ##### Other Changes - \[StepSecurity] ci: Harden GitHub Actions by [@​step-security-bot](https://togithub.com/step-security-bot) in [https://github.com/spf13/viper/pull/1592](https://togithub.com/spf13/viper/pull/1592) - Add Vitess to list of projects using Viper by [@​systay](https://togithub.com/systay) in [https://github.com/spf13/viper/pull/1619](https://togithub.com/spf13/viper/pull/1619) - docs: fix typos in comments by [@​alexandear](https://togithub.com/alexandear) in [https://github.com/spf13/viper/pull/1609](https://togithub.com/spf13/viper/pull/1609) - ci: add Go 1.21 to the test matrix by [@​sagikazarmark](https://togithub.com/sagikazarmark) in [https://github.com/spf13/viper/pull/1622](https://togithub.com/spf13/viper/pull/1622) - Remove usages of deprecated io/ioutil; simplify viper tests by [@​alexandear](https://togithub.com/alexandear) in [https://github.com/spf13/viper/pull/1631](https://togithub.com/spf13/viper/pull/1631) - chore: remove deprecated build tags by [@​alexandear](https://togithub.com/alexandear) in [https://github.com/spf13/viper/pull/1630](https://togithub.com/spf13/viper/pull/1630) - refactor: replace 'interface{}' with 'any' by [@​alexandear](https://togithub.com/alexandear) in [https://github.com/spf13/viper/pull/1646](https://togithub.com/spf13/viper/pull/1646) - test: refactor asserts by [@​alexandear](https://togithub.com/alexandear) in [https://github.com/spf13/viper/pull/1644](https://togithub.com/spf13/viper/pull/1644) - docs: add set subset KV example by [@​yhliyr](https://togithub.com/yhliyr) in [https://github.com/spf13/viper/pull/1647](https://togithub.com/spf13/viper/pull/1647) - Make deps fixes by [@​bersace](https://togithub.com/bersace) in [https://github.com/spf13/viper/pull/1628](https://togithub.com/spf13/viper/pull/1628) #### New Contributors - [@​goldeneggg](https://togithub.com/goldeneggg) made their first contribution in [https://github.com/spf13/viper/pull/1561](https://togithub.com/spf13/viper/pull/1561) - [@​baruchiro](https://togithub.com/baruchiro) made their first contribution in [https://github.com/spf13/viper/pull/1565](https://togithub.com/spf13/viper/pull/1565) - [@​testwill](https://togithub.com/testwill) made their first contribution in [https://github.com/spf13/viper/pull/1557](https://togithub.com/spf13/viper/pull/1557) - [@​step-security-bot](https://togithub.com/step-security-bot) made their first contribution in [https://github.com/spf13/viper/pull/1592](https://togithub.com/spf13/viper/pull/1592) - [@​systay](https://togithub.com/systay) made their first contribution in [https://github.com/spf13/viper/pull/1619](https://togithub.com/spf13/viper/pull/1619) - [@​alexandear](https://togithub.com/alexandear) made their first contribution in [https://github.com/spf13/viper/pull/1609](https://togithub.com/spf13/viper/pull/1609) - [@​hooksie1](https://togithub.com/hooksie1) made their first contribution in [https://github.com/spf13/viper/pull/1590](https://togithub.com/spf13/viper/pull/1590) - [@​yhliyr](https://togithub.com/yhliyr) made their first contribution in [https://github.com/spf13/viper/pull/1647](https://togithub.com/spf13/viper/pull/1647) - [@​bersace](https://togithub.com/bersace) made their first contribution in [https://github.com/spf13/viper/pull/1628](https://togithub.com/spf13/viper/pull/1628) - [@​scop](https://togithub.com/scop) made their first contribution in [https://github.com/spf13/viper/pull/1650](https://togithub.com/spf13/viper/pull/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-->
[![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 [@​sagikazarmark](https://togithub.com/sagikazarmark) in [https://github.com/spf13/viper/pull/1715](https://togithub.com/spf13/viper/pull/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 [@​krakowski](https://togithub.com/krakowski) in [https://github.com/spf13/viper/pull/1704](https://togithub.com/spf13/viper/pull/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: [#​761](https://togithub.com/spf13/viper/issues/761)) [#​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 [@​alexandear](https://togithub.com/alexandear) in [https://github.com/spf13/viper/pull/1642](https://togithub.com/spf13/viper/pull/1642) - test: replace ifs with asserts to simplify tests by [@​alexandear](https://togithub.com/alexandear) in [https://github.com/spf13/viper/pull/1656](https://togithub.com/spf13/viper/pull/1656) - ci: enable test shuffle and fix tests by [@​alexandear](https://togithub.com/alexandear) in [https://github.com/spf13/viper/pull/1643](https://togithub.com/spf13/viper/pull/1643) - fix: gocritic lint issues by [@​alexandear](https://togithub.com/alexandear) in [https://github.com/spf13/viper/pull/1696](https://togithub.com/spf13/viper/pull/1696) ##### Bug Fixes 🐛 - Implement viper.BindStruct for automatic unmarshalling from environment variables by [@​krakowski](https://togithub.com/krakowski) in [https://github.com/spf13/viper/pull/1429](https://togithub.com/spf13/viper/pull/1429) - fix isPathShadowedInFlatMap type cast bug by [@​linuxsong](https://togithub.com/linuxsong) in [https://github.com/spf13/viper/pull/1585](https://togithub.com/spf13/viper/pull/1585) ##### Dependency Updates ⬆️ - build(deps): bump github/codeql-action from 2.21.9 to 2.22.3 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1661](https://togithub.com/spf13/viper/pull/1661) - build(deps): bump golang.org/x/net from 0.15.0 to 0.17.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1659](https://togithub.com/spf13/viper/pull/1659) - build(deps): bump actions/checkout from 4.1.0 to 4.1.1 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1663](https://togithub.com/spf13/viper/pull/1663) - build(deps): bump actions/github-script from 6.4.1 to 7.0.1 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1686](https://togithub.com/spf13/viper/pull/1686) - build(deps): bump github/codeql-action from 2.22.3 to 2.22.8 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1688](https://togithub.com/spf13/viper/pull/1688) - build(deps): bump github.com/spf13/afero from 1.10.0 to 1.11.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1692](https://togithub.com/spf13/viper/pull/1692) - build(deps): bump actions/dependency-review-action from 3.1.0 to 3.1.4 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1690](https://togithub.com/spf13/viper/pull/1690) - build(deps): bump cachix/install-nix-action from 23 to 24 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1689](https://togithub.com/spf13/viper/pull/1689) - build(deps): bump github.com/nats-io/nkeys from 0.4.5 to 0.4.6 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1672](https://togithub.com/spf13/viper/pull/1672) - build(deps): bump github.com/spf13/cast from 1.5.1 to 1.6.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1691](https://togithub.com/spf13/viper/pull/1691) - build(deps): bump github.com/fsnotify/fsnotify from 1.6.0 to 1.7.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1668](https://togithub.com/spf13/viper/pull/1668) - chore: update dependencies by [@​sagikazarmark](https://togithub.com/sagikazarmark) in [https://github.com/spf13/viper/pull/1694](https://togithub.com/spf13/viper/pull/1694) - chore: update crypt by [@​sagikazarmark](https://togithub.com/sagikazarmark) in [https://github.com/spf13/viper/pull/1701](https://togithub.com/spf13/viper/pull/1701) ##### Other Changes - Add info about multiple hosts for remote config by [@​KaymeKaydex](https://togithub.com/KaymeKaydex) in [https://github.com/spf13/viper/pull/1684](https://togithub.com/spf13/viper/pull/1684) - refactor: drop fsonitfy wrapper by [@​sagikazarmark](https://togithub.com/sagikazarmark) in [https://github.com/spf13/viper/pull/1693](https://togithub.com/spf13/viper/pull/1693) - Note Get\* behavior on parse failure by [@​scop](https://togithub.com/scop) in [https://github.com/spf13/viper/pull/1687](https://togithub.com/spf13/viper/pull/1687) - fix: godot lint issues by [@​alexandear](https://togithub.com/alexandear) in [https://github.com/spf13/viper/pull/1657](https://togithub.com/spf13/viper/pull/1657) #### New Contributors - [@​KaymeKaydex](https://togithub.com/KaymeKaydex) made their first contribution in [https://github.com/spf13/viper/pull/1684](https://togithub.com/spf13/viper/pull/1684) - [@​krakowski](https://togithub.com/krakowski) made their first contribution in [https://github.com/spf13/viper/pull/1429](https://togithub.com/spf13/viper/pull/1429) - [@​linuxsong](https://togithub.com/linuxsong) made their first contribution in [https://github.com/spf13/viper/pull/1585](https://togithub.com/spf13/viper/pull/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 [@​hooksie1](https://togithub.com/hooksie1) in [https://github.com/spf13/viper/pull/1590](https://togithub.com/spf13/viper/pull/1590) - Add slog support by [@​sagikazarmark](https://togithub.com/sagikazarmark) in [https://github.com/spf13/viper/pull/1627](https://togithub.com/spf13/viper/pull/1627) ##### Enhancements 🚀 - chore: add local development environment using nix by [@​sagikazarmark](https://togithub.com/sagikazarmark) in [https://github.com/spf13/viper/pull/1572](https://togithub.com/spf13/viper/pull/1572) - feat: add func GetEnvPrefix by [@​baruchiro](https://togithub.com/baruchiro) in [https://github.com/spf13/viper/pull/1565](https://togithub.com/spf13/viper/pull/1565) - Improve dev env by [@​sagikazarmark](https://togithub.com/sagikazarmark) in [https://github.com/spf13/viper/pull/1575](https://togithub.com/spf13/viper/pull/1575) - fix: code optimization by [@​testwill](https://togithub.com/testwill) in [https://github.com/spf13/viper/pull/1557](https://togithub.com/spf13/viper/pull/1557) - test: remove not needed testutil.Setenv by [@​alexandear](https://togithub.com/alexandear) in [https://github.com/spf13/viper/pull/1610](https://togithub.com/spf13/viper/pull/1610) - new finder library based on afero by [@​sagikazarmark](https://togithub.com/sagikazarmark) in [https://github.com/spf13/viper/pull/1625](https://togithub.com/spf13/viper/pull/1625) - refactor: make use of `strings.Cut` by [@​scop](https://togithub.com/scop) in [https://github.com/spf13/viper/pull/1650](https://togithub.com/spf13/viper/pull/1650) ##### Breaking Changes 🛠 - feat: drop support for Go 1.17 by [@​sagikazarmark](https://togithub.com/sagikazarmark) in [https://github.com/spf13/viper/pull/1574](https://togithub.com/spf13/viper/pull/1574) ##### Dependency Updates ⬆️ - build(deps): bump mheap/github-action-required-labels from 4 to 5 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1563](https://togithub.com/spf13/viper/pull/1563) - build(deps): bump github.com/stretchr/testify from 1.8.3 to 1.8.4 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1558](https://togithub.com/spf13/viper/pull/1558) - build(deps): bump cachix/install-nix-action from 21 to 22 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1573](https://togithub.com/spf13/viper/pull/1573) - build(deps): bump github.com/pelletier/go-toml/v2 from 2.0.8 to 2.0.9 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1586](https://togithub.com/spf13/viper/pull/1586) - chore: upgrade crypt by [@​sagikazarmark](https://togithub.com/sagikazarmark) in [https://github.com/spf13/viper/pull/1589](https://togithub.com/spf13/viper/pull/1589) - build(deps): bump actions/checkout from 3.5.3 to 4.0.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1616](https://togithub.com/spf13/viper/pull/1616) - build(deps): bump github/codeql-action from 2.21.2 to 2.21.5 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1615](https://togithub.com/spf13/viper/pull/1615) - build(deps): bump github.com/pelletier/go-toml/v2 from 2.0.9 to 2.1.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1614](https://togithub.com/spf13/viper/pull/1614) - build(deps): bump actions/dependency-review-action from 3.0.6 to 3.0.8 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1605](https://togithub.com/spf13/viper/pull/1605) - build(deps): bump golangci/golangci-lint-action from 3.6.0 to 3.7.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1604](https://togithub.com/spf13/viper/pull/1604) - build(deps): bump actions/setup-go from 4.0.1 to 4.1.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1593](https://togithub.com/spf13/viper/pull/1593) - build(deps): bump github.com/subosito/gotenv from 1.4.2 to 1.6.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1603](https://togithub.com/spf13/viper/pull/1603) - build(deps): bump cachix/install-nix-action from 22 to 23 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1620](https://togithub.com/spf13/viper/pull/1620) - chore(deps): update crypt by [@​sagikazarmark](https://togithub.com/sagikazarmark) in [https://github.com/spf13/viper/pull/1621](https://togithub.com/spf13/viper/pull/1621) - build(deps): bump actions/dependency-review-action from 3.0.8 to 3.1.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1623](https://togithub.com/spf13/viper/pull/1623) - Bump minimum Go version to 1.19 by [@​sagikazarmark](https://togithub.com/sagikazarmark) in [https://github.com/spf13/viper/pull/1626](https://togithub.com/spf13/viper/pull/1626) - build(deps): bump github/codeql-action from 2.21.5 to 2.21.6 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1632](https://togithub.com/spf13/viper/pull/1632) - build(deps): bump github/codeql-action from 2.21.6 to 2.21.7 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1634](https://togithub.com/spf13/viper/pull/1634) - build(deps): bump actions/checkout from 4.0.0 to 4.1.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1641](https://togithub.com/spf13/viper/pull/1641) - build(deps): bump github.com/spf13/afero from 1.9.5 to 1.10.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1640](https://togithub.com/spf13/viper/pull/1640) - build(deps): bump github/codeql-action from 2.21.7 to 2.21.8 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1638](https://togithub.com/spf13/viper/pull/1638) - build(deps): bump github/codeql-action from 2.21.8 to 2.21.9 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/spf13/viper/pull/1648](https://togithub.com/spf13/viper/pull/1648) - chore(deps): update crypt by [@​sagikazarmark](https://togithub.com/sagikazarmark) in [https://github.com/spf13/viper/pull/1652](https://togithub.com/spf13/viper/pull/1652) ##### Other Changes - \[StepSecurity] ci: Harden GitHub Actions by [@​step-security-bot](https://togithub.com/step-security-bot) in [https://github.com/spf13/viper/pull/1592](https://togithub.com/spf13/viper/pull/1592) - Add Vitess to list of projects using Viper by [@​systay](https://togithub.com/systay) in [https://github.com/spf13/viper/pull/1619](https://togithub.com/spf13/viper/pull/1619) - docs: fix typos in comments by [@​alexandear](https://togithub.com/alexandear) in [https://github.com/spf13/viper/pull/1609](https://togithub.com/spf13/viper/pull/1609) - ci: add Go 1.21 to the test matrix by [@​sagikazarmark](https://togithub.com/sagikazarmark) in [https://github.com/spf13/viper/pull/1622](https://togithub.com/spf13/viper/pull/1622) - Remove usages of deprecated io/ioutil; simplify viper tests by [@​alexandear](https://togithub.com/alexandear) in [https://github.com/spf13/viper/pull/1631](https://togithub.com/spf13/viper/pull/1631) - chore: remove deprecated build tags by [@​alexandear](https://togithub.com/alexandear) in [https://github.com/spf13/viper/pull/1630](https://togithub.com/spf13/viper/pull/1630) - refactor: replace 'interface{}' with 'any' by [@​alexandear](https://togithub.com/alexandear) in [https://github.com/spf13/viper/pull/1646](https://togithub.com/spf13/viper/pull/1646) - test: refactor asserts by [@​alexandear](https://togithub.com/alexandear) in [https://github.com/spf13/viper/pull/1644](https://togithub.com/spf13/viper/pull/1644) - docs: add set subset KV example by [@​yhliyr](https://togithub.com/yhliyr) in [https://github.com/spf13/viper/pull/1647](https://togithub.com/spf13/viper/pull/1647) - Make deps fixes by [@​bersace](https://togithub.com/bersace) in [https://github.com/spf13/viper/pull/1628](https://togithub.com/spf13/viper/pull/1628) #### New Contributors - [@​goldeneggg](https://togithub.com/goldeneggg) made their first contribution in [https://github.com/spf13/viper/pull/1561](https://togithub.com/spf13/viper/pull/1561) - [@​baruchiro](https://togithub.com/baruchiro) made their first contribution in [https://github.com/spf13/viper/pull/1565](https://togithub.com/spf13/viper/pull/1565) - [@​testwill](https://togithub.com/testwill) made their first contribution in [https://github.com/spf13/viper/pull/1557](https://togithub.com/spf13/viper/pull/1557) - [@​step-security-bot](https://togithub.com/step-security-bot) made their first contribution in [https://github.com/spf13/viper/pull/1592](https://togithub.com/spf13/viper/pull/1592) - [@​systay](https://togithub.com/systay) made their first contribution in [https://github.com/spf13/viper/pull/1619](https://togithub.com/spf13/viper/pull/1619) - [@​alexandear](https://togithub.com/alexandear) made their first contribution in [https://github.com/spf13/viper/pull/1609](https://togithub.com/spf13/viper/pull/1609) - [@​hooksie1](https://togithub.com/hooksie1) made their first contribution in [https://github.com/spf13/viper/pull/1590](https://togithub.com/spf13/viper/pull/1590) - [@​yhliyr](https://togithub.com/yhliyr) made their first contribution in [https://github.com/spf13/viper/pull/1647](https://togithub.com/spf13/viper/pull/1647) - [@​bersace](https://togithub.com/bersace) made their first contribution in [https://github.com/spf13/viper/pull/1628](https://togithub.com/spf13/viper/pull/1628) - [@​scop](https://togithub.com/scop) made their first contribution in [https://github.com/spf13/viper/pull/1650](https://togithub.com/spf13/viper/pull/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>
The
cast.ToStringMap()
method callsToStringMapE()
for type conversion, butToStringMapE()
does not support conversion frommap[string]string
andmap[string]FlagValue
tomap[string]interface{}
, so when calling theisPathShadowedInFlatMap()
method, ToStringMapE will always return a " unable to cast %#v of type %T tomap[string]interface{}
" error, so theisPathShadowedInFlatMap()
method does nothing.So in the
isPathShadowedInFlatMap
method, should to callcastMapStringToMapInterface
andcastMapFlagToMapInterface()
respectively to convertmap[string]string
andmap[string]FlagValue
intomap[string]interface{}
.