Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix(deps): update module github.com/pelletier/go-toml to v2 #1159

Closed

Conversation

cilium-renovate[bot]
Copy link
Contributor

@cilium-renovate cilium-renovate bot commented Jun 27, 2023

This PR contains the following updates:

Package Type Update Change
github.com/pelletier/go-toml require major v1.9.5 -> v2.1.0

Release Notes

pelletier/go-toml (github.com/pelletier/go-toml)

v2.1.0

Compare Source

This new minor release brings back the commented struct field tag from go-toml v1. It makes it easier to generate default or example configuration files. For instance:

type TLS struct {
	Cipher  string `toml:"cipher"`
	Version string `toml:"version"`
}
type Config struct {
	Host string `toml:"host" comment:"Host IP to connect to."`
	Port int    `toml:"port" comment:"Port of the remote server."`
	Tls  TLS    `toml:"TLS,commented" comment:"Encryption parameters (optional)"`
}
example := Config{
	Host: "127.0.0.1",
	Port: 4242,
	Tls: TLS{
		Cipher:  "AEAD-AES128-GCM-SHA256",
		Version: "TLS 1.3",
	},
}
out, err := toml.Marshal(example)

generates this TOML document:

### Host IP to connect to.
host = '127.0.0.1'

### Port of the remote server.
port = 4242

### Encryption parameters (optional)
### [TLS]

### cipher = 'AEAD-AES128-GCM-SHA256'
### version = 'TLS 1.3'

This feature was often mentioned as a blocker to upgrading from go-toml v1. Hopefully bringing it back in scope will help folks make the transition!

An other noteworthy improvement is on type mismatch errors. They now include the human-readable context, and include the struct field name of the faulty value if applicable.

Before:

toml: cannot store TOML string into a Go int

After:

1| [server]
2| path = "/my/path"
3| port = "bad"
 |        ~~~~~ cannot decode TOML string into struct field toml_test.Server.Port of type int

What's Changed

What's new
Fixed bugs
Other changes

New Contributors

Full Changelog: pelletier/go-toml@v2.0.9...v2.1.0

v2.0.9

Compare Source

What's Changed

Fixed bugs
Other changes

New Contributors

Full Changelog: pelletier/go-toml@v2.0.8...v2.0.9

v2.0.8

Compare Source

What's Changed

What's new
Fixed bugs
Documentation

New Contributors

Full Changelog: pelletier/go-toml@v2.0.7...v2.0.8

v2.0.7

Compare Source

What's Changed

Fixed bugs
Documentation

New Contributors

Full Changelog: pelletier/go-toml@v2.0.6...v2.0.7

v2.0.6

Compare Source

What's Changed

What's new
Performance
Other changes

New Contributors

Full Changelog: pelletier/go-toml@v2.0.5...v2.0.6

v2.0.5

Compare Source

What's Changed

Fixed bugs

Full Changelog: pelletier/go-toml@v2.0.4...v2.0.5

v2.0.4

Compare Source

This version has compatibility issues with Go <= 1.17. Though go-toml doesn't officially support Go less than 2 versions old, a new version has been released with a backward-compatible fix: https://github.com/pelletier/go-toml/releases/tag/v2.0.5.

What's Changed

Fixed bugs

New Contributors

Full Changelog: pelletier/go-toml@v2.0.3...v2.0.4

v2.0.3

Compare Source

What's Changed

Fixed bugs
Other changes

Full Changelog: pelletier/go-toml@v2.0.2...v2.0.3

v2.0.2

Compare Source

What's Changed

Fixed bugs
Other changes

Full Changelog: pelletier/go-toml@v2.0.1...v2.0.2

v2.0.1

Compare Source

What's Changed

Fixed bugs
Documentation

New Contributors

Full Changelog: pelletier/go-toml@v2.0.0...v2.0.1

v2.0.0

Compare Source

It is finally here! go-toml v2 is now stable. 🎉

Only just over one year after I started working on it. This version of go-toml has been rebuilt from the ground up. It respects the latest TOML specification. Countless bugs have been fixed. It behaves more like the standard library. And it is much faster. Special attention was given to keeping the public API to a minimum. Continuing the strict policy of backward compatibility, the next breaking change will be in another 5 years!

Thank you to everybody who contributed to this new version, as well as folks willing to try out the intermediate beta versions. Shout out to @​moorereason for reporting many issues during the development process using differential fuzzing, as well as @​bep for running a beta on the popular Hugo project!

