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 added an experimental Logger
interface to allow custom implementations (besides 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 released in Go 1.21.
Warning
WithLogger
accepts an *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.
The experimental flag is removed.
New finder implementation [BREAKING]
As of this release, Viper uses a new library to look for files, called 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 in #1590
- Add slog support by @sagikazarmark in #1627
Enhancements 🚀
- chore: add local development environment using nix by @sagikazarmark in #1572
- feat: add func GetEnvPrefix by @baruchiro in #1565
- Improve dev env by @sagikazarmark in #1575
- fix: code optimization by @testwill in #1557
- test: remove not needed testutil.Setenv by @alexandear in #1610
- new finder library based on afero by @sagikazarmark in #1625
- refactor: make use of
strings.Cut
by @scop in #1650
Breaking Changes 🛠
- feat: drop support for Go 1.17 by @sagikazarmark in #1574
Dependency Updates ⬆️
- build(deps): bump mheap/github-action-required-labels from 4 to 5 by @dependabot in #1563
- build(deps): bump github.com/stretchr/testify from 1.8.3 to 1.8.4 by @dependabot in #1558
- build(deps): bump cachix/install-nix-action from 21 to 22 by @dependabot in #1573
- build(deps): bump github.com/pelletier/go-toml/v2 from 2.0.8 to 2.0.9 by @dependabot in #1586
- chore: upgrade crypt by @sagikazarmark in #1589
- build(deps): bump actions/checkout from 3.5.3 to 4.0.0 by @dependabot in #1616
- build(deps): bump github/codeql-action from 2.21.2 to 2.21.5 by @dependabot in #1615
- build(deps): bump github.com/pelletier/go-toml/v2 from 2.0.9 to 2.1.0 by @dependabot in #1614
- build(deps): bump actions/dependency-review-action from 3.0.6 to 3.0.8 by @dependabot in #1605
- build(deps): bump golangci/golangci-lint-action from 3.6.0 to 3.7.0 by @dependabot in #1604
- build(deps): bump actions/setup-go from 4.0.1 to 4.1.0 by @dependabot in #1593
- build(deps): bump github.com/subosito/gotenv from 1.4.2 to 1.6.0 by @dependabot in #1603
- build(deps): bump cachix/install-nix-action from 22 to 23 by @dependabot in #1620
- chore(deps): update crypt by @sagikazarmark in #1621
- build(deps): bump actions/dependency-review-action from 3.0.8 to 3.1.0 by @dependabot in #1623
- Bump minimum Go version to 1.19 by @sagikazarmark in #1626
- build(deps): bump github/codeql-action from 2.21.5 to 2.21.6 by @dependabot in #1632
- build(deps): bump github/codeql-action from 2.21.6 to 2.21.7 by @dependabot in #1634
- build(deps): bump actions/checkout from 4.0.0 to 4.1.0 by @dependabot in #1641
- build(deps): bump github.com/spf13/afero from 1.9.5 to 1.10.0 by @dependabot in #1640
- build(deps): bump github/codeql-action from 2.21.7 to 2.21.8 by @dependabot in #1638
- build(deps): bump github/codeql-action from 2.21.8 to 2.21.9 by @dependabot in #1648
- chore(deps): update crypt by @sagikazarmark in #1652
Other Changes
- [StepSecurity] ci: Harden GitHub Actions by @step-security-bot in #1592
- Add Vitess to list of projects using Viper by @systay in #1619
- docs: fix typos in comments by @alexandear in #1609
- ci: add Go 1.21 to the test matrix by @sagikazarmark in #1622
- Remove usages of deprecated io/ioutil; simplify viper tests by @alexandear in #1631
- chore: remove deprecated build tags by @alexandear in #1630
- refactor: replace 'interface{}' with 'any' by @alexandear in #1646
- test: refactor asserts by @alexandear in #1644
- docs: add set subset KV example by @yhliyr in #1647
- Make deps fixes by @bersace in #1628
New Contributors
- @goldeneggg made their first contribution in #1561
- @baruchiro made their first contribution in #1565
- @testwill made their first contribution in #1557
- @step-security-bot made their first contribution in #1592
- @systay made their first contribution in #1619
- @alexandear made their first contribution in #1609
- @hooksie1 made their first contribution in #1590
- @yhliyr made their first contribution in #1647
- @bersace made their first contribution in #1628
- @scop made their first contribution in #1650
Full Changelog: v1.16.0...v1.17.0