spf13/viper (github.com/spf13/viper)
### [`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**: https://github.com/spf13/viper/compare/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)
#### 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**: https://github.com/spf13/viper/compare/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**: https://github.com/spf13/viper/compare/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**: https://github.com/spf13/viper/compare/v1.16.0...v1.17.0
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.
[ ] If you want to rebase/retry this PR, check this box
This PR has been generated by Mend Renovate. View repository job log here.
This PR contains the following updates:
v1.16.0
->v1.18.2
Release Notes
spf13/viper (github.com/spf13/viper)
### [`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**: https://github.com/spf13/viper/compare/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) #### 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**: https://github.com/spf13/viper/compare/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**: https://github.com/spf13/viper/compare/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**: https://github.com/spf13/viper/compare/v1.16.0...v1.17.0Configuration
π 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.
This PR has been generated by Mend Renovate. View repository job log here.