There is still some work that could be done to improve the performance of the library (https://github.com/pelletier/go-toml/pull/758 and https://github.com/pelletier/go-toml/pull/669 for instance). But I am confident that the library is in a good-enough place at the moment for folks to reap the benefits of the rewrite. The major feature removal is the sort-of-AST that v1 provided. It allowed manipulating an arbitrary document and writing it back out. This was done to cut down the scope of the project, removing a feature that had unclear use-cases. The v2 parser creates some intermediate AST so that if somebody is up to design a Document API the tools should be available to do so. Please reach out if you are interested!

The readme contains a list of differences between v1 and v2 to be aware of when upgrading. Please report any issue you may have with the new version in the bug tracker 🐞, provide feedback, and ask questions in Discussions 💬.
With this release, go-toml v1 will not be receiving any updates. This is required to keep maintenance of the project to a minimum.

Hopefully, this change doesn't break your thing!


Full commit log: pelletier/go-toml@c9a09d8...v2

Thank you contributors: @​pelletier @​oschwald @​moorereason @​xwjdsh @​kkHAIKE @​RiyaJohn @​jidicula @​zostay @​mmorel-35.


Configuration

📅 Schedule: Branch creation - "on monday" (UTC), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Renovate Bot.

@cilium-renovate cilium-renovate bot requested a review from a team as a code owner June 27, 2023 16:17
@cilium-renovate cilium-renovate bot requested a review from tpapagian June 27, 2023 16:17
@cilium-renovate cilium-renovate bot added kind/enhancement This improves or streamlines existing functionality release-blocker This PR or issue is blocking the next release. labels Jun 27, 2023
@cilium-renovate cilium-renovate bot force-pushed the renovate/github.com-pelletier-go-toml-2.x branch from e50cc72 to eb0dcf6 Compare June 28, 2023 09:17
@cilium-renovate cilium-renovate bot force-pushed the renovate/github.com-pelletier-go-toml-2.x branch 11 times, most recently from 1003b4e to c7cb209 Compare July 20, 2023 17:58
@cilium-renovate cilium-renovate bot force-pushed the renovate/github.com-pelletier-go-toml-2.x branch 6 times, most recently from 4f6473f to 8c12f22 Compare July 28, 2023 09:16
@cilium-renovate cilium-renovate bot force-pushed the renovate/github.com-pelletier-go-toml-2.x branch 8 times, most recently from 939acf4 to 1b1b036 Compare August 3, 2023 09:07
@cilium-renovate cilium-renovate bot force-pushed the renovate/github.com-pelletier-go-toml-2.x branch 8 times, most recently from 105456a to d8e3d47 Compare September 1, 2023 18:11
@cilium-renovate cilium-renovate bot force-pushed the renovate/github.com-pelletier-go-toml-2.x branch 9 times, most recently from 1596254 to c2964f9 Compare September 9, 2023 09:06
@tpapagian tpapagian added the release-note/misc This PR makes changes that have no direct user impact. label Sep 11, 2023
@cilium-renovate cilium-renovate bot force-pushed the renovate/github.com-pelletier-go-toml-2.x branch 3 times, most recently from f3894d4 to 5ec6986 Compare September 12, 2023 09:07
tpapagian added a commit that referenced this pull request Sep 12, 2023
Fixes issues in #1159

Signed-off-by: Anastasios Papagiannis <[email protected]>
mtardy pushed a commit that referenced this pull request Sep 12, 2023
Fixes issues in #1159

Signed-off-by: Anastasios Papagiannis <[email protected]>
Signed-off-by: cilium-renovate[bot] <134692979+cilium-renovate[bot]@users.noreply.github.com>
@cilium-renovate cilium-renovate bot force-pushed the renovate/github.com-pelletier-go-toml-2.x branch from 5ec6986 to 26010a4 Compare September 12, 2023 12:37
@mtardy
Copy link
Member

mtardy commented Sep 13, 2023

It's only used in a utility in contrib/rthooks and the v2 of the pkg breaks the API we use, so let's ignore it for now.

@mtardy mtardy closed this Sep 13, 2023
@cilium-renovate
Copy link
Contributor Author

cilium-renovate bot commented Sep 13, 2023

Renovate Ignore Notification

Because you closed this PR without merging, Renovate will ignore this update. You will not get PRs for any future 2.x releases. But if you manually upgrade to 2.x then Renovate will re-enable minor and patch updates automatically.

If you accidentally closed this PR, or if you changed your mind: rename this PR to get a fresh replacement PR.

@cilium-renovate cilium-renovate bot deleted the renovate/github.com-pelletier-go-toml-2.x branch September 13, 2023 09:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/enhancement This improves or streamlines existing functionality release-blocker This PR or issue is blocking the next release. release-note/misc This PR makes changes that have no direct user impact.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants