github google/yamlfmt v0.14.0

8 hours ago

Shoutouts To The Community Release

I have been in not the best health the last while, which is why this release took so long to cut. On the bright side, this release features more contributions from the community than from myself. Thank you to everyone who contributed!

Features

strip_directives

yaml.v3 does not support directives. The best thing to do would be to add some amount of support for directives, which I will do in the future just taking it as far as the parser not failing upon finding a directive. In the short term, I added a hotfix style feature that will strip the directives before formatting and put them back in. The feature is fraught with edge cases and only works reliably with directives at the top of the file. See the explanations I added in the docs.

gitignore_excludes searches up the directory structure for the nearest .gitignore

Arguably a fix, the gitignore_excludes feature will now look up the directory structure for the nearest .gitignore which unlocks monorepo usage patterns for yamlfmt.

JSON schema

The community has added a JSON Schema! I'm calling it out in release notes, but this is not tied to yamlfmt releases in any way. If you have any fixes or improvements to make, they will not need to be tied to git tags being cut.

I am not super familiar with JSON Schema; I will try my best not to break it and keep it up to date but I'm not gonna be great at addressing potential deeper issues with it.

Validating releases with cosign

The release artifacts now generate other artifacts that allow you to verify releases using the cosign tool.

Fixes

The line_ending setting in the formatter config is respected again

This was a regression in v0.13.0 where I did some refactors to config discovery. I uncovered an edge case in my original code to handle the line_ending setting in the formatter block (vs the global version). This has been fixed in this release.

eof_newline no longer panics on an empty file

If the file was empty, the eof_newline feature would panic. Never thought of that! This has been fixed.

Contributors

@thiagowfx added the JSON Schema
@Shion1305 fixed the eof_newline panic
@dhth added cosign support to releases
@nikaro added .gitignore discovery

I think this is the most contributors I've had in a release! Thank you everyone!

Changelog (generated)

  • feat: introduce a json schema file for yamlfmt by @thiagowfx in #193
  • 🐛 panic against empty file with eof_newline feature, resolves: #196 by @Shion1305 in #197
  • fix: look for gitignore file until the git root by @nikaro in #200
  • fix(json schema): remove additionalProperties any by @thiagowfx in #202
  • Add JSON schema validity test by @braydonk in #203
  • ci: sign checksum file with cosign by @dhth in #207
  • Clarify that cosign support will only be present starting from v0.14.0 by @braydonk in #212
  • command: correctly propogate line_ending setting by @braydonk in #216
  • Add feature strip_directives by @braydonk in #217

Full Changelog: v0.13.0...v0.14.0

Don't miss a new yamlfmt release

NewReleases is sending notifications on new releases.