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
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 support nan and inf 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 and UnmarshalText consistently on all types; before this didn't always happen in some cases.
Allow empty quoted keys ("" = 1); silly, but explicitly mentioned as valid.
... (truncated)
Commits
641c3cf Put the github.com/BurntSushi/toml-test in internal/ (#313)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Bumps github.com/BurntSushi/toml from 0.3.1 to 0.4.1.
Release notes
Sourced from github.com/BurntSushi/toml's releases.
... (truncated)
Commits
641c3cf
Put the github.com/BurntSushi/toml-test in internal/ (#313)444cd14
Use toml-test@v1.0.00bfbb92
Add mention of changelog in README642b87a
Move toml.LocalDatetime to internal package5f40317
Update documentation8162ef3
Update to latest toml-testebe1404
Merge pull request #307 from BurntSushi/local-datetimefa10b4c
Deal with local datetimes, dates, and times betterccff24e
Merge pull request #306 from BurntSushi/array7d6f80f
Allow mixed values in arraysDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)