Releases: spf13/viper
v1.20.0-alpha.6
What's Changed
Enhancements 🚀
- Encoder improvements by @sagikazarmark in #1885
Bug Fixes 🐛
- feat: copy keydelim from parent chart in viper.Sub() by @obs-gh-alexlew in #1887
Dependency Updates ⬆️
- build(deps): bump google.golang.org/grpc from 1.64.0 to 1.64.1 in /remote by @dependabot in #1878
- build(deps): bump actions/setup-go from 5.0.1 to 5.0.2 by @dependabot in #1879
- build(deps): bump actions/dependency-review-action from 4.3.3 to 4.3.4 by @dependabot in #1881
- build(deps): bump github/codeql-action from 3.25.11 to 3.25.12 by @dependabot in #1880
- build(deps): bump github/codeql-action from 3.25.12 to 3.25.13 by @dependabot in #1883
- chore(deps): update crypt by @sagikazarmark in #1884
- chore: update dependencies by @sagikazarmark in #1888
Other Changes
- refactor: cleanup unused encoding code by @sagikazarmark in #1889
New Contributors
- @obs-gh-alexlew made their first contribution in #1887
Full Changelog: v1.20.0-alpha.5...v1.20.0-alpha.6
v1.20.0-alpha.3
What's Changed
Exciting New Features 🎉
- New encoding layer by @sagikazarmark in #1869
Breaking Changes 🛠
- Drop encoding formats: HCL, Java properties, INI by @sagikazarmark in #1870
Full Changelog: v1.20.0-alpha.2...v1.20.0-alpha.3
v1.20.0-alpha.2
What's Changed
Dependency Updates ⬆️
- Revert to go-difflib and go-spew releases by @skitt in #1861
- build(deps): bump actions/dependency-review-action from 4.3.2 to 4.3.3 by @dependabot in #1862
- build(deps): bump github/codeql-action from 3.25.8 to 3.25.10 by @dependabot in #1865
- build(deps): bump actions/checkout from 4.1.6 to 4.1.7 by @dependabot in #1864
- chore: update crypt by @sagikazarmark in #1866
Full Changelog: v1.20.0-alpha.1...v1.20.0-alpha.2
v1.20.0-alpha.1
The upcoming 1.20.0 release contains quite a few, large changes, so I decided to tag a few alpha/beta releases first.
Please give it a try and report back any issues. Thanks! ❤️
What's Changed
Enhancements 🚀
- Drop Go 1.20 support by @sagikazarmark in #1846
- Drop slog shim by @sagikazarmark in #1848
- Replace file searching API with a finder by @sagikazarmark in #1849
- Finder feature flag by @sagikazarmark in #1852
- Allow setting options on the global Viper instance by @sagikazarmark in #1856
- Add experimental flag for bind struct by @sagikazarmark in #1854
- Make the remote package a separate module by @sagikazarmark in #1860
Bug Fixes 🐛
- Fix missing config type when reading from a buffer by @sagikazarmark in #1857
Dependency Updates ⬆️
- chore: update mapstructure by @sagikazarmark in #1723
- chore: update crypt by @sagikazarmark in #1834
- build(deps): bump github/codeql-action from 3.25.7 to 3.25.8 by @dependabot in #1853
Other Changes
- refactor: move remote code to separate file by @sagikazarmark in #1847
Full Changelog: v1.19.0...v1.20.0-alpha.1
v1.19.0
What's Changed
Bug Fixes 🐛
- fix!: hide struct binding behind a feature flag by @sagikazarmark in #1720
Dependency Updates ⬆️
- build(deps): bump github/codeql-action from 2.22.8 to 2.22.9 by @dependabot in #1705
- build(deps): bump actions/setup-go from 4.1.0 to 5.0.0 by @dependabot in #1703
- build(deps): bump github/codeql-action from 2.22.9 to 3.22.11 by @dependabot in #1713
- build(deps): bump github.com/pelletier/go-toml/v2 from 2.1.0 to 2.1.1 by @dependabot in #1711
- build(deps): bump golang.org/x/crypto from 0.16.0 to 0.17.0 by @dependabot in #1722
- build(deps): bump github/codeql-action from 3.22.11 to 3.23.0 by @dependabot in #1734
- build(deps): bump actions/dependency-review-action from 3.1.4 to 3.1.5 by @dependabot in #1731
- build(deps): bump mheap/github-action-required-labels from 5.1.0 to 5.2.0 by @dependabot in #1743
- build(deps): bump github/codeql-action from 3.23.0 to 3.23.2 by @dependabot in #1742
- build(deps): bump actions/dependency-review-action from 3.1.5 to 4.0.0 by @dependabot in #1739
- build(deps): bump cachix/install-nix-action from 24 to 25 by @dependabot in #1737
- build(deps): bump github/codeql-action from 3.23.2 to 3.24.0 by @dependabot in #1751
- build(deps): bump github/codeql-action from 3.24.0 to 3.24.1 by @dependabot in #1760
- build(deps): bump actions/dependency-review-action from 4.0.0 to 4.1.0 by @dependabot in #1761
- build(deps): bump golangci/golangci-lint-action from 3.7.0 to 4.0.0 by @dependabot in #1757
- build(deps): bump mheap/github-action-required-labels from 5.2.0 to 5.3.0 by @dependabot in #1759
- build(deps): bump github/codeql-action from 3.24.1 to 3.24.3 by @dependabot in #1763
- build(deps): bump github.com/sagikazarmark/crypt from 0.17.0 to 0.18.0 by @dependabot in #1774
- build(deps): bump github/codeql-action from 3.24.3 to 3.24.5 by @dependabot in #1770
- build(deps): bump github.com/stretchr/testify from 1.8.4 to 1.9.0 by @dependabot in #1776
- build(deps): bump github/codeql-action from 3.24.5 to 3.24.6 by @dependabot in #1775
- build(deps): bump cachix/install-nix-action from 25 to 26 by @dependabot in #1778
- build(deps): bump actions/dependency-review-action from 4.1.0 to 4.1.3 by @dependabot in #1767
- build(deps): bump github/codeql-action from 3.24.6 to 3.24.9 by @dependabot in #1790
- build(deps): bump mheap/github-action-required-labels from 5.3.0 to 5.4.0 by @dependabot in #1789
- build(deps): bump actions/checkout from 4.1.1 to 4.1.2 by @dependabot in #1780
- build(deps): bump actions/dependency-review-action from 4.1.3 to 4.2.4 by @dependabot in #1793
- chore: upgrade crypt by @sagikazarmark in #1794
- build(deps): bump github.com/pelletier/go-toml/v2 from 2.1.1 to 2.2.0 by @dependabot in #1788
- build(deps): bump actions/dependency-review-action from 4.2.4 to 4.2.5 by @dependabot in #1796
- build(deps): bump github.com/pelletier/go-toml/v2 from 2.2.0 to 2.2.1 by @dependabot in #1804
- build(deps): bump github/codeql-action from 3.24.9 to 3.25.1 by @dependabot in #1806
- build(deps): bump golang.org/x/net from 0.22.0 to 0.23.0 by @dependabot in #1807
- build(deps): bump actions/checkout from 4.1.2 to 4.1.3 by @dependabot in #1808
- build(deps): bump actions/checkout from 4.1.3 to 4.1.4 by @dependabot in #1813
- build(deps): bump github/codeql-action from 3.25.1 to 3.25.2 by @dependabot in #1811
- build(deps): bump mheap/github-action-required-labels from 5.4.0 to 5.4.1 by @dependabot in #1817
- build(deps): bump actions/dependency-review-action from 4.2.5 to 4.3.2 by @dependabot in #1821
- build(deps): bump github.com/pelletier/go-toml/v2 from 2.2.1 to 2.2.2 by @dependabot in #1822
- build(deps): bump actions/setup-go from 5.0.0 to 5.0.1 by @dependabot in #1824
- build(deps): bump github/codeql-action from 3.25.2 to 3.25.4 by @dependabot in #1828
- build(deps): bump golangci/golangci-lint-action from 4.0.0 to 6.0.1 by @dependabot in #1829
- build(deps): bump github/codeql-action from 3.25.4 to 3.25.7 by @dependabot in #1844
- build(deps): bump cachix/install-nix-action from 26 to 27 by @dependabot in #1833
- build(deps): bump actions/checkout from 4.1.4 to 4.1.6 by @dependabot in #1835
Other Changes
- Update links to Golang Modules documentation by @tobb10001 in #1758
- chore: add Go 1.22 support by @sagikazarmark in #1762
- fix #1700: update tests to use local viper instance by @smukk9 in #1791
- Update references to bketelsen/crypt by @skitt in #1842
New Contributors
- @tobb10001 made their first contribution in #1758
- @smukk9 made their first contribution in #1791
- @skitt made their first contribution in #1842
Full Changelog: v1.18.1...v1.19.0
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 in #1715
Full Changelog: v1.18.1...v1.18.2
v1.18.1
What's Changed
Bug Fixes 🐛
- Merge missing struct keys inside UnmarshalExact by @krakowski in #1704
Full Changelog: v1.18.0...v1.18.1
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)
#1429 introduced a solution that solves that issue.
What's Changed
Enhancements 🚀
- chore: rename files according to enabled build tags by @alexandear in #1642
- test: replace ifs with asserts to simplify tests by @alexandear in #1656
- ci: enable test shuffle and fix tests by @alexandear in #1643
- fix: gocritic lint issues by @alexandear in #1696
Bug Fixes 🐛
- Implement viper.BindStruct for automatic unmarshalling from environment variables by @krakowski in #1429
- fix isPathShadowedInFlatMap type cast bug by @linuxsong in #1585
Dependency Updates ⬆️
- build(deps): bump github/codeql-action from 2.21.9 to 2.22.3 by @dependabot in #1661
- build(deps): bump golang.org/x/net from 0.15.0 to 0.17.0 by @dependabot in #1659
- build(deps): bump actions/checkout from 4.1.0 to 4.1.1 by @dependabot in #1663
- build(deps): bump actions/github-script from 6.4.1 to 7.0.1 by @dependabot in #1686
- build(deps): bump github/codeql-action from 2.22.3 to 2.22.8 by @dependabot in #1688
- build(deps): bump github.com/spf13/afero from 1.10.0 to 1.11.0 by @dependabot in #1692
- build(deps): bump actions/dependency-review-action from 3.1.0 to 3.1.4 by @dependabot in #1690
- build(deps): bump cachix/install-nix-action from 23 to 24 by @dependabot in #1689
- build(deps): bump github.com/nats-io/nkeys from 0.4.5 to 0.4.6 by @dependabot in #1672
- build(deps): bump github.com/spf13/cast from 1.5.1 to 1.6.0 by @dependabot in #1691
- build(deps): bump github.com/fsnotify/fsnotify from 1.6.0 to 1.7.0 by @dependabot in #1668
- chore: update dependencies by @sagikazarmark in #1694
- chore: update crypt by @sagikazarmark in #1701
Other Changes
- Add info about multiple hosts for remote config by @KaymeKaydex in #1684
- refactor: drop fsonitfy wrapper by @sagikazarmark in #1693
- Note Get* behavior on parse failure by @scop in #1687
- fix: godot lint issues by @alexandear in #1657
New Contributors
- @KaymeKaydex made their first contribution in #1684
- @krakowski made their first contribution in #1429
- @linuxsong made their first contribution in #1585
Full Changelog: v1.17.0...v1.18.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 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
v1.16.0
What's Changed
Enhancements 🚀
- Sub parent inheritance by @TaylorOno in #1056
- fix: fix typo by @yquansah in #1523
- ci: add Go 1.20 to build matrix by @sagikazarmark in #1506
- extend v.find() to handle stringToInt value types with stringToInt pflag #1435 by @vorishirne in #1462
- add:viper: allow to disable internal log messages by @burgesQ in #1483
- Allow ConfigParseError to unwrap by @andig in #1433
Bug Fixes 🐛
- fix: time.Duration slice type conversion by @UrbanskiDawid in #1498
Dependency Updates ⬆️
- build(deps): bump mheap/github-action-required-labels from 3 to 4 by @dependabot in #1533
- build(deps): bump actions/setup-go from 3 to 4 by @dependabot in #1526
- build(deps): bump golang.org/x/net from 0.4.0 to 0.7.0 by @dependabot in #1519
- build(deps): bump github.com/pelletier/go-toml/v2 from 2.0.6 to 2.0.7 by @dependabot in #1516
- build(deps): bump github.com/stretchr/testify from 1.8.1 to 1.8.2 by @dependabot in #1515
- build(deps): bump github.com/spf13/afero from 1.9.3 to 1.9.5 by @dependabot in #1518
- build(deps): bump github.com/sagikazarmark/crypt from 0.9.0 to 0.10.0 by @dependabot in #1550
- build(deps): bump github.com/spf13/cast from 1.5.0 to 1.5.1 by @dependabot in #1551
- build(deps): bump github.com/stretchr/testify from 1.8.2 to 1.8.3 by @dependabot in #1553
- build(deps): bump github.com/pelletier/go-toml/v2 from 2.0.7 to 2.0.8 by @dependabot in #1555
Other Changes
- Update main image to better handle dark background by @Deleplace in #1532
New Contributors
- @UrbanskiDawid made their first contribution in #1498
- @TaylorOno made their first contribution in #1056
- @yquansah made their first contribution in #1523
- @Azanul made their first contribution in #1544
- @Deleplace made their first contribution in #1532
- @cfabianski made their first contribution in #1552
- @vorishirne made their first contribution in #1462
- @burgesQ made their first contribution in #1483
- @andig made their first contribution in #1433
Full Changelog: v1.15.0...v1.16.0