Skip to content

Releases: spf13/viper

v1.18.2

18 Dec 18:28
v1.18.2
Compare
Choose a tag to compare

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 🐛

Full Changelog: v1.18.1...v1.18.2

v1.18.1

08 Dec 13:45
v1.18.1
Compare
Choose a tag to compare

What's Changed

Bug Fixes 🐛

Full Changelog: v1.18.0...v1.18.1

v1.18.0

06 Dec 14:56
v1.18.0
Compare
Choose a tag to compare

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 🚀

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 ⬆️

Other Changes

New Contributors

Full Changelog: v1.17.0...v1.18.0

v1.17.0

06 Oct 12:44
v1.17.0
Compare
Choose a tag to compare

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 🎉

Enhancements 🚀

Breaking Changes 🛠

Dependency Updates ⬆️

Other Changes

New Contributors

Full Changelog: v1.16.0...v1.17.0

v1.16.0

30 May 10:46
v1.16.0
21a7fd8
Compare
Choose a tag to compare

What's Changed

Enhancements 🚀

Bug Fixes 🐛

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

Full Changelog: v1.15.0...v1.16.0

v1.15.0

19 Jan 15:47
v1.15.0
5182412
Compare
Choose a tag to compare

What's Changed

Exciting New Features 🎉

  • feat: add multiple endpoints support for remote by @MozartZ in #1464

Enhancements 🚀

Breaking Changes 🛠

Dependency Updates ⬆️

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

New Contributors

Full Changelog: v1.14.0...v1.15.0

v1.14.0

06 Nov 13:40
v1.14.0
Compare
Choose a tag to compare

What's Changed

Enhancements 🚀

Breaking Changes 🛠

Dependency Updates ⬆️

Full Changelog: v1.13.0...v1.14.0

v1.13.0

06 Sep 12:12
v1.13.0
Compare
Choose a tag to compare

Important: This is the last release supporting Go 1.15.

What's Changed

Exciting New Features 🎉

Enhancements 🚀

Bug Fixes 🐛

  • Recurse into arrays when converting keys to lowercase by @awrichar in #1387

Dependency Updates ⬆️

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

New Contributors

Full Changelog: v1.12.0...v1.13.0

v1.12.0

26 May 15:52
v1.12.0
Compare
Choose a tag to compare

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!

What's Changed

Exciting New Features 🎉

Enhancements 🚀

  • chore: fix Error log calls in mergeMaps by @wwade in #1341
  • Add MustBindEnv by @meowfaceman in #1301

Dependency Updates ⬆️

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

New Contributors

  • @meowfaceman made their first contribution in #1301
  • @wwade made their first contribution in #1341

Full Changelog: v1.11.0...v1.12.0

v1.11.0

13 Apr 13:40
v1.11.0
Compare
Choose a tag to compare

What's Changed

Exciting New Features 🎉

Enhancements 🚀

Bug Fixes 🐛

Breaking Changes 🛠

Dependency Updates ⬆️

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

New Contributors

Full Changelog: v1.10.1...v1.11.0