fix(deps): update module github.com/burntsushi/toml to v1 #5949
+6
−5
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
v0.3.1
->v1.4.0
Release Notes
BurntSushi/toml (github.com/BurntSushi/toml)
v1.4.0
Compare Source
This version requires Go 1.18
Add toml.Marshal() (#405)
Require 2-digit hour (#320)
Wrap UnmarshalTOML() and UnmarshalText() return values in ParseError for position information (#398)
Fix inline tables with dotted keys inside inline arrays (e.g.
k=[{a.b=1}]
) (#400)v1.3.2
Compare Source
Fix reading
BURNTSUSHI_TOML_110
again 😅 The fix for 1.3.1 caused a race issue with multiple decodes being run in parallel.v1.3.1
Compare Source
This fixes two small bugs:
The
BURNTSUSHI_TOML_110
environment variable would be checked on package import, rather than Decode().This meant that setting
os.Setenv("BURNTSUSHI_TOML_110", "")
had no effect, as it happens after the import.Fix order of
Meta.Keys()
for inline tables (this has been an issue since support for inline tables was added).v1.3.0
Compare Source
New features:
Support upcoming TOML 1.1
While it looks like TOML 1.1 is mostly stable and I don't expect any further major changes, there are NO compatibility guarantees as it is NOT yet released and anything can still change.
To use it, set the
BURNTSUSHI_TOML_110
environment variable to any value, which can be done either withos.SetEnv()
or by the user running a program.A full list is changes is available in the TOML ChangeLog; the two most notable ones are that newlines and trailing commas are now allowed in inline tables, and Unicode in bare keys can now be used – this is now a valid document:
Allow MarshalTOML and MarshalText to be used on the document type itself, instead of only fields (#383).
Bufixes:
\
escapes at the end of line weren't processed correctly in multiline strings (#372).Read over UTF-8 BOM (#381).
omitempty
struct tag did not work for pointer values (#371).Fix encoding anonymous structs on 32bit systems (#374).
v1.2.1
Compare Source
This release fixes the
omitempty
struct tag on an uncomparable type panicking.v1.2.0
Compare Source
This release adds a few additional features:
Support encoding and decoding json.Number, making interoperability with JSON when using json.Encoder.UseNumber() easier.
Support time.Duration string format; an integer will be interpreted as nanoseconds (like before), but a string like "5h" will be parsed. On encoding the string format is used.
The omitempty struct tag now also works for structs with all zero values, for example an empty time.Time. A struct is considered "empty" when all fields (exported and private) are the zero value.
Allow using interface{} (or any) as the map key when decoding.
And some fixes:
Fix encoding.TextUnmarshaler not working for map values.
Make encoding.TextUnmarshaler and toml.Unmarshaler work if MarshalText() or MarshalTOML() have a pointer receiver.
Error out on nil returns from MarshalTOML/MarshalText; before they would get encoded as invalid TOML (keyname =).
Fix a panic where it would try to encode array = [{}, 0] as:
Which isn't valid as 0 isn't a table.
Some better error reporting for some errors.
v1.1.0
Compare Source
Just a few bugfixes:
Skip fields with
toml:"-"
even when they're unsupported types. Previously something like this would fail to encode due tofunc
being an unsupported type:Multiline strings can't end with
\
. This is valid:Valid
Invalid
TOMLMarshaler
. Previously they would always include quoting (e.g."value"
), while the entire point of this interface is to bypass that.v1.0.0
Compare Source
This release adds much more detailed errors, support for the
toml.Marshaler
interface, and several fixes.There is no special meaning in the jump to v1.0; the 0.x releases were always treated as if they're 1.x with regards to compatibility; the versioning scheme for this library predates the release of modules.
New features
Error reporting is much improved; the reported position of errors should now always be correct and the library can print more detailed errors (#299, #332)
Decode always return a
toml.ParseError
, which has three methods:Error()
behaves as before and shows a single concise line with the error.ErrorWithPosition()
shows the same error, but also shows the line the error occurred at, similar to e.g. clang or the Rust compiler.ErrorWithUsage()
is the same asErrorWithPosition()
, but may also show a longer usage guidance message. This isn't always present (in which case it behaves identical toErrorWithPosition()
), but it should be present for most common mistakes and sources of confusion.Which error the correct one to use is depends on your application and preferences; in general I would recommend using at least
ErrorWithPosition()
for user-facing errors, as it's much more helpful for users of any skill level. If your users are likely to be non-technical thenErrorWithUsage()
is probably a good idea; I did my best to avoid technical jargon such as "newline" and phrase things in a way that's understandable by most people not intimately familiar with these sort of things.Additionally, the TOML key that fialed should now always be reported in all errors.
Add
toml.Marshaler
interface. This can be used if you want full control over how something is marshalled as TOML, similar tojson.Marshaler
etc. This takes precedence overencoding.TextMarshaler
. (#327)Allow TOML integers to be decoded to a Go float (#325)
Previously
int = 42
could only be decoded to anint*
type; now this can also be decoded in afloat
type as long as it can be represented without loss of data.Fixes
Key.String() is now quoted when needed (#333)
Fix decoding of nested structs on 32bit platforms (#314)
Empty slices are now always
[]T{}
rather than nil, which was the behaviour in v0.3.1 and before. While they are identical for most purposes, encoding/json encodes them different ([]
vs.null
), making it an (accidentally) incompatible change (#339)v0.4.1
Compare Source
This fixes a cyclic module dependency issue with github.com/BurntSushi/toml-test that prevented some people from updating. See #313 for some details.
v0.4.0
Compare Source
After some time of inactivity this package is now maintained again.
This release should support alll of TOML 1.0 and has various bugfixes and a few small improvements.
This requires Go 1.13 or newer; older Go versions will no longer work.
TOML 1.0 support
Previously this library implemented TOML 0.3; now all of TOML 1.0 is supported:
Support dotted keys (
a.b = 1
,a = {b.c = 2}
).Mixed arrays: in previous TOML versions array values all had to be of the same type; you can now freely mix types, including inline tables.
Support hex (
0x2f9a
), binary (0b0110
), and octal (0o777
) literals, and supportnan
andinf
for floats.Support local datetimes, dates, and times. These are dates and times without a timezone and are parsed in the local timezone.
Allow accidental whitespace between backslash and newline in the line continuation operator in multi-line basic strings.
There should be no incompatibilities as such; all existing valid TOML files should continue to work. However, the parser previously allowed the following invalid values:
It would allow literal control characters in strings.
It would allow leading zeroes in decimal ints and floats.
Neither of these was ever valid TOML, and are explicitly forbidden by the specification. But the library erroneously permitted them.
Other changes
Set up Go modules.
Allow escaping the
\
, and allow triple-quotes strings to end with a quote (e.g.x="""x""""
).All control characters inside strings are properly escaped when encoding.
Support encoding nested anonymous structs.
Encode toml.Primitive values.
You get a more helpful error on UTF-16 files (probably the most common non-UTF-8 compatible encoding). Also read over UTF-16 BOM in UTF-8 files.
Call
MarshalText
andUnmarshalText
consistently on all types; before this didn't always happen in some cases.Allow empty quoted keys (
"" = 1
); silly, but explicitly mentioned as valid.Don't panic in encoder on unsupported types; return an error instead.
Don't panic on unclosed inline arrays.
Add
Decoder
and deprecateDecodeReader()
; this is more consistent with how other decoders tend to work and allows adding decoding options.Add
DecodeFS()
for Go 1.16 or newer.Avoid creating new functions/allocations in lexSkip; small performance improvement.
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 is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.