All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
- Drop library dependency on
golang.org/x/lint
.
1.4.0 - 2019-11-19
- Migrate to Go modules.
1.3.1 - 2018-10-22
- Fix environment variable interpolation when
WithDefault
is used. - Fix support for non-scalar keys in YAML mappings (eg: "1: car").
1.3.0 - 2018-07-30
- Add a
RawSource
option that selectively disables variable expansion.
1.2.2 - 2018-07-12
- Undo deprecation of
NewProviderGroup
.
- Handle empty sources correctly in
NewProviderGroup
.
1.2.1 - 2018-07-06
- Handle empty sources and top-level nulls correctly.
1.2.0 - 2018-06-28
- Add
NewYAML
, a newProvider
constructor that lets callers mix Go values, readers, files, and other options. - Add support for
gopkg.in/yaml.v2
's strict mode. The behavior of the existing constructors is unchanged, butNewYAML
enables strict mode by default.
- Fix behavior of explicit
nil
s during merges.nil
now correctly replaces any value it's merged into. - Fix panic when a default is set for a value explicitly set to
nil
. - Eliminate situations where configuration was mistakenly shallow-copied, making any mutations visible to other callers.
- Correctly handle
omitempty
,inline
, andflow
fields. - Make
NopProvider.HasValue
always return false. - Stop expanding environment variables in YAML comments.
- Make
NewValue
panic when the user-supplied parameters don't match the contents of theProvider
. See the package documentation for details. - Remove undocumented support for the
default
struct tag, which was supposed to have been removed prior to the 1.0 release. All known users of the tag were migrated.
- Deprecate all existing
Provider
constructors exceptNewScopedProvider
in favor ofNewYAML
. - Deprecate
NewValue
in favor ofProvider.Get
. - Deprecate
Value.HasValue
,Value.Value
, andValue.WithDefault
in favor of strongly-typed approaches usingValue.Populate
.
1.1.0 - 2017-09-28
- Make expand functions transform a special sequence $$ to literal $.
- Export
Provider
constructors that takeio.Reader
.
- Determine the types of objects encapsulated by
config.Value
with the YAML unmarshaller regardless of whether expansion was performed or not.
1.0.2 - 2017-08-17
- Fix populate panic for a nil pointer.
1.0.1 - 2017-08-04
- Fix unmarshal text on missing value.
1.0.0 - 2017-07-31
- Skip populating function and value types instead of reporting errors.
- Return an error from provider constructors instead of panicking.
- Return an error from
Value.WithDefault
if the default is unusable.
- Remove timestamps on
Value
. - Remove
Try
andAs
conversion helpers. - Remove
Value.IsDefault
method. - Remove
Load
family of functions. - Unexport
NewYAMLProviderFromReader
family of functions.
- Use semantic version paths for yaml and validator packages.
- Trim
Provider
interface down to justName
andGet
.